OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [techmap/] [umc18/] [pads_umc18.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
------------------------------------------------------------------------------
2
--  This file is a part of the GRLIB VHDL IP LIBRARY
3
--  Copyright (C) 2003, Gaisler Research
4
--
5
--  This program is free software; you can redistribute it and/or modify
6
--  it under the terms of the GNU General Public License as published by
7
--  the Free Software Foundation; either version 2 of the License, or
8
--  (at your option) any later version.
9
--
10
--  This program is distributed in the hope that it will be useful,
11
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
--  GNU General Public License for more details.
14
--
15
--  You should have received a copy of the GNU General Public License
16
--  along with this program; if not, write to the Free Software
17
--  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
18
-----------------------------------------------------------------------------
19
-- Package:     umcpads_gen
20
-- File:        umcpads_gen.vhd
21
-- Author:      Jiri Gaisler - Gaisler Research
22
-- Description: UMC pad wrappers
23
------------------------------------------------------------------------------
24
 
25
library ieee;
26
use ieee.std_logic_1164.all;
27
package umcpads is
28
  -- input pad
29
 
30
  component ICMT3V port( A : in std_logic; Z : out std_logic); end component;
31
 
32
  -- input pad with pull-up
33
 
34
  component ICMT3VPU port( A : in std_logic; Z : out std_logic); end component;
35
 
36
  -- input pad with pull-down
37
 
38
  component ICMT3VPD port( A : in std_logic; Z : out std_logic); end component;
39
 
40
  -- schmitt input pad
41
 
42
  component ISTRT3V port( A : in std_logic; Z : out std_logic); end component;
43
 
44
  -- output pads
45
 
46
  component OCM3V4 port( Z : out std_logic; A : in std_logic); end component;
47
  component OCM3V12 port( Z : out std_logic; A : in std_logic); end component;
48
  component OCM3V24 port( Z : out std_logic; A : in std_logic); end component;
49
 
50
 
51
  -- tri-state output pads
52
 
53
  component OCMTR4 port( EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
54
  component OCMTR12 port( EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
55
  component OCMTR24 port( EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
56
 
57
  -- bidirectional pads
58
 
59
  component BICM3V4 port( IO : inout std_logic; EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
60
  component BICM3V12 port( IO : inout std_logic; EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
61
  component BICM3V24 port( IO : inout std_logic; EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
62
 
63
end;
64
 
65
library ieee;
66
use ieee.std_logic_1164.all;
67
library techmap;
68
use techmap.gencomp.all;
69
-- pragma translate_off
70
library umc18;
71
use umc18.ICMT3V;
72
use umc18.ICMT3VPU;
73
use umc18.ICMT3VPD;
74
use umc18.ISTRT3V;
75
-- pragma translate_on
76
 
77
entity umc_inpad is
78
  generic (level : integer := 0; voltage : integer := 0; filter : integer := 0);
79
  port (pad : in std_logic; o : out std_logic);
80
end;
81
architecture rtl of umc_inpad is
82
  component ICMT3V port( A : in std_logic; Z : out std_logic); end component;
83
  component ICMT3VPU port( A : in std_logic; Z : out std_logic); end component;
84
  component ICMT3VPD port( A : in std_logic; Z : out std_logic); end component;
85
  component ISTRT3V port( A : in std_logic; Z : out std_logic); end component;
86
begin
87
  norm : if filter = 0 generate
88
    ip : ICMT3V port map (a => pad, z => o);
89
  end generate;
90
  pu : if filter = pullup generate
91
    ip : ICMT3VPU port map (a => pad, z => o);
92
  end generate;
93
  pd : if filter = pulldown generate
94
    ip : ICMT3VPD port map (a => pad, z => o);
95
  end generate;
96
  sch : if filter = schmitt generate
97
    ip : ISTRT3V port map (a => pad, z => o);
98
  end generate;
99
end;
100
 
101
library ieee;
102
use ieee.std_logic_1164.all;
103
library techmap;
104
use techmap.gencomp.all;
105
-- pragma translate_off
106
library umc18;
107
use umc18.BICM3V4;
108
use umc18.BICM3V12;
109
use umc18.BICM3V24;
110
-- pragma translate_on
111
 
112
entity umc_iopad  is
113
  generic (level : integer := 0; slew : integer := 0;
114
           voltage : integer := 0; strength : integer := 0);
115
  port (pad : inout std_logic; i, en : in std_logic; o : out std_logic);
116
end ;
117
architecture rtl of umc_iopad is
118
  component BICM3V4 port( IO : inout std_logic; EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
119
  component BICM3V12 port( IO : inout std_logic; EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
120
  component BICM3V24 port( IO : inout std_logic; EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
121
begin
122
  f4 : if (strength <= 4)  generate
123
      op : BICM3V4 port map (a => i, en => en, io => pad, z => o);
124
  end generate;
125
  f12 : if (strength > 4)  and (strength <= 12)  generate
126
      op : BICM3V12 port map (a => i, en => en, io => pad, z => o);
127
  end generate;
128
  f24 : if (strength > 16)  generate
129
      op : BICM3V24 port map (a => i, en => en, io => pad, z => o);
130
  end generate;
131
end;
132
 
133
library ieee;
134
use ieee.std_logic_1164.all;
135
library techmap;
136
use techmap.gencomp.all;
137
-- pragma translate_off
138
library umc18;
139
use umc18.OCM3V4;
140
use umc18.OCM3V12;
141
use umc18.OCM3V24;
142
-- pragma translate_on
143
 
144
entity umc_outpad  is
145
  generic (level : integer := 0; slew : integer := 0;
146
           voltage : integer := 0; strength : integer := 0);
147
  port (pad : out std_logic; i : in std_logic);
148
end ;
149
architecture rtl of umc_outpad is
150
  component OCM3V4 port( Z : out std_logic; A : in std_logic); end component;
151
  component OCM3V12 port( Z : out std_logic; A : in std_logic); end component;
152
  component OCM3V24 port( Z : out std_logic; A : in std_logic); end component;
153
begin
154
  f4 : if (strength <= 4)  generate
155
      op : OCM3V4 port map (a => i, z => pad);
156
  end generate;
157
  f12 : if (strength > 4) and (strength <= 12)  generate
158
      op : OCM3V12 port map (a => i, z => pad);
159
  end generate;
160
  f24 : if (strength > 12) generate
161
      op : OCM3V24 port map (a => i, z => pad);
162
  end generate;
163
end;
164
 
165
library ieee;
166
use ieee.std_logic_1164.all;
167
library techmap;
168
use techmap.gencomp.all;
169
-- pragma translate_off
170
library umc18;
171
use umc18.OCMTR4;
172
use umc18.OCMTR12;
173
use umc18.OCMTR24;
174
-- pragma translate_on
175
 
176
entity umc_toutpad  is
177
  generic (level : integer := 0; slew : integer := 0;
178
           voltage : integer := 0; strength : integer := 0);
179
  port (pad : out std_logic; i, en : in std_logic);
180
end ;
181
architecture rtl of umc_toutpad is
182
  component OCMTR4 port( EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
183
  component OCMTR12 port( EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
184
  component OCMTR24 port( EN : in std_logic; A : in std_logic; Z : out std_logic); end component;
185
begin
186
  f4 : if (strength <= 4)  generate
187
      op : OCMTR4 port map (a => i, en => en, z => pad);
188
  end generate;
189
  f12  : if (strength > 4) and (strength <= 12)  generate
190
      op : OCMTR12 port map (a => i, en => en, z => pad);
191
  end generate;
192
  f24 : if (strength > 12) generate
193
      op : OCMTR24 port map (a => i, en => en, z => pad);
194
  end generate;
195
end;
196
 
197
library umc18;
198
-- pragma translate_off
199
use umc18.LVDS_Driver;
200
use umc18.LVDS_Receiver;
201
use umc18.LVDS_Biasmodule;
202
-- pragma translate_on
203
 
204
library ieee;
205
use ieee.std_logic_1164.all;
206
library techmap;
207
use techmap.gencomp.all;
208
 
209
entity umc_lvds_combo  is
210
  generic (voltage : integer := 0; width : integer := 1);
211
  port (odpadp, odpadn, ospadp, ospadn : out std_logic_vector(0 to width-1);
212
        odval, osval, en : in std_logic_vector(0 to width-1);
213
        idpadp, idpadn, ispadp, ispadn : in std_logic_vector(0 to width-1);
214
        idval, isval : out std_logic_vector(0 to width-1);
215
        lvdsref : in std_logic);
216
end ;
217
 
218
architecture rtl of umc_lvds_combo is
219
  component LVDS_Driver port ( A, Vref, HI : in std_logic; Z, ZN : out std_logic); end component;
220
  component LVDS_Receiver port ( A, AN : in std_logic; Z : out std_logic); end component;
221
  component LVDS_Biasmodule port ( RefR : in std_logic; Vref, HI : out std_logic); end component;
222
  signal vref,  hi : std_logic;
223
begin
224
 
225
  lvds_bias:  LVDS_Biasmodule port map (lvdsref, vref, hi);
226
  swloop : for i in 0 to width-1 generate
227
    spw_rxd_pad : LVDS_Receiver port map (idpadp(i), idpadn(i), idval(i));
228
    spw_rxs_pad : LVDS_Receiver port map (ispadp(i), ispadn(i), isval(i));
229
    spw_txd_pad : LVDS_Driver port map (odval(i), vref, hi, odpadp(i), odpadn(i));
230
    spw_txs_pad : LVDS_Driver port map (osval(i), vref, hi, ospadp(i), ospadn(i));
231
  end generate;
232
 
233
end;
234
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.