Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: ncu_i2cscd_ctl.v | |
4 | // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved | |
5 | // 4150 Network Circle, Santa Clara, California 95054, U.S.A. | |
6 | // | |
7 | // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
8 | // | |
9 | // This program is free software; you can redistribute it and/or modify | |
10 | // it under the terms of the GNU General Public License as published by | |
11 | // the Free Software Foundation; version 2 of the License. | |
12 | // | |
13 | // This program is distributed in the hope that it will be useful, | |
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | // GNU General Public License for more details. | |
17 | // | |
18 | // You should have received a copy of the GNU General Public License | |
19 | // along with this program; if not, write to the Free Software | |
20 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 | // | |
22 | // For the avoidance of doubt, and except that if any non-GPL license | |
23 | // choice is available it will apply instead, Sun elects to use only | |
24 | // the General Public License version 2 (GPLv2) at this time for any | |
25 | // software where a choice of GPL license versions is made | |
26 | // available with the language indicating that GPLv2 or any later version | |
27 | // may be used, or where a choice of which version of the GPL is applied is | |
28 | // otherwise unspecified. | |
29 | // | |
30 | // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, | |
31 | // CA 95054 USA or visit www.sun.com if you need additional information or | |
32 | // have any questions. | |
33 | // | |
34 | // ========== Copyright Header End ============================================ | |
35 | module ncu_i2cscd_ctl ( | |
36 | bounce_ack_packet, | |
37 | bounce_ack_vld, | |
38 | ccu_ncu_data, | |
39 | ccu_ncu_vld, | |
40 | dmu_ncu_data, | |
41 | dmu_ncu_vld, | |
42 | intman_tbl_dout, | |
43 | intman_pchkf2i2c, | |
44 | iobuf_head_f, | |
45 | iol2clk, | |
46 | lhs_intman_acc, | |
47 | mcu0_ncu_data, | |
48 | mcu0_ncu_vld, | |
49 | mcu1_ncu_data, | |
50 | mcu1_ncu_vld, | |
51 | mcu2_ncu_data, | |
52 | mcu2_ncu_vld, | |
53 | mcu3_ncu_data, | |
54 | mcu3_ncu_vld, | |
55 | mondo_busy_vec_f, | |
56 | mondoinvec, | |
57 | ncu_int_ack_packet, | |
58 | ncu_int_ack_vld, | |
59 | ncu_man_ack_packet, | |
60 | ncu_man_ack_vld, | |
61 | ncu_man_int_packet, | |
62 | ncu_man_int_vld, | |
63 | niu_ncu_data, | |
64 | niu_ncu_vld, | |
65 | rcu_ncu_data, | |
66 | rcu_ncu_vld, | |
67 | rd_nack_packet, | |
68 | rd_nack_vld, | |
69 | dbg1_ncu_data, | |
70 | dbg1_ncu_vld, | |
71 | scan_in, | |
72 | sii_ncu_dparity, | |
73 | sii_ncu_data, | |
74 | sii_ncu_req, | |
75 | sii_ncu_syn_data, | |
76 | sii_ncu_syn_vld, | |
77 | srvc_wr_ack, | |
78 | ssi_ncu_data, | |
79 | ssi_ncu_vld, | |
80 | tcu_clk_stop, | |
81 | tcu_ncu_stall, | |
82 | tcu_pce_ov, | |
83 | tcu_scan_en, | |
84 | tcu_aclk, | |
85 | tcu_bclk, | |
86 | tcu_dbr_gateoff, | |
87 | wr_ack_iopkt, | |
88 | mb0_run, | |
89 | mb0_iobuf_wr_en, | |
90 | mb0_addr, | |
91 | mb0_wdata, | |
92 | dmupio_wack_iopkt, | |
93 | dmupio_srvc_wack, | |
94 | bounce_ack_rd, | |
95 | iobuf_avail, | |
96 | iobuf_din, | |
97 | iobuf_tail_ptr, | |
98 | iobuf_tail_s, | |
99 | iobuf_wr, | |
100 | io_intman_addr, | |
101 | io_mondo_data0_din_s, | |
102 | io_mondo_data1_din_s, | |
103 | io_mondo_data_wr_addr_s, | |
104 | io_mondo_data_wr_s, | |
105 | ncu_ccu_stall, | |
106 | ncu_dmu_mondo_ack, | |
107 | ncu_dmu_mondo_id, | |
108 | ncu_dmu_mondo_id_par, | |
109 | ncu_dmu_mondo_nack, | |
110 | ncu_dmu_stall, | |
111 | ncu_int_ack_rd, | |
112 | ncu_man_ack_rd, | |
113 | ncu_man_int_rd, | |
114 | ncu_mcu0_stall, | |
115 | ncu_mcu1_stall, | |
116 | ncu_mcu2_stall, | |
117 | ncu_mcu3_stall, | |
118 | ncu_niu_stall, | |
119 | ncu_rcu_stall, | |
120 | ncu_dbg1_stall, | |
121 | ncu_sii_gnt, | |
122 | ncu_ssi_stall, | |
123 | ncu_tcu_data, | |
124 | ncu_tcu_vld, | |
125 | rd_nack_rd, | |
126 | scan_out, | |
127 | sii_cr_id_rtn, | |
128 | sii_cr_id_rtn_vld, | |
129 | raserrce, | |
130 | raserrue, | |
131 | io_rd_intman_d2, | |
132 | siierrsyn, | |
133 | siierrsyn_done, | |
134 | ncudpsyn, | |
135 | ncuctag_ue, | |
136 | ncuctag_uei, | |
137 | ncuctag_ce, | |
138 | ncuctag_cei, | |
139 | ncusiid_pe, | |
140 | ncusiid_pei) ; | |
141 | wire sii_mondo_rd; | |
142 | wire ssi_int_rd; | |
143 | wire mcu0_int_rd; | |
144 | wire mcu1_int_rd; | |
145 | wire mcu2_int_rd; | |
146 | wire mcu3_int_rd; | |
147 | wire niu_int_rd; | |
148 | wire siipio_ack_rd; | |
149 | wire dmucsr_ack_rd; | |
150 | wire ccu_ack_rd; | |
151 | wire mcu0_ack_rd; | |
152 | wire mcu1_ack_rd; | |
153 | wire mcu2_ack_rd; | |
154 | wire mcu3_ack_rd; | |
155 | wire ssi_ack_rd; | |
156 | wire rcu_ack_rd; | |
157 | wire dbg1_ack_rd; | |
158 | wire niu_ack_rd; | |
159 | wire iob_tap_packet_vld; | |
160 | wire [6:0] int_sel; | |
161 | wire [14:0] ack_sel; | |
162 | wire mondo_srvcd_d1; | |
163 | wire int_srvcd_d2; | |
164 | wire ack_srvcd_d1; | |
165 | wire ncu_i2csc_ctl_scanin; | |
166 | wire ncu_i2csc_ctl_scanout; | |
167 | wire sii_mondo_vld; | |
168 | wire [5:0] sii_mondo_target; | |
169 | wire sii_mondo_ctagerr; | |
170 | wire ssi_int_vld; | |
171 | wire mcu0_int_vld; | |
172 | wire mcu1_int_vld; | |
173 | wire mcu2_int_vld; | |
174 | wire mcu3_int_vld; | |
175 | wire niu_int_vld; | |
176 | wire siipio_ack_vld; | |
177 | wire dmucsr_ack_vld; | |
178 | wire ccu_ack_vld; | |
179 | wire mcu0_ack_vld; | |
180 | wire mcu1_ack_vld; | |
181 | wire mcu2_ack_vld; | |
182 | wire mcu3_ack_vld; | |
183 | wire ssi_ack_vld; | |
184 | wire rcu_ack_vld; | |
185 | wire dbg1_ack_vld; | |
186 | wire niu_ack_vld; | |
187 | wire tap_iob_busy; | |
188 | wire [127:0] ucb_ack_packet_d1; | |
189 | wire intman_dout_v; | |
190 | wire [127:0] iob_tap_packet; | |
191 | wire ncu_i2csd_ctl_scanin; | |
192 | wire ncu_i2csd_ctl_scanout; | |
193 | wire [63:0] sii_mondo_data0; | |
194 | wire [63:0] sii_mondo_data1; | |
195 | wire [24:0] ssi_int_packet; | |
196 | wire [24:0] mcu0_int_packet; | |
197 | wire [24:0] mcu1_int_packet; | |
198 | wire [24:0] mcu2_int_packet; | |
199 | wire [24:0] mcu3_int_packet; | |
200 | wire [24:0] niu_int_packet; | |
201 | wire [139:0] siipio_ack_packet; | |
202 | wire [127:0] dmucsr_ack_packet; | |
203 | wire [127:0] ccu_ack_packet; | |
204 | wire [127:0] mcu0_ack_packet; | |
205 | wire [127:0] mcu1_ack_packet; | |
206 | wire [127:0] mcu2_ack_packet; | |
207 | wire [127:0] mcu3_ack_packet; | |
208 | wire [127:0] ssi_ack_packet; | |
209 | wire [127:0] rcu_ack_packet; | |
210 | wire [127:0] dbg1_ack_packet; | |
211 | wire [127:0] niu_ack_packet; | |
212 | wire tcu_ucb_buf_scanin; | |
213 | wire tcu_ucb_buf_scanout; | |
214 | wire sii_ucb_buf_scanin; | |
215 | wire sii_ucb_buf_scanout; | |
216 | wire dmucsr_ucb_buf_scanin; | |
217 | wire dmucsr_ucb_buf_scanout; | |
218 | wire ssi_ucb_buf_scanin; | |
219 | wire ssi_ucb_buf_scanout; | |
220 | wire mcu0_ucb_buf_scanin; | |
221 | wire mcu0_ucb_buf_scanout; | |
222 | wire mcu1_ucb_buf_scanin; | |
223 | wire mcu1_ucb_buf_scanout; | |
224 | wire mcu2_ucb_buf_scanin; | |
225 | wire mcu2_ucb_buf_scanout; | |
226 | wire mcu3_ucb_buf_scanin; | |
227 | wire mcu3_ucb_buf_scanout; | |
228 | wire ccu_ucb_buf_scanin; | |
229 | wire ccu_ucb_buf_scanout; | |
230 | wire rcu_ucb_buf_scanin; | |
231 | wire rcu_ucb_buf_scanout; | |
232 | wire dbg1_ucb_buf_scanin; | |
233 | wire dbg1_ucb_buf_scanout; | |
234 | wire niu_ucb_buf_scanin; | |
235 | wire niu_ucb_buf_scanout; | |
236 | ||
237 | ||
238 | input [127:0] bounce_ack_packet; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
239 | input bounce_ack_vld; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
240 | input [3:0] ccu_ncu_data; // To ccu_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
241 | input ccu_ncu_vld; // To ccu_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
242 | input [31:0] dmu_ncu_data; // To dmucsr_ucb_buf of ncu_i2cbuf32_ni_ctl.v | |
243 | input dmu_ncu_vld; // To dmucsr_ucb_buf of ncu_i2cbuf32_ni_ctl.v | |
244 | input [11:0] intman_tbl_dout; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
245 | input intman_pchkf2i2c; | |
246 | input [5:0] iobuf_head_f; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
247 | input iol2clk; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v, ... | |
248 | input lhs_intman_acc; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
249 | input [3:0] mcu0_ncu_data; // To mcu0_ucb_buf of ncu_i2cbuf4_ctl.v | |
250 | input mcu0_ncu_vld; // To mcu0_ucb_buf of ncu_i2cbuf4_ctl.v | |
251 | input [3:0] mcu1_ncu_data; // To mcu1_ucb_buf of ncu_i2cbuf4_ctl.v | |
252 | input mcu1_ncu_vld; // To mcu1_ucb_buf of ncu_i2cbuf4_ctl.v | |
253 | input [3:0] mcu2_ncu_data; // To mcu2_ucb_buf of ncu_i2cbuf4_ctl.v | |
254 | input mcu2_ncu_vld; // To mcu2_ucb_buf of ncu_i2cbuf4_ctl.v | |
255 | input [3:0] mcu3_ncu_data; // To mcu3_ucb_buf of ncu_i2cbuf4_ctl.v | |
256 | input mcu3_ncu_vld; // To mcu3_ucb_buf of ncu_i2cbuf4_ctl.v | |
257 | input [63:0] mondo_busy_vec_f; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
258 | input [5:0] mondoinvec; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
259 | input [127:0] ncu_int_ack_packet; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
260 | input ncu_int_ack_vld; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
261 | input [127:0] ncu_man_ack_packet; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
262 | input ncu_man_ack_vld; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
263 | input [24:0] ncu_man_int_packet; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
264 | input ncu_man_int_vld; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
265 | input [31:0] niu_ncu_data; // To niu_ucb_buf of ncu_i2cbuf32_ctl.v | |
266 | input niu_ncu_vld; // To niu_ucb_buf of ncu_i2cbuf32_ctl.v | |
267 | input [3:0] rcu_ncu_data; // To rcu_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
268 | input rcu_ncu_vld; // To rcu_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
269 | input [63:0] rd_nack_packet; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
270 | input rd_nack_vld; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
271 | //input [3:0] rng_ncu_data; // To rng_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
272 | //input rng_ncu_vld; // To rng_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
273 | input [3:0] dbg1_ncu_data; // To dbg1_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
274 | input dbg1_ncu_vld; // To dbg1_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
275 | input scan_in; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
276 | input [1:0] sii_ncu_dparity; | |
277 | input [31:0] sii_ncu_data; // To sii_ucb_buf of ncu_i2cbufsii_ctl.v | |
278 | input sii_ncu_req; // To sii_ucb_buf of ncu_i2cbufsii_ctl.v | |
279 | input [3:0] sii_ncu_syn_data; | |
280 | input sii_ncu_syn_vld; | |
281 | input srvc_wr_ack; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
282 | input [3:0] ssi_ncu_data; // To ssi_ucb_buf of ncu_i2cbuf4_ctl.v | |
283 | input ssi_ncu_vld; // To ssi_ucb_buf of ncu_i2cbuf4_ctl.v | |
284 | input tcu_clk_stop; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v, ... | |
285 | input tcu_ncu_stall; // To tcu_ucb_buf of ncu_ucbbusout8_ctl.v | |
286 | input tcu_pce_ov; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v, ... | |
287 | input tcu_scan_en; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v, ... | |
288 | input tcu_aclk; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v, ... | |
289 | input tcu_bclk; // To ncu_i2csc_ctl of ncu_i2csc_ctl.v, ... | |
290 | input tcu_dbr_gateoff; | |
291 | input [152:0] wr_ack_iopkt; // To ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
292 | input mb0_run; | |
293 | input mb0_iobuf_wr_en; | |
294 | input [5:0] mb0_addr; | |
295 | input [7:0] mb0_wdata; | |
296 | input [152:0] dmupio_wack_iopkt; | |
297 | input dmupio_srvc_wack; | |
298 | ||
299 | output bounce_ack_rd; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
300 | output iobuf_avail; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
301 | output [175:0] iobuf_din; // From ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
302 | output [4:0] iobuf_tail_ptr; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
303 | output [5:0] iobuf_tail_s; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
304 | output iobuf_wr; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
305 | output [6:0] io_intman_addr; // From ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
306 | output [63:0] io_mondo_data0_din_s; // From ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
307 | output [63:0] io_mondo_data1_din_s; // From ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
308 | output [5:0] io_mondo_data_wr_addr_s;// From ncu_i2csd_ctl of ncu_i2csd_ctl.v | |
309 | output io_mondo_data_wr_s; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
310 | output ncu_ccu_stall; // From ccu_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
311 | output ncu_dmu_mondo_ack; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
312 | output [5:0] ncu_dmu_mondo_id; // From sii_ucb_buf of ncu_i2cbufsii_ctl.v | |
313 | output ncu_dmu_mondo_id_par; | |
314 | output ncu_dmu_mondo_nack; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
315 | output ncu_dmu_stall; // From dmucsr_ucb_buf of ncu_i2cbuf32_ni_ctl.v | |
316 | output ncu_int_ack_rd; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
317 | output ncu_man_ack_rd; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
318 | output ncu_man_int_rd; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
319 | output ncu_mcu0_stall; // From mcu0_ucb_buf of ncu_i2cbuf4_ctl.v | |
320 | output ncu_mcu1_stall; // From mcu1_ucb_buf of ncu_i2cbuf4_ctl.v | |
321 | output ncu_mcu2_stall; // From mcu2_ucb_buf of ncu_i2cbuf4_ctl.v | |
322 | output ncu_mcu3_stall; // From mcu3_ucb_buf of ncu_i2cbuf4_ctl.v | |
323 | output ncu_niu_stall; // From niu_ucb_buf of ncu_i2cbuf32_ctl.v | |
324 | output ncu_rcu_stall; // From rcu_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
325 | output ncu_dbg1_stall; // From dbg1_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
326 | //output ncu_rng_stall; // From rng_ucb_buf of ncu_i2cbuf4_ni_ctl.v | |
327 | output ncu_sii_gnt; // From sii_ucb_buf of ncu_i2cbufsii_ctl.v | |
328 | output ncu_ssi_stall; // From ssi_ucb_buf of ncu_i2cbuf4_ctl.v | |
329 | output [7:0] ncu_tcu_data; // From tcu_ucb_buf of ncu_ucbbusout8_ctl.v | |
330 | output ncu_tcu_vld; // From tcu_ucb_buf of ncu_ucbbusout8_ctl.v | |
331 | output rd_nack_rd; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
332 | output scan_out; // From niu_ucb_buf of ncu_i2cbuf32_ctl.v | |
333 | output [3:0] sii_cr_id_rtn; // From sii_ucb_buf of ncu_i2cbufsii_ctl.v | |
334 | output sii_cr_id_rtn_vld; // From sii_ucb_buf of ncu_i2cbufsii_ctl.v | |
335 | ||
336 | // err ecc // | |
337 | input raserrce; | |
338 | input raserrue; | |
339 | output io_rd_intman_d2; // From ncu_i2csc_ctl of ncu_i2csc_ctl.v | |
340 | output [63:0] siierrsyn; | |
341 | output siierrsyn_done; | |
342 | ||
343 | output [15:0] ncudpsyn; | |
344 | output ncuctag_ue; | |
345 | input ncuctag_uei; | |
346 | output ncuctag_ce; | |
347 | input ncuctag_cei; | |
348 | output ncusiid_pe; | |
349 | input ncusiid_pei; | |
350 | ||
351 | /* autowire */ | |
352 | ||
353 | ||
354 | ///* ncu_i2csc_ctl auto_template ( | |
355 | // .scan_out() ); */ | |
356 | ncu_i2csc_ctl ncu_i2csc_ctl (/*AUTOINST*/ | |
357 | // Outputs | |
358 | .sii_mondo_rd(sii_mondo_rd), | |
359 | .ncu_dmu_mondo_ack(ncu_dmu_mondo_ack), | |
360 | .ncu_dmu_mondo_nack(ncu_dmu_mondo_nack), | |
361 | .ssi_int_rd(ssi_int_rd), | |
362 | .mcu0_int_rd(mcu0_int_rd), | |
363 | .mcu1_int_rd(mcu1_int_rd), | |
364 | .mcu2_int_rd(mcu2_int_rd), | |
365 | .mcu3_int_rd(mcu3_int_rd), | |
366 | .niu_int_rd(niu_int_rd), | |
367 | .ncu_man_int_rd(ncu_man_int_rd), | |
368 | .siipio_ack_rd(siipio_ack_rd), | |
369 | .dmucsr_ack_rd(dmucsr_ack_rd), | |
370 | .ccu_ack_rd(ccu_ack_rd), | |
371 | .mcu0_ack_rd(mcu0_ack_rd), | |
372 | .mcu1_ack_rd(mcu1_ack_rd), | |
373 | .mcu2_ack_rd(mcu2_ack_rd), | |
374 | .mcu3_ack_rd(mcu3_ack_rd), | |
375 | .ssi_ack_rd(ssi_ack_rd), | |
376 | .rcu_ack_rd(rcu_ack_rd), | |
377 | .dbg1_ack_rd(dbg1_ack_rd), | |
378 | .niu_ack_rd(niu_ack_rd), | |
379 | .ncu_man_ack_rd(ncu_man_ack_rd), | |
380 | .ncu_int_ack_rd(ncu_int_ack_rd), | |
381 | .bounce_ack_rd(bounce_ack_rd), | |
382 | .rd_nack_rd(rd_nack_rd), | |
383 | .iob_tap_packet_vld(iob_tap_packet_vld), | |
384 | .int_sel (int_sel[6:0]), | |
385 | .ack_sel (ack_sel[14:0]), | |
386 | .mondo_srvcd_d1(mondo_srvcd_d1), | |
387 | .int_srvcd_d2(int_srvcd_d2), | |
388 | .ack_srvcd_d1(ack_srvcd_d1), | |
389 | .iobuf_tail_s(iobuf_tail_s[5:0]), | |
390 | .io_mondo_data_wr_s(io_mondo_data_wr_s), | |
391 | .iobuf_avail(iobuf_avail), | |
392 | .iobuf_wr (iobuf_wr), | |
393 | .iobuf_tail_ptr(iobuf_tail_ptr[4:0]), | |
394 | // Inputs | |
395 | .tcu_dbr_gateoff(tcu_dbr_gateoff), | |
396 | .scan_in(ncu_i2csc_ctl_scanin), | |
397 | .scan_out(ncu_i2csc_ctl_scanout), | |
398 | .iol2clk (iol2clk), | |
399 | .tcu_pce_ov(tcu_pce_ov), | |
400 | .tcu_clk_stop(tcu_clk_stop), | |
401 | .tcu_scan_en(tcu_scan_en), | |
402 | .tcu_aclk (tcu_aclk), | |
403 | .tcu_bclk (tcu_bclk), | |
404 | .sii_mondo_vld(sii_mondo_vld), | |
405 | .sii_mondo_target(sii_mondo_target[5:0]), | |
406 | .sii_mondo_ctagerr(sii_mondo_ctagerr), | |
407 | .ssi_int_vld(ssi_int_vld), | |
408 | .mcu0_int_vld(mcu0_int_vld), | |
409 | .mcu1_int_vld(mcu1_int_vld), | |
410 | .mcu2_int_vld(mcu2_int_vld), | |
411 | .mcu3_int_vld(mcu3_int_vld), | |
412 | .niu_int_vld(niu_int_vld), | |
413 | .ncu_man_int_vld(ncu_man_int_vld), | |
414 | .siipio_ack_vld(siipio_ack_vld), | |
415 | .dmucsr_ack_vld(dmucsr_ack_vld), | |
416 | .ccu_ack_vld(ccu_ack_vld), | |
417 | .mcu0_ack_vld(mcu0_ack_vld), | |
418 | .mcu1_ack_vld(mcu1_ack_vld), | |
419 | .mcu2_ack_vld(mcu2_ack_vld), | |
420 | .mcu3_ack_vld(mcu3_ack_vld), | |
421 | .ssi_ack_vld(ssi_ack_vld), | |
422 | .rcu_ack_vld(rcu_ack_vld), | |
423 | .dbg1_ack_vld(dbg1_ack_vld), | |
424 | .niu_ack_vld(niu_ack_vld), | |
425 | .ncu_man_ack_vld(ncu_man_ack_vld), | |
426 | .ncu_int_ack_vld(ncu_int_ack_vld), | |
427 | .bounce_ack_vld(bounce_ack_vld), | |
428 | .rd_nack_vld(rd_nack_vld), | |
429 | .tap_iob_busy(tap_iob_busy), | |
430 | .ucb_ack_packet_d1(ucb_ack_packet_d1[127:0]), | |
431 | .iobuf_head_f(iobuf_head_f[5:0]), | |
432 | .mondo_busy_vec_f(mondo_busy_vec_f[63:0]), | |
433 | .srvc_wr_ack(srvc_wr_ack), | |
434 | .dmupio_srvc_wack(dmupio_srvc_wack), | |
435 | .lhs_intman_acc(lhs_intman_acc), | |
436 | .intman_pchkf2i2c(intman_pchkf2i2c), | |
437 | .intman_dout_v(intman_dout_v), | |
438 | .mb0_waddr (mb0_addr[5:0]), | |
439 | .mb0_run(mb0_run), | |
440 | .mb0_iobuf_wr_en(mb0_iobuf_wr_en)); | |
441 | ||
442 | ||
443 | ||
444 | ///*ncu_i2csd_ctl auto_template ( | |
445 | // .scan_out() ); */ | |
446 | ncu_i2csd_ctl ncu_i2csd_ctl (/*AUTOINST*/ | |
447 | // Outputs | |
448 | .io_mondo_data_wr_addr_s(io_mondo_data_wr_addr_s[5:0]), | |
449 | .io_mondo_data0_din_s(io_mondo_data0_din_s[63:0]), | |
450 | .io_mondo_data1_din_s(io_mondo_data1_din_s[63:0]), | |
451 | .io_intman_addr(io_intman_addr[6:0]), | |
452 | .ucb_ack_packet_d1(ucb_ack_packet_d1[127:0]), | |
453 | .iobuf_din (iobuf_din[175:0]), | |
454 | .iob_tap_packet(iob_tap_packet[127:0]), | |
455 | .io_rd_intman_d2(io_rd_intman_d2), | |
456 | .intman_dout_v(intman_dout_v), | |
457 | // Inputs | |
458 | .scan_in(ncu_i2csd_ctl_scanin), | |
459 | .scan_out(ncu_i2csd_ctl_scanout), | |
460 | .iol2clk (iol2clk), | |
461 | .tcu_pce_ov(tcu_pce_ov), | |
462 | .tcu_clk_stop(tcu_clk_stop), | |
463 | .tcu_scan_en(tcu_scan_en), | |
464 | .tcu_aclk (tcu_aclk), | |
465 | .tcu_bclk (tcu_bclk), | |
466 | .sii_mondo_data0(sii_mondo_data0[63:0]), | |
467 | .sii_mondo_data1(sii_mondo_data1[63:0]), | |
468 | .sii_mondo_target(sii_mondo_target[5:0]), | |
469 | .sii_mondo_ctagerr(sii_mondo_ctagerr), | |
470 | .ssi_int_packet(ssi_int_packet[24:0]), | |
471 | .mcu0_int_packet(mcu0_int_packet[24:0]), | |
472 | .mcu1_int_packet(mcu1_int_packet[24:0]), | |
473 | .mcu2_int_packet(mcu2_int_packet[24:0]), | |
474 | .mcu3_int_packet(mcu3_int_packet[24:0]), | |
475 | .niu_int_packet(niu_int_packet[24:0]), | |
476 | .ncu_man_int_packet(ncu_man_int_packet[24:0]), | |
477 | .siipio_ack_packet(siipio_ack_packet[139:0]), | |
478 | .dmucsr_ack_packet(dmucsr_ack_packet[127:0]), | |
479 | .ccu_ack_packet(ccu_ack_packet[127:0]), | |
480 | .mcu0_ack_packet(mcu0_ack_packet[127:0]), | |
481 | .mcu1_ack_packet(mcu1_ack_packet[127:0]), | |
482 | .mcu2_ack_packet(mcu2_ack_packet[127:0]), | |
483 | .mcu3_ack_packet(mcu3_ack_packet[127:0]), | |
484 | .ssi_ack_packet(ssi_ack_packet[127:0]), | |
485 | .rcu_ack_packet(rcu_ack_packet[127:0]), | |
486 | .dbg1_ack_packet(dbg1_ack_packet[127:0]), | |
487 | .niu_ack_packet(niu_ack_packet[127:0]), | |
488 | .ncu_man_ack_packet(ncu_man_ack_packet[127:0]), | |
489 | .ncu_int_ack_packet(ncu_int_ack_packet[127:0]), | |
490 | .bounce_ack_packet(bounce_ack_packet[127:0]), | |
491 | .rd_nack_packet(rd_nack_packet[63:0]), | |
492 | .intman_tbl_dout(intman_tbl_dout[11:0]), | |
493 | .int_sel (int_sel[6:0]), | |
494 | .ack_sel (ack_sel[14:0]), | |
495 | .mondo_srvcd_d1(mondo_srvcd_d1), | |
496 | .int_srvcd_d2(int_srvcd_d2), | |
497 | .ack_srvcd_d1(ack_srvcd_d1), | |
498 | .raserrce(raserrce), | |
499 | .raserrue(raserrue), | |
500 | .mb0_addr(mb0_addr[5:0]), | |
501 | .mb0_wdata(mb0_wdata[7:0]), | |
502 | .mb0_run(mb0_run), | |
503 | .mb0_iobuf_wr_en(mb0_iobuf_wr_en), | |
504 | .wr_ack_iopkt(wr_ack_iopkt[152:0]), | |
505 | .dmupio_wack_iopkt(dmupio_wack_iopkt[152:0]), | |
506 | .srvc_wr_ack(srvc_wr_ack), | |
507 | .mondoinvec(mondoinvec[5:0])); | |
508 | ||
509 | ||
510 | ||
511 | /***************************************************************** | |
512 | * outbound to TAP | |
513 | *****************************************************************/ | |
514 | ///* ncu_i2cbuftcu_ctl auto_template ( | |
515 | // .scan_out (), | |
516 | // .vld (ncu_tcu_vld), | |
517 | // .data (ncu_tcu_data[7:0]), | |
518 | // .stall (tcu_ncu_stall) ) ; */ | |
519 | ncu_i2cbuftcu_ctl tcu_ucb_buf (/*AUTOINST*/ | |
520 | // Outputs | |
521 | .vld (ncu_tcu_vld), // Templated | |
522 | .data (ncu_tcu_data[7:0]), // Templated | |
523 | .tap_iob_busy(tap_iob_busy), | |
524 | // Inputs | |
525 | .scan_in(tcu_ucb_buf_scanin), | |
526 | .scan_out(tcu_ucb_buf_scanout), | |
527 | .iol2clk (iol2clk), | |
528 | .tcu_pce_ov(tcu_pce_ov), | |
529 | .tcu_clk_stop(tcu_clk_stop), | |
530 | .tcu_scan_en(tcu_scan_en), | |
531 | .tcu_aclk(tcu_aclk), | |
532 | .tcu_bclk(tcu_bclk), | |
533 | .stall (tcu_ncu_stall), // Templated | |
534 | .iob_tap_packet(iob_tap_packet[127:0]), | |
535 | .iob_tap_packet_vld(iob_tap_packet_vld)); | |
536 | ||
537 | ||
538 | ||
539 | ||
540 | /***************************************************************** | |
541 | * inbound sii ucb buffers | |
542 | *****************************************************************/ | |
543 | ///* ncu_i2cbufsii_ctl auto_template ( | |
544 | // .scan_out (), | |
545 | // .req_ack_obj (siipio_ack_packet[139:0]), | |
546 | // .req_ack_vld (siipio_ack_vld), | |
547 | // .rd_req_ack_dbl_buf (siipio_ack_rd)); */ | |
548 | ncu_i2cbufsii_ctl sii_ucb_buf (/*AUTOINST*/ | |
549 | // Outputs | |
550 | .ncu_sii_gnt(ncu_sii_gnt), | |
551 | .sii_mondo_vld(sii_mondo_vld), | |
552 | .sii_mondo_data0(sii_mondo_data0[63:0]), | |
553 | .sii_mondo_data1(sii_mondo_data1[63:0]), | |
554 | .sii_mondo_target(sii_mondo_target[5:0]), | |
555 | .sii_mondo_ctagerr(sii_mondo_ctagerr), | |
556 | .ncu_dmu_mondo_id(ncu_dmu_mondo_id[5:0]), | |
557 | .ncu_dmu_mondo_id_par(ncu_dmu_mondo_id_par), | |
558 | .sii_cr_id_rtn(sii_cr_id_rtn[3:0]), | |
559 | .sii_cr_id_rtn_vld(sii_cr_id_rtn_vld), | |
560 | .req_ack_obj(siipio_ack_packet[139:0]), // Templated | |
561 | .req_ack_vld(siipio_ack_vld), // Templated | |
562 | .ncuctag_ue(ncuctag_ue), | |
563 | .ncuctag_ce(ncuctag_ce), | |
564 | .ncusiid_pe(ncusiid_pe), | |
565 | .ncudpsyn(ncudpsyn[15:0]), | |
566 | .siierrsyn(siierrsyn[63:0]), | |
567 | .siierrsyn_done(siierrsyn_done), | |
568 | // Inputs | |
569 | .scan_in(sii_ucb_buf_scanin), | |
570 | .scan_out(sii_ucb_buf_scanout), | |
571 | .iol2clk(iol2clk), | |
572 | .tcu_pce_ov(tcu_pce_ov), | |
573 | .tcu_clk_stop(tcu_clk_stop), | |
574 | .tcu_scan_en(tcu_scan_en), | |
575 | .tcu_aclk(tcu_aclk), | |
576 | .tcu_bclk(tcu_bclk), | |
577 | .sii_ncu_data(sii_ncu_data[31:0]), | |
578 | .sii_ncu_dparity(sii_ncu_dparity[1:0]), | |
579 | .sii_ncu_req(sii_ncu_req), | |
580 | .sii_ncu_syn_data(sii_ncu_syn_data[3:0]), | |
581 | .sii_ncu_syn_vld(sii_ncu_syn_vld), | |
582 | .sii_mondo_rd(sii_mondo_rd), | |
583 | .rd_req_ack_dbl_buf(siipio_ack_rd), // Templated | |
584 | .ncuctag_uei(ncuctag_uei), | |
585 | .ncuctag_cei(ncuctag_cei), | |
586 | .ncusiid_pei(ncusiid_pei)); | |
587 | ||
588 | ||
589 | ||
590 | /***************************************************************** | |
591 | * inbound dmucsr ucb buffers (no support to int) | |
592 | *****************************************************************/ | |
593 | ///* ncu_i2cbuf32_ni_ctl auto_template | |
594 | // ( | |
595 | // .scan_out (), | |
596 | // .ucb_iob_vld (dmu_ncu_vld), | |
597 | // .ucb_iob_data (dmu_ncu_data[31:0]), | |
598 | // .iob_ucb_stall (ncu_dmu_stall), | |
599 | // //// | |
600 | // .req_ack_obj (dmucsr_ack_packet[127:0]), | |
601 | // .req_ack_vld (dmucsr_ack_vld), | |
602 | // .rd_req_ack_dbl_buf (dmucsr_ack_rd),); */ | |
603 | ncu_i2cbuf32_ni_ctl dmucsr_ucb_buf (/*AUTOINST*/ | |
604 | // Outputs | |
605 | .iob_ucb_stall(ncu_dmu_stall), // Templated | |
606 | .req_ack_obj(dmucsr_ack_packet[127:0]), // Templated | |
607 | .req_ack_vld(dmucsr_ack_vld), // Templated | |
608 | // Inputs | |
609 | .tcu_dbr_gateoff(tcu_dbr_gateoff), | |
610 | .scan_in(dmucsr_ucb_buf_scanin), | |
611 | .scan_out(dmucsr_ucb_buf_scanout), | |
612 | .iol2clk(iol2clk), | |
613 | .tcu_pce_ov(tcu_pce_ov), | |
614 | .tcu_clk_stop(tcu_clk_stop), | |
615 | .tcu_scan_en(tcu_scan_en), | |
616 | .tcu_aclk(tcu_aclk), | |
617 | .tcu_bclk(tcu_bclk), | |
618 | .ucb_iob_vld(dmu_ncu_vld), // Templated | |
619 | .ucb_iob_data(dmu_ncu_data[31:0]), // Templated | |
620 | .rd_req_ack_dbl_buf(dmucsr_ack_rd)); // Templated | |
621 | ||
622 | ||
623 | ||
624 | /***************************************************************** | |
625 | * inbound ssi ucb buffers | |
626 | *****************************************************************/ | |
627 | ///* ncu_i2cbuf4_ctl auto_template ( | |
628 | // .scan_out (), | |
629 | // .ucb_iob_vld (ssi_ncu_vld), | |
630 | // .ucb_iob_data (ssi_ncu_data[3:0]), | |
631 | // .iob_ucb_stall (ncu_ssi_stall), | |
632 | // .req_ack_obj (ssi_ack_packet[127:0]), | |
633 | // .req_ack_vld (ssi_ack_vld), | |
634 | // .rd_req_ack_dbl_buf (ssi_ack_rd), | |
635 | // .int_obj (ssi_int_packet[24:0]), | |
636 | // .int_vld (ssi_int_vld), | |
637 | // .rd_int_dbl_buf (ssi_int_rd)); */ | |
638 | ncu_i2cbuf4_ctl ssi_ucb_buf (/*AUTOINST*/ | |
639 | // Outputs | |
640 | .iob_ucb_stall(ncu_ssi_stall), // Templated | |
641 | .req_ack_obj(ssi_ack_packet[127:0]), // Templated | |
642 | .req_ack_vld(ssi_ack_vld), // Templated | |
643 | .int_obj (ssi_int_packet[24:0]), // Templated | |
644 | .int_vld (ssi_int_vld), // Templated | |
645 | // Inputs | |
646 | .scan_in(ssi_ucb_buf_scanin), | |
647 | .scan_out(ssi_ucb_buf_scanout), | |
648 | .iol2clk (iol2clk), | |
649 | .tcu_pce_ov(tcu_pce_ov), | |
650 | .tcu_clk_stop(tcu_clk_stop), | |
651 | .tcu_scan_en(tcu_scan_en), | |
652 | .tcu_aclk (tcu_aclk), | |
653 | .tcu_bclk (tcu_bclk), | |
654 | .ucb_iob_vld(ssi_ncu_vld), // Templated | |
655 | .ucb_iob_data(ssi_ncu_data[3:0]), // Templated | |
656 | .rd_req_ack_dbl_buf(ssi_ack_rd), // Templated | |
657 | .rd_int_dbl_buf(ssi_int_rd)); // Templated | |
658 | ||
659 | ||
660 | ||
661 | /***************************************************************** | |
662 | * inbound mcu0 ucb buffers | |
663 | *****************************************************************/ | |
664 | ///* ncu_i2cbuf4_ctl auto_template ( | |
665 | // .scan_out (), | |
666 | // .ucb_iob_vld (mcu0_ncu_vld), | |
667 | // .ucb_iob_data (mcu0_ncu_data[3:0]), | |
668 | // .iob_ucb_stall (ncu_mcu0_stall), | |
669 | // .req_ack_obj (mcu0_ack_packet[127:0]), | |
670 | // .req_ack_vld (mcu0_ack_vld), | |
671 | // .rd_req_ack_dbl_buf (mcu0_ack_rd), | |
672 | // .int_obj (mcu0_int_packet[24:0]), | |
673 | // .int_vld (mcu0_int_vld), | |
674 | // .rd_int_dbl_buf (mcu0_int_rd)); */ | |
675 | ncu_i2cbuf4_ctl mcu0_ucb_buf (/*AUTOINST*/ | |
676 | // Outputs | |
677 | .iob_ucb_stall(ncu_mcu0_stall), // Templated | |
678 | .req_ack_obj(mcu0_ack_packet[127:0]), // Templated | |
679 | .req_ack_vld(mcu0_ack_vld), // Templated | |
680 | .int_obj (mcu0_int_packet[24:0]), // Templated | |
681 | .int_vld (mcu0_int_vld), // Templated | |
682 | // Inputs | |
683 | .scan_in(mcu0_ucb_buf_scanin), | |
684 | .scan_out(mcu0_ucb_buf_scanout), | |
685 | .iol2clk (iol2clk), | |
686 | .tcu_pce_ov(tcu_pce_ov), | |
687 | .tcu_clk_stop(tcu_clk_stop), | |
688 | .tcu_scan_en(tcu_scan_en), | |
689 | .tcu_aclk (tcu_aclk), | |
690 | .tcu_bclk (tcu_bclk), | |
691 | .ucb_iob_vld(mcu0_ncu_vld), // Templated | |
692 | .ucb_iob_data(mcu0_ncu_data[3:0]), // Templated | |
693 | .rd_req_ack_dbl_buf(mcu0_ack_rd), // Templated | |
694 | .rd_int_dbl_buf(mcu0_int_rd)); // Templated | |
695 | ||
696 | ||
697 | ||
698 | /***************************************************************** | |
699 | * inbound mcu1 ucb buffers | |
700 | *****************************************************************/ | |
701 | ///* ncu_i2cbuf4_ctl auto_template ( | |
702 | // .scan_out (), | |
703 | // .ucb_iob_vld (mcu1_ncu_vld), | |
704 | // .ucb_iob_data (mcu1_ncu_data[3:0]), | |
705 | // .iob_ucb_stall (ncu_mcu1_stall), | |
706 | // .req_ack_obj (mcu1_ack_packet[127:0]), | |
707 | // .req_ack_vld (mcu1_ack_vld), | |
708 | // .rd_req_ack_dbl_buf (mcu1_ack_rd), | |
709 | // .int_obj (mcu1_int_packet[24:0]), | |
710 | // .int_vld (mcu1_int_vld), | |
711 | // .rd_int_dbl_buf (mcu1_int_rd),); */ | |
712 | ncu_i2cbuf4_ctl mcu1_ucb_buf (/*AUTOINST*/ | |
713 | // Outputs | |
714 | .iob_ucb_stall(ncu_mcu1_stall), // Templated | |
715 | .req_ack_obj(mcu1_ack_packet[127:0]), // Templated | |
716 | .req_ack_vld(mcu1_ack_vld), // Templated | |
717 | .int_obj (mcu1_int_packet[24:0]), // Templated | |
718 | .int_vld (mcu1_int_vld), // Templated | |
719 | // Inputs | |
720 | .scan_in(mcu1_ucb_buf_scanin), | |
721 | .scan_out(mcu1_ucb_buf_scanout), | |
722 | .iol2clk (iol2clk), | |
723 | .tcu_pce_ov(tcu_pce_ov), | |
724 | .tcu_clk_stop(tcu_clk_stop), | |
725 | .tcu_scan_en(tcu_scan_en), | |
726 | .tcu_aclk (tcu_aclk), | |
727 | .tcu_bclk (tcu_bclk), | |
728 | .ucb_iob_vld(mcu1_ncu_vld), // Templated | |
729 | .ucb_iob_data(mcu1_ncu_data[3:0]), // Templated | |
730 | .rd_req_ack_dbl_buf(mcu1_ack_rd), // Templated | |
731 | .rd_int_dbl_buf(mcu1_int_rd)); // Templated | |
732 | ||
733 | ||
734 | ||
735 | /***************************************************************** | |
736 | * inbound mcu2 ucb buffers | |
737 | *****************************************************************/ | |
738 | ///* ncu_i2cbuf4_ctl auto_template ( | |
739 | // .scan_out (), | |
740 | // .ucb_iob_vld (mcu2_ncu_vld), | |
741 | // .ucb_iob_data (mcu2_ncu_data[3:0]), | |
742 | // .iob_ucb_stall (ncu_mcu2_stall), | |
743 | // .req_ack_obj (mcu2_ack_packet[127:0]), | |
744 | // .req_ack_vld (mcu2_ack_vld), | |
745 | // .rd_req_ack_dbl_buf (mcu2_ack_rd), | |
746 | // .int_obj (mcu2_int_packet[24:0]), | |
747 | // .int_vld (mcu2_int_vld), | |
748 | // .rd_int_dbl_buf (mcu2_int_rd),); */ | |
749 | ncu_i2cbuf4_ctl mcu2_ucb_buf (/*AUTOINST*/ | |
750 | // Outputs | |
751 | .iob_ucb_stall(ncu_mcu2_stall), // Templated | |
752 | .req_ack_obj(mcu2_ack_packet[127:0]), // Templated | |
753 | .req_ack_vld(mcu2_ack_vld), // Templated | |
754 | .int_obj (mcu2_int_packet[24:0]), // Templated | |
755 | .int_vld (mcu2_int_vld), // Templated | |
756 | // Inputs | |
757 | .scan_in(mcu2_ucb_buf_scanin), | |
758 | .scan_out(mcu2_ucb_buf_scanout), | |
759 | .iol2clk (iol2clk), | |
760 | .tcu_pce_ov(tcu_pce_ov), | |
761 | .tcu_clk_stop(tcu_clk_stop), | |
762 | .tcu_scan_en(tcu_scan_en), | |
763 | .tcu_aclk (tcu_aclk), | |
764 | .tcu_bclk (tcu_bclk), | |
765 | .ucb_iob_vld(mcu2_ncu_vld), // Templated | |
766 | .ucb_iob_data(mcu2_ncu_data[3:0]), // Templated | |
767 | .rd_req_ack_dbl_buf(mcu2_ack_rd), // Templated | |
768 | .rd_int_dbl_buf(mcu2_int_rd)); // Templated | |
769 | ||
770 | ||
771 | ||
772 | /***************************************************************** | |
773 | * inbound mcu3 ucb buffers | |
774 | *****************************************************************/ | |
775 | ///* ncu_i2cbuf4_ctl auto_template ( | |
776 | // .scan_out (), | |
777 | // .ucb_iob_vld (mcu3_ncu_vld), | |
778 | // .ucb_iob_data (mcu3_ncu_data[3:0]), | |
779 | // .iob_ucb_stall (ncu_mcu3_stall), | |
780 | // .req_ack_obj (mcu3_ack_packet[127:0]), | |
781 | // .req_ack_vld (mcu3_ack_vld), | |
782 | // .rd_req_ack_dbl_buf (mcu3_ack_rd), | |
783 | // .int_obj (mcu3_int_packet[24:0]), | |
784 | // .int_vld (mcu3_int_vld), | |
785 | // .rd_int_dbl_buf (mcu3_int_rd)); */ | |
786 | ncu_i2cbuf4_ctl mcu3_ucb_buf (/*AUTOINST*/ | |
787 | // Outputs | |
788 | .iob_ucb_stall(ncu_mcu3_stall), // Templated | |
789 | .req_ack_obj(mcu3_ack_packet[127:0]), // Templated | |
790 | .req_ack_vld(mcu3_ack_vld), // Templated | |
791 | .int_obj (mcu3_int_packet[24:0]), // Templated | |
792 | .int_vld (mcu3_int_vld), // Templated | |
793 | // Inputs | |
794 | .scan_in(mcu3_ucb_buf_scanin), | |
795 | .scan_out(mcu3_ucb_buf_scanout), | |
796 | .iol2clk (iol2clk), | |
797 | .tcu_pce_ov(tcu_pce_ov), | |
798 | .tcu_clk_stop(tcu_clk_stop), | |
799 | .tcu_scan_en(tcu_scan_en), | |
800 | .tcu_aclk (tcu_aclk), | |
801 | .tcu_bclk (tcu_bclk), | |
802 | .ucb_iob_vld(mcu3_ncu_vld), // Templated | |
803 | .ucb_iob_data(mcu3_ncu_data[3:0]), // Templated | |
804 | .rd_req_ack_dbl_buf(mcu3_ack_rd), // Templated | |
805 | .rd_int_dbl_buf(mcu3_int_rd)); // Templated | |
806 | ||
807 | ||
808 | ||
809 | /***************************************************************** | |
810 | * inbound ccu ucb buffers (no int support) | |
811 | *****************************************************************/ | |
812 | ///* ncu_i2cbuf4_ni_ctl auto_template ( | |
813 | // .scan_out (), | |
814 | // .ucb_iob_vld (ccu_ncu_vld), | |
815 | // .ucb_iob_data (ccu_ncu_data[3:0]), | |
816 | // .iob_ucb_stall (ncu_ccu_stall), | |
817 | // .req_ack_obj (ccu_ack_packet[127:0]), | |
818 | // .req_ack_vld (ccu_ack_vld), | |
819 | // .rd_req_ack_dbl_buf (ccu_ack_rd)); */ | |
820 | ncu_i2cbuf4_ni_ctl ccu_ucb_buf (/*AUTOINST*/ | |
821 | // Outputs | |
822 | .iob_ucb_stall(ncu_ccu_stall), // Templated | |
823 | .req_ack_obj(ccu_ack_packet[127:0]), // Templated | |
824 | .req_ack_vld(ccu_ack_vld), // Templated | |
825 | // Inputs | |
826 | .scan_in(ccu_ucb_buf_scanin), | |
827 | .scan_out(ccu_ucb_buf_scanout), | |
828 | .iol2clk(iol2clk), | |
829 | .tcu_pce_ov(tcu_pce_ov), | |
830 | .tcu_clk_stop(tcu_clk_stop), | |
831 | .tcu_scan_en(tcu_scan_en), | |
832 | .tcu_aclk(tcu_aclk), | |
833 | .tcu_bclk(tcu_bclk), | |
834 | .ucb_iob_vld(ccu_ncu_vld), // Templated | |
835 | .ucb_iob_data(ccu_ncu_data[3:0]), // Templated | |
836 | .rd_req_ack_dbl_buf(ccu_ack_rd)); // Templated | |
837 | ||
838 | ||
839 | ||
840 | /***************************************************************** | |
841 | * inbound rcu ucb buffers (no int support) | |
842 | *****************************************************************/ | |
843 | ///* ncu_i2cbuf4_ni_ctl auto_template ( | |
844 | // .scan_out (), | |
845 | // .ucb_iob_vld (rcu_ncu_vld), | |
846 | // .ucb_iob_data (rcu_ncu_data[3:0]), | |
847 | // .iob_ucb_stall (ncu_rcu_stall), | |
848 | // .req_ack_obj (rcu_ack_packet[127:0]), | |
849 | // .req_ack_vld (rcu_ack_vld), | |
850 | // .rd_req_ack_dbl_buf (rcu_ack_rd)); */ | |
851 | ncu_i2cbuf4_ni_ctl rcu_ucb_buf (/*AUTOINST*/ | |
852 | // Outputs | |
853 | .iob_ucb_stall(ncu_rcu_stall), // Templated | |
854 | .req_ack_obj(rcu_ack_packet[127:0]), // Templated | |
855 | .req_ack_vld(rcu_ack_vld), // Templated | |
856 | // Inputs | |
857 | .scan_in(rcu_ucb_buf_scanin), | |
858 | .scan_out(rcu_ucb_buf_scanout), | |
859 | .iol2clk(iol2clk), | |
860 | .tcu_pce_ov(tcu_pce_ov), | |
861 | .tcu_clk_stop(tcu_clk_stop), | |
862 | .tcu_scan_en(tcu_scan_en), | |
863 | .tcu_aclk(tcu_aclk), | |
864 | .tcu_bclk(tcu_bclk), | |
865 | .ucb_iob_vld(rcu_ncu_vld), // Templated | |
866 | .ucb_iob_data(rcu_ncu_data[3:0]), // Templated | |
867 | .rd_req_ack_dbl_buf(rcu_ack_rd)); // Templated | |
868 | ||
869 | ||
870 | ||
871 | /***************************************************************** | |
872 | * inbound rng ucb buffers (no int support) | |
873 | *****************************************************************/ | |
874 | ///* ncu_i2cbuf4_ni_ctl auto_template | |
875 | // ( | |
876 | // .scan_out (), | |
877 | // .ucb_iob_vld (rng_ncu_vld), | |
878 | // .ucb_iob_data (rng_ncu_data[3:0]), | |
879 | // .iob_ucb_stall (ncu_rng_stall), | |
880 | // .req_ack_obj (rng_ack_packet[127:0]), | |
881 | // .req_ack_vld (rng_ack_vld), | |
882 | // .rd_req_ack_dbl_buf (rng_ack_rd)); */ | |
883 | ncu_i2cbuf4_ni_ctl dbg1_ucb_buf (/*AUTOINST*/ | |
884 | // Outputs | |
885 | .iob_ucb_stall(ncu_dbg1_stall), // Templated | |
886 | .req_ack_obj(dbg1_ack_packet[127:0]), // Templated | |
887 | .req_ack_vld(dbg1_ack_vld), // Templated | |
888 | // Inputs | |
889 | .scan_in(dbg1_ucb_buf_scanin), | |
890 | .scan_out(dbg1_ucb_buf_scanout), | |
891 | .iol2clk(iol2clk), | |
892 | .tcu_pce_ov(tcu_pce_ov), | |
893 | .tcu_clk_stop(tcu_clk_stop), | |
894 | .tcu_scan_en(tcu_scan_en), | |
895 | .tcu_aclk(tcu_aclk), | |
896 | .tcu_bclk(tcu_bclk), | |
897 | .ucb_iob_vld(dbg1_ncu_vld), // Templated | |
898 | .ucb_iob_data(dbg1_ncu_data[3:0]), // Templated | |
899 | .rd_req_ack_dbl_buf(dbg1_ack_rd)); // Templated | |
900 | ||
901 | ||
902 | ||
903 | ||
904 | /***************************************************************** | |
905 | * inbound niu ucb buffers | |
906 | *****************************************************************/ | |
907 | ///* ncu_i2cbuf32_ctl auto_template ( | |
908 | // .scan_out (), | |
909 | // .ucb_iob_vld (niu_ncu_vld), | |
910 | // .ucb_iob_data (niu_ncu_data[31:0]), | |
911 | // .iob_ucb_stall (ncu_niu_stall), | |
912 | // .req_ack_obj (niu_ack_packet[127:0]), | |
913 | // .req_ack_vld (niu_ack_vld), | |
914 | // .rd_req_ack_dbl_buf (niu_ack_rd), | |
915 | // .int_obj (niu_int_packet[24:0]), | |
916 | // .int_vld (niu_int_vld), | |
917 | // .rd_int_dbl_buf (niu_int_rd)); */ | |
918 | ncu_i2cbuf32_ctl niu_ucb_buf (/*AUTOINST*/ | |
919 | // Outputs | |
920 | .iob_ucb_stall(ncu_niu_stall), // Templated | |
921 | .req_ack_obj(niu_ack_packet[127:0]), // Templated | |
922 | .req_ack_vld(niu_ack_vld), // Templated | |
923 | .int_obj (niu_int_packet[24:0]), // Templated | |
924 | .int_vld (niu_int_vld), // Templated | |
925 | // Inputs | |
926 | .tcu_dbr_gateoff(tcu_dbr_gateoff), | |
927 | .scan_in(niu_ucb_buf_scanin), | |
928 | .scan_out(niu_ucb_buf_scanout), | |
929 | .iol2clk (iol2clk), | |
930 | .tcu_pce_ov(tcu_pce_ov), | |
931 | .tcu_clk_stop(tcu_clk_stop), | |
932 | .tcu_scan_en(tcu_scan_en), | |
933 | .tcu_aclk (tcu_aclk), | |
934 | .tcu_bclk (tcu_bclk), | |
935 | .ucb_iob_vld(niu_ncu_vld), // Templated | |
936 | .ucb_iob_data(niu_ncu_data[31:0]), // Templated | |
937 | .rd_req_ack_dbl_buf(niu_ack_rd), // Templated | |
938 | .rd_int_dbl_buf(niu_int_rd)); // Templated | |
939 | ||
940 | ||
941 | ||
942 | ||
943 | ||
944 | ||
945 | // fixscan start: | |
946 | assign ncu_i2csc_ctl_scanin = scan_in ; | |
947 | assign ncu_i2csd_ctl_scanin = ncu_i2csc_ctl_scanout ; | |
948 | assign tcu_ucb_buf_scanin = ncu_i2csd_ctl_scanout ; | |
949 | assign sii_ucb_buf_scanin = tcu_ucb_buf_scanout ; | |
950 | assign dmucsr_ucb_buf_scanin = sii_ucb_buf_scanout ; | |
951 | assign ssi_ucb_buf_scanin = dmucsr_ucb_buf_scanout ; | |
952 | assign mcu0_ucb_buf_scanin = ssi_ucb_buf_scanout ; | |
953 | assign mcu1_ucb_buf_scanin = mcu0_ucb_buf_scanout ; | |
954 | assign mcu2_ucb_buf_scanin = mcu1_ucb_buf_scanout ; | |
955 | assign mcu3_ucb_buf_scanin = mcu2_ucb_buf_scanout ; | |
956 | assign ccu_ucb_buf_scanin = mcu3_ucb_buf_scanout ; | |
957 | assign rcu_ucb_buf_scanin = ccu_ucb_buf_scanout ; | |
958 | assign dbg1_ucb_buf_scanin = rcu_ucb_buf_scanout ; | |
959 | assign niu_ucb_buf_scanin = dbg1_ucb_buf_scanout ; | |
960 | assign scan_out = niu_ucb_buf_scanout ; | |
961 | // fixscan end: | |
962 | endmodule | |
963 | ||
964 | ||
965 | ||
966 | ||
967 | ||
968 | ||
969 | ||
970 | ||
971 | `define RF_RDEN_OFFSTATE 1'b1 | |
972 | ||
973 | //==================================== | |
974 | `define NCU_INTMANRF_DEPTH 128 | |
975 | `define NCU_INTMANRF_DATAWIDTH 16 | |
976 | `define NCU_INTMANRF_ADDRWIDTH 7 | |
977 | //==================================== | |
978 | ||
979 | //==================================== | |
980 | `define NCU_MONDORF_DEPTH 64 | |
981 | `define NCU_MONDORF_DATAWIDTH 72 | |
982 | `define NCU_MONDORF_ADDRWIDTH 6 | |
983 | //==================================== | |
984 | ||
985 | //==================================== | |
986 | `define NCU_CPUBUFRF_DEPTH 32 | |
987 | `define NCU_CPUBUFRF_DATAWIDTH 144 | |
988 | `define NCU_CPUBUFRF_ADDRWIDTH 5 | |
989 | //==================================== | |
990 | ||
991 | //==================================== | |
992 | `define NCU_IOBUFRF_DEPTH 32 | |
993 | `define NCU_IOBUFRF_DATAWIDTH 144 | |
994 | `define NCU_IOBUFRF_ADDRWIDTH 5 | |
995 | //==================================== | |
996 | ||
997 | //==================================== | |
998 | `define NCU_IOBUF1RF_DEPTH 32 | |
999 | `define NCU_IOBUF1RF_DATAWIDTH 32 | |
1000 | `define NCU_IOBUF1RF_ADDRWIDTH 5 | |
1001 | //==================================== | |
1002 | ||
1003 | //==================================== | |
1004 | `define NCU_INTBUFRF_DEPTH 32 | |
1005 | `define NCU_INTBUFRF_DATAWIDTH 144 | |
1006 | `define NCU_INTBUFRF_ADDRWIDTH 5 | |
1007 | //==================================== | |
1008 | ||
1009 | //== fix me : need to remove when warm // | |
1010 | //== becomes available // | |
1011 | `define WMR_LENGTH 10'd999 | |
1012 | `define WMR_LENGTH_P1 10'd1000 | |
1013 | ||
1014 | //// NCU CSR_MAN address 80_0000_xxxx //// | |
1015 | `define NCU_CSR_MAN 16'h0000 | |
1016 | `define NCU_CREG_INTMAN 16'h0000 | |
1017 | //`define NCU_CREG_INTVECDISP 16'h0800 | |
1018 | `define NCU_CREG_MONDOINVEC 16'h0a00 | |
1019 | `define NCU_CREG_SERNUM 16'h1000 | |
1020 | `define NCU_CREG_FUSESTAT 16'h1008 | |
1021 | `define NCU_CREG_COREAVAIL 16'h1010 | |
1022 | `define NCU_CREG_BANKAVAIL 16'h1018 | |
1023 | `define NCU_CREG_BANK_ENABLE 16'h1020 | |
1024 | `define NCU_CREG_BANK_ENABLE_STATUS 16'h1028 | |
1025 | `define NCU_CREG_L2_HASH_ENABLE 16'h1030 | |
1026 | `define NCU_CREG_L2_HASH_ENABLE_STATUS 16'h1038 | |
1027 | ||
1028 | ||
1029 | `define NCU_CREG_MEM32_BASE 16'h2000 | |
1030 | `define NCU_CREG_MEM32_MASK 16'h2008 | |
1031 | `define NCU_CREG_MEM64_BASE 16'h2010 | |
1032 | `define NCU_CREG_MEM64_MASK 16'h2018 | |
1033 | `define NCU_CREG_IOCON_BASE 16'h2020 | |
1034 | `define NCU_CREG_IOCON_MASK 16'h2028 | |
1035 | `define NCU_CREG_MMUFSH 16'h2030 | |
1036 | ||
1037 | `define NCU_CREG_ESR 16'h3000 | |
1038 | `define NCU_CREG_ELE 16'h3008 | |
1039 | `define NCU_CREG_EIE 16'h3010 | |
1040 | `define NCU_CREG_EJR 16'h3018 | |
1041 | `define NCU_CREG_FEE 16'h3020 | |
1042 | `define NCU_CREG_PER 16'h3028 | |
1043 | `define NCU_CREG_SIISYN 16'h3030 | |
1044 | `define NCU_CREG_NCUSYN 16'h3038 | |
1045 | `define NCU_CREG_SCKSEL 16'h3040 | |
1046 | `define NCU_CREG_DBGTRIG_EN 16'h4000 | |
1047 | ||
1048 | //// NUC CSR_MONDO address 80_0004_xxxx //// | |
1049 | `define NCU_CSR_MONDO 16'h0004 | |
1050 | `define NCU_CREG_MDATA0 16'h0000 | |
1051 | `define NCU_CREG_MDATA1 16'h0200 | |
1052 | `define NCU_CREG_MDATA0_ALIAS 16'h0400 | |
1053 | `define NCU_CREG_MDATA1_ALIAS 16'h0600 | |
1054 | `define NCU_CREG_MBUSY 16'h0800 | |
1055 | `define NCU_CREG_MBUSY_ALIAS 16'h0a00 | |
1056 | ||
1057 | ||
1058 | ||
1059 | // ASI shared reg 90_xxxx_xxxx// | |
1060 | `define NCU_ASI_A_HIT 10'h104 // 6-bits cpuid and thread id are "x" | |
1061 | `define NCU_ASI_B_HIT 10'h1CC // 6-bits cpuid and thread id are "x" | |
1062 | `define NCU_ASI_C_HIT 10'h114 // 6-bits cpuid and thread id are "x" | |
1063 | `define NCU_ASI_COREAVAIL 16'h0000 | |
1064 | `define NCU_ASI_CORE_ENABLE_STATUS 16'h0010 | |
1065 | `define NCU_ASI_CORE_ENABLE 16'h0020 | |
1066 | `define NCU_ASI_XIR_STEERING 16'h0030 | |
1067 | `define NCU_ASI_CORE_RUNNINGRW 16'h0050 | |
1068 | `define NCU_ASI_CORE_RUNNING_STATUS 16'h0058 | |
1069 | `define NCU_ASI_CORE_RUNNING_W1S 16'h0060 | |
1070 | `define NCU_ASI_CORE_RUNNING_W1C 16'h0068 | |
1071 | `define NCU_ASI_INTVECDISP 16'h0000 | |
1072 | `define NCU_ASI_ERR_STR 16'h1000 | |
1073 | `define NCU_ASI_WMR_VEC_MASK 16'h0018 | |
1074 | `define NCU_ASI_CMP_TICK_ENABLE 16'h0038 | |
1075 | ||
1076 | ||
1077 | //// UCB packet type //// | |
1078 | `define UCB_READ_NACK 4'b0000 // ack/nack types | |
1079 | `define UCB_READ_ACK 4'b0001 | |
1080 | `define UCB_WRITE_ACK 4'b0010 | |
1081 | `define UCB_IFILL_ACK 4'b0011 | |
1082 | `define UCB_IFILL_NACK 4'b0111 | |
1083 | ||
1084 | `define UCB_READ_REQ 4'b0100 // req types | |
1085 | `define UCB_WRITE_REQ 4'b0101 | |
1086 | `define UCB_IFILL_REQ 4'b0110 | |
1087 | ||
1088 | `define UCB_INT 4'b1000 // plain interrupt | |
1089 | `define UCB_INT_VEC 4'b1100 // interrupt with vector | |
1090 | `define UCB_INT_SOC_UE 4'b1001 // soc interrup ue | |
1091 | `define UCB_INT_SOC_CE 4'b1010 // soc interrup ce | |
1092 | `define UCB_RESET_VEC 4'b0101 // reset with vector | |
1093 | `define UCB_IDLE_VEC 4'b1110 // idle with vector | |
1094 | `define UCB_RESUME_VEC 4'b1111 // resume with vector | |
1095 | ||
1096 | `define UCB_INT_SOC 4'b1101 // soc interrup ce | |
1097 | ||
1098 | ||
1099 | //// PCX packet type //// | |
1100 | `define PCX_LOAD_RQ 5'b00000 | |
1101 | `define PCX_IMISS_RQ 5'b10000 | |
1102 | `define PCX_STORE_RQ 5'b00001 | |
1103 | `define PCX_FWD_RQs 5'b01101 | |
1104 | `define PCX_FWD_RPYs 5'b01110 | |
1105 | ||
1106 | //// CPX packet type //// | |
1107 | //`define CPX_LOAD_RET 4'b0000 | |
1108 | `define CPX_LOAD_RET 4'b1000 | |
1109 | `define CPX_ST_ACK 4'b0100 | |
1110 | //`define CPX_IFILL_RET 4'b0001 | |
1111 | `define CPX_IFILL_RET 4'b1001 | |
1112 | `define CPX_INT_RET 4'b0111 | |
1113 | `define CPX_INT_SOC 4'b1101 | |
1114 | //`define CPX_FWD_RQ_RET 4'b1010 | |
1115 | //`define CPX_FWD_RPY_RET 4'b1011 | |
1116 | ||
1117 | ||
1118 | ||
1119 | ||
1120 | //// Global CSR decode //// | |
1121 | `define NCU_CSR 8'h80 | |
1122 | `define NIU_CSR 8'h81 | |
1123 | //`define RNG_CSR 8'h82 | |
1124 | `define DBG1_CSR 8'h86 | |
1125 | `define CCU_CSR 8'h83 | |
1126 | `define MCU_CSR 8'h84 | |
1127 | `define TCU_CSR 8'h85 | |
1128 | `define DMU_CSR 8'h88 | |
1129 | `define RCU_CSR 8'h89 | |
1130 | `define NCU_ASI 8'h90 | |
1131 | /////8'h91 ~ 9F reserved | |
1132 | /////8'hA0 ~ BF L2 CSR//// | |
1133 | `define DMU_PIO 4'hC // C0 ~ CF | |
1134 | /////8'hB0 ~ FE reserved | |
1135 | `define SSI_CSR 8'hFF | |
1136 | ||
1137 | ||
1138 | //// NCU_SSI //// | |
1139 | `define SSI_ADDR 12'hFF_F | |
1140 | `define SSI_ADDR_TIMEOUT_REG 40'hFF_0001_0088 | |
1141 | `define SSI_ADDR_LOG_REG 40'hFF_0000_0018 | |
1142 | ||
1143 | `define IF_IDLE 2'b00 | |
1144 | `define IF_ACPT 2'b01 | |
1145 | `define IF_DROP 2'b10 | |
1146 | ||
1147 | `define SSI_IDLE 3'b000 | |
1148 | `define SSI_REQ 3'b001 | |
1149 | `define SSI_WDATA 3'b011 | |
1150 | `define SSI_REQ_PAR 3'b101 | |
1151 | `define SSI_ACK 3'b111 | |
1152 | `define SSI_RDATA 3'b110 | |
1153 | `define SSI_ACK_PAR 3'b010 | |
1154 | ||
1155 | ||
1156 | ||
1157 | ||
1158 | ||
1159 | ||
1160 | ||
1161 | ||
1162 | ||
1163 | ||
1164 | module ncu_i2csc_ctl ( | |
1165 | iol2clk, | |
1166 | scan_in, | |
1167 | scan_out, | |
1168 | tcu_pce_ov, | |
1169 | tcu_clk_stop, | |
1170 | tcu_scan_en, | |
1171 | tcu_aclk, | |
1172 | tcu_bclk, | |
1173 | tcu_dbr_gateoff, | |
1174 | sii_mondo_vld, | |
1175 | sii_mondo_target, | |
1176 | sii_mondo_ctagerr, | |
1177 | sii_mondo_rd, | |
1178 | ncu_dmu_mondo_ack, | |
1179 | ncu_dmu_mondo_nack, | |
1180 | ssi_int_vld, | |
1181 | mcu0_int_vld, | |
1182 | mcu1_int_vld, | |
1183 | mcu2_int_vld, | |
1184 | mcu3_int_vld, | |
1185 | niu_int_vld, | |
1186 | ncu_man_int_vld, | |
1187 | ssi_int_rd, | |
1188 | mcu0_int_rd, | |
1189 | mcu1_int_rd, | |
1190 | mcu2_int_rd, | |
1191 | mcu3_int_rd, | |
1192 | niu_int_rd, | |
1193 | ncu_man_int_rd, | |
1194 | siipio_ack_vld, | |
1195 | dmucsr_ack_vld, | |
1196 | ccu_ack_vld, | |
1197 | mcu0_ack_vld, | |
1198 | mcu1_ack_vld, | |
1199 | mcu2_ack_vld, | |
1200 | mcu3_ack_vld, | |
1201 | ssi_ack_vld, | |
1202 | rcu_ack_vld, | |
1203 | dbg1_ack_vld, | |
1204 | niu_ack_vld, | |
1205 | ncu_man_ack_vld, | |
1206 | ncu_int_ack_vld, | |
1207 | bounce_ack_vld, | |
1208 | rd_nack_vld, | |
1209 | siipio_ack_rd, | |
1210 | dmucsr_ack_rd, | |
1211 | ccu_ack_rd, | |
1212 | mcu0_ack_rd, | |
1213 | mcu1_ack_rd, | |
1214 | mcu2_ack_rd, | |
1215 | mcu3_ack_rd, | |
1216 | ssi_ack_rd, | |
1217 | rcu_ack_rd, | |
1218 | dbg1_ack_rd, | |
1219 | niu_ack_rd, | |
1220 | ncu_man_ack_rd, | |
1221 | ncu_int_ack_rd, | |
1222 | bounce_ack_rd, | |
1223 | rd_nack_rd, | |
1224 | iob_tap_packet_vld, | |
1225 | tap_iob_busy, | |
1226 | int_sel, | |
1227 | ack_sel, | |
1228 | mondo_srvcd_d1, | |
1229 | int_srvcd_d2, | |
1230 | ack_srvcd_d1, | |
1231 | ucb_ack_packet_d1, | |
1232 | iobuf_head_f, | |
1233 | iobuf_tail_s, | |
1234 | io_mondo_data_wr_s, | |
1235 | mondo_busy_vec_f, | |
1236 | iobuf_avail, | |
1237 | srvc_wr_ack, | |
1238 | dmupio_srvc_wack, | |
1239 | lhs_intman_acc, | |
1240 | intman_pchkf2i2c, | |
1241 | intman_dout_v, | |
1242 | mb0_waddr, | |
1243 | mb0_iobuf_wr_en, | |
1244 | mb0_run, | |
1245 | iobuf_wr, | |
1246 | iobuf_tail_ptr) ; | |
1247 | wire avail_mondo_vec; | |
1248 | wire [6:0] avail_int_vec; | |
1249 | wire [14:0] avail_ack_vec; | |
1250 | wire snap_now; | |
1251 | wire mondo_vld; | |
1252 | wire int_vld; | |
1253 | wire ack_vld; | |
1254 | wire snapd_mondo_vec_next; | |
1255 | wire mondo_srvcd; | |
1256 | wire snapd_mondo_vec; | |
1257 | wire snapd_mondo_vec_ff_scanin; | |
1258 | wire snapd_mondo_vec_ff_scanout; | |
1259 | wire l1clk; | |
1260 | wire iobuf_hit_hwm; | |
1261 | wire mondo_srvcd_d1_ff_scanin; | |
1262 | wire mondo_srvcd_d1_ff_scanout; | |
1263 | wire [6:0] srvcd_int_vec; | |
1264 | wire [6:0] snapd_int_vec; | |
1265 | wire [6:0] snapd_int_vec_next; | |
1266 | wire int_srvcd; | |
1267 | wire snapd_int_vec_ff_scanin; | |
1268 | wire snapd_int_vec_ff_scanout; | |
1269 | wire int_srvcd_d1_ff_scanin; | |
1270 | wire int_srvcd_d1_ff_scanout; | |
1271 | wire int_srvcd_d1; | |
1272 | wire int_srvcd_d2_ff_scanin; | |
1273 | wire int_srvcd_d2_ff_scanout; | |
1274 | wire [14:0] srvcd_ack_vec; | |
1275 | wire [14:0] snapd_ack_vec; | |
1276 | wire [14:0] snapd_ack_vec_next; | |
1277 | wire ack_srvcd; | |
1278 | wire snapd_ack_vec_ff_scanin; | |
1279 | wire snapd_ack_vec_ff_scanout; | |
1280 | wire ack_to_tap_d1; | |
1281 | wire ack_srvcd_d1_ff_scanin; | |
1282 | wire ack_srvcd_d1_ff_scanout; | |
1283 | wire ack_to_cpx_d1; | |
1284 | wire io_mondo_data_wr_s_ff_scanin; | |
1285 | wire io_mondo_data_wr_s_ff_scanout; | |
1286 | wire mondo_busy; | |
1287 | wire mondo_busy_vec_ff_scanin; | |
1288 | wire mondo_busy_vec_ff_scanout; | |
1289 | wire [63:0] mondo_busy_vec; | |
1290 | wire mondo_flu_hit; | |
1291 | wire mondo_busy_d1_ff_scanin; | |
1292 | wire mondo_busy_d1_ff_scanout; | |
1293 | wire mondo_busy_d1; | |
1294 | wire ncu_dmu_mondo_ack_a1; | |
1295 | wire ncu_dmu_mondo_nack_a1; | |
1296 | wire ncu_dmu_mondo_ack_f; | |
1297 | wire ncu_dmu_mondo_ack_ff_scanin; | |
1298 | wire ncu_dmu_mondo_ack_ff_scanout; | |
1299 | wire ncu_dmu_mondo_nack_f; | |
1300 | wire ncu_dmu_mondo_nack_ff_scanin; | |
1301 | wire ncu_dmu_mondo_nack_ff_scanout; | |
1302 | wire mondo_flu_vld; | |
1303 | wire mondo_flu_vld_d1; | |
1304 | wire [5:0] mondo_target_prev; | |
1305 | wire mondo_flu_vld_pre_ff_scanin; | |
1306 | wire mondo_flu_vld_pre_ff_scanout; | |
1307 | wire mondo_flu_vld_pre; | |
1308 | wire mondo_flu_vld_d1_ff_scanin; | |
1309 | wire mondo_flu_vld_d1_ff_scanout; | |
1310 | wire mondo_flu_vld_ff_scanin; | |
1311 | wire mondo_flu_vld_ff_scanout; | |
1312 | wire mondo_target_prev_ff_scanin; | |
1313 | wire mondo_target_prev_ff_scanout; | |
1314 | wire int_srvcd_mask; | |
1315 | wire iobuf_wr_f; | |
1316 | wire [5:0] iobuf_tail_plus; | |
1317 | wire [5:0] iobuf_tail; | |
1318 | wire iobuf_tail_ff_scanin; | |
1319 | wire iobuf_tail_ff_scanout; | |
1320 | wire iobuf_tail_s_ff_scanin; | |
1321 | wire iobuf_tail_s_ff_scanout; | |
1322 | wire iobuf_head_ff_scanin; | |
1323 | wire iobuf_head_ff_scanout; | |
1324 | wire [5:0] iobuf_head; | |
1325 | wire siclk; | |
1326 | wire soclk; | |
1327 | wire se; | |
1328 | wire pce_ov; | |
1329 | wire stop; | |
1330 | ||
1331 | ||
1332 | ||
1333 | //////////////////////////////////////////////////////////////////////// | |
1334 | // Signal declarations | |
1335 | //////////////////////////////////////////////////////////////////////// | |
1336 | ||
1337 | ||
1338 | // Global interface | |
1339 | input iol2clk; | |
1340 | input scan_in; | |
1341 | output scan_out; | |
1342 | input tcu_pce_ov; | |
1343 | input tcu_clk_stop; | |
1344 | input tcu_scan_en; | |
1345 | input tcu_aclk; | |
1346 | input tcu_bclk; | |
1347 | input tcu_dbr_gateoff; | |
1348 | ||
1349 | //mondo input | |
1350 | input sii_mondo_vld; | |
1351 | input [5:0] sii_mondo_target; | |
1352 | input sii_mondo_ctagerr; | |
1353 | output sii_mondo_rd; | |
1354 | ||
1355 | output ncu_dmu_mondo_ack; | |
1356 | output ncu_dmu_mondo_nack; | |
1357 | ||
1358 | //int vld// | |
1359 | input ssi_int_vld; | |
1360 | input mcu0_int_vld; | |
1361 | input mcu1_int_vld; | |
1362 | input mcu2_int_vld; | |
1363 | input mcu3_int_vld; | |
1364 | input niu_int_vld; | |
1365 | input ncu_man_int_vld; | |
1366 | ||
1367 | output ssi_int_rd; | |
1368 | output mcu0_int_rd; | |
1369 | output mcu1_int_rd; | |
1370 | output mcu2_int_rd; | |
1371 | output mcu3_int_rd; | |
1372 | output niu_int_rd; | |
1373 | output ncu_man_int_rd; | |
1374 | ||
1375 | //ack vld// | |
1376 | input siipio_ack_vld; | |
1377 | input dmucsr_ack_vld; | |
1378 | input ccu_ack_vld; | |
1379 | input mcu0_ack_vld; | |
1380 | input mcu1_ack_vld; | |
1381 | input mcu2_ack_vld; | |
1382 | input mcu3_ack_vld; | |
1383 | input ssi_ack_vld; | |
1384 | input rcu_ack_vld; | |
1385 | input dbg1_ack_vld; | |
1386 | input niu_ack_vld; | |
1387 | input ncu_man_ack_vld; | |
1388 | input ncu_int_ack_vld; | |
1389 | input bounce_ack_vld; | |
1390 | input rd_nack_vld; | |
1391 | ||
1392 | output siipio_ack_rd; | |
1393 | output dmucsr_ack_rd; | |
1394 | output ccu_ack_rd; | |
1395 | output mcu0_ack_rd; | |
1396 | output mcu1_ack_rd; | |
1397 | output mcu2_ack_rd; | |
1398 | output mcu3_ack_rd; | |
1399 | output ssi_ack_rd; | |
1400 | output rcu_ack_rd; | |
1401 | output dbg1_ack_rd; | |
1402 | output niu_ack_rd; | |
1403 | output ncu_man_ack_rd; | |
1404 | output ncu_int_ack_rd; | |
1405 | output bounce_ack_rd; | |
1406 | output rd_nack_rd; | |
1407 | ||
1408 | // TAP ucb interface | |
1409 | output iob_tap_packet_vld; | |
1410 | input tap_iob_busy; | |
1411 | ||
1412 | ||
1413 | //i2c slow datapath interface | |
1414 | output [6:0] int_sel; | |
1415 | output [14:0] ack_sel; | |
1416 | output mondo_srvcd_d1; | |
1417 | output int_srvcd_d2; | |
1418 | output ack_srvcd_d1; | |
1419 | ||
1420 | input [127:0] ucb_ack_packet_d1; | |
1421 | ||
1422 | //i2c fast control interface | |
1423 | input [5:0] iobuf_head_f; | |
1424 | output [5:0] iobuf_tail_s; | |
1425 | ||
1426 | //mondo | |
1427 | //c2i fast control interface | |
1428 | //Mondo data/busy table interface | |
1429 | //Interrupt status table interface | |
1430 | output io_mondo_data_wr_s; | |
1431 | input [63:0] mondo_busy_vec_f; | |
1432 | ||
1433 | //c2i slow control interface | |
1434 | output iobuf_avail; | |
1435 | input srvc_wr_ack; | |
1436 | input dmupio_srvc_wack; | |
1437 | ||
1438 | //IOB control interface | |
1439 | input lhs_intman_acc; | |
1440 | input intman_pchkf2i2c; | |
1441 | input intman_dout_v; | |
1442 | ||
1443 | ||
1444 | //mb0 signals// | |
1445 | input [5:0] mb0_waddr; | |
1446 | input mb0_iobuf_wr_en; | |
1447 | input mb0_run; | |
1448 | ||
1449 | ||
1450 | // IO buffer interface | |
1451 | output iobuf_wr; | |
1452 | output [4:0] iobuf_tail_ptr; | |
1453 | ||
1454 | ||
1455 | // Internal signals | |
1456 | ||
1457 | ||
1458 | reg [6:0] int_sel; // 0in bits_on -var int_sel -max 1 | |
1459 | ||
1460 | reg [14:0] ack_sel; // 0in bits_on -var ack_sel -max 1 | |
1461 | ||
1462 | ||
1463 | ||
1464 | ||
1465 | ||
1466 | ||
1467 | //////////////////////////////////////////////////////////////////////// | |
1468 | // Code starts here | |
1469 | //////////////////////////////////////////////////////////////////////// | |
1470 | /************************************************************ | |
1471 | * Assemble availibility vectors | |
1472 | ************************************************************/ | |
1473 | ||
1474 | assign avail_mondo_vec = sii_mondo_vld; | |
1475 | ||
1476 | assign avail_int_vec[6:0] = { ssi_int_vld, //[6] | |
1477 | mcu0_int_vld, //[5] | |
1478 | mcu1_int_vld, //[4] | |
1479 | mcu2_int_vld, //[3] | |
1480 | mcu3_int_vld, //[2] | |
1481 | niu_int_vld, //[1] | |
1482 | ncu_man_int_vld } ;//[0] | |
1483 | ||
1484 | assign avail_ack_vec[14:0] = { siipio_ack_vld,//[14] | |
1485 | dmucsr_ack_vld, //[13] | |
1486 | ccu_ack_vld, //[12] | |
1487 | mcu0_ack_vld, //[11] | |
1488 | mcu1_ack_vld, //[10] | |
1489 | mcu2_ack_vld, //[9] | |
1490 | mcu3_ack_vld, //[8] | |
1491 | ssi_ack_vld, //[7] | |
1492 | rcu_ack_vld, //[6] | |
1493 | dbg1_ack_vld, //[5] | |
1494 | niu_ack_vld, //[4] | |
1495 | ncu_man_ack_vld,//[3] | |
1496 | ncu_int_ack_vld,//[2] | |
1497 | bounce_ack_vld, //[1] | |
1498 | rd_nack_vld }; //[0] | |
1499 | ||
1500 | ||
1501 | /************************************************************ | |
1502 | * Handle mondo interrupts here | |
1503 | ************************************************************/ | |
1504 | // Snap the availibility vector if all previous interrupts and acks | |
1505 | // have been serviced. | |
1506 | // jimmy : need to ignore ack_vld during tap_iob_busy because can't | |
1507 | // jimmy : serve ack_vld during tap_iob_busy, but int is okay to serve | |
1508 | //assign snap_now = ~mondo_vld & ~int_vld & (~ack_vld|tap_iob_busy) ; | |
1509 | assign snap_now = ~mondo_vld & ~int_vld & (~ack_vld) ; | |
1510 | ||
1511 | assign snapd_mondo_vec_next = snap_now ? avail_mondo_vec : | |
1512 | mondo_srvcd ? 1'b0 : snapd_mondo_vec; | |
1513 | ||
1514 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 snapd_mondo_vec_ff | |
1515 | ( | |
1516 | .scan_in(snapd_mondo_vec_ff_scanin), | |
1517 | .scan_out(snapd_mondo_vec_ff_scanout), | |
1518 | .dout (snapd_mondo_vec), | |
1519 | .l1clk (l1clk), | |
1520 | .din (snapd_mondo_vec_next), | |
1521 | .siclk(siclk), | |
1522 | .soclk(soclk) | |
1523 | ); | |
1524 | ||
1525 | assign mondo_vld = snapd_mondo_vec; | |
1526 | ||
1527 | // Mondo is serviced only if the IO buffer is not full and | |
1528 | // CPU is not accessing the Mondo tables | |
1529 | assign mondo_srvcd = mondo_vld & ~iobuf_hit_hwm; | |
1530 | ||
1531 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 mondo_srvcd_d1_ff | |
1532 | ( | |
1533 | .scan_in(mondo_srvcd_d1_ff_scanin), | |
1534 | .scan_out(mondo_srvcd_d1_ff_scanout), | |
1535 | .dout (mondo_srvcd_d1), | |
1536 | .l1clk (l1clk), | |
1537 | .din (mondo_srvcd), | |
1538 | .siclk(siclk), | |
1539 | .soclk(soclk) | |
1540 | ); | |
1541 | ||
1542 | assign sii_mondo_rd = mondo_srvcd; | |
1543 | ||
1544 | ||
1545 | /************************************************************ | |
1546 | * Handle on-chip interrupts here | |
1547 | ************************************************************/ | |
1548 | // 0in req_ack -req snapd_int_vec -ack int_sel -req_until_ack -deassert 0 | |
1549 | assign srvcd_int_vec[6:0] = snapd_int_vec[6:0] & ~int_sel[6:0]; | |
1550 | ||
1551 | assign snapd_int_vec_next[6:0] = snap_now ? avail_int_vec[6:0] : | |
1552 | int_srvcd ? srvcd_int_vec[6:0] : snapd_int_vec[6:0]; | |
1553 | ||
1554 | ncu_i2cscd_ctl_msff_ctl_macro__width_7 snapd_int_vec_ff | |
1555 | ( | |
1556 | .scan_in(snapd_int_vec_ff_scanin), | |
1557 | .scan_out(snapd_int_vec_ff_scanout), | |
1558 | .dout (snapd_int_vec[6:0]), | |
1559 | .l1clk (l1clk), | |
1560 | .din (snapd_int_vec_next[6:0]), | |
1561 | .siclk(siclk), | |
1562 | .soclk(soclk) | |
1563 | ); | |
1564 | ||
1565 | assign int_vld = |snapd_int_vec[6:0]; | |
1566 | ||
1567 | always@(snapd_int_vec) begin | |
1568 | int_sel[6:0]=7'b0; | |
1569 | casex(snapd_int_vec[6:0]) // 0in case -parallel -full | |
1570 | 7'b1xx_xxxx : int_sel[6:0] = 7'b100_0000; | |
1571 | 7'b01x_xxxx : int_sel[6:0] = 7'b010_0000; | |
1572 | 7'b001_xxxx : int_sel[6:0] = 7'b001_0000; | |
1573 | 7'b000_1xxx : int_sel[6:0] = 7'b000_1000; | |
1574 | 7'b000_01xx : int_sel[6:0] = 7'b000_0100; | |
1575 | 7'b000_001x : int_sel[6:0] = 7'b000_0010; | |
1576 | 7'b000_0001 : int_sel[6:0] = 7'b000_0001; | |
1577 | default : int_sel[6:0] = 7'b000_0000; | |
1578 | endcase | |
1579 | end | |
1580 | ||
1581 | // Int is serviced only if no mondo is serviced and the IO buffer is not full and | |
1582 | // CPU is not accessing the Interrupt Management table | |
1583 | assign int_srvcd = int_vld & ~mondo_vld & ~iobuf_hit_hwm & ~lhs_intman_acc ; | |
1584 | //~cpu_intman_acc & ~cpu_intctrl_acc; | |
1585 | ||
1586 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 int_srvcd_d1_ff | |
1587 | ( | |
1588 | .scan_in(int_srvcd_d1_ff_scanin), | |
1589 | .scan_out(int_srvcd_d1_ff_scanout), | |
1590 | .dout (int_srvcd_d1), | |
1591 | .l1clk (l1clk), | |
1592 | .din (int_srvcd), | |
1593 | .siclk(siclk), | |
1594 | .soclk(soclk) | |
1595 | ); | |
1596 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 int_srvcd_d2_ff | |
1597 | ( | |
1598 | .scan_in(int_srvcd_d2_ff_scanin), | |
1599 | .scan_out(int_srvcd_d2_ff_scanout), | |
1600 | .dout (int_srvcd_d2), | |
1601 | .l1clk (l1clk), | |
1602 | .din (int_srvcd_d1), | |
1603 | .siclk(siclk), | |
1604 | .soclk(soclk) | |
1605 | ); | |
1606 | ||
1607 | // Generate read singals to the double buffer | |
1608 | assign ssi_int_rd = int_srvcd & int_sel[6]; | |
1609 | assign mcu0_int_rd = int_srvcd & int_sel[5]; | |
1610 | assign mcu1_int_rd = int_srvcd & int_sel[4]; | |
1611 | assign mcu2_int_rd = int_srvcd & int_sel[3]; | |
1612 | assign mcu3_int_rd = int_srvcd & int_sel[2]; | |
1613 | assign niu_int_rd = int_srvcd & int_sel[1]; | |
1614 | assign ncu_man_int_rd = int_srvcd & int_sel[0]; | |
1615 | ||
1616 | ||
1617 | /************************************************************ | |
1618 | * Handle acks here | |
1619 | ************************************************************/ | |
1620 | // 0in req_ack -req snapd_ack_vec -ack ack_sel -req_until_ack -deassert 0 | |
1621 | assign srvcd_ack_vec[14:0] = snapd_ack_vec[14:0] & ~ack_sel[14:0]; | |
1622 | ||
1623 | assign snapd_ack_vec_next[14:0] = snap_now ? avail_ack_vec[14:0] : | |
1624 | ack_srvcd ? srvcd_ack_vec[14:0] : snapd_ack_vec[14:0]; | |
1625 | ||
1626 | ncu_i2cscd_ctl_msff_ctl_macro__width_15 snapd_ack_vec_ff | |
1627 | ( | |
1628 | .scan_in(snapd_ack_vec_ff_scanin), | |
1629 | .scan_out(snapd_ack_vec_ff_scanout), | |
1630 | .dout (snapd_ack_vec[14:0]), | |
1631 | .l1clk (l1clk), | |
1632 | .din (snapd_ack_vec_next[14:0]), | |
1633 | .siclk(siclk), | |
1634 | .soclk(soclk) | |
1635 | ); | |
1636 | ||
1637 | assign ack_vld = |snapd_ack_vec[14:0]; | |
1638 | ||
1639 | always@(snapd_ack_vec) begin | |
1640 | casex(snapd_ack_vec[14:0]) // 0in case -parallel -full | |
1641 | 15'b1xx_xxxx_xxxx_xxxx : ack_sel[14:0] = 15'b100_0000_0000_0000 ; | |
1642 | 15'b01x_xxxx_xxxx_xxxx : ack_sel[14:0] = 15'b010_0000_0000_0000 ; | |
1643 | 15'b001_xxxx_xxxx_xxxx : ack_sel[14:0] = 15'b001_0000_0000_0000 ; | |
1644 | 15'b000_1xxx_xxxx_xxxx : ack_sel[14:0] = 15'b000_1000_0000_0000 ; | |
1645 | 15'b000_01xx_xxxx_xxxx : ack_sel[14:0] = 15'b000_0100_0000_0000 ; | |
1646 | 15'b000_001x_xxxx_xxxx : ack_sel[14:0] = 15'b000_0010_0000_0000 ; | |
1647 | 15'b000_0001_xxxx_xxxx : ack_sel[14:0] = 15'b000_0001_0000_0000 ; | |
1648 | 15'b000_0000_1xxx_xxxx : ack_sel[14:0] = 15'b000_0000_1000_0000 ; | |
1649 | 15'b000_0000_01xx_xxxx : ack_sel[14:0] = 15'b000_0000_0100_0000 ; | |
1650 | 15'b000_0000_001x_xxxx : ack_sel[14:0] = 15'b000_0000_0010_0000 ; | |
1651 | 15'b000_0000_0001_xxxx : ack_sel[14:0] = 15'b000_0000_0001_0000 ; | |
1652 | 15'b000_0000_0000_1xxx : ack_sel[14:0] = 15'b000_0000_0000_1000 ; | |
1653 | 15'b000_0000_0000_01xx : ack_sel[14:0] = 15'b000_0000_0000_0100 ; | |
1654 | 15'b000_0000_0000_001x : ack_sel[14:0] = 15'b000_0000_0000_0010 ; | |
1655 | 15'b000_0000_0000_0001 : ack_sel[14:0] = 15'b000_0000_0000_0001 ; | |
1656 | default : ack_sel[14:0] = 15'b000_0000_0000_0000 ; | |
1657 | endcase | |
1658 | end | |
1659 | ||
1660 | ||
1661 | // Ack is serviced only if no mondo or interrupt is serviced and the | |
1662 | // IO buffer/TAP buffer is not full. | |
1663 | assign ack_srvcd = ack_vld & ~mondo_vld & ~int_vld & ~iobuf_hit_hwm & ~int_srvcd_d1 & | |
1664 | ~tap_iob_busy & ~(ack_srvcd_d1 & ack_to_tap_d1); | |
1665 | ||
1666 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 ack_srvcd_d1_ff | |
1667 | ( | |
1668 | .scan_in(ack_srvcd_d1_ff_scanin), | |
1669 | .scan_out(ack_srvcd_d1_ff_scanout), | |
1670 | .dout (ack_srvcd_d1), | |
1671 | .l1clk (l1clk), | |
1672 | .din (ack_srvcd), | |
1673 | .siclk(siclk), | |
1674 | .soclk(soclk) | |
1675 | ); | |
1676 | ||
1677 | // Generate read singals to the double buffer | |
1678 | assign siipio_ack_rd = ack_srvcd & ack_sel[14]; | |
1679 | assign dmucsr_ack_rd = ack_srvcd & ack_sel[13]; | |
1680 | assign ccu_ack_rd = ack_srvcd & ack_sel[12]; | |
1681 | assign mcu0_ack_rd = ack_srvcd & ack_sel[11]; | |
1682 | assign mcu1_ack_rd = ack_srvcd & ack_sel[10]; | |
1683 | assign mcu2_ack_rd = ack_srvcd & ack_sel[9]; | |
1684 | assign mcu3_ack_rd = ack_srvcd & ack_sel[8]; | |
1685 | assign ssi_ack_rd = ack_srvcd & ack_sel[7]; | |
1686 | assign rcu_ack_rd = ack_srvcd & ack_sel[6]; | |
1687 | assign dbg1_ack_rd = ack_srvcd & ack_sel[5]; | |
1688 | assign niu_ack_rd = ack_srvcd & ack_sel[4]; | |
1689 | assign ncu_man_ack_rd = ack_srvcd & ack_sel[3]; | |
1690 | assign ncu_int_ack_rd = ack_srvcd & ack_sel[2]; | |
1691 | assign bounce_ack_rd = ack_srvcd & ack_sel[1]; | |
1692 | assign rd_nack_rd = ack_srvcd & ack_sel[0]; | |
1693 | ||
1694 | ||
1695 | // Determine destination of req/ack | |
1696 | ||
1697 | assign ack_to_cpx_d1 = | |
1698 | ((((ucb_ack_packet_d1[3:0] == `UCB_READ_NACK) | (ucb_ack_packet_d1[3:0] == `UCB_READ_ACK) | | |
1699 | (ucb_ack_packet_d1[3:0] == `UCB_IFILL_NACK) | (ucb_ack_packet_d1[3:0] == `UCB_IFILL_ACK)) & | |
1700 | (ucb_ack_packet_d1[11:10] == 2'b00)) ) ; | |
1701 | ||
1702 | ||
1703 | assign ack_to_tap_d1 = | |
1704 | ((((ucb_ack_packet_d1[3:0] == `UCB_READ_NACK) | | |
1705 | (ucb_ack_packet_d1[3:0] == `UCB_READ_ACK) | | |
1706 | (ucb_ack_packet_d1[3:0] == `UCB_WRITE_ACK) | | |
1707 | (ucb_ack_packet_d1[3:0] == `UCB_IFILL_ACK) | | |
1708 | (ucb_ack_packet_d1[3:0] == `UCB_IFILL_NACK) ) & | |
1709 | (ucb_ack_packet_d1[11:10] == 2'b01)) | //buffer id check | |
1710 | (((ucb_ack_packet_d1[3:0] == `UCB_READ_REQ) | | |
1711 | (ucb_ack_packet_d1[3:0] == `UCB_WRITE_REQ)) & | |
1712 | (ucb_ack_packet_d1[54:47] == `TCU_CSR))); | |
1713 | ||
1714 | //assign iob_tap_vec_in[15:0] = (ucb_ack_packet_d1[3:0] == `UCB_READ_NACK) ? 16'h00ff : 16'hffff ; | |
1715 | ||
1716 | /************************************************************ | |
1717 | * Write mondo data table and busy table | |
1718 | ************************************************************/ | |
1719 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 io_mondo_data_wr_s_ff | |
1720 | ( | |
1721 | .scan_in(io_mondo_data_wr_s_ff_scanin), | |
1722 | .scan_out(io_mondo_data_wr_s_ff_scanout), | |
1723 | .dout (io_mondo_data_wr_s), | |
1724 | .l1clk (l1clk), | |
1725 | .din (mondo_srvcd & ~mondo_busy), | |
1726 | .siclk(siclk), | |
1727 | .soclk(soclk) | |
1728 | ); | |
1729 | ||
1730 | // Busy vector from Mondo Busy Table | |
1731 | ncu_i2cscd_ctl_msff_ctl_macro__width_64 mondo_busy_vec_ff | |
1732 | ( | |
1733 | .scan_in(mondo_busy_vec_ff_scanin), | |
1734 | .scan_out(mondo_busy_vec_ff_scanout), | |
1735 | .dout (mondo_busy_vec[63:0]), | |
1736 | .l1clk (l1clk), | |
1737 | .din (mondo_busy_vec_f[63:0]), | |
1738 | .siclk(siclk), | |
1739 | .soclk(soclk) | |
1740 | ); | |
1741 | ||
1742 | assign mondo_busy = (|(mondo_busy_vec[63:0]&(64'h0000_0000_0000_0001<<sii_mondo_target[5:0]))) | mondo_flu_hit; | |
1743 | ||
1744 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 mondo_busy_d1_ff | |
1745 | ( | |
1746 | .scan_in(mondo_busy_d1_ff_scanin), | |
1747 | .scan_out(mondo_busy_d1_ff_scanout), | |
1748 | .dout (mondo_busy_d1), | |
1749 | .l1clk (l1clk), | |
1750 | .din (mondo_busy), | |
1751 | .siclk(siclk), | |
1752 | .soclk(soclk) | |
1753 | ); | |
1754 | ||
1755 | // Send ack/nack to dmu | |
1756 | assign ncu_dmu_mondo_ack_a1 = mondo_srvcd & ~mondo_busy & ~sii_mondo_ctagerr; | |
1757 | assign ncu_dmu_mondo_nack_a1 = mondo_srvcd & mondo_busy & ~sii_mondo_ctagerr; | |
1758 | ||
1759 | assign ncu_dmu_mondo_ack = ncu_dmu_mondo_ack_f & tcu_dbr_gateoff; | |
1760 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 ncu_dmu_mondo_ack_ff | |
1761 | ( | |
1762 | .scan_in(ncu_dmu_mondo_ack_ff_scanin), | |
1763 | .scan_out(ncu_dmu_mondo_ack_ff_scanout), | |
1764 | .dout (ncu_dmu_mondo_ack_f), | |
1765 | .l1clk (l1clk), | |
1766 | .din (ncu_dmu_mondo_ack_a1), | |
1767 | .siclk(siclk), | |
1768 | .soclk(soclk) | |
1769 | ); | |
1770 | ||
1771 | assign ncu_dmu_mondo_nack = ncu_dmu_mondo_nack_f & tcu_dbr_gateoff; | |
1772 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 ncu_dmu_mondo_nack_ff | |
1773 | ( | |
1774 | .scan_in(ncu_dmu_mondo_nack_ff_scanin), | |
1775 | .scan_out(ncu_dmu_mondo_nack_ff_scanout), | |
1776 | .dout (ncu_dmu_mondo_nack_f), | |
1777 | .l1clk (l1clk), | |
1778 | .din (ncu_dmu_mondo_nack_a1), | |
1779 | .siclk(siclk), | |
1780 | .soclk(soclk) | |
1781 | ); | |
1782 | ||
1783 | ||
1784 | // do fast lookup only in the 2nd cycle after each mondo ack to see | |
1785 | // if the last ack is for the same cputhr_id. no need to do fast | |
1786 | // lookup if the last mondo was a nack. | |
1787 | assign mondo_flu_hit = (mondo_flu_vld | mondo_flu_vld_d1) & (sii_mondo_target[5:0]==mondo_target_prev[5:0]) ; | |
1788 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 mondo_flu_vld_pre_ff | |
1789 | ( | |
1790 | .scan_in(mondo_flu_vld_pre_ff_scanin), | |
1791 | .scan_out(mondo_flu_vld_pre_ff_scanout), | |
1792 | .dout (mondo_flu_vld_pre), | |
1793 | .l1clk (l1clk), | |
1794 | .din (ncu_dmu_mondo_ack_a1), | |
1795 | .siclk(siclk), | |
1796 | .soclk(soclk) | |
1797 | ); | |
1798 | ||
1799 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 mondo_flu_vld_d1_ff | |
1800 | ( | |
1801 | .scan_in(mondo_flu_vld_d1_ff_scanin), | |
1802 | .scan_out(mondo_flu_vld_d1_ff_scanout), | |
1803 | .dout (mondo_flu_vld_d1), | |
1804 | .l1clk (l1clk), | |
1805 | .din (mondo_flu_vld), | |
1806 | .siclk(siclk), | |
1807 | .soclk(soclk) | |
1808 | ); | |
1809 | ||
1810 | ncu_i2cscd_ctl_msff_ctl_macro__width_1 mondo_flu_vld_ff | |
1811 | ( | |
1812 | .scan_in(mondo_flu_vld_ff_scanin), | |
1813 | .scan_out(mondo_flu_vld_ff_scanout), | |
1814 | .dout (mondo_flu_vld), | |
1815 | .l1clk (l1clk), | |
1816 | .din (mondo_flu_vld_pre), | |
1817 | .siclk(siclk), | |
1818 | .soclk(soclk) | |
1819 | ); | |
1820 | ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_6 mondo_target_prev_ff | |
1821 | ( | |
1822 | .scan_in(mondo_target_prev_ff_scanin), | |
1823 | .scan_out(mondo_target_prev_ff_scanout), | |
1824 | .dout (mondo_target_prev[5:0]), | |
1825 | .l1clk (l1clk), | |
1826 | .en (mondo_srvcd), | |
1827 | .din (sii_mondo_target[5:0]), | |
1828 | .siclk(siclk), | |
1829 | .soclk(soclk) | |
1830 | ); | |
1831 | ||
1832 | /************************************************************ | |
1833 | * Let c2i logic know that the IO buffer is ready to accept | |
1834 | * a write ack. | |
1835 | ************************************************************/ | |
1836 | assign iobuf_avail = ~iobuf_hit_hwm & ~mondo_srvcd_d1 & ~int_srvcd_d2 & ~ack_srvcd_d1; | |
1837 | ||
1838 | /************************************************************ | |
1839 | * Send transaction to IO buffer | |
1840 | ************************************************************/ | |
1841 | assign int_srvcd_mask = intman_pchkf2i2c & intman_dout_v; | |
1842 | assign iobuf_wr_f = (mondo_srvcd_d1 & ~mondo_busy_d1) | | |
1843 | (int_srvcd_d2&~int_srvcd_mask) | | |
1844 | (ack_srvcd_d1 & ack_to_cpx_d1) | | |
1845 | srvc_wr_ack|dmupio_srvc_wack ; | |
1846 | assign iobuf_wr = mb0_run ? mb0_iobuf_wr_en : iobuf_wr_f; | |
1847 | ||
1848 | assign iobuf_tail_plus[5:0] = iobuf_tail[5:0] + 6'd1; | |
1849 | // Tail pointer to io buffer | |
1850 | ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_6 iobuf_tail_ff | |
1851 | ( | |
1852 | .scan_in(iobuf_tail_ff_scanin), | |
1853 | .scan_out(iobuf_tail_ff_scanout), | |
1854 | .dout (iobuf_tail[5:0]), | |
1855 | .l1clk (l1clk), | |
1856 | .en (iobuf_wr_f), | |
1857 | .din (iobuf_tail_plus[5:0]), | |
1858 | .siclk(siclk), | |
1859 | .soclk(soclk) | |
1860 | ); | |
1861 | ||
1862 | // Have to flop tail one more time before sending to cpu clock domain | |
1863 | // to guarantee content has been written to memory | |
1864 | ncu_i2cscd_ctl_msff_ctl_macro__width_6 iobuf_tail_s_ff | |
1865 | ( | |
1866 | .scan_in(iobuf_tail_s_ff_scanin), | |
1867 | .scan_out(iobuf_tail_s_ff_scanout), | |
1868 | .dout (iobuf_tail_s[5:0]), | |
1869 | .l1clk (l1clk), | |
1870 | .din (iobuf_tail[5:0]), | |
1871 | .siclk(siclk), | |
1872 | .soclk(soclk) | |
1873 | ); | |
1874 | ||
1875 | assign iobuf_tail_ptr[4:0] = mb0_run ? mb0_waddr[4:0] : iobuf_tail[4:0]; | |
1876 | ||
1877 | ||
1878 | // Flop head pointer once to convert to bsc clock domain | |
1879 | ncu_i2cscd_ctl_msff_ctl_macro__width_6 iobuf_head_ff | |
1880 | ( | |
1881 | .scan_in(iobuf_head_ff_scanin), | |
1882 | .scan_out(iobuf_head_ff_scanout), | |
1883 | .dout (iobuf_head[5:0]), | |
1884 | .l1clk (l1clk), | |
1885 | .din (iobuf_head_f[5:0]), | |
1886 | .siclk(siclk), | |
1887 | .soclk(soclk) | |
1888 | ); | |
1889 | ||
1890 | // Determine if the io buffer is full | |
1891 | assign iobuf_hit_hwm = ((iobuf_tail_plus[5] != iobuf_head[5]) & | |
1892 | (iobuf_tail_plus[4:0] >= iobuf_head[4:0])) | | |
1893 | ((iobuf_tail_plus[5] == iobuf_head[5]) & | |
1894 | (iobuf_tail_plus[4:0] <= iobuf_head[4:0])); | |
1895 | ||
1896 | ||
1897 | /************************************************************ | |
1898 | * Send transaction to TAP | |
1899 | ************************************************************/ | |
1900 | assign iob_tap_packet_vld = ack_srvcd_d1 & ack_to_tap_d1; | |
1901 | ||
1902 | ||
1903 | /**** adding clock header ****/ | |
1904 | ncu_i2cscd_ctl_l1clkhdr_ctl_macro clkgen ( | |
1905 | .l2clk (iol2clk), | |
1906 | .l1en (1'b1), | |
1907 | .l1clk (l1clk), | |
1908 | .pce_ov(pce_ov), | |
1909 | .stop(stop), | |
1910 | .se(se) | |
1911 | ); | |
1912 | ||
1913 | /*** building tcu port ***/ | |
1914 | assign siclk = tcu_aclk; | |
1915 | assign soclk = tcu_bclk; | |
1916 | assign se = tcu_scan_en; | |
1917 | assign pce_ov = tcu_pce_ov; | |
1918 | assign stop = tcu_clk_stop; | |
1919 | ||
1920 | // fixscan start: | |
1921 | assign snapd_mondo_vec_ff_scanin = scan_in ; | |
1922 | assign mondo_srvcd_d1_ff_scanin = snapd_mondo_vec_ff_scanout; | |
1923 | assign snapd_int_vec_ff_scanin = mondo_srvcd_d1_ff_scanout; | |
1924 | assign int_srvcd_d1_ff_scanin = snapd_int_vec_ff_scanout ; | |
1925 | assign int_srvcd_d2_ff_scanin = int_srvcd_d1_ff_scanout ; | |
1926 | assign snapd_ack_vec_ff_scanin = int_srvcd_d2_ff_scanout ; | |
1927 | assign ack_srvcd_d1_ff_scanin = snapd_ack_vec_ff_scanout ; | |
1928 | assign io_mondo_data_wr_s_ff_scanin = ack_srvcd_d1_ff_scanout ; | |
1929 | assign mondo_busy_vec_ff_scanin = io_mondo_data_wr_s_ff_scanout; | |
1930 | assign mondo_busy_d1_ff_scanin = mondo_busy_vec_ff_scanout; | |
1931 | assign ncu_dmu_mondo_ack_ff_scanin = mondo_busy_d1_ff_scanout ; | |
1932 | assign ncu_dmu_mondo_nack_ff_scanin = ncu_dmu_mondo_ack_ff_scanout; | |
1933 | assign mondo_flu_vld_pre_ff_scanin = ncu_dmu_mondo_nack_ff_scanout; | |
1934 | assign mondo_flu_vld_ff_scanin = mondo_flu_vld_pre_ff_scanout; | |
1935 | assign mondo_flu_vld_d1_ff_scanin = mondo_flu_vld_ff_scanout ; | |
1936 | assign mondo_target_prev_ff_scanin = mondo_flu_vld_d1_ff_scanout ; | |
1937 | assign iobuf_tail_ff_scanin = mondo_target_prev_ff_scanout; | |
1938 | assign iobuf_tail_s_ff_scanin = iobuf_tail_ff_scanout ; | |
1939 | assign iobuf_head_ff_scanin = iobuf_tail_s_ff_scanout ; | |
1940 | assign scan_out = iobuf_head_ff_scanout ; | |
1941 | // fixscan end: | |
1942 | endmodule // i2c_sctrl | |
1943 | ||
1944 | ||
1945 | // Local Variables: | |
1946 | // verilog-auto-sense-defines-constant:t | |
1947 | // End: | |
1948 | ||
1949 | ||
1950 | ||
1951 | ||
1952 | ||
1953 | ||
1954 | // any PARAMS parms go into naming of macro | |
1955 | ||
1956 | module ncu_i2cscd_ctl_msff_ctl_macro__width_1 ( | |
1957 | din, | |
1958 | l1clk, | |
1959 | scan_in, | |
1960 | siclk, | |
1961 | soclk, | |
1962 | dout, | |
1963 | scan_out); | |
1964 | wire [0:0] fdin; | |
1965 | ||
1966 | input [0:0] din; | |
1967 | input l1clk; | |
1968 | input scan_in; | |
1969 | ||
1970 | ||
1971 | input siclk; | |
1972 | input soclk; | |
1973 | ||
1974 | output [0:0] dout; | |
1975 | output scan_out; | |
1976 | assign fdin[0:0] = din[0:0]; | |
1977 | ||
1978 | ||
1979 | ||
1980 | ||
1981 | ||
1982 | ||
1983 | dff #(1) d0_0 ( | |
1984 | .l1clk(l1clk), | |
1985 | .siclk(siclk), | |
1986 | .soclk(soclk), | |
1987 | .d(fdin[0:0]), | |
1988 | .si(scan_in), | |
1989 | .so(scan_out), | |
1990 | .q(dout[0:0]) | |
1991 | ); | |
1992 | ||
1993 | ||
1994 | ||
1995 | ||
1996 | ||
1997 | ||
1998 | ||
1999 | ||
2000 | ||
2001 | ||
2002 | ||
2003 | ||
2004 | endmodule | |
2005 | ||
2006 | ||
2007 | ||
2008 | ||
2009 | ||
2010 | ||
2011 | ||
2012 | ||
2013 | ||
2014 | ||
2015 | ||
2016 | ||
2017 | ||
2018 | // any PARAMS parms go into naming of macro | |
2019 | ||
2020 | module ncu_i2cscd_ctl_msff_ctl_macro__width_7 ( | |
2021 | din, | |
2022 | l1clk, | |
2023 | scan_in, | |
2024 | siclk, | |
2025 | soclk, | |
2026 | dout, | |
2027 | scan_out); | |
2028 | wire [6:0] fdin; | |
2029 | wire [5:0] so; | |
2030 | ||
2031 | input [6:0] din; | |
2032 | input l1clk; | |
2033 | input scan_in; | |
2034 | ||
2035 | ||
2036 | input siclk; | |
2037 | input soclk; | |
2038 | ||
2039 | output [6:0] dout; | |
2040 | output scan_out; | |
2041 | assign fdin[6:0] = din[6:0]; | |
2042 | ||
2043 | ||
2044 | ||
2045 | ||
2046 | ||
2047 | ||
2048 | dff #(7) d0_0 ( | |
2049 | .l1clk(l1clk), | |
2050 | .siclk(siclk), | |
2051 | .soclk(soclk), | |
2052 | .d(fdin[6:0]), | |
2053 | .si({scan_in,so[5:0]}), | |
2054 | .so({so[5:0],scan_out}), | |
2055 | .q(dout[6:0]) | |
2056 | ); | |
2057 | ||
2058 | ||
2059 | ||
2060 | ||
2061 | ||
2062 | ||
2063 | ||
2064 | ||
2065 | ||
2066 | ||
2067 | ||
2068 | ||
2069 | endmodule | |
2070 | ||
2071 | ||
2072 | ||
2073 | ||
2074 | ||
2075 | ||
2076 | ||
2077 | ||
2078 | ||
2079 | ||
2080 | ||
2081 | ||
2082 | ||
2083 | // any PARAMS parms go into naming of macro | |
2084 | ||
2085 | module ncu_i2cscd_ctl_msff_ctl_macro__width_15 ( | |
2086 | din, | |
2087 | l1clk, | |
2088 | scan_in, | |
2089 | siclk, | |
2090 | soclk, | |
2091 | dout, | |
2092 | scan_out); | |
2093 | wire [14:0] fdin; | |
2094 | wire [13:0] so; | |
2095 | ||
2096 | input [14:0] din; | |
2097 | input l1clk; | |
2098 | input scan_in; | |
2099 | ||
2100 | ||
2101 | input siclk; | |
2102 | input soclk; | |
2103 | ||
2104 | output [14:0] dout; | |
2105 | output scan_out; | |
2106 | assign fdin[14:0] = din[14:0]; | |
2107 | ||
2108 | ||
2109 | ||
2110 | ||
2111 | ||
2112 | ||
2113 | dff #(15) d0_0 ( | |
2114 | .l1clk(l1clk), | |
2115 | .siclk(siclk), | |
2116 | .soclk(soclk), | |
2117 | .d(fdin[14:0]), | |
2118 | .si({scan_in,so[13:0]}), | |
2119 | .so({so[13:0],scan_out}), | |
2120 | .q(dout[14:0]) | |
2121 | ); | |
2122 | ||
2123 | ||
2124 | ||
2125 | ||
2126 | ||
2127 | ||
2128 | ||
2129 | ||
2130 | ||
2131 | ||
2132 | ||
2133 | ||
2134 | endmodule | |
2135 | ||
2136 | ||
2137 | ||
2138 | ||
2139 | ||
2140 | ||
2141 | ||
2142 | ||
2143 | ||
2144 | ||
2145 | ||
2146 | ||
2147 | ||
2148 | // any PARAMS parms go into naming of macro | |
2149 | ||
2150 | module ncu_i2cscd_ctl_msff_ctl_macro__width_64 ( | |
2151 | din, | |
2152 | l1clk, | |
2153 | scan_in, | |
2154 | siclk, | |
2155 | soclk, | |
2156 | dout, | |
2157 | scan_out); | |
2158 | wire [63:0] fdin; | |
2159 | wire [62:0] so; | |
2160 | ||
2161 | input [63:0] din; | |
2162 | input l1clk; | |
2163 | input scan_in; | |
2164 | ||
2165 | ||
2166 | input siclk; | |
2167 | input soclk; | |
2168 | ||
2169 | output [63:0] dout; | |
2170 | output scan_out; | |
2171 | assign fdin[63:0] = din[63:0]; | |
2172 | ||
2173 | ||
2174 | ||
2175 | ||
2176 | ||
2177 | ||
2178 | dff #(64) d0_0 ( | |
2179 | .l1clk(l1clk), | |
2180 | .siclk(siclk), | |
2181 | .soclk(soclk), | |
2182 | .d(fdin[63:0]), | |
2183 | .si({scan_in,so[62:0]}), | |
2184 | .so({so[62:0],scan_out}), | |
2185 | .q(dout[63:0]) | |
2186 | ); | |
2187 | ||
2188 | ||
2189 | ||
2190 | ||
2191 | ||
2192 | ||
2193 | ||
2194 | ||
2195 | ||
2196 | ||
2197 | ||
2198 | ||
2199 | endmodule | |
2200 | ||
2201 | ||
2202 | ||
2203 | ||
2204 | ||
2205 | ||
2206 | ||
2207 | ||
2208 | ||
2209 | ||
2210 | ||
2211 | ||
2212 | ||
2213 | // any PARAMS parms go into naming of macro | |
2214 | ||
2215 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_6 ( | |
2216 | din, | |
2217 | en, | |
2218 | l1clk, | |
2219 | scan_in, | |
2220 | siclk, | |
2221 | soclk, | |
2222 | dout, | |
2223 | scan_out); | |
2224 | wire [5:0] fdin; | |
2225 | wire [4:0] so; | |
2226 | ||
2227 | input [5:0] din; | |
2228 | input en; | |
2229 | input l1clk; | |
2230 | input scan_in; | |
2231 | ||
2232 | ||
2233 | input siclk; | |
2234 | input soclk; | |
2235 | ||
2236 | output [5:0] dout; | |
2237 | output scan_out; | |
2238 | assign fdin[5:0] = (din[5:0] & {6{en}}) | (dout[5:0] & ~{6{en}}); | |
2239 | ||
2240 | ||
2241 | ||
2242 | ||
2243 | ||
2244 | ||
2245 | dff #(6) d0_0 ( | |
2246 | .l1clk(l1clk), | |
2247 | .siclk(siclk), | |
2248 | .soclk(soclk), | |
2249 | .d(fdin[5:0]), | |
2250 | .si({scan_in,so[4:0]}), | |
2251 | .so({so[4:0],scan_out}), | |
2252 | .q(dout[5:0]) | |
2253 | ); | |
2254 | ||
2255 | ||
2256 | ||
2257 | ||
2258 | ||
2259 | ||
2260 | ||
2261 | ||
2262 | ||
2263 | ||
2264 | ||
2265 | ||
2266 | endmodule | |
2267 | ||
2268 | ||
2269 | ||
2270 | ||
2271 | ||
2272 | ||
2273 | ||
2274 | ||
2275 | ||
2276 | ||
2277 | ||
2278 | ||
2279 | ||
2280 | // any PARAMS parms go into naming of macro | |
2281 | ||
2282 | module ncu_i2cscd_ctl_msff_ctl_macro__width_6 ( | |
2283 | din, | |
2284 | l1clk, | |
2285 | scan_in, | |
2286 | siclk, | |
2287 | soclk, | |
2288 | dout, | |
2289 | scan_out); | |
2290 | wire [5:0] fdin; | |
2291 | wire [4:0] so; | |
2292 | ||
2293 | input [5:0] din; | |
2294 | input l1clk; | |
2295 | input scan_in; | |
2296 | ||
2297 | ||
2298 | input siclk; | |
2299 | input soclk; | |
2300 | ||
2301 | output [5:0] dout; | |
2302 | output scan_out; | |
2303 | assign fdin[5:0] = din[5:0]; | |
2304 | ||
2305 | ||
2306 | ||
2307 | ||
2308 | ||
2309 | ||
2310 | dff #(6) d0_0 ( | |
2311 | .l1clk(l1clk), | |
2312 | .siclk(siclk), | |
2313 | .soclk(soclk), | |
2314 | .d(fdin[5:0]), | |
2315 | .si({scan_in,so[4:0]}), | |
2316 | .so({so[4:0],scan_out}), | |
2317 | .q(dout[5:0]) | |
2318 | ); | |
2319 | ||
2320 | ||
2321 | ||
2322 | ||
2323 | ||
2324 | ||
2325 | ||
2326 | ||
2327 | ||
2328 | ||
2329 | ||
2330 | ||
2331 | endmodule | |
2332 | ||
2333 | ||
2334 | ||
2335 | ||
2336 | ||
2337 | ||
2338 | ||
2339 | ||
2340 | ||
2341 | ||
2342 | ||
2343 | ||
2344 | ||
2345 | // any PARAMS parms go into naming of macro | |
2346 | ||
2347 | module ncu_i2cscd_ctl_l1clkhdr_ctl_macro ( | |
2348 | l2clk, | |
2349 | l1en, | |
2350 | pce_ov, | |
2351 | stop, | |
2352 | se, | |
2353 | l1clk); | |
2354 | ||
2355 | ||
2356 | input l2clk; | |
2357 | input l1en; | |
2358 | input pce_ov; | |
2359 | input stop; | |
2360 | input se; | |
2361 | output l1clk; | |
2362 | ||
2363 | ||
2364 | ||
2365 | ||
2366 | ||
2367 | cl_sc1_l1hdr_8x c_0 ( | |
2368 | ||
2369 | ||
2370 | .l2clk(l2clk), | |
2371 | .pce(l1en), | |
2372 | .l1clk(l1clk), | |
2373 | .se(se), | |
2374 | .pce_ov(pce_ov), | |
2375 | .stop(stop) | |
2376 | ); | |
2377 | ||
2378 | ||
2379 | ||
2380 | endmodule | |
2381 | ||
2382 | ||
2383 | ||
2384 | ||
2385 | ||
2386 | // any PARAMS parms go into naming of macro | |
2387 | ||
2388 | module ncu_i2cscd_ctl_msff_ctl_macro__width_4 ( | |
2389 | din, | |
2390 | l1clk, | |
2391 | scan_in, | |
2392 | siclk, | |
2393 | soclk, | |
2394 | dout, | |
2395 | scan_out); | |
2396 | wire [3:0] fdin; | |
2397 | wire [2:0] so; | |
2398 | ||
2399 | input [3:0] din; | |
2400 | input l1clk; | |
2401 | input scan_in; | |
2402 | ||
2403 | ||
2404 | input siclk; | |
2405 | input soclk; | |
2406 | ||
2407 | output [3:0] dout; | |
2408 | output scan_out; | |
2409 | assign fdin[3:0] = din[3:0]; | |
2410 | ||
2411 | ||
2412 | ||
2413 | ||
2414 | ||
2415 | ||
2416 | dff #(4) d0_0 ( | |
2417 | .l1clk(l1clk), | |
2418 | .siclk(siclk), | |
2419 | .soclk(soclk), | |
2420 | .d(fdin[3:0]), | |
2421 | .si({scan_in,so[2:0]}), | |
2422 | .so({so[2:0],scan_out}), | |
2423 | .q(dout[3:0]) | |
2424 | ); | |
2425 | ||
2426 | ||
2427 | ||
2428 | ||
2429 | ||
2430 | ||
2431 | ||
2432 | ||
2433 | ||
2434 | ||
2435 | ||
2436 | ||
2437 | endmodule | |
2438 | ||
2439 | ||
2440 | ||
2441 | ||
2442 | ||
2443 | ||
2444 | ||
2445 | ||
2446 | ||
2447 | ||
2448 | ||
2449 | ||
2450 | ||
2451 | // any PARAMS parms go into naming of macro | |
2452 | ||
2453 | module ncu_i2cscd_ctl_msff_ctl_macro__width_128 ( | |
2454 | din, | |
2455 | l1clk, | |
2456 | scan_in, | |
2457 | siclk, | |
2458 | soclk, | |
2459 | dout, | |
2460 | scan_out); | |
2461 | wire [127:0] fdin; | |
2462 | wire [126:0] so; | |
2463 | ||
2464 | input [127:0] din; | |
2465 | input l1clk; | |
2466 | input scan_in; | |
2467 | ||
2468 | ||
2469 | input siclk; | |
2470 | input soclk; | |
2471 | ||
2472 | output [127:0] dout; | |
2473 | output scan_out; | |
2474 | assign fdin[127:0] = din[127:0]; | |
2475 | ||
2476 | ||
2477 | ||
2478 | ||
2479 | ||
2480 | ||
2481 | dff #(128) d0_0 ( | |
2482 | .l1clk(l1clk), | |
2483 | .siclk(siclk), | |
2484 | .soclk(soclk), | |
2485 | .d(fdin[127:0]), | |
2486 | .si({scan_in,so[126:0]}), | |
2487 | .so({so[126:0],scan_out}), | |
2488 | .q(dout[127:0]) | |
2489 | ); | |
2490 | ||
2491 | ||
2492 | ||
2493 | ||
2494 | ||
2495 | ||
2496 | ||
2497 | ||
2498 | ||
2499 | ||
2500 | ||
2501 | ||
2502 | endmodule | |
2503 | ||
2504 | ||
2505 | ||
2506 | ||
2507 | // Description: Spare gate macro for control blocks | |
2508 | // | |
2509 | // Param num controls the number of times the macro is added | |
2510 | // flops=0 can be used to use only combination spare logic | |
2511 | ||
2512 | ||
2513 | module ncu_i2cscd_ctl_spare_ctl_macro__num_11 ( | |
2514 | l1clk, | |
2515 | scan_in, | |
2516 | siclk, | |
2517 | soclk, | |
2518 | scan_out); | |
2519 | wire si_0; | |
2520 | wire so_0; | |
2521 | wire spare0_flop_unused; | |
2522 | wire spare0_buf_32x_unused; | |
2523 | wire spare0_nand3_8x_unused; | |
2524 | wire spare0_inv_8x_unused; | |
2525 | wire spare0_aoi22_4x_unused; | |
2526 | wire spare0_buf_8x_unused; | |
2527 | wire spare0_oai22_4x_unused; | |
2528 | wire spare0_inv_16x_unused; | |
2529 | wire spare0_nand2_16x_unused; | |
2530 | wire spare0_nor3_4x_unused; | |
2531 | wire spare0_nand2_8x_unused; | |
2532 | wire spare0_buf_16x_unused; | |
2533 | wire spare0_nor2_16x_unused; | |
2534 | wire spare0_inv_32x_unused; | |
2535 | wire si_1; | |
2536 | wire so_1; | |
2537 | wire spare1_flop_unused; | |
2538 | wire spare1_buf_32x_unused; | |
2539 | wire spare1_nand3_8x_unused; | |
2540 | wire spare1_inv_8x_unused; | |
2541 | wire spare1_aoi22_4x_unused; | |
2542 | wire spare1_buf_8x_unused; | |
2543 | wire spare1_oai22_4x_unused; | |
2544 | wire spare1_inv_16x_unused; | |
2545 | wire spare1_nand2_16x_unused; | |
2546 | wire spare1_nor3_4x_unused; | |
2547 | wire spare1_nand2_8x_unused; | |
2548 | wire spare1_buf_16x_unused; | |
2549 | wire spare1_nor2_16x_unused; | |
2550 | wire spare1_inv_32x_unused; | |
2551 | wire si_2; | |
2552 | wire so_2; | |
2553 | wire spare2_flop_unused; | |
2554 | wire spare2_buf_32x_unused; | |
2555 | wire spare2_nand3_8x_unused; | |
2556 | wire spare2_inv_8x_unused; | |
2557 | wire spare2_aoi22_4x_unused; | |
2558 | wire spare2_buf_8x_unused; | |
2559 | wire spare2_oai22_4x_unused; | |
2560 | wire spare2_inv_16x_unused; | |
2561 | wire spare2_nand2_16x_unused; | |
2562 | wire spare2_nor3_4x_unused; | |
2563 | wire spare2_nand2_8x_unused; | |
2564 | wire spare2_buf_16x_unused; | |
2565 | wire spare2_nor2_16x_unused; | |
2566 | wire spare2_inv_32x_unused; | |
2567 | wire si_3; | |
2568 | wire so_3; | |
2569 | wire spare3_flop_unused; | |
2570 | wire spare3_buf_32x_unused; | |
2571 | wire spare3_nand3_8x_unused; | |
2572 | wire spare3_inv_8x_unused; | |
2573 | wire spare3_aoi22_4x_unused; | |
2574 | wire spare3_buf_8x_unused; | |
2575 | wire spare3_oai22_4x_unused; | |
2576 | wire spare3_inv_16x_unused; | |
2577 | wire spare3_nand2_16x_unused; | |
2578 | wire spare3_nor3_4x_unused; | |
2579 | wire spare3_nand2_8x_unused; | |
2580 | wire spare3_buf_16x_unused; | |
2581 | wire spare3_nor2_16x_unused; | |
2582 | wire spare3_inv_32x_unused; | |
2583 | wire si_4; | |
2584 | wire so_4; | |
2585 | wire spare4_flop_unused; | |
2586 | wire spare4_buf_32x_unused; | |
2587 | wire spare4_nand3_8x_unused; | |
2588 | wire spare4_inv_8x_unused; | |
2589 | wire spare4_aoi22_4x_unused; | |
2590 | wire spare4_buf_8x_unused; | |
2591 | wire spare4_oai22_4x_unused; | |
2592 | wire spare4_inv_16x_unused; | |
2593 | wire spare4_nand2_16x_unused; | |
2594 | wire spare4_nor3_4x_unused; | |
2595 | wire spare4_nand2_8x_unused; | |
2596 | wire spare4_buf_16x_unused; | |
2597 | wire spare4_nor2_16x_unused; | |
2598 | wire spare4_inv_32x_unused; | |
2599 | wire si_5; | |
2600 | wire so_5; | |
2601 | wire spare5_flop_unused; | |
2602 | wire spare5_buf_32x_unused; | |
2603 | wire spare5_nand3_8x_unused; | |
2604 | wire spare5_inv_8x_unused; | |
2605 | wire spare5_aoi22_4x_unused; | |
2606 | wire spare5_buf_8x_unused; | |
2607 | wire spare5_oai22_4x_unused; | |
2608 | wire spare5_inv_16x_unused; | |
2609 | wire spare5_nand2_16x_unused; | |
2610 | wire spare5_nor3_4x_unused; | |
2611 | wire spare5_nand2_8x_unused; | |
2612 | wire spare5_buf_16x_unused; | |
2613 | wire spare5_nor2_16x_unused; | |
2614 | wire spare5_inv_32x_unused; | |
2615 | wire si_6; | |
2616 | wire so_6; | |
2617 | wire spare6_flop_unused; | |
2618 | wire spare6_buf_32x_unused; | |
2619 | wire spare6_nand3_8x_unused; | |
2620 | wire spare6_inv_8x_unused; | |
2621 | wire spare6_aoi22_4x_unused; | |
2622 | wire spare6_buf_8x_unused; | |
2623 | wire spare6_oai22_4x_unused; | |
2624 | wire spare6_inv_16x_unused; | |
2625 | wire spare6_nand2_16x_unused; | |
2626 | wire spare6_nor3_4x_unused; | |
2627 | wire spare6_nand2_8x_unused; | |
2628 | wire spare6_buf_16x_unused; | |
2629 | wire spare6_nor2_16x_unused; | |
2630 | wire spare6_inv_32x_unused; | |
2631 | wire si_7; | |
2632 | wire so_7; | |
2633 | wire spare7_flop_unused; | |
2634 | wire spare7_buf_32x_unused; | |
2635 | wire spare7_nand3_8x_unused; | |
2636 | wire spare7_inv_8x_unused; | |
2637 | wire spare7_aoi22_4x_unused; | |
2638 | wire spare7_buf_8x_unused; | |
2639 | wire spare7_oai22_4x_unused; | |
2640 | wire spare7_inv_16x_unused; | |
2641 | wire spare7_nand2_16x_unused; | |
2642 | wire spare7_nor3_4x_unused; | |
2643 | wire spare7_nand2_8x_unused; | |
2644 | wire spare7_buf_16x_unused; | |
2645 | wire spare7_nor2_16x_unused; | |
2646 | wire spare7_inv_32x_unused; | |
2647 | wire si_8; | |
2648 | wire so_8; | |
2649 | wire spare8_flop_unused; | |
2650 | wire spare8_buf_32x_unused; | |
2651 | wire spare8_nand3_8x_unused; | |
2652 | wire spare8_inv_8x_unused; | |
2653 | wire spare8_aoi22_4x_unused; | |
2654 | wire spare8_buf_8x_unused; | |
2655 | wire spare8_oai22_4x_unused; | |
2656 | wire spare8_inv_16x_unused; | |
2657 | wire spare8_nand2_16x_unused; | |
2658 | wire spare8_nor3_4x_unused; | |
2659 | wire spare8_nand2_8x_unused; | |
2660 | wire spare8_buf_16x_unused; | |
2661 | wire spare8_nor2_16x_unused; | |
2662 | wire spare8_inv_32x_unused; | |
2663 | wire si_9; | |
2664 | wire so_9; | |
2665 | wire spare9_flop_unused; | |
2666 | wire spare9_buf_32x_unused; | |
2667 | wire spare9_nand3_8x_unused; | |
2668 | wire spare9_inv_8x_unused; | |
2669 | wire spare9_aoi22_4x_unused; | |
2670 | wire spare9_buf_8x_unused; | |
2671 | wire spare9_oai22_4x_unused; | |
2672 | wire spare9_inv_16x_unused; | |
2673 | wire spare9_nand2_16x_unused; | |
2674 | wire spare9_nor3_4x_unused; | |
2675 | wire spare9_nand2_8x_unused; | |
2676 | wire spare9_buf_16x_unused; | |
2677 | wire spare9_nor2_16x_unused; | |
2678 | wire spare9_inv_32x_unused; | |
2679 | wire si_10; | |
2680 | wire so_10; | |
2681 | wire spare10_flop_unused; | |
2682 | wire spare10_buf_32x_unused; | |
2683 | wire spare10_nand3_8x_unused; | |
2684 | wire spare10_inv_8x_unused; | |
2685 | wire spare10_aoi22_4x_unused; | |
2686 | wire spare10_buf_8x_unused; | |
2687 | wire spare10_oai22_4x_unused; | |
2688 | wire spare10_inv_16x_unused; | |
2689 | wire spare10_nand2_16x_unused; | |
2690 | wire spare10_nor3_4x_unused; | |
2691 | wire spare10_nand2_8x_unused; | |
2692 | wire spare10_buf_16x_unused; | |
2693 | wire spare10_nor2_16x_unused; | |
2694 | wire spare10_inv_32x_unused; | |
2695 | ||
2696 | ||
2697 | input l1clk; | |
2698 | input scan_in; | |
2699 | input siclk; | |
2700 | input soclk; | |
2701 | output scan_out; | |
2702 | ||
2703 | cl_sc1_msff_8x spare0_flop (.l1clk(l1clk), | |
2704 | .siclk(siclk), | |
2705 | .soclk(soclk), | |
2706 | .si(si_0), | |
2707 | .so(so_0), | |
2708 | .d(1'b0), | |
2709 | .q(spare0_flop_unused)); | |
2710 | assign si_0 = scan_in; | |
2711 | ||
2712 | cl_u1_buf_32x spare0_buf_32x (.in(1'b1), | |
2713 | .out(spare0_buf_32x_unused)); | |
2714 | cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1), | |
2715 | .in1(1'b1), | |
2716 | .in2(1'b1), | |
2717 | .out(spare0_nand3_8x_unused)); | |
2718 | cl_u1_inv_8x spare0_inv_8x (.in(1'b1), | |
2719 | .out(spare0_inv_8x_unused)); | |
2720 | cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1), | |
2721 | .in01(1'b1), | |
2722 | .in10(1'b1), | |
2723 | .in11(1'b1), | |
2724 | .out(spare0_aoi22_4x_unused)); | |
2725 | cl_u1_buf_8x spare0_buf_8x (.in(1'b1), | |
2726 | .out(spare0_buf_8x_unused)); | |
2727 | cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1), | |
2728 | .in01(1'b1), | |
2729 | .in10(1'b1), | |
2730 | .in11(1'b1), | |
2731 | .out(spare0_oai22_4x_unused)); | |
2732 | cl_u1_inv_16x spare0_inv_16x (.in(1'b1), | |
2733 | .out(spare0_inv_16x_unused)); | |
2734 | cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1), | |
2735 | .in1(1'b1), | |
2736 | .out(spare0_nand2_16x_unused)); | |
2737 | cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0), | |
2738 | .in1(1'b0), | |
2739 | .in2(1'b0), | |
2740 | .out(spare0_nor3_4x_unused)); | |
2741 | cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1), | |
2742 | .in1(1'b1), | |
2743 | .out(spare0_nand2_8x_unused)); | |
2744 | cl_u1_buf_16x spare0_buf_16x (.in(1'b1), | |
2745 | .out(spare0_buf_16x_unused)); | |
2746 | cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0), | |
2747 | .in1(1'b0), | |
2748 | .out(spare0_nor2_16x_unused)); | |
2749 | cl_u1_inv_32x spare0_inv_32x (.in(1'b1), | |
2750 | .out(spare0_inv_32x_unused)); | |
2751 | ||
2752 | cl_sc1_msff_8x spare1_flop (.l1clk(l1clk), | |
2753 | .siclk(siclk), | |
2754 | .soclk(soclk), | |
2755 | .si(si_1), | |
2756 | .so(so_1), | |
2757 | .d(1'b0), | |
2758 | .q(spare1_flop_unused)); | |
2759 | assign si_1 = so_0; | |
2760 | ||
2761 | cl_u1_buf_32x spare1_buf_32x (.in(1'b1), | |
2762 | .out(spare1_buf_32x_unused)); | |
2763 | cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1), | |
2764 | .in1(1'b1), | |
2765 | .in2(1'b1), | |
2766 | .out(spare1_nand3_8x_unused)); | |
2767 | cl_u1_inv_8x spare1_inv_8x (.in(1'b1), | |
2768 | .out(spare1_inv_8x_unused)); | |
2769 | cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1), | |
2770 | .in01(1'b1), | |
2771 | .in10(1'b1), | |
2772 | .in11(1'b1), | |
2773 | .out(spare1_aoi22_4x_unused)); | |
2774 | cl_u1_buf_8x spare1_buf_8x (.in(1'b1), | |
2775 | .out(spare1_buf_8x_unused)); | |
2776 | cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1), | |
2777 | .in01(1'b1), | |
2778 | .in10(1'b1), | |
2779 | .in11(1'b1), | |
2780 | .out(spare1_oai22_4x_unused)); | |
2781 | cl_u1_inv_16x spare1_inv_16x (.in(1'b1), | |
2782 | .out(spare1_inv_16x_unused)); | |
2783 | cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1), | |
2784 | .in1(1'b1), | |
2785 | .out(spare1_nand2_16x_unused)); | |
2786 | cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0), | |
2787 | .in1(1'b0), | |
2788 | .in2(1'b0), | |
2789 | .out(spare1_nor3_4x_unused)); | |
2790 | cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1), | |
2791 | .in1(1'b1), | |
2792 | .out(spare1_nand2_8x_unused)); | |
2793 | cl_u1_buf_16x spare1_buf_16x (.in(1'b1), | |
2794 | .out(spare1_buf_16x_unused)); | |
2795 | cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0), | |
2796 | .in1(1'b0), | |
2797 | .out(spare1_nor2_16x_unused)); | |
2798 | cl_u1_inv_32x spare1_inv_32x (.in(1'b1), | |
2799 | .out(spare1_inv_32x_unused)); | |
2800 | ||
2801 | cl_sc1_msff_8x spare2_flop (.l1clk(l1clk), | |
2802 | .siclk(siclk), | |
2803 | .soclk(soclk), | |
2804 | .si(si_2), | |
2805 | .so(so_2), | |
2806 | .d(1'b0), | |
2807 | .q(spare2_flop_unused)); | |
2808 | assign si_2 = so_1; | |
2809 | ||
2810 | cl_u1_buf_32x spare2_buf_32x (.in(1'b1), | |
2811 | .out(spare2_buf_32x_unused)); | |
2812 | cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1), | |
2813 | .in1(1'b1), | |
2814 | .in2(1'b1), | |
2815 | .out(spare2_nand3_8x_unused)); | |
2816 | cl_u1_inv_8x spare2_inv_8x (.in(1'b1), | |
2817 | .out(spare2_inv_8x_unused)); | |
2818 | cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1), | |
2819 | .in01(1'b1), | |
2820 | .in10(1'b1), | |
2821 | .in11(1'b1), | |
2822 | .out(spare2_aoi22_4x_unused)); | |
2823 | cl_u1_buf_8x spare2_buf_8x (.in(1'b1), | |
2824 | .out(spare2_buf_8x_unused)); | |
2825 | cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1), | |
2826 | .in01(1'b1), | |
2827 | .in10(1'b1), | |
2828 | .in11(1'b1), | |
2829 | .out(spare2_oai22_4x_unused)); | |
2830 | cl_u1_inv_16x spare2_inv_16x (.in(1'b1), | |
2831 | .out(spare2_inv_16x_unused)); | |
2832 | cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1), | |
2833 | .in1(1'b1), | |
2834 | .out(spare2_nand2_16x_unused)); | |
2835 | cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0), | |
2836 | .in1(1'b0), | |
2837 | .in2(1'b0), | |
2838 | .out(spare2_nor3_4x_unused)); | |
2839 | cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1), | |
2840 | .in1(1'b1), | |
2841 | .out(spare2_nand2_8x_unused)); | |
2842 | cl_u1_buf_16x spare2_buf_16x (.in(1'b1), | |
2843 | .out(spare2_buf_16x_unused)); | |
2844 | cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0), | |
2845 | .in1(1'b0), | |
2846 | .out(spare2_nor2_16x_unused)); | |
2847 | cl_u1_inv_32x spare2_inv_32x (.in(1'b1), | |
2848 | .out(spare2_inv_32x_unused)); | |
2849 | ||
2850 | cl_sc1_msff_8x spare3_flop (.l1clk(l1clk), | |
2851 | .siclk(siclk), | |
2852 | .soclk(soclk), | |
2853 | .si(si_3), | |
2854 | .so(so_3), | |
2855 | .d(1'b0), | |
2856 | .q(spare3_flop_unused)); | |
2857 | assign si_3 = so_2; | |
2858 | ||
2859 | cl_u1_buf_32x spare3_buf_32x (.in(1'b1), | |
2860 | .out(spare3_buf_32x_unused)); | |
2861 | cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1), | |
2862 | .in1(1'b1), | |
2863 | .in2(1'b1), | |
2864 | .out(spare3_nand3_8x_unused)); | |
2865 | cl_u1_inv_8x spare3_inv_8x (.in(1'b1), | |
2866 | .out(spare3_inv_8x_unused)); | |
2867 | cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1), | |
2868 | .in01(1'b1), | |
2869 | .in10(1'b1), | |
2870 | .in11(1'b1), | |
2871 | .out(spare3_aoi22_4x_unused)); | |
2872 | cl_u1_buf_8x spare3_buf_8x (.in(1'b1), | |
2873 | .out(spare3_buf_8x_unused)); | |
2874 | cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1), | |
2875 | .in01(1'b1), | |
2876 | .in10(1'b1), | |
2877 | .in11(1'b1), | |
2878 | .out(spare3_oai22_4x_unused)); | |
2879 | cl_u1_inv_16x spare3_inv_16x (.in(1'b1), | |
2880 | .out(spare3_inv_16x_unused)); | |
2881 | cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1), | |
2882 | .in1(1'b1), | |
2883 | .out(spare3_nand2_16x_unused)); | |
2884 | cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0), | |
2885 | .in1(1'b0), | |
2886 | .in2(1'b0), | |
2887 | .out(spare3_nor3_4x_unused)); | |
2888 | cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1), | |
2889 | .in1(1'b1), | |
2890 | .out(spare3_nand2_8x_unused)); | |
2891 | cl_u1_buf_16x spare3_buf_16x (.in(1'b1), | |
2892 | .out(spare3_buf_16x_unused)); | |
2893 | cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0), | |
2894 | .in1(1'b0), | |
2895 | .out(spare3_nor2_16x_unused)); | |
2896 | cl_u1_inv_32x spare3_inv_32x (.in(1'b1), | |
2897 | .out(spare3_inv_32x_unused)); | |
2898 | ||
2899 | cl_sc1_msff_8x spare4_flop (.l1clk(l1clk), | |
2900 | .siclk(siclk), | |
2901 | .soclk(soclk), | |
2902 | .si(si_4), | |
2903 | .so(so_4), | |
2904 | .d(1'b0), | |
2905 | .q(spare4_flop_unused)); | |
2906 | assign si_4 = so_3; | |
2907 | ||
2908 | cl_u1_buf_32x spare4_buf_32x (.in(1'b1), | |
2909 | .out(spare4_buf_32x_unused)); | |
2910 | cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1), | |
2911 | .in1(1'b1), | |
2912 | .in2(1'b1), | |
2913 | .out(spare4_nand3_8x_unused)); | |
2914 | cl_u1_inv_8x spare4_inv_8x (.in(1'b1), | |
2915 | .out(spare4_inv_8x_unused)); | |
2916 | cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1), | |
2917 | .in01(1'b1), | |
2918 | .in10(1'b1), | |
2919 | .in11(1'b1), | |
2920 | .out(spare4_aoi22_4x_unused)); | |
2921 | cl_u1_buf_8x spare4_buf_8x (.in(1'b1), | |
2922 | .out(spare4_buf_8x_unused)); | |
2923 | cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1), | |
2924 | .in01(1'b1), | |
2925 | .in10(1'b1), | |
2926 | .in11(1'b1), | |
2927 | .out(spare4_oai22_4x_unused)); | |
2928 | cl_u1_inv_16x spare4_inv_16x (.in(1'b1), | |
2929 | .out(spare4_inv_16x_unused)); | |
2930 | cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1), | |
2931 | .in1(1'b1), | |
2932 | .out(spare4_nand2_16x_unused)); | |
2933 | cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0), | |
2934 | .in1(1'b0), | |
2935 | .in2(1'b0), | |
2936 | .out(spare4_nor3_4x_unused)); | |
2937 | cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1), | |
2938 | .in1(1'b1), | |
2939 | .out(spare4_nand2_8x_unused)); | |
2940 | cl_u1_buf_16x spare4_buf_16x (.in(1'b1), | |
2941 | .out(spare4_buf_16x_unused)); | |
2942 | cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0), | |
2943 | .in1(1'b0), | |
2944 | .out(spare4_nor2_16x_unused)); | |
2945 | cl_u1_inv_32x spare4_inv_32x (.in(1'b1), | |
2946 | .out(spare4_inv_32x_unused)); | |
2947 | ||
2948 | cl_sc1_msff_8x spare5_flop (.l1clk(l1clk), | |
2949 | .siclk(siclk), | |
2950 | .soclk(soclk), | |
2951 | .si(si_5), | |
2952 | .so(so_5), | |
2953 | .d(1'b0), | |
2954 | .q(spare5_flop_unused)); | |
2955 | assign si_5 = so_4; | |
2956 | ||
2957 | cl_u1_buf_32x spare5_buf_32x (.in(1'b1), | |
2958 | .out(spare5_buf_32x_unused)); | |
2959 | cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1), | |
2960 | .in1(1'b1), | |
2961 | .in2(1'b1), | |
2962 | .out(spare5_nand3_8x_unused)); | |
2963 | cl_u1_inv_8x spare5_inv_8x (.in(1'b1), | |
2964 | .out(spare5_inv_8x_unused)); | |
2965 | cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1), | |
2966 | .in01(1'b1), | |
2967 | .in10(1'b1), | |
2968 | .in11(1'b1), | |
2969 | .out(spare5_aoi22_4x_unused)); | |
2970 | cl_u1_buf_8x spare5_buf_8x (.in(1'b1), | |
2971 | .out(spare5_buf_8x_unused)); | |
2972 | cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1), | |
2973 | .in01(1'b1), | |
2974 | .in10(1'b1), | |
2975 | .in11(1'b1), | |
2976 | .out(spare5_oai22_4x_unused)); | |
2977 | cl_u1_inv_16x spare5_inv_16x (.in(1'b1), | |
2978 | .out(spare5_inv_16x_unused)); | |
2979 | cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1), | |
2980 | .in1(1'b1), | |
2981 | .out(spare5_nand2_16x_unused)); | |
2982 | cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0), | |
2983 | .in1(1'b0), | |
2984 | .in2(1'b0), | |
2985 | .out(spare5_nor3_4x_unused)); | |
2986 | cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1), | |
2987 | .in1(1'b1), | |
2988 | .out(spare5_nand2_8x_unused)); | |
2989 | cl_u1_buf_16x spare5_buf_16x (.in(1'b1), | |
2990 | .out(spare5_buf_16x_unused)); | |
2991 | cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0), | |
2992 | .in1(1'b0), | |
2993 | .out(spare5_nor2_16x_unused)); | |
2994 | cl_u1_inv_32x spare5_inv_32x (.in(1'b1), | |
2995 | .out(spare5_inv_32x_unused)); | |
2996 | ||
2997 | cl_sc1_msff_8x spare6_flop (.l1clk(l1clk), | |
2998 | .siclk(siclk), | |
2999 | .soclk(soclk), | |
3000 | .si(si_6), | |
3001 | .so(so_6), | |
3002 | .d(1'b0), | |
3003 | .q(spare6_flop_unused)); | |
3004 | assign si_6 = so_5; | |
3005 | ||
3006 | cl_u1_buf_32x spare6_buf_32x (.in(1'b1), | |
3007 | .out(spare6_buf_32x_unused)); | |
3008 | cl_u1_nand3_8x spare6_nand3_8x (.in0(1'b1), | |
3009 | .in1(1'b1), | |
3010 | .in2(1'b1), | |
3011 | .out(spare6_nand3_8x_unused)); | |
3012 | cl_u1_inv_8x spare6_inv_8x (.in(1'b1), | |
3013 | .out(spare6_inv_8x_unused)); | |
3014 | cl_u1_aoi22_4x spare6_aoi22_4x (.in00(1'b1), | |
3015 | .in01(1'b1), | |
3016 | .in10(1'b1), | |
3017 | .in11(1'b1), | |
3018 | .out(spare6_aoi22_4x_unused)); | |
3019 | cl_u1_buf_8x spare6_buf_8x (.in(1'b1), | |
3020 | .out(spare6_buf_8x_unused)); | |
3021 | cl_u1_oai22_4x spare6_oai22_4x (.in00(1'b1), | |
3022 | .in01(1'b1), | |
3023 | .in10(1'b1), | |
3024 | .in11(1'b1), | |
3025 | .out(spare6_oai22_4x_unused)); | |
3026 | cl_u1_inv_16x spare6_inv_16x (.in(1'b1), | |
3027 | .out(spare6_inv_16x_unused)); | |
3028 | cl_u1_nand2_16x spare6_nand2_16x (.in0(1'b1), | |
3029 | .in1(1'b1), | |
3030 | .out(spare6_nand2_16x_unused)); | |
3031 | cl_u1_nor3_4x spare6_nor3_4x (.in0(1'b0), | |
3032 | .in1(1'b0), | |
3033 | .in2(1'b0), | |
3034 | .out(spare6_nor3_4x_unused)); | |
3035 | cl_u1_nand2_8x spare6_nand2_8x (.in0(1'b1), | |
3036 | .in1(1'b1), | |
3037 | .out(spare6_nand2_8x_unused)); | |
3038 | cl_u1_buf_16x spare6_buf_16x (.in(1'b1), | |
3039 | .out(spare6_buf_16x_unused)); | |
3040 | cl_u1_nor2_16x spare6_nor2_16x (.in0(1'b0), | |
3041 | .in1(1'b0), | |
3042 | .out(spare6_nor2_16x_unused)); | |
3043 | cl_u1_inv_32x spare6_inv_32x (.in(1'b1), | |
3044 | .out(spare6_inv_32x_unused)); | |
3045 | ||
3046 | cl_sc1_msff_8x spare7_flop (.l1clk(l1clk), | |
3047 | .siclk(siclk), | |
3048 | .soclk(soclk), | |
3049 | .si(si_7), | |
3050 | .so(so_7), | |
3051 | .d(1'b0), | |
3052 | .q(spare7_flop_unused)); | |
3053 | assign si_7 = so_6; | |
3054 | ||
3055 | cl_u1_buf_32x spare7_buf_32x (.in(1'b1), | |
3056 | .out(spare7_buf_32x_unused)); | |
3057 | cl_u1_nand3_8x spare7_nand3_8x (.in0(1'b1), | |
3058 | .in1(1'b1), | |
3059 | .in2(1'b1), | |
3060 | .out(spare7_nand3_8x_unused)); | |
3061 | cl_u1_inv_8x spare7_inv_8x (.in(1'b1), | |
3062 | .out(spare7_inv_8x_unused)); | |
3063 | cl_u1_aoi22_4x spare7_aoi22_4x (.in00(1'b1), | |
3064 | .in01(1'b1), | |
3065 | .in10(1'b1), | |
3066 | .in11(1'b1), | |
3067 | .out(spare7_aoi22_4x_unused)); | |
3068 | cl_u1_buf_8x spare7_buf_8x (.in(1'b1), | |
3069 | .out(spare7_buf_8x_unused)); | |
3070 | cl_u1_oai22_4x spare7_oai22_4x (.in00(1'b1), | |
3071 | .in01(1'b1), | |
3072 | .in10(1'b1), | |
3073 | .in11(1'b1), | |
3074 | .out(spare7_oai22_4x_unused)); | |
3075 | cl_u1_inv_16x spare7_inv_16x (.in(1'b1), | |
3076 | .out(spare7_inv_16x_unused)); | |
3077 | cl_u1_nand2_16x spare7_nand2_16x (.in0(1'b1), | |
3078 | .in1(1'b1), | |
3079 | .out(spare7_nand2_16x_unused)); | |
3080 | cl_u1_nor3_4x spare7_nor3_4x (.in0(1'b0), | |
3081 | .in1(1'b0), | |
3082 | .in2(1'b0), | |
3083 | .out(spare7_nor3_4x_unused)); | |
3084 | cl_u1_nand2_8x spare7_nand2_8x (.in0(1'b1), | |
3085 | .in1(1'b1), | |
3086 | .out(spare7_nand2_8x_unused)); | |
3087 | cl_u1_buf_16x spare7_buf_16x (.in(1'b1), | |
3088 | .out(spare7_buf_16x_unused)); | |
3089 | cl_u1_nor2_16x spare7_nor2_16x (.in0(1'b0), | |
3090 | .in1(1'b0), | |
3091 | .out(spare7_nor2_16x_unused)); | |
3092 | cl_u1_inv_32x spare7_inv_32x (.in(1'b1), | |
3093 | .out(spare7_inv_32x_unused)); | |
3094 | ||
3095 | cl_sc1_msff_8x spare8_flop (.l1clk(l1clk), | |
3096 | .siclk(siclk), | |
3097 | .soclk(soclk), | |
3098 | .si(si_8), | |
3099 | .so(so_8), | |
3100 | .d(1'b0), | |
3101 | .q(spare8_flop_unused)); | |
3102 | assign si_8 = so_7; | |
3103 | ||
3104 | cl_u1_buf_32x spare8_buf_32x (.in(1'b1), | |
3105 | .out(spare8_buf_32x_unused)); | |
3106 | cl_u1_nand3_8x spare8_nand3_8x (.in0(1'b1), | |
3107 | .in1(1'b1), | |
3108 | .in2(1'b1), | |
3109 | .out(spare8_nand3_8x_unused)); | |
3110 | cl_u1_inv_8x spare8_inv_8x (.in(1'b1), | |
3111 | .out(spare8_inv_8x_unused)); | |
3112 | cl_u1_aoi22_4x spare8_aoi22_4x (.in00(1'b1), | |
3113 | .in01(1'b1), | |
3114 | .in10(1'b1), | |
3115 | .in11(1'b1), | |
3116 | .out(spare8_aoi22_4x_unused)); | |
3117 | cl_u1_buf_8x spare8_buf_8x (.in(1'b1), | |
3118 | .out(spare8_buf_8x_unused)); | |
3119 | cl_u1_oai22_4x spare8_oai22_4x (.in00(1'b1), | |
3120 | .in01(1'b1), | |
3121 | .in10(1'b1), | |
3122 | .in11(1'b1), | |
3123 | .out(spare8_oai22_4x_unused)); | |
3124 | cl_u1_inv_16x spare8_inv_16x (.in(1'b1), | |
3125 | .out(spare8_inv_16x_unused)); | |
3126 | cl_u1_nand2_16x spare8_nand2_16x (.in0(1'b1), | |
3127 | .in1(1'b1), | |
3128 | .out(spare8_nand2_16x_unused)); | |
3129 | cl_u1_nor3_4x spare8_nor3_4x (.in0(1'b0), | |
3130 | .in1(1'b0), | |
3131 | .in2(1'b0), | |
3132 | .out(spare8_nor3_4x_unused)); | |
3133 | cl_u1_nand2_8x spare8_nand2_8x (.in0(1'b1), | |
3134 | .in1(1'b1), | |
3135 | .out(spare8_nand2_8x_unused)); | |
3136 | cl_u1_buf_16x spare8_buf_16x (.in(1'b1), | |
3137 | .out(spare8_buf_16x_unused)); | |
3138 | cl_u1_nor2_16x spare8_nor2_16x (.in0(1'b0), | |
3139 | .in1(1'b0), | |
3140 | .out(spare8_nor2_16x_unused)); | |
3141 | cl_u1_inv_32x spare8_inv_32x (.in(1'b1), | |
3142 | .out(spare8_inv_32x_unused)); | |
3143 | ||
3144 | cl_sc1_msff_8x spare9_flop (.l1clk(l1clk), | |
3145 | .siclk(siclk), | |
3146 | .soclk(soclk), | |
3147 | .si(si_9), | |
3148 | .so(so_9), | |
3149 | .d(1'b0), | |
3150 | .q(spare9_flop_unused)); | |
3151 | assign si_9 = so_8; | |
3152 | ||
3153 | cl_u1_buf_32x spare9_buf_32x (.in(1'b1), | |
3154 | .out(spare9_buf_32x_unused)); | |
3155 | cl_u1_nand3_8x spare9_nand3_8x (.in0(1'b1), | |
3156 | .in1(1'b1), | |
3157 | .in2(1'b1), | |
3158 | .out(spare9_nand3_8x_unused)); | |
3159 | cl_u1_inv_8x spare9_inv_8x (.in(1'b1), | |
3160 | .out(spare9_inv_8x_unused)); | |
3161 | cl_u1_aoi22_4x spare9_aoi22_4x (.in00(1'b1), | |
3162 | .in01(1'b1), | |
3163 | .in10(1'b1), | |
3164 | .in11(1'b1), | |
3165 | .out(spare9_aoi22_4x_unused)); | |
3166 | cl_u1_buf_8x spare9_buf_8x (.in(1'b1), | |
3167 | .out(spare9_buf_8x_unused)); | |
3168 | cl_u1_oai22_4x spare9_oai22_4x (.in00(1'b1), | |
3169 | .in01(1'b1), | |
3170 | .in10(1'b1), | |
3171 | .in11(1'b1), | |
3172 | .out(spare9_oai22_4x_unused)); | |
3173 | cl_u1_inv_16x spare9_inv_16x (.in(1'b1), | |
3174 | .out(spare9_inv_16x_unused)); | |
3175 | cl_u1_nand2_16x spare9_nand2_16x (.in0(1'b1), | |
3176 | .in1(1'b1), | |
3177 | .out(spare9_nand2_16x_unused)); | |
3178 | cl_u1_nor3_4x spare9_nor3_4x (.in0(1'b0), | |
3179 | .in1(1'b0), | |
3180 | .in2(1'b0), | |
3181 | .out(spare9_nor3_4x_unused)); | |
3182 | cl_u1_nand2_8x spare9_nand2_8x (.in0(1'b1), | |
3183 | .in1(1'b1), | |
3184 | .out(spare9_nand2_8x_unused)); | |
3185 | cl_u1_buf_16x spare9_buf_16x (.in(1'b1), | |
3186 | .out(spare9_buf_16x_unused)); | |
3187 | cl_u1_nor2_16x spare9_nor2_16x (.in0(1'b0), | |
3188 | .in1(1'b0), | |
3189 | .out(spare9_nor2_16x_unused)); | |
3190 | cl_u1_inv_32x spare9_inv_32x (.in(1'b1), | |
3191 | .out(spare9_inv_32x_unused)); | |
3192 | ||
3193 | cl_sc1_msff_8x spare10_flop (.l1clk(l1clk), | |
3194 | .siclk(siclk), | |
3195 | .soclk(soclk), | |
3196 | .si(si_10), | |
3197 | .so(so_10), | |
3198 | .d(1'b0), | |
3199 | .q(spare10_flop_unused)); | |
3200 | assign si_10 = so_9; | |
3201 | ||
3202 | cl_u1_buf_32x spare10_buf_32x (.in(1'b1), | |
3203 | .out(spare10_buf_32x_unused)); | |
3204 | cl_u1_nand3_8x spare10_nand3_8x (.in0(1'b1), | |
3205 | .in1(1'b1), | |
3206 | .in2(1'b1), | |
3207 | .out(spare10_nand3_8x_unused)); | |
3208 | cl_u1_inv_8x spare10_inv_8x (.in(1'b1), | |
3209 | .out(spare10_inv_8x_unused)); | |
3210 | cl_u1_aoi22_4x spare10_aoi22_4x (.in00(1'b1), | |
3211 | .in01(1'b1), | |
3212 | .in10(1'b1), | |
3213 | .in11(1'b1), | |
3214 | .out(spare10_aoi22_4x_unused)); | |
3215 | cl_u1_buf_8x spare10_buf_8x (.in(1'b1), | |
3216 | .out(spare10_buf_8x_unused)); | |
3217 | cl_u1_oai22_4x spare10_oai22_4x (.in00(1'b1), | |
3218 | .in01(1'b1), | |
3219 | .in10(1'b1), | |
3220 | .in11(1'b1), | |
3221 | .out(spare10_oai22_4x_unused)); | |
3222 | cl_u1_inv_16x spare10_inv_16x (.in(1'b1), | |
3223 | .out(spare10_inv_16x_unused)); | |
3224 | cl_u1_nand2_16x spare10_nand2_16x (.in0(1'b1), | |
3225 | .in1(1'b1), | |
3226 | .out(spare10_nand2_16x_unused)); | |
3227 | cl_u1_nor3_4x spare10_nor3_4x (.in0(1'b0), | |
3228 | .in1(1'b0), | |
3229 | .in2(1'b0), | |
3230 | .out(spare10_nor3_4x_unused)); | |
3231 | cl_u1_nand2_8x spare10_nand2_8x (.in0(1'b1), | |
3232 | .in1(1'b1), | |
3233 | .out(spare10_nand2_8x_unused)); | |
3234 | cl_u1_buf_16x spare10_buf_16x (.in(1'b1), | |
3235 | .out(spare10_buf_16x_unused)); | |
3236 | cl_u1_nor2_16x spare10_nor2_16x (.in0(1'b0), | |
3237 | .in1(1'b0), | |
3238 | .out(spare10_nor2_16x_unused)); | |
3239 | cl_u1_inv_32x spare10_inv_32x (.in(1'b1), | |
3240 | .out(spare10_inv_32x_unused)); | |
3241 | assign scan_out = so_10; | |
3242 | ||
3243 | ||
3244 | ||
3245 | endmodule | |
3246 | ||
3247 | ||
3248 | ||
3249 | ||
3250 | // any PARAMS parms go into naming of macro | |
3251 | ||
3252 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_128 ( | |
3253 | din, | |
3254 | en, | |
3255 | l1clk, | |
3256 | scan_in, | |
3257 | siclk, | |
3258 | soclk, | |
3259 | dout, | |
3260 | scan_out); | |
3261 | wire [127:0] fdin; | |
3262 | wire [126:0] so; | |
3263 | ||
3264 | input [127:0] din; | |
3265 | input en; | |
3266 | input l1clk; | |
3267 | input scan_in; | |
3268 | ||
3269 | ||
3270 | input siclk; | |
3271 | input soclk; | |
3272 | ||
3273 | output [127:0] dout; | |
3274 | output scan_out; | |
3275 | assign fdin[127:0] = (din[127:0] & {128{en}}) | (dout[127:0] & ~{128{en}}); | |
3276 | ||
3277 | ||
3278 | ||
3279 | ||
3280 | ||
3281 | ||
3282 | dff #(128) d0_0 ( | |
3283 | .l1clk(l1clk), | |
3284 | .siclk(siclk), | |
3285 | .soclk(soclk), | |
3286 | .d(fdin[127:0]), | |
3287 | .si({scan_in,so[126:0]}), | |
3288 | .so({so[126:0],scan_out}), | |
3289 | .q(dout[127:0]) | |
3290 | ); | |
3291 | ||
3292 | ||
3293 | ||
3294 | ||
3295 | ||
3296 | ||
3297 | ||
3298 | ||
3299 | ||
3300 | ||
3301 | ||
3302 | ||
3303 | endmodule | |
3304 | ||
3305 | ||
3306 | ||
3307 | ||
3308 | ||
3309 | ||
3310 | ||
3311 | ||
3312 | ||
3313 | ||
3314 | ||
3315 | ||
3316 | ||
3317 | // any PARAMS parms go into naming of macro | |
3318 | ||
3319 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_1 ( | |
3320 | din, | |
3321 | en, | |
3322 | l1clk, | |
3323 | scan_in, | |
3324 | siclk, | |
3325 | soclk, | |
3326 | dout, | |
3327 | scan_out); | |
3328 | wire [0:0] fdin; | |
3329 | ||
3330 | input [0:0] din; | |
3331 | input en; | |
3332 | input l1clk; | |
3333 | input scan_in; | |
3334 | ||
3335 | ||
3336 | input siclk; | |
3337 | input soclk; | |
3338 | ||
3339 | output [0:0] dout; | |
3340 | output scan_out; | |
3341 | assign fdin[0:0] = (din[0:0] & {1{en}}) | (dout[0:0] & ~{1{en}}); | |
3342 | ||
3343 | ||
3344 | ||
3345 | ||
3346 | ||
3347 | ||
3348 | dff #(1) d0_0 ( | |
3349 | .l1clk(l1clk), | |
3350 | .siclk(siclk), | |
3351 | .soclk(soclk), | |
3352 | .d(fdin[0:0]), | |
3353 | .si(scan_in), | |
3354 | .so(scan_out), | |
3355 | .q(dout[0:0]) | |
3356 | ); | |
3357 | ||
3358 | ||
3359 | ||
3360 | ||
3361 | ||
3362 | ||
3363 | ||
3364 | ||
3365 | ||
3366 | ||
3367 | ||
3368 | ||
3369 | endmodule | |
3370 | ||
3371 | ||
3372 | ||
3373 | ||
3374 | ||
3375 | ||
3376 | ||
3377 | ||
3378 | ||
3379 | ||
3380 | ||
3381 | ||
3382 | ||
3383 | // any PARAMS parms go into naming of macro | |
3384 | ||
3385 | module ncu_i2cscd_ctl_msff_ctl_macro__width_16 ( | |
3386 | din, | |
3387 | l1clk, | |
3388 | scan_in, | |
3389 | siclk, | |
3390 | soclk, | |
3391 | dout, | |
3392 | scan_out); | |
3393 | wire [15:0] fdin; | |
3394 | wire [14:0] so; | |
3395 | ||
3396 | input [15:0] din; | |
3397 | input l1clk; | |
3398 | input scan_in; | |
3399 | ||
3400 | ||
3401 | input siclk; | |
3402 | input soclk; | |
3403 | ||
3404 | output [15:0] dout; | |
3405 | output scan_out; | |
3406 | assign fdin[15:0] = din[15:0]; | |
3407 | ||
3408 | ||
3409 | ||
3410 | ||
3411 | ||
3412 | ||
3413 | dff #(16) d0_0 ( | |
3414 | .l1clk(l1clk), | |
3415 | .siclk(siclk), | |
3416 | .soclk(soclk), | |
3417 | .d(fdin[15:0]), | |
3418 | .si({scan_in,so[14:0]}), | |
3419 | .so({so[14:0],scan_out}), | |
3420 | .q(dout[15:0]) | |
3421 | ); | |
3422 | ||
3423 | ||
3424 | ||
3425 | ||
3426 | ||
3427 | ||
3428 | ||
3429 | ||
3430 | ||
3431 | ||
3432 | ||
3433 | ||
3434 | endmodule | |
3435 | ||
3436 | ||
3437 | ||
3438 | ||
3439 | ||
3440 | // any PARAMS parms go into naming of macro | |
3441 | ||
3442 | module ncu_i2cscd_ctl_msff_ctl_macro__width_32 ( | |
3443 | din, | |
3444 | l1clk, | |
3445 | scan_in, | |
3446 | siclk, | |
3447 | soclk, | |
3448 | dout, | |
3449 | scan_out); | |
3450 | wire [31:0] fdin; | |
3451 | wire [30:0] so; | |
3452 | ||
3453 | input [31:0] din; | |
3454 | input l1clk; | |
3455 | input scan_in; | |
3456 | ||
3457 | ||
3458 | input siclk; | |
3459 | input soclk; | |
3460 | ||
3461 | output [31:0] dout; | |
3462 | output scan_out; | |
3463 | assign fdin[31:0] = din[31:0]; | |
3464 | ||
3465 | ||
3466 | ||
3467 | ||
3468 | ||
3469 | ||
3470 | dff #(32) d0_0 ( | |
3471 | .l1clk(l1clk), | |
3472 | .siclk(siclk), | |
3473 | .soclk(soclk), | |
3474 | .d(fdin[31:0]), | |
3475 | .si({scan_in,so[30:0]}), | |
3476 | .so({so[30:0],scan_out}), | |
3477 | .q(dout[31:0]) | |
3478 | ); | |
3479 | ||
3480 | ||
3481 | ||
3482 | ||
3483 | ||
3484 | ||
3485 | ||
3486 | ||
3487 | ||
3488 | ||
3489 | ||
3490 | ||
3491 | endmodule | |
3492 | ||
3493 | ||
3494 | ||
3495 | ||
3496 | ||
3497 | ||
3498 | ||
3499 | ||
3500 | ||
3501 | ||
3502 | ||
3503 | ||
3504 | ||
3505 | // any PARAMS parms go into naming of macro | |
3506 | ||
3507 | module ncu_i2cscd_ctl_msff_ctl_macro__width_2 ( | |
3508 | din, | |
3509 | l1clk, | |
3510 | scan_in, | |
3511 | siclk, | |
3512 | soclk, | |
3513 | dout, | |
3514 | scan_out); | |
3515 | wire [1:0] fdin; | |
3516 | wire [0:0] so; | |
3517 | ||
3518 | input [1:0] din; | |
3519 | input l1clk; | |
3520 | input scan_in; | |
3521 | ||
3522 | ||
3523 | input siclk; | |
3524 | input soclk; | |
3525 | ||
3526 | output [1:0] dout; | |
3527 | output scan_out; | |
3528 | assign fdin[1:0] = din[1:0]; | |
3529 | ||
3530 | ||
3531 | ||
3532 | ||
3533 | ||
3534 | ||
3535 | dff #(2) d0_0 ( | |
3536 | .l1clk(l1clk), | |
3537 | .siclk(siclk), | |
3538 | .soclk(soclk), | |
3539 | .d(fdin[1:0]), | |
3540 | .si({scan_in,so[0:0]}), | |
3541 | .so({so[0:0],scan_out}), | |
3542 | .q(dout[1:0]) | |
3543 | ); | |
3544 | ||
3545 | ||
3546 | ||
3547 | ||
3548 | ||
3549 | ||
3550 | ||
3551 | ||
3552 | ||
3553 | ||
3554 | ||
3555 | ||
3556 | endmodule | |
3557 | ||
3558 | ||
3559 | ||
3560 | ||
3561 | ||
3562 | ||
3563 | ||
3564 | ||
3565 | ||
3566 | ||
3567 | ||
3568 | ||
3569 | ||
3570 | // any PARAMS parms go into naming of macro | |
3571 | ||
3572 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_32 ( | |
3573 | din, | |
3574 | en, | |
3575 | l1clk, | |
3576 | scan_in, | |
3577 | siclk, | |
3578 | soclk, | |
3579 | dout, | |
3580 | scan_out); | |
3581 | wire [31:0] fdin; | |
3582 | wire [30:0] so; | |
3583 | ||
3584 | input [31:0] din; | |
3585 | input en; | |
3586 | input l1clk; | |
3587 | input scan_in; | |
3588 | ||
3589 | ||
3590 | input siclk; | |
3591 | input soclk; | |
3592 | ||
3593 | output [31:0] dout; | |
3594 | output scan_out; | |
3595 | assign fdin[31:0] = (din[31:0] & {32{en}}) | (dout[31:0] & ~{32{en}}); | |
3596 | ||
3597 | ||
3598 | ||
3599 | ||
3600 | ||
3601 | ||
3602 | dff #(32) d0_0 ( | |
3603 | .l1clk(l1clk), | |
3604 | .siclk(siclk), | |
3605 | .soclk(soclk), | |
3606 | .d(fdin[31:0]), | |
3607 | .si({scan_in,so[30:0]}), | |
3608 | .so({so[30:0],scan_out}), | |
3609 | .q(dout[31:0]) | |
3610 | ); | |
3611 | ||
3612 | ||
3613 | ||
3614 | ||
3615 | ||
3616 | ||
3617 | ||
3618 | ||
3619 | ||
3620 | ||
3621 | ||
3622 | ||
3623 | endmodule | |
3624 | ||
3625 | ||
3626 | ||
3627 | ||
3628 | ||
3629 | ||
3630 | // any PARAMS parms go into naming of macro | |
3631 | ||
3632 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_16 ( | |
3633 | din, | |
3634 | en, | |
3635 | l1clk, | |
3636 | scan_in, | |
3637 | siclk, | |
3638 | soclk, | |
3639 | dout, | |
3640 | scan_out); | |
3641 | wire [15:0] fdin; | |
3642 | wire [14:0] so; | |
3643 | ||
3644 | input [15:0] din; | |
3645 | input en; | |
3646 | input l1clk; | |
3647 | input scan_in; | |
3648 | ||
3649 | ||
3650 | input siclk; | |
3651 | input soclk; | |
3652 | ||
3653 | output [15:0] dout; | |
3654 | output scan_out; | |
3655 | assign fdin[15:0] = (din[15:0] & {16{en}}) | (dout[15:0] & ~{16{en}}); | |
3656 | ||
3657 | ||
3658 | ||
3659 | ||
3660 | ||
3661 | ||
3662 | dff #(16) d0_0 ( | |
3663 | .l1clk(l1clk), | |
3664 | .siclk(siclk), | |
3665 | .soclk(soclk), | |
3666 | .d(fdin[15:0]), | |
3667 | .si({scan_in,so[14:0]}), | |
3668 | .so({so[14:0],scan_out}), | |
3669 | .q(dout[15:0]) | |
3670 | ); | |
3671 | ||
3672 | ||
3673 | ||
3674 | ||
3675 | ||
3676 | ||
3677 | ||
3678 | ||
3679 | ||
3680 | ||
3681 | ||
3682 | ||
3683 | endmodule | |
3684 | ||
3685 | ||
3686 | ||
3687 | ||
3688 | ||
3689 | ||
3690 | ||
3691 | ||
3692 | ||
3693 | ||
3694 | ||
3695 | ||
3696 | ||
3697 | // any PARAMS parms go into naming of macro | |
3698 | ||
3699 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_64 ( | |
3700 | din, | |
3701 | en, | |
3702 | l1clk, | |
3703 | scan_in, | |
3704 | siclk, | |
3705 | soclk, | |
3706 | dout, | |
3707 | scan_out); | |
3708 | wire [63:0] fdin; | |
3709 | wire [62:0] so; | |
3710 | ||
3711 | input [63:0] din; | |
3712 | input en; | |
3713 | input l1clk; | |
3714 | input scan_in; | |
3715 | ||
3716 | ||
3717 | input siclk; | |
3718 | input soclk; | |
3719 | ||
3720 | output [63:0] dout; | |
3721 | output scan_out; | |
3722 | assign fdin[63:0] = (din[63:0] & {64{en}}) | (dout[63:0] & ~{64{en}}); | |
3723 | ||
3724 | ||
3725 | ||
3726 | ||
3727 | ||
3728 | ||
3729 | dff #(64) d0_0 ( | |
3730 | .l1clk(l1clk), | |
3731 | .siclk(siclk), | |
3732 | .soclk(soclk), | |
3733 | .d(fdin[63:0]), | |
3734 | .si({scan_in,so[62:0]}), | |
3735 | .so({so[62:0],scan_out}), | |
3736 | .q(dout[63:0]) | |
3737 | ); | |
3738 | ||
3739 | ||
3740 | ||
3741 | ||
3742 | ||
3743 | ||
3744 | ||
3745 | ||
3746 | ||
3747 | ||
3748 | ||
3749 | ||
3750 | endmodule | |
3751 | ||
3752 | ||
3753 | ||
3754 | ||
3755 | ||
3756 | ||
3757 | ||
3758 | ||
3759 | ||
3760 | ||
3761 | ||
3762 | ||
3763 | ||
3764 | // any PARAMS parms go into naming of macro | |
3765 | ||
3766 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_140 ( | |
3767 | din, | |
3768 | en, | |
3769 | l1clk, | |
3770 | scan_in, | |
3771 | siclk, | |
3772 | soclk, | |
3773 | dout, | |
3774 | scan_out); | |
3775 | wire [139:0] fdin; | |
3776 | wire [138:0] so; | |
3777 | ||
3778 | input [139:0] din; | |
3779 | input en; | |
3780 | input l1clk; | |
3781 | input scan_in; | |
3782 | ||
3783 | ||
3784 | input siclk; | |
3785 | input soclk; | |
3786 | ||
3787 | output [139:0] dout; | |
3788 | output scan_out; | |
3789 | assign fdin[139:0] = (din[139:0] & {140{en}}) | (dout[139:0] & ~{140{en}}); | |
3790 | ||
3791 | ||
3792 | ||
3793 | ||
3794 | ||
3795 | ||
3796 | dff #(140) d0_0 ( | |
3797 | .l1clk(l1clk), | |
3798 | .siclk(siclk), | |
3799 | .soclk(soclk), | |
3800 | .d(fdin[139:0]), | |
3801 | .si({scan_in,so[138:0]}), | |
3802 | .so({so[138:0],scan_out}), | |
3803 | .q(dout[139:0]) | |
3804 | ); | |
3805 | ||
3806 | ||
3807 | ||
3808 | ||
3809 | ||
3810 | ||
3811 | ||
3812 | ||
3813 | ||
3814 | ||
3815 | ||
3816 | ||
3817 | endmodule | |
3818 | ||
3819 | ||
3820 | ||
3821 | ||
3822 | ||
3823 | ||
3824 | ||
3825 | ||
3826 | // any PARAMS parms go into naming of macro | |
3827 | ||
3828 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_4 ( | |
3829 | din, | |
3830 | en, | |
3831 | l1clk, | |
3832 | scan_in, | |
3833 | siclk, | |
3834 | soclk, | |
3835 | dout, | |
3836 | scan_out); | |
3837 | wire [3:0] fdin; | |
3838 | wire [2:0] so; | |
3839 | ||
3840 | input [3:0] din; | |
3841 | input en; | |
3842 | input l1clk; | |
3843 | input scan_in; | |
3844 | ||
3845 | ||
3846 | input siclk; | |
3847 | input soclk; | |
3848 | ||
3849 | output [3:0] dout; | |
3850 | output scan_out; | |
3851 | assign fdin[3:0] = (din[3:0] & {4{en}}) | (dout[3:0] & ~{4{en}}); | |
3852 | ||
3853 | ||
3854 | ||
3855 | ||
3856 | ||
3857 | ||
3858 | dff #(4) d0_0 ( | |
3859 | .l1clk(l1clk), | |
3860 | .siclk(siclk), | |
3861 | .soclk(soclk), | |
3862 | .d(fdin[3:0]), | |
3863 | .si({scan_in,so[2:0]}), | |
3864 | .so({so[2:0],scan_out}), | |
3865 | .q(dout[3:0]) | |
3866 | ); | |
3867 | ||
3868 | ||
3869 | ||
3870 | ||
3871 | ||
3872 | ||
3873 | ||
3874 | ||
3875 | ||
3876 | ||
3877 | ||
3878 | ||
3879 | endmodule | |
3880 | ||
3881 | ||
3882 | ||
3883 | ||
3884 | ||
3885 | // any PARAMS parms go into naming of macro | |
3886 | ||
3887 | module ncu_i2cscd_ctl_msff_ctl_macro__en_1__width_25 ( | |
3888 | din, | |
3889 | en, | |
3890 | l1clk, | |
3891 | scan_in, | |
3892 | siclk, | |
3893 | soclk, | |
3894 | dout, | |
3895 | scan_out); | |
3896 | wire [24:0] fdin; | |
3897 | wire [23:0] so; | |
3898 | ||
3899 | input [24:0] din; | |
3900 | input en; | |
3901 | input l1clk; | |
3902 | input scan_in; | |
3903 | ||
3904 | ||
3905 | input siclk; | |
3906 | input soclk; | |
3907 | ||
3908 | output [24:0] dout; | |
3909 | output scan_out; | |
3910 | assign fdin[24:0] = (din[24:0] & {25{en}}) | (dout[24:0] & ~{25{en}}); | |
3911 | ||
3912 | ||
3913 | ||
3914 | ||
3915 | ||
3916 | ||
3917 | dff #(25) d0_0 ( | |
3918 | .l1clk(l1clk), | |
3919 | .siclk(siclk), | |
3920 | .soclk(soclk), | |
3921 | .d(fdin[24:0]), | |
3922 | .si({scan_in,so[23:0]}), | |
3923 | .so({so[23:0],scan_out}), | |
3924 | .q(dout[24:0]) | |
3925 | ); | |
3926 | ||
3927 | ||
3928 | ||
3929 | ||
3930 | ||
3931 | ||
3932 | ||
3933 | ||
3934 | ||
3935 | ||
3936 | ||
3937 | ||
3938 | endmodule | |
3939 | ||
3940 |