pad.v
11.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
/************************************************************************\
* *
* Copyright(C) 1994, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
\************************************************************************/
// $Id: pad.v,v 1.1.1.1 2002/05/17 06:07:48 blythe Exp $
module pad(
synclk_in, mclk_pad,
reset_out, reset_pad,
test_out, test_pad,
start_gclk, clk, gclk,
pvalid_out, pvalid_pad,
evalid_in, evalid_pad,
eok_in, eok_pad,
int_in, int_pad,
sysad_out, sysad_in, sysad_pad,
syscmd_out, syscmd_in, syscmd_pad,
sysad_en_l,
cartaleh_in, cartaleh_pad,
cartalel_in, cartalel_pad,
cartrd_in, cartrd_pad,
cartwr_in, cartwr_pad,
cartad_out, cartad_in, cartad_pad, cartad_en_l,
pifrsp_out, pifrsp_pad,
pifcmd_in, pifcmd_pad,
pifclk_in, pifclk_pad,
auddata_in, auddata_pad,
audclk_in, audclk_pad,
audlrclk_in, audlrclk_pad,
srgba_in, srgba_pad,
vsync_in, vsync_pad,
vclk_out, vclk_in, vclk_pad, vclk_en_l);
// System interface
input synclk_in;
output mclk_pad;
input start_gclk;
output clk;
output gclk;
output reset_out;
input reset_pad;
output test_out;
input test_pad;
// SysAD interface
input pvalid_pad;
output pvalid_out;
input evalid_in;
output evalid_pad;
input eok_in;
output eok_pad;
input int_in;
output int_pad;
input [4:0] sysad_en_l;
input [31:0] sysad_in;
output [31:0] sysad_out;
inout [31:0] sysad_pad;
input [4:0] syscmd_in;
output [4:0] syscmd_out;
inout [4:0] syscmd_pad;
// AD16 interface
input cartaleh_in;
output cartaleh_pad;
input cartalel_in;
output cartalel_pad;
input cartrd_in;
output cartrd_pad;
input cartwr_in;
output cartwr_pad;
input [15:0] cartad_in;
output [15:0] cartad_out;
inout [15:0] cartad_pad;
input [1:0] cartad_en_l;
// PIF interface
input pifrsp_pad;
output pifrsp_out;
input pifcmd_in;
output pifcmd_pad;
input pifclk_in;
output pifclk_pad;
// Audio interface
input auddata_in;
output auddata_pad;
input audclk_in;
output audclk_pad;
input audlrclk_in;
output audlrclk_pad;
// Video interface
input [6:0] srgba_in;
output [6:0] srgba_pad;
input vsync_in;
output vsync_pad;
output vclk_out;
input vclk_in;
input vclk_en_l;
inout vclk_pad;
// syn_clk buffers
wire syn_clkbot, syn_clktop, synclk_out;
wire syn_clk0, syn_clk1;
syn_clk_buf syn_clk_bufbot0( .in0(synclk_in), .out0(syn_clkbot),
.in1(synclk_in), .out1(syn_clkbot),
.in2(synclk_in), .out2(syn_clkbot));
syn_clk_buf syn_clk_bufbot1( .in0(syn_clkbot), .out0(syn_clk0),
.in1(syn_clkbot), .out1(syn_clk0),
.in2(syn_clkbot), .out2());
syn_clk_buf syn_clk_buftop0( .in0(synclk_in), .out0(syn_clktop),
.in1(synclk_in), .out1(syn_clktop),
.in2(synclk_in), .out2(syn_clktop));
syn_clk_buf syn_clk_buftop1( .in0(syn_clktop), .out0(syn_clk1),
.in1(syn_clktop), .out1(syn_clk1),
.in2(syn_clktop), .out2(synclk_out));
// clock drivers
pc3cl3 IOpad014(.cp(clk), .cclk(syn_clk0), .e(1'b1), .clkpwr(VDD014), .clkgnd(VSS015));
pc3cl3 IOpad109(.cp(clk), .cclk(syn_clk1), .e(1'b1), .clkpwr(VDD109), .clkgnd(VSS110));
pc3cl3 IOpad031(.cp(gclk), .cclk(syn_clk0), .e(start_gclk), .clkpwr(VDD031), .clkgnd(VSS032));
pc3cl3 IOpad092(.cp(gclk), .cclk(syn_clk1), .e(start_gclk), .clkpwr(VDD092), .clkgnd(VSS093));
// general input pins
pc3d01 IOpad030 (.cin(reset_out), .pad(reset_pad));
pc3d01 IOpad002 (.cin(test_out), .pad(test_pad));
// general output pins
pc3o05 IOpad101 (.i(synclk_out), .pad(mclk_pad));
// SYSTEM CPU Interface pins
pc3d01 IOpad066 (.cin(pvalid_out), .pad(pvalid_pad));
pc3o04 IOpad116 (.i(evalid_in), .pad(evalid_pad));
pc3o04 IOpad062 (.i(eok_in), .pad(eok_pad));
pc3o04 IOpad082 (.i(int_in), .pad(int_pad));
pc3b05r IOpad068 (.pad(sysad_pad[0]), .cin(sysad_out[0]), .i(sysad_in[0]), .oen(sysad_en_l[0]));
pc3b05r IOpad069 (.pad(sysad_pad[1]), .cin(sysad_out[1]), .i(sysad_in[1]), .oen(sysad_en_l[0]));
pc3b05r IOpad070 (.pad(sysad_pad[2]), .cin(sysad_out[2]), .i(sysad_in[2]), .oen(sysad_en_l[0]));
pc3b05r IOpad073 (.pad(sysad_pad[3]), .cin(sysad_out[3]), .i(sysad_in[3]), .oen(sysad_en_l[0]));
pc3b05r IOpad074 (.pad(sysad_pad[4]), .cin(sysad_out[4]), .i(sysad_in[4]), .oen(sysad_en_l[0]));
pc3b05r IOpad075 (.pad(sysad_pad[5]), .cin(sysad_out[5]), .i(sysad_in[5]), .oen(sysad_en_l[0]));
pc3b05r IOpad076 (.pad(sysad_pad[6]), .cin(sysad_out[6]), .i(sysad_in[6]), .oen(sysad_en_l[0]));
pc3b05r IOpad077 (.pad(sysad_pad[7]), .cin(sysad_out[7]), .i(sysad_in[7]), .oen(sysad_en_l[0]));
pc3b05r IOpad078 (.pad(sysad_pad[8]), .cin(sysad_out[8]), .i(sysad_in[8]), .oen(sysad_en_l[1]));
pc3b05r IOpad081 (.pad(sysad_pad[9]), .cin(sysad_out[9]), .i(sysad_in[9]), .oen(sysad_en_l[1]));
pc3b05r IOpad085 (.pad(sysad_pad[10]), .cin(sysad_out[10]), .i(sysad_in[10]), .oen(sysad_en_l[1]));
pc3b05r IOpad086 (.pad(sysad_pad[11]), .cin(sysad_out[11]), .i(sysad_in[11]), .oen(sysad_en_l[1]));
pc3b05r IOpad089 (.pad(sysad_pad[12]), .cin(sysad_out[12]), .i(sysad_in[12]), .oen(sysad_en_l[1]));
pc3b05r IOpad090 (.pad(sysad_pad[13]), .cin(sysad_out[13]), .i(sysad_in[13]), .oen(sysad_en_l[1]));
pc3b05r IOpad091 (.pad(sysad_pad[14]), .cin(sysad_out[14]), .i(sysad_in[14]), .oen(sysad_en_l[1]));
pc3b05r IOpad094 (.pad(sysad_pad[15]), .cin(sysad_out[15]), .i(sysad_in[15]), .oen(sysad_en_l[1]));
pc3b05r IOpad095 (.pad(sysad_pad[16]), .cin(sysad_out[16]), .i(sysad_in[16]), .oen(sysad_en_l[2]));
pc3b05r IOpad096 (.pad(sysad_pad[17]), .cin(sysad_out[17]), .i(sysad_in[17]), .oen(sysad_en_l[2]));
pc3b05r IOpad097 (.pad(sysad_pad[18]), .cin(sysad_out[18]), .i(sysad_in[18]), .oen(sysad_en_l[2]));
pc3b05r IOpad098 (.pad(sysad_pad[19]), .cin(sysad_out[19]), .i(sysad_in[19]), .oen(sysad_en_l[2]));
pc3b05r IOpad104 (.pad(sysad_pad[20]), .cin(sysad_out[20]), .i(sysad_in[20]), .oen(sysad_en_l[2]));
pc3b05r IOpad105 (.pad(sysad_pad[21]), .cin(sysad_out[21]), .i(sysad_in[21]), .oen(sysad_en_l[2]));
pc3b05r IOpad106 (.pad(sysad_pad[22]), .cin(sysad_out[22]), .i(sysad_in[22]), .oen(sysad_en_l[2]));
pc3b05r IOpad107 (.pad(sysad_pad[23]), .cin(sysad_out[23]), .i(sysad_in[23]), .oen(sysad_en_l[2]));
pc3b05r IOpad108 (.pad(sysad_pad[24]), .cin(sysad_out[24]), .i(sysad_in[24]), .oen(sysad_en_l[3]));
pc3b05r IOpad121 (.pad(sysad_pad[25]), .cin(sysad_out[25]), .i(sysad_in[25]), .oen(sysad_en_l[3]));
pc3b05r IOpad122 (.pad(sysad_pad[26]), .cin(sysad_out[26]), .i(sysad_in[26]), .oen(sysad_en_l[3]));
pc3b05r IOpad123 (.pad(sysad_pad[27]), .cin(sysad_out[27]), .i(sysad_in[27]), .oen(sysad_en_l[3]));
pc3b05r IOpad124 (.pad(sysad_pad[28]), .cin(sysad_out[28]), .i(sysad_in[28]), .oen(sysad_en_l[3]));
pc3b05r IOpad061 (.pad(sysad_pad[29]), .cin(sysad_out[29]), .i(sysad_in[29]), .oen(sysad_en_l[3]));
pc3b05r IOpad065 (.pad(sysad_pad[30]), .cin(sysad_out[30]), .i(sysad_in[30]), .oen(sysad_en_l[3]));
pc3b05r IOpad067 (.pad(sysad_pad[31]), .cin(sysad_out[31]), .i(sysad_in[31]), .oen(sysad_en_l[3]));
pc3b05r IOpad120 (.pad(syscmd_pad[0]), .cin(syscmd_out[0]), .i(syscmd_in[0]), .oen(sysad_en_l[4]));
pc3b05r IOpad119 (.pad(syscmd_pad[1]), .cin(syscmd_out[1]), .i(syscmd_in[1]), .oen(sysad_en_l[4]));
pc3b05r IOpad115 (.pad(syscmd_pad[2]), .cin(syscmd_out[2]), .i(syscmd_in[2]), .oen(sysad_en_l[4]));
pc3b05r IOpad112 (.pad(syscmd_pad[3]), .cin(syscmd_out[3]), .i(syscmd_in[3]), .oen(sysad_en_l[4]));
pc3b05r IOpad111 (.pad(syscmd_pad[4]), .cin(syscmd_out[4]), .i(syscmd_in[4]), .oen(sysad_en_l[4]));
// ROM CARTRIDGE - MASS STORAGE Interface
pc3o04 IOpad045 (.pad(cartaleh_pad), .i(cartaleh_in));
pc3o04 IOpad049 (.pad(cartalel_pad), .i(cartalel_in));
pc3o04 IOpad046 (.pad(cartrd_pad), .i(cartrd_in));
pc3o04 IOpad050 (.pad(cartwr_pad), .i(cartwr_in));
pc3b05r IOpad059 (.pad(cartad_pad[0]), .cin(cartad_out[0]), .i(cartad_in[0]), .oen(cartad_en_l[0]));
pc3b05r IOpad057 (.pad(cartad_pad[1]), .cin(cartad_out[1]), .i(cartad_in[1]), .oen(cartad_en_l[0]));
pc3b05r IOpad053 (.pad(cartad_pad[2]), .cin(cartad_out[2]), .i(cartad_in[2]), .oen(cartad_en_l[0]));
pc3b05r IOpad051 (.pad(cartad_pad[3]), .cin(cartad_out[3]), .i(cartad_in[3]), .oen(cartad_en_l[0]));
pc3b05r IOpad043 (.pad(cartad_pad[4]), .cin(cartad_out[4]), .i(cartad_in[4]), .oen(cartad_en_l[0]));
pc3b05r IOpad039 (.pad(cartad_pad[5]), .cin(cartad_out[5]), .i(cartad_in[5]), .oen(cartad_en_l[0]));
pc3b05r IOpad037 (.pad(cartad_pad[6]), .cin(cartad_out[6]), .i(cartad_in[6]), .oen(cartad_en_l[0]));
pc3b05r IOpad033 (.pad(cartad_pad[7]), .cin(cartad_out[7]), .i(cartad_in[7]), .oen(cartad_en_l[0]));
pc3b05r IOpad034 (.pad(cartad_pad[8]), .cin(cartad_out[8]), .i(cartad_in[8]), .oen(cartad_en_l[1]));
pc3b05r IOpad038 (.pad(cartad_pad[9]), .cin(cartad_out[9]), .i(cartad_in[9]), .oen(cartad_en_l[1]));
pc3b05r IOpad042 (.pad(cartad_pad[10]), .cin(cartad_out[10]), .i(cartad_in[10]), .oen(cartad_en_l[1]));
pc3b05r IOpad044 (.pad(cartad_pad[11]), .cin(cartad_out[11]), .i(cartad_in[11]), .oen(cartad_en_l[1]));
pc3b05r IOpad052 (.pad(cartad_pad[12]), .cin(cartad_out[12]), .i(cartad_in[12]), .oen(cartad_en_l[1]));
pc3b05r IOpad056 (.pad(cartad_pad[13]), .cin(cartad_out[13]), .i(cartad_in[13]), .oen(cartad_en_l[1]));
pc3b05r IOpad058 (.pad(cartad_pad[14]), .cin(cartad_out[14]), .i(cartad_in[14]), .oen(cartad_en_l[1]));
pc3b05r IOpad060 (.pad(cartad_pad[15]), .cin(cartad_out[15]), .i(cartad_in[15]), .oen(cartad_en_l[1]));
// SERIAL INTERFACE CONTROLER Interface pins
pc3d01 IOpad003 (.cin(pifrsp_out), .pad(pifrsp_pad));
pc3o04 IOpad004 (.pad(pifcmd_pad), .i(pifcmd_in));
pc3o04 IOpad005 (.pad(pifclk_pad), .i(pifclk_in));
// AUDIO Interface pins
pc3o04 IOpad009 (.pad(auddata_pad), .i(auddata_in));
pc3o04 IOpad008 (.pad(audclk_pad), .i(audclk_in));
pc3o04 IOpad012 (.pad(audlrclk_pad), .i(audlrclk_in));
// VIDEO Interface pins
pc3o04 IOpad017 (.pad(srgba_pad[6]), .i(srgba_in[6]));
pc3o04 IOpad020 (.pad(srgba_pad[5]), .i(srgba_in[5]));
pc3o04 IOpad021 (.pad(srgba_pad[4]), .i(srgba_in[4]));
pc3o04 IOpad022 (.pad(srgba_pad[3]), .i(srgba_in[3]));
pc3o04 IOpad025 (.pad(srgba_pad[2]), .i(srgba_in[2]));
pc3o04 IOpad026 (.pad(srgba_pad[1]), .i(srgba_in[1]));
pc3o04 IOpad027 (.pad(srgba_pad[0]), .i(srgba_in[0]));
pc3o04 IOpad016 (.pad(vsync_pad), .i(vsync_in));
pc3b04r IOpad013 (.pad(vclk_pad), .cin(vclk_out), .i(vclk_in), .oen(vclk_en_l));
// VDD, VSS pads
pv0a IOpad007 (.vss(VSS007));
pv0a IOpad024 (.vss(VSS024));
pv0a IOpad041 (.vss(VSS041));
pv0a IOpad055 (.vss(VSS055));
pv0a IOpad071 (.vss(VSS071));
pv0a IOpad083 (.vss(VSS083));
pv0a IOpad102 (.vss(VSS102));
pv0a IOpad117 (.vss(VSS117));
pv0b IOpad010 (.vss(VSS010));
pv0b IOpad018 (.vss(VSS018));
pv0b IOpad028 (.vss(VSS028));
pv0b IOpad035 (.vss(VSS035));
pv0b IOpad048 (.vss(VSS048));
pv0b IOpad063 (.vss(VSS063));
pv0b IOpad079 (.vss(VSS079));
pv0b IOpad088 (.vss(VSS088));
pv0b IOpad103 (.vss(VSS103));
pv0b IOpad113 (.vss(VSS113));
pv0b IOpad126 (.vss(VSS126));
pv0b IOpad160 (.vss(VSS160));
pvda IOpad006 (.vdd(VDD006));
pvda IOpad023 (.vdd(VDD023));
pvda IOpad040 (.vdd(VDD040));
pvda IOpad054 (.vdd(VDD054));
pvda IOpad072 (.vdd(VDD072));
pvda IOpad084 (.vdd(VDD084));
pvda IOpad100 (.vdd(VDD100));
pvda IOpad118 (.vdd(VDD118));
pvdb IOpad001 (.vdd(VDD001));
pvdb IOpad011 (.vdd(VDD011));
pvdb IOpad019 (.vdd(VDD019));
pvdb IOpad029 (.vdd(VDD029));
pvdb IOpad036 (.vdd(VDD036));
pvdb IOpad047 (.vdd(VDD047));
pvdb IOpad064 (.vdd(VDD064));
pvdb IOpad080 (.vdd(VDD080));
pvdb IOpad087 (.vdd(VDD087));
pvdb IOpad099 (.vdd(VDD099));
pvdb IOpad114 (.vdd(VDD114));
pvdb IOpad125 (.vdd(VDD125));
endmodule