Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / sii / rtl / sii_ipcc_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: sii_ipcc_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 sii_ipcc_ctl (
36 ilc_ipcc_stop0,
37 ilc_ipcc_stop1,
38 ilc_ipcc_stop2,
39 ilc_ipcc_stop3,
40 ilc_ipcc_stop4,
41 ilc_ipcc_stop5,
42 ilc_ipcc_stop6,
43 ilc_ipcc_stop7,
44 ilc_ipcc_dmu_wrm0,
45 ilc_ipcc_dmu_wrm1,
46 ilc_ipcc_dmu_wrm2,
47 ilc_ipcc_dmu_wrm3,
48 ilc_ipcc_dmu_wrm4,
49 ilc_ipcc_dmu_wrm5,
50 ilc_ipcc_dmu_wrm6,
51 ilc_ipcc_dmu_wrm7,
52 ilc_ipcc_niu_wrm0,
53 ilc_ipcc_niu_wrm1,
54 ilc_ipcc_niu_wrm2,
55 ilc_ipcc_niu_wrm3,
56 ilc_ipcc_niu_wrm4,
57 ilc_ipcc_niu_wrm5,
58 ilc_ipcc_niu_wrm6,
59 ilc_ipcc_niu_wrm7,
60 ilc_ipcc_dmu_wrm_dq0,
61 ilc_ipcc_dmu_wrm_dq1,
62 ilc_ipcc_dmu_wrm_dq2,
63 ilc_ipcc_dmu_wrm_dq3,
64 ilc_ipcc_dmu_wrm_dq4,
65 ilc_ipcc_dmu_wrm_dq5,
66 ilc_ipcc_dmu_wrm_dq6,
67 ilc_ipcc_dmu_wrm_dq7,
68 ilc_ipcc_niu_wrm_dq0,
69 ilc_ipcc_niu_wrm_dq1,
70 ilc_ipcc_niu_wrm_dq2,
71 ilc_ipcc_niu_wrm_dq3,
72 ilc_ipcc_niu_wrm_dq4,
73 ilc_ipcc_niu_wrm_dq5,
74 ilc_ipcc_niu_wrm_dq6,
75 ilc_ipcc_niu_wrm_dq7,
76 ipcc_ilc_cmd0,
77 ipcc_ilc_cmd1,
78 ipcc_ilc_cmd2,
79 ipcc_ilc_cmd3,
80 ipcc_ilc_cmd4,
81 ipcc_ilc_cmd5,
82 ipcc_ilc_cmd6,
83 ipcc_ilc_cmd7,
84 array_wr_inhibit_cmp,
85 array_wr_inhibit_io,
86 array_wr_inhibit,
87 inc_ipcc_stop,
88 ncu_sii_pm_in,
89 ncu_sii_ba01_in,
90 ncu_sii_ba23_in,
91 ncu_sii_ba45_in,
92 ncu_sii_ba67_in,
93 ncu_sii_l2_idx_hash_en_in,
94 sii_ncu_niuctag_ue,
95 sii_ncu_niuctag_ce,
96 sii_ncu_niua_pe,
97 sii_ncu_niud_pe,
98 sii_ncu_dmuctag_ue,
99 sii_ncu_dmuctag_ce,
100 sii_ncu_dmua_pe,
101 sii_ncu_dmud_pe,
102 sii_ncu_syn_data,
103 sii_ncu_syn_vld,
104 sio_sii_opcc_ipcc_dmu_or_deq_r,
105 sio_sii_opcc_ipcc_dmu_by_deq_r,
106 sio_sii_opcc_ipcc_niu_or_deq_r,
107 sio_sii_opcc_ipcc_niu_by_deq_r,
108 sio_sii_opcc_ipcc_dmu_by_cnt_r,
109 sio_sii_opcc_ipcc_niu_by_cnt_r,
110 data_sel,
111 gnt0_r_m,
112 hdr_data_sel,
113 newhdr_l2,
114 newhdr_nc,
115 new_c,
116 data_parity_err,
117 ipcc_dp_par_data,
118 curhdr,
119 tcu_hdr,
120 tcu_data,
121 tcu_be_par,
122 ipcc_ipcs_dmu_or_go_lv,
123 ipcc_ipcs_dmu_by_go_lv,
124 ipcc_ipcs_dmu_or_ptr,
125 ipcc_ipcs_dmu_by_ptr,
126 ipcc_ipcs_dmu_tag,
127 ipcc_ipcs_wrack_lv,
128 ipcc_ipcs_dmu_wrack_p,
129 ipcc_ipcs_niu_or_go_lv,
130 ipcc_ipcs_niu_by_go_lv,
131 ipcc_ipcs_niu_or_ptr,
132 ipcc_ipcs_niu_by_ptr,
133 ipcs_ipcc_dmu_or_dep,
134 ipcs_ipcc_dmu_by_dep,
135 ipcs_ipcc_niu_or_dep,
136 ipcs_ipcc_niu_by_dep,
137 ipcs_ipcc_add_dmu_or,
138 ipcs_ipcc_add_dmu_by,
139 ipcs_ipcc_add_niu_or,
140 ipcs_ipcc_add_niu_by,
141 sii_mb0_run,
142 sii_mb0_addr,
143 sii_mb0_wr_en,
144 sii_mb0_ind_wr_en,
145 sii_mb1_1of4ipd_sel,
146 sii_mb1_ipd_data_or_hdr_sel,
147 sii_mb1_ipd_data_hibits_sel,
148 sii_mb1_run,
149 sii_mb1_run_r,
150 sii_mb1_addr,
151 sii_mb1_ipdohq0_rd_en,
152 sii_mb1_ipdbhq0_rd_en,
153 sii_mb1_ipdodq0_rd_en,
154 sii_mb1_ipdbdq0_rd_en,
155 sii_mb1_ipdohq1_rd_en,
156 sii_mb1_ipdbhq1_rd_en,
157 sii_mb1_ipdodq1_rd_en,
158 sii_mb1_ipdbdq1_rd_en,
159 ipcc_ildq_wr_addr0_m,
160 ipcc_ildq_wr_addr1_m,
161 ipcc_ildq_wr_addr2_m,
162 ipcc_ildq_wr_addr3_m,
163 ipcc_ildq_wr_addr4_m,
164 ipcc_ildq_wr_addr5_m,
165 ipcc_ildq_wr_addr6_m,
166 ipcc_ildq_wr_addr7_m,
167 ipcc_ildq_wr_en0_m,
168 ipcc_ildq_wr_en1_m,
169 ipcc_ildq_wr_en2_m,
170 ipcc_ildq_wr_en3_m,
171 ipcc_ildq_wr_en4_m,
172 ipcc_ildq_wr_en5_m,
173 ipcc_ildq_wr_en6_m,
174 ipcc_ildq_wr_en7_m,
175 ipcc_ildq_wr_addr0,
176 ipcc_ildq_wr_addr1,
177 ipcc_ildq_wr_addr2,
178 ipcc_ildq_wr_addr3,
179 ipcc_ildq_wr_addr4,
180 ipcc_ildq_wr_addr5,
181 ipcc_ildq_wr_addr6,
182 ipcc_ildq_wr_addr7,
183 ipcc_ildq_wr_en0,
184 ipcc_ildq_wr_en1,
185 ipcc_ildq_wr_en2,
186 ipcc_ildq_wr_en3,
187 ipcc_ildq_wr_en4,
188 ipcc_ildq_wr_en5,
189 ipcc_ildq_wr_en6,
190 ipcc_ildq_wr_en7,
191 ipcc_indq_wr_addr,
192 ipcc_indq_wr_en,
193 ipcc_inc_wr_ovfl,
194 ipdohq0_dout58,
195 ipdbhq0_dout58,
196 ipdohq1_dout58,
197 ipdbhq1_dout58,
198 dmu_or_bank_ext,
199 dmu_by_bank_ext,
200 niu_or_bank_ext,
201 niu_by_bank_ext,
202 ipcc_ipdodq0_rd_addr_m,
203 ipcc_ipdbdq0_rd_addr_m,
204 ipcc_ipdohq0_rd_addr_m,
205 ipcc_ipdbhq0_rd_addr_m,
206 ipcc_ipdohq0_rd_en_m,
207 ipcc_ipdbhq0_rd_en_m,
208 ipcc_ipdodq0_rd_en_m,
209 ipcc_ipdbdq0_rd_en_m,
210 ipcs_ipdohq0_wr_en,
211 ipcs_ipdbhq0_wr_en,
212 ipcs_ipdodq0_wr_en,
213 ipcs_ipdbdq0_wr_en,
214 ipcs_ipdohq0_wr_addr,
215 ipcs_ipdbhq0_wr_addr,
216 ipcs_ipdodq0_wr_addr,
217 ipcs_ipdbdq0_wr_addr,
218 ipcc_ipdodq1_rd_addr_m,
219 ipcc_ipdbdq1_rd_addr_m,
220 ipcc_ipdohq1_rd_addr_m,
221 ipcc_ipdbhq1_rd_addr_m,
222 ipcc_ipdohq1_rd_en_m,
223 ipcc_ipdbhq1_rd_en_m,
224 ipcc_ipdodq1_rd_en_m,
225 ipcc_ipdbdq1_rd_en_m,
226 ipcs_ipdohq1_wr_addr,
227 ipcs_ipdbhq1_wr_addr,
228 ipcs_ipdodq1_wr_addr,
229 ipcs_ipdbdq1_wr_addr,
230 ipcs_ipdohq1_wr_en,
231 ipcs_ipdbhq1_wr_en,
232 ipcs_ipdodq1_wr_en,
233 ipcs_ipdbdq1_wr_en,
234 l2clk,
235 io_cmp_sync_en_in,
236 cmp_io_sync_en_in,
237 scan_in,
238 scan_out,
239 tcu_scan_en,
240 tcu_sii_data,
241 tcu_sii_vld,
242 tcu_aclk,
243 tcu_bclk,
244 tcu_pce_ov,
245 tcu_clk_stop);
246wire se;
247wire siclk;
248wire soclk;
249wire pce_ov;
250wire stop;
251wire l1clk;
252wire reg_gnt_scanin;
253wire id_14_unused;
254wire [15:0] id;
255wire pa37_unused;
256wire [37:0] pa;
257wire [4:0] tcu_rcv_hdr_63_59_unused;
258wire [63:0] tcu_rcv_hdr;
259wire [15:0] tcu_rcv_hdr_55_40_unused;
260wire [1:0] tcu_rcv_hdr_1_0_unused;
261wire sii_mb0_run_r;
262wire [5:0] sii_mb0_addr_r;
263wire sii_mb0_wr_en_r;
264wire sii_mb1_ipdohq0_rd_en_r;
265wire ipdohq0_rd_en;
266wire sii_mb1_ipdbhq0_rd_en_r;
267wire ipdbhq0_rd_en;
268wire sii_mb1_ipdodq0_rd_en_r;
269wire ipdodq0_rd_en;
270wire sii_mb1_ipdbdq0_rd_en_r;
271wire ipdbdq0_rd_en;
272wire [3:0] ipcs_ipdohq0_wr_addr_sync;
273wire [3:0] ipcc_ipdohq0_rd_addr;
274wire ipcs_ipdohq0_wr_en_sync;
275wire [3:0] ipcs_ipdbhq0_wr_addr_sync;
276wire [3:0] ipcc_ipdbhq0_rd_addr;
277wire ipcs_ipdbhq0_wr_en_sync;
278wire [5:0] ipcs_ipdodq0_wr_addr_sync;
279wire [5:0] ipcc_ipdodq0_rd_addr;
280wire ipcs_ipdodq0_wr_en_sync;
281wire [5:0] ipcs_ipdbdq0_wr_addr_sync;
282wire [5:0] ipcc_ipdbdq0_rd_addr;
283wire ipcs_ipdbdq0_wr_en_sync;
284wire sii_mb1_ipdohq1_rd_en_r;
285wire ipdohq1_rd_en;
286wire sii_mb1_ipdbhq1_rd_en_r;
287wire ipdbhq1_rd_en;
288wire sii_mb1_ipdodq1_rd_en_r;
289wire ipdodq1_rd_en;
290wire sii_mb1_ipdbdq1_rd_en_r;
291wire ipdbdq1_rd_en;
292wire [3:0] ipcs_ipdohq1_wr_addr_sync;
293wire [3:0] ipcc_ipdohq1_rd_addr;
294wire ipcs_ipdohq1_wr_en_sync;
295wire [3:0] ipcs_ipdbhq1_wr_addr_sync;
296wire [3:0] ipcc_ipdbhq1_rd_addr;
297wire ipcs_ipdbhq1_wr_en_sync;
298wire [5:0] ipcs_ipdodq1_wr_addr_sync;
299wire [5:0] ipcc_ipdodq1_rd_addr;
300wire ipcs_ipdodq1_wr_en_sync;
301wire [5:0] ipcs_ipdbdq1_wr_addr_sync;
302wire [5:0] ipcc_ipdbdq1_rd_addr;
303wire ipcs_ipdbdq1_wr_en_sync;
304wire [5:0] sii_mb1_addr_r;
305wire [4:0] gnt0_r;
306wire ipcc_ilc_cmd0_l;
307wire l2_io;
308wire [2:0] curbank_r;
309wire ipcc_ilc_cmd1_l;
310wire ipcc_ilc_cmd2_l;
311wire ipcc_ilc_cmd3_l;
312wire ipcc_ilc_cmd4_l;
313wire ipcc_ilc_cmd5_l;
314wire ipcc_ilc_cmd6_l;
315wire ipcc_ilc_cmd7_l;
316wire dmu_tag_en;
317wire dmu_or_dq;
318wire dmu_by_dq;
319wire dma_wr;
320wire dmu_tag_en_lv;
321wire ipcc_ipcs_wrack_lv_pre;
322wire [4:0] gnt_r;
323wire rd_wr;
324wire niu_or_dq;
325wire niu_by_dq;
326wire dmu_or_dq_lv;
327wire ipcc_ipcs_dmu_or_go_lv_pre;
328wire dmu_or_go_pulse;
329wire dmu_by_dq_lv;
330wire ipcc_ipcs_dmu_by_go_lv_pre;
331wire dmu_by_go_pulse;
332wire niu_or_dq_lv;
333wire ipcc_ipcs_niu_or_go_lv_pre;
334wire niu_or_go_pulse;
335wire niu_by_dq_lv;
336wire ipcc_ipcs_niu_by_go_lv_pre;
337wire niu_by_go_pulse;
338wire high_lo;
339wire [4:0] ipcc_ildq_wr_addr0_l;
340wire [4:0] ipcc_ildq_wr_addr1_l;
341wire [4:0] ipcc_ildq_wr_addr2_l;
342wire [4:0] ipcc_ildq_wr_addr3_l;
343wire [4:0] ipcc_ildq_wr_addr4_l;
344wire [4:0] ipcc_ildq_wr_addr5_l;
345wire [4:0] ipcc_ildq_wr_addr6_l;
346wire [4:0] ipcc_ildq_wr_addr7_l;
347wire ipcc_ildq_wr_en0_l;
348wire dma_wr_r;
349wire ipcc_ildq_wr_en1_l;
350wire ipcc_ildq_wr_en2_l;
351wire ipcc_ildq_wr_en3_l;
352wire ipcc_ildq_wr_en4_l;
353wire ipcc_ildq_wr_en5_l;
354wire ipcc_ildq_wr_en6_l;
355wire ipcc_ildq_wr_en7_l;
356wire tcu_go_l;
357wire dmu_wrm_mode;
358wire tcu_go_hld;
359wire tcu_rcv_end;
360wire one_stop;
361wire tcu_go;
362wire tcu_txfr_start_l;
363wire tcu_sii_vld_r;
364wire tcu_txfr_start_r;
365wire [7:0] tcu_rcv_cnt_l;
366wire [7:0] tcu_rcv_cnt;
367wire [127:0] tcu_serial_data_l;
368wire tcu_sii_data_r;
369wire [127:0] tcu_serial_data;
370wire [1:0] tcu_a_parity;
371wire tcu_cmd_parity;
372wire [5:0] tcu_ctag_ecc;
373wire intr_for_tcu;
374wire l2_io_tcu;
375wire tcu_posted;
376wire [15:0] tcu_id;
377wire [2:0] tcu_dma_err;
378wire [3:0] tcu_d_parity;
379wire addr_on;
380wire [5:0] err_sig_l;
381wire sending_r;
382wire niud_pe_l;
383wire niua_pe_l;
384wire niuctag_ue_l;
385wire dmud_pe_l;
386wire dmua_pe_l;
387wire dmuctag_ue_l;
388wire sending_l;
389wire trigger_synd;
390wire [6:0] send_cnt_l;
391wire [6:0] send_cnt_r;
392wire data_phase;
393wire [5:0] err_sig_r;
394wire [63:0] syndrome_l;
395wire [55:0] err_ctag_pa_r;
396wire cmp_io_sync_en;
397wire [63:0] syndrome_r;
398wire [3:0] sii_ncu_syn_data_l;
399wire sii_ncu_syn_vld_l;
400wire ipcc_ipcs_dmu_wrack_p_l;
401wire ctag_ecc_ue;
402wire cmd_parity_err;
403wire cur_source;
404wire dmuctag_ue_r;
405wire dmuctag_ce_l;
406wire ctag_ecc_ce;
407wire dmuctag_ce_r;
408wire addr_parity_err;
409wire dmua_pe_r;
410wire dmud_pe_r;
411wire niuctag_ue_r;
412wire niuctag_ce_l;
413wire niuctag_ce_r;
414wire niua_pe_r;
415wire niud_pe_r;
416wire jtag;
417wire wrm;
418wire data_odd_h;
419wire data_even_h;
420wire data_odd_l;
421wire data_even_l;
422wire be_parity_err;
423wire [67:0] newdata;
424wire [15:0] be;
425wire be_parity;
426wire [5:0] ipcc_indq_wr_addr_r;
427wire [5:0] ipcc_indq_wr_addr_l;
428wire ipcc_indq_wr_en_r;
429wire sii_mb0_ind_wr_en_r;
430wire ipcc_indq_wr_en_l;
431wire l2_io_r;
432wire ipcc_inc_wr_ovfl_l;
433wire [3:0] ipcc_ipdohq0_rd_addr_l;
434wire [3:0] ipcc_ipdbhq0_rd_addr_l;
435wire [5:0] ipcc_ipdodq0_rd_addr_l;
436wire [5:0] ipcc_ipdbdq0_rd_addr_l;
437wire [3:0] ipcc_ipdohq1_rd_addr_l;
438wire [3:0] ipcc_ipdbhq1_rd_addr_l;
439wire [5:0] ipcc_ipdodq1_rd_addr_l;
440wire [5:0] ipcc_ipdbdq1_rd_addr_l;
441wire [4:0] gnt_l;
442wire [1:0] arb1_r;
443wire arb2_dmu_l;
444wire dmu_or_go;
445wire dmu_by_go;
446wire arb2_niu_l;
447wire niu_or_go;
448wire niu_by_go;
449wire [1:0] arb1_l;
450wire [1:0] arb1_hist_r;
451wire dmu_hist_r;
452wire niu_hist_r;
453wire [1:0] arb1_hist_l;
454wire dmu_hist_l;
455wire niu_hist_l;
456wire all_fifo_empty;
457wire [4:0] dmu_or_cnt_r;
458wire [4:0] dmu_by_cnt_r;
459wire [4:0] niu_or_cnt_r;
460wire [4:0] niu_by_cnt_r;
461wire all_stop;
462wire go;
463wire add_dmu_or;
464wire io_cmp_sync_en;
465wire add_dmu_or_pre;
466wire add_dmu_by;
467wire add_dmu_by_pre;
468wire add_niu_or;
469wire add_niu_or_pre;
470wire add_niu_by;
471wire add_niu_by_pre;
472wire [4:0] dmu_or_cnt_l;
473wire [4:0] dmu_by_cnt_l;
474wire [4:0] niu_or_cnt_l;
475wire [4:0] niu_by_cnt_l;
476wire dmu_or_dep_ok;
477wire dmu_by_dep_ok;
478wire niu_or_dep_ok;
479wire niu_by_dep_ok;
480wire dmu_or_wr_inc;
481wire dmu_by_wr_inc;
482wire niu_or_wr_inc;
483wire niu_by_wr_inc;
484wire dmu_or_deq;
485wire dmu_wrm_end;
486wire niu_or_deq;
487wire niu_wrm_mode;
488wire niu_wrm_end;
489wire dmu_wrm_mode_r;
490wire niu_wrm_mode_r;
491wire [1:0] dmu_or_op;
492wire [1:0] dmu_by_op;
493wire [1:0] niu_or_op;
494wire [1:0] niu_by_op;
495wire dmu_or_wr_full;
496wire [1:0] dmu_or_wr_cnt_r;
497wire [1:0] dmu_or_wr_cnt_l;
498wire [3:0] dmu_by_wr_cnt_r;
499wire niu_or_wr_full;
500wire [1:0] niu_or_wr_cnt_r;
501wire [1:0] niu_or_wr_cnt_l;
502wire niu_by_wr_full;
503wire [3:0] niu_by_wr_cnt_r;
504wire [3:0] niu_by_wr_cnt_snap_l;
505wire [3:0] niu_by_wr_cnt_snap_r;
506wire [3:0] niu_by_wr_cnt_dec;
507wire [3:0] dmu_wrm_cnt_r;
508wire ilc_dmu_wrm;
509wire [3:0] niu_wrm_cnt_r;
510wire ilc_niu_wrm;
511wire dmu_wrm_inc;
512wire niu_wrm_inc;
513wire [1:0] dmu_wrm_op;
514wire [1:0] niu_wrm_op;
515wire [3:0] dmu_wrm_cnt_l;
516wire [3:0] niu_wrm_cnt_l;
517wire cur_or_by;
518wire posted;
519wire hdr_err;
520wire out_of_bound;
521wire timeout;
522wire unmap;
523wire uncorr;
524wire wrm_r;
525wire [2:0] curbank;
526wire ncu_sii_pm;
527wire ncu_sii_l2_idx_hash_en;
528wire [4:0] hash1;
529wire [1:0] hash2;
530wire hdr_cycle;
531wire addr_par_odd;
532wire addr_par_even;
533wire [5:0] c;
534wire ncu_sii_ba01;
535wire ncu_sii_ba23;
536wire ncu_sii_ba45;
537wire ncu_sii_ba67;
538wire dmu_all_ack;
539wire niu_all_ack;
540wire [15:0] ipcs_ipcc_dmu_or_dep_sync;
541wire [15:0] ipcs_ipcc_dmu_by_dep_sync;
542wire [15:0] ipcs_ipcc_niu_or_dep_sync;
543wire [15:0] ipcs_ipcc_niu_by_dep_sync;
544wire [13:0] cstate_r;
545wire arc_start_dec;
546wire arc_dec_arb;
547wire arc_arb_hdr;
548wire arc_hdrdly_data1;
549wire arc_hdrdly_rddw;
550wire arc_data1_data2;
551wire arc_data2_data3;
552wire arc_arb_start;
553wire reg_gnt_scanout;
554wire reg_gnt0_scanin;
555wire reg_gnt0_scanout;
556wire reg_cstate_scanin;
557wire reg_cstate_scanout;
558wire reg_err_ctag_pa_scanin;
559wire reg_err_ctag_pa_scanout;
560wire reg_dma_wr_scanin;
561wire reg_dma_wr_scanout;
562wire reg_wrm_scanin;
563wire reg_wrm_scanout;
564wire reg_l2_io_scanin;
565wire reg_l2_io_scanout;
566wire reg_dmu_or_cnt_scanin;
567wire reg_dmu_or_cnt_scanout;
568wire reg_dmu_by_cnt_scanin;
569wire reg_dmu_by_cnt_scanout;
570wire reg_niu_or_cnt_scanin;
571wire reg_niu_or_cnt_scanout;
572wire reg_niu_by_cnt_scanin;
573wire reg_niu_by_cnt_scanout;
574wire reg_indq_wr_addr_scanin;
575wire reg_indq_wr_addr_scanout;
576wire reg_indq_wr_en_scanin;
577wire reg_indq_wr_en_scanout;
578wire ipcc_indq_wr_en_dly;
579wire reg_indq_wr_en_dly_scanin;
580wire reg_indq_wr_en_dly_scanout;
581wire reg_indq_wr_ovfl_scanin;
582wire reg_indq_wr_ovfl_scanout;
583wire reg_arb1_scanin;
584wire reg_arb1_scanout;
585wire reg_dmu_wrm_cnt_scanin;
586wire reg_dmu_wrm_cnt_scanout;
587wire reg_niu_wrm_cnt_scanin;
588wire reg_niu_wrm_cnt_scanout;
589wire reg_dmu_or_wr_cnt_scanin;
590wire reg_dmu_or_wr_cnt_scanout;
591wire reg_dmu_by_wr_cnt_scanin;
592wire reg_dmu_by_wr_cnt_scanout;
593wire reg_niu_or_wr_cnt_scanin;
594wire reg_niu_or_wr_cnt_scanout;
595wire reg_niu_by_wr_cnt_scanin;
596wire reg_niu_by_wr_cnt_scanout;
597wire reg_niu_by_wr_cnt_snap_scanin;
598wire reg_niu_by_wr_cnt_snap_scanout;
599wire reg_ildq_wr_addr0_scanin;
600wire reg_ildq_wr_addr0_scanout;
601wire reg_ildq_wr_addr1_scanin;
602wire reg_ildq_wr_addr1_scanout;
603wire reg_ildq_wr_addr2_scanin;
604wire reg_ildq_wr_addr2_scanout;
605wire reg_ildq_wr_addr3_scanin;
606wire reg_ildq_wr_addr3_scanout;
607wire reg_ildq_wr_addr4_scanin;
608wire reg_ildq_wr_addr4_scanout;
609wire reg_ildq_wr_addr5_scanin;
610wire reg_ildq_wr_addr5_scanout;
611wire reg_ildq_wr_addr6_scanin;
612wire reg_ildq_wr_addr6_scanout;
613wire reg_ildq_wr_addr7_scanin;
614wire reg_ildq_wr_addr7_scanout;
615wire reg_ipdohq0_rd_addr_scanin;
616wire reg_ipdohq0_rd_addr_scanout;
617wire reg_ipdbhq0_rd_addr_scanin;
618wire reg_ipdbhq0_rd_addr_scanout;
619wire reg_ipdohq1_rd_addr_scanin;
620wire reg_ipdohq1_rd_addr_scanout;
621wire reg_ipdbhq1_rd_addr_scanin;
622wire reg_ipdbhq1_rd_addr_scanout;
623wire reg_ipdodq0_rd_addr_scanin;
624wire reg_ipdodq0_rd_addr_scanout;
625wire reg_ipdbdq0_rd_addr_scanin;
626wire reg_ipdbdq0_rd_addr_scanout;
627wire reg_ipdodq1_rd_addr_scanin;
628wire reg_ipdodq1_rd_addr_scanout;
629wire reg_ipdbdq1_rd_addr_scanin;
630wire reg_ipdbdq1_rd_addr_scanout;
631wire reg_curbank_scanin;
632wire reg_curbank_scanout;
633wire reg_dmu_tag_scanin;
634wire reg_dmu_tag_scanout;
635wire [3:0] ipcc_ipcs_dmu_tag_pre;
636wire reg_ipcc_ipcs_dmu_wrack_p_pre_scanin;
637wire reg_ipcc_ipcs_dmu_wrack_p_pre_scanout;
638wire ipcc_ipcs_dmu_wrack_p_pre;
639wire reg_ipcc_ilc_cmd0_scanin;
640wire reg_ipcc_ilc_cmd0_scanout;
641wire reg_ipcc_ilc_cmd1_scanin;
642wire reg_ipcc_ilc_cmd1_scanout;
643wire reg_ipcc_ilc_cmd2_scanin;
644wire reg_ipcc_ilc_cmd2_scanout;
645wire reg_ipcc_ilc_cmd3_scanin;
646wire reg_ipcc_ilc_cmd3_scanout;
647wire reg_ipcc_ilc_cmd4_scanin;
648wire reg_ipcc_ilc_cmd4_scanout;
649wire reg_ipcc_ilc_cmd5_scanin;
650wire reg_ipcc_ilc_cmd5_scanout;
651wire reg_ipcc_ilc_cmd6_scanin;
652wire reg_ipcc_ilc_cmd6_scanout;
653wire reg_ipcc_ilc_cmd7_scanin;
654wire reg_ipcc_ilc_cmd7_scanout;
655wire reg_ipcc_ildq_wr_en0_scanin;
656wire reg_ipcc_ildq_wr_en0_scanout;
657wire reg_ipcc_ildq_wr_en1_scanin;
658wire reg_ipcc_ildq_wr_en1_scanout;
659wire reg_ipcc_ildq_wr_en2_scanin;
660wire reg_ipcc_ildq_wr_en2_scanout;
661wire reg_ipcc_ildq_wr_en3_scanin;
662wire reg_ipcc_ildq_wr_en3_scanout;
663wire reg_ipcc_ildq_wr_en4_scanin;
664wire reg_ipcc_ildq_wr_en4_scanout;
665wire reg_ipcc_ildq_wr_en5_scanin;
666wire reg_ipcc_ildq_wr_en5_scanout;
667wire reg_ipcc_ildq_wr_en6_scanin;
668wire reg_ipcc_ildq_wr_en6_scanout;
669wire reg_ipcc_ildq_wr_en7_scanin;
670wire reg_ipcc_ildq_wr_en7_scanout;
671wire reg_arb1_hist_scanin;
672wire reg_arb1_hist_scanout;
673wire reg_dmu_hist_scanin;
674wire reg_dmu_hist_scanout;
675wire reg_niu_hist_scanin;
676wire reg_niu_hist_scanout;
677wire reg_syndrome_scanin;
678wire reg_syndrome_scanout;
679wire reg_sending_scanin;
680wire reg_sending_scanout;
681wire reg_send_cnt_scanin;
682wire reg_send_cnt_scanout;
683wire reg_err_sig_scanin;
684wire reg_err_sig_scanout;
685wire reg_tcu_serial_data_scanin;
686wire reg_tcu_serial_data_scanout;
687wire reg_tcu_go_scanin;
688wire reg_tcu_go_scanout;
689wire reg_tcu_rcv_cnt_scanin;
690wire reg_tcu_rcv_cnt_scanout;
691wire reg_tcu_txfr_start_scanin;
692wire reg_tcu_txfr_start_scanout;
693wire reg_cmp_io_sync_en_scanin;
694wire reg_cmp_io_sync_en_scanout;
695wire reg_io_cmp_sync_en_scanin;
696wire reg_io_cmp_sync_en_scanout;
697wire reg_sii_ncu_syn_data_scanin;
698wire reg_sii_ncu_syn_data_scanout;
699wire reg_sii_ncu_syn_vld_scanin;
700wire reg_sii_ncu_syn_vld_scanout;
701wire reg_dmuctag_ue_r_scanin;
702wire reg_dmuctag_ue_r_scanout;
703wire reg_dmuctag_ue_scanin;
704wire reg_dmuctag_ue_scanout;
705wire reg_dmuctag_ce_r_scanin;
706wire reg_dmuctag_ce_r_scanout;
707wire reg_dmuctag_ce_scanin;
708wire reg_dmuctag_ce_scanout;
709wire reg_dmua_pe_r_scanin;
710wire reg_dmua_pe_r_scanout;
711wire reg_dmua_pe_scanin;
712wire reg_dmua_pe_scanout;
713wire reg_dmu_de_r_scanin;
714wire reg_dmu_de_r_scanout;
715wire reg_dmu_de_scanin;
716wire reg_dmu_de_scanout;
717wire reg_niuctag_ue_r_scanin;
718wire reg_niuctag_ue_r_scanout;
719wire reg_niuctag_ue_scanin;
720wire reg_niuctag_ue_scanout;
721wire reg_niuctag_ce_r_scanin;
722wire reg_niuctag_ce_r_scanout;
723wire reg_niuctag_ce_scanin;
724wire reg_niuctag_ce_scanout;
725wire reg_niua_pe_r_scanin;
726wire reg_niua_pe_r_scanout;
727wire reg_niua_pe_scanin;
728wire reg_niua_pe_scanout;
729wire reg_niu_de_r_scanin;
730wire reg_niu_de_r_scanout;
731wire reg_niu_de_scanin;
732wire reg_niu_de_scanout;
733wire reg_ipcs_ipdohq0_wr_addr_scanin;
734wire reg_ipcs_ipdohq0_wr_addr_scanout;
735wire reg_ipcs_ipdbhq0_wr_addr_scanin;
736wire reg_ipcs_ipdbhq0_wr_addr_scanout;
737wire reg_ipcs_ipdodq0_wr_addr_scanin;
738wire reg_ipcs_ipdodq0_wr_addr_scanout;
739wire reg_ipcs_ipdbdq0_wr_addr_scanin;
740wire reg_ipcs_ipdbdq0_wr_addr_scanout;
741wire reg_ipcs_ipdohq0_wr_en_scanin;
742wire reg_ipcs_ipdohq0_wr_en_scanout;
743wire reg_ipcs_ipdbhq0_wr_en_scanin;
744wire reg_ipcs_ipdbhq0_wr_en_scanout;
745wire reg_ipcs_ipdodq0_wr_en_scanin;
746wire reg_ipcs_ipdodq0_wr_en_scanout;
747wire reg_ipcs_ipdbdq0_wr_en_scanin;
748wire reg_ipcs_ipdbdq0_wr_en_scanout;
749wire reg_ipcs_ipdohq1_wr_addr_scanin;
750wire reg_ipcs_ipdohq1_wr_addr_scanout;
751wire reg_ipcs_ipdbhq1_wr_addr_scanin;
752wire reg_ipcs_ipdbhq1_wr_addr_scanout;
753wire reg_ipcs_ipdodq1_wr_addr_scanin;
754wire reg_ipcs_ipdodq1_wr_addr_scanout;
755wire reg_ipcs_ipdbdq1_wr_addr_scanin;
756wire reg_ipcs_ipdbdq1_wr_addr_scanout;
757wire reg_ipcs_ipdohq1_wr_en_scanin;
758wire reg_ipcs_ipdohq1_wr_en_scanout;
759wire reg_ipcs_ipdbhq1_wr_en_scanin;
760wire reg_ipcs_ipdbhq1_wr_en_scanout;
761wire reg_ipcs_ipdodq1_wr_en_scanin;
762wire reg_ipcs_ipdodq1_wr_en_scanout;
763wire reg_ipcs_ipdbdq1_wr_en_scanin;
764wire reg_ipcs_ipdbdq1_wr_en_scanout;
765wire reg_ipcs_ipcc_dmu_or_dep_scanin;
766wire reg_ipcs_ipcc_dmu_or_dep_scanout;
767wire reg_ipcs_ipcc_dmu_by_dep_scanin;
768wire reg_ipcs_ipcc_dmu_by_dep_scanout;
769wire reg_ipcs_ipcc_niu_or_dep_scanin;
770wire reg_ipcs_ipcc_niu_or_dep_scanout;
771wire reg_ipcs_ipcc_niu_by_dep_scanin;
772wire reg_ipcs_ipcc_niu_by_dep_scanout;
773wire reg_add_dmu_or_scanin;
774wire reg_add_dmu_or_scanout;
775wire reg_add_dmu_by_scanin;
776wire reg_add_dmu_by_scanout;
777wire reg_add_niu_or_scanin;
778wire reg_add_niu_or_scanout;
779wire reg_add_niu_by_scanin;
780wire reg_add_niu_by_scanout;
781wire reg_ncu_sii_pm_scanin;
782wire reg_ncu_sii_pm_scanout;
783wire reg_ncu_sii_ba01_scanin;
784wire reg_ncu_sii_ba01_scanout;
785wire reg_ncu_sii_ba23_scanin;
786wire reg_ncu_sii_ba23_scanout;
787wire reg_ncu_sii_ba45_scanin;
788wire reg_ncu_sii_ba45_scanout;
789wire reg_ncu_sii_ba67_scanin;
790wire reg_ncu_sii_ba67_scanout;
791wire reg_ncu_sii_l2_idx_hash_en_scanin;
792wire reg_ncu_sii_l2_idx_hash_en_scanout;
793wire reg_ipcc_ipcs_dmu_tag_scanin;
794wire reg_ipcc_ipcs_dmu_tag_scanout;
795wire reg_ipcc_ipcs_wrack_lv_scanin;
796wire reg_ipcc_ipcs_wrack_lv_scanout;
797wire reg_ipcc_ipcs_dmu_wrack_p_scanin;
798wire reg_ipcc_ipcs_dmu_wrack_p_scanout;
799wire reg_wrack_lv_scanin;
800wire reg_wrack_lv_scanout;
801wire reg_dmu_wrm_mode_scanin;
802wire reg_dmu_wrm_mode_scanout;
803wire reg_niu_wrm_mode_scanin;
804wire reg_niu_wrm_mode_scanout;
805wire reg_dmu_or_dq_pre_scanin;
806wire reg_dmu_or_dq_pre_scanout;
807wire reg_dmu_or_dq_scanin;
808wire reg_dmu_or_dq_scanout;
809wire reg_dmu_by_dq_pre_scanin;
810wire reg_dmu_by_dq_pre_scanout;
811wire reg_dmu_by_dq_scanin;
812wire reg_dmu_by_dq_scanout;
813wire reg_niu_or_dq_pre_scanin;
814wire reg_niu_or_dq_pre_scanout;
815wire reg_niu_or_dq_scanin;
816wire reg_niu_or_dq_scanout;
817wire reg_niu_by_dq_pre_scanin;
818wire reg_niu_by_dq_pre_scanout;
819wire reg_niu_by_dq_scanin;
820wire reg_niu_by_dq_scanout;
821wire reg_sync_dmu_or_rd_ptr_pre_scanin;
822wire reg_sync_dmu_or_rd_ptr_pre_scanout;
823wire [3:0] ipcc_ipcs_dmu_or_ptr_pre;
824wire reg_sync_dmu_or_rd_ptr_scanin;
825wire reg_sync_dmu_or_rd_ptr_scanout;
826wire reg_sync_dmu_by_rd_ptr_pre_scanin;
827wire reg_sync_dmu_by_rd_ptr_pre_scanout;
828wire [3:0] ipcc_ipcs_dmu_by_ptr_pre;
829wire reg_sync_dmu_by_rd_ptr_scanin;
830wire reg_sync_dmu_by_rd_ptr_scanout;
831wire reg_sync_niu_or_rd_ptr_pre_scanin;
832wire reg_sync_niu_or_rd_ptr_pre_scanout;
833wire [3:0] ipcc_ipcs_niu_or_ptr_pre;
834wire reg_sync_niu_or_rd_ptr_scanin;
835wire reg_sync_niu_or_rd_ptr_scanout;
836wire reg_sync_niu_by_rd_ptr_pre_scanin;
837wire reg_sync_niu_by_rd_ptr_pre_scanout;
838wire [3:0] ipcc_ipcs_niu_by_ptr_pre;
839wire reg_sync_niu_by_rd_ptr_scanin;
840wire reg_sync_niu_by_rd_ptr_scanout;
841wire reg_sii_mb1_run_scanin;
842wire reg_sii_mb1_run_scanout;
843wire reg_sii_mb1_addr_scanin;
844wire reg_sii_mb1_addr_scanout;
845wire reg_sii_mb1_ipdohq0_rd_en_scanin;
846wire reg_sii_mb1_ipdohq0_rd_en_scanout;
847wire reg_sii_mb1_ipdbhq0_rd_en_scanin;
848wire reg_sii_mb1_ipdbhq0_rd_en_scanout;
849wire reg_sii_mb1_ipdodq0_rd_en_scanin;
850wire reg_sii_mb1_ipdodq0_rd_en_scanout;
851wire reg_sii_mb1_ipdbdq0_rd_en_scanin;
852wire reg_sii_mb1_ipdbdq0_rd_en_scanout;
853wire reg_sii_mb1_ipdohq1_rd_en_scanin;
854wire reg_sii_mb1_ipdohq1_rd_en_scanout;
855wire reg_sii_mb1_ipdbhq1_rd_en_scanin;
856wire reg_sii_mb1_ipdbhq1_rd_en_scanout;
857wire reg_sii_mb1_ipdodq1_rd_en_scanin;
858wire reg_sii_mb1_ipdodq1_rd_en_scanout;
859wire reg_sii_mb1_ipdbdq1_rd_en_scanin;
860wire reg_sii_mb1_ipdbdq1_rd_en_scanout;
861wire reg_sii_mb0_run_scanin;
862wire reg_sii_mb0_run_scanout;
863wire reg_sii_mb0_addr_scanin;
864wire reg_sii_mb0_addr_scanout;
865wire reg_sii_mb0_wr_en_scanin;
866wire reg_sii_mb0_wr_en_scanout;
867wire reg_sii_mb0_ind_wr_en_scanin;
868wire reg_sii_mb0_ind_wr_en_scanout;
869wire reg_tcu_sii_data_scanin;
870wire reg_tcu_sii_data_scanout;
871wire reg_tcu_sii_vld_scanin;
872wire reg_tcu_sii_vld_scanout;
873
874
875//------signals b/w ILC-------
876input ilc_ipcc_stop0;
877input ilc_ipcc_stop1;
878input ilc_ipcc_stop2;
879input ilc_ipcc_stop3;
880input ilc_ipcc_stop4;
881input ilc_ipcc_stop5;
882input ilc_ipcc_stop6;
883input ilc_ipcc_stop7;
884
885input ilc_ipcc_dmu_wrm0;
886input ilc_ipcc_dmu_wrm1;
887input ilc_ipcc_dmu_wrm2;
888input ilc_ipcc_dmu_wrm3;
889input ilc_ipcc_dmu_wrm4;
890input ilc_ipcc_dmu_wrm5;
891input ilc_ipcc_dmu_wrm6;
892input ilc_ipcc_dmu_wrm7;
893
894input ilc_ipcc_niu_wrm0;
895input ilc_ipcc_niu_wrm1;
896input ilc_ipcc_niu_wrm2;
897input ilc_ipcc_niu_wrm3;
898input ilc_ipcc_niu_wrm4;
899input ilc_ipcc_niu_wrm5;
900input ilc_ipcc_niu_wrm6;
901input ilc_ipcc_niu_wrm7;
902
903input ilc_ipcc_dmu_wrm_dq0;
904input ilc_ipcc_dmu_wrm_dq1;
905input ilc_ipcc_dmu_wrm_dq2;
906input ilc_ipcc_dmu_wrm_dq3;
907input ilc_ipcc_dmu_wrm_dq4;
908input ilc_ipcc_dmu_wrm_dq5;
909input ilc_ipcc_dmu_wrm_dq6;
910input ilc_ipcc_dmu_wrm_dq7;
911
912input ilc_ipcc_niu_wrm_dq0;
913input ilc_ipcc_niu_wrm_dq1;
914input ilc_ipcc_niu_wrm_dq2;
915input ilc_ipcc_niu_wrm_dq3;
916input ilc_ipcc_niu_wrm_dq4;
917input ilc_ipcc_niu_wrm_dq5;
918input ilc_ipcc_niu_wrm_dq6;
919input ilc_ipcc_niu_wrm_dq7;
920
921output ipcc_ilc_cmd0;
922output ipcc_ilc_cmd1;
923output ipcc_ilc_cmd2;
924output ipcc_ilc_cmd3;
925output ipcc_ilc_cmd4;
926output ipcc_ilc_cmd5;
927output ipcc_ilc_cmd6;
928output ipcc_ilc_cmd7;
929
930
931//------signals b/w INC-------
932input array_wr_inhibit_cmp;
933input array_wr_inhibit_io;
934output array_wr_inhibit;
935input inc_ipcc_stop; //l2clk
936input ncu_sii_pm_in; //partial mode
937input ncu_sii_ba01_in; //partial mode
938input ncu_sii_ba23_in; //partial mode
939input ncu_sii_ba45_in; //partial mode
940input ncu_sii_ba67_in; //partial mode
941input ncu_sii_l2_idx_hash_en_in; //index hashing mode, default is 1
942output sii_ncu_niuctag_ue;
943output sii_ncu_niuctag_ce;
944output sii_ncu_niua_pe;
945output sii_ncu_niud_pe;
946output sii_ncu_dmuctag_ue;
947output sii_ncu_dmuctag_ce;
948output sii_ncu_dmua_pe;
949output sii_ncu_dmud_pe;
950output [3:0] sii_ncu_syn_data;
951output sii_ncu_syn_vld;
952
953
954//------signals b/w DMU-------
955//output sii_dmu_oqdq;
956//output sii_dmu_bqdq;
957
958//------signals b/w OLCC-------
959input sio_sii_opcc_ipcc_dmu_or_deq_r;
960input sio_sii_opcc_ipcc_dmu_by_deq_r;
961input sio_sii_opcc_ipcc_niu_or_deq_r;
962input sio_sii_opcc_ipcc_niu_by_deq_r;
963input [3:0] sio_sii_opcc_ipcc_dmu_by_cnt_r;
964input [3:0] sio_sii_opcc_ipcc_niu_by_cnt_r;
965
966//------signals b/w IPCS_DP -------
967output [2:0] data_sel;
968output [4:0] gnt0_r_m;
969output hdr_data_sel;
970output [63:0] newhdr_l2;
971output [63:0] newhdr_nc;
972output [5:0] new_c;
973output data_parity_err;
974input [84:0] ipcc_dp_par_data;
975input [71:0] curhdr;
976output [71:0] tcu_hdr;
977output [63:0] tcu_data;
978output [11:0] tcu_be_par;
979
980//------signals b/w IPCS -------
981output ipcc_ipcs_dmu_or_go_lv; //asserted at the end of transfer
982output ipcc_ipcs_dmu_by_go_lv; //when a packet being dequeue
983output [3:0] ipcc_ipcs_dmu_or_ptr;
984output [3:0] ipcc_ipcs_dmu_by_ptr;
985output [3:0] ipcc_ipcs_dmu_tag; // for dmu to keep track of credit info
986output ipcc_ipcs_wrack_lv; //all the *_go will cross clk domain
987output ipcc_ipcs_dmu_wrack_p; //all the *_go will cross clk domain
988output ipcc_ipcs_niu_or_go_lv; //all the *_go will cross clk domain
989output ipcc_ipcs_niu_by_go_lv; //level signal whenever a internal dq pulse created
990output [3:0] ipcc_ipcs_niu_or_ptr;
991output [3:0] ipcc_ipcs_niu_by_ptr;
992input [15:0] ipcs_ipcc_dmu_or_dep;
993input [15:0] ipcs_ipcc_dmu_by_dep;
994input [15:0] ipcs_ipcc_niu_or_dep;
995input [15:0] ipcs_ipcc_niu_by_dep;
996input ipcs_ipcc_add_dmu_or;
997input ipcs_ipcc_add_dmu_by;
998input ipcs_ipcc_add_niu_or;
999input ipcs_ipcc_add_niu_by;
1000
1001//------ mbist related signal -------
1002input sii_mb0_run;
1003input [5:0] sii_mb0_addr;
1004input sii_mb0_wr_en;
1005input sii_mb0_ind_wr_en;
1006
1007input [3:0] sii_mb1_1of4ipd_sel;
1008input sii_mb1_ipd_data_or_hdr_sel;
1009input sii_mb1_ipd_data_hibits_sel;
1010
1011input sii_mb1_run;
1012output sii_mb1_run_r;
1013input [5:0] sii_mb1_addr;
1014input sii_mb1_ipdohq0_rd_en;
1015input sii_mb1_ipdbhq0_rd_en;
1016input sii_mb1_ipdodq0_rd_en;
1017input sii_mb1_ipdbdq0_rd_en;
1018input sii_mb1_ipdohq1_rd_en;
1019input sii_mb1_ipdbhq1_rd_en;
1020input sii_mb1_ipdodq1_rd_en;
1021input sii_mb1_ipdbdq1_rd_en;
1022
1023
1024//------ writing to fifo ildq and indq ----
1025output [4:0] ipcc_ildq_wr_addr0_m;
1026output [4:0] ipcc_ildq_wr_addr1_m;
1027output [4:0] ipcc_ildq_wr_addr2_m;
1028output [4:0] ipcc_ildq_wr_addr3_m;
1029output [4:0] ipcc_ildq_wr_addr4_m;
1030output [4:0] ipcc_ildq_wr_addr5_m;
1031output [4:0] ipcc_ildq_wr_addr6_m;
1032output [4:0] ipcc_ildq_wr_addr7_m;
1033output ipcc_ildq_wr_en0_m;
1034output ipcc_ildq_wr_en1_m;
1035output ipcc_ildq_wr_en2_m;
1036output ipcc_ildq_wr_en3_m;
1037output ipcc_ildq_wr_en4_m;
1038output ipcc_ildq_wr_en5_m;
1039output ipcc_ildq_wr_en6_m;
1040output ipcc_ildq_wr_en7_m;
1041
1042output [4:0] ipcc_ildq_wr_addr0;
1043output [4:0] ipcc_ildq_wr_addr1;
1044output [4:0] ipcc_ildq_wr_addr2;
1045output [4:0] ipcc_ildq_wr_addr3;
1046output [4:0] ipcc_ildq_wr_addr4;
1047output [4:0] ipcc_ildq_wr_addr5;
1048output [4:0] ipcc_ildq_wr_addr6;
1049output [4:0] ipcc_ildq_wr_addr7;
1050output ipcc_ildq_wr_en0;
1051output ipcc_ildq_wr_en1;
1052output ipcc_ildq_wr_en2;
1053output ipcc_ildq_wr_en3;
1054output ipcc_ildq_wr_en4;
1055output ipcc_ildq_wr_en5;
1056output ipcc_ildq_wr_en6;
1057output ipcc_ildq_wr_en7;
1058
1059output [5:0] ipcc_indq_wr_addr; //cmp_clk
1060output ipcc_indq_wr_en; //cmp_clk
1061output ipcc_inc_wr_ovfl; //for checking empty/full of fifo
1062
1063//------ reading from register file ipds -------
1064input ipdohq0_dout58;
1065input ipdbhq0_dout58;
1066input ipdohq1_dout58;
1067input ipdbhq1_dout58;
1068
1069input [2:0] dmu_or_bank_ext;
1070input [2:0] dmu_by_bank_ext;
1071input [2:0] niu_or_bank_ext;
1072input [2:0] niu_by_bank_ext;
1073
1074output [5:0] ipcc_ipdodq0_rd_addr_m; //dmu ordered data queue
1075output [5:0] ipcc_ipdbdq0_rd_addr_m;
1076output [3:0] ipcc_ipdohq0_rd_addr_m; //dmu ordered header queue
1077output [3:0] ipcc_ipdbhq0_rd_addr_m;
1078output ipcc_ipdohq0_rd_en_m;
1079output ipcc_ipdbhq0_rd_en_m;
1080output ipcc_ipdodq0_rd_en_m;
1081output ipcc_ipdbdq0_rd_en_m;
1082input ipcs_ipdohq0_wr_en;
1083input ipcs_ipdbhq0_wr_en;
1084input ipcs_ipdodq0_wr_en;
1085input ipcs_ipdbdq0_wr_en;
1086input [3:0] ipcs_ipdohq0_wr_addr;
1087input [3:0] ipcs_ipdbhq0_wr_addr;
1088input [5:0] ipcs_ipdodq0_wr_addr;
1089input [5:0] ipcs_ipdbdq0_wr_addr;
1090
1091output [5:0] ipcc_ipdodq1_rd_addr_m; //ethernet ordered data queue
1092output [5:0] ipcc_ipdbdq1_rd_addr_m;
1093output [3:0] ipcc_ipdohq1_rd_addr_m; //ethernet ordered header queue
1094output [3:0] ipcc_ipdbhq1_rd_addr_m;
1095output ipcc_ipdohq1_rd_en_m;
1096output ipcc_ipdbhq1_rd_en_m;
1097output ipcc_ipdodq1_rd_en_m;
1098output ipcc_ipdbdq1_rd_en_m;
1099input [3:0] ipcs_ipdohq1_wr_addr;
1100input [3:0] ipcs_ipdbhq1_wr_addr;
1101input [5:0] ipcs_ipdodq1_wr_addr;
1102input [5:0] ipcs_ipdbdq1_wr_addr;
1103input ipcs_ipdohq1_wr_en;
1104input ipcs_ipdbhq1_wr_en;
1105input ipcs_ipdodq1_wr_en;
1106input ipcs_ipdbdq1_wr_en;
1107
1108input l2clk;
1109input io_cmp_sync_en_in;
1110input cmp_io_sync_en_in;
1111input scan_in ;
1112output scan_out;
1113input tcu_scan_en;
1114input tcu_sii_data;
1115input tcu_sii_vld;
1116input tcu_aclk;
1117input tcu_bclk;
1118input tcu_pce_ov;
1119input tcu_clk_stop;
1120
1121
1122reg [2:0] data_sel;
1123reg [2:0] partialbank;
1124reg [3:0] niu_by_wr_cnt_l;
1125reg [3:0] dmu_by_wr_cnt_l;
1126
1127reg [2:0] dmu_or_bank;
1128reg [2:0] dmu_by_bank;
1129reg [2:0] niu_or_bank;
1130reg [2:0] niu_by_bank;
1131
1132reg [15:0] newid;
1133reg [5:0] new_c;
1134reg [5:0] p;
1135reg [5:0] e;
1136//************************************************************************
1137// SCAN CONNECTIONS
1138//************************************************************************
1139
1140 // scan renames
1141assign se = tcu_scan_en;
1142assign siclk = tcu_aclk;
1143assign soclk = tcu_bclk;
1144assign pce_ov = tcu_pce_ov;
1145assign stop = tcu_clk_stop;
1146 // end scan
1147
1148
1149sii_ipcc_ctll1clkhdr_ctl_macro clkgen (
1150 .l2clk (l2clk ),
1151 .l1en (1'b1 ),
1152 .l1clk (l1clk ),
1153 .pce_ov(pce_ov),
1154 .stop(stop),
1155 .se(se)
1156 );
1157// Spare gate
1158//spare_ctl_macro spares (num=10) (
1159// .scan_in(spares_scanin),
1160// .scan_out(spares_scanout),
1161// .l1clk (l1clk)
1162//);
1163
1164wire tcu_rcv_end_hld;
1165wire tcu_rcv_end_r;
1166wire si_0;
1167wire so_0;
1168wire spare0_flop_unused;
1169wire spare0_buf_32x_unused;
1170wire spare0_nand3_8x_unused;
1171wire spare0_inv_8x_unused;
1172wire spare0_aoi22_4x_unused;
1173wire spare0_buf_8x_unused;
1174wire spare0_oai22_4x_unused;
1175wire spare0_inv_16x_unused;
1176wire spare0_nand2_16x_unused;
1177wire spare0_nor3_4x_unused;
1178wire spare0_nand2_8x_unused;
1179wire spare0_buf_16x_unused;
1180wire spare0_nor2_16x_unused;
1181wire spare0_inv_32x_unused;
1182wire si_1;
1183wire so_1;
1184wire spare1_flop_unused;
1185wire spare1_buf_32x_unused;
1186wire spare1_nand3_8x_unused;
1187wire spare1_inv_8x_unused;
1188wire spare1_aoi22_4x_unused;
1189wire spare1_buf_8x_unused;
1190wire spare1_oai22_4x_unused;
1191wire spare1_inv_16x_unused;
1192wire spare1_nand2_16x_unused;
1193wire spare1_nor3_4x_unused;
1194wire spare1_nand2_8x_unused;
1195wire spare1_buf_16x_unused;
1196wire spare1_nor2_16x_unused;
1197wire spare1_inv_32x_unused;
1198wire si_2;
1199wire so_2;
1200wire spare2_flop_unused;
1201wire spare2_buf_32x_unused;
1202wire spare2_nand3_8x_unused;
1203wire spare2_inv_8x_unused;
1204wire spare2_aoi22_4x_unused;
1205wire spare2_buf_8x_unused;
1206wire spare2_oai22_4x_unused;
1207wire spare2_inv_16x_unused;
1208wire spare2_nand2_16x_unused;
1209wire spare2_nor3_4x_unused;
1210wire spare2_nand2_8x_unused;
1211wire spare2_buf_16x_unused;
1212wire spare2_nor2_16x_unused;
1213wire spare2_inv_32x_unused;
1214wire si_3;
1215wire so_3;
1216wire spare3_flop_unused;
1217wire spare3_buf_32x_unused;
1218wire spare3_nand3_8x_unused;
1219wire spare3_inv_8x_unused;
1220wire spare3_aoi22_4x_unused;
1221wire spare3_buf_8x_unused;
1222wire spare3_oai22_4x_unused;
1223wire spare3_inv_16x_unused;
1224wire spare3_nand2_16x_unused;
1225wire spare3_nor3_4x_unused;
1226wire spare3_nand2_8x_unused;
1227wire spare3_buf_16x_unused;
1228wire spare3_nor2_16x_unused;
1229wire spare3_inv_32x_unused;
1230wire si_4;
1231wire so_4;
1232wire spare4_flop_unused;
1233wire spare4_buf_32x_unused;
1234wire spare4_nand3_8x_unused;
1235wire spare4_inv_8x_unused;
1236wire spare4_aoi22_4x_unused;
1237wire spare4_buf_8x_unused;
1238wire spare4_oai22_4x_unused;
1239wire spare4_inv_16x_unused;
1240wire spare4_nand2_16x_unused;
1241wire spare4_nor3_4x_unused;
1242wire spare4_nand2_8x_unused;
1243wire spare4_buf_16x_unused;
1244wire spare4_nor2_16x_unused;
1245wire spare4_inv_32x_unused;
1246wire si_5;
1247wire so_5;
1248wire spare5_buf_32x_unused;
1249wire spare5_nand3_8x_unused;
1250wire spare5_inv_8x_unused;
1251wire spare5_aoi22_4x_unused;
1252wire spare5_buf_8x_unused;
1253wire spare5_oai22_4x_unused;
1254wire spare5_inv_16x_unused;
1255wire spare5_nand2_16x_unused;
1256wire spare5_nor3_4x_unused;
1257wire spare5_nand2_8x_unused;
1258wire spare5_buf_16x_unused;
1259wire spare5_nor2_16x_unused;
1260wire spare5_inv_32x_unused;
1261wire si_6;
1262wire so_6;
1263wire spare6_flop_unused;
1264wire spare6_buf_32x_unused;
1265wire spare6_nand3_8x_unused;
1266wire spare6_inv_8x_unused;
1267wire spare6_aoi22_4x_unused;
1268wire spare6_buf_8x_unused;
1269wire spare6_oai22_4x_unused;
1270wire spare6_inv_16x_unused;
1271wire spare6_nand2_16x_unused;
1272wire spare6_nor3_4x_unused;
1273wire spare6_nand2_8x_unused;
1274wire spare6_buf_16x_unused;
1275wire spare6_nor2_16x_unused;
1276wire spare6_inv_32x_unused;
1277wire si_7;
1278wire so_7;
1279wire spare7_flop_unused;
1280wire spare7_buf_32x_unused;
1281wire spare7_nand3_8x_unused;
1282wire spare7_inv_8x_unused;
1283wire spare7_aoi22_4x_unused;
1284wire spare7_buf_8x_unused;
1285wire spare7_oai22_4x_unused;
1286wire spare7_inv_16x_unused;
1287wire spare7_nand2_16x_unused;
1288wire spare7_nor3_4x_unused;
1289wire spare7_nand2_8x_unused;
1290wire spare7_buf_16x_unused;
1291wire spare7_nor2_16x_unused;
1292wire spare7_inv_32x_unused;
1293wire si_8;
1294wire so_8;
1295wire spare8_flop_unused;
1296wire spare8_buf_32x_unused;
1297wire spare8_nand3_8x_unused;
1298wire spare8_inv_8x_unused;
1299wire spare8_aoi22_4x_unused;
1300wire spare8_buf_8x_unused;
1301wire spare8_oai22_4x_unused;
1302wire spare8_inv_16x_unused;
1303wire spare8_nand2_16x_unused;
1304wire spare8_nor3_4x_unused;
1305wire spare8_nand2_8x_unused;
1306wire spare8_buf_16x_unused;
1307wire spare8_nor2_16x_unused;
1308wire spare8_inv_32x_unused;
1309wire si_9;
1310wire so_9;
1311wire spare9_flop_unused;
1312wire spare9_buf_32x_unused;
1313wire spare9_nand3_8x_unused;
1314wire spare9_inv_8x_unused;
1315wire spare9_aoi22_4x_unused;
1316wire spare9_buf_8x_unused;
1317wire spare9_oai22_4x_unused;
1318wire spare9_inv_16x_unused;
1319wire spare9_nand2_16x_unused;
1320wire spare9_nor3_4x_unused;
1321wire spare9_nand2_8x_unused;
1322wire spare9_buf_16x_unused;
1323wire spare9_nor2_16x_unused;
1324wire spare9_inv_32x_unused;
1325
1326
1327cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
1328 .siclk(siclk),
1329 .soclk(soclk),
1330 .si(si_0),
1331 .so(so_0),
1332 .d(1'b0),
1333 .q(spare0_flop_unused));
1334assign si_0 = scan_in;
1335
1336cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
1337 .out(spare0_buf_32x_unused));
1338cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
1339 .in1(1'b1),
1340 .in2(1'b1),
1341 .out(spare0_nand3_8x_unused));
1342cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
1343 .out(spare0_inv_8x_unused));
1344cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
1345 .in01(1'b1),
1346 .in10(1'b1),
1347 .in11(1'b1),
1348 .out(spare0_aoi22_4x_unused));
1349cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
1350 .out(spare0_buf_8x_unused));
1351cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
1352 .in01(1'b1),
1353 .in10(1'b1),
1354 .in11(1'b1),
1355 .out(spare0_oai22_4x_unused));
1356cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
1357 .out(spare0_inv_16x_unused));
1358cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
1359 .in1(1'b1),
1360 .out(spare0_nand2_16x_unused));
1361cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
1362 .in1(1'b0),
1363 .in2(1'b0),
1364 .out(spare0_nor3_4x_unused));
1365cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
1366 .in1(1'b1),
1367 .out(spare0_nand2_8x_unused));
1368cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
1369 .out(spare0_buf_16x_unused));
1370cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
1371 .in1(1'b0),
1372 .out(spare0_nor2_16x_unused));
1373cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
1374 .out(spare0_inv_32x_unused));
1375
1376cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
1377 .siclk(siclk),
1378 .soclk(soclk),
1379 .si(si_1),
1380 .so(so_1),
1381 .d(1'b0),
1382 .q(spare1_flop_unused));
1383assign si_1 = so_0;
1384
1385cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
1386 .out(spare1_buf_32x_unused));
1387cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
1388 .in1(1'b1),
1389 .in2(1'b1),
1390 .out(spare1_nand3_8x_unused));
1391cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
1392 .out(spare1_inv_8x_unused));
1393cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
1394 .in01(1'b1),
1395 .in10(1'b1),
1396 .in11(1'b1),
1397 .out(spare1_aoi22_4x_unused));
1398cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
1399 .out(spare1_buf_8x_unused));
1400cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
1401 .in01(1'b1),
1402 .in10(1'b1),
1403 .in11(1'b1),
1404 .out(spare1_oai22_4x_unused));
1405cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
1406 .out(spare1_inv_16x_unused));
1407cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
1408 .in1(1'b1),
1409 .out(spare1_nand2_16x_unused));
1410cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
1411 .in1(1'b0),
1412 .in2(1'b0),
1413 .out(spare1_nor3_4x_unused));
1414cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
1415 .in1(1'b1),
1416 .out(spare1_nand2_8x_unused));
1417cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
1418 .out(spare1_buf_16x_unused));
1419cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
1420 .in1(1'b0),
1421 .out(spare1_nor2_16x_unused));
1422cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
1423 .out(spare1_inv_32x_unused));
1424
1425cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
1426 .siclk(siclk),
1427 .soclk(soclk),
1428 .si(si_2),
1429 .so(so_2),
1430 .d(1'b0),
1431 .q(spare2_flop_unused));
1432assign si_2 = so_1;
1433
1434cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
1435 .out(spare2_buf_32x_unused));
1436cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
1437 .in1(1'b1),
1438 .in2(1'b1),
1439 .out(spare2_nand3_8x_unused));
1440cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
1441 .out(spare2_inv_8x_unused));
1442cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
1443 .in01(1'b1),
1444 .in10(1'b1),
1445 .in11(1'b1),
1446 .out(spare2_aoi22_4x_unused));
1447cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
1448 .out(spare2_buf_8x_unused));
1449cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
1450 .in01(1'b1),
1451 .in10(1'b1),
1452 .in11(1'b1),
1453 .out(spare2_oai22_4x_unused));
1454cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
1455 .out(spare2_inv_16x_unused));
1456cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
1457 .in1(1'b1),
1458 .out(spare2_nand2_16x_unused));
1459cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
1460 .in1(1'b0),
1461 .in2(1'b0),
1462 .out(spare2_nor3_4x_unused));
1463cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
1464 .in1(1'b1),
1465 .out(spare2_nand2_8x_unused));
1466cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
1467 .out(spare2_buf_16x_unused));
1468cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
1469 .in1(1'b0),
1470 .out(spare2_nor2_16x_unused));
1471cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
1472 .out(spare2_inv_32x_unused));
1473
1474cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
1475 .siclk(siclk),
1476 .soclk(soclk),
1477 .si(si_3),
1478 .so(so_3),
1479 .d(1'b0),
1480 .q(spare3_flop_unused));
1481assign si_3 = so_2;
1482
1483cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
1484 .out(spare3_buf_32x_unused));
1485cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
1486 .in1(1'b1),
1487 .in2(1'b1),
1488 .out(spare3_nand3_8x_unused));
1489cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
1490 .out(spare3_inv_8x_unused));
1491cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
1492 .in01(1'b1),
1493 .in10(1'b1),
1494 .in11(1'b1),
1495 .out(spare3_aoi22_4x_unused));
1496cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
1497 .out(spare3_buf_8x_unused));
1498cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
1499 .in01(1'b1),
1500 .in10(1'b1),
1501 .in11(1'b1),
1502 .out(spare3_oai22_4x_unused));
1503cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
1504 .out(spare3_inv_16x_unused));
1505cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
1506 .in1(1'b1),
1507 .out(spare3_nand2_16x_unused));
1508cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
1509 .in1(1'b0),
1510 .in2(1'b0),
1511 .out(spare3_nor3_4x_unused));
1512cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
1513 .in1(1'b1),
1514 .out(spare3_nand2_8x_unused));
1515cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
1516 .out(spare3_buf_16x_unused));
1517cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
1518 .in1(1'b0),
1519 .out(spare3_nor2_16x_unused));
1520cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
1521 .out(spare3_inv_32x_unused));
1522
1523cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
1524 .siclk(siclk),
1525 .soclk(soclk),
1526 .si(si_4),
1527 .so(so_4),
1528 .d(1'b0),
1529 .q(spare4_flop_unused));
1530assign si_4 = so_3;
1531
1532cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
1533 .out(spare4_buf_32x_unused));
1534cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
1535 .in1(1'b1),
1536 .in2(1'b1),
1537 .out(spare4_nand3_8x_unused));
1538cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
1539 .out(spare4_inv_8x_unused));
1540cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
1541 .in01(1'b1),
1542 .in10(1'b1),
1543 .in11(1'b1),
1544 .out(spare4_aoi22_4x_unused));
1545cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
1546 .out(spare4_buf_8x_unused));
1547cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
1548 .in01(1'b1),
1549 .in10(1'b1),
1550 .in11(1'b1),
1551 .out(spare4_oai22_4x_unused));
1552cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
1553 .out(spare4_inv_16x_unused));
1554cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
1555 .in1(1'b1),
1556 .out(spare4_nand2_16x_unused));
1557cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
1558 .in1(1'b0),
1559 .in2(1'b0),
1560 .out(spare4_nor3_4x_unused));
1561cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
1562 .in1(1'b1),
1563 .out(spare4_nand2_8x_unused));
1564cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
1565 .out(spare4_buf_16x_unused));
1566cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
1567 .in1(1'b0),
1568 .out(spare4_nor2_16x_unused));
1569cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
1570 .out(spare4_inv_32x_unused));
1571
1572cl_sc1_msff_8x spare5_flop (.l1clk(l1clk),
1573 .siclk(siclk),
1574 .soclk(soclk),
1575 .si(si_5),
1576 .so(so_5),
1577 .d(tcu_rcv_end_hld),
1578 .q(tcu_rcv_end_r));
1579assign si_5 = so_4;
1580
1581cl_u1_buf_32x spare5_buf_32x (.in(1'b1),
1582 .out(spare5_buf_32x_unused));
1583cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1),
1584 .in1(1'b1),
1585 .in2(1'b1),
1586 .out(spare5_nand3_8x_unused));
1587cl_u1_inv_8x spare5_inv_8x (.in(1'b1),
1588 .out(spare5_inv_8x_unused));
1589cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1),
1590 .in01(1'b1),
1591 .in10(1'b1),
1592 .in11(1'b1),
1593 .out(spare5_aoi22_4x_unused));
1594cl_u1_buf_8x spare5_buf_8x (.in(1'b1),
1595 .out(spare5_buf_8x_unused));
1596cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1),
1597 .in01(1'b1),
1598 .in10(1'b1),
1599 .in11(1'b1),
1600 .out(spare5_oai22_4x_unused));
1601cl_u1_inv_16x spare5_inv_16x (.in(1'b1),
1602 .out(spare5_inv_16x_unused));
1603cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1),
1604 .in1(1'b1),
1605 .out(spare5_nand2_16x_unused));
1606cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0),
1607 .in1(1'b0),
1608 .in2(1'b0),
1609 .out(spare5_nor3_4x_unused));
1610cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1),
1611 .in1(1'b1),
1612 .out(spare5_nand2_8x_unused));
1613cl_u1_buf_16x spare5_buf_16x (.in(1'b1),
1614 .out(spare5_buf_16x_unused));
1615cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0),
1616 .in1(1'b0),
1617 .out(spare5_nor2_16x_unused));
1618cl_u1_inv_32x spare5_inv_32x (.in(1'b1),
1619 .out(spare5_inv_32x_unused));
1620
1621cl_sc1_msff_8x spare6_flop (.l1clk(l1clk),
1622 .siclk(siclk),
1623 .soclk(soclk),
1624 .si(si_6),
1625 .so(so_6),
1626 .d(1'b0),
1627 .q(spare6_flop_unused));
1628assign si_6 = so_5;
1629
1630cl_u1_buf_32x spare6_buf_32x (.in(1'b1),
1631 .out(spare6_buf_32x_unused));
1632cl_u1_nand3_8x spare6_nand3_8x (.in0(1'b1),
1633 .in1(1'b1),
1634 .in2(1'b1),
1635 .out(spare6_nand3_8x_unused));
1636cl_u1_inv_8x spare6_inv_8x (.in(1'b1),
1637 .out(spare6_inv_8x_unused));
1638cl_u1_aoi22_4x spare6_aoi22_4x (.in00(1'b1),
1639 .in01(1'b1),
1640 .in10(1'b1),
1641 .in11(1'b1),
1642 .out(spare6_aoi22_4x_unused));
1643cl_u1_buf_8x spare6_buf_8x (.in(1'b1),
1644 .out(spare6_buf_8x_unused));
1645cl_u1_oai22_4x spare6_oai22_4x (.in00(1'b1),
1646 .in01(1'b1),
1647 .in10(1'b1),
1648 .in11(1'b1),
1649 .out(spare6_oai22_4x_unused));
1650cl_u1_inv_16x spare6_inv_16x (.in(1'b1),
1651 .out(spare6_inv_16x_unused));
1652cl_u1_nand2_16x spare6_nand2_16x (.in0(1'b1),
1653 .in1(1'b1),
1654 .out(spare6_nand2_16x_unused));
1655cl_u1_nor3_4x spare6_nor3_4x (.in0(1'b0),
1656 .in1(1'b0),
1657 .in2(1'b0),
1658 .out(spare6_nor3_4x_unused));
1659cl_u1_nand2_8x spare6_nand2_8x (.in0(1'b1),
1660 .in1(1'b1),
1661 .out(spare6_nand2_8x_unused));
1662cl_u1_buf_16x spare6_buf_16x (.in(1'b1),
1663 .out(spare6_buf_16x_unused));
1664cl_u1_nor2_16x spare6_nor2_16x (.in0(1'b0),
1665 .in1(1'b0),
1666 .out(spare6_nor2_16x_unused));
1667cl_u1_inv_32x spare6_inv_32x (.in(1'b1),
1668 .out(spare6_inv_32x_unused));
1669
1670cl_sc1_msff_8x spare7_flop (.l1clk(l1clk),
1671 .siclk(siclk),
1672 .soclk(soclk),
1673 .si(si_7),
1674 .so(so_7),
1675 .d(1'b0),
1676 .q(spare7_flop_unused));
1677assign si_7 = so_6;
1678
1679cl_u1_buf_32x spare7_buf_32x (.in(1'b1),
1680 .out(spare7_buf_32x_unused));
1681cl_u1_nand3_8x spare7_nand3_8x (.in0(1'b1),
1682 .in1(1'b1),
1683 .in2(1'b1),
1684 .out(spare7_nand3_8x_unused));
1685cl_u1_inv_8x spare7_inv_8x (.in(1'b1),
1686 .out(spare7_inv_8x_unused));
1687cl_u1_aoi22_4x spare7_aoi22_4x (.in00(1'b1),
1688 .in01(1'b1),
1689 .in10(1'b1),
1690 .in11(1'b1),
1691 .out(spare7_aoi22_4x_unused));
1692cl_u1_buf_8x spare7_buf_8x (.in(1'b1),
1693 .out(spare7_buf_8x_unused));
1694cl_u1_oai22_4x spare7_oai22_4x (.in00(1'b1),
1695 .in01(1'b1),
1696 .in10(1'b1),
1697 .in11(1'b1),
1698 .out(spare7_oai22_4x_unused));
1699cl_u1_inv_16x spare7_inv_16x (.in(1'b1),
1700 .out(spare7_inv_16x_unused));
1701cl_u1_nand2_16x spare7_nand2_16x (.in0(1'b1),
1702 .in1(1'b1),
1703 .out(spare7_nand2_16x_unused));
1704cl_u1_nor3_4x spare7_nor3_4x (.in0(1'b0),
1705 .in1(1'b0),
1706 .in2(1'b0),
1707 .out(spare7_nor3_4x_unused));
1708cl_u1_nand2_8x spare7_nand2_8x (.in0(1'b1),
1709 .in1(1'b1),
1710 .out(spare7_nand2_8x_unused));
1711cl_u1_buf_16x spare7_buf_16x (.in(1'b1),
1712 .out(spare7_buf_16x_unused));
1713cl_u1_nor2_16x spare7_nor2_16x (.in0(1'b0),
1714 .in1(1'b0),
1715 .out(spare7_nor2_16x_unused));
1716cl_u1_inv_32x spare7_inv_32x (.in(1'b1),
1717 .out(spare7_inv_32x_unused));
1718
1719cl_sc1_msff_8x spare8_flop (.l1clk(l1clk),
1720 .siclk(siclk),
1721 .soclk(soclk),
1722 .si(si_8),
1723 .so(so_8),
1724 .d(1'b0),
1725 .q(spare8_flop_unused));
1726assign si_8 = so_7;
1727
1728cl_u1_buf_32x spare8_buf_32x (.in(1'b1),
1729 .out(spare8_buf_32x_unused));
1730cl_u1_nand3_8x spare8_nand3_8x (.in0(1'b1),
1731 .in1(1'b1),
1732 .in2(1'b1),
1733 .out(spare8_nand3_8x_unused));
1734cl_u1_inv_8x spare8_inv_8x (.in(1'b1),
1735 .out(spare8_inv_8x_unused));
1736cl_u1_aoi22_4x spare8_aoi22_4x (.in00(1'b1),
1737 .in01(1'b1),
1738 .in10(1'b1),
1739 .in11(1'b1),
1740 .out(spare8_aoi22_4x_unused));
1741cl_u1_buf_8x spare8_buf_8x (.in(1'b1),
1742 .out(spare8_buf_8x_unused));
1743cl_u1_oai22_4x spare8_oai22_4x (.in00(1'b1),
1744 .in01(1'b1),
1745 .in10(1'b1),
1746 .in11(1'b1),
1747 .out(spare8_oai22_4x_unused));
1748cl_u1_inv_16x spare8_inv_16x (.in(1'b1),
1749 .out(spare8_inv_16x_unused));
1750cl_u1_nand2_16x spare8_nand2_16x (.in0(1'b1),
1751 .in1(1'b1),
1752 .out(spare8_nand2_16x_unused));
1753cl_u1_nor3_4x spare8_nor3_4x (.in0(1'b0),
1754 .in1(1'b0),
1755 .in2(1'b0),
1756 .out(spare8_nor3_4x_unused));
1757cl_u1_nand2_8x spare8_nand2_8x (.in0(1'b1),
1758 .in1(1'b1),
1759 .out(spare8_nand2_8x_unused));
1760cl_u1_buf_16x spare8_buf_16x (.in(1'b1),
1761 .out(spare8_buf_16x_unused));
1762cl_u1_nor2_16x spare8_nor2_16x (.in0(1'b0),
1763 .in1(1'b0),
1764 .out(spare8_nor2_16x_unused));
1765cl_u1_inv_32x spare8_inv_32x (.in(1'b1),
1766 .out(spare8_inv_32x_unused));
1767
1768cl_sc1_msff_8x spare9_flop (.l1clk(l1clk),
1769 .siclk(siclk),
1770 .soclk(soclk),
1771 .si(si_9),
1772 .so(so_9),
1773 .d(1'b0),
1774 .q(spare9_flop_unused));
1775assign si_9 = so_8;
1776
1777cl_u1_buf_32x spare9_buf_32x (.in(1'b1),
1778 .out(spare9_buf_32x_unused));
1779cl_u1_nand3_8x spare9_nand3_8x (.in0(1'b1),
1780 .in1(1'b1),
1781 .in2(1'b1),
1782 .out(spare9_nand3_8x_unused));
1783cl_u1_inv_8x spare9_inv_8x (.in(1'b1),
1784 .out(spare9_inv_8x_unused));
1785cl_u1_aoi22_4x spare9_aoi22_4x (.in00(1'b1),
1786 .in01(1'b1),
1787 .in10(1'b1),
1788 .in11(1'b1),
1789 .out(spare9_aoi22_4x_unused));
1790cl_u1_buf_8x spare9_buf_8x (.in(1'b1),
1791 .out(spare9_buf_8x_unused));
1792cl_u1_oai22_4x spare9_oai22_4x (.in00(1'b1),
1793 .in01(1'b1),
1794 .in10(1'b1),
1795 .in11(1'b1),
1796 .out(spare9_oai22_4x_unused));
1797cl_u1_inv_16x spare9_inv_16x (.in(1'b1),
1798 .out(spare9_inv_16x_unused));
1799cl_u1_nand2_16x spare9_nand2_16x (.in0(1'b1),
1800 .in1(1'b1),
1801 .out(spare9_nand2_16x_unused));
1802cl_u1_nor3_4x spare9_nor3_4x (.in0(1'b0),
1803 .in1(1'b0),
1804 .in2(1'b0),
1805 .out(spare9_nor3_4x_unused));
1806cl_u1_nand2_8x spare9_nand2_8x (.in0(1'b1),
1807 .in1(1'b1),
1808 .out(spare9_nand2_8x_unused));
1809cl_u1_buf_16x spare9_buf_16x (.in(1'b1),
1810 .out(spare9_buf_16x_unused));
1811cl_u1_nor2_16x spare9_nor2_16x (.in0(1'b0),
1812 .in1(1'b0),
1813 .out(spare9_nor2_16x_unused));
1814cl_u1_inv_32x spare9_inv_32x (.in(1'b1),
1815 .out(spare9_inv_32x_unused));
1816assign reg_gnt_scanin = so_9;
1817
1818
1819//************************************************************************
1820// UNUSED CONNECTIONS
1821//************************************************************************
1822assign id_14_unused = id[14];
1823assign pa37_unused = pa[37];
1824assign tcu_rcv_hdr_63_59_unused[4:0] = tcu_rcv_hdr[63:59];
1825assign tcu_rcv_hdr_55_40_unused[15:0] = tcu_rcv_hdr[55:40];
1826assign tcu_rcv_hdr_1_0_unused[1:0] = tcu_rcv_hdr[1:0];
1827//assign parity_err_unused = parity_err;
1828
1829
1830//************************************************************************
1831// MBIST SECTION
1832//************************************************************************
1833//----------writing to ild -------------------
1834assign ipcc_ildq_wr_addr0_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr0[4:0];
1835assign ipcc_ildq_wr_addr1_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr1[4:0];
1836assign ipcc_ildq_wr_addr2_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr2[4:0];
1837assign ipcc_ildq_wr_addr3_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr3[4:0];
1838assign ipcc_ildq_wr_addr4_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr4[4:0];
1839assign ipcc_ildq_wr_addr5_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr5[4:0];
1840assign ipcc_ildq_wr_addr6_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr6[4:0];
1841assign ipcc_ildq_wr_addr7_m[4:0] = sii_mb0_run_r ? sii_mb0_addr_r[4:0] : ipcc_ildq_wr_addr7[4:0];
1842assign ipcc_ildq_wr_en0_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en0;
1843assign ipcc_ildq_wr_en1_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en1;
1844assign ipcc_ildq_wr_en2_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en2;
1845assign ipcc_ildq_wr_en3_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en3;
1846assign ipcc_ildq_wr_en4_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en4;
1847assign ipcc_ildq_wr_en5_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en5;
1848assign ipcc_ildq_wr_en6_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en6;
1849assign ipcc_ildq_wr_en7_m = sii_mb0_run_r ? sii_mb0_wr_en_r : ipcc_ildq_wr_en7;
1850
1851//------------ reading from all other ipd hdr and data memory-----------
1852assign ipcc_ipdohq0_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdohq0_rd_en_r : ipdohq0_rd_en;
1853assign ipcc_ipdbhq0_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdbhq0_rd_en_r : ipdbhq0_rd_en;
1854assign ipcc_ipdodq0_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdodq0_rd_en_r : ipdodq0_rd_en;
1855assign ipcc_ipdbdq0_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdbdq0_rd_en_r : ipdbdq0_rd_en;
1856
1857assign ipdohq0_rd_en = (ipcs_ipdohq0_wr_addr_sync[3:0] == ipcc_ipdohq0_rd_addr[3:0]) && ipcs_ipdohq0_wr_en_sync ? 1'b0 : 1'b1;
1858assign ipdbhq0_rd_en = (ipcs_ipdbhq0_wr_addr_sync[3:0] == ipcc_ipdbhq0_rd_addr[3:0]) && ipcs_ipdbhq0_wr_en_sync ? 1'b0 : 1'b1;
1859assign ipdodq0_rd_en = (ipcs_ipdodq0_wr_addr_sync[5:0] == ipcc_ipdodq0_rd_addr[5:0]) && ipcs_ipdodq0_wr_en_sync ? 1'b0 : 1'b1;
1860assign ipdbdq0_rd_en = (ipcs_ipdbdq0_wr_addr_sync[5:0] == ipcc_ipdbdq0_rd_addr[5:0]) && ipcs_ipdbdq0_wr_en_sync ? 1'b0 : 1'b1;
1861
1862assign ipcc_ipdohq1_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdohq1_rd_en_r : ipdohq1_rd_en;
1863assign ipcc_ipdbhq1_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdbhq1_rd_en_r : ipdbhq1_rd_en;
1864assign ipcc_ipdodq1_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdodq1_rd_en_r : ipdodq1_rd_en;
1865assign ipcc_ipdbdq1_rd_en_m = sii_mb1_run_r ? sii_mb1_ipdbdq1_rd_en_r : ipdbdq1_rd_en;
1866
1867assign ipdohq1_rd_en = (ipcs_ipdohq1_wr_addr_sync[3:0] == ipcc_ipdohq1_rd_addr[3:0]) && ipcs_ipdohq1_wr_en_sync ? 1'b0 : 1'b1;
1868assign ipdbhq1_rd_en = (ipcs_ipdbhq1_wr_addr_sync[3:0] == ipcc_ipdbhq1_rd_addr[3:0]) && ipcs_ipdbhq1_wr_en_sync ? 1'b0 : 1'b1;
1869assign ipdodq1_rd_en = (ipcs_ipdodq1_wr_addr_sync[5:0] == ipcc_ipdodq1_rd_addr[5:0]) && ipcs_ipdodq1_wr_en_sync ? 1'b0 : 1'b1;
1870assign ipdbdq1_rd_en = (ipcs_ipdbdq1_wr_addr_sync[5:0] == ipcc_ipdbdq1_rd_addr[5:0]) && ipcs_ipdbdq1_wr_en_sync ? 1'b0 : 1'b1;
1871
1872assign ipcc_ipdohq0_rd_addr_m[3:0] = sii_mb1_run_r ? sii_mb1_addr_r[3:0] : ipcc_ipdohq0_rd_addr[3:0];
1873assign ipcc_ipdbhq0_rd_addr_m[3:0] = sii_mb1_run_r ? sii_mb1_addr_r[3:0] : ipcc_ipdbhq0_rd_addr[3:0];
1874assign ipcc_ipdodq0_rd_addr_m[5:0] = sii_mb1_run_r ? sii_mb1_addr_r[5:0] : ipcc_ipdodq0_rd_addr[5:0];
1875assign ipcc_ipdbdq0_rd_addr_m[5:0] = sii_mb1_run_r ? sii_mb1_addr_r[5:0] : ipcc_ipdbdq0_rd_addr[5:0];
1876
1877assign ipcc_ipdohq1_rd_addr_m[3:0] = sii_mb1_run_r ? sii_mb1_addr_r[3:0] : ipcc_ipdohq1_rd_addr[3:0];
1878assign ipcc_ipdbhq1_rd_addr_m[3:0] = sii_mb1_run_r ? sii_mb1_addr_r[3:0] : ipcc_ipdbhq1_rd_addr[3:0];
1879assign ipcc_ipdodq1_rd_addr_m[5:0] = sii_mb1_run_r ? sii_mb1_addr_r[5:0] : ipcc_ipdodq1_rd_addr[5:0];
1880assign ipcc_ipdbdq1_rd_addr_m[5:0] = sii_mb1_run_r ? sii_mb1_addr_r[5:0] : ipcc_ipdbdq1_rd_addr[5:0];
1881
1882assign gnt0_r_m[4:0] = sii_mb1_run_r ? {1'b0, sii_mb1_1of4ipd_sel[3:0]} : gnt0_r[4:0];
1883//************************************************************************
1884// STATE DEFINITION
1885//************************************************************************
1886
1887`define START_ST 14'b00000000000001
1888`define DEC_ST 14'b00000000000010
1889`define ARB_ST 14'b00000000000100
1890`define HDR_ST 14'b00000000001000
1891`define HDRDLY_ST 14'b00000000010000
1892`define DATA1_ST 14'b00000000100000
1893`define DATA2_ST 14'b00000001000000
1894`define DATA3_ST 14'b00000010000000
1895`define DATA4_ST 14'b00000100000000
1896`define DATA5_ST 14'b00001000000000
1897`define DATA6_ST 14'b00010000000000
1898`define DATA7_ST 14'b00100000000000
1899`define DATA8_ST 14'b01000000000000
1900`define RDDW_ST 14'b10000000000000
1901
1902`define START 0
1903`define DEC 1
1904`define ARB 2
1905`define HDR 3
1906`define HDRDLY 4
1907`define DATA1 5
1908`define DATA2 6
1909`define DATA3 7
1910`define DATA4 8
1911`define DATA5 9
1912`define DATA6 10
1913`define DATA7 11
1914`define DATA8 12
1915`define RDDW 13
1916
1917`define TCUU 4
1918`define DMU_O 3
1919`define DMU_B 2
1920`define NIU_O 1
1921`define NIU_B 0
1922
1923reg [13:0] nstate_r;
1924
1925wire [13:0] nstate;
1926wire [13:0] cstate;
1927
1928// ------- internal signals --------
1929reg dmu_or_l2go;
1930reg dmu_by_l2go;
1931reg niu_or_l2go;
1932reg niu_by_l2go;
1933
1934reg dmu_or_dep; // dependecy bit of a dmu order queue top entry
1935reg dmu_by_dep;
1936reg niu_or_dep;
1937reg niu_by_dep;
1938
1939
1940//************************************************************************
1941// OUTPUT LOGICS
1942//************************************************************************
1943
1944assign array_wr_inhibit = array_wr_inhibit_cmp & array_wr_inhibit_io;
1945
1946//------------ signal to indicate start of header ----------------
1947// curhdr[6:4] is the bank number
1948assign ipcc_ilc_cmd0_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b000);
1949assign ipcc_ilc_cmd1_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b001);
1950assign ipcc_ilc_cmd2_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b010);
1951assign ipcc_ilc_cmd3_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b011);
1952assign ipcc_ilc_cmd4_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b100);
1953assign ipcc_ilc_cmd5_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b101);
1954assign ipcc_ilc_cmd6_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b110);
1955assign ipcc_ilc_cmd7_l = cstate[`HDRDLY] && l2_io && (curbank_r[2:0] == 3'b111);
1956
1957// after sync ff they become ipcc_ipcs_dmu_or_go, ipcc_ipcs_dmu_by_go
1958// the or_dq, by_dq is the actual time the header + data has been dequeue from ipcc
1959// while or_go and by_go is when the header is dispatched from the ipd header queue
1960
1961assign dmu_tag_en = (dmu_or_dq || dmu_by_dq) & dma_wr;
1962assign dmu_tag_en_lv = dmu_tag_en ^ ipcc_ipcs_wrack_lv_pre;
1963assign dmu_or_dq = gnt_r[`DMU_O] && ((cstate[`HDRDLY] && l2_io && rd_wr) ||
1964 cstate[`DATA4] || (cstate[`DATA1] && ~dma_wr));
1965assign dmu_by_dq = gnt_r[`DMU_B] && ((cstate[`HDRDLY] && l2_io && rd_wr) ||
1966 cstate[`DATA4] || (cstate[`DATA1] && ~dma_wr));
1967assign niu_or_dq = gnt_r[`NIU_O] && ((cstate[`HDRDLY] && l2_io && rd_wr) ||
1968 cstate[`DATA4] || (cstate[`DATA1] && ~dma_wr));
1969assign niu_by_dq = gnt_r[`NIU_B] && ((cstate[`HDRDLY] && l2_io && rd_wr)||
1970 cstate[`DATA4] || (cstate[`DATA1] && ~dma_wr));
1971
1972// Cross clock domain from fast clock to slow clock, create and level change whenever
1973// there is a pulse in dequeue signals
1974assign dmu_or_dq_lv = ipcc_ipcs_dmu_or_go_lv_pre ^ dmu_or_go_pulse;
1975assign dmu_by_dq_lv = ipcc_ipcs_dmu_by_go_lv_pre ^ dmu_by_go_pulse;
1976assign niu_or_dq_lv = ipcc_ipcs_niu_or_go_lv_pre ^ niu_or_go_pulse;
1977assign niu_by_dq_lv = ipcc_ipcs_niu_by_go_lv_pre ^ niu_by_go_pulse;
1978
1979//-------------------------------------------------------------
1980// Interface signals going to IPCC data paths
1981//-------------------------------------------------------------
1982
1983always @ (gnt0_r_m[3:0] or high_lo)
1984case (1'b1) //synopsys parallel_case
1985 gnt0_r_m[`DMU_O] : data_sel[2:0] = {2'b11, high_lo};
1986 gnt0_r_m[`DMU_B] : data_sel[2:0] = {2'b10, high_lo};
1987 gnt0_r_m[`NIU_O] : data_sel[2:0] = {2'b01, high_lo};
1988 gnt0_r_m[`NIU_B] : data_sel[2:0] = {2'b00, high_lo};
1989 default : data_sel[2:0] = {2'b00, high_lo};
1990endcase
1991assign high_lo = sii_mb1_run_r ? sii_mb1_ipd_data_hibits_sel :
1992 (cstate[`HDRDLY] || cstate[`DATA2] ||
1993 cstate[`DATA4] || cstate[`DATA6]);
1994assign hdr_data_sel = sii_mb1_run_r ? sii_mb1_ipd_data_or_hdr_sel : cstate[`HDRDLY];
1995
1996//--------------------------going to register file ild -----------------------------------
1997assign ipcc_ildq_wr_addr0_l[4:0] = ipcc_ildq_wr_en0 ?
1998 ipcc_ildq_wr_addr0[4:0] + 5'h01 :
1999 ipcc_ildq_wr_addr0[4:0];
2000assign ipcc_ildq_wr_addr1_l[4:0] = ipcc_ildq_wr_en1 ?
2001 ipcc_ildq_wr_addr1[4:0] + 5'h01 :
2002 ipcc_ildq_wr_addr1[4:0];
2003assign ipcc_ildq_wr_addr2_l[4:0] = ipcc_ildq_wr_en2 ?
2004 ipcc_ildq_wr_addr2[4:0] + 5'h01 :
2005 ipcc_ildq_wr_addr2[4:0];
2006assign ipcc_ildq_wr_addr3_l[4:0] = ipcc_ildq_wr_en3 ?
2007 ipcc_ildq_wr_addr3[4:0] + 5'h01 :
2008 ipcc_ildq_wr_addr3[4:0];
2009assign ipcc_ildq_wr_addr4_l[4:0] = ipcc_ildq_wr_en4 ?
2010 ipcc_ildq_wr_addr4[4:0] + 5'h01 :
2011 ipcc_ildq_wr_addr4[4:0];
2012assign ipcc_ildq_wr_addr5_l[4:0] = ipcc_ildq_wr_en5 ?
2013 ipcc_ildq_wr_addr5[4:0] + 5'h01 :
2014 ipcc_ildq_wr_addr5[4:0];
2015assign ipcc_ildq_wr_addr6_l[4:0] = ipcc_ildq_wr_en6 ?
2016 ipcc_ildq_wr_addr6[4:0] + 5'h01 :
2017 ipcc_ildq_wr_addr6[4:0];
2018assign ipcc_ildq_wr_addr7_l[4:0] = ipcc_ildq_wr_en7 ?
2019 ipcc_ildq_wr_addr7[4:0] + 5'h01 :
2020 ipcc_ildq_wr_addr7[4:0];
2021
2022assign ipcc_ildq_wr_en0_l = (curbank_r[2:0] == 3'b000) && dma_wr_r && (cstate[`DATA1] ||
2023 cstate[`DATA2] || cstate[`DATA3] ||
2024 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2025 || cstate[`DATA7] || cstate[`DATA8]) ;
2026assign ipcc_ildq_wr_en1_l = (curbank_r[2:0] == 3'b001) && dma_wr_r && (cstate[`DATA1] ||
2027 cstate[`DATA2] || cstate[`DATA3] ||
2028 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2029 || cstate[`DATA7] || cstate[`DATA8]) ;
2030assign ipcc_ildq_wr_en2_l = (curbank_r[2:0] == 3'b010) && dma_wr_r && (cstate[`DATA1] ||
2031 cstate[`DATA2] || cstate[`DATA3] ||
2032 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2033 || cstate[`DATA7] || cstate[`DATA8]) ;
2034assign ipcc_ildq_wr_en3_l = (curbank_r[2:0] == 3'b011) && dma_wr_r && (cstate[`DATA1] ||
2035 cstate[`DATA2] || cstate[`DATA3] ||
2036 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2037 || cstate[`DATA7] || cstate[`DATA8]) ;
2038assign ipcc_ildq_wr_en4_l = (curbank_r[2:0] == 3'b100) && dma_wr_r &&(cstate[`DATA1] ||
2039 cstate[`DATA2] || cstate[`DATA3] ||
2040 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2041 || cstate[`DATA7] || cstate[`DATA8]) ;
2042assign ipcc_ildq_wr_en5_l = (curbank_r[2:0] == 3'b101) && dma_wr_r &&(cstate[`DATA1] ||
2043 cstate[`DATA2] || cstate[`DATA3] ||
2044 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2045 || cstate[`DATA7] || cstate[`DATA8]) ;
2046assign ipcc_ildq_wr_en6_l = (curbank_r[2:0] == 3'b110) && dma_wr_r &&(cstate[`DATA1] ||
2047 cstate[`DATA2] || cstate[`DATA3] ||
2048 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2049 || cstate[`DATA7] || cstate[`DATA8]) ;
2050assign ipcc_ildq_wr_en7_l = (curbank_r[2:0] == 3'b111) && dma_wr_r &&(cstate[`DATA1] ||
2051 cstate[`DATA2] || cstate[`DATA3] ||
2052 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6]
2053 || cstate[`DATA7] || cstate[`DATA8]) ;
2054
2055//-------------------------------------------------------------
2056// JTAG ACCESS OF L2 BANKS
2057//-------------------------------------------------------------
2058
2059assign tcu_go_l = (tcu_rcv_end_r & ~dmu_wrm_mode) ? 1'b1 : gnt_r[4] && cstate[`HDR] ? 1'b0 : tcu_go_hld;
2060 // fix for bug # 118179, dont assert tcu_go if dmu_wrm in progress
2061assign tcu_rcv_end_hld = tcu_rcv_end ? 1'b1 : ((~dmu_wrm_mode) | (gnt_r[4] && cstate[`HDR])) ? 1'b0 : tcu_rcv_end_r;
2062 // fix for bug # 118179, dont assert tcu_go if dmu_wrm in progress
2063assign one_stop = ilc_ipcc_stop0 | ilc_ipcc_stop1 | ilc_ipcc_stop2 |
2064 ilc_ipcc_stop3 | ilc_ipcc_stop4 | ilc_ipcc_stop5 |
2065 ilc_ipcc_stop6 | ilc_ipcc_stop7 |
2066 inc_ipcc_stop;
2067assign tcu_go = tcu_go_hld & ~one_stop; // fix for bug 118690, dont assert tcu_go if any of the ild fifos are
2068 // full
2069assign tcu_txfr_start_l = tcu_sii_vld_r ? 1'b1 : tcu_rcv_end ? 1'b0:
2070 tcu_txfr_start_r;
2071assign tcu_rcv_cnt_l[7:0] = tcu_txfr_start_r || tcu_sii_vld_r ? tcu_rcv_cnt[7:0] + 8'h01 : 8'h00;
2072assign tcu_rcv_end = tcu_rcv_cnt[7];
2073assign tcu_serial_data_l[127:0] = tcu_txfr_start_l ? {tcu_sii_data_r, tcu_serial_data[127:1]}
2074 : tcu_serial_data[127:0];
2075
2076//-------------------------------
2077// Compose header
2078//-------------------------------
2079assign tcu_a_parity[1:0] = 2'b00;
2080assign tcu_cmd_parity = 1'b0;
2081assign tcu_ctag_ecc[5:0] = 6'h00;
2082assign intr_for_tcu = 1'b0;
2083assign l2_io_tcu = 1'b1;
2084assign tcu_posted = 1'b0;
2085assign tcu_id[15:0] = 16'h0000;
2086assign tcu_dma_err[2:0] = 3'b000;
2087assign tcu_d_parity[3:0] = 4'h0;
2088
2089//-----------------------------------
2090// Compose received header and data
2091//-----------------------------------
2092
2093assign tcu_rcv_hdr[63:0] = tcu_serial_data[63:0];
2094assign tcu_data[63:0] = tcu_serial_data[127:64];
2095
2096assign addr_on = cstate[`HDRDLY] && (tcu_rcv_hdr[5:3] == 3'b000) ||
2097 cstate[`DATA1] && (tcu_rcv_hdr[5:3] == 3'b001) ||
2098 cstate[`DATA2] && (tcu_rcv_hdr[5:3] == 3'b010) ||
2099 cstate[`DATA3] && (tcu_rcv_hdr[5:3] == 3'b011) ||
2100 cstate[`DATA4] && (tcu_rcv_hdr[5:3] == 3'b100) ||
2101 cstate[`DATA5] && (tcu_rcv_hdr[5:3] == 3'b101) ||
2102 cstate[`DATA6] && (tcu_rcv_hdr[5:3] == 3'b110) ||
2103 cstate[`DATA7] && (tcu_rcv_hdr[5:3] == 3'b111) ;
2104
2105assign tcu_be_par[11:0] = addr_on ? {8'hff, tcu_d_parity[3:0]} : {8'h00, tcu_d_parity[3:0]};
2106
2107
2108assign tcu_hdr[71:0] = {tcu_ctag_ecc[5:0], tcu_a_parity[1:0], tcu_cmd_parity, intr_for_tcu, tcu_rcv_hdr[58:56],
2109 l2_io_tcu , tcu_posted, tcu_id[15:0], tcu_dma_err[2:0], tcu_rcv_hdr[39:3], 1'b0};
2110
2111
2112//assign tcu_parity[3] = tcu_data[63] ^ tcu_data[61] ^ tcu_data[59] ^ tcu_data[57] ^ tcu_data[55] ^ tcu_data[53]
2113// ^tcu_data[51] ^ tcu_data[49] ^ tcu_data[47] ^ tcu_data[45] ^ tcu_data[43] ^ tcu_data[41]
2114// ^tcu_data[39] ^ tcu_data[37] ^ tcu_data[35] ^ ~tcu_data[33] ;
2115
2116//assign tcu_parity[2] = tcu_data[62] ^ tcu_data[60] ^ tcu_data[58] ^ tcu_data[56] ^ tcu_data[54] ^ tcu_data[52]
2117// ^tcu_data[50] ^ tcu_data[48] ^ tcu_data[46] ^ tcu_data[44] ^ tcu_data[42] ^ tcu_data[40]
2118// ^tcu_data[38] ^ tcu_data[36] ^ tcu_data[34] ^ ~tcu_data[32] ;
2119
2120//assign tcu_parity[1] = tcu_data[31] ^ tcu_data[29] ^ tcu_data[27] ^ tcu_data[25] ^ tcu_data[23] ^ tcu_data[21]
2121// ^tcu_data[19] ^ tcu_data[17] ^ tcu_data[15] ^ tcu_data[13] ^ tcu_data[11] ^ tcu_data[9]
2122// ^tcu_data[7] ^ tcu_data[5] ^ tcu_data[3] ^ ~tcu_data[1] ;
2123
2124//assign tcu_parity[0] = tcu_data[30] ^ tcu_data[28] ^ tcu_data[26] ^ tcu_data[24] ^ tcu_data[22] ^ tcu_data[20]
2125// ^tcu_data[18] ^ tcu_data[16] ^ tcu_data[14] ^ tcu_data[12] ^ tcu_data[10] ^ tcu_data[8]
2126// ^tcu_data[6] ^ tcu_data[4] ^ tcu_data[2] ^ ~tcu_data[0] ;
2127
2128//---------------------------------------------------------------
2129// ERROR REPORT TO NCU
2130//---------------------------------------------------------------
2131
2132 assign err_sig_l[5:0] = cstate[`START] && ~sending_r ? 6'h00 : {niud_pe_l, niua_pe_l, niuctag_ue_l,
2133 dmud_pe_l, dmua_pe_l, dmuctag_ue_l};
2134
2135 assign sending_l = trigger_synd ? 1'b1 : (send_cnt_l[6] && ~send_cnt_r[6]) ? 1'b0 : sending_r;
2136 assign send_cnt_l[6:0] = send_cnt_r[6] ? 7'h00 : sending_r ? send_cnt_r[6:0] + 7'h01 : send_cnt_r[6:0];
2137
2138 assign trigger_synd = ~sending_r && ( cstate[`RDDW] || cstate[`DATA8] || (cstate[`DATA1] || data_phase))
2139 && (| err_sig_r[5:0]);
2140
2141 assign syndrome_l[63:0] = trigger_synd ? { 2'b00, err_sig_r[5:0], err_ctag_pa_r[55:0]} : cmp_io_sync_en ?
2142 {4'b0,syndrome_r[63:4]} : syndrome_r[63:0] ;
2143
2144 assign sii_ncu_syn_data_l[3:0] = sending_r ? syndrome_r[3:0] : 4'b0;
2145 assign sii_ncu_syn_vld_l = sending_r;
2146
2147 assign ipcc_ipcs_dmu_wrack_p_l = ~(^ id[14:11]);
2148
2149 // when data errors happened to packet going to ncu, no error reported
2150 assign dmuctag_ue_l = ( (ctag_ecc_ue || cmd_parity_err ) && cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : dmuctag_ue_r;
2151 assign dmuctag_ce_l = ( ctag_ecc_ce && cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : dmuctag_ce_r;
2152 assign dmua_pe_l = ( addr_parity_err && cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : dmua_pe_r;
2153 assign dmud_pe_l = ( data_parity_err && l2_io && cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : dmud_pe_r;
2154
2155 assign niuctag_ue_l = ( (ctag_ecc_ue || cmd_parity_err ) && ~cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : niuctag_ue_r;
2156 assign niuctag_ce_l = (ctag_ecc_ce && ~cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : niuctag_ce_r;
2157 assign niua_pe_l = (addr_parity_err && ~cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : niua_pe_r;
2158 assign niud_pe_l = (data_parity_err && l2_io && ~cur_source) ? 1'b1 : cmp_io_sync_en ? 1'b0 : niud_pe_r;
2159
2160//-----------------------------------------------------------------
2161// ECC AND PARITY CHECK
2162//-----------------------------------------------------------------
2163assign data_phase = cstate[`DATA1] || cstate[`DATA2] || cstate[`DATA3] ||
2164 cstate[`DATA4] || cstate[`DATA5] || cstate[`DATA6] ||
2165 cstate[`DATA7] || cstate[`DATA8] ;
2166assign data_parity_err = jtag ? 1'b0 : ~wrm & data_phase & (~data_odd_h || ~data_even_h || ~data_odd_l
2167 || ~data_even_l || be_parity_err );
2168assign newdata[67:0] = ipcc_dp_par_data[67:0];
2169assign be[15:0] = ipcc_dp_par_data[83:68];
2170assign be_parity = ipcc_dp_par_data[84];
2171
2172assign data_odd_h = newdata[67] ^ newdata[63]^ newdata[61]^ newdata[59]^ newdata[57]^ newdata[55]^
2173 newdata[53]^ newdata[51]^ newdata[49]^ newdata[47]^ newdata[45]^
2174 newdata[43]^ newdata[41]^ newdata[39]^ newdata[37]^ newdata[35]^ newdata[33];
2175
2176assign data_even_h = newdata[66] ^ newdata[62]^ newdata[60]^ newdata[58]^ newdata[56]^ newdata[54]^
2177 newdata[52]^ newdata[50]^ newdata[48]^ newdata[46]^ newdata[44]^
2178 newdata[42]^ newdata[40]^ newdata[38]^ newdata[36]^ newdata[34]^ newdata[32];
2179
2180assign data_odd_l = newdata[65] ^ newdata[31]^ newdata[29]^ newdata[27]^ newdata[25]^ newdata[23]^
2181 newdata[21]^ newdata[19]^ newdata[17]^ newdata[15]^ newdata[13]^
2182 newdata[11]^ newdata[9]^ newdata[7]^ newdata[5]^ newdata[3]^ newdata[1];
2183
2184assign data_even_l = newdata[64] ^ newdata[30]^ newdata[28]^ newdata[26]^ newdata[24]^ newdata[22]^
2185 newdata[20]^ newdata[18]^ newdata[16]^ newdata[14]^ newdata[12]^
2186 newdata[10]^ newdata[8]^ newdata[6]^ newdata[4]^ newdata[2]^ newdata[0];
2187
2188assign be_parity_err = ~ be[15] ^ be[14] ^ be[13] ^ be[12] ^ be[11] ^ be[10] ^ be[9] ^ be[8]
2189 ^ be[7] ^ be[6] ^ be[5] ^ be[4] ^ be[3] ^ be[2] ^ be[1] ^ be[0]
2190 ^ be_parity && wrm;
2191
2192
2193//--------------------------going to register file indq-------------------------------------
2194
2195assign ipcc_indq_wr_addr[5:0] = sii_mb0_run_r ? sii_mb0_addr_r[5:0] : ipcc_indq_wr_addr_r[5:0];
2196assign ipcc_indq_wr_addr_l[5:0] = ipcc_indq_wr_en_r ? (ipcc_indq_wr_addr_r[5:0] == 6'd47) ? 6'h0 :
2197 (ipcc_indq_wr_addr_r[5:0] + 6'h01) : ipcc_indq_wr_addr_r[5:0] ;
2198
2199assign ipcc_indq_wr_en = sii_mb0_run_r ? sii_mb0_ind_wr_en_r : ipcc_indq_wr_en_r;
2200assign ipcc_indq_wr_en_l = ~l2_io_r && ((cstate[`HDR] ) || cstate[`HDRDLY]
2201 || cstate[`DATA1]) ? 1'b1 : 1'b0;
2202assign ipcc_inc_wr_ovfl_l = ((ipcc_indq_wr_addr_r[5:0] == 6'd47) && ipcc_indq_wr_en_r)
2203 ? ~ipcc_inc_wr_ovfl : ipcc_inc_wr_ovfl;
2204//--------------------------reading from ipdhq, ipddq-------------------------------------
2205//--DMU--
2206assign dmu_or_go_pulse = ((cstate[`HDRDLY] && ~l2_io) || (cstate[`HDR] && rd_wr)
2207 || (cstate[`DATA5] && dma_wr)) && gnt_r[`DMU_O];
2208assign ipcc_ipdohq0_rd_addr_l[3:0] = dmu_or_go_pulse ?
2209 (ipcc_ipdohq0_rd_addr[3:0] + 4'b0001) : ipcc_ipdohq0_rd_addr;
2210
2211assign dmu_by_go_pulse = ((cstate[`HDRDLY] && ~l2_io) || (cstate[`HDR] && rd_wr )
2212 || (cstate[`DATA5] && dma_wr)) && gnt_r[`DMU_B];
2213assign ipcc_ipdbhq0_rd_addr_l[3:0] = dmu_by_go_pulse ?
2214 (ipcc_ipdbhq0_rd_addr[3:0] + 4'b0001) : ipcc_ipdbhq0_rd_addr;
2215
2216assign ipcc_ipdodq0_rd_addr_l[5:0] = gnt_r[`DMU_O] && ((~l2_io && cstate[`HDR]) || dma_wr_r
2217 && (cstate[`HDR] || cstate[`DATA1] || cstate[`DATA3] || cstate[`DATA5])) ?
2218 (ipcc_ipdodq0_rd_addr[5:0] +
2219 6'h01) : ipcc_ipdodq0_rd_addr[5:0];
2220
2221assign ipcc_ipdbdq0_rd_addr_l[5:0] = gnt_r[`DMU_B] && ((~l2_io && cstate[`HDR]) || dma_wr_r
2222 && (cstate[`HDR] || cstate[`DATA1] || cstate[`DATA3] || cstate[`DATA5])) ?
2223 (ipcc_ipdbdq0_rd_addr[5:0] + 6'h01)
2224 : ipcc_ipdbdq0_rd_addr[5:0];
2225//--NIU--
2226assign niu_or_go_pulse = ((cstate[`HDRDLY] && ~l2_io) || (cstate[`HDR] && rd_wr)
2227 || (cstate[`DATA5] && dma_wr)) && gnt_r[`NIU_O];
2228assign ipcc_ipdohq1_rd_addr_l[3:0] = niu_or_go_pulse ?
2229 (ipcc_ipdohq1_rd_addr[3:0] + 4'b0001) : ipcc_ipdohq1_rd_addr;
2230
2231assign niu_by_go_pulse = ((cstate[`HDRDLY] && ~l2_io) || (cstate[`HDR] && rd_wr)
2232 || (cstate[`DATA5] && dma_wr)) && gnt_r[`NIU_B];
2233assign ipcc_ipdbhq1_rd_addr_l[3:0] = niu_by_go_pulse ?
2234 (ipcc_ipdbhq1_rd_addr[3:0] + 4'b0001) : ipcc_ipdbhq1_rd_addr;
2235
2236assign ipcc_ipdodq1_rd_addr_l[5:0] = gnt_r[`NIU_O] && ((~l2_io && cstate[`HDR]) || dma_wr_r
2237 && (cstate[`HDR] || cstate[`DATA1] || cstate[`DATA3] || cstate[`DATA5])) ?
2238 (ipcc_ipdodq1_rd_addr[5:0] +
2239 6'h01) : ipcc_ipdodq1_rd_addr[5:0];
2240
2241assign ipcc_ipdbdq1_rd_addr_l[5:0] = gnt_r[`NIU_B] && ((~l2_io && cstate[`HDR]) || dma_wr_r
2242 && (cstate[`HDR] || cstate[`DATA1] || cstate[`DATA3] || cstate[`DATA5])) ?
2243 (ipcc_ipdbdq1_rd_addr[5:0] +
2244 6'h01) : ipcc_ipdbdq1_rd_addr[5:0];
2245
2246//************************************************************************
2247// INTERNAL WIRES ASSIGNMENTS
2248//************************************************************************
2249//-------------------------------------------------------------
2250// arbitration logics
2251//-------------------------------------------------------------
2252assign gnt_l[4:0] = arb1_r[1] ? ( tcu_go ? 5'b10000 :
2253 ((arb2_dmu_l) ?
2254 (dmu_or_go ? 5'b01000 : dmu_by_go ? 5'b00100 :
2255 (arb2_niu_l ? (niu_or_go ? 5'b00010 : niu_by_go ?
2256 5'b00001 : 5'b00000 ) :
2257 (niu_by_go ? 5'b00001 : niu_or_go ?
2258 5'b00010 : 5'b00000))) :
2259 (dmu_by_go ? 5'b00100 : dmu_or_go ? 5'b01000 :
2260 (arb2_niu_l ? (niu_or_go ? 5'b00010 : niu_by_go ?
2261 5'b00001 : 5'b00000 ) :
2262 (niu_by_go ? 5'b00001 : niu_or_go ?
2263 5'b00010 : 5'b00000))))) :
2264 (arb1_r[0] ) ? ((arb2_dmu_l) ?
2265 (dmu_or_go ? 5'b01000 : dmu_by_go ? 5'b00100 :
2266 (arb2_niu_l ? (niu_or_go ? 5'b00010 : niu_by_go ?
2267 5'b00001 :
2268 tcu_go ? 5'b10000 : 5'b00000 ) :
2269 (niu_by_go ? 5'b00001 : niu_or_go ?
2270 5'b00010 :
2271 tcu_go ? 5'b10000 : 5'b00000))) :
2272 (dmu_by_go ? 5'b00100 : dmu_or_go ? 5'b01000 :
2273 (arb2_niu_l ? (niu_or_go ? 5'b00010 : niu_by_go ?
2274 5'b00001 :
2275 tcu_go ? 5'b10000 : 5'b00000 ) :
2276 (niu_by_go ? 5'b00001 : niu_or_go ?
2277 5'b00010 :
2278 tcu_go ? 5'b10000 : 5'b00000))) ) :
2279 ((arb2_niu_l) ?
2280 (niu_or_go ? 5'b00010 : niu_by_go ? 5'b00001 :
2281 (arb2_dmu_l ? (dmu_or_go ? 5'b01000 : dmu_by_go ?
2282 5'b00100 :
2283 tcu_go ? 5'b10000 : 5'b00000) :
2284 (dmu_by_go ? 5'b00100 : dmu_or_go ?
2285 5'b01000 :
2286 tcu_go ? 5'b10000 : 5'b00000))) :
2287 (niu_by_go ? 5'b00001 : niu_or_go ? 5'b00010 :
2288 (arb2_dmu_l ? (dmu_or_go ? 5'b01000 : dmu_by_go ?
2289 5'b00100 :
2290 tcu_go ? 5'b10000 : 5'b00000) :
2291 (dmu_by_go ? 5'b00100 : dmu_or_go ?
2292 5'b01000 :
2293 tcu_go ? 5'b10000 : 5'b00000))) );
2294
2295
2296assign arb1_l[1:0] = (arb1_hist_r[1:0] == 2'b01) ? 2'b00 :
2297 (arb1_hist_r[1:0] == 2'b00) ? 2'b10 : 2'b01; //01= dmu, 00=niu , 1x=tcu
2298assign arb2_dmu_l = ~dmu_hist_r;
2299
2300//1= ord, 0=byp
2301assign arb2_niu_l = ~niu_hist_r;
2302
2303assign arb1_hist_l[1:0] = (gnt_r[`DMU_O] || gnt_r[`DMU_B]) ? 2'b01 : //01=dmu, 00=niu, 1x=tcu
2304 (gnt_r[`NIU_O] || gnt_r[`NIU_B]) ? 2'b00 :
2305 (gnt_r[`TCUU]) ? 2'b10 : arb1_hist_r[1:0];
2306assign dmu_hist_l = gnt_r[`DMU_O] ? 1'b1 : gnt_r[`DMU_B] ? 1'b0 : dmu_hist_r;
2307assign niu_hist_l = gnt_r[`NIU_O] ? 1'b1 : gnt_r[`NIU_B] ? 1'b0 : niu_hist_r;
2308
2309//-------------------------------------------------------------
2310// Internal Signals assignment
2311//-------------------------------------------------------------
2312assign all_fifo_empty = (dmu_or_cnt_r[4:0] == 5'h0 ) && (dmu_by_cnt_r[4:0] == 5'h0) &&
2313 (niu_or_cnt_r[4:0] == 5'h0 ) && (niu_by_cnt_r[4:0] == 5'h0);
2314assign all_stop = ilc_ipcc_stop0 && ilc_ipcc_stop1 && ilc_ipcc_stop2 &&
2315 ilc_ipcc_stop3 && ilc_ipcc_stop4 && ilc_ipcc_stop5 &&
2316 ilc_ipcc_stop6 && ilc_ipcc_stop7 &&
2317 inc_ipcc_stop;
2318
2319assign go = dmu_or_go || dmu_by_go || niu_or_go || niu_by_go || tcu_go;
2320
2321assign add_dmu_or = io_cmp_sync_en && add_dmu_or_pre;
2322assign add_dmu_by = io_cmp_sync_en && add_dmu_by_pre;
2323assign add_niu_or = io_cmp_sync_en && add_niu_or_pre;
2324assign add_niu_by = io_cmp_sync_en && add_niu_by_pre;
2325
2326assign dmu_or_cnt_l[4:0] = (add_dmu_or && dmu_or_dq) ? dmu_or_cnt_r[4:0] :
2327 add_dmu_or ? (dmu_or_cnt_r[4:0] + 5'b00001) :
2328 dmu_or_dq ? (dmu_or_cnt_r[4:0] - 5'b00001)
2329 : dmu_or_cnt_r[4:0];
2330assign dmu_by_cnt_l[4:0] = (add_dmu_by && dmu_by_dq) ? dmu_by_cnt_r[4:0] :
2331 add_dmu_by ? (dmu_by_cnt_r[4:0] + 5'b00001) :
2332 dmu_by_dq ? (dmu_by_cnt_r[4:0] - 5'b00001)
2333 : dmu_by_cnt_r[4:0];
2334assign niu_or_cnt_l[4:0] = (add_niu_or && niu_or_dq) ? niu_or_cnt_r[4:0] :
2335 add_niu_or ? (niu_or_cnt_r[4:0] + 5'b00001) :
2336 niu_or_dq ? (niu_or_cnt_r[4:0] - 5'b00001)
2337 : niu_or_cnt_r[4:0];
2338assign niu_by_cnt_l[4:0] = (add_niu_by && niu_by_dq) ? niu_by_cnt_r[4:0] :
2339 add_niu_by ? (niu_by_cnt_r[4:0] + 5'b00001) :
2340 niu_by_dq ? (niu_by_cnt_r[4:0] - 5'b00001)
2341 : niu_by_cnt_r[4:0];
2342
2343
2344// need to include dependency, IO/L2 go, and count != 0, bit 58 = l2/io
2345assign dmu_or_go = (dmu_or_cnt_r[4:0] != 5'h0) && ((ipdohq0_dout58 && dmu_or_l2go) ||
2346 (~ipdohq0_dout58 && ~inc_ipcc_stop)) && dmu_or_dep_ok;
2347assign dmu_by_go = (dmu_by_cnt_r[4:0] != 5'h0) && ((ipdbhq0_dout58 && dmu_by_l2go) ||
2348 (~ipdbhq0_dout58 && ~inc_ipcc_stop)) && dmu_by_dep_ok;
2349assign niu_or_go = (niu_or_cnt_r[4:0] != 5'h0) && ((ipdohq1_dout58 && niu_or_l2go) ||
2350 (~ipdohq1_dout58 && ~inc_ipcc_stop)) && niu_or_dep_ok;
2351assign niu_by_go = (niu_by_cnt_r[4:0] != 5'h0) && ((ipdbhq1_dout58 && niu_by_l2go) ||
2352 (~ipdbhq1_dout58 && ~inc_ipcc_stop)) && niu_by_dep_ok;
2353
2354// counter increment signals
2355assign dmu_or_wr_inc = gnt_r[`DMU_O] && (dma_wr ) && cstate[`HDRDLY] ;
2356assign dmu_by_wr_inc = gnt_r[`DMU_B] && (dma_wr ) && cstate[`HDRDLY] ;
2357assign niu_or_wr_inc = gnt_r[`NIU_O] && (dma_wr ) && cstate[`HDRDLY] ;
2358assign niu_by_wr_inc = gnt_r[`NIU_B] && (dma_wr ) && cstate[`HDRDLY] ;
2359
2360// counter decrement signals
2361assign dmu_or_deq = ~dmu_wrm_mode && sio_sii_opcc_ipcc_dmu_or_deq_r
2362 || dmu_wrm_end;
2363assign niu_or_deq = ~niu_wrm_mode && sio_sii_opcc_ipcc_niu_or_deq_r
2364 || niu_wrm_end;
2365
2366// a pulse to decrement the write counter
2367assign dmu_wrm_end = ~dmu_wrm_mode && dmu_wrm_mode_r;
2368assign niu_wrm_end = ~niu_wrm_mode && niu_wrm_mode_r;
2369
2370assign dmu_or_op[1:0] = {dmu_or_wr_inc, dmu_or_deq };
2371assign dmu_by_op[1:0] = {dmu_by_wr_inc, sio_sii_opcc_ipcc_dmu_by_deq_r};
2372assign niu_or_op[1:0] = {niu_or_wr_inc, niu_or_deq };
2373assign niu_by_op[1:0] = {niu_by_wr_inc, sio_sii_opcc_ipcc_niu_by_deq_r};
2374
2375assign dmu_or_wr_full = & dmu_or_wr_cnt_r[1:0];
2376assign dmu_or_wr_cnt_l[1:0] = (dmu_or_op == 2'b01) ? (dmu_or_wr_cnt_r[1:0] - 2'b01) :
2377 (dmu_or_op == 2'b10) ? (dmu_or_wr_cnt_r[1:0] + 2'b01) :
2378 dmu_or_wr_cnt_r[1:0];
2379
2380always @ (dmu_by_op[1:0] or dmu_by_wr_cnt_r[3:0] or sio_sii_opcc_ipcc_dmu_by_cnt_r[3:0])
2381
2382 case (dmu_by_op[1:0])
2383 2'b01 : dmu_by_wr_cnt_l[3:0] = dmu_by_wr_cnt_r[3:0] - sio_sii_opcc_ipcc_dmu_by_cnt_r[3:0];
2384 2'b10 : dmu_by_wr_cnt_l[3:0] = dmu_by_wr_cnt_r[3:0] + 4'b0001;
2385 2'b11 : dmu_by_wr_cnt_l[3:0] = dmu_by_wr_cnt_r[3:0] + 4'b0001 -
2386 sio_sii_opcc_ipcc_dmu_by_cnt_r[3:0];
2387 2'b00 : dmu_by_wr_cnt_l[3:0] = dmu_by_wr_cnt_r[3:0];
2388 endcase
2389
2390assign niu_or_wr_full = & niu_or_wr_cnt_r[1:0];
2391assign niu_or_wr_cnt_l[1:0] = (niu_or_op == 2'b01) ? (niu_or_wr_cnt_r[1:0] - 2'b01) :
2392 (niu_or_op == 2'b10) ? (niu_or_wr_cnt_r[1:0] + 2'b01) :
2393 niu_or_wr_cnt_r[1:0];
2394
2395assign niu_by_wr_full = (niu_by_wr_cnt_r[3:0] == 4'b1000);
2396
2397always @ (niu_by_op[1:0] or sio_sii_opcc_ipcc_niu_by_cnt_r[3:0] or niu_by_wr_cnt_r[3:0])
2398
2399 case (niu_by_op[1:0])
2400 2'b01 : niu_by_wr_cnt_l[3:0] = niu_by_wr_cnt_r[3:0] - sio_sii_opcc_ipcc_niu_by_cnt_r[3:0];
2401 2'b10 : niu_by_wr_cnt_l[3:0] = niu_by_wr_cnt_r[3:0] + 4'b0001;
2402 2'b11 : niu_by_wr_cnt_l[3:0] = niu_by_wr_cnt_r[3:0] + 4'b0001 -
2403 sio_sii_opcc_ipcc_niu_by_cnt_r[3:0];
2404 2'b00 : niu_by_wr_cnt_l[3:0] = niu_by_wr_cnt_r[3:0];
2405 endcase
2406
2407assign niu_by_wr_cnt_snap_l[3:0] = niu_or_wr_inc ? niu_by_wr_cnt_l[3:0] :
2408 (sio_sii_opcc_ipcc_niu_by_deq_r & (|niu_by_wr_cnt_snap_r[3:0]))
2409 ? niu_by_wr_cnt_dec[3:0] :
2410 niu_by_wr_cnt_snap_r[3:0];
2411
2412assign niu_by_wr_cnt_dec[3:0] = (niu_by_wr_cnt_snap_r[3:0] > niu_by_wr_cnt_snap_r[3:0]) ?
2413 niu_by_wr_cnt_snap_r[3:0] - sio_sii_opcc_ipcc_niu_by_cnt_r[3:0] :
2414 4'b0000 ;
2415
2416
2417//Keep track of write merge, no dequeue should count on the dmu_or_cnt;
2418assign dmu_wrm_mode = | dmu_wrm_cnt_r[3:0] || ilc_dmu_wrm;
2419assign niu_wrm_mode = | niu_wrm_cnt_r[3:0] || ilc_niu_wrm;
2420
2421assign ilc_dmu_wrm = ilc_ipcc_dmu_wrm0 | ilc_ipcc_dmu_wrm1 | ilc_ipcc_dmu_wrm2 |
2422 ilc_ipcc_dmu_wrm3 | ilc_ipcc_dmu_wrm4 | ilc_ipcc_dmu_wrm5 |
2423 ilc_ipcc_dmu_wrm6 | ilc_ipcc_dmu_wrm7;
2424
2425assign ilc_niu_wrm = ilc_ipcc_niu_wrm0 | ilc_ipcc_niu_wrm1 | ilc_ipcc_niu_wrm2 |
2426 ilc_ipcc_niu_wrm3 | ilc_ipcc_niu_wrm4 | ilc_ipcc_niu_wrm5 |
2427 ilc_ipcc_niu_wrm6 | ilc_ipcc_niu_wrm7;
2428
2429assign dmu_wrm_inc = ilc_ipcc_dmu_wrm_dq0 | ilc_ipcc_dmu_wrm_dq1 | ilc_ipcc_dmu_wrm_dq2 |
2430 ilc_ipcc_dmu_wrm_dq3 | ilc_ipcc_dmu_wrm_dq4 | ilc_ipcc_dmu_wrm_dq5 |
2431 ilc_ipcc_dmu_wrm_dq6 | ilc_ipcc_dmu_wrm_dq7;
2432
2433assign niu_wrm_inc = ilc_ipcc_niu_wrm_dq0 | ilc_ipcc_niu_wrm_dq1 | ilc_ipcc_niu_wrm_dq2 |
2434 ilc_ipcc_niu_wrm_dq3 | ilc_ipcc_niu_wrm_dq4 | ilc_ipcc_niu_wrm_dq5 |
2435 ilc_ipcc_niu_wrm_dq6 | ilc_ipcc_niu_wrm_dq7;
2436
2437assign dmu_wrm_op[1:0] = {dmu_wrm_inc, sio_sii_opcc_ipcc_dmu_or_deq_r && dmu_wrm_mode};
2438assign niu_wrm_op[1:0] = {niu_wrm_inc, sio_sii_opcc_ipcc_niu_or_deq_r && niu_wrm_mode};
2439
2440assign dmu_wrm_cnt_l[3:0] = (dmu_wrm_op == 2'b01) ? (dmu_wrm_cnt_r[3:0] - 4'b0001) :
2441 (dmu_wrm_op == 2'b10) ? (dmu_wrm_cnt_r[3:0] + 4'b0001) :
2442 dmu_wrm_cnt_r[3:0];
2443assign niu_wrm_cnt_l[3:0] = (niu_wrm_op == 2'b01) ? (niu_wrm_cnt_r[3:0] - 4'b0001) :
2444 (niu_wrm_op == 2'b10) ? (niu_wrm_cnt_r[3:0] + 4'b0001) :
2445 niu_wrm_cnt_r[3:0];
2446
2447//----------------------------------------------------------------------
2448// Create new header for ILDq, INDq
2449//----------------------------------------------------------------------
2450assign newhdr_l2[63:0] = sii_mb1_run_r ? curhdr[63:0] :
2451 {jtag, cur_or_by, posted, hdr_err, cur_source, curhdr[61:59],
2452 newid[15:0], out_of_bound, pa[36:0], 2'b00};
2453assign newhdr_nc[63:0] = sii_mb1_run_r ? curhdr[63:0] :
2454 {32'h00000000, timeout, unmap, uncorr, hdr_err,
2455 6'h00, new_c[5:0], newid[15:0]};
2456// cmd[2:0] = 001 RDD, 010 WRM , 100 WRI
2457assign hdr_err = cmd_parity_err || addr_parity_err || ctag_ecc_ue;
2458assign cur_or_by = gnt_r[`DMU_O] || gnt_r[`NIU_O];
2459assign cur_source = gnt_r[`DMU_O] || gnt_r[`DMU_B];
2460assign dma_wr = l2_io && (curhdr[61] || curhdr[60]);
2461assign wrm = cstate[`ARB] ? (l2_io && curhdr[60]) : wrm_r;
2462assign rd_wr = curhdr[59]; //rd =1 , wr=0
2463assign l2_io = curhdr[58];
2464assign posted = curhdr[57];
2465assign id[15:0] = curhdr[56:41];
2466assign timeout = curhdr[40];
2467assign unmap = curhdr[39];
2468assign uncorr = curhdr[38];
2469assign curbank[2:0] = ~ncu_sii_pm ? curhdr[6:4] : partialbank[2:0];
2470assign jtag = gnt_r[4];
2471
2472assign out_of_bound = hdr_err && ~rd_wr;
2473//assign out_of_bound = hdr_err && ~rd_wr ? 1'b1 : pa[37];
2474assign pa[37:0] = (ncu_sii_l2_idx_hash_en && ~curhdr[37]) ?
2475 {curhdr[37:16], hash1[4:0], hash2[1:0], curhdr[8:0] } : curhdr[37:0];
2476assign hash1[4:0] = curhdr[30:26] ^ curhdr[15:11];
2477assign hash2[1:0] = curhdr[17:16] ^ curhdr[10:9];
2478
2479//---------------------------------------
2480// RAS related changes for HEADER ERRORS
2481//---------------------------------------
2482//assign addr_parity[1:0] = curhdr[65:64];
2483
2484assign hdr_cycle = cstate[`HDRDLY];
2485assign ctag_ecc_ue = jtag ? 1'b0 : |e[4:0] && (~e[5] || (e[4:0] > 5'd21)) && hdr_cycle ;
2486assign ctag_ecc_ce = jtag ? 1'b0 : (e[4:0] <= 5'd21) && e[5] && hdr_cycle;
2487
2488assign cmd_parity_err = jtag ? 1'b0 : hdr_cycle && (~curhdr[63] ^ curhdr[62] ^ curhdr[61]
2489 ^ curhdr[60] ^ curhdr[59] ^ curhdr[58]) ;
2490assign addr_parity_err = jtag ? 1'b0 : hdr_cycle && (~addr_par_odd || ~addr_par_even) ;
2491
2492assign addr_par_odd = curhdr[37] ^ curhdr[35] ^ curhdr[33] ^ curhdr[31] ^ curhdr[29] ^ curhdr[27] ^ curhdr[25] ^
2493 curhdr[23] ^ curhdr[21] ^ curhdr[19] ^ curhdr[17] ^ curhdr[15] ^ curhdr[13] ^ curhdr[11] ^
2494 curhdr[9] ^ curhdr[7] ^ curhdr[5] ^ curhdr[3] ^ curhdr[1] ^ curhdr[65] ;
2495
2496assign addr_par_even = curhdr[36] ^ curhdr[34] ^ curhdr[32] ^ curhdr[30] ^ curhdr[28] ^ curhdr[26] ^ curhdr[24] ^
2497 curhdr[22] ^ curhdr[20] ^ curhdr[18] ^ curhdr[16] ^ curhdr[14] ^ curhdr[12] ^ curhdr[10] ^
2498 curhdr[8] ^ curhdr[6] ^ curhdr[4] ^ curhdr[2] ^ curhdr[0] ^ curhdr[64] ;
2499
2500//----------------------------------------
2501// CTAG ERROR CORRECTION AND CHECKING
2502//----------------------------------------
2503assign c[5:0] = curhdr[71:66];
2504
2505//assign p[0] = id[0] ^ id[1] ^ id[3] ^ id[4] ^ id[6] ^ id[8] ^ id[10] ^ id[11] ^id[13] ^ id[15];
2506//assign p[1] = id[0] ^ id[2] ^ id[3] ^ id[5] ^ id[6] ^ id[9] ^ id[10] ^ id[12] ^id[13] ;
2507//assign p[2] = id[1] ^ id[2] ^ id[3] ^ id[7] ^ id[8] ^ id[9] ^ id[10] ^ id[14] ^id[15] ;
2508//assign p[3] = id[4] ^ id[5] ^ id[6] ^ id[7] ^ id[8] ^ id[9] ^ id[10] ;
2509//assign p[4] = id[11] ^ id[12] ^ id[13] ^ id[14] ^ id[15] ;
2510//assign p[5] = id[0] ^ id[1] ^ id[2] ^ id[3] ^ id[4] ^ id[5] ^ id[6] ^ id[7] ^ id[8] ^ id[9] ^
2511// id[10] ^ id[11] ^ id[12] ^ id[13] ^ id[14] ^id[15] ^ c[0] ^ c[1] ^ c[2] ^ c[3] ^ c[4];
2512
2513//assign e[0] = p[0] ^ c[0];
2514//assign e[1] = p[1] ^ c[1];
2515//assign e[2] = p[2] ^ c[2];
2516//assign e[3] = p[3] ^ c[3];
2517//assign e[4] = p[4] ^ c[4];
2518//assign e[5] = p[5] ^ c[5];
2519
2520always @ ( id[15:0] or c[5:0] )
2521 begin
2522
2523 p[0] = id[0] ^ id[1] ^ id[3] ^ id[4] ^ id[6] ^ id[8] ^ id[10] ^ id[11] ^id[13] ^ id[15];
2524 p[1] = id[0] ^ id[2] ^ id[3] ^ id[5] ^ id[6] ^ id[9] ^ id[10] ^ id[12] ^id[13] ;
2525 p[2] = id[1] ^ id[2] ^ id[3] ^ id[7] ^ id[8] ^ id[9] ^ id[10] ^ id[14] ^id[15] ;
2526 p[3] = id[4] ^ id[5] ^ id[6] ^ id[7] ^ id[8] ^ id[9] ^ id[10] ;
2527 p[4] = id[11] ^ id[12] ^ id[13] ^ id[14] ^ id[15] ;
2528 p[5] = id[0] ^ id[1] ^ id[2] ^ id[3] ^ id[4] ^ id[5] ^ id[6] ^ id[7] ^ id[8] ^ id[9] ^
2529 id[10] ^ id[11] ^ id[12] ^ id[13] ^ id[14] ^id[15] ^ c[0] ^ c[1] ^ c[2] ^ c[3] ^ c[4];
2530
2531 e[0] = p[0] ^ c[0];
2532 e[1] = p[1] ^ c[1];
2533 e[2] = p[2] ^ c[2];
2534 e[3] = p[3] ^ c[3];
2535 e[4] = p[4] ^ c[4];
2536 e[5] = p[5] ^ c[5];
2537
2538 new_c[5:0] = c[5:0];
2539 newid[15:0] = id[15:0];
2540
2541 if (e[5])
2542 begin
2543 case (e[4:0]) //synopsys parallel_case
2544 5'b00000 : new_c[5] = ~c[5];
2545 5'b00001 : new_c[0] = ~c[0];
2546 5'b00010 : new_c[1] = ~c[1];
2547 5'b00011 : newid[0] = ~id[0];
2548 5'b00100 : new_c[2] = ~c[2];
2549 5'b00101 : newid[1] = ~id[1];
2550 5'b00110 : newid[2] = ~id[2];
2551 5'b00111 : newid[3] = ~id[3];
2552 5'b01000 : new_c[3] = ~c[3];
2553 5'b01001 : newid[4] = ~id[4];
2554 5'b01010 : newid[5] = ~id[5];
2555 5'b01011 : newid[6] = ~id[6];
2556 5'b01100 : newid[7] = ~id[7];
2557 5'b01101 : newid[8] = ~id[8];
2558 5'b01110 : newid[9] = ~id[9];
2559 5'b01111 : newid[10] = ~id[10];
2560 5'b10000 : new_c[4] = ~c[4];
2561 5'b10001 : newid[11] = ~id[11];
2562 5'b10010 : newid[12] = ~id[12];
2563 5'b10011 : newid[13] = ~id[13];
2564 5'b10100 : newid[14] = ~id[14];
2565 5'b10101 : newid[15] = ~id[15];
2566 default : begin
2567 newid[15:0] = id[15:0] ;
2568 new_c[5:0] = c[5:0];
2569 end
2570 endcase
2571 end
2572
2573 end
2574
2575
2576//----------------------
2577// Partial Bank Mapping
2578//----------------------
2579
2580always @ ( ncu_sii_pm or ncu_sii_ba01 or ncu_sii_ba23 or ncu_sii_ba45 or ncu_sii_ba67
2581 or dmu_or_bank_ext[2:0])
2582 if (~ncu_sii_pm)
2583 dmu_or_bank[2:0] = dmu_or_bank_ext[2:0];
2584 else
2585 case ({ncu_sii_ba67, ncu_sii_ba45, ncu_sii_ba23, ncu_sii_ba01})
2586 4'b0000 : dmu_or_bank[2:0] = {1'b0, 1'b0, dmu_or_bank_ext[0]}; //illegal
2587 4'b0001 : dmu_or_bank[2:0] = {1'b0, 1'b0, dmu_or_bank_ext[0]};
2588 4'b0010 : dmu_or_bank[2:0] = {1'b0, 1'b1, dmu_or_bank_ext[0]};
2589 4'b0011 : dmu_or_bank[2:0] = {1'b0, dmu_or_bank_ext[1], dmu_or_bank_ext[0]};
2590 4'b0100 : dmu_or_bank[2:0] = {1'b1, 1'b0, dmu_or_bank_ext[0]};
2591 4'b0101 : dmu_or_bank[2:0] = {dmu_or_bank_ext[1], 1'b0, dmu_or_bank_ext[0]};
2592 4'b0110 : dmu_or_bank[2:0] = {dmu_or_bank_ext[1], ~dmu_or_bank_ext[1],
2593 dmu_or_bank_ext[0]};
2594 4'b0111 : dmu_or_bank[2:0] = {1'b0, dmu_or_bank_ext[1], dmu_or_bank_ext[0]}; //illegal
2595 4'b1000 : dmu_or_bank[2:0] = {1'b1, 1'b1, dmu_or_bank_ext[0]};
2596 4'b1001 : dmu_or_bank[2:0] = {dmu_or_bank_ext[1], dmu_or_bank_ext[1],
2597 dmu_or_bank_ext[0]};
2598// fix bug 110123 / ECO 110283
2599 4'b1010 : dmu_or_bank[2:0] = {dmu_or_bank_ext[1], 1'b1,dmu_or_bank_ext[0]};
2600 4'b1011 : dmu_or_bank[2:0] = {1'b0, dmu_or_bank_ext[1], dmu_or_bank_ext[0]}; //illegal
2601 4'b1100 : dmu_or_bank[2:0] = {1'b1, dmu_or_bank_ext[1], dmu_or_bank_ext[0]};
2602 4'b1101 : dmu_or_bank[2:0] = {1'b1, dmu_or_bank_ext[1], dmu_or_bank_ext[0]}; //illegal
2603 4'b1110 : dmu_or_bank[2:0] = {1'b1, dmu_or_bank_ext[1], dmu_or_bank_ext[0]}; //illegal
2604 4'b1111 : dmu_or_bank[2:0] = dmu_or_bank_ext[2:0];
2605 default : dmu_or_bank[2:0] = dmu_or_bank_ext[2:0];
2606 endcase
2607
2608always @ ( ncu_sii_pm or ncu_sii_ba01 or ncu_sii_ba23 or ncu_sii_ba45 or ncu_sii_ba67
2609 or dmu_by_bank_ext[2:0])
2610 if (~ncu_sii_pm)
2611 dmu_by_bank[2:0] = dmu_by_bank_ext[2:0];
2612 else
2613 case ({ncu_sii_ba67, ncu_sii_ba45, ncu_sii_ba23, ncu_sii_ba01})
2614 4'b0000 : dmu_by_bank[2:0] = {1'b0, 1'b0, dmu_by_bank_ext[0]}; //illegal
2615 4'b0001 : dmu_by_bank[2:0] = {1'b0, 1'b0, dmu_by_bank_ext[0]};
2616 4'b0010 : dmu_by_bank[2:0] = {1'b0, 1'b1, dmu_by_bank_ext[0]};
2617 4'b0011 : dmu_by_bank[2:0] = {1'b0, dmu_by_bank_ext[1], dmu_by_bank_ext[0]};
2618 4'b0100 : dmu_by_bank[2:0] = {1'b1, 1'b0, dmu_by_bank_ext[0]};
2619 4'b0101 : dmu_by_bank[2:0] = {dmu_by_bank_ext[1], 1'b0, dmu_by_bank_ext[0]};
2620 4'b0110 : dmu_by_bank[2:0] = {dmu_by_bank_ext[1], ~dmu_by_bank_ext[1],
2621 dmu_by_bank_ext[0]};
2622 4'b0111 : dmu_by_bank[2:0] = {1'b0, dmu_by_bank_ext[1], dmu_by_bank_ext[0]}; //illegal
2623 4'b1000 : dmu_by_bank[2:0] = {1'b1, 1'b1, dmu_by_bank_ext[0]};
2624 4'b1001 : dmu_by_bank[2:0] = {dmu_by_bank_ext[1], dmu_by_bank_ext[1],
2625 dmu_by_bank_ext[0]};
2626// fix bug 110123 / ECO 110283
2627
2628 4'b1010 : dmu_by_bank[2:0] = {dmu_by_bank_ext[1], 1'b1,dmu_by_bank_ext[0]};
2629 4'b1011 : dmu_by_bank[2:0] = {1'b0, dmu_by_bank_ext[1], dmu_by_bank_ext[0]}; //illegal
2630 4'b1100 : dmu_by_bank[2:0] = {1'b1, dmu_by_bank_ext[1], dmu_by_bank_ext[0]};
2631 4'b1101 : dmu_by_bank[2:0] = {1'b1, dmu_by_bank_ext[1], dmu_by_bank_ext[0]}; //illegal
2632 4'b1110 : dmu_by_bank[2:0] = {1'b1, dmu_by_bank_ext[1], dmu_by_bank_ext[0]}; //illegal
2633 4'b1111 : dmu_by_bank[2:0] = dmu_by_bank_ext[2:0];
2634 default : dmu_by_bank[2:0] = dmu_by_bank_ext[2:0];
2635 endcase
2636
2637always @ ( ncu_sii_pm or ncu_sii_ba01 or ncu_sii_ba23 or ncu_sii_ba45 or ncu_sii_ba67
2638 or niu_or_bank_ext[2:0])
2639 if (~ncu_sii_pm)
2640 niu_or_bank[2:0] = niu_or_bank_ext[2:0];
2641 else
2642 case ({ncu_sii_ba67, ncu_sii_ba45, ncu_sii_ba23, ncu_sii_ba01})
2643 4'b0000 : niu_or_bank[2:0] = {1'b0, 1'b0, niu_or_bank_ext[0]}; //illegal
2644 4'b0001 : niu_or_bank[2:0] = {1'b0, 1'b0, niu_or_bank_ext[0]};
2645 4'b0010 : niu_or_bank[2:0] = {1'b0, 1'b1, niu_or_bank_ext[0]};
2646 4'b0011 : niu_or_bank[2:0] = {1'b0, niu_or_bank_ext[1], niu_or_bank_ext[0]};
2647 4'b0100 : niu_or_bank[2:0] = {1'b1, 1'b0, niu_or_bank_ext[0]};
2648 4'b0101 : niu_or_bank[2:0] = {niu_or_bank_ext[1], 1'b0, niu_or_bank_ext[0]};
2649 4'b0110 : niu_or_bank[2:0] = {niu_or_bank_ext[1], ~niu_or_bank_ext[1],
2650 niu_or_bank_ext[0]};
2651 4'b0111 : niu_or_bank[2:0] = {1'b0, niu_or_bank_ext[1], niu_or_bank_ext[0]}; //illegal
2652 4'b1000 : niu_or_bank[2:0] = {1'b1, 1'b1, niu_or_bank_ext[0]};
2653 4'b1001 : niu_or_bank[2:0] = {niu_or_bank_ext[1], niu_or_bank_ext[1],
2654 niu_or_bank_ext[0]};
2655// fix bug 110123 / ECO 110283
2656
2657 4'b1010 : niu_or_bank[2:0] = {niu_or_bank_ext[1], 1'b1,niu_or_bank_ext[0]};
2658 4'b1011 : niu_or_bank[2:0] = {1'b0, niu_or_bank_ext[1], niu_or_bank_ext[0]}; //illegal
2659 4'b1100 : niu_or_bank[2:0] = {1'b1, niu_or_bank_ext[1], niu_or_bank_ext[0]};
2660 4'b1101 : niu_or_bank[2:0] = {1'b1, niu_or_bank_ext[1], niu_or_bank_ext[0]}; //illegal
2661 4'b1110 : niu_or_bank[2:0] = {1'b1, niu_or_bank_ext[1], niu_or_bank_ext[0]}; //illegal
2662 4'b1111 : niu_or_bank[2:0] = niu_or_bank_ext[2:0];
2663 default : niu_or_bank[2:0] = niu_or_bank_ext[2:0];
2664 endcase
2665
2666always @ ( ncu_sii_pm or ncu_sii_ba01 or ncu_sii_ba23 or ncu_sii_ba45 or ncu_sii_ba67
2667 or niu_by_bank_ext[2:0])
2668 if (~ncu_sii_pm)
2669 niu_by_bank[2:0] = niu_by_bank_ext[2:0];
2670 else
2671 case ({ncu_sii_ba67, ncu_sii_ba45, ncu_sii_ba23, ncu_sii_ba01})
2672 4'b0000 : niu_by_bank[2:0] = {1'b0, 1'b0, niu_by_bank_ext[0]}; //illegal
2673 4'b0001 : niu_by_bank[2:0] = {1'b0, 1'b0, niu_by_bank_ext[0]};
2674 4'b0010 : niu_by_bank[2:0] = {1'b0, 1'b1, niu_by_bank_ext[0]};
2675 4'b0011 : niu_by_bank[2:0] = {1'b0, niu_by_bank_ext[1], niu_by_bank_ext[0]};
2676 4'b0100 : niu_by_bank[2:0] = {1'b1, 1'b0, niu_by_bank_ext[0]};
2677 4'b0101 : niu_by_bank[2:0] = {niu_by_bank_ext[1], 1'b0, niu_by_bank_ext[0]};
2678 4'b0110 : niu_by_bank[2:0] = {niu_by_bank_ext[1], ~niu_by_bank_ext[1],
2679 niu_by_bank_ext[0]};
2680 4'b0111 : niu_by_bank[2:0] = {1'b0, niu_by_bank_ext[1], niu_by_bank_ext[0]}; //illegal
2681 4'b1000 : niu_by_bank[2:0] = {1'b1, 1'b1, niu_by_bank_ext[0]};
2682 4'b1001 : niu_by_bank[2:0] = {niu_by_bank_ext[1], niu_by_bank_ext[1],
2683 niu_by_bank_ext[0]};
2684// fix bug 110123 / ECO 110283
2685
2686 4'b1010 : niu_by_bank[2:0] = {niu_by_bank_ext[1], 1'b1,niu_by_bank_ext[0]};
2687 4'b1011 : niu_by_bank[2:0] = {1'b0, niu_by_bank_ext[1], niu_by_bank_ext[0]}; //illegal
2688 4'b1100 : niu_by_bank[2:0] = {1'b1, niu_by_bank_ext[1], niu_by_bank_ext[0]};
2689 4'b1101 : niu_by_bank[2:0] = {1'b1, niu_by_bank_ext[1], niu_by_bank_ext[0]}; //illegal
2690 4'b1110 : niu_by_bank[2:0] = {1'b1, niu_by_bank_ext[1], niu_by_bank_ext[0]}; //illegal
2691 4'b1111 : niu_by_bank[2:0] = niu_by_bank_ext[2:0];
2692 default : niu_by_bank[2:0] = niu_by_bank_ext[2:0];
2693 endcase
2694
2695always @ ( ncu_sii_ba01 or ncu_sii_ba23 or ncu_sii_ba45 or ncu_sii_ba67 or curhdr[6:4])
2696 case ({ncu_sii_ba67, ncu_sii_ba45, ncu_sii_ba23, ncu_sii_ba01})
2697 4'b0000 : partialbank[2:0] = {1'b0, 1'b0, curhdr[4]}; //illegal
2698 4'b0001 : partialbank[2:0] = {1'b0, 1'b0, curhdr[4]};
2699 4'b0010 : partialbank[2:0] = {1'b0, 1'b1, curhdr[4]};
2700 4'b0011 : partialbank[2:0] = {1'b0, curhdr[5], curhdr[4]};
2701 4'b0100 : partialbank[2:0] = {1'b1, 1'b0, curhdr[4]};
2702 4'b0101 : partialbank[2:0] = {curhdr[5], 1'b0, curhdr[4]};
2703 4'b0110 : partialbank[2:0] = {curhdr[5], ~curhdr[5], curhdr[4]};
2704 4'b0111 : partialbank[2:0] = {1'b0, curhdr[5], curhdr[4]}; //illegal
2705 4'b1000 : partialbank[2:0] = {1'b1, 1'b1, curhdr[4]};
2706 4'b1001 : partialbank[2:0] = {curhdr[5], curhdr[5], curhdr[4]};
2707
2708// fix bug 110123 / ECO 110283
2709
2710 4'b1010 : partialbank[2:0] = {curhdr[5], 1'b1, curhdr[4]};
2711 4'b1011 : partialbank[2:0] = {1'b0, curhdr[5], curhdr[4]}; //illegal
2712 4'b1100 : partialbank[2:0] = {1'b1, curhdr[5], curhdr[4]};
2713 4'b1101 : partialbank[2:0] = {1'b1, curhdr[5], curhdr[4]}; //illegal
2714 4'b1110 : partialbank[2:0] = {1'b1, curhdr[5], curhdr[4]}; //illegal
2715 4'b1111 : partialbank[2:0] = curhdr[6:4];
2716 default : partialbank[2:0] = curhdr[6:4];
2717
2718 endcase
2719
2720
2721// Parity checking logic for reading out from ipdodq, ipdbdq
2722//---------------------------------------------------------------------
2723// Compose the current granted queue's header header and data
2724//---------------------------------------------------------------------
2725
2726//----------------------------------------------------------------------
2727// *********************************************************************
2728// For Ordered Queue :
2729// -----------------
2730// DMA Write/Read/Intr/Flush/Read return:
2731// 1. Wait for corresponding dependence transaction removed from
2732// the Bypass queue (if any).
2733// 2. Wait for the bypass queue write counter == 0
2734// ---> Read Return dequeue
2735// 3. Check if the bank# of current transaction == trackid, if yes
2736// ---> DMA Wr/Rd and Interrupt dequeue
2737// 4. If no, wait for Ordered write counter == 0,
2738// ---> Flush, DMA Wr/Rd, Interrupt dequeue
2739// Note : Flush need to send a return package to the return path
2740//
2741// *********************************************************************
2742// For Bypass Queue :
2743// -----------------
2744// All transactions only need to wait for corresponding dependece
2745// transaction removed from the ordered queue.
2746//
2747//----------------------------------------------------------------------
2748// ipdohq0_dout[62] = ??
2749
2750assign dmu_or_dep_ok = (dmu_by_wr_cnt_r[3:0] == 4'b0000) && ~dmu_or_dep && ~dmu_or_wr_full &&
2751 dmu_all_ack ? 1'b1 : 1'b0;
2752
2753assign dmu_all_ack = (dmu_or_wr_cnt_r[1:0] == 2'b00) && (dmu_wrm_cnt_r[3:0] == 4'b0000);
2754assign dmu_by_dep_ok = ~dmu_by_dep & dmu_all_ack; // TO2.2 ECO - bug #125463
2755
2756assign niu_all_ack = (niu_or_wr_cnt_r[1:0] == 2'b00) && (niu_wrm_cnt_r[3:0] == 4'b0000);
2757
2758//assign niu_or_dep_ok = (niu_by_wr_cnt_r[3:0] == 4'b0000) && ~niu_or_dep && ~niu_or_wr_full &&
2759// niu_all_ack ? 1'b1 : 1'b0;
2760assign niu_or_dep_ok = (niu_by_wr_cnt_snap_r[3:0] == 4'b0000) && ~niu_or_dep && ~niu_or_wr_full &&
2761 niu_all_ack ? 1'b1 : 1'b0;
2762
2763assign niu_by_dep_ok = ~niu_by_dep && ~niu_by_wr_full;
2764
2765always @ (ipcc_ipdohq0_rd_addr[3:0] or ipcs_ipcc_dmu_or_dep_sync[15:0])
2766 case (ipcc_ipdohq0_rd_addr[3:0]) //synopsys parallel_case full_case
2767 4'b0000 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[0];
2768 4'b0001 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[1];
2769 4'b0010 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[2];
2770 4'b0011 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[3];
2771 4'b0100 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[4];
2772 4'b0101 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[5];
2773 4'b0110 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[6];
2774 4'b0111 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[7];
2775 4'b1000 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[8];
2776 4'b1001 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[9];
2777 4'b1010 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[10];
2778 4'b1011 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[11];
2779 4'b1100 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[12];
2780 4'b1101 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[13];
2781 4'b1110 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[14];
2782 4'b1111 : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[15];
2783 default : dmu_or_dep = ipcs_ipcc_dmu_or_dep_sync[0]; // 0in < fire -message "ERROR: sii_ipcc dmu_or_dep default case"
2784 endcase
2785
2786always @ (ipcc_ipdbhq0_rd_addr[3:0] or ipcs_ipcc_dmu_by_dep_sync[15:0])
2787 case (ipcc_ipdbhq0_rd_addr[3:0]) //synopsys parallel_case full_case
2788 4'b0000 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[0];
2789 4'b0001 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[1];
2790 4'b0010 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[2];
2791 4'b0011 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[3];
2792 4'b0100 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[4];
2793 4'b0101 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[5];
2794 4'b0110 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[6];
2795 4'b0111 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[7];
2796 4'b1000 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[8];
2797 4'b1001 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[9];
2798 4'b1010 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[10];
2799 4'b1011 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[11];
2800 4'b1100 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[12];
2801 4'b1101 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[13];
2802 4'b1110 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[14];
2803 4'b1111 : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[15];
2804 default : dmu_by_dep = ipcs_ipcc_dmu_by_dep_sync[0]; // 0in < fire -message "ERROR: sii_ipcc dmu_by_dep default case"
2805 endcase
2806
2807always @ (ipcc_ipdohq1_rd_addr[3:0] or ipcs_ipcc_niu_or_dep_sync[15:0])
2808 case (ipcc_ipdohq1_rd_addr[3:0])
2809 4'b0000 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[0];
2810 4'b0001 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[1];
2811 4'b0010 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[2];
2812 4'b0011 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[3];
2813 4'b0100 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[4];
2814 4'b0101 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[5];
2815 4'b0110 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[6];
2816 4'b0111 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[7];
2817 4'b1000 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[8];
2818 4'b1001 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[9];
2819 4'b1010 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[10];
2820 4'b1011 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[11];
2821 4'b1100 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[12];
2822 4'b1101 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[13];
2823 4'b1110 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[14];
2824 4'b1111 : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[15];
2825 default : niu_or_dep = ipcs_ipcc_niu_or_dep_sync[0]; // 0in < fire -message "ERROR: sii_ipcc niu_or_dep default case"
2826 endcase
2827
2828always @ (ipcc_ipdbhq1_rd_addr[3:0] or ipcs_ipcc_niu_by_dep_sync[15:0])
2829 case (ipcc_ipdbhq1_rd_addr[3:0])
2830 4'b0000 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[0];
2831 4'b0001 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[1];
2832 4'b0010 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[2];
2833 4'b0011 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[3];
2834 4'b0100 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[4];
2835 4'b0101 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[5];
2836 4'b0110 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[6];
2837 4'b0111 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[7];
2838 4'b1000 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[8];
2839 4'b1001 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[9];
2840 4'b1010 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[10];
2841 4'b1011 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[11];
2842 4'b1100 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[12];
2843 4'b1101 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[13];
2844 4'b1110 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[14];
2845 4'b1111 : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[15];
2846 default : niu_by_dep = ipcs_ipcc_niu_by_dep_sync[0]; // 0in < fire -message "ERROR: sii_ipcc niu_by_dep default case"
2847 endcase
2848
2849
2850//-------------------------------------------------------------
2851// Find out the bank availablility for each queue
2852//-------------------------------------------------------------
2853always @ (dmu_or_bank[2:0] or ilc_ipcc_stop0 or ilc_ipcc_stop1 or
2854 ilc_ipcc_stop2 or ilc_ipcc_stop3 or ilc_ipcc_stop4 or
2855 ilc_ipcc_stop5 or ilc_ipcc_stop6 or ilc_ipcc_stop7)
2856 case (dmu_or_bank[2:0]) //synopsys parallel_case full_case
2857 3'b000 : dmu_or_l2go = ~ilc_ipcc_stop0;
2858 3'b001 : dmu_or_l2go = ~ilc_ipcc_stop1;
2859 3'b010 : dmu_or_l2go = ~ilc_ipcc_stop2;
2860 3'b011 : dmu_or_l2go = ~ilc_ipcc_stop3;
2861 3'b100 : dmu_or_l2go = ~ilc_ipcc_stop4;
2862 3'b101 : dmu_or_l2go = ~ilc_ipcc_stop5;
2863 3'b110 : dmu_or_l2go = ~ilc_ipcc_stop6;
2864 3'b111 : dmu_or_l2go = ~ilc_ipcc_stop7;
2865 default : begin
2866 dmu_or_l2go = ~ilc_ipcc_stop0;
2867 // 0in < fire -message "ERROR: sii_ipcc dmu_or_l2go default case"
2868 end
2869 endcase
2870
2871always @ (dmu_by_bank[2:0] or ilc_ipcc_stop0 or ilc_ipcc_stop1 or
2872 ilc_ipcc_stop2 or ilc_ipcc_stop3 or ilc_ipcc_stop4 or
2873 ilc_ipcc_stop5 or ilc_ipcc_stop6 or ilc_ipcc_stop7)
2874 case (dmu_by_bank[2:0]) //synopsys parallel_case full_case
2875 3'b000 : dmu_by_l2go = ~ilc_ipcc_stop0;
2876 3'b001 : dmu_by_l2go = ~ilc_ipcc_stop1;
2877 3'b010 : dmu_by_l2go = ~ilc_ipcc_stop2;
2878 3'b011 : dmu_by_l2go = ~ilc_ipcc_stop3;
2879 3'b100 : dmu_by_l2go = ~ilc_ipcc_stop4;
2880 3'b101 : dmu_by_l2go = ~ilc_ipcc_stop5;
2881 3'b110 : dmu_by_l2go = ~ilc_ipcc_stop6;
2882 3'b111 : dmu_by_l2go = ~ilc_ipcc_stop7;
2883 default : begin
2884 dmu_by_l2go = ~ilc_ipcc_stop0;
2885 // 0in < fire -message "ERROR: sii_ipcc dmu_by_l2go default case"
2886 end
2887 endcase
2888
2889always @ (niu_or_bank[2:0] or ilc_ipcc_stop0 or ilc_ipcc_stop1 or
2890 ilc_ipcc_stop2 or ilc_ipcc_stop3 or ilc_ipcc_stop4 or
2891 ilc_ipcc_stop5 or ilc_ipcc_stop6 or ilc_ipcc_stop7)
2892 case (niu_or_bank[2:0]) //synopsys parallel_case full_case
2893 3'b000 : niu_or_l2go = ~ilc_ipcc_stop0;
2894 3'b001 : niu_or_l2go = ~ilc_ipcc_stop1;
2895 3'b010 : niu_or_l2go = ~ilc_ipcc_stop2;
2896 3'b011 : niu_or_l2go = ~ilc_ipcc_stop3;
2897 3'b100 : niu_or_l2go = ~ilc_ipcc_stop4;
2898 3'b101 : niu_or_l2go = ~ilc_ipcc_stop5;
2899 3'b110 : niu_or_l2go = ~ilc_ipcc_stop6;
2900 3'b111 : niu_or_l2go = ~ilc_ipcc_stop7;
2901 default : begin
2902 // 0in < fire -message "ERROR: sii_ipcc niu_or_l2go default case"
2903 niu_or_l2go = ~ilc_ipcc_stop0;
2904 end
2905 endcase
2906
2907always @ (niu_by_bank[2:0] or ilc_ipcc_stop0 or ilc_ipcc_stop1 or
2908 ilc_ipcc_stop2 or ilc_ipcc_stop3 or ilc_ipcc_stop4 or
2909 ilc_ipcc_stop5 or ilc_ipcc_stop6 or ilc_ipcc_stop7)
2910begin
2911 case (niu_by_bank[2:0])
2912 3'b000 : niu_by_l2go = ~ilc_ipcc_stop0;
2913 3'b001 : niu_by_l2go = ~ilc_ipcc_stop1;
2914 3'b010 : niu_by_l2go = ~ilc_ipcc_stop2;
2915 3'b011 : niu_by_l2go = ~ilc_ipcc_stop3;
2916 3'b100 : niu_by_l2go = ~ilc_ipcc_stop4;
2917 3'b101 : niu_by_l2go = ~ilc_ipcc_stop5;
2918 3'b110 : niu_by_l2go = ~ilc_ipcc_stop6;
2919 3'b111 : niu_by_l2go = ~ilc_ipcc_stop7;
2920 default : begin
2921 niu_by_l2go = ~ilc_ipcc_stop0;
2922 // 0in < fire -message "ERROR: sii_ipcc niu_by_l2go default case"
2923 end
2924 endcase
2925end
2926
2927//************************************************************************
2928// STATE TRANSITION SECTION
2929//************************************************************************
2930
2931//0in one_hot -var cstate[13:0]
2932//0in one_hot -var nstate_r[13:0]
2933
2934assign nstate = {nstate_r[13:1], ~nstate_r[0]};
2935assign cstate = {cstate_r[13:1], ~cstate_r[0]};
2936
2937assign arc_start_dec = cstate[`START] && ~all_fifo_empty && ~all_stop || tcu_go;
2938assign arc_dec_arb = cstate[`DEC] && |gnt_r[4:0] ;
2939assign arc_arb_hdr = cstate[`ARB] && go & cmp_io_sync_en;
2940assign arc_hdrdly_data1 = cstate[`HDRDLY] && ~(rd_wr && l2_io) ;
2941assign arc_hdrdly_rddw = cstate[`HDRDLY] && rd_wr && l2_io ;
2942assign arc_data1_data2 = cstate[`DATA1] ;
2943assign arc_data2_data3 = cstate[`DATA2] && dma_wr_r && l2_io;
2944assign arc_arb_start = cstate[`ARB] && ~go && cmp_io_sync_en;
2945
2946//assign arc_data8_dec = cstate[`DATA8] && ~all_fifo_empty && ~all_stop;
2947
2948always @ (arc_start_dec or arc_dec_arb or arc_arb_hdr or
2949 arc_hdrdly_data1 or arc_data1_data2 or arc_data2_data3 or
2950 arc_hdrdly_rddw or arc_arb_start or cstate )
2951
2952 begin
2953 case (1'b1) //synopsys parallel_case full_case
2954 cstate[`START] : if (arc_start_dec)
2955 nstate_r = `DEC_ST;
2956 else
2957 nstate_r = `START_ST;
2958 cstate[`DEC] : if (arc_dec_arb)
2959 nstate_r = `ARB_ST;
2960 else
2961 nstate_r = `START_ST;
2962 cstate[`ARB] : if (arc_arb_hdr)
2963 nstate_r = `HDR_ST;
2964 else if (arc_arb_start)
2965 nstate_r = `START_ST;
2966 else
2967 nstate_r = `ARB_ST;
2968 cstate[`HDR] : nstate_r = `HDRDLY_ST;
2969
2970 cstate[`HDRDLY] : if (arc_hdrdly_data1)
2971 nstate_r = `DATA1_ST;
2972 else if(arc_hdrdly_rddw)
2973 nstate_r = `RDDW_ST;
2974 else
2975 nstate_r = `START_ST;
2976 cstate[`RDDW] : nstate_r = `START_ST;
2977 cstate[`DATA1] : if (arc_data1_data2)
2978 nstate_r = `DATA2_ST;
2979 else
2980 nstate_r = `START_ST;
2981 cstate[`DATA2] : if (arc_data2_data3)
2982 nstate_r = `DATA3_ST;
2983 else
2984 nstate_r = `START_ST;
2985 cstate[`DATA3] :
2986 nstate_r = `DATA4_ST;
2987 cstate[`DATA4] :
2988 nstate_r = `DATA5_ST;
2989 cstate[`DATA5] :
2990 nstate_r = `DATA6_ST;
2991 cstate[`DATA6] :
2992 nstate_r = `DATA7_ST;
2993 cstate[`DATA7] :
2994 nstate_r = `DATA8_ST;
2995 cstate[`DATA8] :
2996 nstate_r = `START_ST;
2997 default : begin
2998 // 0in < fire -message "ERROR: sii_ipcc state machine default case"
2999 nstate_r = `START_ST;
3000 end
3001
3002 endcase
3003 end
3004
3005//************************************************************************
3006// REGISTERS section
3007//************************************************************************
3008sii_ipcc_ctlmsff_ctl_macro__en_1__width_5 reg_gnt // ASYNC reset active low
3009 (
3010 .scan_in(reg_gnt_scanin),
3011 .scan_out(reg_gnt_scanout),
3012 .dout(gnt_r[4:0]),
3013 .en (cstate[`START]),
3014 .l1clk(l1clk),
3015 .din(gnt_l[4:0]),
3016 .siclk(siclk),
3017 .soclk(soclk)
3018 );
3019
3020sii_ipcc_ctlmsff_ctl_macro__en_1__width_5 reg_gnt0 // ASYNC reset active low // duplicate signal for timing
3021 (
3022 .scan_in(reg_gnt0_scanin),
3023 .scan_out(reg_gnt0_scanout),
3024 .dout(gnt0_r[4:0]),
3025 .en (cstate[`START]),
3026 .l1clk(l1clk),
3027 .din(gnt_l[4:0]),
3028 .siclk(siclk),
3029 .soclk(soclk)
3030 );
3031
3032sii_ipcc_ctlmsff_ctl_macro__width_14 reg_cstate // ASYNC reset active low
3033 (
3034 .scan_in(reg_cstate_scanin),
3035 .scan_out(reg_cstate_scanout),
3036 .dout(cstate_r[13:0]),
3037 .l1clk(l1clk),
3038 .din(nstate[13:0]),
3039 .siclk(siclk),
3040 .soclk(soclk)
3041 );
3042
3043sii_ipcc_ctlmsff_ctl_macro__en_1__width_56 reg_err_ctag_pa // ASYNC reset active low
3044 (
3045 .scan_in(reg_err_ctag_pa_scanin),
3046 .scan_out(reg_err_ctag_pa_scanout),
3047 .dout(err_ctag_pa_r[55:0]),
3048 .en (cstate[`HDR]),
3049 .l1clk(l1clk),
3050 .din({curhdr[56:41],curhdr[37:0], 2'b00}),
3051 .siclk(siclk),
3052 .soclk(soclk)
3053 );
3054
3055
3056sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dma_wr // ASYNC reset active low
3057 (
3058 .scan_in(reg_dma_wr_scanin),
3059 .scan_out(reg_dma_wr_scanout),
3060 .dout(dma_wr_r),
3061 .l1clk(l1clk),
3062 .din(dma_wr),
3063 .siclk(siclk),
3064 .soclk(soclk)
3065 );
3066
3067sii_ipcc_ctlmsff_ctl_macro__width_1 reg_wrm // ASYNC reset active low
3068 (
3069 .scan_in(reg_wrm_scanin),
3070 .scan_out(reg_wrm_scanout),
3071 .dout(wrm_r),
3072 .l1clk(l1clk),
3073 .din(wrm),
3074 .siclk(siclk),
3075 .soclk(soclk)
3076 );
3077
3078sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_l2_io // ASYNC reset active low
3079 (
3080 .scan_in(reg_l2_io_scanin),
3081 .scan_out(reg_l2_io_scanout),
3082 .dout(l2_io_r),
3083 .en (cstate[`ARB]),
3084 .l1clk(l1clk),
3085 .din(l2_io),
3086 .siclk(siclk),
3087 .soclk(soclk)
3088 );
3089
3090
3091sii_ipcc_ctlmsff_ctl_macro__width_5 reg_dmu_or_cnt // ASYNC reset active low
3092 (
3093 .scan_in(reg_dmu_or_cnt_scanin),
3094 .scan_out(reg_dmu_or_cnt_scanout),
3095 .dout(dmu_or_cnt_r[4:0]),
3096 .l1clk(l1clk),
3097 .din(dmu_or_cnt_l[4:0]),
3098 .siclk(siclk),
3099 .soclk(soclk)
3100 );
3101
3102sii_ipcc_ctlmsff_ctl_macro__width_5 reg_dmu_by_cnt // ASYNC reset active low
3103 (
3104 .scan_in(reg_dmu_by_cnt_scanin),
3105 .scan_out(reg_dmu_by_cnt_scanout),
3106 .dout(dmu_by_cnt_r[4:0]),
3107 .l1clk(l1clk),
3108 .din(dmu_by_cnt_l[4:0]),
3109 .siclk(siclk),
3110 .soclk(soclk)
3111 );
3112
3113sii_ipcc_ctlmsff_ctl_macro__width_5 reg_niu_or_cnt // ASYNC reset active low
3114 (
3115 .scan_in(reg_niu_or_cnt_scanin),
3116 .scan_out(reg_niu_or_cnt_scanout),
3117 .dout(niu_or_cnt_r[4:0]),
3118 .l1clk(l1clk),
3119 .din(niu_or_cnt_l[4:0]),
3120 .siclk(siclk),
3121 .soclk(soclk)
3122 );
3123
3124sii_ipcc_ctlmsff_ctl_macro__width_5 reg_niu_by_cnt // ASYNC reset active low
3125 (
3126 .scan_in(reg_niu_by_cnt_scanin),
3127 .scan_out(reg_niu_by_cnt_scanout),
3128 .dout(niu_by_cnt_r[4:0]),
3129 .l1clk(l1clk),
3130 .din(niu_by_cnt_l[4:0]),
3131 .siclk(siclk),
3132 .soclk(soclk)
3133 );
3134
3135
3136sii_ipcc_ctlmsff_ctl_macro__width_6 reg_indq_wr_addr // ASYNC reset active low
3137 (
3138 .scan_in(reg_indq_wr_addr_scanin),
3139 .scan_out(reg_indq_wr_addr_scanout),
3140 .dout(ipcc_indq_wr_addr_r[5:0]),
3141 .l1clk(l1clk),
3142 .din(ipcc_indq_wr_addr_l[5:0]),
3143 .siclk(siclk),
3144 .soclk(soclk)
3145 );
3146
3147//msff_ctl_macro reg_indq_wr_addr_dly (width=6) // ASYNC reset active low
3148// (
3149// .scan_in(reg_indq_wr_addr_dly_scanin),
3150// .scan_out(reg_indq_wr_addr_dly_scanout),
3151// .dout(ipcc_indq_wr_addr_dly[5:0]),
3152// .l1clk(l1clk),
3153// .din(ipcc_indq_wr_addr_l[5:0]),
3154// );
3155
3156sii_ipcc_ctlmsff_ctl_macro__width_1 reg_indq_wr_en // ASYNC reset active low
3157 (
3158 .scan_in(reg_indq_wr_en_scanin),
3159 .scan_out(reg_indq_wr_en_scanout),
3160 .dout(ipcc_indq_wr_en_r),
3161 .l1clk(l1clk),
3162 .din(ipcc_indq_wr_en_dly),
3163 .siclk(siclk),
3164 .soclk(soclk)
3165 );
3166
3167sii_ipcc_ctlmsff_ctl_macro__width_1 reg_indq_wr_en_dly // ASYNC reset active low
3168 (
3169 .scan_in(reg_indq_wr_en_dly_scanin),
3170 .scan_out(reg_indq_wr_en_dly_scanout),
3171 .dout(ipcc_indq_wr_en_dly),
3172 .l1clk(l1clk),
3173 .din(ipcc_indq_wr_en_l),
3174 .siclk(siclk),
3175 .soclk(soclk)
3176 );
3177
3178sii_ipcc_ctlmsff_ctl_macro__width_1 reg_indq_wr_ovfl // ASYNC reset active low
3179 (
3180 .scan_in(reg_indq_wr_ovfl_scanin),
3181 .scan_out(reg_indq_wr_ovfl_scanout),
3182 .dout(ipcc_inc_wr_ovfl),
3183 .l1clk(l1clk),
3184 .din(ipcc_inc_wr_ovfl_l),
3185 .siclk(siclk),
3186 .soclk(soclk)
3187 );
3188
3189sii_ipcc_ctlmsff_ctl_macro__width_2 reg_arb1 // ASYNC reset active low
3190 (
3191 .scan_in(reg_arb1_scanin),
3192 .scan_out(reg_arb1_scanout),
3193 .dout(arb1_r[1:0]),
3194 .l1clk(l1clk),
3195 // .en(arc_dec_arb),
3196 .din(arb1_l[1:0]),
3197 .siclk(siclk),
3198 .soclk(soclk)
3199 );
3200
3201//msff_ctl_macro reg_arb2_dmu (width=1, en=1) // ASYNC reset active low
3202// (
3203// .scan_in(reg_arb2_dmu_scanin),
3204// .scan_out(reg_arb2_dmu_scanout),
3205// .dout(arb2_dmu_r),
3206// .l1clk(l1clk),
3207// .en (arc_dec_arb),
3208// .din(arb2_dmu_l),
3209// );
3210
3211//msff_ctl_macro reg_arb2_niu (width=1, en=1) // ASYNC reset active low
3212// (
3213// .scan_in(reg_arb2_niu_scanin),
3214// .scan_out(reg_arb2_niu_scanout),
3215// .dout(arb2_niu_r),
3216// .l1clk(l1clk),
3217// .en (arc_dec_arb),
3218// .din(arb2_niu_l),
3219// );
3220
3221sii_ipcc_ctlmsff_ctl_macro__width_4 reg_dmu_wrm_cnt // ASYNC reset active low
3222 (
3223 .scan_in(reg_dmu_wrm_cnt_scanin),
3224 .scan_out(reg_dmu_wrm_cnt_scanout),
3225 .dout(dmu_wrm_cnt_r[3:0]),
3226 .l1clk(l1clk),
3227 .din(dmu_wrm_cnt_l[3:0]),
3228 .siclk(siclk),
3229 .soclk(soclk)
3230 );
3231
3232sii_ipcc_ctlmsff_ctl_macro__width_4 reg_niu_wrm_cnt // ASYNC reset active low
3233 (
3234 .scan_in(reg_niu_wrm_cnt_scanin),
3235 .scan_out(reg_niu_wrm_cnt_scanout),
3236 .dout(niu_wrm_cnt_r[3:0]),
3237 .l1clk(l1clk),
3238 .din(niu_wrm_cnt_l[3:0]),
3239 .siclk(siclk),
3240 .soclk(soclk)
3241 );
3242
3243sii_ipcc_ctlmsff_ctl_macro__width_2 reg_dmu_or_wr_cnt // ASYNC reset active low
3244 (
3245 .scan_in(reg_dmu_or_wr_cnt_scanin),
3246 .scan_out(reg_dmu_or_wr_cnt_scanout),
3247 .dout(dmu_or_wr_cnt_r[1:0]),
3248 .l1clk(l1clk),
3249 .din(dmu_or_wr_cnt_l[1:0]),
3250 .siclk(siclk),
3251 .soclk(soclk)
3252 );
3253
3254sii_ipcc_ctlmsff_ctl_macro__width_4 reg_dmu_by_wr_cnt // ASYNC reset active low
3255 (
3256 .scan_in(reg_dmu_by_wr_cnt_scanin),
3257 .scan_out(reg_dmu_by_wr_cnt_scanout),
3258 .dout(dmu_by_wr_cnt_r[3:0]),
3259 .l1clk(l1clk),
3260 .din(dmu_by_wr_cnt_l[3:0]),
3261 .siclk(siclk),
3262 .soclk(soclk)
3263 );
3264
3265sii_ipcc_ctlmsff_ctl_macro__width_2 reg_niu_or_wr_cnt // ASYNC reset active low
3266 (
3267 .scan_in(reg_niu_or_wr_cnt_scanin),
3268 .scan_out(reg_niu_or_wr_cnt_scanout),
3269 .dout(niu_or_wr_cnt_r[1:0]),
3270 .l1clk(l1clk),
3271 .din(niu_or_wr_cnt_l[1:0]),
3272 .siclk(siclk),
3273 .soclk(soclk)
3274 );
3275
3276sii_ipcc_ctlmsff_ctl_macro__width_4 reg_niu_by_wr_cnt // ASYNC reset active low
3277 (
3278 .scan_in(reg_niu_by_wr_cnt_scanin),
3279 .scan_out(reg_niu_by_wr_cnt_scanout),
3280 .dout(niu_by_wr_cnt_r[3:0]),
3281 .l1clk(l1clk),
3282 .din(niu_by_wr_cnt_l[3:0]),
3283 .siclk(siclk),
3284 .soclk(soclk)
3285 );
3286
3287sii_ipcc_ctlmsff_ctl_macro__width_4 reg_niu_by_wr_cnt_snap // ASYNC reset active low
3288 (
3289 .scan_in(reg_niu_by_wr_cnt_snap_scanin),
3290 .scan_out(reg_niu_by_wr_cnt_snap_scanout),
3291 .dout(niu_by_wr_cnt_snap_r[3:0]),
3292 .l1clk(l1clk),
3293 .din(niu_by_wr_cnt_snap_l[3:0]),
3294 .siclk(siclk),
3295 .soclk(soclk)
3296 );
3297
3298sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr0 // ASYNC reset active low
3299 (
3300 .scan_in(reg_ildq_wr_addr0_scanin),
3301 .scan_out(reg_ildq_wr_addr0_scanout),
3302 .dout(ipcc_ildq_wr_addr0),
3303 .l1clk(l1clk),
3304 .din(ipcc_ildq_wr_addr0_l),
3305 .siclk(siclk),
3306 .soclk(soclk)
3307 );
3308
3309sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr1 // ASYNC reset active low
3310 (
3311 .scan_in(reg_ildq_wr_addr1_scanin),
3312 .scan_out(reg_ildq_wr_addr1_scanout),
3313 .dout(ipcc_ildq_wr_addr1),
3314 .l1clk(l1clk),
3315 .din(ipcc_ildq_wr_addr1_l),
3316 .siclk(siclk),
3317 .soclk(soclk)
3318 );
3319
3320sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr2 // ASYNC reset active low
3321 (
3322 .scan_in(reg_ildq_wr_addr2_scanin),
3323 .scan_out(reg_ildq_wr_addr2_scanout),
3324 .dout(ipcc_ildq_wr_addr2),
3325 .l1clk(l1clk),
3326 .din(ipcc_ildq_wr_addr2_l),
3327 .siclk(siclk),
3328 .soclk(soclk)
3329 );
3330
3331sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr3 // ASYNC reset active low
3332 (
3333 .scan_in(reg_ildq_wr_addr3_scanin),
3334 .scan_out(reg_ildq_wr_addr3_scanout),
3335 .dout(ipcc_ildq_wr_addr3),
3336 .l1clk(l1clk),
3337 .din(ipcc_ildq_wr_addr3_l),
3338 .siclk(siclk),
3339 .soclk(soclk)
3340 );
3341
3342sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr4 // ASYNC reset active low
3343 (
3344 .scan_in(reg_ildq_wr_addr4_scanin),
3345 .scan_out(reg_ildq_wr_addr4_scanout),
3346 .dout(ipcc_ildq_wr_addr4),
3347 .l1clk(l1clk),
3348 .din(ipcc_ildq_wr_addr4_l),
3349 .siclk(siclk),
3350 .soclk(soclk)
3351 );
3352
3353sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr5 // ASYNC reset active low
3354 (
3355 .scan_in(reg_ildq_wr_addr5_scanin),
3356 .scan_out(reg_ildq_wr_addr5_scanout),
3357 .dout(ipcc_ildq_wr_addr5),
3358 .l1clk(l1clk),
3359 .din(ipcc_ildq_wr_addr5_l),
3360 .siclk(siclk),
3361 .soclk(soclk)
3362 );
3363
3364sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr6 // ASYNC reset active low
3365 (
3366 .scan_in(reg_ildq_wr_addr6_scanin),
3367 .scan_out(reg_ildq_wr_addr6_scanout),
3368 .dout(ipcc_ildq_wr_addr6),
3369 .l1clk(l1clk),
3370 .din(ipcc_ildq_wr_addr6_l),
3371 .siclk(siclk),
3372 .soclk(soclk)
3373 );
3374
3375sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 reg_ildq_wr_addr7 // ASYNC reset active low
3376 (
3377 .scan_in(reg_ildq_wr_addr7_scanin),
3378 .scan_out(reg_ildq_wr_addr7_scanout),
3379 .dout(ipcc_ildq_wr_addr7),
3380 .l1clk(l1clk),
3381 .din(ipcc_ildq_wr_addr7_l),
3382 .siclk(siclk),
3383 .soclk(soclk)
3384 );
3385
3386sii_ipcc_ctlmsff_ctl_macro__width_4 reg_ipdohq0_rd_addr // ASYNC reset active low
3387 (
3388 .scan_in(reg_ipdohq0_rd_addr_scanin),
3389 .scan_out(reg_ipdohq0_rd_addr_scanout),
3390 .dout(ipcc_ipdohq0_rd_addr[3:0]),
3391 .l1clk(l1clk),
3392 .din(ipcc_ipdohq0_rd_addr_l[3:0]),
3393 .siclk(siclk),
3394 .soclk(soclk)
3395 );
3396
3397sii_ipcc_ctlmsff_ctl_macro__width_4 reg_ipdbhq0_rd_addr // ASYNC reset active low
3398 (
3399 .scan_in(reg_ipdbhq0_rd_addr_scanin),
3400 .scan_out(reg_ipdbhq0_rd_addr_scanout),
3401 .dout(ipcc_ipdbhq0_rd_addr[3:0]),
3402 .l1clk(l1clk),
3403 .din(ipcc_ipdbhq0_rd_addr_l[3:0]),
3404 .siclk(siclk),
3405 .soclk(soclk)
3406 );
3407
3408sii_ipcc_ctlmsff_ctl_macro__width_4 reg_ipdohq1_rd_addr // ASYNC reset active low
3409 (
3410 .scan_in(reg_ipdohq1_rd_addr_scanin),
3411 .scan_out(reg_ipdohq1_rd_addr_scanout),
3412 .dout(ipcc_ipdohq1_rd_addr[3:0]),
3413 .l1clk(l1clk),
3414 .din(ipcc_ipdohq1_rd_addr_l[3:0]),
3415 .siclk(siclk),
3416 .soclk(soclk)
3417 );
3418
3419sii_ipcc_ctlmsff_ctl_macro__width_4 reg_ipdbhq1_rd_addr // ASYNC reset active low
3420 (
3421 .scan_in(reg_ipdbhq1_rd_addr_scanin),
3422 .scan_out(reg_ipdbhq1_rd_addr_scanout),
3423 .dout(ipcc_ipdbhq1_rd_addr[3:0]),
3424 .l1clk(l1clk),
3425 .din(ipcc_ipdbhq1_rd_addr_l[3:0]),
3426 .siclk(siclk),
3427 .soclk(soclk)
3428 );
3429
3430sii_ipcc_ctlmsff_ctl_macro__width_6 reg_ipdodq0_rd_addr // ASYNC reset active low
3431 (
3432 .scan_in(reg_ipdodq0_rd_addr_scanin),
3433 .scan_out(reg_ipdodq0_rd_addr_scanout),
3434 .dout(ipcc_ipdodq0_rd_addr[5:0]),
3435 .l1clk(l1clk),
3436 .din(ipcc_ipdodq0_rd_addr_l[5:0]),
3437 .siclk(siclk),
3438 .soclk(soclk)
3439 );
3440
3441sii_ipcc_ctlmsff_ctl_macro__width_6 reg_ipdbdq0_rd_addr // ASYNC reset active low
3442 (
3443 .scan_in(reg_ipdbdq0_rd_addr_scanin),
3444 .scan_out(reg_ipdbdq0_rd_addr_scanout),
3445 .dout(ipcc_ipdbdq0_rd_addr[5:0]),
3446 .l1clk(l1clk),
3447 .din(ipcc_ipdbdq0_rd_addr_l[5:0]),
3448 .siclk(siclk),
3449 .soclk(soclk)
3450 );
3451
3452sii_ipcc_ctlmsff_ctl_macro__width_6 reg_ipdodq1_rd_addr // ASYNC reset active low
3453 (
3454 .scan_in(reg_ipdodq1_rd_addr_scanin),
3455 .scan_out(reg_ipdodq1_rd_addr_scanout),
3456 .dout(ipcc_ipdodq1_rd_addr[5:0]),
3457 .l1clk(l1clk),
3458 .din(ipcc_ipdodq1_rd_addr_l[5:0]),
3459 .siclk(siclk),
3460 .soclk(soclk)
3461 );
3462
3463sii_ipcc_ctlmsff_ctl_macro__width_6 reg_ipdbdq1_rd_addr // ASYNC reset active low
3464 (
3465 .scan_in(reg_ipdbdq1_rd_addr_scanin),
3466 .scan_out(reg_ipdbdq1_rd_addr_scanout),
3467 .dout(ipcc_ipdbdq1_rd_addr[5:0]),
3468 .l1clk(l1clk),
3469 .din(ipcc_ipdbdq1_rd_addr_l[5:0]),
3470 .siclk(siclk),
3471 .soclk(soclk)
3472 );
3473
3474sii_ipcc_ctlmsff_ctl_macro__en_1__width_3 reg_curbank // ASYNC reset active low
3475 (
3476 .scan_in(reg_curbank_scanin),
3477 .scan_out(reg_curbank_scanout),
3478 .dout(curbank_r[2:0]),
3479 .l1clk(l1clk),
3480 .en(cstate[`ARB]),
3481 .din(curbank[2:0]),
3482 .siclk(siclk),
3483 .soclk(soclk)
3484 );
3485
3486sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_dmu_tag // ASYNC reset active low
3487 (
3488 .scan_in(reg_dmu_tag_scanin),
3489 .scan_out(reg_dmu_tag_scanout),
3490 .dout(ipcc_ipcs_dmu_tag_pre[3:0]),
3491 .l1clk(l1clk),
3492 .en(dmu_tag_en),
3493 .din(id[14:11]),
3494 .siclk(siclk),
3495 .soclk(soclk)
3496 );
3497
3498sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcc_ipcs_dmu_wrack_p_pre // ASYNC reset active low
3499 (
3500 .scan_in(reg_ipcc_ipcs_dmu_wrack_p_pre_scanin),
3501 .scan_out(reg_ipcc_ipcs_dmu_wrack_p_pre_scanout),
3502 .dout(ipcc_ipcs_dmu_wrack_p_pre),
3503 .l1clk(l1clk),
3504 .en(dmu_tag_en),
3505 .din(ipcc_ipcs_dmu_wrack_p_l),
3506 .siclk(siclk),
3507 .soclk(soclk)
3508 );
3509
3510
3511sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd0 // ASYNC reset active low
3512 (
3513 .scan_in(reg_ipcc_ilc_cmd0_scanin),
3514 .scan_out(reg_ipcc_ilc_cmd0_scanout),
3515 .dout(ipcc_ilc_cmd0),
3516 .l1clk(l1clk),
3517 .din(ipcc_ilc_cmd0_l),
3518 .siclk(siclk),
3519 .soclk(soclk)
3520 );
3521
3522sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd1 // ASYNC reset active low
3523 (
3524 .scan_in(reg_ipcc_ilc_cmd1_scanin),
3525 .scan_out(reg_ipcc_ilc_cmd1_scanout),
3526 .dout(ipcc_ilc_cmd1),
3527 .l1clk(l1clk),
3528 .din(ipcc_ilc_cmd1_l),
3529 .siclk(siclk),
3530 .soclk(soclk)
3531 );
3532
3533sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd2 // ASYNC reset active low
3534 (
3535 .scan_in(reg_ipcc_ilc_cmd2_scanin),
3536 .scan_out(reg_ipcc_ilc_cmd2_scanout),
3537 .dout(ipcc_ilc_cmd2),
3538 .l1clk(l1clk),
3539 .din(ipcc_ilc_cmd2_l),
3540 .siclk(siclk),
3541 .soclk(soclk)
3542 );
3543
3544sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd3 // ASYNC reset active low
3545 (
3546 .scan_in(reg_ipcc_ilc_cmd3_scanin),
3547 .scan_out(reg_ipcc_ilc_cmd3_scanout),
3548 .dout(ipcc_ilc_cmd3),
3549 .l1clk(l1clk),
3550 .din(ipcc_ilc_cmd3_l),
3551 .siclk(siclk),
3552 .soclk(soclk)
3553 );
3554
3555sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd4 // ASYNC reset active low
3556 (
3557 .scan_in(reg_ipcc_ilc_cmd4_scanin),
3558 .scan_out(reg_ipcc_ilc_cmd4_scanout),
3559 .dout(ipcc_ilc_cmd4),
3560 .l1clk(l1clk),
3561 .din(ipcc_ilc_cmd4_l),
3562 .siclk(siclk),
3563 .soclk(soclk)
3564 );
3565
3566sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd5 // ASYNC reset active low
3567 (
3568 .scan_in(reg_ipcc_ilc_cmd5_scanin),
3569 .scan_out(reg_ipcc_ilc_cmd5_scanout),
3570 .dout(ipcc_ilc_cmd5),
3571 .l1clk(l1clk),
3572 .din(ipcc_ilc_cmd5_l),
3573 .siclk(siclk),
3574 .soclk(soclk)
3575 );
3576
3577sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd6 // ASYNC reset active low
3578 (
3579 .scan_in(reg_ipcc_ilc_cmd6_scanin),
3580 .scan_out(reg_ipcc_ilc_cmd6_scanout),
3581 .dout(ipcc_ilc_cmd6),
3582 .l1clk(l1clk),
3583 .din(ipcc_ilc_cmd6_l),
3584 .siclk(siclk),
3585 .soclk(soclk)
3586 );
3587
3588sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ilc_cmd7 // ASYNC reset active low
3589 (
3590 .scan_in(reg_ipcc_ilc_cmd7_scanin),
3591 .scan_out(reg_ipcc_ilc_cmd7_scanout),
3592 .dout(ipcc_ilc_cmd7),
3593 .l1clk(l1clk),
3594 .din(ipcc_ilc_cmd7_l),
3595 .siclk(siclk),
3596 .soclk(soclk)
3597 );
3598
3599sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en0 // ASYNC reset active low
3600 (
3601 .scan_in(reg_ipcc_ildq_wr_en0_scanin),
3602 .scan_out(reg_ipcc_ildq_wr_en0_scanout),
3603 .dout(ipcc_ildq_wr_en0),
3604 .l1clk(l1clk),
3605 .din(ipcc_ildq_wr_en0_l),
3606 .siclk(siclk),
3607 .soclk(soclk)
3608 );
3609
3610sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en1 // ASYNC reset active low
3611 (
3612 .scan_in(reg_ipcc_ildq_wr_en1_scanin),
3613 .scan_out(reg_ipcc_ildq_wr_en1_scanout),
3614 .dout(ipcc_ildq_wr_en1),
3615 .l1clk(l1clk),
3616 .din(ipcc_ildq_wr_en1_l),
3617 .siclk(siclk),
3618 .soclk(soclk)
3619 );
3620
3621sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en2 // ASYNC reset active low
3622 (
3623 .scan_in(reg_ipcc_ildq_wr_en2_scanin),
3624 .scan_out(reg_ipcc_ildq_wr_en2_scanout),
3625 .dout(ipcc_ildq_wr_en2),
3626 .l1clk(l1clk),
3627 .din(ipcc_ildq_wr_en2_l),
3628 .siclk(siclk),
3629 .soclk(soclk)
3630 );
3631
3632sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en3 // ASYNC reset active low
3633 (
3634 .scan_in(reg_ipcc_ildq_wr_en3_scanin),
3635 .scan_out(reg_ipcc_ildq_wr_en3_scanout),
3636 .dout(ipcc_ildq_wr_en3),
3637 .l1clk(l1clk),
3638 .din(ipcc_ildq_wr_en3_l),
3639 .siclk(siclk),
3640 .soclk(soclk)
3641 );
3642
3643sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en4 // ASYNC reset active low
3644 (
3645 .scan_in(reg_ipcc_ildq_wr_en4_scanin),
3646 .scan_out(reg_ipcc_ildq_wr_en4_scanout),
3647 .dout(ipcc_ildq_wr_en4),
3648 .l1clk(l1clk),
3649 .din(ipcc_ildq_wr_en4_l),
3650 .siclk(siclk),
3651 .soclk(soclk)
3652 );
3653
3654sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en5 // ASYNC reset active low
3655 (
3656 .scan_in(reg_ipcc_ildq_wr_en5_scanin),
3657 .scan_out(reg_ipcc_ildq_wr_en5_scanout),
3658 .dout(ipcc_ildq_wr_en5),
3659 .l1clk(l1clk),
3660 .din(ipcc_ildq_wr_en5_l),
3661 .siclk(siclk),
3662 .soclk(soclk)
3663 );
3664
3665sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en6 // ASYNC reset active low
3666 (
3667 .scan_in(reg_ipcc_ildq_wr_en6_scanin),
3668 .scan_out(reg_ipcc_ildq_wr_en6_scanout),
3669 .dout(ipcc_ildq_wr_en6),
3670 .l1clk(l1clk),
3671 .din(ipcc_ildq_wr_en6_l),
3672 .siclk(siclk),
3673 .soclk(soclk)
3674 );
3675
3676sii_ipcc_ctlmsff_ctl_macro__width_1 reg_ipcc_ildq_wr_en7 // ASYNC reset active low
3677 (
3678 .scan_in(reg_ipcc_ildq_wr_en7_scanin),
3679 .scan_out(reg_ipcc_ildq_wr_en7_scanout),
3680 .dout(ipcc_ildq_wr_en7),
3681 .l1clk(l1clk),
3682 .din(ipcc_ildq_wr_en7_l),
3683 .siclk(siclk),
3684 .soclk(soclk)
3685 );
3686
3687sii_ipcc_ctlmsff_ctl_macro__width_2 reg_arb1_hist // ASYNC reset active low
3688 (
3689 .scan_in(reg_arb1_hist_scanin),
3690 .scan_out(reg_arb1_hist_scanout),
3691 .dout(arb1_hist_r[1:0]),
3692 .l1clk(l1clk),
3693 .din(arb1_hist_l[1:0]),
3694 .siclk(siclk),
3695 .soclk(soclk)
3696 );
3697
3698sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmu_hist // ASYNC reset active low
3699 (
3700 .scan_in(reg_dmu_hist_scanin),
3701 .scan_out(reg_dmu_hist_scanout),
3702 .dout(dmu_hist_r),
3703 .l1clk(l1clk),
3704 .din(dmu_hist_l),
3705 .siclk(siclk),
3706 .soclk(soclk)
3707 );
3708
3709sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niu_hist // ASYNC reset active low
3710 (
3711 .scan_in(reg_niu_hist_scanin),
3712 .scan_out(reg_niu_hist_scanout),
3713 .dout(niu_hist_r),
3714 .l1clk(l1clk),
3715 .din(niu_hist_l),
3716 .siclk(siclk),
3717 .soclk(soclk)
3718 );
3719
3720sii_ipcc_ctlmsff_ctl_macro__width_64 reg_syndrome // ASYNC reset active low
3721 (
3722 .scan_in(reg_syndrome_scanin),
3723 .scan_out(reg_syndrome_scanout),
3724 .dout(syndrome_r[63:0]),
3725// .en (cmp_io_sync_en),
3726 .l1clk(l1clk),
3727 .din(syndrome_l[63:0]),
3728 .siclk(siclk),
3729 .soclk(soclk)
3730 );
3731
3732
3733sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sending // ASYNC reset active low
3734 (
3735 .scan_in(reg_sending_scanin),
3736 .scan_out(reg_sending_scanout),
3737 .dout(sending_r),
3738 .l1clk(l1clk),
3739 .din(sending_l),
3740 .siclk(siclk),
3741 .soclk(soclk)
3742 );
3743
3744sii_ipcc_ctlmsff_ctl_macro__width_7 reg_send_cnt // ASYNC reset active low
3745 (
3746 .scan_in(reg_send_cnt_scanin),
3747 .scan_out(reg_send_cnt_scanout),
3748 .dout(send_cnt_r[6:0]),
3749// .en (cmp_io_sync_en),
3750 .l1clk(l1clk),
3751 .din(send_cnt_l[6:0]),
3752 .siclk(siclk),
3753 .soclk(soclk)
3754 );
3755
3756sii_ipcc_ctlmsff_ctl_macro__width_6 reg_err_sig // ASYNC reset active low
3757 (
3758 .scan_in(reg_err_sig_scanin),
3759 .scan_out(reg_err_sig_scanout),
3760 .dout(err_sig_r[5:0]),
3761 .l1clk(l1clk),
3762 .din(err_sig_l[5:0]),
3763 .siclk(siclk),
3764 .soclk(soclk)
3765 );
3766
3767sii_ipcc_ctlmsff_ctl_macro__width_128 reg_tcu_serial_data // ASYNC reset active low
3768 (
3769 .scan_in(reg_tcu_serial_data_scanin),
3770 .scan_out(reg_tcu_serial_data_scanout),
3771 .dout(tcu_serial_data[127:0]),
3772 .l1clk(l1clk),
3773 .din(tcu_serial_data_l[127:0]),
3774 .siclk(siclk),
3775 .soclk(soclk)
3776 );
3777
3778sii_ipcc_ctlmsff_ctl_macro__width_1 reg_tcu_go // ASYNC reset active low
3779 (
3780 .scan_in(reg_tcu_go_scanin),
3781 .scan_out(reg_tcu_go_scanout),
3782 .dout(tcu_go_hld),
3783 .l1clk(l1clk),
3784 .din(tcu_go_l),
3785 .siclk(siclk),
3786 .soclk(soclk)
3787 );
3788
3789sii_ipcc_ctlmsff_ctl_macro__width_8 reg_tcu_rcv_cnt // ASYNC reset active low
3790 (
3791 .scan_in(reg_tcu_rcv_cnt_scanin),
3792 .scan_out(reg_tcu_rcv_cnt_scanout),
3793 .dout(tcu_rcv_cnt[7:0]),
3794 .l1clk(l1clk),
3795 .din(tcu_rcv_cnt_l[7:0]),
3796 .siclk(siclk),
3797 .soclk(soclk)
3798 );
3799
3800sii_ipcc_ctlmsff_ctl_macro__width_1 reg_tcu_txfr_start // ASYNC reset active low
3801 (
3802 .scan_in(reg_tcu_txfr_start_scanin),
3803 .scan_out(reg_tcu_txfr_start_scanout),
3804 .dout(tcu_txfr_start_r),
3805 .l1clk(l1clk),
3806 .din(tcu_txfr_start_l),
3807 .siclk(siclk),
3808 .soclk(soclk)
3809 );
3810
3811
3812//---------------------------------------------------------------------
3813// Synchronize between clock domain (cmp -> io)
3814//---------------------------------------------------------------------
3815sii_ipcc_ctlmsff_ctl_macro__width_1 reg_cmp_io_sync_en // ASYNC reset active low
3816 (
3817 .scan_in(reg_cmp_io_sync_en_scanin),
3818 .scan_out(reg_cmp_io_sync_en_scanout),
3819 .dout(cmp_io_sync_en),
3820 .l1clk(l1clk),
3821 .din(cmp_io_sync_en_in),
3822 .siclk(siclk),
3823 .soclk(soclk)
3824 );
3825
3826sii_ipcc_ctlmsff_ctl_macro__width_1 reg_io_cmp_sync_en // ASYNC reset active low
3827 (
3828 .scan_in(reg_io_cmp_sync_en_scanin),
3829 .scan_out(reg_io_cmp_sync_en_scanout),
3830 .dout(io_cmp_sync_en),
3831 .l1clk(l1clk),
3832 .din(io_cmp_sync_en_in),
3833 .siclk(siclk),
3834 .soclk(soclk)
3835 );
3836
3837sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_sii_ncu_syn_data // ASYNC reset active low
3838 (
3839 .scan_in(reg_sii_ncu_syn_data_scanin),
3840 .scan_out(reg_sii_ncu_syn_data_scanout),
3841 .dout(sii_ncu_syn_data[3:0]),
3842 .en (cmp_io_sync_en),
3843 .l1clk(l1clk),
3844 .din(sii_ncu_syn_data_l[3:0]),
3845 .siclk(siclk),
3846 .soclk(soclk)
3847 );
3848
3849sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_sii_ncu_syn_vld // ASYNC reset active low
3850 (
3851 .scan_in(reg_sii_ncu_syn_vld_scanin),
3852 .scan_out(reg_sii_ncu_syn_vld_scanout),
3853 .dout(sii_ncu_syn_vld),
3854 .en (cmp_io_sync_en),
3855 .l1clk(l1clk),
3856 .din(sii_ncu_syn_vld_l),
3857 .siclk(siclk),
3858 .soclk(soclk)
3859 );
3860
3861sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmuctag_ue_r // ASYNC reset active low
3862 (
3863 .scan_in(reg_dmuctag_ue_r_scanin),
3864 .scan_out(reg_dmuctag_ue_r_scanout),
3865 .dout(dmuctag_ue_r),
3866 .l1clk(l1clk),
3867 .din(dmuctag_ue_l),
3868 .siclk(siclk),
3869 .soclk(soclk)
3870 );
3871
3872sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_dmuctag_ue // ASYNC reset active low
3873 (
3874 .scan_in(reg_dmuctag_ue_scanin),
3875 .scan_out(reg_dmuctag_ue_scanout),
3876 .dout(sii_ncu_dmuctag_ue),
3877 .l1clk(l1clk),
3878 .en(cmp_io_sync_en),
3879 .din(dmuctag_ue_r),
3880 .siclk(siclk),
3881 .soclk(soclk)
3882 );
3883
3884sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmuctag_ce_r // ASYNC reset active low
3885 (
3886 .scan_in(reg_dmuctag_ce_r_scanin),
3887 .scan_out(reg_dmuctag_ce_r_scanout),
3888 .dout(dmuctag_ce_r),
3889 .l1clk(l1clk),
3890 .din(dmuctag_ce_l),
3891 .siclk(siclk),
3892 .soclk(soclk)
3893 );
3894
3895sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_dmuctag_ce // ASYNC reset active low
3896 (
3897 .scan_in(reg_dmuctag_ce_scanin),
3898 .scan_out(reg_dmuctag_ce_scanout),
3899 .dout(sii_ncu_dmuctag_ce),
3900 .l1clk(l1clk),
3901 .en(cmp_io_sync_en),
3902 .din(dmuctag_ce_r),
3903 .siclk(siclk),
3904 .soclk(soclk)
3905 );
3906
3907sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmua_pe_r // ASYNC reset active low
3908 (
3909 .scan_in(reg_dmua_pe_r_scanin),
3910 .scan_out(reg_dmua_pe_r_scanout),
3911 .dout(dmua_pe_r),
3912 .l1clk(l1clk),
3913 .din(dmua_pe_l),
3914 .siclk(siclk),
3915 .soclk(soclk)
3916 );
3917
3918sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_dmua_pe // ASYNC reset active low
3919 (
3920 .scan_in(reg_dmua_pe_scanin),
3921 .scan_out(reg_dmua_pe_scanout),
3922 .dout(sii_ncu_dmua_pe),
3923 .l1clk(l1clk),
3924 .en(cmp_io_sync_en),
3925 .din(dmua_pe_r),
3926 .siclk(siclk),
3927 .soclk(soclk)
3928 );
3929
3930sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmu_de_r // ASYNC reset active low
3931 (
3932 .scan_in(reg_dmu_de_r_scanin),
3933 .scan_out(reg_dmu_de_r_scanout),
3934 .dout(dmud_pe_r),
3935 .l1clk(l1clk),
3936 .din(dmud_pe_l),
3937 .siclk(siclk),
3938 .soclk(soclk)
3939 );
3940
3941sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_dmu_de // ASYNC reset active low
3942 (
3943 .scan_in(reg_dmu_de_scanin),
3944 .scan_out(reg_dmu_de_scanout),
3945 .dout(sii_ncu_dmud_pe),
3946 .l1clk(l1clk),
3947 .en(cmp_io_sync_en),
3948 .din(dmud_pe_r),
3949 .siclk(siclk),
3950 .soclk(soclk)
3951 );
3952//--
3953
3954sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niuctag_ue_r // ASYNC reset active low
3955 (
3956 .scan_in(reg_niuctag_ue_r_scanin),
3957 .scan_out(reg_niuctag_ue_r_scanout),
3958 .dout(niuctag_ue_r),
3959 .l1clk(l1clk),
3960 .din(niuctag_ue_l),
3961 .siclk(siclk),
3962 .soclk(soclk)
3963 );
3964
3965sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_niuctag_ue // ASYNC reset active low
3966 (
3967 .scan_in(reg_niuctag_ue_scanin),
3968 .scan_out(reg_niuctag_ue_scanout),
3969 .dout(sii_ncu_niuctag_ue),
3970 .l1clk(l1clk),
3971 .en(cmp_io_sync_en),
3972 .din(niuctag_ue_r),
3973 .siclk(siclk),
3974 .soclk(soclk)
3975 );
3976
3977sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niuctag_ce_r // ASYNC reset active low
3978 (
3979 .scan_in(reg_niuctag_ce_r_scanin),
3980 .scan_out(reg_niuctag_ce_r_scanout),
3981 .dout(niuctag_ce_r),
3982 .l1clk(l1clk),
3983 .din(niuctag_ce_l),
3984 .siclk(siclk),
3985 .soclk(soclk)
3986 );
3987
3988sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_niuctag_ce // ASYNC reset active low
3989 (
3990 .scan_in(reg_niuctag_ce_scanin),
3991 .scan_out(reg_niuctag_ce_scanout),
3992 .dout(sii_ncu_niuctag_ce),
3993 .l1clk(l1clk),
3994 .en(cmp_io_sync_en),
3995 .din(niuctag_ce_r),
3996 .siclk(siclk),
3997 .soclk(soclk)
3998 );
3999
4000sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niua_pe_r // ASYNC reset active low
4001 (
4002 .scan_in(reg_niua_pe_r_scanin),
4003 .scan_out(reg_niua_pe_r_scanout),
4004 .dout(niua_pe_r),
4005 .l1clk(l1clk),
4006 .din(niua_pe_l),
4007 .siclk(siclk),
4008 .soclk(soclk)
4009 );
4010
4011sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_niua_pe // ASYNC reset active low
4012 (
4013 .scan_in(reg_niua_pe_scanin),
4014 .scan_out(reg_niua_pe_scanout),
4015 .dout(sii_ncu_niua_pe),
4016 .l1clk(l1clk),
4017 .en(cmp_io_sync_en),
4018 .din(niua_pe_r),
4019 .siclk(siclk),
4020 .soclk(soclk)
4021 );
4022
4023sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niu_de_r // ASYNC reset active low
4024 (
4025 .scan_in(reg_niu_de_r_scanin),
4026 .scan_out(reg_niu_de_r_scanout),
4027 .dout(niud_pe_r),
4028 .l1clk(l1clk),
4029 .din(niud_pe_l),
4030 .siclk(siclk),
4031 .soclk(soclk)
4032 );
4033
4034sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_niu_de // ASYNC reset active low
4035 (
4036 .scan_in(reg_niu_de_scanin),
4037 .scan_out(reg_niu_de_scanout),
4038 .dout(sii_ncu_niud_pe),
4039 .l1clk(l1clk),
4040 .en(cmp_io_sync_en),
4041 .din(niud_pe_r),
4042 .siclk(siclk),
4043 .soclk(soclk)
4044 );
4045
4046
4047//---------------------------------------------------------------------
4048// Synchronize between clock domain (io -> cmp)
4049//---------------------------------------------------------------------
4050
4051sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_ipcs_ipdohq0_wr_addr // ASYNC reset active low
4052 (
4053 .scan_in(reg_ipcs_ipdohq0_wr_addr_scanin),
4054 .scan_out(reg_ipcs_ipdohq0_wr_addr_scanout),
4055 .dout(ipcs_ipdohq0_wr_addr_sync[3:0]),
4056 .l1clk(l1clk),
4057 .en(io_cmp_sync_en),
4058 .din(ipcs_ipdohq0_wr_addr[3:0]),
4059 .siclk(siclk),
4060 .soclk(soclk)
4061 );
4062
4063sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_ipcs_ipdbhq0_wr_addr // ASYNC reset active low
4064 (
4065 .scan_in(reg_ipcs_ipdbhq0_wr_addr_scanin),
4066 .scan_out(reg_ipcs_ipdbhq0_wr_addr_scanout),
4067 .dout(ipcs_ipdbhq0_wr_addr_sync[3:0]),
4068 .l1clk(l1clk),
4069 .en(io_cmp_sync_en),
4070 .din(ipcs_ipdbhq0_wr_addr[3:0]),
4071 .siclk(siclk),
4072 .soclk(soclk)
4073 );
4074
4075sii_ipcc_ctlmsff_ctl_macro__en_1__width_6 reg_ipcs_ipdodq0_wr_addr // ASYNC reset active low
4076 (
4077 .scan_in(reg_ipcs_ipdodq0_wr_addr_scanin),
4078 .scan_out(reg_ipcs_ipdodq0_wr_addr_scanout),
4079 .dout(ipcs_ipdodq0_wr_addr_sync[5:0]),
4080 .l1clk(l1clk),
4081 .en(io_cmp_sync_en),
4082 .din(ipcs_ipdodq0_wr_addr[5:0]),
4083 .siclk(siclk),
4084 .soclk(soclk)
4085 );
4086
4087sii_ipcc_ctlmsff_ctl_macro__en_1__width_6 reg_ipcs_ipdbdq0_wr_addr // ASYNC reset active low
4088 (
4089 .scan_in(reg_ipcs_ipdbdq0_wr_addr_scanin),
4090 .scan_out(reg_ipcs_ipdbdq0_wr_addr_scanout),
4091 .dout(ipcs_ipdbdq0_wr_addr_sync[5:0]),
4092 .l1clk(l1clk),
4093 .en(io_cmp_sync_en),
4094 .din(ipcs_ipdbdq0_wr_addr[5:0]),
4095 .siclk(siclk),
4096 .soclk(soclk)
4097 );
4098
4099
4100sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdohq0_wr_en // ASYNC reset active low
4101 (
4102 .scan_in(reg_ipcs_ipdohq0_wr_en_scanin),
4103 .scan_out(reg_ipcs_ipdohq0_wr_en_scanout),
4104 .dout(ipcs_ipdohq0_wr_en_sync),
4105 .l1clk(l1clk),
4106 .en(io_cmp_sync_en),
4107 .din(ipcs_ipdohq0_wr_en),
4108 .siclk(siclk),
4109 .soclk(soclk)
4110 );
4111
4112
4113sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdbhq0_wr_en // ASYNC reset active low
4114 (
4115 .scan_in(reg_ipcs_ipdbhq0_wr_en_scanin),
4116 .scan_out(reg_ipcs_ipdbhq0_wr_en_scanout),
4117 .dout(ipcs_ipdbhq0_wr_en_sync),
4118 .l1clk(l1clk),
4119 .en(io_cmp_sync_en),
4120 .din(ipcs_ipdbhq0_wr_en),
4121 .siclk(siclk),
4122 .soclk(soclk)
4123 );
4124
4125sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdodq0_wr_en // ASYNC reset active low
4126 (
4127 .scan_in(reg_ipcs_ipdodq0_wr_en_scanin),
4128 .scan_out(reg_ipcs_ipdodq0_wr_en_scanout),
4129 .dout(ipcs_ipdodq0_wr_en_sync),
4130 .l1clk(l1clk),
4131 .en(io_cmp_sync_en),
4132 .din(ipcs_ipdodq0_wr_en),
4133 .siclk(siclk),
4134 .soclk(soclk)
4135 );
4136
4137sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdbdq0_wr_en // ASYNC reset active low
4138 (
4139 .scan_in(reg_ipcs_ipdbdq0_wr_en_scanin),
4140 .scan_out(reg_ipcs_ipdbdq0_wr_en_scanout),
4141 .dout(ipcs_ipdbdq0_wr_en_sync),
4142 .l1clk(l1clk),
4143 .en(io_cmp_sync_en),
4144 .din(ipcs_ipdbdq0_wr_en),
4145 .siclk(siclk),
4146 .soclk(soclk)
4147 );
4148
4149
4150sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_ipcs_ipdohq1_wr_addr // ASYNC reset active low
4151 (
4152 .scan_in(reg_ipcs_ipdohq1_wr_addr_scanin),
4153 .scan_out(reg_ipcs_ipdohq1_wr_addr_scanout),
4154 .dout(ipcs_ipdohq1_wr_addr_sync[3:0]),
4155 .l1clk(l1clk),
4156 .en(io_cmp_sync_en),
4157 .din(ipcs_ipdohq1_wr_addr[3:0]),
4158 .siclk(siclk),
4159 .soclk(soclk)
4160 );
4161
4162sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_ipcs_ipdbhq1_wr_addr // ASYNC reset active low
4163 (
4164 .scan_in(reg_ipcs_ipdbhq1_wr_addr_scanin),
4165 .scan_out(reg_ipcs_ipdbhq1_wr_addr_scanout),
4166 .dout(ipcs_ipdbhq1_wr_addr_sync[3:0]),
4167 .l1clk(l1clk),
4168 .en(io_cmp_sync_en),
4169 .din(ipcs_ipdbhq1_wr_addr[3:0]),
4170 .siclk(siclk),
4171 .soclk(soclk)
4172 );
4173
4174sii_ipcc_ctlmsff_ctl_macro__en_1__width_6 reg_ipcs_ipdodq1_wr_addr // ASYNC reset active low
4175 (
4176 .scan_in(reg_ipcs_ipdodq1_wr_addr_scanin),
4177 .scan_out(reg_ipcs_ipdodq1_wr_addr_scanout),
4178 .dout(ipcs_ipdodq1_wr_addr_sync[5:0]),
4179 .l1clk(l1clk),
4180 .en(io_cmp_sync_en),
4181 .din(ipcs_ipdodq1_wr_addr[5:0]),
4182 .siclk(siclk),
4183 .soclk(soclk)
4184 );
4185
4186sii_ipcc_ctlmsff_ctl_macro__en_1__width_6 reg_ipcs_ipdbdq1_wr_addr // ASYNC reset active low
4187 (
4188 .scan_in(reg_ipcs_ipdbdq1_wr_addr_scanin),
4189 .scan_out(reg_ipcs_ipdbdq1_wr_addr_scanout),
4190 .dout(ipcs_ipdbdq1_wr_addr_sync[5:0]),
4191 .l1clk(l1clk),
4192 .en(io_cmp_sync_en),
4193 .din(ipcs_ipdbdq1_wr_addr[5:0]),
4194 .siclk(siclk),
4195 .soclk(soclk)
4196 );
4197
4198
4199sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdohq1_wr_en // ASYNC reset active low
4200 (
4201 .scan_in(reg_ipcs_ipdohq1_wr_en_scanin),
4202 .scan_out(reg_ipcs_ipdohq1_wr_en_scanout),
4203 .dout(ipcs_ipdohq1_wr_en_sync),
4204 .l1clk(l1clk),
4205 .en(io_cmp_sync_en),
4206 .din(ipcs_ipdohq1_wr_en),
4207 .siclk(siclk),
4208 .soclk(soclk)
4209 );
4210
4211
4212sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdbhq1_wr_en // ASYNC reset active low
4213 (
4214 .scan_in(reg_ipcs_ipdbhq1_wr_en_scanin),
4215 .scan_out(reg_ipcs_ipdbhq1_wr_en_scanout),
4216 .dout(ipcs_ipdbhq1_wr_en_sync),
4217 .l1clk(l1clk),
4218 .en(io_cmp_sync_en),
4219 .din(ipcs_ipdbhq1_wr_en),
4220 .siclk(siclk),
4221 .soclk(soclk)
4222 );
4223
4224sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdodq1_wr_en // ASYNC reset active low
4225 (
4226 .scan_in(reg_ipcs_ipdodq1_wr_en_scanin),
4227 .scan_out(reg_ipcs_ipdodq1_wr_en_scanout),
4228 .dout(ipcs_ipdodq1_wr_en_sync),
4229 .l1clk(l1clk),
4230 .en(io_cmp_sync_en),
4231 .din(ipcs_ipdodq1_wr_en),
4232 .siclk(siclk),
4233 .soclk(soclk)
4234 );
4235
4236sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcs_ipdbdq1_wr_en // ASYNC reset active low
4237 (
4238 .scan_in(reg_ipcs_ipdbdq1_wr_en_scanin),
4239 .scan_out(reg_ipcs_ipdbdq1_wr_en_scanout),
4240 .dout(ipcs_ipdbdq1_wr_en_sync),
4241 .l1clk(l1clk),
4242 .en(io_cmp_sync_en),
4243 .din(ipcs_ipdbdq1_wr_en),
4244 .siclk(siclk),
4245 .soclk(soclk)
4246 );
4247
4248
4249
4250
4251sii_ipcc_ctlmsff_ctl_macro__en_1__width_16 reg_ipcs_ipcc_dmu_or_dep // ASYNC reset active low
4252 (
4253 .scan_in(reg_ipcs_ipcc_dmu_or_dep_scanin),
4254 .scan_out(reg_ipcs_ipcc_dmu_or_dep_scanout),
4255 .dout(ipcs_ipcc_dmu_or_dep_sync),
4256 .l1clk(l1clk),
4257 .en(io_cmp_sync_en),
4258 .din(ipcs_ipcc_dmu_or_dep[15:0]),
4259 .siclk(siclk),
4260 .soclk(soclk)
4261 );
4262
4263sii_ipcc_ctlmsff_ctl_macro__en_1__width_16 reg_ipcs_ipcc_dmu_by_dep // ASYNC reset active low
4264 (
4265 .scan_in(reg_ipcs_ipcc_dmu_by_dep_scanin),
4266 .scan_out(reg_ipcs_ipcc_dmu_by_dep_scanout),
4267 .dout(ipcs_ipcc_dmu_by_dep_sync),
4268 .l1clk(l1clk),
4269 .en(io_cmp_sync_en),
4270 .din(ipcs_ipcc_dmu_by_dep[15:0]),
4271 .siclk(siclk),
4272 .soclk(soclk)
4273 );
4274
4275sii_ipcc_ctlmsff_ctl_macro__en_1__width_16 reg_ipcs_ipcc_niu_or_dep // ASYNC reset active low
4276 (
4277 .scan_in(reg_ipcs_ipcc_niu_or_dep_scanin),
4278 .scan_out(reg_ipcs_ipcc_niu_or_dep_scanout),
4279 .dout(ipcs_ipcc_niu_or_dep_sync),
4280 .l1clk(l1clk),
4281 .en(io_cmp_sync_en),
4282 .din(ipcs_ipcc_niu_or_dep[15:0]),
4283 .siclk(siclk),
4284 .soclk(soclk)
4285 );
4286
4287sii_ipcc_ctlmsff_ctl_macro__en_1__width_16 reg_ipcs_ipcc_niu_by_dep // ASYNC reset active low
4288 (
4289 .scan_in(reg_ipcs_ipcc_niu_by_dep_scanin),
4290 .scan_out(reg_ipcs_ipcc_niu_by_dep_scanout),
4291 .dout(ipcs_ipcc_niu_by_dep_sync),
4292 .l1clk(l1clk),
4293 .en(io_cmp_sync_en),
4294 .din(ipcs_ipcc_niu_by_dep[15:0]),
4295 .siclk(siclk),
4296 .soclk(soclk)
4297 );
4298
4299sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_add_dmu_or // ASYNC reset active low
4300 (
4301 .scan_in(reg_add_dmu_or_scanin),
4302 .scan_out(reg_add_dmu_or_scanout),
4303 .dout(add_dmu_or_pre),
4304 .l1clk(l1clk),
4305 .en(io_cmp_sync_en),
4306 .din(ipcs_ipcc_add_dmu_or),
4307 .siclk(siclk),
4308 .soclk(soclk)
4309 );
4310
4311sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_add_dmu_by // ASYNC reset active low
4312 (
4313 .scan_in(reg_add_dmu_by_scanin),
4314 .scan_out(reg_add_dmu_by_scanout),
4315 .dout(add_dmu_by_pre),
4316 .l1clk(l1clk),
4317 .en(io_cmp_sync_en),
4318 .din(ipcs_ipcc_add_dmu_by),
4319 .siclk(siclk),
4320 .soclk(soclk)
4321 );
4322
4323sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_add_niu_or // ASYNC reset active low
4324 (
4325 .scan_in(reg_add_niu_or_scanin),
4326 .scan_out(reg_add_niu_or_scanout),
4327 .dout(add_niu_or_pre),
4328 .l1clk(l1clk),
4329 .en(io_cmp_sync_en),
4330 .din(ipcs_ipcc_add_niu_or),
4331 .siclk(siclk),
4332 .soclk(soclk)
4333 );
4334
4335sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_add_niu_by // ASYNC reset active low
4336 (
4337 .scan_in(reg_add_niu_by_scanin),
4338 .scan_out(reg_add_niu_by_scanout),
4339 .dout(add_niu_by_pre),
4340 .l1clk(l1clk),
4341 .en(io_cmp_sync_en),
4342 .din(ipcs_ipcc_add_niu_by),
4343 .siclk(siclk),
4344 .soclk(soclk)
4345 );
4346
4347sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ncu_sii_pm // ASYNC reset active low
4348 (
4349 .scan_in(reg_ncu_sii_pm_scanin),
4350 .scan_out(reg_ncu_sii_pm_scanout),
4351 .dout(ncu_sii_pm),
4352 .l1clk(l1clk),
4353 .en(io_cmp_sync_en),
4354 .din(ncu_sii_pm_in),
4355 .siclk(siclk),
4356 .soclk(soclk)
4357 );
4358
4359sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ncu_sii_ba01 // ASYNC reset active low
4360 (
4361 .scan_in(reg_ncu_sii_ba01_scanin),
4362 .scan_out(reg_ncu_sii_ba01_scanout),
4363 .dout(ncu_sii_ba01),
4364 .l1clk(l1clk),
4365 .en(io_cmp_sync_en),
4366 .din(ncu_sii_ba01_in),
4367 .siclk(siclk),
4368 .soclk(soclk)
4369 );
4370
4371sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ncu_sii_ba23 // ASYNC reset active low
4372 (
4373 .scan_in(reg_ncu_sii_ba23_scanin),
4374 .scan_out(reg_ncu_sii_ba23_scanout),
4375 .dout(ncu_sii_ba23),
4376 .l1clk(l1clk),
4377 .en(io_cmp_sync_en),
4378 .din(ncu_sii_ba23_in),
4379 .siclk(siclk),
4380 .soclk(soclk)
4381 );
4382
4383sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ncu_sii_ba45 // ASYNC reset active low
4384 (
4385 .scan_in(reg_ncu_sii_ba45_scanin),
4386 .scan_out(reg_ncu_sii_ba45_scanout),
4387 .dout(ncu_sii_ba45),
4388 .l1clk(l1clk),
4389 .en(io_cmp_sync_en),
4390 .din(ncu_sii_ba45_in),
4391 .siclk(siclk),
4392 .soclk(soclk)
4393 );
4394
4395sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ncu_sii_ba67 // ASYNC reset active low
4396 (
4397 .scan_in(reg_ncu_sii_ba67_scanin),
4398 .scan_out(reg_ncu_sii_ba67_scanout),
4399 .dout(ncu_sii_ba67),
4400 .l1clk(l1clk),
4401 .en(io_cmp_sync_en),
4402 .din(ncu_sii_ba67_in),
4403 .siclk(siclk),
4404 .soclk(soclk)
4405 );
4406
4407sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ncu_sii_l2_idx_hash_en // ASYNC reset active low
4408 (
4409 .scan_in(reg_ncu_sii_l2_idx_hash_en_scanin),
4410 .scan_out(reg_ncu_sii_l2_idx_hash_en_scanout),
4411 .dout(ncu_sii_l2_idx_hash_en),
4412 .l1clk(l1clk),
4413 .en(io_cmp_sync_en),
4414 .din(ncu_sii_l2_idx_hash_en_in),
4415 .siclk(siclk),
4416 .soclk(soclk)
4417 );
4418
4419//---------------------------------------------------------------------
4420// Synchronize between clock domains (cmp -> io)
4421//---------------------------------------------------------------------
4422
4423sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_ipcc_ipcs_dmu_tag
4424 (
4425 .scan_in(reg_ipcc_ipcs_dmu_tag_scanin),
4426 .scan_out(reg_ipcc_ipcs_dmu_tag_scanout),
4427 .dout(ipcc_ipcs_dmu_tag[3:0]),
4428 .l1clk(l1clk),
4429 .en(cmp_io_sync_en),
4430 .din(ipcc_ipcs_dmu_tag_pre[3:0]),
4431 .siclk(siclk),
4432 .soclk(soclk)
4433 );
4434
4435sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcc_ipcs_wrack_lv
4436 (
4437 .scan_in(reg_ipcc_ipcs_wrack_lv_scanin),
4438 .scan_out(reg_ipcc_ipcs_wrack_lv_scanout),
4439 .dout(ipcc_ipcs_wrack_lv),
4440 .l1clk(l1clk),
4441 .en(cmp_io_sync_en),
4442 .din(ipcc_ipcs_wrack_lv_pre),
4443 .siclk(siclk),
4444 .soclk(soclk)
4445 );
4446
4447sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_ipcc_ipcs_dmu_wrack_p
4448 (
4449 .scan_in(reg_ipcc_ipcs_dmu_wrack_p_scanin),
4450 .scan_out(reg_ipcc_ipcs_dmu_wrack_p_scanout),
4451 .dout(ipcc_ipcs_dmu_wrack_p),
4452 .l1clk(l1clk),
4453 .en(cmp_io_sync_en),
4454 .din(ipcc_ipcs_dmu_wrack_p_pre),
4455 .siclk(siclk),
4456 .soclk(soclk)
4457 );
4458
4459sii_ipcc_ctlmsff_ctl_macro__width_1 reg_wrack_lv // ASYNC reset active low
4460 (
4461 .scan_in(reg_wrack_lv_scanin),
4462 .scan_out(reg_wrack_lv_scanout),
4463 .dout(ipcc_ipcs_wrack_lv_pre),
4464 .l1clk(l1clk),
4465 .din(dmu_tag_en_lv),
4466 .siclk(siclk),
4467 .soclk(soclk)
4468 );
4469
4470sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmu_wrm_mode // ASYNC reset active low
4471 (
4472 .scan_in(reg_dmu_wrm_mode_scanin),
4473 .scan_out(reg_dmu_wrm_mode_scanout),
4474 .dout(dmu_wrm_mode_r),
4475 .l1clk(l1clk),
4476 .din(dmu_wrm_mode),
4477 .siclk(siclk),
4478 .soclk(soclk)
4479 );
4480
4481sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niu_wrm_mode // ASYNC reset active low
4482 (
4483 .scan_in(reg_niu_wrm_mode_scanin),
4484 .scan_out(reg_niu_wrm_mode_scanout),
4485 .dout(niu_wrm_mode_r),
4486 .l1clk(l1clk),
4487 .din(niu_wrm_mode),
4488 .siclk(siclk),
4489 .soclk(soclk)
4490 );
4491
4492sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmu_or_dq_pre // ASYNC reset active low
4493 (
4494 .scan_in(reg_dmu_or_dq_pre_scanin),
4495 .scan_out(reg_dmu_or_dq_pre_scanout),
4496 .dout(ipcc_ipcs_dmu_or_go_lv_pre),
4497 .l1clk(l1clk),
4498 .din(dmu_or_dq_lv),
4499 .siclk(siclk),
4500 .soclk(soclk)
4501 );
4502
4503sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_dmu_or_dq // ASYNC reset active low
4504 (
4505 .scan_in(reg_dmu_or_dq_scanin),
4506 .scan_out(reg_dmu_or_dq_scanout),
4507 .dout(ipcc_ipcs_dmu_or_go_lv),
4508 .l1clk(l1clk),
4509 .en(cmp_io_sync_en),
4510 .din(ipcc_ipcs_dmu_or_go_lv_pre),
4511 .siclk(siclk),
4512 .soclk(soclk)
4513 );
4514
4515sii_ipcc_ctlmsff_ctl_macro__width_1 reg_dmu_by_dq_pre // ASYNC reset active low
4516 (
4517 .scan_in(reg_dmu_by_dq_pre_scanin),
4518 .scan_out(reg_dmu_by_dq_pre_scanout),
4519 .dout(ipcc_ipcs_dmu_by_go_lv_pre),
4520 .l1clk(l1clk),
4521 .din(dmu_by_dq_lv),
4522 .siclk(siclk),
4523 .soclk(soclk)
4524 );
4525
4526sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_dmu_by_dq // ASYNC reset active low
4527 (
4528 .scan_in(reg_dmu_by_dq_scanin),
4529 .scan_out(reg_dmu_by_dq_scanout),
4530 .dout(ipcc_ipcs_dmu_by_go_lv),
4531 .l1clk(l1clk),
4532 .en(cmp_io_sync_en),
4533 .din(ipcc_ipcs_dmu_by_go_lv_pre),
4534 .siclk(siclk),
4535 .soclk(soclk)
4536 );
4537
4538sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niu_or_dq_pre // ASYNC reset active low
4539 (
4540 .scan_in(reg_niu_or_dq_pre_scanin),
4541 .scan_out(reg_niu_or_dq_pre_scanout),
4542 .dout(ipcc_ipcs_niu_or_go_lv_pre),
4543 .l1clk(l1clk),
4544 .din(niu_or_dq_lv),
4545 .siclk(siclk),
4546 .soclk(soclk)
4547 );
4548
4549sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_niu_or_dq // ASYNC reset active low
4550 (
4551 .scan_in(reg_niu_or_dq_scanin),
4552 .scan_out(reg_niu_or_dq_scanout),
4553 .dout(ipcc_ipcs_niu_or_go_lv),
4554 .l1clk(l1clk),
4555 .en(cmp_io_sync_en),
4556 .din(ipcc_ipcs_niu_or_go_lv_pre),
4557 .siclk(siclk),
4558 .soclk(soclk)
4559 );
4560
4561sii_ipcc_ctlmsff_ctl_macro__width_1 reg_niu_by_dq_pre // ASYNC reset active low
4562 (
4563 .scan_in(reg_niu_by_dq_pre_scanin),
4564 .scan_out(reg_niu_by_dq_pre_scanout),
4565 .dout(ipcc_ipcs_niu_by_go_lv_pre),
4566 .l1clk(l1clk),
4567 .din(niu_by_dq_lv),
4568 .siclk(siclk),
4569 .soclk(soclk)
4570 );
4571
4572sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 reg_niu_by_dq // ASYNC reset active low
4573 (
4574 .scan_in(reg_niu_by_dq_scanin),
4575 .scan_out(reg_niu_by_dq_scanout),
4576 .dout(ipcc_ipcs_niu_by_go_lv),
4577 .l1clk(l1clk),
4578 .en(cmp_io_sync_en),
4579 .din(ipcc_ipcs_niu_by_go_lv_pre),
4580 .siclk(siclk),
4581 .soclk(soclk)
4582 );
4583
4584sii_ipcc_ctlmsff_ctl_macro__width_4 reg_sync_dmu_or_rd_ptr_pre // ASYNC reset active low
4585 (
4586 .scan_in(reg_sync_dmu_or_rd_ptr_pre_scanin),
4587 .scan_out(reg_sync_dmu_or_rd_ptr_pre_scanout),
4588 .dout(ipcc_ipcs_dmu_or_ptr_pre[3:0]),
4589 .l1clk(l1clk),
4590 .din(ipcc_ipdohq0_rd_addr_l[3:0]),
4591 .siclk(siclk),
4592 .soclk(soclk)
4593 );
4594
4595sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_sync_dmu_or_rd_ptr // ASYNC reset active low
4596 (
4597 .scan_in(reg_sync_dmu_or_rd_ptr_scanin),
4598 .scan_out(reg_sync_dmu_or_rd_ptr_scanout),
4599 .dout(ipcc_ipcs_dmu_or_ptr[3:0]),
4600 .l1clk(l1clk),
4601 .en(cmp_io_sync_en),
4602 .din(ipcc_ipcs_dmu_or_ptr_pre[3:0]),
4603 .siclk(siclk),
4604 .soclk(soclk)
4605 );
4606
4607sii_ipcc_ctlmsff_ctl_macro__width_4 reg_sync_dmu_by_rd_ptr_pre // ASYNC reset active low
4608 (
4609 .scan_in(reg_sync_dmu_by_rd_ptr_pre_scanin),
4610 .scan_out(reg_sync_dmu_by_rd_ptr_pre_scanout),
4611 .dout(ipcc_ipcs_dmu_by_ptr_pre[3:0]),
4612 .l1clk(l1clk),
4613 .din(ipcc_ipdbhq0_rd_addr_l[3:0]),
4614 .siclk(siclk),
4615 .soclk(soclk)
4616 );
4617
4618sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_sync_dmu_by_rd_ptr // ASYNC reset active low
4619 (
4620 .scan_in(reg_sync_dmu_by_rd_ptr_scanin),
4621 .scan_out(reg_sync_dmu_by_rd_ptr_scanout),
4622 .dout(ipcc_ipcs_dmu_by_ptr[3:0]),
4623 .l1clk(l1clk),
4624 .en(cmp_io_sync_en),
4625 .din(ipcc_ipcs_dmu_by_ptr_pre[3:0]),
4626 .siclk(siclk),
4627 .soclk(soclk)
4628 );
4629
4630sii_ipcc_ctlmsff_ctl_macro__width_4 reg_sync_niu_or_rd_ptr_pre // ASYNC reset active low
4631 (
4632 .scan_in(reg_sync_niu_or_rd_ptr_pre_scanin),
4633 .scan_out(reg_sync_niu_or_rd_ptr_pre_scanout),
4634 .dout(ipcc_ipcs_niu_or_ptr_pre[3:0]),
4635 .l1clk(l1clk),
4636 .din(ipcc_ipdohq1_rd_addr_l[3:0]),
4637 .siclk(siclk),
4638 .soclk(soclk)
4639 );
4640
4641sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_sync_niu_or_rd_ptr // ASYNC reset active low
4642 (
4643 .scan_in(reg_sync_niu_or_rd_ptr_scanin),
4644 .scan_out(reg_sync_niu_or_rd_ptr_scanout),
4645 .dout(ipcc_ipcs_niu_or_ptr[3:0]),
4646 .l1clk(l1clk),
4647 .en(cmp_io_sync_en),
4648 .din(ipcc_ipcs_niu_or_ptr_pre[3:0]),
4649 .siclk(siclk),
4650 .soclk(soclk)
4651 );
4652
4653sii_ipcc_ctlmsff_ctl_macro__width_4 reg_sync_niu_by_rd_ptr_pre // ASYNC reset active low
4654 (
4655 .scan_in(reg_sync_niu_by_rd_ptr_pre_scanin),
4656 .scan_out(reg_sync_niu_by_rd_ptr_pre_scanout),
4657 .dout(ipcc_ipcs_niu_by_ptr_pre[3:0]),
4658 .l1clk(l1clk),
4659 .din(ipcc_ipdbhq1_rd_addr_l[3:0]),
4660 .siclk(siclk),
4661 .soclk(soclk)
4662 );
4663
4664sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 reg_sync_niu_by_rd_ptr // ASYNC reset active low
4665 (
4666 .scan_in(reg_sync_niu_by_rd_ptr_scanin),
4667 .scan_out(reg_sync_niu_by_rd_ptr_scanout),
4668 .dout(ipcc_ipcs_niu_by_ptr[3:0]),
4669 .l1clk(l1clk),
4670 .en(cmp_io_sync_en),
4671 .din(ipcc_ipcs_niu_by_ptr_pre[3:0]),
4672 .siclk(siclk),
4673 .soclk(soclk)
4674 );
4675
4676sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_run // ASYNC reset active low
4677 (
4678 .scan_in(reg_sii_mb1_run_scanin),
4679 .scan_out(reg_sii_mb1_run_scanout),
4680 .dout(sii_mb1_run_r),
4681 .l1clk(l1clk),
4682 .din(sii_mb1_run),
4683 .siclk(siclk),
4684 .soclk(soclk)
4685 );
4686
4687sii_ipcc_ctlmsff_ctl_macro__width_6 reg_sii_mb1_addr // ASYNC reset active low
4688 (
4689 .scan_in(reg_sii_mb1_addr_scanin),
4690 .scan_out(reg_sii_mb1_addr_scanout),
4691 .dout(sii_mb1_addr_r[5:0]),
4692 .l1clk(l1clk),
4693 .din(sii_mb1_addr[5:0]),
4694 .siclk(siclk),
4695 .soclk(soclk)
4696 );
4697
4698sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdohq0_rd_en // ASYNC reset active low
4699 (
4700 .scan_in(reg_sii_mb1_ipdohq0_rd_en_scanin),
4701 .scan_out(reg_sii_mb1_ipdohq0_rd_en_scanout),
4702 .dout(sii_mb1_ipdohq0_rd_en_r),
4703 .l1clk(l1clk),
4704 .din(sii_mb1_ipdohq0_rd_en),
4705 .siclk(siclk),
4706 .soclk(soclk)
4707 );
4708
4709sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdbhq0_rd_en // ASYNC reset active low
4710 (
4711 .scan_in(reg_sii_mb1_ipdbhq0_rd_en_scanin),
4712 .scan_out(reg_sii_mb1_ipdbhq0_rd_en_scanout),
4713 .dout(sii_mb1_ipdbhq0_rd_en_r),
4714 .l1clk(l1clk),
4715 .din(sii_mb1_ipdbhq0_rd_en),
4716 .siclk(siclk),
4717 .soclk(soclk)
4718 );
4719
4720sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdodq0_rd_en // ASYNC reset active low
4721 (
4722 .scan_in(reg_sii_mb1_ipdodq0_rd_en_scanin),
4723 .scan_out(reg_sii_mb1_ipdodq0_rd_en_scanout),
4724 .dout(sii_mb1_ipdodq0_rd_en_r),
4725 .l1clk(l1clk),
4726 .din(sii_mb1_ipdodq0_rd_en),
4727 .siclk(siclk),
4728 .soclk(soclk)
4729 );
4730
4731sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdbdq0_rd_en // ASYNC reset active low
4732 (
4733 .scan_in(reg_sii_mb1_ipdbdq0_rd_en_scanin),
4734 .scan_out(reg_sii_mb1_ipdbdq0_rd_en_scanout),
4735 .dout(sii_mb1_ipdbdq0_rd_en_r),
4736 .l1clk(l1clk),
4737 .din(sii_mb1_ipdbdq0_rd_en),
4738 .siclk(siclk),
4739 .soclk(soclk)
4740 );
4741
4742sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdohq1_rd_en // ASYNC reset active low
4743 (
4744 .scan_in(reg_sii_mb1_ipdohq1_rd_en_scanin),
4745 .scan_out(reg_sii_mb1_ipdohq1_rd_en_scanout),
4746 .dout(sii_mb1_ipdohq1_rd_en_r),
4747 .l1clk(l1clk),
4748 .din(sii_mb1_ipdohq1_rd_en),
4749 .siclk(siclk),
4750 .soclk(soclk)
4751 );
4752
4753sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdbhq1_rd_en // ASYNC reset active low
4754 (
4755 .scan_in(reg_sii_mb1_ipdbhq1_rd_en_scanin),
4756 .scan_out(reg_sii_mb1_ipdbhq1_rd_en_scanout),
4757 .dout(sii_mb1_ipdbhq1_rd_en_r),
4758 .l1clk(l1clk),
4759 .din(sii_mb1_ipdbhq1_rd_en),
4760 .siclk(siclk),
4761 .soclk(soclk)
4762 );
4763
4764sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdodq1_rd_en // ASYNC reset active low
4765 (
4766 .scan_in(reg_sii_mb1_ipdodq1_rd_en_scanin),
4767 .scan_out(reg_sii_mb1_ipdodq1_rd_en_scanout),
4768 .dout(sii_mb1_ipdodq1_rd_en_r),
4769 .l1clk(l1clk),
4770 .din(sii_mb1_ipdodq1_rd_en),
4771 .siclk(siclk),
4772 .soclk(soclk)
4773 );
4774
4775sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb1_ipdbdq1_rd_en // ASYNC reset active low
4776 (
4777 .scan_in(reg_sii_mb1_ipdbdq1_rd_en_scanin),
4778 .scan_out(reg_sii_mb1_ipdbdq1_rd_en_scanout),
4779 .dout(sii_mb1_ipdbdq1_rd_en_r),
4780 .l1clk(l1clk),
4781 .din(sii_mb1_ipdbdq1_rd_en),
4782 .siclk(siclk),
4783 .soclk(soclk)
4784 );
4785
4786sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb0_run // ASYNC reset active low
4787 (
4788 .scan_in(reg_sii_mb0_run_scanin),
4789 .scan_out(reg_sii_mb0_run_scanout),
4790 .dout(sii_mb0_run_r),
4791 .l1clk(l1clk),
4792 .din(sii_mb0_run),
4793 .siclk(siclk),
4794 .soclk(soclk)
4795 );
4796
4797sii_ipcc_ctlmsff_ctl_macro__width_6 reg_sii_mb0_addr // ASYNC reset active low
4798 (
4799 .scan_in(reg_sii_mb0_addr_scanin),
4800 .scan_out(reg_sii_mb0_addr_scanout),
4801 .dout(sii_mb0_addr_r[5:0]),
4802 .l1clk(l1clk),
4803 .din(sii_mb0_addr[5:0]),
4804 .siclk(siclk),
4805 .soclk(soclk)
4806 );
4807
4808sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb0_wr_en // ASYNC reset active low
4809 (
4810 .scan_in(reg_sii_mb0_wr_en_scanin),
4811 .scan_out(reg_sii_mb0_wr_en_scanout),
4812 .dout(sii_mb0_wr_en_r),
4813 .l1clk(l1clk),
4814 .din(sii_mb0_wr_en),
4815 .siclk(siclk),
4816 .soclk(soclk)
4817 );
4818
4819sii_ipcc_ctlmsff_ctl_macro__width_1 reg_sii_mb0_ind_wr_en // ASYNC reset active low
4820 (
4821 .scan_in(reg_sii_mb0_ind_wr_en_scanin),
4822 .scan_out(reg_sii_mb0_ind_wr_en_scanout),
4823 .dout(sii_mb0_ind_wr_en_r),
4824 .l1clk(l1clk),
4825 .din(sii_mb0_ind_wr_en),
4826 .siclk(siclk),
4827 .soclk(soclk)
4828 );
4829
4830sii_ipcc_ctlmsff_ctl_macro__width_1 reg_tcu_sii_data // ASYNC reset active low
4831 (
4832 .scan_in(reg_tcu_sii_data_scanin),
4833 .scan_out(reg_tcu_sii_data_scanout),
4834 .dout(tcu_sii_data_r),
4835 .l1clk(l1clk),
4836 .din(tcu_sii_data),
4837 .siclk(siclk),
4838 .soclk(soclk)
4839 );
4840
4841sii_ipcc_ctlmsff_ctl_macro__width_1 reg_tcu_sii_vld // ASYNC reset active low
4842 (
4843 .scan_in(reg_tcu_sii_vld_scanin),
4844 .scan_out(reg_tcu_sii_vld_scanout),
4845 .dout(tcu_sii_vld_r),
4846 .l1clk(l1clk),
4847 .din(tcu_sii_vld),
4848 .siclk(siclk),
4849 .soclk(soclk)
4850 );
4851
4852// fixscan start:
4853assign reg_gnt0_scanin = reg_gnt_scanout ;
4854assign reg_cstate_scanin = reg_gnt0_scanout ;
4855assign reg_err_ctag_pa_scanin = reg_cstate_scanout ;
4856assign reg_dma_wr_scanin = reg_err_ctag_pa_scanout ;
4857assign reg_wrm_scanin = reg_dma_wr_scanout ;
4858assign reg_l2_io_scanin = reg_wrm_scanout ;
4859assign reg_dmu_or_cnt_scanin = reg_l2_io_scanout ;
4860assign reg_dmu_by_cnt_scanin = reg_dmu_or_cnt_scanout ;
4861assign reg_niu_or_cnt_scanin = reg_dmu_by_cnt_scanout ;
4862assign reg_niu_by_cnt_scanin = reg_niu_or_cnt_scanout ;
4863assign reg_indq_wr_addr_scanin = reg_niu_by_cnt_scanout ;
4864assign reg_indq_wr_en_scanin = reg_indq_wr_addr_scanout ;
4865assign reg_indq_wr_en_dly_scanin = reg_indq_wr_en_scanout ;
4866assign reg_indq_wr_ovfl_scanin = reg_indq_wr_en_dly_scanout;
4867assign reg_arb1_scanin = reg_indq_wr_ovfl_scanout ;
4868assign reg_dmu_wrm_cnt_scanin = reg_arb1_scanout ;
4869assign reg_niu_wrm_cnt_scanin = reg_dmu_wrm_cnt_scanout ;
4870assign reg_dmu_or_wr_cnt_scanin = reg_niu_wrm_cnt_scanout ;
4871assign reg_dmu_by_wr_cnt_scanin = reg_dmu_or_wr_cnt_scanout;
4872assign reg_niu_or_wr_cnt_scanin = reg_dmu_by_wr_cnt_scanout;
4873assign reg_niu_by_wr_cnt_scanin = reg_niu_or_wr_cnt_scanout;
4874assign reg_niu_by_wr_cnt_snap_scanin = reg_niu_by_wr_cnt_scanout;
4875assign reg_ildq_wr_addr0_scanin = reg_niu_by_wr_cnt_snap_scanout;
4876assign reg_ildq_wr_addr1_scanin = reg_ildq_wr_addr0_scanout;
4877assign reg_ildq_wr_addr2_scanin = reg_ildq_wr_addr1_scanout;
4878assign reg_ildq_wr_addr3_scanin = reg_ildq_wr_addr2_scanout;
4879assign reg_ildq_wr_addr4_scanin = reg_ildq_wr_addr3_scanout;
4880assign reg_ildq_wr_addr5_scanin = reg_ildq_wr_addr4_scanout;
4881assign reg_ildq_wr_addr6_scanin = reg_ildq_wr_addr5_scanout;
4882assign reg_ildq_wr_addr7_scanin = reg_ildq_wr_addr6_scanout;
4883assign reg_ipdohq0_rd_addr_scanin = reg_ildq_wr_addr7_scanout;
4884assign reg_ipdbhq0_rd_addr_scanin = reg_ipdohq0_rd_addr_scanout;
4885assign reg_ipdohq1_rd_addr_scanin = reg_ipdbhq0_rd_addr_scanout;
4886assign reg_ipdbhq1_rd_addr_scanin = reg_ipdohq1_rd_addr_scanout;
4887assign reg_ipdodq0_rd_addr_scanin = reg_ipdbhq1_rd_addr_scanout;
4888assign reg_ipdbdq0_rd_addr_scanin = reg_ipdodq0_rd_addr_scanout;
4889assign reg_ipdodq1_rd_addr_scanin = reg_ipdbdq0_rd_addr_scanout;
4890assign reg_ipdbdq1_rd_addr_scanin = reg_ipdodq1_rd_addr_scanout;
4891assign reg_curbank_scanin = reg_ipdbdq1_rd_addr_scanout;
4892assign reg_dmu_tag_scanin = reg_curbank_scanout ;
4893assign reg_ipcc_ipcs_dmu_wrack_p_pre_scanin = reg_dmu_tag_scanout ;
4894assign reg_ipcc_ilc_cmd0_scanin = reg_ipcc_ipcs_dmu_wrack_p_pre_scanout;
4895assign reg_ipcc_ilc_cmd1_scanin = reg_ipcc_ilc_cmd0_scanout;
4896assign reg_ipcc_ilc_cmd2_scanin = reg_ipcc_ilc_cmd1_scanout;
4897assign reg_ipcc_ilc_cmd3_scanin = reg_ipcc_ilc_cmd2_scanout;
4898assign reg_ipcc_ilc_cmd4_scanin = reg_ipcc_ilc_cmd3_scanout;
4899assign reg_ipcc_ilc_cmd5_scanin = reg_ipcc_ilc_cmd4_scanout;
4900assign reg_ipcc_ilc_cmd6_scanin = reg_ipcc_ilc_cmd5_scanout;
4901assign reg_ipcc_ilc_cmd7_scanin = reg_ipcc_ilc_cmd6_scanout;
4902assign reg_ipcc_ildq_wr_en0_scanin = reg_ipcc_ilc_cmd7_scanout;
4903assign reg_ipcc_ildq_wr_en1_scanin = reg_ipcc_ildq_wr_en0_scanout;
4904assign reg_ipcc_ildq_wr_en2_scanin = reg_ipcc_ildq_wr_en1_scanout;
4905assign reg_ipcc_ildq_wr_en3_scanin = reg_ipcc_ildq_wr_en2_scanout;
4906assign reg_ipcc_ildq_wr_en4_scanin = reg_ipcc_ildq_wr_en3_scanout;
4907assign reg_ipcc_ildq_wr_en5_scanin = reg_ipcc_ildq_wr_en4_scanout;
4908assign reg_ipcc_ildq_wr_en6_scanin = reg_ipcc_ildq_wr_en5_scanout;
4909assign reg_ipcc_ildq_wr_en7_scanin = reg_ipcc_ildq_wr_en6_scanout;
4910assign reg_arb1_hist_scanin = reg_ipcc_ildq_wr_en7_scanout;
4911assign reg_dmu_hist_scanin = reg_arb1_hist_scanout ;
4912assign reg_niu_hist_scanin = reg_dmu_hist_scanout ;
4913assign reg_syndrome_scanin = reg_niu_hist_scanout ;
4914assign reg_sending_scanin = reg_syndrome_scanout ;
4915assign reg_send_cnt_scanin = reg_sending_scanout ;
4916assign reg_err_sig_scanin = reg_send_cnt_scanout ;
4917assign reg_tcu_serial_data_scanin = reg_err_sig_scanout ;
4918assign reg_tcu_go_scanin = reg_tcu_serial_data_scanout;
4919assign reg_tcu_rcv_cnt_scanin = reg_tcu_go_scanout ;
4920assign reg_tcu_txfr_start_scanin = reg_tcu_rcv_cnt_scanout ;
4921assign reg_cmp_io_sync_en_scanin = reg_tcu_txfr_start_scanout;
4922assign reg_io_cmp_sync_en_scanin = reg_cmp_io_sync_en_scanout;
4923assign reg_sii_ncu_syn_data_scanin = reg_io_cmp_sync_en_scanout;
4924assign reg_sii_ncu_syn_vld_scanin = reg_sii_ncu_syn_data_scanout;
4925assign reg_dmuctag_ue_r_scanin = reg_sii_ncu_syn_vld_scanout;
4926assign reg_dmuctag_ue_scanin = reg_dmuctag_ue_r_scanout ;
4927assign reg_dmuctag_ce_r_scanin = reg_dmuctag_ue_scanout ;
4928assign reg_dmuctag_ce_scanin = reg_dmuctag_ce_r_scanout ;
4929assign reg_dmua_pe_r_scanin = reg_dmuctag_ce_scanout ;
4930assign reg_dmua_pe_scanin = reg_dmua_pe_r_scanout ;
4931assign reg_dmu_de_r_scanin = reg_dmua_pe_scanout ;
4932assign reg_dmu_de_scanin = reg_dmu_de_r_scanout ;
4933assign reg_niuctag_ue_r_scanin = reg_dmu_de_scanout ;
4934assign reg_niuctag_ue_scanin = reg_niuctag_ue_r_scanout ;
4935assign reg_niuctag_ce_r_scanin = reg_niuctag_ue_scanout ;
4936assign reg_niuctag_ce_scanin = reg_niuctag_ce_r_scanout ;
4937assign reg_niua_pe_r_scanin = reg_niuctag_ce_scanout ;
4938assign reg_niua_pe_scanin = reg_niua_pe_r_scanout ;
4939assign reg_niu_de_r_scanin = reg_niua_pe_scanout ;
4940assign reg_niu_de_scanin = reg_niu_de_r_scanout ;
4941assign reg_ipcs_ipdohq0_wr_addr_scanin = reg_niu_de_scanout ;
4942assign reg_ipcs_ipdbhq0_wr_addr_scanin = reg_ipcs_ipdohq0_wr_addr_scanout;
4943assign reg_ipcs_ipdodq0_wr_addr_scanin = reg_ipcs_ipdbhq0_wr_addr_scanout;
4944assign reg_ipcs_ipdbdq0_wr_addr_scanin = reg_ipcs_ipdodq0_wr_addr_scanout;
4945assign reg_ipcs_ipdohq0_wr_en_scanin = reg_ipcs_ipdbdq0_wr_addr_scanout;
4946assign reg_ipcs_ipdbhq0_wr_en_scanin = reg_ipcs_ipdohq0_wr_en_scanout;
4947assign reg_ipcs_ipdodq0_wr_en_scanin = reg_ipcs_ipdbhq0_wr_en_scanout;
4948assign reg_ipcs_ipdbdq0_wr_en_scanin = reg_ipcs_ipdodq0_wr_en_scanout;
4949assign reg_ipcs_ipdohq1_wr_addr_scanin = reg_ipcs_ipdbdq0_wr_en_scanout;
4950assign reg_ipcs_ipdbhq1_wr_addr_scanin = reg_ipcs_ipdohq1_wr_addr_scanout;
4951assign reg_ipcs_ipdodq1_wr_addr_scanin = reg_ipcs_ipdbhq1_wr_addr_scanout;
4952assign reg_ipcs_ipdbdq1_wr_addr_scanin = reg_ipcs_ipdodq1_wr_addr_scanout;
4953assign reg_ipcs_ipdohq1_wr_en_scanin = reg_ipcs_ipdbdq1_wr_addr_scanout;
4954assign reg_ipcs_ipdbhq1_wr_en_scanin = reg_ipcs_ipdohq1_wr_en_scanout;
4955assign reg_ipcs_ipdodq1_wr_en_scanin = reg_ipcs_ipdbhq1_wr_en_scanout;
4956assign reg_ipcs_ipdbdq1_wr_en_scanin = reg_ipcs_ipdodq1_wr_en_scanout;
4957assign reg_ipcs_ipcc_dmu_or_dep_scanin = reg_ipcs_ipdbdq1_wr_en_scanout;
4958assign reg_ipcs_ipcc_dmu_by_dep_scanin = reg_ipcs_ipcc_dmu_or_dep_scanout;
4959assign reg_ipcs_ipcc_niu_or_dep_scanin = reg_ipcs_ipcc_dmu_by_dep_scanout;
4960assign reg_ipcs_ipcc_niu_by_dep_scanin = reg_ipcs_ipcc_niu_or_dep_scanout;
4961assign reg_add_dmu_or_scanin = reg_ipcs_ipcc_niu_by_dep_scanout;
4962assign reg_add_dmu_by_scanin = reg_add_dmu_or_scanout ;
4963assign reg_add_niu_or_scanin = reg_add_dmu_by_scanout ;
4964assign reg_add_niu_by_scanin = reg_add_niu_or_scanout ;
4965assign reg_ncu_sii_pm_scanin = reg_add_niu_by_scanout ;
4966assign reg_ncu_sii_ba01_scanin = reg_ncu_sii_pm_scanout ;
4967assign reg_ncu_sii_ba23_scanin = reg_ncu_sii_ba01_scanout ;
4968assign reg_ncu_sii_ba45_scanin = reg_ncu_sii_ba23_scanout ;
4969assign reg_ncu_sii_ba67_scanin = reg_ncu_sii_ba45_scanout ;
4970assign reg_ncu_sii_l2_idx_hash_en_scanin = reg_ncu_sii_ba67_scanout ;
4971assign reg_ipcc_ipcs_dmu_tag_scanin = reg_ncu_sii_l2_idx_hash_en_scanout;
4972assign reg_ipcc_ipcs_wrack_lv_scanin = reg_ipcc_ipcs_dmu_tag_scanout;
4973assign reg_ipcc_ipcs_dmu_wrack_p_scanin = reg_ipcc_ipcs_wrack_lv_scanout;
4974assign reg_wrack_lv_scanin = reg_ipcc_ipcs_dmu_wrack_p_scanout;
4975assign reg_dmu_wrm_mode_scanin = reg_wrack_lv_scanout ;
4976assign reg_niu_wrm_mode_scanin = reg_dmu_wrm_mode_scanout ;
4977assign reg_dmu_or_dq_pre_scanin = reg_niu_wrm_mode_scanout ;
4978assign reg_dmu_or_dq_scanin = reg_dmu_or_dq_pre_scanout;
4979assign reg_dmu_by_dq_pre_scanin = reg_dmu_or_dq_scanout ;
4980assign reg_dmu_by_dq_scanin = reg_dmu_by_dq_pre_scanout;
4981assign reg_niu_or_dq_pre_scanin = reg_dmu_by_dq_scanout ;
4982assign reg_niu_or_dq_scanin = reg_niu_or_dq_pre_scanout;
4983assign reg_niu_by_dq_pre_scanin = reg_niu_or_dq_scanout ;
4984assign reg_niu_by_dq_scanin = reg_niu_by_dq_pre_scanout;
4985assign reg_sync_dmu_or_rd_ptr_pre_scanin = reg_niu_by_dq_scanout ;
4986assign reg_sync_dmu_or_rd_ptr_scanin = reg_sync_dmu_or_rd_ptr_pre_scanout;
4987assign reg_sync_dmu_by_rd_ptr_pre_scanin = reg_sync_dmu_or_rd_ptr_scanout;
4988assign reg_sync_dmu_by_rd_ptr_scanin = reg_sync_dmu_by_rd_ptr_pre_scanout;
4989assign reg_sync_niu_or_rd_ptr_pre_scanin = reg_sync_dmu_by_rd_ptr_scanout;
4990assign reg_sync_niu_or_rd_ptr_scanin = reg_sync_niu_or_rd_ptr_pre_scanout;
4991assign reg_sync_niu_by_rd_ptr_pre_scanin = reg_sync_niu_or_rd_ptr_scanout;
4992assign reg_sync_niu_by_rd_ptr_scanin = reg_sync_niu_by_rd_ptr_pre_scanout;
4993assign reg_sii_mb1_run_scanin = reg_sync_niu_by_rd_ptr_scanout;
4994assign reg_sii_mb1_addr_scanin = reg_sii_mb1_run_scanout ;
4995assign reg_sii_mb1_ipdohq0_rd_en_scanin = reg_sii_mb1_addr_scanout ;
4996assign reg_sii_mb1_ipdbhq0_rd_en_scanin = reg_sii_mb1_ipdohq0_rd_en_scanout;
4997assign reg_sii_mb1_ipdodq0_rd_en_scanin = reg_sii_mb1_ipdbhq0_rd_en_scanout;
4998assign reg_sii_mb1_ipdbdq0_rd_en_scanin = reg_sii_mb1_ipdodq0_rd_en_scanout;
4999assign reg_sii_mb1_ipdohq1_rd_en_scanin = reg_sii_mb1_ipdbdq0_rd_en_scanout;
5000assign reg_sii_mb1_ipdbhq1_rd_en_scanin = reg_sii_mb1_ipdohq1_rd_en_scanout;
5001assign reg_sii_mb1_ipdodq1_rd_en_scanin = reg_sii_mb1_ipdbhq1_rd_en_scanout;
5002assign reg_sii_mb1_ipdbdq1_rd_en_scanin = reg_sii_mb1_ipdodq1_rd_en_scanout;
5003assign reg_sii_mb0_run_scanin = reg_sii_mb1_ipdbdq1_rd_en_scanout;
5004assign reg_sii_mb0_addr_scanin = reg_sii_mb0_run_scanout ;
5005assign reg_sii_mb0_wr_en_scanin = reg_sii_mb0_addr_scanout ;
5006assign reg_sii_mb0_ind_wr_en_scanin = reg_sii_mb0_wr_en_scanout;
5007assign reg_tcu_sii_data_scanin = reg_sii_mb0_ind_wr_en_scanout;
5008assign reg_tcu_sii_vld_scanin = reg_tcu_sii_data_scanout ;
5009assign scan_out = reg_tcu_sii_vld_scanout ;
5010// fixscan end:
5011endmodule
5012
5013
5014
5015
5016
5017
5018// any PARAMS parms go into naming of macro
5019
5020module sii_ipcc_ctll1clkhdr_ctl_macro (
5021 l2clk,
5022 l1en,
5023 pce_ov,
5024 stop,
5025 se,
5026 l1clk);
5027
5028
5029 input l2clk;
5030 input l1en;
5031 input pce_ov;
5032 input stop;
5033 input se;
5034 output l1clk;
5035
5036
5037
5038
5039
5040cl_sc1_l1hdr_8x c_0 (
5041
5042
5043 .l2clk(l2clk),
5044 .pce(l1en),
5045 .l1clk(l1clk),
5046 .se(se),
5047 .pce_ov(pce_ov),
5048 .stop(stop)
5049);
5050
5051
5052
5053endmodule
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067// any PARAMS parms go into naming of macro
5068
5069module sii_ipcc_ctlmsff_ctl_macro__en_1__width_5 (
5070 din,
5071 en,
5072 l1clk,
5073 scan_in,
5074 siclk,
5075 soclk,
5076 dout,
5077 scan_out);
5078wire [4:0] fdin;
5079wire [3:0] so;
5080
5081 input [4:0] din;
5082 input en;
5083 input l1clk;
5084 input scan_in;
5085
5086
5087 input siclk;
5088 input soclk;
5089
5090 output [4:0] dout;
5091 output scan_out;
5092assign fdin[4:0] = (din[4:0] & {5{en}}) | (dout[4:0] & ~{5{en}});
5093
5094
5095
5096
5097
5098
5099dff #(5) d0_0 (
5100.l1clk(l1clk),
5101.siclk(siclk),
5102.soclk(soclk),
5103.d(fdin[4:0]),
5104.si({scan_in,so[3:0]}),
5105.so({so[3:0],scan_out}),
5106.q(dout[4:0])
5107);
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120endmodule
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134// any PARAMS parms go into naming of macro
5135
5136module sii_ipcc_ctlmsff_ctl_macro__width_14 (
5137 din,
5138 l1clk,
5139 scan_in,
5140 siclk,
5141 soclk,
5142 dout,
5143 scan_out);
5144wire [13:0] fdin;
5145wire [12:0] so;
5146
5147 input [13:0] din;
5148 input l1clk;
5149 input scan_in;
5150
5151
5152 input siclk;
5153 input soclk;
5154
5155 output [13:0] dout;
5156 output scan_out;
5157assign fdin[13:0] = din[13:0];
5158
5159
5160
5161
5162
5163
5164dff #(14) d0_0 (
5165.l1clk(l1clk),
5166.siclk(siclk),
5167.soclk(soclk),
5168.d(fdin[13:0]),
5169.si({scan_in,so[12:0]}),
5170.so({so[12:0],scan_out}),
5171.q(dout[13:0])
5172);
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185endmodule
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199// any PARAMS parms go into naming of macro
5200
5201module sii_ipcc_ctlmsff_ctl_macro__en_1__width_56 (
5202 din,
5203 en,
5204 l1clk,
5205 scan_in,
5206 siclk,
5207 soclk,
5208 dout,
5209 scan_out);
5210wire [55:0] fdin;
5211wire [54:0] so;
5212
5213 input [55:0] din;
5214 input en;
5215 input l1clk;
5216 input scan_in;
5217
5218
5219 input siclk;
5220 input soclk;
5221
5222 output [55:0] dout;
5223 output scan_out;
5224assign fdin[55:0] = (din[55:0] & {56{en}}) | (dout[55:0] & ~{56{en}});
5225
5226
5227
5228
5229
5230
5231dff #(56) d0_0 (
5232.l1clk(l1clk),
5233.siclk(siclk),
5234.soclk(soclk),
5235.d(fdin[55:0]),
5236.si({scan_in,so[54:0]}),
5237.so({so[54:0],scan_out}),
5238.q(dout[55:0])
5239);
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252endmodule
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266// any PARAMS parms go into naming of macro
5267
5268module sii_ipcc_ctlmsff_ctl_macro__width_1 (
5269 din,
5270 l1clk,
5271 scan_in,
5272 siclk,
5273 soclk,
5274 dout,
5275 scan_out);
5276wire [0:0] fdin;
5277
5278 input [0:0] din;
5279 input l1clk;
5280 input scan_in;
5281
5282
5283 input siclk;
5284 input soclk;
5285
5286 output [0:0] dout;
5287 output scan_out;
5288assign fdin[0:0] = din[0:0];
5289
5290
5291
5292
5293
5294
5295dff #(1) d0_0 (
5296.l1clk(l1clk),
5297.siclk(siclk),
5298.soclk(soclk),
5299.d(fdin[0:0]),
5300.si(scan_in),
5301.so(scan_out),
5302.q(dout[0:0])
5303);
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316endmodule
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330// any PARAMS parms go into naming of macro
5331
5332module sii_ipcc_ctlmsff_ctl_macro__en_1__width_1 (
5333 din,
5334 en,
5335 l1clk,
5336 scan_in,
5337 siclk,
5338 soclk,
5339 dout,
5340 scan_out);
5341wire [0:0] fdin;
5342
5343 input [0:0] din;
5344 input en;
5345 input l1clk;
5346 input scan_in;
5347
5348
5349 input siclk;
5350 input soclk;
5351
5352 output [0:0] dout;
5353 output scan_out;
5354assign fdin[0:0] = (din[0:0] & {1{en}}) | (dout[0:0] & ~{1{en}});
5355
5356
5357
5358
5359
5360
5361dff #(1) d0_0 (
5362.l1clk(l1clk),
5363.siclk(siclk),
5364.soclk(soclk),
5365.d(fdin[0:0]),
5366.si(scan_in),
5367.so(scan_out),
5368.q(dout[0:0])
5369);
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382endmodule
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396// any PARAMS parms go into naming of macro
5397
5398module sii_ipcc_ctlmsff_ctl_macro__width_5 (
5399 din,
5400 l1clk,
5401 scan_in,
5402 siclk,
5403 soclk,
5404 dout,
5405 scan_out);
5406wire [4:0] fdin;
5407wire [3:0] so;
5408
5409 input [4:0] din;
5410 input l1clk;
5411 input scan_in;
5412
5413
5414 input siclk;
5415 input soclk;
5416
5417 output [4:0] dout;
5418 output scan_out;
5419assign fdin[4:0] = din[4:0];
5420
5421
5422
5423
5424
5425
5426dff #(5) d0_0 (
5427.l1clk(l1clk),
5428.siclk(siclk),
5429.soclk(soclk),
5430.d(fdin[4:0]),
5431.si({scan_in,so[3:0]}),
5432.so({so[3:0],scan_out}),
5433.q(dout[4:0])
5434);
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447endmodule
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461// any PARAMS parms go into naming of macro
5462
5463module sii_ipcc_ctlmsff_ctl_macro__width_6 (
5464 din,
5465 l1clk,
5466 scan_in,
5467 siclk,
5468 soclk,
5469 dout,
5470 scan_out);
5471wire [5:0] fdin;
5472wire [4:0] so;
5473
5474 input [5:0] din;
5475 input l1clk;
5476 input scan_in;
5477
5478
5479 input siclk;
5480 input soclk;
5481
5482 output [5:0] dout;
5483 output scan_out;
5484assign fdin[5:0] = din[5:0];
5485
5486
5487
5488
5489
5490
5491dff #(6) d0_0 (
5492.l1clk(l1clk),
5493.siclk(siclk),
5494.soclk(soclk),
5495.d(fdin[5:0]),
5496.si({scan_in,so[4:0]}),
5497.so({so[4:0],scan_out}),
5498.q(dout[5:0])
5499);
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512endmodule
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526// any PARAMS parms go into naming of macro
5527
5528module sii_ipcc_ctlmsff_ctl_macro__width_2 (
5529 din,
5530 l1clk,
5531 scan_in,
5532 siclk,
5533 soclk,
5534 dout,
5535 scan_out);
5536wire [1:0] fdin;
5537wire [0:0] so;
5538
5539 input [1:0] din;
5540 input l1clk;
5541 input scan_in;
5542
5543
5544 input siclk;
5545 input soclk;
5546
5547 output [1:0] dout;
5548 output scan_out;
5549assign fdin[1:0] = din[1:0];
5550
5551
5552
5553
5554
5555
5556dff #(2) d0_0 (
5557.l1clk(l1clk),
5558.siclk(siclk),
5559.soclk(soclk),
5560.d(fdin[1:0]),
5561.si({scan_in,so[0:0]}),
5562.so({so[0:0],scan_out}),
5563.q(dout[1:0])
5564);
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577endmodule
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591// any PARAMS parms go into naming of macro
5592
5593module sii_ipcc_ctlmsff_ctl_macro__width_4 (
5594 din,
5595 l1clk,
5596 scan_in,
5597 siclk,
5598 soclk,
5599 dout,
5600 scan_out);
5601wire [3:0] fdin;
5602wire [2:0] so;
5603
5604 input [3:0] din;
5605 input l1clk;
5606 input scan_in;
5607
5608
5609 input siclk;
5610 input soclk;
5611
5612 output [3:0] dout;
5613 output scan_out;
5614assign fdin[3:0] = din[3:0];
5615
5616
5617
5618
5619
5620
5621dff #(4) d0_0 (
5622.l1clk(l1clk),
5623.siclk(siclk),
5624.soclk(soclk),
5625.d(fdin[3:0]),
5626.si({scan_in,so[2:0]}),
5627.so({so[2:0],scan_out}),
5628.q(dout[3:0])
5629);
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642endmodule
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656// any PARAMS parms go into naming of macro
5657
5658module sii_ipcc_ctlmsff_ctl_macro__dmsff_32x__width_5 (
5659 din,
5660 l1clk,
5661 scan_in,
5662 siclk,
5663 soclk,
5664 dout,
5665 scan_out);
5666wire [4:0] fdin;
5667wire [3:0] so;
5668
5669 input [4:0] din;
5670 input l1clk;
5671 input scan_in;
5672
5673
5674 input siclk;
5675 input soclk;
5676
5677 output [4:0] dout;
5678 output scan_out;
5679assign fdin[4:0] = din[4:0];
5680
5681
5682
5683
5684
5685
5686dff #(5) d0_0 (
5687.l1clk(l1clk),
5688.siclk(siclk),
5689.soclk(soclk),
5690.d(fdin[4:0]),
5691.si({scan_in,so[3:0]}),
5692.so({so[3:0],scan_out}),
5693.q(dout[4:0])
5694);
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707endmodule
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721// any PARAMS parms go into naming of macro
5722
5723module sii_ipcc_ctlmsff_ctl_macro__en_1__width_3 (
5724 din,
5725 en,
5726 l1clk,
5727 scan_in,
5728 siclk,
5729 soclk,
5730 dout,
5731 scan_out);
5732wire [2:0] fdin;
5733wire [1:0] so;
5734
5735 input [2:0] din;
5736 input en;
5737 input l1clk;
5738 input scan_in;
5739
5740
5741 input siclk;
5742 input soclk;
5743
5744 output [2:0] dout;
5745 output scan_out;
5746assign fdin[2:0] = (din[2:0] & {3{en}}) | (dout[2:0] & ~{3{en}});
5747
5748
5749
5750
5751
5752
5753dff #(3) d0_0 (
5754.l1clk(l1clk),
5755.siclk(siclk),
5756.soclk(soclk),
5757.d(fdin[2:0]),
5758.si({scan_in,so[1:0]}),
5759.so({so[1:0],scan_out}),
5760.q(dout[2:0])
5761);
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774endmodule
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788// any PARAMS parms go into naming of macro
5789
5790module sii_ipcc_ctlmsff_ctl_macro__en_1__width_4 (
5791 din,
5792 en,
5793 l1clk,
5794 scan_in,
5795 siclk,
5796 soclk,
5797 dout,
5798 scan_out);
5799wire [3:0] fdin;
5800wire [2:0] so;
5801
5802 input [3:0] din;
5803 input en;
5804 input l1clk;
5805 input scan_in;
5806
5807
5808 input siclk;
5809 input soclk;
5810
5811 output [3:0] dout;
5812 output scan_out;
5813assign fdin[3:0] = (din[3:0] & {4{en}}) | (dout[3:0] & ~{4{en}});
5814
5815
5816
5817
5818
5819
5820dff #(4) d0_0 (
5821.l1clk(l1clk),
5822.siclk(siclk),
5823.soclk(soclk),
5824.d(fdin[3:0]),
5825.si({scan_in,so[2:0]}),
5826.so({so[2:0],scan_out}),
5827.q(dout[3:0])
5828);
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841endmodule
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855// any PARAMS parms go into naming of macro
5856
5857module sii_ipcc_ctlmsff_ctl_macro__width_64 (
5858 din,
5859 l1clk,
5860 scan_in,
5861 siclk,
5862 soclk,
5863 dout,
5864 scan_out);
5865wire [63:0] fdin;
5866wire [62:0] so;
5867
5868 input [63:0] din;
5869 input l1clk;
5870 input scan_in;
5871
5872
5873 input siclk;
5874 input soclk;
5875
5876 output [63:0] dout;
5877 output scan_out;
5878assign fdin[63:0] = din[63:0];
5879
5880
5881
5882
5883
5884
5885dff #(64) d0_0 (
5886.l1clk(l1clk),
5887.siclk(siclk),
5888.soclk(soclk),
5889.d(fdin[63:0]),
5890.si({scan_in,so[62:0]}),
5891.so({so[62:0],scan_out}),
5892.q(dout[63:0])
5893);
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906endmodule
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920// any PARAMS parms go into naming of macro
5921
5922module sii_ipcc_ctlmsff_ctl_macro__width_7 (
5923 din,
5924 l1clk,
5925 scan_in,
5926 siclk,
5927 soclk,
5928 dout,
5929 scan_out);
5930wire [6:0] fdin;
5931wire [5:0] so;
5932
5933 input [6:0] din;
5934 input l1clk;
5935 input scan_in;
5936
5937
5938 input siclk;
5939 input soclk;
5940
5941 output [6:0] dout;
5942 output scan_out;
5943assign fdin[6:0] = din[6:0];
5944
5945
5946
5947
5948
5949
5950dff #(7) d0_0 (
5951.l1clk(l1clk),
5952.siclk(siclk),
5953.soclk(soclk),
5954.d(fdin[6:0]),
5955.si({scan_in,so[5:0]}),
5956.so({so[5:0],scan_out}),
5957.q(dout[6:0])
5958);
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971endmodule
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985// any PARAMS parms go into naming of macro
5986
5987module sii_ipcc_ctlmsff_ctl_macro__width_128 (
5988 din,
5989 l1clk,
5990 scan_in,
5991 siclk,
5992 soclk,
5993 dout,
5994 scan_out);
5995wire [127:0] fdin;
5996wire [126:0] so;
5997
5998 input [127:0] din;
5999 input l1clk;
6000 input scan_in;
6001
6002
6003 input siclk;
6004 input soclk;
6005
6006 output [127:0] dout;
6007 output scan_out;
6008assign fdin[127:0] = din[127:0];
6009
6010
6011
6012
6013
6014
6015dff #(128) d0_0 (
6016.l1clk(l1clk),
6017.siclk(siclk),
6018.soclk(soclk),
6019.d(fdin[127:0]),
6020.si({scan_in,so[126:0]}),
6021.so({so[126:0],scan_out}),
6022.q(dout[127:0])
6023);
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036endmodule
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050// any PARAMS parms go into naming of macro
6051
6052module sii_ipcc_ctlmsff_ctl_macro__width_8 (
6053 din,
6054 l1clk,
6055 scan_in,
6056 siclk,
6057 soclk,
6058 dout,
6059 scan_out);
6060wire [7:0] fdin;
6061wire [6:0] so;
6062
6063 input [7:0] din;
6064 input l1clk;
6065 input scan_in;
6066
6067
6068 input siclk;
6069 input soclk;
6070
6071 output [7:0] dout;
6072 output scan_out;
6073assign fdin[7:0] = din[7:0];
6074
6075
6076
6077
6078
6079
6080dff #(8) d0_0 (
6081.l1clk(l1clk),
6082.siclk(siclk),
6083.soclk(soclk),
6084.d(fdin[7:0]),
6085.si({scan_in,so[6:0]}),
6086.so({so[6:0],scan_out}),
6087.q(dout[7:0])
6088);
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101endmodule
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115// any PARAMS parms go into naming of macro
6116
6117module sii_ipcc_ctlmsff_ctl_macro__en_1__width_6 (
6118 din,
6119 en,
6120 l1clk,
6121 scan_in,
6122 siclk,
6123 soclk,
6124 dout,
6125 scan_out);
6126wire [5:0] fdin;
6127wire [4:0] so;
6128
6129 input [5:0] din;
6130 input en;
6131 input l1clk;
6132 input scan_in;
6133
6134
6135 input siclk;
6136 input soclk;
6137
6138 output [5:0] dout;
6139 output scan_out;
6140assign fdin[5:0] = (din[5:0] & {6{en}}) | (dout[5:0] & ~{6{en}});
6141
6142
6143
6144
6145
6146
6147dff #(6) d0_0 (
6148.l1clk(l1clk),
6149.siclk(siclk),
6150.soclk(soclk),
6151.d(fdin[5:0]),
6152.si({scan_in,so[4:0]}),
6153.so({so[4:0],scan_out}),
6154.q(dout[5:0])
6155);
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168endmodule
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182// any PARAMS parms go into naming of macro
6183
6184module sii_ipcc_ctlmsff_ctl_macro__en_1__width_16 (
6185 din,
6186 en,
6187 l1clk,
6188 scan_in,
6189 siclk,
6190 soclk,
6191 dout,
6192 scan_out);
6193wire [15:0] fdin;
6194wire [14:0] so;
6195
6196 input [15:0] din;
6197 input en;
6198 input l1clk;
6199 input scan_in;
6200
6201
6202 input siclk;
6203 input soclk;
6204
6205 output [15:0] dout;
6206 output scan_out;
6207assign fdin[15:0] = (din[15:0] & {16{en}}) | (dout[15:0] & ~{16{en}});
6208
6209
6210
6211
6212
6213
6214dff #(16) d0_0 (
6215.l1clk(l1clk),
6216.siclk(siclk),
6217.soclk(soclk),
6218.d(fdin[15:0]),
6219.si({scan_in,so[14:0]}),
6220.so({so[14:0],scan_out}),
6221.q(dout[15:0])
6222);
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235endmodule
6236
6237
6238
6239
6240
6241
6242
6243