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/] [atc18/] [pads_atc18.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:     atcpads_gen
20
-- File:        atcpads_gen.vhd
21
-- Author:      Jiri Gaisler - Gaisler Research
22
-- Description: Atmel ATC18 pad wrappers
23
------------------------------------------------------------------------------
24
 
25
library ieee;
26
use ieee.std_logic_1164.all;
27
package atcpads is
28
  -- input pad
29
  component pc33d00z port (pad : in std_logic; cin : out std_logic); end component;
30
  -- input pad with pull-up
31
  component pc33d00uz port (pad : in std_logic; cin : out std_logic); end component;
32
  -- schmitt input pad
33
  component pc33d20z port (pad : in std_logic; cin : out std_logic); end component;
34
  -- schmitt input pad with pull-up
35
  component pt33d20uz port (pad : inout std_logic; cin : out std_logic); end component;
36
  -- output pads
37
  component pt33o01z port (i : in std_logic; pad : out std_logic); end component;
38
  component pt33o02z port (i : in std_logic; pad : out std_logic); end component;
39
  component pt33o04z port (i : in std_logic; pad : out std_logic); end component;
40
  component pt33o08z port (i : in std_logic; pad : out std_logic); end component;
41
  -- tri-state output pads
42
  component pt33t01z port (i, oen : in std_logic; pad : out std_logic); end component;
43
  component pt33t02z port (i, oen : in std_logic; pad : out std_logic); end component;
44
  component pt33t04z port (i, oen : in std_logic; pad : out std_logic); end component;
45
  component pt33t08z port (i, oen : in std_logic; pad : out std_logic); end component;
46
  -- tri-state output pads with pull-up
47
  component pt33t01uz port (i, oen : in std_logic; pad : out std_logic); end component;
48
  component pt33t02uz port (i, oen : in std_logic; pad : out std_logic); end component;
49
  component pt33t04uz port (i, oen : in std_logic; pad : out std_logic); end component;
50
  component pt33t08uz port (i, oen : in std_logic; pad : out std_logic); end component;
51
  -- bidirectional pads
52
  component pt33b01z
53
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
54
  end component;
55
  component pt33b02z
56
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
57
  end component;
58
  component pt33b08z
59
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
60
  end component;
61
  component pt33b04z
62
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
63
  end component;
64
  -- bidirectional pads with pull-up
65
  component pt33b01uz
66
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
67
  end component;
68
  component pt33b02uz
69
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
70
  end component;
71
  component pt33b08uz
72
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
73
  end component;
74
  component pt33b04uz
75
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
76
  end component;
77
--PCI pads
78
  component pp33o01z
79
    port (i : in  std_logic; pad : out  std_logic);
80
  end component;
81
  component pp33b01z
82
    port ( i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
83
  end component;
84
  component pp33t01z
85
    port (i, oen : in  std_logic; pad : out  std_logic);
86
  end component;
87
end;
88
 
89
library ieee;
90
library techmap;
91
use ieee.std_logic_1164.all;
92
use techmap.gencomp.all;
93
-- pragma translate_off
94
library atc18;
95
use atc18.pc33d00z;
96
-- pragma translate_on
97
 
98
entity atc18_inpad is
99
  generic (level : integer := 0; voltage : integer := 0);
100
  port (pad : in std_logic; o : out std_logic);
101
end;
102
architecture rtl of atc18_inpad is
103
  component pc33d00z port (pad : in std_logic; cin : out std_logic); end component;
104
begin
105
  pci0 : if level = pci33 generate
106
    ip : pc33d00z port map (pad => pad, cin => o);
107
  end generate;
108
  gen0 : if level /= pci33 generate
109
    ip : pc33d00z port map (pad => pad, cin => o);
110
  end generate;
111
end;
112
 
113
library ieee;
114
use ieee.std_logic_1164.all;
115
library techmap;
116
use techmap.gencomp.all;
117
-- pragma translate_off
118
library atc18;
119
use atc18.pp33b01z;
120
use atc18.pt33b01z;
121
use atc18.pt33b02z;
122
use atc18.pt33b08z;
123
use atc18.pt33b04z;
124
-- pragma translate_on
125
 
126
entity atc18_iopad  is
127
  generic (level : integer := 0; slew : integer := 0;
128
           voltage : integer := 0; strength : integer := 0);
129
  port (pad : inout std_logic; i, en : in std_logic; o : out std_logic);
130
end ;
131
architecture rtl of atc18_iopad is
132
  component pp33b01z
133
    port ( i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
134
  end component;
135
  component pt33b01z
136
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
137
  end component;
138
  component pt33b02z
139
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
140
  end component;
141
  component pt33b08z
142
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
143
  end component;
144
  component pt33b04z
145
    port (i, oen : in std_logic; cin : out std_logic; pad : inout std_logic);
146
  end component;
147
 
148
begin
149
  pci0 : if level = pci33 generate
150
    op : pp33b01z port map (i => i, oen => en, pad => pad, cin => o);
151
  end generate;
152
  gen0 : if level /= pci33 generate
153
    f1 : if (strength <= 4)  generate
154
      op : pt33b01z port map (i => i, oen => en, pad => pad, cin => o);
155
    end generate;
156
    f2 : if (strength > 4)  and (strength <= 8)  generate
157
      op : pt33b02z port map (i => i, oen => en, pad => pad, cin => o);
158
    end generate;
159
    f3 : if (strength > 8)  and (strength <= 16)  generate
160
      op : pt33b04z port map (i => i, oen => en, pad => pad, cin => o);
161
    end generate;
162
    f4 : if (strength > 16)  generate
163
      op : pt33b08z port map (i => i, oen => en, pad => pad, cin => o);
164
    end generate;
165
  end generate;
166
end;
167
 
168
library ieee;
169
use ieee.std_logic_1164.all;
170
library techmap;
171
use techmap.gencomp.all;
172
-- pragma translate_off
173
library atc18;
174
use atc18.pp33t01z;
175
use atc18.pt33o01z;
176
use atc18.pt33o02z;
177
use atc18.pt33o04z;
178
use atc18.pt33o08z;
179
-- pragma translate_on
180
 
181
entity atc18_outpad  is
182
  generic (level : integer := 0; slew : integer := 0;
183
           voltage : integer := 0; strength : integer := 0);
184
  port (pad : out std_logic; i : in std_logic);
185
end ;
186
architecture rtl of atc18_outpad is
187
  component pp33t01z
188
    port (i, oen : in  std_logic; pad : out  std_logic);
189
  end component;
190
  component pt33o01z port (i : in std_logic; pad : out std_logic); end component;
191
  component pt33o02z port (i : in std_logic; pad : out std_logic); end component;
192
  component pt33o04z port (i : in std_logic; pad : out std_logic); end component;
193
  component pt33o08z port (i : in std_logic; pad : out std_logic); end component;
194
signal gnd : std_logic;
195
begin
196
 
197
  gnd <= '0';
198
 
199
  pci0 : if level = pci33 generate
200
    op : pp33t01z port map (i => i, oen => gnd, pad => pad);
201
  end generate;
202
  gen0 : if level /= pci33 generate
203
    f4 : if (strength <= 4)  generate
204
      op : pt33o01z port map (i => i, pad => pad);
205
    end generate;
206
    f8  : if (strength > 4) and (strength <= 8)  generate
207
      op : pt33o02z port map (i => i, pad => pad);
208
    end generate;
209
    f16 : if (strength > 8) and (strength <= 16)  generate
210
      op : pt33o04z port map (i => i, pad => pad);
211
    end generate;
212
    f32 : if (strength > 16) generate
213
      op : pt33o08z port map (i => i, pad => pad);
214
    end generate;
215
  end generate;
216
end;
217
 
218
library ieee;
219
use ieee.std_logic_1164.all;
220
library techmap;
221
use techmap.gencomp.all;
222
-- pragma translate_off
223
library atc18;
224
use atc18.pp33t01z;
225
use atc18.pt33t01z;
226
use atc18.pt33t02z;
227
use atc18.pt33t04z;
228
use atc18.pt33t08z;
229
-- pragma translate_on
230
 
231
entity atc18_toutpad  is
232
  generic (level : integer := 0; slew : integer := 0;
233
           voltage : integer := 0; strength : integer := 0);
234
  port (pad : out std_logic; i, en : in std_logic);
235
end ;
236
architecture rtl of atc18_toutpad is
237
  component pp33t01z
238
    port (i, oen : in  std_logic; pad : out  std_logic);
239
  end component;
240
  component pt33t01z port (i, oen : in std_logic; pad : out std_logic); end component;
241
  component pt33t02z port (i, oen : in std_logic; pad : out std_logic); end component;
242
  component pt33t04z port (i, oen : in std_logic; pad : out std_logic); end component;
243
  component pt33t08z port (i, oen : in std_logic; pad : out std_logic); end component;
244
begin
245
 
246
  pci0 : if level = pci33 generate
247
    op : pp33t01z port map (i => i, oen => en, pad => pad);
248
  end generate;
249
  gen0 : if level /= pci33 generate
250
    f4 : if (strength <= 4)  generate
251
      op : pt33t01z port map (i => i, oen => en, pad => pad);
252
    end generate;
253
    f8  : if (strength > 4) and (strength <= 8)  generate
254
      op : pt33t02z port map (i => i, oen => en, pad => pad);
255
    end generate;
256
    f16 : if (strength > 8) and (strength <= 16)  generate
257
      op : pt33t04z port map (i => i, oen => en, pad => pad);
258
    end generate;
259
    f32 : if (strength > 16) generate
260
      op : pt33t08z port map (i => i, oen => en, pad => pad);
261
    end generate;
262
  end generate;
263
 
264
end;
265
 
266
library ieee;
267
use ieee.std_logic_1164.all;
268
 
269
entity atc18_clkpad is
270
  generic (level : integer := 0; voltage : integer := 0);
271
  port (pad : in std_logic; o : out std_logic);
272
end;
273
architecture rtl of atc18_clkpad is
274
begin
275
  o <= pad;
276
end;

powered by: WebSVN 2.1.0

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