Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / efu / rtl / efu_niu_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: efu_niu_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 ============================================
35module efu_niu_ctl (
36 tcu_dbr_gateoff,
37 efu_niu_mac01_sfro_data,
38 efu_niu_mac1_sf_xfer_en,
39 efu_niu_mac1_sf_clr,
40 efu_niu_mac1_ro_xfer_en,
41 efu_niu_mac1_ro_clr,
42 efu_niu_mac0_sf_xfer_en,
43 efu_niu_mac0_sf_clr,
44 efu_niu_mac0_ro_xfer_en,
45 efu_niu_mac0_ro_clr,
46 efu_niu_ipp1_xfer_en,
47 efu_niu_ipp1_clr,
48 efu_niu_ipp0_xfer_en,
49 efu_niu_ipp0_clr,
50 efu_niu_cfifo_data,
51 efu_niu_cfifo0_xfer_en,
52 efu_niu_cfifo1_xfer_en,
53 efu_niu_cfifo1_clr,
54 efu_niu_cfifo0_clr,
55 efu_niu_ram_data,
56 efu_niu_ram_xfer_en,
57 efu_niu_ram_clr,
58 niu_efu_ram_xfer_en,
59 niu_efu_ram_data,
60 efu_niu_ram0_clr,
61 efu_niu_ram0_xfer_en,
62 niu_efu_ram0_xfer_en,
63 niu_efu_ram0_data,
64 efu_niu_ram1_clr,
65 efu_niu_ram1_xfer_en,
66 niu_efu_ram1_xfer_en,
67 niu_efu_ram1_data,
68 efu_niu_4k_data,
69 efu_niu_4k_xfer_en,
70 efu_niu_4k_clr,
71 niu_efu_4k_xfer_en,
72 niu_efu_4k_data,
73 cmp_io_sync_en,
74 io_cmp_sync_en,
75 niu_efu_mac1_sf_xfer_en,
76 niu_efu_mac1_sf_data,
77 niu_efu_mac0_sf_xfer_en,
78 niu_efu_mac0_sf_data,
79 niu_efu_mac1_ro_xfer_en,
80 niu_efu_mac1_ro_data,
81 niu_efu_mac0_ro_xfer_en,
82 niu_efu_mac0_ro_data,
83 niu_efu_ipp1_xfer_en,
84 niu_efu_ipp1_data,
85 niu_efu_ipp0_xfer_en,
86 niu_efu_ipp0_data,
87 niu_efu_cfifo0_xfer_en,
88 niu_efu_cfifo0_data,
89 niu_efu_cfifo1_xfer_en,
90 niu_efu_cfifo1_data,
91 efu_spc0_fuse_iclr,
92 efu_spc1_fuse_iclr,
93 efu_spc2_fuse_iclr,
94 efu_spc3_fuse_iclr,
95 efu_spc4_fuse_iclr,
96 efu_spc5_fuse_iclr,
97 efu_spc6_fuse_iclr,
98 efu_spc7_fuse_iclr,
99 efu_spc0_fuse_dclr,
100 efu_spc1_fuse_dclr,
101 efu_spc2_fuse_dclr,
102 efu_spc3_fuse_dclr,
103 efu_spc4_fuse_dclr,
104 efu_spc5_fuse_dclr,
105 efu_spc6_fuse_dclr,
106 efu_spc7_fuse_dclr,
107 efu_l2t0_fuse_clr,
108 efu_l2t1_fuse_clr,
109 efu_l2t2_fuse_clr,
110 efu_l2t3_fuse_clr,
111 efu_l2t4_fuse_clr,
112 efu_l2t5_fuse_clr,
113 efu_l2t6_fuse_clr,
114 efu_l2t7_fuse_clr,
115 efu_l2b0_fuse_clr,
116 efu_l2b1_fuse_clr,
117 efu_l2b2_fuse_clr,
118 efu_l2b3_fuse_clr,
119 efu_l2b4_fuse_clr,
120 efu_l2b5_fuse_clr,
121 efu_l2b6_fuse_clr,
122 efu_l2b7_fuse_clr,
123 efu_dmu_data,
124 efu_dmu_xfer_en,
125 efu_dmu_clr,
126 dmu_efu_xfer_en,
127 dmu_efu_data,
128 efu_mcu_fdi,
129 mcu_efu_fdo,
130 efu_mcu_fclk,
131 efu_mcu_fclrz,
132 efu_psr_fdi,
133 psr_efu_fdo,
134 efu_psr_fclk,
135 efu_psr_fclrz,
136 efu_niu_fdi,
137 niu_efu_fdo,
138 efu_niu_fclk,
139 efu_niu_fclrz,
140 read_data_ff,
141 read_data_ff_vld,
142 tcu_red_reg_clr,
143 tcu_pce_ov,
144 tcu_clk_stop,
145 tcu_aclk,
146 tcu_bclk,
147 tcu_scan_en,
148 scan_in,
149 scan_out,
150 iol2clk,
151 l2clk,
152 niu_read_data_shift,
153 load_niu_read_data);
154wire pce_ov;
155wire siclk;
156wire soclk;
157wire stop;
158wire se;
159wire l1clk;
160wire l1clk_cmp;
161wire ff_mcu_fdo_scanin;
162wire ff_mcu_fdo_scanout;
163wire mcu_fdo_fck;
164wire serdes_rd_en_d;
165wire ff_psr_fdo_scanin;
166wire ff_psr_fdo_scanout;
167wire psr_fdo_fck;
168wire ff_niu_fdo_scanin;
169wire ff_niu_fdo_scanout;
170wire niu_fdo_fck;
171wire serdes_fdo;
172wire [5:0] block_id_vld;
173wire niu_shift_in;
174wire read_data_xfer_en;
175wire efu_xfer_en;
176wire serdes;
177wire cntz;
178wire load_niu_read_data_d;
179wire read_data_xfer_en_r1;
180wire capture_serdes_d;
181wire ff_capture_serdes_scanin;
182wire ff_capture_serdes_scanout;
183wire capture_serdes_d1;
184wire capture_serdes;
185wire ff_serdes_rd_en_scanin;
186wire ff_serdes_rd_en_scanout;
187wire serdes_rd_en;
188wire ff_niu_shift_scanin;
189wire ff_niu_shift_scanout;
190wire niu_shift;
191wire ff_load_niu_read_data_scanin;
192wire ff_load_niu_read_data_scanout;
193wire ff_read_data_in_r2_scanin;
194wire ff_read_data_in_r2_scanout;
195wire read_data_xfer_en_r2;
196wire ff_read_data_in_r1_scanin;
197wire ff_read_data_in_r1_scanout;
198wire ff_read_data_in_scanin;
199wire ff_read_data_in_scanout;
200wire read_data_xfer_en_reg;
201wire [31:0] shift_data_ff_in;
202wire pulse_read_data_ff_vld_r1;
203wire [31:0] read_data_ff_sync;
204wire [31:0] serdes_data_shift;
205wire [31:0] serdes_data_shift_in;
206wire ff_read_data_ff_vld_scanin;
207wire ff_read_data_ff_vld_scanout;
208wire read_data_ff_vld_r1;
209wire ff_read_data_ff_vld_1_scanin;
210wire ff_read_data_ff_vld_1_scanout;
211wire read_data_ff_vld_r2;
212wire pulse_read_data_ff_vld;
213wire ff_pulse_read_data_ff_vld_scanin;
214wire ff_pulse_read_data_ff_vld_scanout;
215wire ff_pulse_read_data_ff_vld_1_scanin;
216wire ff_pulse_read_data_ff_vld_1_scanout;
217wire pulse_read_data_ff_vld_r2;
218wire ff_read_data_ff_sync_scanin;
219wire ff_read_data_ff_sync_scanout;
220wire ff_read_data_ff_shift_scanin;
221wire ff_read_data_ff_shift_scanout;
222wire ff_serdes_data_shift_scanin;
223wire ff_serdes_data_shift_scanout;
224wire [3:0] sub_block_id;
225wire computed_parity;
226wire good_parity;
227wire vld_en_nxt;
228wire efu_niu_1k_dec;
229wire efu_niu_mac1_sf_xfer_en_in;
230wire efu_niu_mac1_ro_xfer_en_in;
231wire efu_niu_mac0_sf_xfer_en_in;
232wire efu_niu_mac0_ro_xfer_en_in;
233wire efu_niu_ipp0_xfer_en_in;
234wire efu_niu_ipp1_xfer_en_in;
235wire efu_niu_512_dec;
236wire efu_niu_cfifo0_xfer_en_in;
237wire efu_niu_cfifo1_xfer_en_in;
238wire efu_niu_ram0_xfer_en_in;
239wire efu_niu_ram1_xfer_en_in;
240wire efu_niu_4k_dec;
241wire efu_niu_4k_xfer_en_in;
242wire efu_niu_256_dec;
243wire efu_niu_ram_xfer_en_in;
244wire [6:0] cnt_data;
245wire pulse_vld_en_nxt;
246wire vld_en;
247wire efu_niu_mac1_sf_xfer_en_q;
248wire efu_niu_mac1_ro_xfer_en_q;
249wire efu_niu_mac0_sf_xfer_en_q;
250wire efu_niu_mac0_ro_xfer_en_q;
251wire efu_niu_ipp0_xfer_en_q;
252wire efu_niu_ipp1_xfer_en_q;
253wire efu_niu_cfifo0_xfer_en_q;
254wire efu_niu_cfifo1_xfer_en_q;
255wire efu_niu_ram0_xfer_en_q;
256wire efu_niu_ram1_xfer_en_q;
257wire efu_niu_4k_xfer_en_q;
258wire efu_niu_ram_xfer_en_q;
259wire efu_dmu_xfer_en_q;
260wire efu_niu_fclrz_q;
261wire efu_psr_fclrz_q;
262wire efu_mcu_fclrz_q;
263wire efu_dmu_clr_q;
264wire ff_mac1_sf_xfer_en_scanin;
265wire ff_mac1_sf_xfer_en_scanout;
266wire ff_mac1_ro_xfer_en_scanin;
267wire ff_mac1_ro_xfer_en_scanout;
268wire ff_mac0_sf_xfer_en_scanin;
269wire ff_mac0_sf_xfer_en_scanout;
270wire ff_mac0_ro_xfer_en_scanin;
271wire ff_mac0_ro_xfer_en_scanout;
272wire ff_ipp0_xfer_en_scanin;
273wire ff_ipp0_xfer_en_scanout;
274wire ff_ipp1_xfer_en_scanin;
275wire ff_ipp1_xfer_en_scanout;
276wire ff_cfifo0_xfer_en_scanin;
277wire ff_cfifo0_xfer_en_scanout;
278wire ff_cfifo1_xfer_en_scanin;
279wire ff_cfifo1_xfer_en_scanout;
280wire ff_ram0_xfer_en_scanin;
281wire ff_ram0_xfer_en_scanout;
282wire ff_ram1_xfer_en_scanin;
283wire ff_ram1_xfer_en_scanout;
284wire ff_4k_xfer_en_scanin;
285wire ff_4k_xfer_en_scanout;
286wire ff_ram_xfer_en_scanin;
287wire ff_ram_xfer_en_scanout;
288wire ff_cnt_scanin;
289wire ff_cnt_scanout;
290wire ff_psrclk_scanin;
291wire ff_psrclk_scanout;
292wire psrcntclk;
293wire ff_mcuclk_scanin;
294wire ff_mcuclk_scanout;
295wire mcucntclk;
296wire ff_niuclk_scanin;
297wire ff_niuclk_scanout;
298wire niucntclk;
299wire ff_cmp_io_sync_en_scanin;
300wire ff_cmp_io_sync_en_scanout;
301wire cmp_io_sync_en_r1;
302wire ff_io_cmp_sync_en_scanin;
303wire ff_io_cmp_sync_en_scanout;
304wire io_cmp_sync_en_r1;
305wire tcu_red_reg_clr_reg0_scanin;
306wire tcu_red_reg_clr_reg0_scanout;
307wire [6:0] tcu_red_reg_clr_ff;
308wire tcu_red_reg_clr_reg1_scanin;
309wire tcu_red_reg_clr_reg1_scanout;
310wire tcu_red_reg_clr_reg2_scanin;
311wire tcu_red_reg_clr_reg2_scanout;
312wire tcu_red_reg_clr_reg3_scanin;
313wire tcu_red_reg_clr_reg3_scanout;
314wire tcu_red_reg_clr_reg4_scanin;
315wire tcu_red_reg_clr_reg4_scanout;
316wire tcu_red_reg_clr_reg5_scanin;
317wire tcu_red_reg_clr_reg5_scanout;
318wire tcu_red_reg_clr_reg6_scanin;
319wire tcu_red_reg_clr_reg6_scanout;
320wire spares_scanin;
321wire spares_scanout;
322wire clear_all;
323wire efu_spc0_fuse_iclr_in;
324wire efu_spc0_fuse_dclr_in;
325wire efu_spc1_fuse_iclr_in;
326wire efu_spc1_fuse_dclr_in;
327wire efu_spc2_fuse_iclr_in;
328wire efu_spc2_fuse_dclr_in;
329wire efu_spc3_fuse_iclr_in;
330wire efu_spc3_fuse_dclr_in;
331wire efu_spc4_fuse_iclr_in;
332wire efu_spc4_fuse_dclr_in;
333wire efu_spc5_fuse_iclr_in;
334wire efu_spc5_fuse_dclr_in;
335wire efu_spc6_fuse_iclr_in;
336wire efu_spc6_fuse_dclr_in;
337wire efu_spc7_fuse_iclr_in;
338wire efu_spc7_fuse_dclr_in;
339wire efu_l2t0_fuse_clr_in;
340wire efu_l2t1_fuse_clr_in;
341wire efu_l2t2_fuse_clr_in;
342wire efu_l2t3_fuse_clr_in;
343wire efu_l2t4_fuse_clr_in;
344wire efu_l2t5_fuse_clr_in;
345wire efu_l2t6_fuse_clr_in;
346wire efu_l2t7_fuse_clr_in;
347wire efu_l2b0_fuse_clr_in;
348wire efu_l2b1_fuse_clr_in;
349wire efu_l2b2_fuse_clr_in;
350wire efu_l2b3_fuse_clr_in;
351wire efu_l2b4_fuse_clr_in;
352wire efu_l2b5_fuse_clr_in;
353wire efu_l2b6_fuse_clr_in;
354wire efu_l2b7_fuse_clr_in;
355wire efu_dmu_clr_in;
356wire efu_dmu_xfer_en_in;
357wire efu_mcu_fclrz_in;
358wire efu_psr_fclrz_in;
359wire efu_niu_fclrz_in;
360wire ff_vld_en_scanin;
361wire ff_vld_en_scanout;
362wire ff_dmu_xfer_en_scanin;
363wire ff_dmu_xfer_en_scanout;
364wire ff_niu_fclrz_scanin;
365wire ff_niu_fclrz_scanout;
366wire ff_psr_fclrz_scanin;
367wire ff_psr_fclrz_scanout;
368wire ff_mcu_fclrz_scanin;
369wire ff_mcu_fclrz_scanout;
370wire ff_dmu_clr_scanin;
371wire ff_dmu_clr_scanout;
372wire clr_spc0_iclr_scanin;
373wire clr_spc0_iclr_scanout;
374wire clr_spc1_iclr_scanin;
375wire clr_spc1_iclr_scanout;
376wire clr_spc2_iclr_scanin;
377wire clr_spc2_iclr_scanout;
378wire clr_spc3_iclr_scanin;
379wire clr_spc3_iclr_scanout;
380wire clr_spc4_iclr_scanin;
381wire clr_spc4_iclr_scanout;
382wire clr_spc5_iclr_scanin;
383wire clr_spc5_iclr_scanout;
384wire clr_spc6_iclr_scanin;
385wire clr_spc6_iclr_scanout;
386wire clr_spc7_iclr_scanin;
387wire clr_spc7_iclr_scanout;
388wire clr_spc0_dclr_scanin;
389wire clr_spc0_dclr_scanout;
390wire clr_spc1_dclr_scanin;
391wire clr_spc1_dclr_scanout;
392wire clr_spc2_dclr_scanin;
393wire clr_spc2_dclr_scanout;
394wire clr_spc3_dclr_scanin;
395wire clr_spc3_dclr_scanout;
396wire clr_spc4_dclr_scanin;
397wire clr_spc4_dclr_scanout;
398wire clr_spc5_dclr_scanin;
399wire clr_spc5_dclr_scanout;
400wire clr_spc6_dclr_scanin;
401wire clr_spc6_dclr_scanout;
402wire clr_spc7_dclr_scanin;
403wire clr_spc7_dclr_scanout;
404wire l2t0_fuse_clr_scanin;
405wire l2t0_fuse_clr_scanout;
406wire l2t1_fuse_clr_scanin;
407wire l2t1_fuse_clr_scanout;
408wire l2t2_fuse_clr_scanin;
409wire l2t2_fuse_clr_scanout;
410wire l2t3_fuse_clr_scanin;
411wire l2t3_fuse_clr_scanout;
412wire l2t4_fuse_clr_scanin;
413wire l2t4_fuse_clr_scanout;
414wire l2t5_fuse_clr_scanin;
415wire l2t5_fuse_clr_scanout;
416wire l2t6_fuse_clr_scanin;
417wire l2t6_fuse_clr_scanout;
418wire l2t7_fuse_clr_scanin;
419wire l2t7_fuse_clr_scanout;
420wire l2b0_fuse_clr_scanin;
421wire l2b0_fuse_clr_scanout;
422wire l2b1_fuse_clr_scanin;
423wire l2b1_fuse_clr_scanout;
424wire l2b2_fuse_clr_scanin;
425wire l2b2_fuse_clr_scanout;
426wire l2b3_fuse_clr_scanin;
427wire l2b3_fuse_clr_scanout;
428wire l2b4_fuse_clr_scanin;
429wire l2b4_fuse_clr_scanout;
430wire l2b5_fuse_clr_scanin;
431wire l2b5_fuse_clr_scanout;
432wire l2b6_fuse_clr_scanin;
433wire l2b6_fuse_clr_scanout;
434wire l2b7_fuse_clr_scanin;
435wire l2b7_fuse_clr_scanout;
436
437
438
439input tcu_dbr_gateoff;
440
441output efu_niu_mac01_sfro_data;
442output efu_niu_mac1_sf_xfer_en;
443output efu_niu_mac1_sf_clr;
444
445output efu_niu_mac1_ro_xfer_en;
446output efu_niu_mac1_ro_clr;
447
448output efu_niu_mac0_sf_xfer_en;
449output efu_niu_mac0_sf_clr;
450
451output efu_niu_mac0_ro_xfer_en;
452output efu_niu_mac0_ro_clr;
453
454output efu_niu_ipp1_xfer_en;
455output efu_niu_ipp1_clr;
456
457output efu_niu_ipp0_xfer_en;
458output efu_niu_ipp0_clr;
459
460output efu_niu_cfifo_data;
461output efu_niu_cfifo0_xfer_en;
462output efu_niu_cfifo1_xfer_en;
463output efu_niu_cfifo1_clr;
464output efu_niu_cfifo0_clr;
465
466output efu_niu_ram_data;
467output efu_niu_ram_xfer_en;
468output efu_niu_ram_clr;
469input niu_efu_ram_xfer_en;
470input niu_efu_ram_data;
471
472output efu_niu_ram0_clr;
473output efu_niu_ram0_xfer_en;
474input niu_efu_ram0_xfer_en;
475input niu_efu_ram0_data;
476
477output efu_niu_ram1_clr;
478output efu_niu_ram1_xfer_en;
479input niu_efu_ram1_xfer_en;
480input niu_efu_ram1_data;
481
482
483output efu_niu_4k_data;
484output efu_niu_4k_xfer_en;
485output efu_niu_4k_clr;
486input niu_efu_4k_xfer_en;
487input niu_efu_4k_data ;
488
489input cmp_io_sync_en;
490input io_cmp_sync_en;
491
492// readback
493input niu_efu_mac1_sf_xfer_en;
494input niu_efu_mac1_sf_data;
495
496input niu_efu_mac0_sf_xfer_en;
497input niu_efu_mac0_sf_data;
498
499input niu_efu_mac1_ro_xfer_en;
500input niu_efu_mac1_ro_data;
501
502input niu_efu_mac0_ro_xfer_en;
503input niu_efu_mac0_ro_data;
504
505input niu_efu_ipp1_xfer_en;
506input niu_efu_ipp1_data;
507
508input niu_efu_ipp0_xfer_en;
509input niu_efu_ipp0_data;
510
511input niu_efu_cfifo0_xfer_en;
512input niu_efu_cfifo0_data;
513
514input niu_efu_cfifo1_xfer_en;
515input niu_efu_cfifo1_data;
516
517
518
519
520
521// Clear
522output efu_spc0_fuse_iclr;
523output efu_spc1_fuse_iclr;
524output efu_spc2_fuse_iclr;
525output efu_spc3_fuse_iclr;
526output efu_spc4_fuse_iclr;
527output efu_spc5_fuse_iclr;
528output efu_spc6_fuse_iclr;
529output efu_spc7_fuse_iclr;
530
531output efu_spc0_fuse_dclr;
532output efu_spc1_fuse_dclr;
533output efu_spc2_fuse_dclr;
534output efu_spc3_fuse_dclr;
535output efu_spc4_fuse_dclr;
536output efu_spc5_fuse_dclr;
537output efu_spc6_fuse_dclr;
538output efu_spc7_fuse_dclr;
539
540output efu_l2t0_fuse_clr;
541output efu_l2t1_fuse_clr;
542output efu_l2t2_fuse_clr;
543output efu_l2t3_fuse_clr;
544output efu_l2t4_fuse_clr;
545output efu_l2t5_fuse_clr;
546output efu_l2t6_fuse_clr;
547output efu_l2t7_fuse_clr;
548output efu_l2b0_fuse_clr;
549output efu_l2b1_fuse_clr;
550output efu_l2b2_fuse_clr;
551output efu_l2b3_fuse_clr;
552output efu_l2b4_fuse_clr;
553output efu_l2b5_fuse_clr;
554output efu_l2b6_fuse_clr;
555output efu_l2b7_fuse_clr;
556
557output efu_dmu_data;
558output efu_dmu_xfer_en;
559output efu_dmu_clr;
560input dmu_efu_xfer_en;
561input dmu_efu_data;
562
563
564output efu_mcu_fdi;
565input mcu_efu_fdo;
566output efu_mcu_fclk;
567output efu_mcu_fclrz;
568
569output efu_psr_fdi;
570input psr_efu_fdo;
571output efu_psr_fclk;
572output efu_psr_fclrz;
573
574output efu_niu_fdi;
575input niu_efu_fdo;
576output efu_niu_fclk;
577output efu_niu_fclrz;
578
579
580
581input [31:0] read_data_ff;
582input read_data_ff_vld;
583input [6:0] tcu_red_reg_clr;
584input tcu_pce_ov;
585input tcu_clk_stop;
586input tcu_aclk;
587input tcu_bclk;
588input tcu_scan_en;
589input scan_in;
590output scan_out;
591
592input iol2clk;
593input l2clk;
594
595output [31:0] niu_read_data_shift;
596output load_niu_read_data;
597
598wire [6:0] cnt_nxt;
599wire [6:0] cnt;
600
601assign pce_ov = tcu_pce_ov;
602assign siclk = tcu_aclk;
603assign soclk = tcu_bclk;
604assign stop = tcu_clk_stop;
605assign se = tcu_scan_en;
606
607assign efu_niu_mac01_sfro_data = niu_read_data_shift[21];
608assign efu_niu_cfifo_data = niu_read_data_shift[21];
609assign efu_niu_ram_data = niu_read_data_shift[21];
610assign efu_niu_4k_data = niu_read_data_shift[21];
611assign efu_mcu_fdi = niu_read_data_shift[21];
612assign efu_psr_fdi = niu_read_data_shift[21];
613assign efu_niu_fdi = niu_read_data_shift[21];
614assign efu_dmu_data = niu_read_data_shift[21];
615
616
617
618
619efu_niu_ctl_l1clkhdr_ctl_macro clkgen (
620 .l2clk(iol2clk),
621 .l1en (1'b1 ),
622 .l1clk(l1clk),
623 .pce_ov(pce_ov),
624 .stop(stop),
625 .se(se));
626
627efu_niu_ctl_l1clkhdr_ctl_macro clkgen_cmp (
628 .l2clk(l2clk),
629 .l1en (1'b1 ),
630 .l1clk(l1clk_cmp),
631 .pce_ov(pce_ov),
632 .stop(stop),
633 .se(se));
634
635//-----------------------------------------------------------------------------
636// reading in
637//-----------------------------------------------------------------------------
638efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_mcu_fdo
639 (
640 .scan_in(ff_mcu_fdo_scanin),
641 .scan_out(ff_mcu_fdo_scanout),
642 .dout (mcu_fdo_fck),
643 .din (mcu_efu_fdo),
644 .en (serdes_rd_en_d),
645 .l1clk (l1clk),
646 .siclk(siclk),
647 .soclk(soclk)
648 );
649efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_psr_fdo
650 (
651 .scan_in(ff_psr_fdo_scanin),
652 .scan_out(ff_psr_fdo_scanout),
653 .dout (psr_fdo_fck),
654 .din (psr_efu_fdo),
655 .en (serdes_rd_en_d),
656 .l1clk (l1clk),
657 .siclk(siclk),
658 .soclk(soclk)
659 );
660efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_niu_fdo
661 (
662 .scan_in(ff_niu_fdo_scanin),
663 .scan_out(ff_niu_fdo_scanout),
664 .dout (niu_fdo_fck),
665 .din (niu_efu_fdo),
666 .en (serdes_rd_en_d),
667 .l1clk (l1clk),
668 .siclk(siclk),
669 .soclk(soclk)
670 );
671assign serdes_fdo = (mcu_fdo_fck & (block_id_vld[5:0] == 6'b101010) )
672 | (psr_fdo_fck & (block_id_vld[5:0] == 6'b101001) )
673 | (niu_fdo_fck & (block_id_vld[5:0] == 6'b101011) );
674
675assign niu_shift_in = 1'b0
676 | (dmu_efu_data & dmu_efu_xfer_en)
677 | (niu_efu_mac1_sf_data & niu_efu_mac1_sf_xfer_en)
678 | (niu_efu_mac1_ro_data & niu_efu_mac1_ro_xfer_en)
679 | (niu_efu_mac0_sf_data & niu_efu_mac0_sf_xfer_en)
680 | (niu_efu_mac0_ro_data & niu_efu_mac0_ro_xfer_en)
681 | (niu_efu_ipp1_data & niu_efu_ipp1_xfer_en)
682 | (niu_efu_ipp0_data & niu_efu_ipp0_xfer_en)
683 | (niu_efu_cfifo0_data & niu_efu_cfifo0_xfer_en)
684 | (niu_efu_cfifo1_data & niu_efu_cfifo1_xfer_en)
685 | (niu_efu_ram_data & niu_efu_ram_xfer_en)
686 | (niu_efu_ram0_data & niu_efu_ram0_xfer_en)
687 | (niu_efu_ram1_data & niu_efu_ram1_xfer_en)
688 | (niu_efu_4k_data & niu_efu_4k_xfer_en) ;
689
690assign read_data_xfer_en = dmu_efu_xfer_en | niu_efu_mac1_sf_xfer_en |
691 niu_efu_mac1_ro_xfer_en | niu_efu_mac0_sf_xfer_en |
692 niu_efu_mac0_ro_xfer_en | niu_efu_ipp1_xfer_en |
693 niu_efu_ipp0_xfer_en | niu_efu_cfifo0_xfer_en |
694 niu_efu_cfifo1_xfer_en | niu_efu_ram_xfer_en |
695 niu_efu_ram0_xfer_en | niu_efu_ram1_xfer_en |
696 niu_efu_4k_xfer_en ;
697
698assign efu_xfer_en = efu_dmu_xfer_en | efu_niu_mac1_sf_xfer_en |
699 efu_niu_mac1_ro_xfer_en | efu_niu_mac0_sf_xfer_en |
700 efu_niu_mac0_ro_xfer_en | efu_niu_ipp1_xfer_en |
701 efu_niu_ipp0_xfer_en | efu_niu_cfifo0_xfer_en |
702 efu_niu_cfifo1_xfer_en | efu_niu_ram_xfer_en |
703 efu_niu_ram0_xfer_en | efu_niu_ram1_xfer_en |
704 efu_niu_4k_xfer_en | serdes & ~cntz ;
705
706// trailing edge detect
707assign load_niu_read_data_d = ~read_data_xfer_en & read_data_xfer_en_r1 ;
708assign capture_serdes_d = serdes & cnt[6:0] == 7'b0000001;
709assign serdes_rd_en_d = serdes & ~cnt[1] & cnt[0] ;
710
711efu_niu_ctl_msff_ctl_macro__width_2 ff_capture_serdes
712 (
713 .scan_in(ff_capture_serdes_scanin),
714 .scan_out(ff_capture_serdes_scanout),
715 .dout ({capture_serdes_d1, capture_serdes}),
716 .din ({capture_serdes_d,capture_serdes_d1}),
717 .l1clk (l1clk),
718 .siclk(siclk),
719 .soclk(soclk)
720 );
721efu_niu_ctl_msff_ctl_macro__width_1 ff_serdes_rd_en
722 (
723 .scan_in(ff_serdes_rd_en_scanin),
724 .scan_out(ff_serdes_rd_en_scanout),
725 .dout (serdes_rd_en),
726 .din (serdes_rd_en_d),
727 .l1clk (l1clk),
728 .siclk(siclk),
729 .soclk(soclk)
730 );
731efu_niu_ctl_msff_ctl_macro__width_1 ff_niu_shift
732 (
733 .scan_in(ff_niu_shift_scanin),
734 .scan_out(ff_niu_shift_scanout),
735 .dout (niu_shift),
736 .din (niu_shift_in),
737 .l1clk (l1clk),
738 .siclk(siclk),
739 .soclk(soclk)
740 );
741efu_niu_ctl_msff_ctl_macro__width_1 ff_load_niu_read_data
742 (
743 .scan_in(ff_load_niu_read_data_scanin),
744 .scan_out(ff_load_niu_read_data_scanout),
745 .dout (load_niu_read_data),
746 .din (load_niu_read_data_d | capture_serdes),
747 .l1clk (l1clk),
748 .siclk(siclk),
749 .soclk(soclk)
750 );
751// xfer back from destinations
752efu_niu_ctl_msff_ctl_macro__width_1 ff_read_data_in_r2
753 (
754 .scan_in(ff_read_data_in_r2_scanin),
755 .scan_out(ff_read_data_in_r2_scanout),
756 .dout (read_data_xfer_en_r2),
757 .din (read_data_xfer_en_r1),
758 .l1clk (l1clk),
759 .siclk(siclk),
760 .soclk(soclk)
761 );
762
763efu_niu_ctl_msff_ctl_macro__width_1 ff_read_data_in_r1
764 (
765 .scan_in(ff_read_data_in_r1_scanin),
766 .scan_out(ff_read_data_in_r1_scanout),
767 .dout (read_data_xfer_en_r1),
768 .din (read_data_xfer_en),
769 .l1clk (l1clk),
770 .siclk(siclk),
771 .soclk(soclk)
772 );
773
774efu_niu_ctl_msff_ctl_macro__width_1 ff_read_data_in
775 (
776 .scan_in(ff_read_data_in_scanin),
777 .scan_out(ff_read_data_in_scanout),
778 .dout (read_data_xfer_en_reg),
779 .din (read_data_xfer_en),
780 .l1clk (l1clk),
781 .siclk(siclk),
782 .soclk(soclk)
783 );
784
785// : serdes ? {niu_read_data_shift[31:22],niu_read_data_shift[20:0],serdes_fdo}
786assign shift_data_ff_in[31:0] = pulse_read_data_ff_vld_r1 ? read_data_ff_sync[31:0]
787 : efu_xfer_en ? {niu_read_data_shift[31:22],niu_read_data_shift[20:0],1'b0}
788 : read_data_xfer_en_reg ? {niu_read_data_shift[31:22],niu_read_data_shift[20:0],niu_shift}
789 : capture_serdes ? serdes_data_shift[31:0]
790 : niu_read_data_shift[31:0];
791assign serdes_data_shift_in[31:0] = pulse_read_data_ff_vld_r1 ? read_data_ff_sync[31:0] :
792 {serdes_data_shift[31:22], serdes_data_shift[20:0], serdes_fdo} ;
793//-----------------------------------------------------------------------------
794// single pulse decode valid
795//-----------------------------------------------------------------------------
796efu_niu_ctl_msff_ctl_macro__width_1 ff_read_data_ff_vld
797 (
798 .scan_in (ff_read_data_ff_vld_scanin),
799 .scan_out (ff_read_data_ff_vld_scanout),
800 .din (read_data_ff_vld),
801 .dout (read_data_ff_vld_r1),
802 .l1clk (l1clk),
803 .siclk(siclk),
804 .soclk(soclk)
805 );
806efu_niu_ctl_msff_ctl_macro__width_1 ff_read_data_ff_vld_1
807 (
808 .scan_in (ff_read_data_ff_vld_1_scanin),
809 .scan_out (ff_read_data_ff_vld_1_scanout),
810 .din (read_data_ff_vld_r1),
811 .dout (read_data_ff_vld_r2),
812 .l1clk (l1clk),
813 .siclk(siclk),
814 .soclk(soclk)
815 );
816
817assign pulse_read_data_ff_vld = read_data_ff_vld_r1 & ~read_data_ff_vld_r2 ;
818
819efu_niu_ctl_msff_ctl_macro__width_1 ff_pulse_read_data_ff_vld
820 (
821 .scan_in (ff_pulse_read_data_ff_vld_scanin),
822 .scan_out (ff_pulse_read_data_ff_vld_scanout),
823 .din (pulse_read_data_ff_vld),
824 .dout (pulse_read_data_ff_vld_r1),
825 .l1clk (l1clk),
826 .siclk(siclk),
827 .soclk(soclk)
828 );
829efu_niu_ctl_msff_ctl_macro__width_1 ff_pulse_read_data_ff_vld_r1
830 (
831 .scan_in (ff_pulse_read_data_ff_vld_1_scanin),
832 .scan_out (ff_pulse_read_data_ff_vld_1_scanout),
833 .din (pulse_read_data_ff_vld_r1),
834 .dout (pulse_read_data_ff_vld_r2),
835 .l1clk (l1clk),
836 .siclk(siclk),
837 .soclk(soclk)
838 );
839
840// data from efa ; static after rising edge of valid
841efu_niu_ctl_msff_ctl_macro__en_1__width_32 ff_read_data_ff_sync
842 (
843 .scan_in(ff_read_data_ff_sync_scanin),
844 .scan_out(ff_read_data_ff_sync_scanout),
845 .din (read_data_ff[31:0]),
846 .dout (read_data_ff_sync[31:0]),
847 .en (pulse_read_data_ff_vld),
848 .l1clk (l1clk),
849 .siclk(siclk),
850 .soclk(soclk)
851 );
852
853efu_niu_ctl_msff_ctl_macro__en_1__width_32 ff_shift_data_ff_sync
854 (
855 .scan_in(ff_read_data_ff_shift_scanin),
856 .scan_out(ff_read_data_ff_shift_scanout),
857 .din (shift_data_ff_in[31:0]),
858 .dout (niu_read_data_shift[31:0]),
859 .en (~serdes | ((serdes & pulse_read_data_ff_vld_r1) | (serdes_rd_en_d & cnt[6:2] != 5'b00000) | capture_serdes)),
860 .l1clk (l1clk),
861 .siclk(siclk),
862 .soclk(soclk)
863 );
864efu_niu_ctl_msff_ctl_macro__en_1__width_32 ff_serdes_data_shift
865 (
866 .scan_in(ff_serdes_data_shift_scanin),
867 .scan_out(ff_serdes_data_shift_scanout),
868 .dout (serdes_data_shift[31:0]),
869 .din (serdes_data_shift_in[31:0]),
870 .en (serdes_rd_en),
871 .l1clk (l1clk),
872 .siclk(siclk),
873 .soclk(soclk)
874 );
875
876wire [2:0] valid_bits;
877assign valid_bits[2:0] = read_data_ff_sync[31:29];
878assign block_id_vld[5:0] = read_data_ff_sync[27:22];
879assign sub_block_id[3:0] = read_data_ff_sync[18:15];
880
881wire decode_enable_vld;
882
883reg valid, val_err;
884
885always @(valid_bits)
886 case (valid_bits) //synopsys parallel_case full_case
887 3'b000: {valid, val_err} = 2'b00;
888 3'b001: {valid, val_err} = 2'b01;
889 3'b010: {valid, val_err} = 2'b01;
890 3'b100: {valid, val_err} = 2'b01;
891 3'b011: {valid, val_err} = 2'b10;
892 3'b101: {valid, val_err} = 2'b10;
893 3'b110: {valid, val_err} = 2'b10;
894 3'b111: {valid, val_err} = 2'b10;
895 endcase
896
897assign computed_parity = ^read_data_ff_sync[28:0];
898assign good_parity = ~computed_parity;
899
900assign decode_enable_vld = valid & ~val_err & good_parity ;
901assign cntz = (cnt[6:0] == 7'b0) ;
902assign vld_en_nxt = pulse_read_data_ff_vld_r1 & decode_enable_vld | decode_enable_vld & ~cntz ;
903
904
905//NIU SRAM0 1024x152 instances
906assign efu_niu_1k_dec = (block_id_vld[5:0] == 6'b100101) & decode_enable_vld;
907assign efu_niu_mac1_sf_xfer_en_in = (sub_block_id[3:0] == 4'h0) & efu_niu_1k_dec & vld_en_nxt;
908assign efu_niu_mac1_ro_xfer_en_in = (sub_block_id[3:0] == 4'h1) & efu_niu_1k_dec & vld_en_nxt;
909assign efu_niu_mac0_sf_xfer_en_in = (sub_block_id[3:0] == 4'h2) & efu_niu_1k_dec & vld_en_nxt;
910assign efu_niu_mac0_ro_xfer_en_in = (sub_block_id[3:0] == 4'h3) & efu_niu_1k_dec & vld_en_nxt;
911assign efu_niu_ipp0_xfer_en_in = (sub_block_id[3:0] == 4'h4) & efu_niu_1k_dec & vld_en_nxt;
912assign efu_niu_ipp1_xfer_en_in = (sub_block_id[3:0] == 4'h8) & efu_niu_1k_dec & vld_en_nxt;
913
914//NIU SRAM1 512x152 instance
915assign efu_niu_512_dec = (block_id_vld[5:0] == 6'b100110) & decode_enable_vld;
916assign efu_niu_cfifo0_xfer_en_in = (sub_block_id[3:0] == 4'h1) & efu_niu_512_dec & vld_en_nxt;
917assign efu_niu_cfifo1_xfer_en_in = (sub_block_id[3:0] == 4'h2) & efu_niu_512_dec & vld_en_nxt;
918assign efu_niu_ram0_xfer_en_in = (sub_block_id[3:0] == 4'h4) & efu_niu_512_dec & vld_en_nxt;
919assign efu_niu_ram1_xfer_en_in = (sub_block_id[3:0] == 4'h8) & efu_niu_512_dec & vld_en_nxt;
920
921//NIU SRAM2 4kx9 instance
922assign efu_niu_4k_dec = (block_id_vld[5:0] == 6'b100111) & decode_enable_vld;
923assign efu_niu_4k_xfer_en_in = efu_niu_4k_dec & vld_en_nxt;
924
925//NIU SRAM3 256x152 instance
926assign efu_niu_256_dec = (block_id_vld[5:0] == 6'b101000) & decode_enable_vld;
927assign efu_niu_ram_xfer_en_in = efu_niu_256_dec & vld_en_nxt;
928
929//-----------------------------------------------------------------------------
930// counter to count down from 'd87 or 'd22 depending on serdes or not
931//-----------------------------------------------------------------------------
932assign serdes = block_id_vld[5:0] == 6'b101001
933 | block_id_vld[5:0] == 6'b101010
934 | block_id_vld[5:0] == 6'b101011 ;
935assign cnt_data[6:0] = serdes ? 7'b1010111 : 7'b0010101 ;
936assign pulse_vld_en_nxt = vld_en_nxt & ~ vld_en;
937assign cnt_nxt[6:0] = pulse_read_data_ff_vld_r1 & pulse_vld_en_nxt ? cnt_data[6:0] : cntz ? 7'b0 : cnt[6:0] - 7'b1 ; // 87,22
938
939assign efu_niu_mac1_sf_xfer_en = ~tcu_dbr_gateoff & efu_niu_mac1_sf_xfer_en_q;
940assign efu_niu_mac1_ro_xfer_en = ~tcu_dbr_gateoff & efu_niu_mac1_ro_xfer_en_q;
941assign efu_niu_mac0_sf_xfer_en = ~tcu_dbr_gateoff & efu_niu_mac0_sf_xfer_en_q;
942assign efu_niu_mac0_ro_xfer_en = ~tcu_dbr_gateoff & efu_niu_mac0_ro_xfer_en_q;
943assign efu_niu_ipp0_xfer_en = ~tcu_dbr_gateoff & efu_niu_ipp0_xfer_en_q;
944assign efu_niu_ipp1_xfer_en = ~tcu_dbr_gateoff & efu_niu_ipp1_xfer_en_q;
945assign efu_niu_cfifo0_xfer_en = ~tcu_dbr_gateoff & efu_niu_cfifo0_xfer_en_q;
946assign efu_niu_cfifo1_xfer_en = ~tcu_dbr_gateoff & efu_niu_cfifo1_xfer_en_q;
947assign efu_niu_ram0_xfer_en = ~tcu_dbr_gateoff & efu_niu_ram0_xfer_en_q;
948assign efu_niu_ram1_xfer_en = ~tcu_dbr_gateoff & efu_niu_ram1_xfer_en_q;
949assign efu_niu_4k_xfer_en = ~tcu_dbr_gateoff & efu_niu_4k_xfer_en_q;
950assign efu_niu_ram_xfer_en = ~tcu_dbr_gateoff & efu_niu_ram_xfer_en_q;
951assign efu_dmu_xfer_en = ~tcu_dbr_gateoff & efu_dmu_xfer_en_q;
952assign efu_niu_fclrz = tcu_dbr_gateoff | efu_niu_fclrz_q;
953assign efu_psr_fclrz = tcu_dbr_gateoff | efu_psr_fclrz_q;
954assign efu_mcu_fclrz = tcu_dbr_gateoff | efu_mcu_fclrz_q;
955assign efu_dmu_clr = ~tcu_dbr_gateoff & efu_dmu_clr_q;
956
957
958efu_niu_ctl_msff_ctl_macro__width_1 ff_mac1_sf_xfer_en
959 (
960 .scan_in (ff_mac1_sf_xfer_en_scanin),
961 .scan_out(ff_mac1_sf_xfer_en_scanout),
962 .din (efu_niu_mac1_sf_xfer_en_in),
963 .dout (efu_niu_mac1_sf_xfer_en_q),
964 .l1clk (l1clk),
965 .siclk(siclk),
966 .soclk(soclk)
967 );
968
969efu_niu_ctl_msff_ctl_macro__width_1 ff_mac1_ro_xfer_en
970 (
971 .scan_in (ff_mac1_ro_xfer_en_scanin),
972 .scan_out(ff_mac1_ro_xfer_en_scanout),
973 .din (efu_niu_mac1_ro_xfer_en_in),
974 .dout (efu_niu_mac1_ro_xfer_en_q),
975 .l1clk (l1clk),
976 .siclk(siclk),
977 .soclk(soclk)
978 );
979
980efu_niu_ctl_msff_ctl_macro__width_1 ff_mac0_sf_xfer_en
981 (
982 .scan_in (ff_mac0_sf_xfer_en_scanin),
983 .scan_out(ff_mac0_sf_xfer_en_scanout),
984 .din (efu_niu_mac0_sf_xfer_en_in),
985 .dout (efu_niu_mac0_sf_xfer_en_q),
986 .l1clk (l1clk),
987 .siclk(siclk),
988 .soclk(soclk)
989 );
990
991efu_niu_ctl_msff_ctl_macro__width_1 ff_mac0_ro_xfer_en
992 (
993 .scan_in (ff_mac0_ro_xfer_en_scanin),
994 .scan_out(ff_mac0_ro_xfer_en_scanout),
995 .din (efu_niu_mac0_ro_xfer_en_in),
996 .dout (efu_niu_mac0_ro_xfer_en_q),
997 .l1clk (l1clk),
998 .siclk(siclk),
999 .soclk(soclk)
1000 );
1001
1002efu_niu_ctl_msff_ctl_macro__width_1 ff_ipp0_xfer_en
1003 (
1004 .scan_in (ff_ipp0_xfer_en_scanin),
1005 .scan_out(ff_ipp0_xfer_en_scanout),
1006 .din (efu_niu_ipp0_xfer_en_in),
1007 .dout (efu_niu_ipp0_xfer_en_q),
1008 .l1clk (l1clk),
1009 .siclk(siclk),
1010 .soclk(soclk)
1011 );
1012
1013efu_niu_ctl_msff_ctl_macro__width_1 ff_ipp1_xfer_en
1014 (
1015 .scan_in (ff_ipp1_xfer_en_scanin),
1016 .scan_out(ff_ipp1_xfer_en_scanout),
1017 .din (efu_niu_ipp1_xfer_en_in),
1018 .dout (efu_niu_ipp1_xfer_en_q),
1019 .l1clk (l1clk),
1020 .siclk(siclk),
1021 .soclk(soclk)
1022 );
1023
1024efu_niu_ctl_msff_ctl_macro__width_1 ff_cfifo0_xfer_en
1025 (
1026 .scan_in (ff_cfifo0_xfer_en_scanin),
1027 .scan_out(ff_cfifo0_xfer_en_scanout),
1028 .din (efu_niu_cfifo0_xfer_en_in),
1029 .dout (efu_niu_cfifo0_xfer_en_q),
1030 .l1clk (l1clk),
1031 .siclk(siclk),
1032 .soclk(soclk)
1033 );
1034
1035efu_niu_ctl_msff_ctl_macro__width_1 ff_cfifo1_xfer_en
1036 (
1037 .scan_in (ff_cfifo1_xfer_en_scanin),
1038 .scan_out(ff_cfifo1_xfer_en_scanout),
1039 .din (efu_niu_cfifo1_xfer_en_in),
1040 .dout (efu_niu_cfifo1_xfer_en_q),
1041 .l1clk (l1clk),
1042 .siclk(siclk),
1043 .soclk(soclk)
1044 );
1045
1046efu_niu_ctl_msff_ctl_macro__width_1 ff_ram0_xfer_en
1047 (
1048 .scan_in (ff_ram0_xfer_en_scanin),
1049 .scan_out(ff_ram0_xfer_en_scanout),
1050 .din (efu_niu_ram0_xfer_en_in),
1051 .dout (efu_niu_ram0_xfer_en_q),
1052 .l1clk (l1clk),
1053 .siclk(siclk),
1054 .soclk(soclk)
1055 );
1056
1057efu_niu_ctl_msff_ctl_macro__width_1 ff_ram1_xfer_en
1058 (
1059 .scan_in (ff_ram1_xfer_en_scanin),
1060 .scan_out(ff_ram1_xfer_en_scanout),
1061 .din (efu_niu_ram1_xfer_en_in),
1062 .dout (efu_niu_ram1_xfer_en_q),
1063 .l1clk (l1clk),
1064 .siclk(siclk),
1065 .soclk(soclk)
1066 );
1067
1068efu_niu_ctl_msff_ctl_macro__width_1 ff_4k_xfer_en
1069 (
1070 .scan_in (ff_4k_xfer_en_scanin),
1071 .scan_out(ff_4k_xfer_en_scanout),
1072 .din (efu_niu_4k_xfer_en_in),
1073 .dout (efu_niu_4k_xfer_en_q),
1074 .l1clk (l1clk),
1075 .siclk(siclk),
1076 .soclk(soclk)
1077 );
1078
1079efu_niu_ctl_msff_ctl_macro__width_1 ff_ram_xfer_en
1080 (
1081 .scan_in (ff_ram_xfer_en_scanin),
1082 .scan_out(ff_ram_xfer_en_scanout),
1083 .din (efu_niu_ram_xfer_en_in),
1084 .dout (efu_niu_ram_xfer_en_q),
1085 .l1clk (l1clk),
1086 .siclk(siclk),
1087 .soclk(soclk)
1088 );
1089
1090efu_niu_ctl_msff_ctl_macro__en_1__width_7 ff_cnt
1091 (
1092 .scan_in(ff_cnt_scanin),
1093 .scan_out(ff_cnt_scanout),
1094 .dout (cnt[6:0]),
1095 .din (cnt_nxt[6:0]),
1096 .en (pulse_read_data_ff_vld_r1 | vld_en),
1097 .l1clk (l1clk),
1098 .siclk(siclk),
1099 .soclk(soclk)
1100 );
1101efu_niu_ctl_msff_ctl_macro__width_1 ff_psrclk
1102 (
1103 .scan_in(ff_psrclk_scanin),
1104 .scan_out(ff_psrclk_scanout),
1105 .dout (psrcntclk),
1106 .din ((block_id_vld[5:0] == 6'h29) & vld_en_nxt & serdes & ((cnt[1] & ~cnt[0]) | (~cnt[1] & cnt[0]))),
1107 .l1clk (l1clk),
1108 .siclk(siclk),
1109 .soclk(soclk)
1110 );
1111efu_niu_ctl_msff_ctl_macro__width_1 ff_mcuclk
1112 (
1113 .scan_in(ff_mcuclk_scanin),
1114 .scan_out(ff_mcuclk_scanout),
1115 .dout (mcucntclk),
1116 .din ((block_id_vld[5:0] == 6'h2a) & vld_en_nxt & serdes & ((cnt[1] & ~cnt[0]) | (~cnt[1] & cnt[0]))),
1117 .l1clk (l1clk),
1118 .siclk(siclk),
1119 .soclk(soclk)
1120 );
1121efu_niu_ctl_msff_ctl_macro__width_1 ff_niuclk
1122 (
1123 .scan_in(ff_niuclk_scanin),
1124 .scan_out(ff_niuclk_scanout),
1125 .dout (niucntclk),
1126 .din ((block_id_vld[5:0] == 6'h2b) & vld_en_nxt & serdes & ((cnt[1] & ~cnt[0]) | (~cnt[1] & cnt[0]))),
1127 .l1clk (l1clk),
1128 .siclk(siclk),
1129 .soclk(soclk)
1130 );
1131efu_niu_ctl_msff_ctl_macro__width_1 ff_cmp_io_sync_en
1132 (
1133 .scan_in(ff_cmp_io_sync_en_scanin),
1134 .scan_out(ff_cmp_io_sync_en_scanout),
1135 .din (cmp_io_sync_en),
1136 .dout (cmp_io_sync_en_r1),
1137 .l1clk (l1clk_cmp),
1138 .siclk(siclk),
1139 .soclk(soclk)
1140 );
1141
1142efu_niu_ctl_msff_ctl_macro__width_1 ff_io_cmp_sync_en
1143 (
1144 .scan_in(ff_io_cmp_sync_en_scanin),
1145 .scan_out(ff_io_cmp_sync_en_scanout),
1146 .din (io_cmp_sync_en),
1147 .dout (io_cmp_sync_en_r1),
1148 .l1clk (l1clk_cmp),
1149 .siclk(siclk),
1150 .soclk(soclk)
1151 );
1152
1153//-----------------------------------------------------------------------------
1154// Redudancy register clear signal
1155//-----------------------------------------------------------------------------
1156
1157efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg0
1158 (
1159 .scan_in(tcu_red_reg_clr_reg0_scanin),
1160 .scan_out(tcu_red_reg_clr_reg0_scanout),
1161 .din (tcu_red_reg_clr[0]),
1162 .dout (tcu_red_reg_clr_ff[0]),
1163 .en (cmp_io_sync_en_r1),
1164 .l1clk (l1clk_cmp),
1165 .siclk(siclk),
1166 .soclk(soclk)
1167 );
1168
1169efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg1
1170 (
1171 .scan_in(tcu_red_reg_clr_reg1_scanin),
1172 .scan_out(tcu_red_reg_clr_reg1_scanout),
1173 .din (tcu_red_reg_clr[1]),
1174 .dout (tcu_red_reg_clr_ff[1]),
1175 .en (cmp_io_sync_en_r1),
1176 .l1clk (l1clk_cmp),
1177 .siclk(siclk),
1178 .soclk(soclk)
1179 );
1180
1181efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg2
1182 (
1183 .scan_in(tcu_red_reg_clr_reg2_scanin),
1184 .scan_out(tcu_red_reg_clr_reg2_scanout),
1185 .din (tcu_red_reg_clr[2]),
1186 .dout (tcu_red_reg_clr_ff[2]),
1187 .en (cmp_io_sync_en_r1),
1188 .l1clk (l1clk_cmp),
1189 .siclk(siclk),
1190 .soclk(soclk)
1191 );
1192
1193efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg3
1194 (
1195 .scan_in(tcu_red_reg_clr_reg3_scanin),
1196 .scan_out(tcu_red_reg_clr_reg3_scanout),
1197 .din (tcu_red_reg_clr[3]),
1198 .dout (tcu_red_reg_clr_ff[3]),
1199 .en (cmp_io_sync_en_r1),
1200 .l1clk (l1clk_cmp),
1201 .siclk(siclk),
1202 .soclk(soclk)
1203 );
1204
1205efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg4
1206 (
1207 .scan_in(tcu_red_reg_clr_reg4_scanin),
1208 .scan_out(tcu_red_reg_clr_reg4_scanout),
1209 .din (tcu_red_reg_clr[4]),
1210 .dout (tcu_red_reg_clr_ff[4]),
1211 .en (cmp_io_sync_en_r1),
1212 .l1clk (l1clk_cmp),
1213 .siclk(siclk),
1214 .soclk(soclk)
1215 );
1216
1217efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg5
1218 (
1219 .scan_in(tcu_red_reg_clr_reg5_scanin),
1220 .scan_out(tcu_red_reg_clr_reg5_scanout),
1221 .din (tcu_red_reg_clr[5]),
1222 .dout (tcu_red_reg_clr_ff[5]),
1223 .en (cmp_io_sync_en_r1),
1224 .l1clk (l1clk_cmp),
1225 .siclk(siclk),
1226 .soclk(soclk)
1227 );
1228
1229efu_niu_ctl_msff_ctl_macro__en_1__width_1 tcu_red_reg_clr_reg6
1230 (
1231 .scan_in(tcu_red_reg_clr_reg6_scanin),
1232 .scan_out(tcu_red_reg_clr_reg6_scanout),
1233 .din (tcu_red_reg_clr[6]),
1234 .dout (tcu_red_reg_clr_ff[6]),
1235 .en (cmp_io_sync_en_r1),
1236 .l1clk (l1clk_cmp),
1237 .siclk(siclk),
1238 .soclk(soclk)
1239 );
1240
1241efu_niu_ctl_spare_ctl_macro__num_2 spares (
1242 .scan_in(spares_scanin),
1243 .scan_out(spares_scanout),
1244 .l1clk (l1clk),
1245 .siclk(siclk),
1246 .soclk(soclk)
1247);
1248
1249assign clear_all = &tcu_red_reg_clr_ff[6:0];
1250
1251assign efu_spc0_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000000) | clear_all;
1252assign efu_spc0_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000001) | clear_all;
1253assign efu_spc1_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000010) | clear_all;
1254assign efu_spc1_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000011) | clear_all;
1255assign efu_spc2_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000100) | clear_all;
1256assign efu_spc2_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000101) | clear_all;
1257assign efu_spc3_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000110) | clear_all;
1258assign efu_spc3_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1000111) | clear_all;
1259assign efu_spc4_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001000) | clear_all;
1260assign efu_spc4_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001001) | clear_all;
1261assign efu_spc5_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001010) | clear_all;
1262assign efu_spc5_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001011) | clear_all;
1263assign efu_spc6_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001100) | clear_all;
1264assign efu_spc6_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001101) | clear_all;
1265assign efu_spc7_fuse_iclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001110) | clear_all;
1266assign efu_spc7_fuse_dclr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1001111) | clear_all;
1267
1268assign efu_l2t0_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010000) | clear_all;
1269assign efu_l2t1_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010001) | clear_all;
1270assign efu_l2t2_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010010) | clear_all;
1271assign efu_l2t3_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010011) | clear_all;
1272assign efu_l2t4_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010100) | clear_all;
1273assign efu_l2t5_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010101) | clear_all;
1274assign efu_l2t6_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010110) | clear_all;
1275assign efu_l2t7_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1010111) | clear_all;
1276assign efu_l2b0_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011000) | clear_all;
1277assign efu_l2b1_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011001) | clear_all;
1278assign efu_l2b2_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011010) | clear_all;
1279assign efu_l2b3_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011011) | clear_all;
1280assign efu_l2b4_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011100) | clear_all;
1281assign efu_l2b5_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011101) | clear_all;
1282assign efu_l2b6_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011110) | clear_all;
1283assign efu_l2b7_fuse_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1011111) | clear_all;
1284
1285
1286// 4kx9 instance: SRAM2
1287assign efu_niu_4k_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100000) | clear_all);
1288
1289// 256x152 instance: SRAM3
1290assign efu_niu_ram_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100001) | clear_all);
1291assign efu_niu_ram0_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100010) | clear_all);
1292assign efu_niu_ram1_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100011) | clear_all);
1293
1294// 8kb: 512x152 instance: SRAM1
1295assign efu_niu_cfifo1_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100100) | clear_all);
1296assign efu_niu_cfifo0_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100101) | clear_all);
1297
1298// 1024x152 instances: SRAM0
1299assign efu_niu_mac1_sf_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100110) | clear_all);
1300assign efu_niu_mac1_ro_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1100111) | clear_all);
1301assign efu_niu_mac0_sf_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1101000) | clear_all);
1302assign efu_niu_mac0_ro_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1101001) | clear_all);
1303assign efu_niu_ipp1_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1101010) | clear_all);
1304assign efu_niu_ipp0_clr = ~tcu_dbr_gateoff & ((tcu_red_reg_clr_ff[6:0] == 7'b1101011) | clear_all);
1305
1306// dmu instances
1307assign efu_dmu_clr_in = (tcu_red_reg_clr_ff[6:0] == 7'b1101100) | clear_all;
1308assign efu_dmu_xfer_en_in = (block_id_vld[5:0] == 6'b101100) && vld_en_nxt;
1309
1310// mcu serdes
1311assign efu_mcu_fclrz_in = (tcu_red_reg_clr_ff[6:0] == 7'b1110000) | clear_all;
1312assign efu_mcu_fclk = ~tcu_dbr_gateoff & mcucntclk ;
1313
1314// peu serdes
1315assign efu_psr_fclrz_in = (tcu_red_reg_clr_ff[6:0] == 7'b1110001) | clear_all;
1316assign efu_psr_fclk = ~tcu_dbr_gateoff & psrcntclk ;
1317
1318// niu serdes
1319assign efu_niu_fclrz_in = (tcu_red_reg_clr_ff[6:0] == 7'b1110010) | clear_all;
1320assign efu_niu_fclk = ~tcu_dbr_gateoff & niucntclk ;
1321
1322efu_niu_ctl_msff_ctl_macro__width_1 ff_vld_en
1323 (
1324 .scan_in(ff_vld_en_scanin),
1325 .scan_out(ff_vld_en_scanout),
1326 .dout (vld_en),
1327 .din (vld_en_nxt),
1328 .l1clk (l1clk),
1329 .siclk(siclk),
1330 .soclk(soclk)
1331 );
1332// could be a problem with cmp count
1333efu_niu_ctl_msff_ctl_macro__width_1 ff_dmu_xfer_en
1334 (
1335 .scan_in(ff_dmu_xfer_en_scanin),
1336 .scan_out(ff_dmu_xfer_en_scanout),
1337 .din (efu_dmu_xfer_en_in),
1338 .dout (efu_dmu_xfer_en_q),
1339 .l1clk (l1clk),
1340 .siclk(siclk),
1341 .soclk(soclk)
1342 );
1343
1344efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_niu_fclrz
1345 (
1346 .scan_in(ff_niu_fclrz_scanin),
1347 .scan_out(ff_niu_fclrz_scanout),
1348 .dout (efu_niu_fclrz_q),
1349 .din (~efu_niu_fclrz_in),
1350 .en (io_cmp_sync_en_r1),
1351 .l1clk (l1clk_cmp),
1352 .siclk(siclk),
1353 .soclk(soclk)
1354 );
1355
1356efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_psr_fclrz
1357 (
1358 .scan_in(ff_psr_fclrz_scanin),
1359 .scan_out(ff_psr_fclrz_scanout),
1360 .dout (efu_psr_fclrz_q),
1361 .din (~efu_psr_fclrz_in),
1362 .en (io_cmp_sync_en_r1),
1363 .l1clk (l1clk_cmp),
1364 .siclk(siclk),
1365 .soclk(soclk)
1366 );
1367
1368efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_mcu_fclrz
1369 (
1370 .scan_in(ff_mcu_fclrz_scanin),
1371 .scan_out(ff_mcu_fclrz_scanout),
1372 .dout (efu_mcu_fclrz_q),
1373 .din (~efu_mcu_fclrz_in),
1374 .en (io_cmp_sync_en_r1),
1375 .l1clk (l1clk_cmp),
1376 .siclk(siclk),
1377 .soclk(soclk)
1378 );
1379
1380efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_dmu_clr
1381 (
1382 .scan_in(ff_dmu_clr_scanin),
1383 .scan_out(ff_dmu_clr_scanout),
1384 .din (efu_dmu_clr_in),
1385 .dout (efu_dmu_clr_q),
1386 .en (io_cmp_sync_en_r1),
1387 .l1clk (l1clk_cmp),
1388 .siclk(siclk),
1389 .soclk(soclk)
1390 );
1391
1392// registers out
1393efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc0_iclr
1394 (
1395 .scan_in(clr_spc0_iclr_scanin),
1396 .scan_out(clr_spc0_iclr_scanout),
1397 .din (efu_spc0_fuse_iclr_in),
1398 .dout (efu_spc0_fuse_iclr),
1399 .en (io_cmp_sync_en_r1),
1400 .l1clk (l1clk_cmp),
1401 .siclk(siclk),
1402 .soclk(soclk)
1403 );
1404
1405efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc1_iclr
1406 (
1407 .scan_in(clr_spc1_iclr_scanin),
1408 .scan_out(clr_spc1_iclr_scanout),
1409 .din (efu_spc1_fuse_iclr_in),
1410 .dout (efu_spc1_fuse_iclr),
1411 .en (io_cmp_sync_en_r1),
1412 .l1clk (l1clk_cmp),
1413 .siclk(siclk),
1414 .soclk(soclk)
1415 );
1416
1417efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc2_iclr
1418 (
1419 .scan_in(clr_spc2_iclr_scanin),
1420 .scan_out(clr_spc2_iclr_scanout),
1421 .din (efu_spc2_fuse_iclr_in),
1422 .dout (efu_spc2_fuse_iclr),
1423 .en (io_cmp_sync_en_r1),
1424 .l1clk (l1clk_cmp),
1425 .siclk(siclk),
1426 .soclk(soclk)
1427 );
1428
1429efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc3_iclr
1430 (
1431 .scan_in(clr_spc3_iclr_scanin),
1432 .scan_out(clr_spc3_iclr_scanout),
1433 .din (efu_spc3_fuse_iclr_in),
1434 .dout (efu_spc3_fuse_iclr),
1435 .en (io_cmp_sync_en_r1),
1436 .l1clk (l1clk_cmp),
1437 .siclk(siclk),
1438 .soclk(soclk)
1439 );
1440
1441efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc4_iclr
1442 (
1443 .scan_in(clr_spc4_iclr_scanin),
1444 .scan_out(clr_spc4_iclr_scanout),
1445 .din (efu_spc4_fuse_iclr_in),
1446 .dout (efu_spc4_fuse_iclr),
1447 .en (io_cmp_sync_en_r1),
1448 .l1clk (l1clk_cmp),
1449 .siclk(siclk),
1450 .soclk(soclk)
1451 );
1452
1453efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc5_iclr
1454 (
1455 .scan_in(clr_spc5_iclr_scanin),
1456 .scan_out(clr_spc5_iclr_scanout),
1457 .din (efu_spc5_fuse_iclr_in),
1458 .dout (efu_spc5_fuse_iclr),
1459 .en (io_cmp_sync_en_r1),
1460 .l1clk (l1clk_cmp),
1461 .siclk(siclk),
1462 .soclk(soclk)
1463 );
1464
1465efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc6_iclr
1466 (
1467 .scan_in(clr_spc6_iclr_scanin),
1468 .scan_out(clr_spc6_iclr_scanout),
1469 .din (efu_spc6_fuse_iclr_in),
1470 .dout (efu_spc6_fuse_iclr),
1471 .en (io_cmp_sync_en_r1),
1472 .l1clk (l1clk_cmp),
1473 .siclk(siclk),
1474 .soclk(soclk)
1475 );
1476
1477efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc7_iclr
1478 (
1479 .scan_in(clr_spc7_iclr_scanin),
1480 .scan_out(clr_spc7_iclr_scanout),
1481 .din (efu_spc7_fuse_iclr_in),
1482 .dout (efu_spc7_fuse_iclr),
1483 .en (io_cmp_sync_en_r1),
1484 .l1clk (l1clk_cmp),
1485 .siclk(siclk),
1486 .soclk(soclk)
1487 );
1488
1489efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc0_dclr
1490 (
1491 .scan_in(clr_spc0_dclr_scanin),
1492 .scan_out(clr_spc0_dclr_scanout),
1493 .din (efu_spc0_fuse_dclr_in),
1494 .dout (efu_spc0_fuse_dclr),
1495 .en (io_cmp_sync_en_r1),
1496 .l1clk (l1clk_cmp),
1497 .siclk(siclk),
1498 .soclk(soclk)
1499 );
1500
1501efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc1_dclr
1502 (
1503 .scan_in(clr_spc1_dclr_scanin),
1504 .scan_out(clr_spc1_dclr_scanout),
1505 .din (efu_spc1_fuse_dclr_in),
1506 .dout (efu_spc1_fuse_dclr),
1507 .en (io_cmp_sync_en_r1),
1508 .l1clk (l1clk_cmp),
1509 .siclk(siclk),
1510 .soclk(soclk)
1511 );
1512
1513efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc2_dclr
1514 (
1515 .scan_in(clr_spc2_dclr_scanin),
1516 .scan_out(clr_spc2_dclr_scanout),
1517 .din (efu_spc2_fuse_dclr_in),
1518 .dout (efu_spc2_fuse_dclr),
1519 .en (io_cmp_sync_en_r1),
1520 .l1clk (l1clk_cmp),
1521 .siclk(siclk),
1522 .soclk(soclk)
1523 );
1524
1525efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc3_dclr
1526 (
1527 .scan_in(clr_spc3_dclr_scanin),
1528 .scan_out(clr_spc3_dclr_scanout),
1529 .din (efu_spc3_fuse_dclr_in),
1530 .dout (efu_spc3_fuse_dclr),
1531 .en (io_cmp_sync_en_r1),
1532 .l1clk (l1clk_cmp),
1533 .siclk(siclk),
1534 .soclk(soclk)
1535 );
1536
1537efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc4_dclr
1538 (
1539 .scan_in(clr_spc4_dclr_scanin),
1540 .scan_out(clr_spc4_dclr_scanout),
1541 .din (efu_spc4_fuse_dclr_in),
1542 .dout (efu_spc4_fuse_dclr),
1543 .en (io_cmp_sync_en_r1),
1544 .l1clk (l1clk_cmp),
1545 .siclk(siclk),
1546 .soclk(soclk)
1547 );
1548
1549efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc5_dclr
1550 (
1551 .scan_in(clr_spc5_dclr_scanin),
1552 .scan_out(clr_spc5_dclr_scanout),
1553 .din (efu_spc5_fuse_dclr_in),
1554 .dout (efu_spc5_fuse_dclr),
1555 .en (io_cmp_sync_en_r1),
1556 .l1clk (l1clk_cmp),
1557 .siclk(siclk),
1558 .soclk(soclk)
1559 );
1560
1561efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc6_dclr
1562 (
1563 .scan_in(clr_spc6_dclr_scanin),
1564 .scan_out(clr_spc6_dclr_scanout),
1565 .din (efu_spc6_fuse_dclr_in),
1566 .dout (efu_spc6_fuse_dclr),
1567 .en (io_cmp_sync_en_r1),
1568 .l1clk (l1clk_cmp),
1569 .siclk(siclk),
1570 .soclk(soclk)
1571 );
1572
1573efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_clr_spc7_dclr
1574 (
1575 .scan_in(clr_spc7_dclr_scanin),
1576 .scan_out(clr_spc7_dclr_scanout),
1577 .din (efu_spc7_fuse_dclr_in),
1578 .dout (efu_spc7_fuse_dclr),
1579 .en (io_cmp_sync_en_r1),
1580 .l1clk (l1clk_cmp),
1581 .siclk(siclk),
1582 .soclk(soclk)
1583 );
1584
1585efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t0_fuse_clr
1586 (
1587 .scan_in(l2t0_fuse_clr_scanin),
1588 .scan_out(l2t0_fuse_clr_scanout),
1589 .din (efu_l2t0_fuse_clr_in),
1590 .dout (efu_l2t0_fuse_clr),
1591 .en (io_cmp_sync_en_r1),
1592 .l1clk (l1clk_cmp),
1593 .siclk(siclk),
1594 .soclk(soclk)
1595 );
1596
1597efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t1_fuse_clr
1598 (
1599 .scan_in(l2t1_fuse_clr_scanin),
1600 .scan_out(l2t1_fuse_clr_scanout),
1601 .din (efu_l2t1_fuse_clr_in),
1602 .dout (efu_l2t1_fuse_clr),
1603 .en (io_cmp_sync_en_r1),
1604 .l1clk (l1clk_cmp),
1605 .siclk(siclk),
1606 .soclk(soclk)
1607 );
1608
1609efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t2_fuse_clr
1610 (
1611 .scan_in(l2t2_fuse_clr_scanin),
1612 .scan_out(l2t2_fuse_clr_scanout),
1613 .din (efu_l2t2_fuse_clr_in),
1614 .dout (efu_l2t2_fuse_clr),
1615 .en (io_cmp_sync_en_r1),
1616 .l1clk (l1clk_cmp),
1617 .siclk(siclk),
1618 .soclk(soclk)
1619 );
1620
1621efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t3_fuse_clr
1622 (
1623 .scan_in(l2t3_fuse_clr_scanin),
1624 .scan_out(l2t3_fuse_clr_scanout),
1625 .din (efu_l2t3_fuse_clr_in),
1626 .dout (efu_l2t3_fuse_clr),
1627 .en (io_cmp_sync_en_r1),
1628 .l1clk (l1clk_cmp),
1629 .siclk(siclk),
1630 .soclk(soclk)
1631 );
1632
1633efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t4_fuse_clr
1634 (
1635 .scan_in(l2t4_fuse_clr_scanin),
1636 .scan_out(l2t4_fuse_clr_scanout),
1637 .din (efu_l2t4_fuse_clr_in),
1638 .dout (efu_l2t4_fuse_clr),
1639 .en (io_cmp_sync_en_r1),
1640 .l1clk (l1clk_cmp),
1641 .siclk(siclk),
1642 .soclk(soclk)
1643 );
1644
1645efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t5_fuse_clr
1646 (
1647 .scan_in(l2t5_fuse_clr_scanin),
1648 .scan_out(l2t5_fuse_clr_scanout),
1649 .din (efu_l2t5_fuse_clr_in),
1650 .dout (efu_l2t5_fuse_clr),
1651 .en (io_cmp_sync_en_r1),
1652 .l1clk (l1clk_cmp),
1653 .siclk(siclk),
1654 .soclk(soclk)
1655 );
1656
1657efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t6_fuse_clr
1658 (
1659 .scan_in(l2t6_fuse_clr_scanin),
1660 .scan_out(l2t6_fuse_clr_scanout),
1661 .din (efu_l2t6_fuse_clr_in),
1662 .dout (efu_l2t6_fuse_clr),
1663 .en (io_cmp_sync_en_r1),
1664 .l1clk (l1clk_cmp),
1665 .siclk(siclk),
1666 .soclk(soclk)
1667 );
1668
1669efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2t7_fuse_clr
1670 (
1671 .scan_in(l2t7_fuse_clr_scanin),
1672 .scan_out(l2t7_fuse_clr_scanout),
1673 .din (efu_l2t7_fuse_clr_in),
1674 .dout (efu_l2t7_fuse_clr),
1675 .en (io_cmp_sync_en_r1),
1676 .l1clk (l1clk_cmp),
1677 .siclk(siclk),
1678 .soclk(soclk)
1679 );
1680
1681efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b0_fuse_clr
1682 (
1683 .scan_in(l2b0_fuse_clr_scanin),
1684 .scan_out(l2b0_fuse_clr_scanout),
1685 .din (efu_l2b0_fuse_clr_in),
1686 .dout (efu_l2b0_fuse_clr),
1687 .en (io_cmp_sync_en_r1),
1688 .l1clk (l1clk_cmp),
1689 .siclk(siclk),
1690 .soclk(soclk)
1691 );
1692
1693efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b1_fuse_clr
1694 (
1695 .scan_in(l2b1_fuse_clr_scanin),
1696 .scan_out(l2b1_fuse_clr_scanout),
1697 .din (efu_l2b1_fuse_clr_in),
1698 .dout (efu_l2b1_fuse_clr),
1699 .en (io_cmp_sync_en_r1),
1700 .l1clk (l1clk_cmp),
1701 .siclk(siclk),
1702 .soclk(soclk)
1703 );
1704
1705efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b2_fuse_clr
1706 (
1707 .scan_in(l2b2_fuse_clr_scanin),
1708 .scan_out(l2b2_fuse_clr_scanout),
1709 .din (efu_l2b2_fuse_clr_in),
1710 .dout (efu_l2b2_fuse_clr),
1711 .en (io_cmp_sync_en_r1),
1712 .l1clk (l1clk_cmp),
1713 .siclk(siclk),
1714 .soclk(soclk)
1715 );
1716
1717efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b3_fuse_clr
1718 (
1719 .scan_in(l2b3_fuse_clr_scanin),
1720 .scan_out(l2b3_fuse_clr_scanout),
1721 .din (efu_l2b3_fuse_clr_in),
1722 .dout (efu_l2b3_fuse_clr),
1723 .en (io_cmp_sync_en_r1),
1724 .l1clk (l1clk_cmp),
1725 .siclk(siclk),
1726 .soclk(soclk)
1727 );
1728
1729efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b4_fuse_clr
1730 (
1731 .scan_in(l2b4_fuse_clr_scanin),
1732 .scan_out(l2b4_fuse_clr_scanout),
1733 .din (efu_l2b4_fuse_clr_in),
1734 .dout (efu_l2b4_fuse_clr),
1735 .en (io_cmp_sync_en_r1),
1736 .l1clk (l1clk_cmp),
1737 .siclk(siclk),
1738 .soclk(soclk)
1739 );
1740
1741efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b5_fuse_clr
1742 (
1743 .scan_in(l2b5_fuse_clr_scanin),
1744 .scan_out(l2b5_fuse_clr_scanout),
1745 .din (efu_l2b5_fuse_clr_in),
1746 .dout (efu_l2b5_fuse_clr),
1747 .en (io_cmp_sync_en_r1),
1748 .l1clk (l1clk_cmp),
1749 .siclk(siclk),
1750 .soclk(soclk)
1751 );
1752
1753efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b6_fuse_clr
1754 (
1755 .scan_in(l2b6_fuse_clr_scanin),
1756 .scan_out(l2b6_fuse_clr_scanout),
1757 .din (efu_l2b6_fuse_clr_in),
1758 .dout (efu_l2b6_fuse_clr),
1759 .en (io_cmp_sync_en_r1),
1760 .l1clk (l1clk_cmp),
1761 .siclk(siclk),
1762 .soclk(soclk)
1763 );
1764
1765efu_niu_ctl_msff_ctl_macro__en_1__width_1 ff_efu_red_reg_l2b7_fuse_clr
1766 (
1767 .scan_in(l2b7_fuse_clr_scanin),
1768 .scan_out(l2b7_fuse_clr_scanout),
1769 .din (efu_l2b7_fuse_clr_in),
1770 .dout (efu_l2b7_fuse_clr),
1771 .en (io_cmp_sync_en_r1),
1772 .l1clk (l1clk_cmp),
1773 .siclk(siclk),
1774 .soclk(soclk)
1775 );
1776// fixscan start:
1777assign ff_read_data_ff_sync_scanin = scan_in ;
1778assign ff_read_data_ff_shift_scanin = ff_read_data_ff_sync_scanout;
1779assign ff_read_data_ff_vld_1_scanin = ff_read_data_ff_shift_scanout;
1780assign ff_read_data_ff_vld_scanin = ff_read_data_ff_vld_1_scanout;
1781assign ff_pulse_read_data_ff_vld_scanin = ff_read_data_ff_vld_scanout;
1782assign ff_pulse_read_data_ff_vld_1_scanin = ff_pulse_read_data_ff_vld_scanout;
1783assign ff_vld_en_scanin = ff_pulse_read_data_ff_vld_1_scanout;
1784assign ff_psrclk_scanin = ff_vld_en_scanout;
1785assign ff_mcuclk_scanin = ff_psrclk_scanout;
1786assign ff_niuclk_scanin = ff_mcuclk_scanout;
1787assign ff_cnt_scanin = ff_niuclk_scanout;
1788assign ff_dmu_xfer_en_scanin = ff_cnt_scanout;
1789assign ff_mac1_sf_xfer_en_scanin = ff_dmu_xfer_en_scanout;
1790assign ff_mac1_ro_xfer_en_scanin = ff_mac1_sf_xfer_en_scanout;
1791assign ff_mac0_sf_xfer_en_scanin = ff_mac1_ro_xfer_en_scanout;
1792assign ff_mac0_ro_xfer_en_scanin = ff_mac0_sf_xfer_en_scanout;
1793assign ff_ipp0_xfer_en_scanin = ff_mac0_ro_xfer_en_scanout;
1794assign ff_ipp1_xfer_en_scanin = ff_ipp0_xfer_en_scanout;
1795assign ff_cfifo0_xfer_en_scanin = ff_ipp1_xfer_en_scanout;
1796assign ff_cfifo1_xfer_en_scanin = ff_cfifo0_xfer_en_scanout;
1797assign ff_ram0_xfer_en_scanin = ff_cfifo1_xfer_en_scanout;
1798assign ff_ram1_xfer_en_scanin = ff_ram0_xfer_en_scanout;
1799assign ff_4k_xfer_en_scanin = ff_ram1_xfer_en_scanout;
1800assign ff_ram_xfer_en_scanin = ff_4k_xfer_en_scanout;
1801assign ff_mcu_fdo_scanin = ff_ram_xfer_en_scanout;
1802assign ff_psr_fdo_scanin = ff_mcu_fdo_scanout;
1803assign ff_niu_fdo_scanin = ff_psr_fdo_scanout;
1804assign ff_capture_serdes_scanin = ff_niu_fdo_scanout;
1805assign ff_serdes_rd_en_scanin = ff_capture_serdes_scanout;
1806assign ff_niu_shift_scanin = ff_serdes_rd_en_scanout;
1807assign ff_read_data_in_r2_scanin = ff_niu_shift_scanout;
1808assign ff_load_niu_read_data_scanin = ff_read_data_in_r2_scanout ;
1809assign ff_read_data_in_r1_scanin = ff_load_niu_read_data_scanout ;
1810assign ff_read_data_in_scanin = ff_read_data_in_r1_scanout;
1811assign ff_serdes_data_shift_scanin = ff_read_data_in_scanout;
1812assign tcu_red_reg_clr_reg0_scanin = ff_serdes_data_shift_scanout ;
1813assign tcu_red_reg_clr_reg1_scanin = tcu_red_reg_clr_reg0_scanout ;
1814assign tcu_red_reg_clr_reg2_scanin = tcu_red_reg_clr_reg1_scanout ;
1815assign tcu_red_reg_clr_reg3_scanin = tcu_red_reg_clr_reg2_scanout ;
1816assign tcu_red_reg_clr_reg4_scanin = tcu_red_reg_clr_reg3_scanout ;
1817assign tcu_red_reg_clr_reg5_scanin = tcu_red_reg_clr_reg4_scanout ;
1818assign tcu_red_reg_clr_reg6_scanin = tcu_red_reg_clr_reg5_scanout ;
1819assign ff_niu_fclrz_scanin = tcu_red_reg_clr_reg6_scanout;
1820assign ff_psr_fclrz_scanin = ff_niu_fclrz_scanout;
1821assign ff_mcu_fclrz_scanin = ff_psr_fclrz_scanout;
1822assign ff_dmu_clr_scanin = ff_mcu_fclrz_scanout;
1823assign clr_spc0_iclr_scanin = ff_dmu_clr_scanout;
1824assign clr_spc1_iclr_scanin = clr_spc0_iclr_scanout;
1825assign clr_spc2_iclr_scanin = clr_spc1_iclr_scanout;
1826assign clr_spc3_iclr_scanin = clr_spc2_iclr_scanout;
1827assign clr_spc4_iclr_scanin = clr_spc3_iclr_scanout;
1828assign clr_spc5_iclr_scanin = clr_spc4_iclr_scanout;
1829assign clr_spc6_iclr_scanin = clr_spc5_iclr_scanout;
1830assign clr_spc7_iclr_scanin = clr_spc6_iclr_scanout;
1831assign clr_spc0_dclr_scanin = clr_spc7_iclr_scanout;
1832assign clr_spc1_dclr_scanin = clr_spc0_dclr_scanout;
1833assign clr_spc2_dclr_scanin = clr_spc1_dclr_scanout;
1834assign clr_spc3_dclr_scanin = clr_spc2_dclr_scanout;
1835assign clr_spc4_dclr_scanin = clr_spc3_dclr_scanout;
1836assign clr_spc5_dclr_scanin = clr_spc4_dclr_scanout;
1837assign clr_spc6_dclr_scanin = clr_spc5_dclr_scanout;
1838assign clr_spc7_dclr_scanin = clr_spc6_dclr_scanout;
1839assign l2t0_fuse_clr_scanin = clr_spc7_dclr_scanout;
1840assign l2t1_fuse_clr_scanin = l2t0_fuse_clr_scanout;
1841assign l2t2_fuse_clr_scanin = l2t1_fuse_clr_scanout;
1842assign l2t3_fuse_clr_scanin = l2t2_fuse_clr_scanout;
1843assign l2t4_fuse_clr_scanin = l2t3_fuse_clr_scanout;
1844assign l2t5_fuse_clr_scanin = l2t4_fuse_clr_scanout;
1845assign l2t6_fuse_clr_scanin = l2t5_fuse_clr_scanout;
1846assign l2t7_fuse_clr_scanin = l2t6_fuse_clr_scanout;
1847assign l2b0_fuse_clr_scanin = l2t7_fuse_clr_scanout;
1848assign l2b1_fuse_clr_scanin = l2b0_fuse_clr_scanout;
1849assign l2b2_fuse_clr_scanin = l2b1_fuse_clr_scanout;
1850assign l2b3_fuse_clr_scanin = l2b2_fuse_clr_scanout;
1851assign l2b4_fuse_clr_scanin = l2b3_fuse_clr_scanout;
1852assign l2b5_fuse_clr_scanin = l2b4_fuse_clr_scanout;
1853assign l2b6_fuse_clr_scanin = l2b5_fuse_clr_scanout;
1854assign l2b7_fuse_clr_scanin = l2b6_fuse_clr_scanout;
1855assign ff_cmp_io_sync_en_scanin = l2b7_fuse_clr_scanout;
1856assign ff_io_cmp_sync_en_scanin = ff_cmp_io_sync_en_scanout;
1857assign spares_scanin = ff_io_cmp_sync_en_scanout;
1858assign scan_out = spares_scanout ;
1859// fixscan end:
1860endmodule
1861
1862
1863
1864
1865
1866
1867// any PARAMS parms go into naming of macro
1868
1869module efu_niu_ctl_l1clkhdr_ctl_macro (
1870 l2clk,
1871 l1en,
1872 pce_ov,
1873 stop,
1874 se,
1875 l1clk);
1876
1877
1878 input l2clk;
1879 input l1en;
1880 input pce_ov;
1881 input stop;
1882 input se;
1883 output l1clk;
1884
1885
1886
1887
1888
1889cl_sc1_l1hdr_8x c_0 (
1890
1891
1892 .l2clk(l2clk),
1893 .pce(l1en),
1894 .l1clk(l1clk),
1895 .se(se),
1896 .pce_ov(pce_ov),
1897 .stop(stop)
1898);
1899
1900
1901
1902endmodule
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916// any PARAMS parms go into naming of macro
1917
1918module efu_niu_ctl_msff_ctl_macro__en_1__width_1 (
1919 din,
1920 en,
1921 l1clk,
1922 scan_in,
1923 siclk,
1924 soclk,
1925 dout,
1926 scan_out);
1927wire [0:0] fdin;
1928
1929 input [0:0] din;
1930 input en;
1931 input l1clk;
1932 input scan_in;
1933
1934
1935 input siclk;
1936 input soclk;
1937
1938 output [0:0] dout;
1939 output scan_out;
1940assign fdin[0:0] = (din[0:0] & {1{en}}) | (dout[0:0] & ~{1{en}});
1941
1942
1943
1944
1945
1946
1947dff #(1) d0_0 (
1948.l1clk(l1clk),
1949.siclk(siclk),
1950.soclk(soclk),
1951.d(fdin[0:0]),
1952.si(scan_in),
1953.so(scan_out),
1954.q(dout[0:0])
1955);
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968endmodule
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982// any PARAMS parms go into naming of macro
1983
1984module efu_niu_ctl_msff_ctl_macro__width_2 (
1985 din,
1986 l1clk,
1987 scan_in,
1988 siclk,
1989 soclk,
1990 dout,
1991 scan_out);
1992wire [1:0] fdin;
1993wire [0:0] so;
1994
1995 input [1:0] din;
1996 input l1clk;
1997 input scan_in;
1998
1999
2000 input siclk;
2001 input soclk;
2002
2003 output [1:0] dout;
2004 output scan_out;
2005assign fdin[1:0] = din[1:0];
2006
2007
2008
2009
2010
2011
2012dff #(2) d0_0 (
2013.l1clk(l1clk),
2014.siclk(siclk),
2015.soclk(soclk),
2016.d(fdin[1:0]),
2017.si({scan_in,so[0:0]}),
2018.so({so[0:0],scan_out}),
2019.q(dout[1:0])
2020);
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033endmodule
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047// any PARAMS parms go into naming of macro
2048
2049module efu_niu_ctl_msff_ctl_macro__width_1 (
2050 din,
2051 l1clk,
2052 scan_in,
2053 siclk,
2054 soclk,
2055 dout,
2056 scan_out);
2057wire [0:0] fdin;
2058
2059 input [0:0] din;
2060 input l1clk;
2061 input scan_in;
2062
2063
2064 input siclk;
2065 input soclk;
2066
2067 output [0:0] dout;
2068 output scan_out;
2069assign fdin[0:0] = din[0:0];
2070
2071
2072
2073
2074
2075
2076dff #(1) d0_0 (
2077.l1clk(l1clk),
2078.siclk(siclk),
2079.soclk(soclk),
2080.d(fdin[0:0]),
2081.si(scan_in),
2082.so(scan_out),
2083.q(dout[0:0])
2084);
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097endmodule
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111// any PARAMS parms go into naming of macro
2112
2113module efu_niu_ctl_msff_ctl_macro__en_1__width_32 (
2114 din,
2115 en,
2116 l1clk,
2117 scan_in,
2118 siclk,
2119 soclk,
2120 dout,
2121 scan_out);
2122wire [31:0] fdin;
2123wire [30:0] so;
2124
2125 input [31:0] din;
2126 input en;
2127 input l1clk;
2128 input scan_in;
2129
2130
2131 input siclk;
2132 input soclk;
2133
2134 output [31:0] dout;
2135 output scan_out;
2136assign fdin[31:0] = (din[31:0] & {32{en}}) | (dout[31:0] & ~{32{en}});
2137
2138
2139
2140
2141
2142
2143dff #(32) d0_0 (
2144.l1clk(l1clk),
2145.siclk(siclk),
2146.soclk(soclk),
2147.d(fdin[31:0]),
2148.si({scan_in,so[30:0]}),
2149.so({so[30:0],scan_out}),
2150.q(dout[31:0])
2151);
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164endmodule
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178// any PARAMS parms go into naming of macro
2179
2180module efu_niu_ctl_msff_ctl_macro__en_1__width_7 (
2181 din,
2182 en,
2183 l1clk,
2184 scan_in,
2185 siclk,
2186 soclk,
2187 dout,
2188 scan_out);
2189wire [6:0] fdin;
2190wire [5:0] so;
2191
2192 input [6:0] din;
2193 input en;
2194 input l1clk;
2195 input scan_in;
2196
2197
2198 input siclk;
2199 input soclk;
2200
2201 output [6:0] dout;
2202 output scan_out;
2203assign fdin[6:0] = (din[6:0] & {7{en}}) | (dout[6:0] & ~{7{en}});
2204
2205
2206
2207
2208
2209
2210dff #(7) d0_0 (
2211.l1clk(l1clk),
2212.siclk(siclk),
2213.soclk(soclk),
2214.d(fdin[6:0]),
2215.si({scan_in,so[5:0]}),
2216.so({so[5:0],scan_out}),
2217.q(dout[6:0])
2218);
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231endmodule
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241// Description: Spare gate macro for control blocks
2242//
2243// Param num controls the number of times the macro is added
2244// flops=0 can be used to use only combination spare logic
2245
2246
2247module efu_niu_ctl_spare_ctl_macro__num_2 (
2248 l1clk,
2249 scan_in,
2250 siclk,
2251 soclk,
2252 scan_out);
2253wire si_0;
2254wire so_0;
2255wire spare0_flop_unused;
2256wire spare0_buf_32x_unused;
2257wire spare0_nand3_8x_unused;
2258wire spare0_inv_8x_unused;
2259wire spare0_aoi22_4x_unused;
2260wire spare0_buf_8x_unused;
2261wire spare0_oai22_4x_unused;
2262wire spare0_inv_16x_unused;
2263wire spare0_nand2_16x_unused;
2264wire spare0_nor3_4x_unused;
2265wire spare0_nand2_8x_unused;
2266wire spare0_buf_16x_unused;
2267wire spare0_nor2_16x_unused;
2268wire spare0_inv_32x_unused;
2269wire si_1;
2270wire so_1;
2271wire spare1_flop_unused;
2272wire spare1_buf_32x_unused;
2273wire spare1_nand3_8x_unused;
2274wire spare1_inv_8x_unused;
2275wire spare1_aoi22_4x_unused;
2276wire spare1_buf_8x_unused;
2277wire spare1_oai22_4x_unused;
2278wire spare1_inv_16x_unused;
2279wire spare1_nand2_16x_unused;
2280wire spare1_nor3_4x_unused;
2281wire spare1_nand2_8x_unused;
2282wire spare1_buf_16x_unused;
2283wire spare1_nor2_16x_unused;
2284wire spare1_inv_32x_unused;
2285
2286
2287input l1clk;
2288input scan_in;
2289input siclk;
2290input soclk;
2291output scan_out;
2292
2293cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
2294 .siclk(siclk),
2295 .soclk(soclk),
2296 .si(si_0),
2297 .so(so_0),
2298 .d(1'b0),
2299 .q(spare0_flop_unused));
2300assign si_0 = scan_in;
2301
2302cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
2303 .out(spare0_buf_32x_unused));
2304cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
2305 .in1(1'b1),
2306 .in2(1'b1),
2307 .out(spare0_nand3_8x_unused));
2308cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
2309 .out(spare0_inv_8x_unused));
2310cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
2311 .in01(1'b1),
2312 .in10(1'b1),
2313 .in11(1'b1),
2314 .out(spare0_aoi22_4x_unused));
2315cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
2316 .out(spare0_buf_8x_unused));
2317cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
2318 .in01(1'b1),
2319 .in10(1'b1),
2320 .in11(1'b1),
2321 .out(spare0_oai22_4x_unused));
2322cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
2323 .out(spare0_inv_16x_unused));
2324cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
2325 .in1(1'b1),
2326 .out(spare0_nand2_16x_unused));
2327cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
2328 .in1(1'b0),
2329 .in2(1'b0),
2330 .out(spare0_nor3_4x_unused));
2331cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
2332 .in1(1'b1),
2333 .out(spare0_nand2_8x_unused));
2334cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
2335 .out(spare0_buf_16x_unused));
2336cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
2337 .in1(1'b0),
2338 .out(spare0_nor2_16x_unused));
2339cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
2340 .out(spare0_inv_32x_unused));
2341
2342cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
2343 .siclk(siclk),
2344 .soclk(soclk),
2345 .si(si_1),
2346 .so(so_1),
2347 .d(1'b0),
2348 .q(spare1_flop_unused));
2349assign si_1 = so_0;
2350
2351cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
2352 .out(spare1_buf_32x_unused));
2353cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
2354 .in1(1'b1),
2355 .in2(1'b1),
2356 .out(spare1_nand3_8x_unused));
2357cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
2358 .out(spare1_inv_8x_unused));
2359cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
2360 .in01(1'b1),
2361 .in10(1'b1),
2362 .in11(1'b1),
2363 .out(spare1_aoi22_4x_unused));
2364cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
2365 .out(spare1_buf_8x_unused));
2366cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
2367 .in01(1'b1),
2368 .in10(1'b1),
2369 .in11(1'b1),
2370 .out(spare1_oai22_4x_unused));
2371cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
2372 .out(spare1_inv_16x_unused));
2373cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
2374 .in1(1'b1),
2375 .out(spare1_nand2_16x_unused));
2376cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
2377 .in1(1'b0),
2378 .in2(1'b0),
2379 .out(spare1_nor3_4x_unused));
2380cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
2381 .in1(1'b1),
2382 .out(spare1_nand2_8x_unused));
2383cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
2384 .out(spare1_buf_16x_unused));
2385cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
2386 .in1(1'b0),
2387 .out(spare1_nor2_16x_unused));
2388cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
2389 .out(spare1_inv_32x_unused));
2390assign scan_out = so_1;
2391
2392
2393
2394endmodule
2395