Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / sii / rtl / sii_ipcs_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: sii_ipcs_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_ipcs_ctl (
36 ext_sii_hdr_vld,
37 ext_sii_reqbypass,
38 ext_sii_datareq,
39 ext_sii_datareq16,
40 ext_sii_data,
41 ext_sii_be,
42 ext_sii_parity,
43 ext_sii_be_parity,
44 ncu_sii_ctag_uei,
45 ncu_sii_ctag_cei,
46 ncu_sii_a_pei,
47 ncu_sii_d_pei,
48 sii_ext_wrack_tag,
49 sii_ext_wrack_vld,
50 sii_ext_wrack_parity,
51 sii_ext_oqdq,
52 sii_ext_bqdq,
53 ipcc_ipcs_or_go_lv,
54 ipcc_ipcs_by_go_lv,
55 ipcc_ipcs_or_ptr,
56 ipcc_ipcs_by_ptr,
57 ipcc_ipcs_dmu_tag,
58 ipcc_ipcs_dmu_wrack_p,
59 ipcc_ipcs_wrack_lv,
60 ipcs_ipcc_or_dep,
61 ipcs_ipcc_by_dep,
62 ipcs_ipcc_add_or,
63 ipcs_ipcc_add_by,
64 ipdohq_din,
65 ipdbhq_din,
66 ipdodq_din,
67 ipdbdq_din,
68 ipcs_ipdohq_wr_addr,
69 ipcs_ipdohq_wr_en,
70 ipcs_ipdbhq_wr_addr,
71 ipcs_ipdbhq_wr_en,
72 ipcs_ipdodq_wr_addr,
73 ipcs_ipdodq_wr_en,
74 ipcs_ipdbdq_wr_addr,
75 ipcs_ipdbdq_wr_en,
76 dmu_mode,
77 iol2clk,
78 scan_in,
79 scan_out,
80 tcu_scan_en,
81 tcu_dbr_gateoff,
82 tcu_aclk,
83 tcu_bclk,
84 tcu_pce_ov,
85 tcu_clk_stop,
86 sii_mb1_ipdodq_wr_en,
87 sii_mb1_ipdbdq_wr_en,
88 sii_mb1_ipdohq_wr_en,
89 sii_mb1_ipdbhq_wr_en,
90 sii_mb1_run_r,
91 sii_mb1_wr_addr,
92 sii_mb1_wdata);
93wire se;
94wire siclk;
95wire soclk;
96wire pce_ov;
97wire stop;
98wire l1clk;
99wire spares_scanin;
100wire spares_scanout;
101wire cmd_grp_4_unused;
102wire [5:0] cmd_grp;
103wire gt_wrptr_4_unused;
104wire [4:0] gt_wrptr;
105wire [71:0] mbist_hdr_data;
106wire [159:0] mbist_data_data;
107wire dmu_wrack_vld;
108wire ipcc_ipcs_or_go;
109wire ipcc_ipcs_by_go;
110wire add_or;
111wire ext_sii_reqbypass_r;
112wire [6:0] cstate;
113wire l2_io;
114wire [2:0] cmd;
115wire add_by;
116wire [40:0] or_cam15_r;
117wire [40:0] or_cam14_r;
118wire [40:0] or_cam13_r;
119wire [40:0] or_cam12_r;
120wire [40:0] or_cam11_r;
121wire [40:0] or_cam10_r;
122wire [40:0] or_cam9_r;
123wire [40:0] or_cam8_r;
124wire [40:0] or_cam7_r;
125wire [40:0] or_cam6_r;
126wire [40:0] or_cam5_r;
127wire [40:0] or_cam4_r;
128wire [40:0] or_cam3_r;
129wire [40:0] or_cam2_r;
130wire [40:0] or_cam1_r;
131wire [40:0] or_cam0_r;
132wire [40:0] by_cam15_r;
133wire [40:0] by_cam14_r;
134wire [40:0] by_cam13_r;
135wire [40:0] by_cam12_r;
136wire [40:0] by_cam11_r;
137wire [40:0] by_cam10_r;
138wire [40:0] by_cam9_r;
139wire [40:0] by_cam8_r;
140wire [40:0] by_cam7_r;
141wire [40:0] by_cam6_r;
142wire [40:0] by_cam5_r;
143wire [40:0] by_cam4_r;
144wire [40:0] by_cam3_r;
145wire [40:0] by_cam2_r;
146wire [40:0] by_cam1_r;
147wire [40:0] by_cam0_r;
148wire ext_sii_datai;
149wire [4:0] ipdohq_wr_addr_r;
150wire [4:0] ipdohq_wr_addr_l;
151wire ipcs_ipdohq_wr_en_i;
152wire [4:0] ipdbhq_wr_addr_r;
153wire [4:0] ipdbhq_wr_addr_l;
154wire ipcs_ipdbhq_wr_en_i;
155wire [71:0] newhdr;
156wire [5:0] ipcs_ipdodq_wr_addr_l;
157wire arc_data1_data2;
158wire [5:0] ipcs_ipdodq_wr_addr_r;
159wire [5:0] ipcs_ipdbdq_wr_addr_l;
160wire [5:0] ipcs_ipdbdq_wr_addr_r;
161wire ext_sii_datareq16_l;
162wire ext_sii_datareq16_r;
163wire dmu_sii_reqbypass_l;
164wire [127:0] ext_sii_hdr_l;
165wire [127:0] ext_sii_hdr_r;
166wire [5:0] ctag_ecc;
167wire [1:0] addr_parity;
168wire cmd_parity;
169wire intr;
170wire posted;
171wire [15:0] id;
172wire timeout;
173wire unmap;
174wire uncor;
175wire [37:0] pa;
176wire cmd_parity_ori;
177wire [4:0] last_or_wr_l;
178wire [3:0] ipcc_ipcs_or_raddr;
179wire [4:0] last_or_wr_r;
180wire w_r;
181wire [4:0] last_by_wr_l;
182wire [3:0] ipcc_ipcs_by_raddr;
183wire [4:0] last_by_wr_r;
184wire [33:0] addr;
185wire [3:0] ptr;
186wire [3:0] dmu_ptr;
187wire [3:0] niu_ptr;
188wire [3:0] youngest_match;
189wire [3:0] youngest_dep;
190wire [3:0] dmu_or_ptr;
191wire [3:0] dmu_by_ptr;
192wire [3:0] dmu_or_ptr_l;
193wire [3:0] dmu_by_ptr_l;
194wire niu_dep;
195wire address_matched;
196wire [4:0] last_wrptr;
197wire dmu_dep;
198wire or_qvalid;
199wire by_qvalid;
200wire dep;
201wire [40:0] cam_l;
202wire match0;
203wire by_cam0_v;
204wire or_cam0_v;
205wire match1;
206wire by_cam1_v;
207wire or_cam1_v;
208wire match2;
209wire by_cam2_v;
210wire or_cam2_v;
211wire match3;
212wire by_cam3_v;
213wire or_cam3_v;
214wire match4;
215wire by_cam4_v;
216wire or_cam4_v;
217wire match5;
218wire by_cam5_v;
219wire or_cam5_v;
220wire match6;
221wire by_cam6_v;
222wire or_cam6_v;
223wire match7;
224wire by_cam7_v;
225wire or_cam7_v;
226wire match8;
227wire by_cam8_v;
228wire or_cam8_v;
229wire match9;
230wire by_cam9_v;
231wire or_cam9_v;
232wire match10;
233wire by_cam10_v;
234wire or_cam10_v;
235wire match11;
236wire by_cam11_v;
237wire or_cam11_v;
238wire match12;
239wire by_cam12_v;
240wire or_cam12_v;
241wire match13;
242wire by_cam13_v;
243wire or_cam13_v;
244wire match14;
245wire by_cam14_v;
246wire or_cam14_v;
247wire match15;
248wire by_cam15_v;
249wire or_cam15_v;
250wire by_clr_v0;
251wire by_clr_v1;
252wire by_clr_v2;
253wire by_clr_v3;
254wire by_clr_v4;
255wire by_clr_v5;
256wire by_clr_v6;
257wire by_clr_v7;
258wire by_clr_v8;
259wire by_clr_v9;
260wire by_clr_v10;
261wire by_clr_v11;
262wire by_clr_v12;
263wire by_clr_v13;
264wire by_clr_v14;
265wire by_clr_v15;
266wire or_clr_v0;
267wire or_clr_v1;
268wire or_clr_v2;
269wire or_clr_v3;
270wire or_clr_v4;
271wire or_clr_v5;
272wire or_clr_v6;
273wire or_clr_v7;
274wire or_clr_v8;
275wire or_clr_v9;
276wire or_clr_v10;
277wire or_clr_v11;
278wire or_clr_v12;
279wire or_clr_v13;
280wire or_clr_v14;
281wire or_clr_v15;
282wire [3:0] wpt;
283wire [4:0] lt_wrptr;
284wire [6:0] nstate;
285wire [6:0] cstate_r;
286wire arc_start_hdr;
287wire arc_start_hdrpayld;
288wire arc_hdr_hdrpayld;
289wire arc_hdr_hdr;
290wire arc_hdrpayld_data1;
291wire arc_data1_hdrpayld;
292wire arc_data1_hdr;
293wire arc_data2_data3;
294wire arc_data3_data4;
295wire arc_data4_hdr;
296wire arc_data4_hdrpayld;
297wire or_clr_d0;
298wire or_clr_d1;
299wire or_clr_d2;
300wire or_clr_d3;
301wire or_clr_d4;
302wire or_clr_d5;
303wire or_clr_d6;
304wire or_clr_d7;
305wire or_clr_d8;
306wire or_clr_d9;
307wire or_clr_d10;
308wire or_clr_d11;
309wire or_clr_d12;
310wire or_clr_d13;
311wire or_clr_d14;
312wire or_clr_d15;
313wire by_clr_d0;
314wire by_clr_d1;
315wire by_clr_d2;
316wire by_clr_d3;
317wire by_clr_d4;
318wire by_clr_d5;
319wire by_clr_d6;
320wire by_clr_d7;
321wire by_clr_d8;
322wire by_clr_d9;
323wire by_clr_d10;
324wire by_clr_d11;
325wire by_clr_d12;
326wire by_clr_d13;
327wire by_clr_d14;
328wire by_clr_d15;
329wire reg_cstate_scanin;
330wire reg_cstate_scanout;
331wire reg_last_or_wr_scanin;
332wire reg_last_or_wr_scanout;
333wire reg_last_by_wr_scanin;
334wire reg_last_by_wr_scanout;
335wire reg_dmu_or_ptr_scanin;
336wire reg_dmu_or_ptr_scanout;
337wire reg_dmu_by_ptr_scanin;
338wire reg_dmu_by_ptr_scanout;
339wire reg_ipdohq_wr_addr_scanin;
340wire reg_ipdohq_wr_addr_scanout;
341wire reg_ipdbhq_wr_addr_scanin;
342wire reg_ipdbhq_wr_addr_scanout;
343wire reg_ipdodq_wr_addr_scanin;
344wire reg_ipdodq_wr_addr_scanout;
345wire reg_ipdbdq_wr_addr_scanin;
346wire reg_ipdbdq_wr_addr_scanout;
347wire reg_dmu_sii_hdr_scanin;
348wire reg_dmu_sii_hdr_scanout;
349wire reg_datareq16_scanin;
350wire reg_datareq16_scanout;
351wire reg_reqbypass_scanin;
352wire reg_reqbypass_scanout;
353wire reg_add_or_scanin;
354wire reg_add_or_scanout;
355wire reg_add_by_scanin;
356wire reg_add_by_scanout;
357wire reg_dmu_wrack_tag_scanin;
358wire reg_dmu_wrack_tag_scanout;
359wire reg_dmu_wrack_parity_scanin;
360wire reg_dmu_wrack_parity_scanout;
361wire ipcc_ipcs_wrack_vld;
362wire sync2_wrack;
363wire reg_ipcc_ipcs_wrack_scanin;
364wire reg_ipcc_ipcs_wrack_scanout;
365wire sync_ff_wrack1_scanin;
366wire sync_ff_wrack1_scanout;
367wire sync1_wrack;
368wire sync_ff_wrack2_scanin;
369wire sync_ff_wrack2_scanout;
370wire ipcc_ipcs_or_dq;
371wire reg_ipcc_ipcs_or_dq_scanin;
372wire reg_ipcc_ipcs_or_dq_scanout;
373wire ipcc_ipcs_by_dq;
374wire reg_ipcc_ipcs_by_dq_scanin;
375wire reg_ipcc_ipcs_by_dq_scanout;
376wire sync_ff_or_ptr2_scanin;
377wire sync_ff_or_ptr2_scanout;
378wire sync_ff_by_ptr1_scanin;
379wire sync_ff_by_ptr1_scanout;
380wire reg_by_cam0_scanin;
381wire reg_by_cam0_scanout;
382wire reg_by_cam1_scanin;
383wire reg_by_cam1_scanout;
384wire reg_by_cam2_scanin;
385wire reg_by_cam2_scanout;
386wire reg_by_cam3_scanin;
387wire reg_by_cam3_scanout;
388wire reg_by_cam4_scanin;
389wire reg_by_cam4_scanout;
390wire reg_by_cam5_scanin;
391wire reg_by_cam5_scanout;
392wire reg_by_cam6_scanin;
393wire reg_by_cam6_scanout;
394wire reg_by_cam7_scanin;
395wire reg_by_cam7_scanout;
396wire reg_by_cam8_scanin;
397wire reg_by_cam8_scanout;
398wire reg_by_cam9_scanin;
399wire reg_by_cam9_scanout;
400wire reg_by_cam10_scanin;
401wire reg_by_cam10_scanout;
402wire reg_by_cam11_scanin;
403wire reg_by_cam11_scanout;
404wire reg_by_cam12_scanin;
405wire reg_by_cam12_scanout;
406wire reg_by_cam13_scanin;
407wire reg_by_cam13_scanout;
408wire reg_by_cam14_scanin;
409wire reg_by_cam14_scanout;
410wire reg_by_cam15_scanin;
411wire reg_by_cam15_scanout;
412wire reg_or_cam0_scanin;
413wire reg_or_cam0_scanout;
414wire reg_or_cam1_scanin;
415wire reg_or_cam1_scanout;
416wire reg_or_cam2_scanin;
417wire reg_or_cam2_scanout;
418wire reg_or_cam3_scanin;
419wire reg_or_cam3_scanout;
420wire reg_or_cam4_scanin;
421wire reg_or_cam4_scanout;
422wire reg_or_cam5_scanin;
423wire reg_or_cam5_scanout;
424wire reg_or_cam6_scanin;
425wire reg_or_cam6_scanout;
426wire reg_or_cam7_scanin;
427wire reg_or_cam7_scanout;
428wire reg_or_cam8_scanin;
429wire reg_or_cam8_scanout;
430wire reg_or_cam9_scanin;
431wire reg_or_cam9_scanout;
432wire reg_or_cam10_scanin;
433wire reg_or_cam10_scanout;
434wire reg_or_cam11_scanin;
435wire reg_or_cam11_scanout;
436wire reg_or_cam12_scanin;
437wire reg_or_cam12_scanout;
438wire reg_or_cam13_scanin;
439wire reg_or_cam13_scanout;
440wire reg_or_cam14_scanin;
441wire reg_or_cam14_scanout;
442wire reg_or_cam15_scanin;
443wire reg_or_cam15_scanout;
444
445
446//----- b/w DMU or NIU to SIU --------
447input ext_sii_hdr_vld;
448input ext_sii_reqbypass;
449input ext_sii_datareq;
450input ext_sii_datareq16;
451input [127:0] ext_sii_data;
452input [15:0] ext_sii_be;
453input [7:0] ext_sii_parity;
454input ext_sii_be_parity;
455
456input ncu_sii_ctag_uei; // niu ctag uncorrectable error injection
457input ncu_sii_ctag_cei; // niu ctag correctable error injection
458input ncu_sii_a_pei; // niu address prarity error injection
459input ncu_sii_d_pei; // niu data parity error injection
460
461output [3:0] sii_ext_wrack_tag;
462output sii_ext_wrack_vld;
463output sii_ext_wrack_parity;
464output sii_ext_oqdq; // dequeue signal for external device to keep track of credit
465output sii_ext_bqdq;
466
467//------ b/w ipcc and ipcs-------/
468input ipcc_ipcs_or_go_lv;
469input ipcc_ipcs_by_go_lv; // act as valid for the read address pointer
470input [3:0] ipcc_ipcs_or_ptr; //ordered header queue read address pointer
471input [3:0] ipcc_ipcs_by_ptr;
472input [3:0] ipcc_ipcs_dmu_tag; // for dmu to keep track of credit
473input ipcc_ipcs_dmu_wrack_p; // for dmu to keep track of credit
474input ipcc_ipcs_wrack_lv; // for dmu to keep track of credit
475output [15:0] ipcs_ipcc_or_dep; // tell the corresponding dependcy is removed
476output [15:0] ipcs_ipcc_by_dep;
477output ipcs_ipcc_add_or;
478output ipcs_ipcc_add_by;
479
480//------going to register file ildq-------
481output [71:0] ipdohq_din; // write data going to the ordered queue
482output [71:0] ipdbhq_din; // write data going to the bypass queue
483output [159:0] ipdodq_din; // write data 128 pay load + 16 bit be
484output [159:0] ipdbdq_din; // write data 128 pay load + 16 bit be
485
486// header queues control signals
487output [3:0] ipcs_ipdohq_wr_addr; //dmu ordered data queue write address
488output ipcs_ipdohq_wr_en; //dmu ordered data queue write enable
489output [3:0] ipcs_ipdbhq_wr_addr; //dmu ordered data queue write address
490output ipcs_ipdbhq_wr_en; //dmu ordered data queue write enable
491
492// data queues control signals
493output [5:0] ipcs_ipdodq_wr_addr; //dmu ordered data queue write address
494output ipcs_ipdodq_wr_en; //dmu ordered data queue write enable
495output [5:0] ipcs_ipdbdq_wr_addr; //dmu ordered data queue write address
496output ipcs_ipdbdq_wr_en; //dmu ordered data queue write enable
497
498input dmu_mode; // dmu_mode = 1, all dma rd/wr and interrupt go to order queue
499 // and only PIO read return go to bypass queue
500input iol2clk;
501input scan_in ;
502output scan_out;
503input tcu_scan_en;
504input tcu_dbr_gateoff;
505input tcu_aclk;
506input tcu_bclk;
507input tcu_pce_ov;
508input tcu_clk_stop;
509
510//------ mbist related control signals -----
511input sii_mb1_ipdodq_wr_en;
512input sii_mb1_ipdbdq_wr_en;
513input sii_mb1_ipdohq_wr_en;
514input sii_mb1_ipdbhq_wr_en;
515input sii_mb1_run_r;
516input [5:0] sii_mb1_wr_addr;
517input [7:0] sii_mb1_wdata;
518
519
520assign se = tcu_scan_en;
521assign siclk = tcu_aclk;
522assign soclk = tcu_bclk;
523assign pce_ov = tcu_pce_ov;
524assign stop = tcu_clk_stop;
525
526reg [6:0] nstate_r;
527
528reg [40:0] or_cam0_l;
529reg [40:0] or_cam1_l;
530reg [40:0] or_cam2_l;
531reg [40:0] or_cam3_l;
532reg [40:0] or_cam4_l;
533reg [40:0] or_cam5_l;
534reg [40:0] or_cam6_l;
535reg [40:0] or_cam7_l;
536reg [40:0] or_cam8_l;
537reg [40:0] or_cam9_l;
538reg [40:0] or_cam10_l;
539reg [40:0] or_cam11_l;
540reg [40:0] or_cam12_l;
541reg [40:0] or_cam13_l;
542reg [40:0] or_cam14_l;
543reg [40:0] or_cam15_l;
544
545reg [40:0] by_cam0_l;
546reg [40:0] by_cam1_l;
547reg [40:0] by_cam2_l;
548reg [40:0] by_cam3_l;
549reg [40:0] by_cam4_l;
550reg [40:0] by_cam5_l;
551reg [40:0] by_cam6_l;
552reg [40:0] by_cam7_l;
553reg [40:0] by_cam8_l;
554reg [40:0] by_cam9_l;
555reg [40:0] by_cam10_l;
556reg [40:0] by_cam11_l;
557reg [40:0] by_cam12_l;
558reg [40:0] by_cam13_l;
559reg [40:0] by_cam14_l;
560reg [40:0] by_cam15_l;
561
562//************************************************************************
563// CLOCK HEADER
564//************************************************************************
565sii_ipcs_ctll1clkhdr_ctl_macro clkgen (
566 .l2clk (iol2clk ),
567 .l1en (1'b1 ),
568 .l1clk (l1clk ),
569 .pce_ov(pce_ov),
570 .stop(stop),
571 .se(se)
572 );
573
574//Spare gates
575sii_ipcs_ctlspare_ctl_macro__num_20 spares (
576 .scan_in(spares_scanin),
577 .scan_out(spares_scanout),
578 .l1clk (l1clk),
579 .siclk(siclk),
580 .soclk(soclk)
581);
582
583//************************************************************************
584// UNUSED CONNECTIONS
585//************************************************************************
586assign cmd_grp_4_unused = cmd_grp[4];
587assign gt_wrptr_4_unused = gt_wrptr[4];
588
589//************************************************************************
590// STATE DEFINITION
591//************************************************************************
592
593`define START_ST 7'b0000001
594`define HDR_ST 7'b0000010
595`define HDR_PAYLD_ST 7'b0000100
596`define DATA1_ST 7'b0001000
597`define DATA2_ST 7'b0010000
598`define DATA3_ST 7'b0100000
599`define DATA4_ST 7'b1000000
600
601`define START 0
602`define HDR 1
603`define HDR_PAYLD 2
604`define DATA1 3
605`define DATA2 4
606`define DATA3 5
607`define DATA4 6
608
609//************************************************************************
610// MBIST SECTIONS
611//************************************************************************
612
613assign mbist_hdr_data[71:0] = {sii_mb1_wdata[7:0], sii_mb1_wdata[7:0], sii_mb1_wdata[7:0],
614 sii_mb1_wdata[7:0], sii_mb1_wdata[7:0], sii_mb1_wdata[7:0],
615 sii_mb1_wdata[7:0], sii_mb1_wdata[7:0], sii_mb1_wdata[7:0]};
616
617assign mbist_data_data[159:0] = {mbist_hdr_data[15:0], mbist_hdr_data[71:0], mbist_hdr_data[71:0]};
618
619//************************************************************************
620// OUTPUT LOGICS
621//************************************************************************
622assign sii_ext_wrack_vld = dmu_wrack_vld & ~tcu_dbr_gateoff;
623// Flopped to synchronize to IO domain
624//assign sii_ext_wrack_tag[3:0] = ipcc_ipcs_dmu_tag[3:0];
625//assign sii_ext_wrack_parity = ipcc_ipcs_dmu_wrack_p;
626assign sii_ext_oqdq = ipcc_ipcs_or_go & ~tcu_dbr_gateoff;
627assign sii_ext_bqdq = ipcc_ipcs_by_go & ~tcu_dbr_gateoff;
628
629assign add_or = ~ext_sii_reqbypass_r && ((cstate[`HDR] && l2_io && cmd[0])|| //dma_rd
630 (cstate[`DATA1] && ~l2_io) || //PIO, interrupt
631 (cstate[`DATA4] ) ) ; //dma_wr
632assign add_by = ext_sii_reqbypass_r && ((cstate[`HDR] && l2_io && cmd[0])||
633 (cstate[`DATA1] && ~l2_io) ||
634 (cstate[`DATA4] ) ) ;
635assign ipcs_ipcc_or_dep[15:0] = {or_cam15_r[1], or_cam14_r[1], or_cam13_r[1], or_cam12_r[1],
636 or_cam11_r[1], or_cam10_r[1], or_cam9_r[1], or_cam8_r[1],
637 or_cam7_r[1], or_cam6_r[1], or_cam5_r[1], or_cam4_r[1],
638 or_cam3_r[1], or_cam2_r[1], or_cam1_r[1], or_cam0_r[1]};
639
640assign ipcs_ipcc_by_dep[15:0] = {by_cam15_r[1], by_cam14_r[1], by_cam13_r[1], by_cam12_r[1],
641 by_cam11_r[1], by_cam10_r[1], by_cam9_r[1], by_cam8_r[1],
642 by_cam7_r[1], by_cam6_r[1], by_cam5_r[1], by_cam4_r[1],
643 by_cam3_r[1], by_cam2_r[1], by_cam1_r[1], by_cam0_r[1]};
644
645//assign ipdodq_din[159:0] = {8'h00,ext_sii_data[127:0],ext_sii_be[15:0],new_parity[7:0]};
646//assign ipdbdq_din[159:0] = {8'h00,ext_sii_data[127:0],ext_sii_be[15:0],new_parity[7:0]};
647
648assign ipdodq_din[159:0] = sii_mb1_run_r ? mbist_data_data[159:0] :
649 {7'h00,ext_sii_be_parity, ext_sii_parity[7:0],ext_sii_be[15:0],
650 ext_sii_data[127:1], ext_sii_datai };
651assign ipdbdq_din[159:0] = sii_mb1_run_r ? mbist_data_data[159:0] :
652 {7'h00, ext_sii_be_parity, ext_sii_parity[7:0],ext_sii_be[15:0],
653 ext_sii_data[127:1], ext_sii_datai };
654
655assign ext_sii_datai = ncu_sii_d_pei ^ ext_sii_data[0];
656
657//----- header queue signals ------------------
658assign ipcs_ipdohq_wr_addr [3:0] = sii_mb1_run_r ? sii_mb1_wr_addr[3:0] :ipdohq_wr_addr_r[3:0];
659assign ipdohq_wr_addr_l[4:0] = (cstate[`HDR] || cstate[`HDR_PAYLD]) && ~ext_sii_reqbypass_r ?
660 (ipdohq_wr_addr_r[4:0] + 5'b00001) :
661 ipdohq_wr_addr_r[4:0];
662assign ipcs_ipdohq_wr_en = sii_mb1_run_r? sii_mb1_ipdohq_wr_en : ipcs_ipdohq_wr_en_i;
663assign ipcs_ipdohq_wr_en_i = (cstate[`HDR] || cstate[`HDR_PAYLD]) && ~ext_sii_reqbypass_r;
664
665assign ipcs_ipdbhq_wr_addr[3:0] = sii_mb1_run_r? sii_mb1_wr_addr[3:0] :ipdbhq_wr_addr_r[3:0];
666assign ipdbhq_wr_addr_l[4:0] = (cstate[`HDR] || cstate[`HDR_PAYLD]) && ext_sii_reqbypass_r ?
667 (ipdbhq_wr_addr_r[4:0] + 5'b00001) :
668 ipdbhq_wr_addr_r[4:0];
669assign ipcs_ipdbhq_wr_en = sii_mb1_run_r ? sii_mb1_ipdbhq_wr_en : ipcs_ipdbhq_wr_en_i;
670assign ipcs_ipdbhq_wr_en_i = (cstate[`HDR] || cstate[`HDR_PAYLD]) && ext_sii_reqbypass_r;
671
672assign ipdohq_din[71:0] = sii_mb1_run_r ? mbist_hdr_data[71:0] : newhdr[71:0];
673assign ipdbhq_din[71:0] = sii_mb1_run_r ? mbist_hdr_data[71:0] : newhdr[71:0];
674
675//----- data queues control signals -----------
676assign ipcs_ipdodq_wr_addr_l[5:0] = ~ext_sii_reqbypass_r && ((cstate[`HDR_PAYLD] ||
677 (cstate[`DATA1] && arc_data1_data2 ) || cstate[`DATA2]
678 || cstate[`DATA3])) ? (ipcs_ipdodq_wr_addr_r[5:0] + 6'b000001)
679 : ipcs_ipdodq_wr_addr_r[5:0];
680assign ipcs_ipdodq_wr_addr[5:0] = sii_mb1_run_r ? sii_mb1_wr_addr[5:0] : ipcs_ipdodq_wr_addr_r[5:0];
681assign ipcs_ipdodq_wr_en = sii_mb1_run_r ? sii_mb1_ipdodq_wr_en :
682 (~ext_sii_reqbypass_r && (cstate[`HDR_PAYLD] ||
683 (cstate[`DATA1] && arc_data1_data2) || cstate[`DATA2]
684 || cstate[`DATA3]));
685
686assign ipcs_ipdbdq_wr_addr_l[5:0] = ext_sii_reqbypass_r && ((cstate[`HDR_PAYLD] ||
687 (cstate[`DATA1] && arc_data1_data2 ) || cstate[`DATA2]
688 || cstate[`DATA3])) ? (ipcs_ipdbdq_wr_addr_r[5:0] + 6'b000001)
689 : ipcs_ipdbdq_wr_addr_r[5:0];
690
691assign ipcs_ipdbdq_wr_addr[5:0] = sii_mb1_run_r ? sii_mb1_wr_addr[5:0] : ipcs_ipdbdq_wr_addr_r[5:0];
692assign ipcs_ipdbdq_wr_en = sii_mb1_run_r ? sii_mb1_ipdbdq_wr_en :
693 (ext_sii_reqbypass_r && (cstate[`HDR_PAYLD] ||
694 (cstate[`DATA1] && arc_data1_data2 ) || cstate[`DATA2]
695 || cstate[`DATA3]));
696
697//************************************************************************
698// internal wires assignment
699//************************************************************************
700assign ext_sii_datareq16_l = ext_sii_hdr_vld ? ext_sii_datareq16 : ext_sii_datareq16_r;
701assign dmu_sii_reqbypass_l = (ext_sii_hdr_vld) ? ext_sii_reqbypass :
702 ext_sii_reqbypass_r;
703assign ext_sii_hdr_l[127:0] = (ext_sii_hdr_vld) ? ext_sii_data[127:0] :
704 ext_sii_hdr_r[127:0];
705assign newhdr[71:0] = {ctag_ecc[5:0], addr_parity[1:0], cmd_parity, intr, cmd[2:0], l2_io, posted, id[15:0], timeout,
706 unmap, uncor, pa[37:0]};
707
708assign cmd[2:0] = ((cmd_grp[3] == 1'b1) && (cmd_grp[1:0]== 2'b10)) ? 3'b001 :
709 (~cmd_grp[5] && (cmd_grp[3:0] == 4'b0010)) ? 3'b100 : 3'b010;
710assign l2_io = ext_sii_hdr_r[123];
711assign posted = ext_sii_hdr_r[126];
712assign intr = (ext_sii_hdr_r[127:122] == 6'b000001) ? 1'b1 : 1'b0;
713assign timeout = ext_sii_hdr_r[82];
714assign unmap = ext_sii_hdr_r[81];
715assign uncor = ext_sii_hdr_r[80];
716assign id[15:0] = ncu_sii_ctag_uei ? {ext_sii_hdr_r[79:66], ~ext_sii_hdr_r[65], ~ext_sii_hdr_r[64]} :
717 ncu_sii_ctag_cei ? {ext_sii_hdr_r[79:65], ~ext_sii_hdr_r[64]} :ext_sii_hdr_r[79:64];
718assign pa[37:0] = { ext_sii_hdr_r[39:10], ncu_sii_a_pei ^ ext_sii_hdr_r[9], ext_sii_hdr_r[8:2]} ;
719assign cmd_grp[5:0] = {ext_sii_hdr_r[127:122]};
720assign ctag_ecc[5:0] = ext_sii_hdr_r[61:56];
721assign addr_parity[1:0] = ext_sii_hdr_r[84:83];
722
723assign cmd_parity_ori = ^ cmd_grp[5:0] ^ ext_sii_hdr_r[62];
724
725assign cmd_parity = cmd[2] ^ cmd[1] ^ cmd[0] ^ intr ^ l2_io ^ cmd_parity_ori ;
726
727//------------------------------------------------------------------------
728// Duplicate Address registers and tag depedency
729//------------------------------------------------------------------------
730// Set the last write pointer in both queues , the msb bit[4] is valid it
731// Whenever ipcc dequeue a write transaction , if the address matched last_write ptr,
732// the last write pointer will be invalidate, meaning there is no more write
733// transactons in the queue.
734
735assign last_or_wr_l[4] = ipcc_ipcs_or_go &&
736 (ipcc_ipcs_or_raddr[3:0] == last_or_wr_r[3:0]) ? 1'b0 :
737 last_or_wr_r[4] ;
738assign last_or_wr_l[3:0] = (ipcs_ipdohq_wr_en_i && w_r) ? ipdohq_wr_addr_r[3:0] :
739 last_or_wr_r[3:0];
740
741assign last_by_wr_l[4] = ipcc_ipcs_by_go &&
742 (ipcc_ipcs_by_raddr[3:0] == last_by_wr_r[3:0]) ? 1'b0 :
743 last_by_wr_r[4] ;
744assign last_by_wr_l[3:0] = (ipcs_ipdbhq_wr_en_i && w_r) ? ipdbhq_wr_addr_r[3:0] :
745 last_by_wr_r[3:0];
746
747//------------------------------------------------------------------------
748// ADDIDNG ENTRY INTO THE DUPLICATE ADDRESS REGISTER
749//------------------------------------------------------------------------
750// In DMU mode, all the transaction are in strict order regardless of order
751// or bypass queue, so the dependency pointer is always pointing to the
752// youngest transaction in the other queue.
753//
754// cam_l[40:7] = 34-bit physical address
755// cam_l[6:3] = pointer to the dependency transaction in the other queue
756// cam_l[2] = 1 write, 0 read
757// cam_l[1] = 1 depend on dequeue of transaction in the other queue, 0 free to go
758// cam_l[0] = valid bit. 1= valid, 0=not valid
759
760assign addr[33:0] = ext_sii_hdr_r[39:6]; //cache line address
761assign ptr[3:0] = dmu_mode ? dmu_ptr[3:0] : niu_ptr[3:0];
762assign niu_ptr[3:0] = ext_sii_reqbypass_r ? youngest_match[3:0] : youngest_dep[3:0];
763assign dmu_ptr[3:0] = ext_sii_reqbypass_r ? dmu_or_ptr[3:0]
764 : dmu_by_ptr[3:0];
765assign dmu_or_ptr_l[3:0] = ipcs_ipdohq_wr_en_i ? ipdohq_wr_addr_r[3:0]
766 : dmu_or_ptr[3:0];
767assign dmu_by_ptr_l[3:0] = ipcs_ipdbhq_wr_en_i ? ipdbhq_wr_addr_r[3:0]
768 : dmu_by_ptr[3:0];
769assign w_r = cmd[1] || cmd[2] ;
770assign niu_dep = address_matched ? 1'b1 : ext_sii_reqbypass_r ? 1'b0 :
771 last_wrptr[4] ; //dependency bit
772
773assign dmu_dep = ext_sii_reqbypass_r ? or_qvalid : by_qvalid;
774//assign dmu_dep = (dmu_ptr[3:0] ==4'b0) ? head_q_v : 1'b1;
775//assign head_q_v = ext_sii_reqbypass_r ? or_cam0_v : by_cam0_v;
776assign dep = dmu_mode ? dmu_dep : niu_dep;
777assign cam_l[40:0] = {addr[33:0], ptr[3:0], w_r, dep, 1'b1};
778
779//--------------------------------------------------------------------------------------
780// Address comparison logic
781//--------------------------------------------------------------------------------------
782// find the entry with cacheline match and is valid (not yet dequeue)
783assign match0 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam0_r[40:7]) ? by_cam0_v
784 : 1'b0) : ((addr[33:0] == or_cam0_r[40:7]) ? or_cam0_v : 1'b0)) ;
785assign match1 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam1_r[40:7]) ? by_cam1_v
786 : 1'b0) : ((addr[33:0] == or_cam1_r[40:7]) ? or_cam1_v : 1'b0)) ;
787assign match2 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam2_r[40:7]) ? by_cam2_v
788 : 1'b0) : ((addr[33:0] == or_cam2_r[40:7]) ? or_cam2_v : 1'b0)) ;
789assign match3 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam3_r[40:7]) ? by_cam3_v
790 : 1'b0) : ((addr[33:0] == or_cam3_r[40:7]) ? or_cam3_v : 1'b0)) ;
791assign match4 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam4_r[40:7]) ? by_cam4_v
792 : 1'b0) : ((addr[33:0] == or_cam4_r[40:7]) ? or_cam4_v : 1'b0)) ;
793assign match5 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam5_r[40:7]) ? by_cam5_v
794 : 1'b0) : ((addr[33:0] == or_cam5_r[40:7]) ? or_cam5_v : 1'b0)) ;
795assign match6 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam6_r[40:7]) ? by_cam6_v
796 : 1'b0) : ((addr[33:0] == or_cam6_r[40:7]) ? or_cam6_v : 1'b0)) ;
797assign match7 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam7_r[40:7]) ? by_cam7_v
798 : 1'b0) : ((addr[33:0] == or_cam7_r[40:7]) ? or_cam7_v : 1'b0)) ;
799assign match8 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam8_r[40:7]) ? by_cam8_v
800 : 1'b0) : ((addr[33:0] == or_cam8_r[40:7]) ? or_cam8_v : 1'b0)) ;
801assign match9 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam9_r[40:7]) ? by_cam9_v
802 : 1'b0) : ((addr[33:0] == or_cam9_r[40:7]) ? or_cam9_v : 1'b0)) ;
803assign match10 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam10_r[40:7]) ? by_cam10_v
804 : 1'b0) : ((addr[33:0] == or_cam10_r[40:7]) ? or_cam10_v : 1'b0)) ;
805assign match11 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam11_r[40:7]) ? by_cam11_v
806 : 1'b0) : ((addr[33:0] == or_cam11_r[40:7]) ? or_cam11_v : 1'b0)) ;
807assign match12 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam12_r[40:7]) ? by_cam12_v
808 : 1'b0) : ((addr[33:0] == or_cam12_r[40:7]) ? or_cam12_v : 1'b0)) ;
809assign match13 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam13_r[40:7]) ? by_cam13_v
810 : 1'b0) : ((addr[33:0] == or_cam13_r[40:7]) ? or_cam13_v : 1'b0)) ;
811assign match14 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam14_r[40:7]) ? by_cam14_v
812 : 1'b0) : ((addr[33:0] == or_cam14_r[40:7]) ? or_cam14_v : 1'b0)) ;
813assign match15 = (~ext_sii_reqbypass_r ? ((addr[33:0] == by_cam15_r[40:7]) ? by_cam15_v
814 : 1'b0) : ((addr[33:0] == or_cam15_r[40:7]) ? or_cam15_v : 1'b0)) ;
815
816// validate the bypass queue cam entery
817
818assign by_cam0_v = by_cam0_r[0] && ~by_clr_v0;
819assign by_cam1_v = by_cam1_r[0] && ~by_clr_v1;
820assign by_cam2_v = by_cam2_r[0] && ~by_clr_v2;
821assign by_cam3_v = by_cam3_r[0] && ~by_clr_v3;
822assign by_cam4_v = by_cam4_r[0] && ~by_clr_v4;
823assign by_cam5_v = by_cam5_r[0] && ~by_clr_v5;
824assign by_cam6_v = by_cam6_r[0] && ~by_clr_v6;
825assign by_cam7_v = by_cam7_r[0] && ~by_clr_v7;
826assign by_cam8_v = by_cam8_r[0] && ~by_clr_v8;
827assign by_cam9_v = by_cam9_r[0] && ~by_clr_v9;
828assign by_cam10_v = by_cam10_r[0] && ~by_clr_v10;
829assign by_cam11_v = by_cam11_r[0] && ~by_clr_v11;
830assign by_cam12_v = by_cam12_r[0] && ~by_clr_v12;
831assign by_cam13_v = by_cam13_r[0] && ~by_clr_v13;
832assign by_cam14_v = by_cam14_r[0] && ~by_clr_v14;
833assign by_cam15_v = by_cam15_r[0] && ~by_clr_v15;
834
835// find out if there is valid entry in the order queue
836assign or_qvalid = or_cam0_v || or_cam1_v || or_cam2_v || or_cam3_v
837 || or_cam4_v || or_cam5_v || or_cam6_v || or_cam7_v
838 || or_cam8_v || or_cam9_v || or_cam10_v || or_cam11_v
839 || or_cam12_v || or_cam13_v || or_cam14_v || or_cam15_v;
840
841// find out if there is valid entry in the bypass queue
842assign by_qvalid = by_cam0_v || by_cam1_v || by_cam2_v || by_cam3_v
843 || by_cam4_v || by_cam5_v || by_cam6_v || by_cam7_v
844 || by_cam8_v || by_cam9_v || by_cam10_v || by_cam11_v
845 || by_cam12_v || by_cam13_v || by_cam14_v || by_cam15_v;
846
847// validate order queue cam entry
848assign or_cam0_v = or_cam0_r[0] && ~or_clr_v0;
849assign or_cam1_v = or_cam1_r[0] && ~or_clr_v1;
850assign or_cam2_v = or_cam2_r[0] && ~or_clr_v2;
851assign or_cam3_v = or_cam3_r[0] && ~or_clr_v3;
852assign or_cam4_v = or_cam4_r[0] && ~or_clr_v4;
853assign or_cam5_v = or_cam5_r[0] && ~or_clr_v5;
854assign or_cam6_v = or_cam6_r[0] && ~or_clr_v6;
855assign or_cam7_v = or_cam7_r[0] && ~or_clr_v7;
856assign or_cam8_v = or_cam8_r[0] && ~or_clr_v8;
857assign or_cam9_v = or_cam9_r[0] && ~or_clr_v9;
858assign or_cam10_v = or_cam10_r[0] && ~or_clr_v10;
859assign or_cam11_v = or_cam11_r[0] && ~or_clr_v11;
860assign or_cam12_v = or_cam12_r[0] && ~or_clr_v12;
861assign or_cam13_v = or_cam13_r[0] && ~or_clr_v13;
862assign or_cam14_v = or_cam14_r[0] && ~or_clr_v14;
863assign or_cam15_v = or_cam15_r[0] && ~or_clr_v15;
864
865// find the youngest dependcy pointer from the other queue
866assign last_wrptr[4:0] = ext_sii_reqbypass_r ? last_or_wr_r[4:0] : last_by_wr_r[4:0];
867
868assign wpt[3:0] = ext_sii_reqbypass_r ? ipdohq_wr_addr_r[3:0]
869 : ipdbhq_wr_addr_r[3:0]; //cur wr pointer of other queue
870assign youngest_dep[3:0] = ~last_wrptr[4] ? youngest_match[3:0] :
871 (wpt[3:0] == youngest_match[3:0]) ? youngest_match[3:0] :
872 (wpt[3:0] == last_wrptr[3:0]) ? last_wrptr[3:0] :
873 ((wpt[3:0] > last_wrptr[3:0]) && (wpt[3:0] < youngest_match[3:0]))
874 ? last_wrptr[3:0] :
875 ((wpt[3:0] < last_wrptr[3:0]) && (wpt[3:0] > youngest_match[3:0]))
876 ? youngest_match[3:0] :
877 ( youngest_match[3:0]> last_wrptr[3:0]) ? youngest_match[3:0] :
878 last_wrptr[3:0];
879
880// find if there is at least one cacheline address match
881assign address_matched = match0 || match1 || match2 || match3 || match4 ||
882 match5 || match6 || match7 || match8 || match9 ||
883 match10 || match11 || match12 || match13 || match14 || match15;
884
885// find the youngest matched address pointer from the right queue
886assign youngest_match[3:0] = (lt_wrptr[4]) ? lt_wrptr[3:0] : gt_wrptr[3:0];
887
888assign gt_wrptr[4:0] = (match15 && (wpt[3:0] < 4'b1111)) ? 5'b11111 :
889 (match14 && (wpt[3:0] < 4'b1110)) ? 5'b11110 :
890 (match13 && (wpt[3:0] < 4'b1101)) ? 5'b11101 :
891 (match12 && (wpt[3:0] < 4'b1100)) ? 5'b11100 :
892 (match11 && (wpt[3:0] < 4'b1011)) ? 5'b11011 :
893 (match10 && (wpt[3:0] < 4'b1010)) ? 5'b11010 :
894 (match9 && (wpt[3:0] < 4'b1001)) ? 5'b11001 :
895 (match8 && (wpt[3:0] < 4'b1000)) ? 5'b11000 :
896 (match7 && (wpt[3:0] < 4'b0111)) ? 5'b10111 :
897 (match6 && (wpt[3:0] < 4'b0110)) ? 5'b10110 :
898 (match5 && (wpt[3:0] < 4'b0101)) ? 5'b10101 :
899 (match4 && (wpt[3:0] < 4'b0100)) ? 5'b10100 :
900 (match3 && (wpt[3:0] < 4'b0011)) ? 5'b10011 :
901 (match2 && (wpt[3:0] < 4'b0010)) ? 5'b10010 :
902 (match1 && (wpt[3:0] < 4'b0001)) ? 5'b10001 :
903 (match0 && (wpt[3:0] == 4'b0000)) ? 5'b10000 : 5'b00000;
904
905
906assign lt_wrptr[4:0] = (match15 && (wpt[3:0] == 4'b1111)) ? 5'b11111 :
907 (match14 && (wpt[3:0] > 4'b1110)) ? 5'b11110 :
908 (match13 && (wpt[3:0] > 4'b1101)) ? 5'b11101 :
909 (match12 && (wpt[3:0] > 4'b1100)) ? 5'b11100 :
910 (match11 && (wpt[3:0] > 4'b1011)) ? 5'b11011 :
911 (match10 && (wpt[3:0] > 4'b1010)) ? 5'b11010 :
912 (match9 && (wpt[3:0] > 4'b1001)) ? 5'b11001 :
913 (match8 && (wpt[3:0] > 4'b1000)) ? 5'b11000 :
914 (match7 && (wpt[3:0] > 4'b0111)) ? 5'b10111 :
915 (match6 && (wpt[3:0] > 4'b0110)) ? 5'b10110 :
916 (match5 && (wpt[3:0] > 4'b0101)) ? 5'b10101 :
917 (match4 && (wpt[3:0] > 4'b0100)) ? 5'b10100 :
918 (match3 && (wpt[3:0] > 4'b0011)) ? 5'b10011 :
919 (match2 && (wpt[3:0] > 4'b0010)) ? 5'b10010 :
920 (match1 && (wpt[3:0] > 4'b0001)) ? 5'b10001 :
921 (match0 && (wpt[3:0] > 4'b0000)) ? 5'b10000 : 5'b00000;
922
923//************************************************************************
924// STATE TRANSITION SECTION
925//************************************************************************
926//0in one_hot -var cstate[6:0]
927//0in one_hot -var nstate_r[6:0]
928
929assign nstate[6:0] = {nstate_r[6:1], ~nstate_r[0]};
930assign cstate[6:0] = {cstate_r[6:1], ~cstate_r[0]};
931assign arc_start_hdr = cstate[`START] && ext_sii_hdr_vld && ~ext_sii_datareq;
932assign arc_start_hdrpayld = cstate[`START] && ext_sii_hdr_vld && ext_sii_datareq;
933assign arc_hdr_hdrpayld = cstate[`HDR] && ext_sii_hdr_vld && ext_sii_datareq;
934assign arc_hdr_hdr = cstate[`HDR] && ext_sii_hdr_vld && ~ext_sii_datareq;
935assign arc_hdrpayld_data1 = cstate[`HDR_PAYLD] ;
936assign arc_data1_hdrpayld = cstate[`DATA1] &&
937 ext_sii_hdr_vld && ext_sii_datareq;
938assign arc_data1_hdr = cstate[`DATA1] &&
939 ext_sii_hdr_vld && ~ext_sii_datareq;
940assign arc_data1_data2 = cstate[`DATA1] && ~ext_sii_datareq16_r; //record the current transaction
941//assign arc_data1_data2 = cstate[`DATA1];
942assign arc_data2_data3 = cstate[`DATA2];
943assign arc_data3_data4 = cstate[`DATA3];
944assign arc_data4_hdr = cstate[`DATA4] && ext_sii_hdr_vld && ~ext_sii_datareq;
945assign arc_data4_hdrpayld = cstate[`DATA4] && ext_sii_hdr_vld && ext_sii_datareq;
946
947always @ (arc_start_hdr or arc_start_hdrpayld or arc_hdr_hdrpayld or
948 arc_hdr_hdr or arc_hdrpayld_data1 or arc_data1_hdrpayld or
949 arc_data1_hdr or arc_data1_data2 or arc_data2_data3 or
950 arc_data3_data4 or arc_data4_hdr or arc_data4_hdrpayld or
951 cstate)
952
953 begin
954 case (1'b1) //synopsys parallel_case full_case
955 cstate[`START] : if (arc_start_hdr)
956 nstate_r = `HDR_ST;
957 else if (arc_start_hdrpayld)
958 nstate_r = `HDR_PAYLD_ST;
959 else
960 nstate_r = `START_ST;
961 cstate[`HDR] : if (arc_hdr_hdrpayld)
962 nstate_r = `HDR_PAYLD_ST;
963 else if (arc_hdr_hdr)
964 nstate_r = `HDR_ST;
965 else
966 nstate_r = `START_ST;
967 cstate[`HDR_PAYLD] : if (arc_hdrpayld_data1)
968 nstate_r = `DATA1_ST;
969 else
970 nstate_r = `START_ST;
971 cstate[`DATA1] : if (arc_data1_data2)
972 nstate_r = `DATA2_ST;
973 else if (arc_data1_hdr)
974 nstate_r = `HDR_ST;
975 else if (arc_data1_hdrpayld)
976 nstate_r = `HDR_PAYLD_ST;
977 else
978 nstate_r = `START_ST;
979 cstate[`DATA2] : if (arc_data2_data3)
980 nstate_r = `DATA3_ST;
981 else
982 nstate_r = `START_ST;
983 cstate[`DATA3] : if (arc_data3_data4)
984 nstate_r = `DATA4_ST;
985 else
986 nstate_r = `START_ST;
987 cstate[`DATA4] : if (arc_data4_hdr)
988 nstate_r = `HDR_ST;
989 else if (arc_data4_hdrpayld)
990 nstate_r = `HDR_PAYLD_ST;
991 else
992 nstate_r = `START_ST;
993 default : begin
994 // 0in < fire -message "ERROR : sii_ipcs state machine default case"
995 nstate_r = `START_ST;
996 end
997
998 endcase
999 end
1000
1001//--------------------------------------------------------------------------------------
1002// Clear Valid Signal for CAM (Ordered)
1003//--------------------------------------------------------------------------------------
1004assign or_clr_v0 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h0)) ?
1005 1'b1 : 1'b0;
1006assign or_clr_v1 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h1)) ?
1007 1'b1 : 1'b0;
1008assign or_clr_v2 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h2)) ?
1009 1'b1 : 1'b0;
1010assign or_clr_v3 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h3)) ?
1011 1'b1 : 1'b0;
1012assign or_clr_v4 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h4)) ?
1013 1'b1 : 1'b0;
1014assign or_clr_v5 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h5)) ?
1015 1'b1 : 1'b0;
1016assign or_clr_v6 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h6)) ?
1017 1'b1 : 1'b0;
1018assign or_clr_v7 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h7)) ?
1019 1'b1 : 1'b0;
1020assign or_clr_v8 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h8)) ?
1021 1'b1 : 1'b0;
1022assign or_clr_v9 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'h9)) ?
1023 1'b1 : 1'b0;
1024assign or_clr_v10 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'hA)) ?
1025 1'b1 : 1'b0;
1026assign or_clr_v11 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'hB)) ?
1027 1'b1 : 1'b0;
1028assign or_clr_v12 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'hC)) ?
1029 1'b1 : 1'b0;
1030assign or_clr_v13 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'hD)) ?
1031 1'b1 : 1'b0;
1032assign or_clr_v14 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'hE)) ?
1033 1'b1 : 1'b0;
1034assign or_clr_v15 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == 4'hF)) ?
1035 1'b1 : 1'b0;
1036
1037//--------------------------------------------------------------------------------------
1038// Clear Valid Signal for CAM (Bypass)
1039//--------------------------------------------------------------------------------------
1040assign by_clr_v0 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h0)) ?
1041 1'b1 : 1'b0;
1042assign by_clr_v1 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h1)) ?
1043 1'b1 : 1'b0;
1044assign by_clr_v2 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h2)) ?
1045 1'b1 : 1'b0;
1046assign by_clr_v3 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h3)) ?
1047 1'b1 : 1'b0;
1048assign by_clr_v4 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h4)) ?
1049 1'b1 : 1'b0;
1050assign by_clr_v5 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h5)) ?
1051 1'b1 : 1'b0;
1052assign by_clr_v6 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h6)) ?
1053 1'b1 : 1'b0;
1054assign by_clr_v7 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h7)) ?
1055 1'b1 : 1'b0;
1056assign by_clr_v8 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h8)) ?
1057 1'b1 : 1'b0;
1058assign by_clr_v9 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'h9)) ?
1059 1'b1 : 1'b0;
1060assign by_clr_v10 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'hA)) ?
1061 1'b1 : 1'b0;
1062assign by_clr_v11 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'hB)) ?
1063 1'b1 : 1'b0;
1064assign by_clr_v12 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'hC)) ?
1065 1'b1 : 1'b0;
1066assign by_clr_v13 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'hD)) ?
1067 1'b1 : 1'b0;
1068assign by_clr_v14 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'hE)) ?
1069 1'b1 : 1'b0;
1070assign by_clr_v15 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == 4'hF)) ?
1071 1'b1 : 1'b0;
1072
1073//--------------------------------------------------------------------------------------
1074// Clear Dependency bit for CAM (Ordered)
1075//--------------------------------------------------------------------------------------
1076assign or_clr_d0 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam0_r[6:3]))
1077 ? 1'b1 : 1'b0;
1078assign or_clr_d1 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam1_r[6:3]))
1079 ? 1'b1 : 1'b0;
1080assign or_clr_d2 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam2_r[6:3]))
1081 ? 1'b1 : 1'b0;
1082assign or_clr_d3 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam3_r[6:3]))
1083 ? 1'b1 : 1'b0;
1084assign or_clr_d4 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam4_r[6:3]))
1085 ? 1'b1 : 1'b0;
1086assign or_clr_d5 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam5_r[6:3]))
1087 ? 1'b1 : 1'b0;
1088assign or_clr_d6 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam6_r[6:3]))
1089 ? 1'b1 : 1'b0;
1090assign or_clr_d7 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam7_r[6:3]))
1091 ? 1'b1 : 1'b0;
1092assign or_clr_d8 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam8_r[6:3]))
1093 ? 1'b1 : 1'b0;
1094assign or_clr_d9 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam9_r[6:3]))
1095 ? 1'b1 : 1'b0;
1096assign or_clr_d10 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam10_r[6:3]))
1097 ? 1'b1 : 1'b0;
1098assign or_clr_d11 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam11_r[6:3]))
1099 ? 1'b1 : 1'b0;
1100assign or_clr_d12 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam12_r[6:3]))
1101 ? 1'b1 : 1'b0;
1102assign or_clr_d13 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam13_r[6:3]))
1103 ? 1'b1 : 1'b0;
1104assign or_clr_d14 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam14_r[6:3]))
1105 ? 1'b1 : 1'b0;
1106assign or_clr_d15 = (ipcc_ipcs_by_go && (ipcc_ipcs_by_raddr[3:0] == or_cam15_r[6:3]))
1107 ? 1'b1 : 1'b0;
1108
1109//--------------------------------------------------------------------------------------
1110// Clear Dependency bit for CAM (Bypass)
1111//--------------------------------------------------------------------------------------
1112assign by_clr_d0 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam0_r[6:3]))
1113 ? 1'b1 : 1'b0;
1114assign by_clr_d1 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam1_r[6:3]))
1115 ? 1'b1 : 1'b0;
1116assign by_clr_d2 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam2_r[6:3]))
1117 ? 1'b1 : 1'b0;
1118assign by_clr_d3 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam3_r[6:3]))
1119 ? 1'b1 : 1'b0;
1120assign by_clr_d4 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam4_r[6:3]))
1121 ? 1'b1 : 1'b0;
1122assign by_clr_d5 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam5_r[6:3]))
1123 ? 1'b1 : 1'b0;
1124assign by_clr_d6 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam6_r[6:3]))
1125 ? 1'b1 : 1'b0;
1126assign by_clr_d7 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam7_r[6:3]))
1127 ? 1'b1 : 1'b0;
1128assign by_clr_d8 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam8_r[6:3]))
1129 ? 1'b1 : 1'b0;
1130assign by_clr_d9 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam9_r[6:3]))
1131 ? 1'b1 : 1'b0;
1132assign by_clr_d10 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam10_r[6:3]))
1133 ? 1'b1 : 1'b0;
1134assign by_clr_d11 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam11_r[6:3]))
1135 ? 1'b1 : 1'b0;
1136assign by_clr_d12 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam12_r[6:3]))
1137 ? 1'b1 : 1'b0;
1138assign by_clr_d13 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam13_r[6:3]))
1139 ? 1'b1 : 1'b0;
1140assign by_clr_d14 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam14_r[6:3]))
1141 ? 1'b1 : 1'b0;
1142assign by_clr_d15 = (ipcc_ipcs_or_go && (ipcc_ipcs_or_raddr[3:0] == by_cam15_r[6:3]))
1143 ? 1'b1 : 1'b0;
1144
1145//--------------------------------------------------------------------------------------
1146// Register write section (Ordered)
1147//--------------------------------------------------------------------------------------
1148
1149always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1150 or_clr_v0 or or_clr_d0 or or_cam0_r[40:0])
1151 if ((ipdohq_wr_addr_r[3:0] == 4'b0000) && ipcs_ipdohq_wr_en_i)
1152 or_cam0_l[40:0] = cam_l[40:0];
1153 else if (or_clr_v0)
1154 or_cam0_l[40:0] = {or_cam0_r[40:1],1'b0};
1155 else if (or_clr_d0)
1156 or_cam0_l[40:0] = {or_cam0_r[40:2],1'b0, or_cam0_r[0]};
1157 else
1158 or_cam0_l[40:0] = or_cam0_r[40:0];
1159
1160always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1161 or_clr_v1 or or_clr_d1 or or_cam1_r[40:0])
1162 if ((ipdohq_wr_addr_r[3:0] == 4'b0001) && ipcs_ipdohq_wr_en_i)
1163 or_cam1_l[40:0] = cam_l[40:0];
1164 else if (or_clr_v1)
1165 or_cam1_l[40:0] = {or_cam1_r[40:1],1'b0};
1166 else if (or_clr_d1)
1167 or_cam1_l[40:0] = {or_cam1_r[40:2],1'b0, or_cam1_r[0]};
1168 else
1169 or_cam1_l[40:0] = or_cam1_r[40:0];
1170
1171always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1172 or_clr_v2 or or_clr_d2 or or_cam2_r[40:0])
1173 if ((ipdohq_wr_addr_r[3:0] == 4'b0010) && ipcs_ipdohq_wr_en_i)
1174 or_cam2_l[40:0] = cam_l[40:0];
1175 else if (or_clr_v2)
1176 or_cam2_l[40:0] = {or_cam2_r[40:1],1'b0};
1177 else if (or_clr_d2)
1178 or_cam2_l[40:0] = {or_cam2_r[40:2],1'b0, or_cam2_r[0]};
1179 else
1180 or_cam2_l[40:0] = or_cam2_r[40:0];
1181
1182always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1183 or_clr_v3 or or_clr_d3 or or_cam3_r[40:0])
1184 if ((ipdohq_wr_addr_r[3:0] == 4'b0011) && ipcs_ipdohq_wr_en_i)
1185 or_cam3_l[40:0] = cam_l[40:0];
1186 else if (or_clr_v3)
1187 or_cam3_l[40:0] = {or_cam3_r[40:1],1'b0};
1188 else if (or_clr_d3)
1189 or_cam3_l[40:0] = {or_cam3_r[40:2],1'b0, or_cam3_r[0]};
1190 else
1191 or_cam3_l[40:0] = or_cam3_r[40:0];
1192
1193always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1194 or_clr_v4 or or_clr_d4 or or_cam4_r[40:0])
1195 if ((ipdohq_wr_addr_r[3:0] == 4'b0100) && ipcs_ipdohq_wr_en_i)
1196 or_cam4_l[40:0] = cam_l[40:0];
1197 else if (or_clr_v4)
1198 or_cam4_l[40:0] = {or_cam4_r[40:1],1'b0};
1199 else if (or_clr_d4)
1200 or_cam4_l[40:0] = {or_cam4_r[40:2],1'b0, or_cam4_r[0]};
1201 else
1202 or_cam4_l[40:0] = or_cam4_r[40:0];
1203
1204always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1205 or_clr_v5 or or_clr_d5 or or_cam5_r[40:0])
1206 if ((ipdohq_wr_addr_r[3:0] == 4'b0101) && ipcs_ipdohq_wr_en_i)
1207 or_cam5_l[40:0] = cam_l[40:0];
1208 else if (or_clr_v5)
1209 or_cam5_l[40:0] = {or_cam5_r[40:1],1'b0};
1210 else if (or_clr_d5)
1211 or_cam5_l[40:0] = {or_cam5_r[40:2],1'b0, or_cam5_r[0]};
1212 else
1213 or_cam5_l[40:0] = or_cam5_r[40:0];
1214
1215always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1216 or_clr_v6 or or_clr_d6 or or_cam6_r[40:0])
1217 if ((ipdohq_wr_addr_r[3:0] == 4'b0110) && ipcs_ipdohq_wr_en_i)
1218 or_cam6_l[40:0] = cam_l[40:0];
1219 else if (or_clr_v6)
1220 or_cam6_l[40:0] = {or_cam6_r[40:1],1'b0};
1221 else if (or_clr_d6)
1222 or_cam6_l[40:0] = {or_cam6_r[40:2],1'b0, or_cam6_r[0]};
1223 else
1224 or_cam6_l[40:0] = or_cam6_r[40:0];
1225
1226always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1227 or_clr_v7 or or_clr_d7 or or_cam7_r[40:0])
1228 if ((ipdohq_wr_addr_r[3:0] == 4'b0111) && ipcs_ipdohq_wr_en_i)
1229 or_cam7_l[40:0] = cam_l[40:0];
1230 else if (or_clr_v7)
1231 or_cam7_l[40:0] = {or_cam7_r[40:1],1'b0};
1232 else if (or_clr_d7)
1233 or_cam7_l[40:0] = {or_cam7_r[40:2],1'b0, or_cam7_r[0]};
1234 else
1235 or_cam7_l[40:0] = or_cam7_r[40:0];
1236
1237always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1238 or_clr_v8 or or_clr_d8 or or_cam8_r[40:0])
1239 if ((ipdohq_wr_addr_r[3:0] == 4'b1000) && ipcs_ipdohq_wr_en_i)
1240 or_cam8_l[40:0] = cam_l[40:0];
1241 else if (or_clr_v8)
1242 or_cam8_l[40:0] = {or_cam8_r[40:1],1'b0};
1243 else if (or_clr_d8)
1244 or_cam8_l[40:0] = {or_cam8_r[40:2],1'b0, or_cam8_r[0]};
1245 else
1246 or_cam8_l[40:0] = or_cam8_r[40:0];
1247
1248always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1249 or_clr_v9 or or_clr_d9 or or_cam9_r[40:0])
1250 if ((ipdohq_wr_addr_r[3:0] == 4'b1001) && ipcs_ipdohq_wr_en_i)
1251 or_cam9_l[40:0] = cam_l[40:0];
1252 else if (or_clr_v9)
1253 or_cam9_l[40:0] = {or_cam9_r[40:1],1'b0};
1254 else if (or_clr_d9)
1255 or_cam9_l[40:0] = {or_cam9_r[40:2],1'b0, or_cam9_r[0]};
1256 else
1257 or_cam9_l[40:0] = or_cam9_r[40:0];
1258
1259always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1260 or_clr_v10 or or_clr_d10 or or_cam10_r[40:0])
1261 if ((ipdohq_wr_addr_r[3:0] == 4'b1010) && ipcs_ipdohq_wr_en_i)
1262 or_cam10_l[40:0] = cam_l[40:0];
1263 else if (or_clr_v10)
1264 or_cam10_l[40:0] = {or_cam10_r[40:1],1'b0};
1265 else if (or_clr_d10)
1266 or_cam10_l[40:0] = {or_cam10_r[40:2],1'b0, or_cam10_r[0]};
1267 else
1268 or_cam10_l[40:0] = or_cam10_r[40:0];
1269
1270always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1271 or_clr_v11 or or_clr_d11 or or_cam11_r[40:0])
1272 if ((ipdohq_wr_addr_r[3:0] == 4'b1011) && ipcs_ipdohq_wr_en_i)
1273 or_cam11_l[40:0] = cam_l[40:0];
1274 else if (or_clr_v11)
1275 or_cam11_l[40:0] = {or_cam11_r[40:1],1'b0};
1276 else if (or_clr_d11)
1277 or_cam11_l[40:0] = {or_cam11_r[40:2],1'b0, or_cam11_r[0]};
1278 else
1279 or_cam11_l[40:0] = or_cam11_r[40:0];
1280
1281always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1282 or_clr_v12 or or_clr_d12 or or_cam12_r[40:0])
1283 if ((ipdohq_wr_addr_r[3:0] == 4'b1100) && ipcs_ipdohq_wr_en_i)
1284 or_cam12_l[40:0] = cam_l[40:0];
1285 else if (or_clr_v12)
1286 or_cam12_l[40:0] = {or_cam12_r[40:1],1'b0};
1287 else if (or_clr_d12)
1288 or_cam12_l[40:0] = {or_cam12_r[40:2],1'b0, or_cam12_r[0]};
1289 else
1290 or_cam12_l[40:0] = or_cam12_r[40:0];
1291
1292always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1293 or_clr_v13 or or_clr_d13 or or_cam13_r[40:0])
1294 if ((ipdohq_wr_addr_r[3:0] == 4'b1101) && ipcs_ipdohq_wr_en_i)
1295 or_cam13_l[40:0] = cam_l[40:0];
1296 else if (or_clr_v13)
1297 or_cam13_l[40:0] = {or_cam13_r[40:1],1'b0};
1298 else if (or_clr_d13)
1299 or_cam13_l[40:0] = {or_cam13_r[40:2],1'b0, or_cam13_r[0]};
1300 else
1301 or_cam13_l[40:0] = or_cam13_r[40:0];
1302
1303always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1304 or_clr_v14 or or_clr_d14 or or_cam14_r[40:0])
1305 if ((ipdohq_wr_addr_r[3:0] == 4'b1110) && ipcs_ipdohq_wr_en_i)
1306 or_cam14_l[40:0] = cam_l[40:0];
1307 else if (or_clr_v14)
1308 or_cam14_l[40:0] = {or_cam14_r[40:1],1'b0};
1309 else if (or_clr_d14)
1310 or_cam14_l[40:0] = {or_cam14_r[40:2],1'b0, or_cam14_r[0]};
1311 else
1312 or_cam14_l[40:0] = or_cam14_r[40:0];
1313
1314always @ (ipdohq_wr_addr_r[3:0] or ipcs_ipdohq_wr_en_i or cam_l[40:0] or
1315 or_clr_v15 or or_clr_d15 or or_cam15_r[40:0])
1316 if ((ipdohq_wr_addr_r[3:0] == 4'b1111) && ipcs_ipdohq_wr_en_i)
1317 or_cam15_l[40:0] = cam_l[40:0];
1318 else if (or_clr_v15)
1319 or_cam15_l[40:0] = {or_cam15_r[40:1],1'b0};
1320 else if (or_clr_d15)
1321 or_cam15_l[40:0] = {or_cam15_r[40:2],1'b0, or_cam15_r[0]};
1322 else
1323 or_cam15_l[40:0] = or_cam15_r[40:0];
1324
1325//--------------------------------------------------------------------------------------
1326// Register write section (Bypass)
1327//--------------------------------------------------------------------------------------
1328always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1329 by_clr_v0 or by_clr_d0 or by_cam0_r[40:0])
1330 if ((ipdbhq_wr_addr_r[3:0] == 4'b0000) && ipcs_ipdbhq_wr_en_i)
1331 by_cam0_l[40:0] = cam_l[40:0];
1332 else if (by_clr_v0)
1333 by_cam0_l[40:0] = {by_cam0_r[40:1],1'b0};
1334 else if (by_clr_d0)
1335 by_cam0_l[40:0] = {by_cam0_r[40:2],1'b0, by_cam0_r[0]};
1336 else
1337 by_cam0_l[40:0] = by_cam0_r[40:0];
1338
1339always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1340 by_clr_v1 or by_clr_d1 or by_cam1_r[40:0])
1341 if ((ipdbhq_wr_addr_r[3:0] == 4'b0001) && ipcs_ipdbhq_wr_en_i)
1342 by_cam1_l[40:0] = cam_l[40:0];
1343 else if (by_clr_v1)
1344 by_cam1_l[40:0] = {by_cam1_r[40:1],1'b0};
1345 else if (by_clr_d1)
1346 by_cam1_l[40:0] = {by_cam1_r[40:2],1'b0, by_cam1_r[0]};
1347 else
1348 by_cam1_l[40:0] = by_cam1_r[40:0];
1349
1350always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1351 by_clr_v2 or by_clr_d2 or by_cam2_r[40:0])
1352 if ((ipdbhq_wr_addr_r[3:0] == 4'b0010) && ipcs_ipdbhq_wr_en_i)
1353 by_cam2_l[40:0] = cam_l[40:0];
1354 else if (by_clr_v2)
1355 by_cam2_l[40:0] = {by_cam2_r[40:1],1'b0};
1356 else if (by_clr_d2)
1357 by_cam2_l[40:0] = {by_cam2_r[40:2],1'b0, by_cam2_r[0]};
1358 else
1359 by_cam2_l[40:0] = by_cam2_r[40:0];
1360
1361always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1362 by_clr_v3 or by_clr_d3 or by_cam3_r[40:0])
1363 if ((ipdbhq_wr_addr_r[3:0] == 4'b0011) && ipcs_ipdbhq_wr_en_i)
1364 by_cam3_l[40:0] = cam_l[40:0];
1365 else if (by_clr_v3)
1366 by_cam3_l[40:0] = {by_cam3_r[40:1],1'b0};
1367 else if (by_clr_d3)
1368 by_cam3_l[40:0] = {by_cam3_r[40:2],1'b0, by_cam3_r[0]};
1369 else
1370 by_cam3_l[40:0] = by_cam3_r[40:0];
1371
1372always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1373 by_clr_v4 or by_clr_d4 or by_cam4_r[40:0])
1374 if ((ipdbhq_wr_addr_r[3:0] == 4'b0100) && ipcs_ipdbhq_wr_en_i)
1375 by_cam4_l[40:0] = cam_l[40:0];
1376 else if (by_clr_v4)
1377 by_cam4_l[40:0] = {by_cam4_r[40:1],1'b0};
1378 else if (by_clr_d4)
1379 by_cam4_l[40:0] = {by_cam4_r[40:2],1'b0, by_cam4_r[0]};
1380 else
1381 by_cam4_l[40:0] = by_cam4_r[40:0];
1382
1383always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1384 by_clr_v5 or by_clr_d5 or by_cam5_r[40:0])
1385 if ((ipdbhq_wr_addr_r[3:0] == 4'b0101) && ipcs_ipdbhq_wr_en_i)
1386 by_cam5_l[40:0] = cam_l[40:0];
1387 else if (by_clr_v5)
1388 by_cam5_l[40:0] = {by_cam5_r[40:1],1'b0};
1389 else if (by_clr_d5)
1390 by_cam5_l[40:0] = {by_cam5_r[40:2],1'b0, by_cam5_r[0]};
1391 else
1392 by_cam5_l[40:0] = by_cam5_r[40:0];
1393
1394always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1395 by_clr_v6 or by_clr_d6 or by_cam6_r[40:0])
1396 if ((ipdbhq_wr_addr_r[3:0] == 4'b0110) && ipcs_ipdbhq_wr_en_i)
1397 by_cam6_l[40:0] = cam_l[40:0];
1398 else if (by_clr_v6)
1399 by_cam6_l[40:0] = {by_cam6_r[40:1],1'b0};
1400 else if (by_clr_d6)
1401 by_cam6_l[40:0] = {by_cam6_r[40:2],1'b0, by_cam6_r[0]};
1402 else
1403 by_cam6_l[40:0] = by_cam6_r[40:0];
1404
1405always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1406 by_clr_v7 or by_clr_d7 or by_cam7_r[40:0])
1407 if ((ipdbhq_wr_addr_r[3:0] == 4'b0111) && ipcs_ipdbhq_wr_en_i)
1408 by_cam7_l[40:0] = cam_l[40:0];
1409 else if (by_clr_v7)
1410 by_cam7_l[40:0] = {by_cam7_r[40:1],1'b0};
1411 else if (by_clr_d7)
1412 by_cam7_l[40:0] = {by_cam7_r[40:2],1'b0, by_cam7_r[0]};
1413 else
1414 by_cam7_l[40:0] = by_cam7_r[40:0];
1415
1416always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1417 by_clr_v8 or by_clr_d8 or by_cam8_r[40:0])
1418 if ((ipdbhq_wr_addr_r[3:0] == 4'b1000) && ipcs_ipdbhq_wr_en_i)
1419 by_cam8_l[40:0] = cam_l[40:0];
1420 else if (by_clr_v8)
1421 by_cam8_l[40:0] = {by_cam8_r[40:1],1'b0};
1422 else if (by_clr_d8)
1423 by_cam8_l[40:0] = {by_cam8_r[40:2],1'b0, by_cam8_r[0]};
1424 else
1425 by_cam8_l[40:0] = by_cam8_r[40:0];
1426
1427always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1428 by_clr_v9 or by_clr_d9 or by_cam9_r[40:0])
1429 if ((ipdbhq_wr_addr_r[3:0] == 4'b1001) && ipcs_ipdbhq_wr_en_i)
1430 by_cam9_l[40:0] = cam_l[40:0];
1431 else if (by_clr_v9)
1432 by_cam9_l[40:0] = {by_cam9_r[40:1],1'b0};
1433 else if (by_clr_d9)
1434 by_cam9_l[40:0] = {by_cam9_r[40:2],1'b0, by_cam9_r[0]};
1435 else
1436 by_cam9_l[40:0] = by_cam9_r[40:0];
1437
1438always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1439 by_clr_v10 or by_clr_d10 or by_cam10_r[40:0])
1440 if ((ipdbhq_wr_addr_r[3:0] == 4'b1010) && ipcs_ipdbhq_wr_en_i)
1441 by_cam10_l[40:0] = cam_l[40:0];
1442 else if (by_clr_v10)
1443 by_cam10_l[40:0] = {by_cam10_r[40:1],1'b0};
1444 else if (by_clr_d10)
1445 by_cam10_l[40:0] = {by_cam10_r[40:2],1'b0, by_cam10_r[0]};
1446 else
1447 by_cam10_l[40:0] = by_cam10_r[40:0];
1448
1449always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1450 by_clr_v11 or by_clr_d11 or by_cam11_r[40:0])
1451 if ((ipdbhq_wr_addr_r[3:0] == 4'b1011) && ipcs_ipdbhq_wr_en_i)
1452 by_cam11_l[40:0] = cam_l[40:0];
1453 else if (by_clr_v11)
1454 by_cam11_l[40:0] = {by_cam11_r[40:1],1'b0};
1455 else if (by_clr_d11)
1456 by_cam11_l[40:0] = {by_cam11_r[40:2],1'b0, by_cam11_r[0]};
1457 else
1458 by_cam11_l[40:0] = by_cam11_r[40:0];
1459
1460always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1461 by_clr_v12 or by_clr_d12 or by_cam12_r[40:0])
1462 if ((ipdbhq_wr_addr_r[3:0] == 4'b1100) && ipcs_ipdbhq_wr_en_i)
1463 by_cam12_l[40:0] = cam_l[40:0];
1464 else if (by_clr_v12)
1465 by_cam12_l[40:0] = {by_cam12_r[40:1],1'b0};
1466 else if (by_clr_d12)
1467 by_cam12_l[40:0] = {by_cam12_r[40:2],1'b0, by_cam12_r[0]};
1468 else
1469 by_cam12_l[40:0] = by_cam12_r[40:0];
1470
1471always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1472 by_clr_v13 or by_clr_d13 or by_cam13_r[40:0])
1473 if ((ipdbhq_wr_addr_r[3:0] == 4'b1101) && ipcs_ipdbhq_wr_en_i)
1474 by_cam13_l[40:0] = cam_l[40:0];
1475 else if (by_clr_v13)
1476 by_cam13_l[40:0] = {by_cam13_r[40:1],1'b0};
1477 else if (by_clr_d13)
1478 by_cam13_l[40:0] = {by_cam13_r[40:2],1'b0, by_cam13_r[0]};
1479 else
1480 by_cam13_l[40:0] = by_cam13_r[40:0];
1481
1482always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1483 by_clr_v14 or by_clr_d14 or by_cam14_r[40:0])
1484 if ((ipdbhq_wr_addr_r[3:0] == 4'b1110) && ipcs_ipdbhq_wr_en_i)
1485 by_cam14_l[40:0] = cam_l[40:0];
1486 else if (by_clr_v14)
1487 by_cam14_l[40:0] = {by_cam14_r[40:1],1'b0};
1488 else if (by_clr_d14)
1489 by_cam14_l[40:0] = {by_cam14_r[40:2],1'b0, by_cam14_r[0]};
1490 else
1491 by_cam14_l[40:0] = by_cam14_r[40:0];
1492
1493always @ (ipdbhq_wr_addr_r[3:0] or ipcs_ipdbhq_wr_en_i or cam_l[40:0] or
1494 by_clr_v15 or by_clr_d15 or by_cam15_r[40:0])
1495begin
1496 if ((ipdbhq_wr_addr_r[3:0] == 4'b1111) && ipcs_ipdbhq_wr_en_i)
1497 by_cam15_l[40:0] = cam_l[40:0];
1498 else if (by_clr_v15)
1499 by_cam15_l[40:0] = {by_cam15_r[40:1],1'b0};
1500 else if (by_clr_d15)
1501 by_cam15_l[40:0] = {by_cam15_r[40:2],1'b0, by_cam15_r[0]};
1502 else
1503 by_cam15_l[40:0] = by_cam15_r[40:0];
1504end
1505
1506//--------------------------------------------------------------------------------------
1507//************************************************************************
1508// REGISTERS section
1509//************************************************************************
1510
1511sii_ipcs_ctlmsff_ctl_macro__width_7 reg_cstate // ASYNC reset active low
1512 (
1513 .scan_in(reg_cstate_scanin),
1514 .scan_out(reg_cstate_scanout),
1515 .dout(cstate_r[6:0]),
1516 .l1clk(l1clk),
1517 .din(nstate[6:0]),
1518 .siclk(siclk),
1519 .soclk(soclk)
1520 );
1521
1522sii_ipcs_ctlmsff_ctl_macro__width_5 reg_last_or_wr // ASYNC reset active low
1523 (
1524 .scan_in(reg_last_or_wr_scanin),
1525 .scan_out(reg_last_or_wr_scanout),
1526 .dout(last_or_wr_r[4:0]),
1527 .l1clk(l1clk),
1528 .din(last_or_wr_l[4:0]),
1529 .siclk(siclk),
1530 .soclk(soclk)
1531 );
1532
1533sii_ipcs_ctlmsff_ctl_macro__width_5 reg_last_by_wr // ASYNC reset active low
1534 (
1535 .scan_in(reg_last_by_wr_scanin),
1536 .scan_out(reg_last_by_wr_scanout),
1537 .dout(last_by_wr_r[4:0]),
1538 .l1clk(l1clk),
1539 .din(last_by_wr_l[4:0]),
1540 .siclk(siclk),
1541 .soclk(soclk)
1542 );
1543
1544sii_ipcs_ctlmsff_ctl_macro__width_4 reg_dmu_or_ptr // ASYNC reset active low
1545 (
1546 .scan_in(reg_dmu_or_ptr_scanin),
1547 .scan_out(reg_dmu_or_ptr_scanout),
1548 .dout(dmu_or_ptr[3:0]),
1549 .l1clk(l1clk),
1550 .din(dmu_or_ptr_l[3:0]),
1551 .siclk(siclk),
1552 .soclk(soclk)
1553 );
1554
1555sii_ipcs_ctlmsff_ctl_macro__width_4 reg_dmu_by_ptr // ASYNC reset active low
1556 (
1557 .scan_in(reg_dmu_by_ptr_scanin),
1558 .scan_out(reg_dmu_by_ptr_scanout),
1559 .dout(dmu_by_ptr[3:0]),
1560 .l1clk(l1clk),
1561 .din(dmu_by_ptr_l[3:0]),
1562 .siclk(siclk),
1563 .soclk(soclk)
1564 );
1565
1566sii_ipcs_ctlmsff_ctl_macro__width_5 reg_ipdohq_wr_addr // ASYNC reset active low
1567 (
1568 .scan_in(reg_ipdohq_wr_addr_scanin),
1569 .scan_out(reg_ipdohq_wr_addr_scanout),
1570 .dout(ipdohq_wr_addr_r[4:0]),
1571 .l1clk(l1clk),
1572 .din(ipdohq_wr_addr_l[4:0]),
1573 .siclk(siclk),
1574 .soclk(soclk)
1575 );
1576
1577sii_ipcs_ctlmsff_ctl_macro__width_5 reg_ipdbhq_wr_addr // ASYNC reset active low
1578 (
1579 .scan_in(reg_ipdbhq_wr_addr_scanin),
1580 .scan_out(reg_ipdbhq_wr_addr_scanout),
1581 .dout(ipdbhq_wr_addr_r[4:0]),
1582 .l1clk(l1clk),
1583 .din(ipdbhq_wr_addr_l[4:0]),
1584 .siclk(siclk),
1585 .soclk(soclk)
1586 );
1587
1588sii_ipcs_ctlmsff_ctl_macro__width_6 reg_ipdodq_wr_addr // ASYNC reset active low
1589 (
1590 .scan_in(reg_ipdodq_wr_addr_scanin),
1591 .scan_out(reg_ipdodq_wr_addr_scanout),
1592 .dout(ipcs_ipdodq_wr_addr_r[5:0]),
1593 .l1clk(l1clk),
1594 .din(ipcs_ipdodq_wr_addr_l[5:0]),
1595 .siclk(siclk),
1596 .soclk(soclk)
1597 );
1598
1599sii_ipcs_ctlmsff_ctl_macro__width_6 reg_ipdbdq_wr_addr // ASYNC reset active low
1600 (
1601 .scan_in(reg_ipdbdq_wr_addr_scanin),
1602 .scan_out(reg_ipdbdq_wr_addr_scanout),
1603 .dout(ipcs_ipdbdq_wr_addr_r[5:0]),
1604 .l1clk(l1clk),
1605 .din(ipcs_ipdbdq_wr_addr_l[5:0]),
1606 .siclk(siclk),
1607 .soclk(soclk)
1608 );
1609
1610
1611sii_ipcs_ctlmsff_ctl_macro__width_128 reg_dmu_sii_hdr // ASYNC reset active low
1612 (
1613 .scan_in(reg_dmu_sii_hdr_scanin),
1614 .scan_out(reg_dmu_sii_hdr_scanout),
1615 .dout(ext_sii_hdr_r[127:0]),
1616 .l1clk(l1clk),
1617 .din(ext_sii_hdr_l[127:0]),
1618 .siclk(siclk),
1619 .soclk(soclk)
1620 );
1621
1622
1623sii_ipcs_ctlmsff_ctl_macro__width_1 reg_datareq16 // ASYNC reset active low
1624 (
1625 .scan_in(reg_datareq16_scanin),
1626 .scan_out(reg_datareq16_scanout),
1627 .dout(ext_sii_datareq16_r),
1628 .l1clk(l1clk),
1629 .din(ext_sii_datareq16_l),
1630 .siclk(siclk),
1631 .soclk(soclk)
1632 );
1633
1634sii_ipcs_ctlmsff_ctl_macro__width_1 reg_reqbypass // ASYNC reset active low
1635 (
1636 .scan_in(reg_reqbypass_scanin),
1637 .scan_out(reg_reqbypass_scanout),
1638 .dout(ext_sii_reqbypass_r),
1639 .l1clk(l1clk),
1640 .din(dmu_sii_reqbypass_l),
1641 .siclk(siclk),
1642 .soclk(soclk)
1643 );
1644
1645
1646sii_ipcs_ctlmsff_ctl_macro__width_1 reg_add_or // ASYNC reset active low
1647 (
1648 .scan_in(reg_add_or_scanin),
1649 .scan_out(reg_add_or_scanout),
1650 .dout(ipcs_ipcc_add_or),
1651 .l1clk(l1clk),
1652 .din(add_or),
1653 .siclk(siclk),
1654 .soclk(soclk)
1655 );
1656
1657sii_ipcs_ctlmsff_ctl_macro__width_1 reg_add_by // ASYNC reset active low
1658 (
1659 .scan_in(reg_add_by_scanin),
1660 .scan_out(reg_add_by_scanout),
1661 .dout(ipcs_ipcc_add_by),
1662 .l1clk(l1clk),
1663 .din(add_by),
1664 .siclk(siclk),
1665 .soclk(soclk)
1666 );
1667
1668//-------------------------------------------------------------------
1669// Synchronization Section (l2clk -> iol1clk)
1670//-------------------------------------------------------------------
1671sii_ipcs_ctlmsff_ctl_macro__width_4 reg_dmu_wrack_tag // ASYNC reset active low
1672 (
1673 .scan_in(reg_dmu_wrack_tag_scanin),
1674 .scan_out(reg_dmu_wrack_tag_scanout),
1675 .dout(sii_ext_wrack_tag[3:0]),
1676 .l1clk(l1clk),
1677 .din(ipcc_ipcs_dmu_tag[3:0]),
1678 .siclk(siclk),
1679 .soclk(soclk)
1680 );
1681
1682sii_ipcs_ctlmsff_ctl_macro__width_1 reg_dmu_wrack_parity // ASYNC reset active low
1683 (
1684 .scan_in(reg_dmu_wrack_parity_scanin),
1685 .scan_out(reg_dmu_wrack_parity_scanout),
1686 .dout(sii_ext_wrack_parity),
1687 .l1clk(l1clk),
1688 .din(ipcc_ipcs_dmu_wrack_p),
1689 .siclk(siclk),
1690 .soclk(soclk)
1691 );
1692
1693assign dmu_wrack_vld = ipcc_ipcs_wrack_vld ^ sync2_wrack;
1694sii_ipcs_ctlmsff_ctl_macro__width_1 reg_ipcc_ipcs_wrack // ASYNC reset active low
1695 (
1696 .scan_in(reg_ipcc_ipcs_wrack_scanin),
1697 .scan_out(reg_ipcc_ipcs_wrack_scanout),
1698 .dout(ipcc_ipcs_wrack_vld),
1699 .l1clk(l1clk),
1700 .din(sync2_wrack),
1701 .siclk(siclk),
1702 .soclk(soclk)
1703 );
1704
1705sii_ipcs_ctlmsff_ctl_macro__width_1 sync_ff_wrack1 // ASYNC reset active low
1706 (
1707 .scan_in(sync_ff_wrack1_scanin),
1708 .scan_out(sync_ff_wrack1_scanout),
1709 .dout(sync1_wrack),
1710 .l1clk(l1clk),
1711 .din(ipcc_ipcs_wrack_lv),
1712 .siclk(siclk),
1713 .soclk(soclk)
1714 );
1715
1716sii_ipcs_ctlmsff_ctl_macro__width_1 sync_ff_wrack2 // ASYNC reset active low
1717 (
1718 .scan_in(sync_ff_wrack2_scanin),
1719 .scan_out(sync_ff_wrack2_scanout),
1720 .dout(sync2_wrack),
1721 .l1clk(l1clk),
1722 .din(sync1_wrack),
1723 .siclk(siclk),
1724 .soclk(soclk)
1725 );
1726
1727assign ipcc_ipcs_or_go = ipcc_ipcs_or_dq ^ ipcc_ipcs_or_go_lv;
1728sii_ipcs_ctlmsff_ctl_macro__width_1 reg_ipcc_ipcs_or_dq // ASYNC reset active low
1729 (
1730 .scan_in(reg_ipcc_ipcs_or_dq_scanin),
1731 .scan_out(reg_ipcc_ipcs_or_dq_scanout),
1732 .dout(ipcc_ipcs_or_dq),
1733 .l1clk(l1clk),
1734 .din(ipcc_ipcs_or_go_lv),
1735 .siclk(siclk),
1736 .soclk(soclk)
1737 );
1738
1739
1740assign ipcc_ipcs_by_go = ipcc_ipcs_by_dq ^ ipcc_ipcs_by_go_lv;
1741sii_ipcs_ctlmsff_ctl_macro__width_1 reg_ipcc_ipcs_by_dq // ASYNC reset active low
1742 (
1743 .scan_in(reg_ipcc_ipcs_by_dq_scanin),
1744 .scan_out(reg_ipcc_ipcs_by_dq_scanout),
1745 .dout(ipcc_ipcs_by_dq),
1746 .l1clk(l1clk),
1747 .din(ipcc_ipcs_by_go_lv),
1748 .siclk(siclk),
1749 .soclk(soclk)
1750 );
1751
1752//msff_ctl_macro sync_ff_or_ptr1 (width=4) // ASYNC reset active low
1753// (
1754// .scan_in(sync_ff_or_ptr1_scanin),
1755// .scan_out(sync_ff_or_ptr1_scanout),
1756// .dout(sync1_or_ptr[3:0]),
1757 // .l1clk(l1clk),
1758 // .din(ipcc_ipcs_or_ptr[3:0]),
1759// );
1760
1761sii_ipcs_ctlmsff_ctl_macro__width_4 sync_ff_or_ptr2 // ASYNC reset active low
1762 (
1763 .scan_in(sync_ff_or_ptr2_scanin),
1764 .scan_out(sync_ff_or_ptr2_scanout),
1765 .dout(ipcc_ipcs_or_raddr[3:0]),
1766 .l1clk(l1clk),
1767 .din(ipcc_ipcs_or_ptr[3:0]),
1768 .siclk(siclk),
1769 .soclk(soclk)
1770 );
1771
1772//msff_ctl_macro sync_ff_or_ptr4 (width=4) // ASYNC reset active low
1773// (
1774// .scan_in(sync_ff_or_ptr4_scanin),
1775// .scan_out(sync_ff_or_ptr4_scanout),
1776// .dout(ipcc_ipcs_or_raddr[3:0]),
1777 // .l1clk(l1clk),
1778// .din(sync3_or_ptr[3:0]),
1779// );
1780
1781//msff_ctl_macro sync_ff_or_ptr3 (width=4) // ASYNC reset active low
1782// (
1783// .scan_in(sync_ff_or_ptr3_scanin),
1784// .scan_out(sync_ff_or_ptr3_scanout),
1785// .dout(ipcc_ipcs_or_raddr[3:0]),
1786 // .l1clk(l1clk),
1787 // .din(sync2_or_ptr[3:0]),
1788// );
1789
1790sii_ipcs_ctlmsff_ctl_macro__width_4 sync_ff_by_ptr1 // ASYNC reset active low
1791 (
1792 .scan_in(sync_ff_by_ptr1_scanin),
1793 .scan_out(sync_ff_by_ptr1_scanout),
1794 .dout(ipcc_ipcs_by_raddr[3:0]),
1795 .l1clk(l1clk),
1796 .din(ipcc_ipcs_by_ptr[3:0]),
1797 .siclk(siclk),
1798 .soclk(soclk)
1799 );
1800
1801//msff_ctl_macro sync_ff_by_ptr2 (width=4) // ASYNC reset active low
1802// (
1803// .scan_in(sync_ff_by_ptr2_scanin),
1804// .scan_out(sync_ff_by_ptr2_scanout),
1805// .dout(ipcc_ipcs_by_raddr[3:0]),
1806 // .l1clk(l1clk),
1807 // .din(sync1_by_ptr[3:0]),
1808// );
1809
1810//msff_ctl_macro sync_ff_by_ptr4 (width=4) // ASYNC reset active low
1811// (
1812// .scan_in(sync_ff_by_ptr4_scanin),
1813// .scan_out(sync_ff_by_ptr4_scanout),
1814// .dout(ipcc_ipcs_by_raddr[3:0]),
1815// .l1clk(l1clk),
1816// .din(sync3_by_ptr[3:0]),
1817// );
1818
1819//msff_ctl_macro sync_ff_by_ptr3 (width=4) // ASYNC reset active low
1820// (
1821// .scan_in(sync_ff_by_ptr3_scanin),
1822// .scan_out(sync_ff_by_ptr3_scanout),
1823// .dout(ipcc_ipcs_by_raddr[3:0]),
1824 // .l1clk(l1clk),
1825// .din(sync2_by_ptr[3:0]),
1826// );
1827//
1828
1829//-------------------------------------------------------------------
1830// DUPLICATE ADDRESS REGISTERS ( bypass queue)
1831//-------------------------------------------------------------------
1832sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam0
1833 (
1834 .scan_in(reg_by_cam0_scanin),
1835 .scan_out(reg_by_cam0_scanout),
1836 .dout(by_cam0_r[40:0]),
1837 .l1clk(l1clk),
1838 .din(by_cam0_l[40:0]),
1839 .siclk(siclk),
1840 .soclk(soclk)
1841 );
1842
1843sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam1
1844 (
1845 .scan_in(reg_by_cam1_scanin),
1846 .scan_out(reg_by_cam1_scanout),
1847 .dout(by_cam1_r[40:0]),
1848 .l1clk(l1clk),
1849 .din(by_cam1_l[40:0]),
1850 .siclk(siclk),
1851 .soclk(soclk)
1852 );
1853
1854sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam2
1855 (
1856 .scan_in(reg_by_cam2_scanin),
1857 .scan_out(reg_by_cam2_scanout),
1858 .dout(by_cam2_r[40:0]),
1859 .l1clk(l1clk),
1860 .din(by_cam2_l[40:0]),
1861 .siclk(siclk),
1862 .soclk(soclk)
1863 );
1864
1865sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam3
1866 (
1867 .scan_in(reg_by_cam3_scanin),
1868 .scan_out(reg_by_cam3_scanout),
1869 .dout(by_cam3_r[40:0]),
1870 .l1clk(l1clk),
1871 .din(by_cam3_l[40:0]),
1872 .siclk(siclk),
1873 .soclk(soclk)
1874 );
1875
1876sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam4
1877 (
1878 .scan_in(reg_by_cam4_scanin),
1879 .scan_out(reg_by_cam4_scanout),
1880 .dout(by_cam4_r[40:0]),
1881 .l1clk(l1clk),
1882 .din(by_cam4_l[40:0]),
1883 .siclk(siclk),
1884 .soclk(soclk)
1885 );
1886
1887sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam5
1888 (
1889 .scan_in(reg_by_cam5_scanin),
1890 .scan_out(reg_by_cam5_scanout),
1891 .dout(by_cam5_r[40:0]),
1892 .l1clk(l1clk),
1893 .din(by_cam5_l[40:0]),
1894 .siclk(siclk),
1895 .soclk(soclk)
1896 );
1897
1898sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam6
1899 (
1900 .scan_in(reg_by_cam6_scanin),
1901 .scan_out(reg_by_cam6_scanout),
1902 .dout(by_cam6_r[40:0]),
1903 .l1clk(l1clk),
1904 .din(by_cam6_l[40:0]),
1905 .siclk(siclk),
1906 .soclk(soclk)
1907 );
1908
1909sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam7
1910 (
1911 .scan_in(reg_by_cam7_scanin),
1912 .scan_out(reg_by_cam7_scanout),
1913 .dout(by_cam7_r[40:0]),
1914 .l1clk(l1clk),
1915 .din(by_cam7_l[40:0]),
1916 .siclk(siclk),
1917 .soclk(soclk)
1918 );
1919
1920sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam8
1921 (
1922 .scan_in(reg_by_cam8_scanin),
1923 .scan_out(reg_by_cam8_scanout),
1924 .dout(by_cam8_r[40:0]),
1925 .l1clk(l1clk),
1926 .din(by_cam8_l[40:0]),
1927 .siclk(siclk),
1928 .soclk(soclk)
1929 );
1930
1931sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam9
1932 (
1933 .scan_in(reg_by_cam9_scanin),
1934 .scan_out(reg_by_cam9_scanout),
1935 .dout(by_cam9_r[40:0]),
1936 .l1clk(l1clk),
1937 .din(by_cam9_l[40:0]),
1938 .siclk(siclk),
1939 .soclk(soclk)
1940 );
1941
1942sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam10
1943 (
1944 .scan_in(reg_by_cam10_scanin),
1945 .scan_out(reg_by_cam10_scanout),
1946 .dout(by_cam10_r[40:0]),
1947 .l1clk(l1clk),
1948 .din(by_cam10_l[40:0]),
1949 .siclk(siclk),
1950 .soclk(soclk)
1951 );
1952
1953sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam11
1954 (
1955 .scan_in(reg_by_cam11_scanin),
1956 .scan_out(reg_by_cam11_scanout),
1957 .dout(by_cam11_r[40:0]),
1958 .l1clk(l1clk),
1959 .din(by_cam11_l[40:0]),
1960 .siclk(siclk),
1961 .soclk(soclk)
1962 );
1963
1964sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam12
1965 (
1966 .scan_in(reg_by_cam12_scanin),
1967 .scan_out(reg_by_cam12_scanout),
1968 .dout(by_cam12_r[40:0]),
1969 .l1clk(l1clk),
1970 .din(by_cam12_l[40:0]),
1971 .siclk(siclk),
1972 .soclk(soclk)
1973 );
1974
1975sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam13
1976 (
1977 .scan_in(reg_by_cam13_scanin),
1978 .scan_out(reg_by_cam13_scanout),
1979 .dout(by_cam13_r[40:0]),
1980 .l1clk(l1clk),
1981 .din(by_cam13_l[40:0]),
1982 .siclk(siclk),
1983 .soclk(soclk)
1984 );
1985
1986
1987sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam14
1988 (
1989 .scan_in(reg_by_cam14_scanin),
1990 .scan_out(reg_by_cam14_scanout),
1991 .dout(by_cam14_r[40:0]),
1992 .l1clk(l1clk),
1993 .din(by_cam14_l[40:0]),
1994 .siclk(siclk),
1995 .soclk(soclk)
1996 );
1997
1998sii_ipcs_ctlmsff_ctl_macro__width_41 reg_by_cam15
1999 (
2000 .scan_in(reg_by_cam15_scanin),
2001 .scan_out(reg_by_cam15_scanout),
2002 .dout(by_cam15_r[40:0]),
2003 .l1clk(l1clk),
2004 .din(by_cam15_l[40:0]),
2005 .siclk(siclk),
2006 .soclk(soclk)
2007 );
2008//-------------------------------------------------------------------
2009// DUPLICATE ADDRESS REGISTERS ( ordered queue)
2010//-------------------------------------------------------------------
2011sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam0
2012 (
2013 .scan_in(reg_or_cam0_scanin),
2014 .scan_out(reg_or_cam0_scanout),
2015 .dout(or_cam0_r[40:0]),
2016 .l1clk(l1clk),
2017 .din(or_cam0_l[40:0]),
2018 .siclk(siclk),
2019 .soclk(soclk)
2020 );
2021
2022sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam1
2023 (
2024 .scan_in(reg_or_cam1_scanin),
2025 .scan_out(reg_or_cam1_scanout),
2026 .dout(or_cam1_r[40:0]),
2027 .l1clk(l1clk),
2028 .din(or_cam1_l[40:0]),
2029 .siclk(siclk),
2030 .soclk(soclk)
2031 );
2032
2033sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam2
2034 (
2035 .scan_in(reg_or_cam2_scanin),
2036 .scan_out(reg_or_cam2_scanout),
2037 .dout(or_cam2_r[40:0]),
2038 .l1clk(l1clk),
2039 .din(or_cam2_l[40:0]),
2040 .siclk(siclk),
2041 .soclk(soclk)
2042 );
2043
2044sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam3
2045 (
2046 .scan_in(reg_or_cam3_scanin),
2047 .scan_out(reg_or_cam3_scanout),
2048 .dout(or_cam3_r[40:0]),
2049 .l1clk(l1clk),
2050 .din(or_cam3_l[40:0]),
2051 .siclk(siclk),
2052 .soclk(soclk)
2053 );
2054
2055sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam4
2056 (
2057 .scan_in(reg_or_cam4_scanin),
2058 .scan_out(reg_or_cam4_scanout),
2059 .dout(or_cam4_r[40:0]),
2060 .l1clk(l1clk),
2061 .din(or_cam4_l[40:0]),
2062 .siclk(siclk),
2063 .soclk(soclk)
2064 );
2065
2066sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam5
2067 (
2068 .scan_in(reg_or_cam5_scanin),
2069 .scan_out(reg_or_cam5_scanout),
2070 .dout(or_cam5_r[40:0]),
2071 .l1clk(l1clk),
2072 .din(or_cam5_l[40:0]),
2073 .siclk(siclk),
2074 .soclk(soclk)
2075 );
2076
2077sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam6
2078 (
2079 .scan_in(reg_or_cam6_scanin),
2080 .scan_out(reg_or_cam6_scanout),
2081 .dout(or_cam6_r[40:0]),
2082 .l1clk(l1clk),
2083 .din(or_cam6_l[40:0]),
2084 .siclk(siclk),
2085 .soclk(soclk)
2086 );
2087
2088sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam7
2089 (
2090 .scan_in(reg_or_cam7_scanin),
2091 .scan_out(reg_or_cam7_scanout),
2092 .dout(or_cam7_r[40:0]),
2093 .l1clk(l1clk),
2094 .din(or_cam7_l[40:0]),
2095 .siclk(siclk),
2096 .soclk(soclk)
2097 );
2098
2099sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam8
2100 (
2101 .scan_in(reg_or_cam8_scanin),
2102 .scan_out(reg_or_cam8_scanout),
2103 .dout(or_cam8_r[40:0]),
2104 .l1clk(l1clk),
2105 .din(or_cam8_l[40:0]),
2106 .siclk(siclk),
2107 .soclk(soclk)
2108 );
2109
2110sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam9
2111 (
2112 .scan_in(reg_or_cam9_scanin),
2113 .scan_out(reg_or_cam9_scanout),
2114 .dout(or_cam9_r[40:0]),
2115 .l1clk(l1clk),
2116 .din(or_cam9_l[40:0]),
2117 .siclk(siclk),
2118 .soclk(soclk)
2119 );
2120
2121sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam10
2122 (
2123 .scan_in(reg_or_cam10_scanin),
2124 .scan_out(reg_or_cam10_scanout),
2125 .dout(or_cam10_r[40:0]),
2126 .l1clk(l1clk),
2127 .din(or_cam10_l[40:0]),
2128 .siclk(siclk),
2129 .soclk(soclk)
2130 );
2131
2132sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam11
2133 (
2134 .scan_in(reg_or_cam11_scanin),
2135 .scan_out(reg_or_cam11_scanout),
2136 .dout(or_cam11_r[40:0]),
2137 .l1clk(l1clk),
2138 .din(or_cam11_l[40:0]),
2139 .siclk(siclk),
2140 .soclk(soclk)
2141 );
2142
2143sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam12
2144 (
2145 .scan_in(reg_or_cam12_scanin),
2146 .scan_out(reg_or_cam12_scanout),
2147 .dout(or_cam12_r[40:0]),
2148 .l1clk(l1clk),
2149 .din(or_cam12_l[40:0]),
2150 .siclk(siclk),
2151 .soclk(soclk)
2152 );
2153
2154sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam13
2155 (
2156 .scan_in(reg_or_cam13_scanin),
2157 .scan_out(reg_or_cam13_scanout),
2158 .dout(or_cam13_r[40:0]),
2159 .l1clk(l1clk),
2160 .din(or_cam13_l[40:0]),
2161 .siclk(siclk),
2162 .soclk(soclk)
2163 );
2164
2165
2166sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam14
2167 (
2168 .scan_in(reg_or_cam14_scanin),
2169 .scan_out(reg_or_cam14_scanout),
2170 .dout(or_cam14_r[40:0]),
2171 .l1clk(l1clk),
2172 .din(or_cam14_l[40:0]),
2173 .siclk(siclk),
2174 .soclk(soclk)
2175 );
2176
2177sii_ipcs_ctlmsff_ctl_macro__width_41 reg_or_cam15
2178 (
2179 .scan_in(reg_or_cam15_scanin),
2180 .scan_out(reg_or_cam15_scanout),
2181 .dout(or_cam15_r[40:0]),
2182 .l1clk(l1clk),
2183 .din(or_cam15_l[40:0]),
2184 .siclk(siclk),
2185 .soclk(soclk)
2186 );
2187
2188//msff_ctl_macro reg_sii_mb1_addr (width=6)
2189// (
2190// .scan_in(reg_sii_mb1_addr_scanin),
2191// .scan_out(reg_sii_mb1_addr_scanout),
2192// .dout(sii_mb1_addr_r[5:0]),
2193// .l1clk(l1clk),
2194// .din(sii_mb1_addr[5:0]),
2195// );
2196
2197//msff_ctl_macro reg_sii_mb1_wdata (width=8)
2198// (
2199// .scan_in(reg_sii_mb1_wdata_scanin),
2200// .scan_out(reg_sii_mb1_wdata_scanout),
2201// .dout(sii_mb1_wdata_r[7:0]),
2202// .l1clk(l1clk),
2203// .din(sii_mb1_wdata[7:0]),
2204// );
2205
2206
2207//msff_ctl_macro reg_sii_mb1_ipdodq_wr_en (width=1)
2208// (
2209// .scan_in(reg_sii_mb1_ipdodq_wr_en_scanin),
2210// .scan_out(reg_sii_mb1_ipdodq_wr_en_scanout),
2211// .dout(sii_mb1_ipdodq_wr_en_r),
2212// .l1clk(l1clk),
2213// .din(sii_mb1_ipdodq_wr_en),
2214// );
2215
2216//msff_ctl_macro reg_sii_mb1_ipdbdq_wr_en (width=1)
2217// (
2218// .scan_in(reg_sii_mb1_ipdbdq_wr_en_scanin),
2219// .scan_out(reg_sii_mb1_ipdbdq_wr_en_scanout),
2220// .dout(sii_mb1_ipdbdq_wr_en_r),
2221// .l1clk(l1clk),
2222// .din(sii_mb1_ipdbdq_wr_en),
2223// );
2224
2225//msff_ctl_macro reg_sii_mb1_ipdohq_wr_en (width=1)
2226// (
2227// .scan_in(reg_sii_mb1_ipdohq_wr_en_scanin),
2228// .scan_out(reg_sii_mb1_ipdohq_wr_en_scanout),
2229// .dout(sii_mb1_ipdohq_wr_en_r),
2230// .l1clk(l1clk),
2231// .din(sii_mb1_ipdohq_wr_en),
2232// );
2233
2234//msff_ctl_macro reg_sii_mb1_ipdbhq_wr_en (width=1)
2235// (
2236// .scan_in(reg_sii_mb1_ipdbhq_wr_en_scanin),
2237// .scan_out(reg_sii_mb1_ipdbhq_wr_en_scanout),
2238// .dout(sii_mb1_ipdbhq_wr_en_r),
2239// .l1clk(l1clk),
2240// .din(sii_mb1_ipdbhq_wr_en),
2241// );
2242//
2243// fixscan start:
2244assign spares_scanin = scan_in ;
2245assign reg_cstate_scanin = spares_scanout ;
2246assign reg_last_or_wr_scanin = reg_cstate_scanout ;
2247assign reg_last_by_wr_scanin = reg_last_or_wr_scanout ;
2248assign reg_dmu_or_ptr_scanin = reg_last_by_wr_scanout ;
2249assign reg_dmu_by_ptr_scanin = reg_dmu_or_ptr_scanout ;
2250assign reg_ipdohq_wr_addr_scanin = reg_dmu_by_ptr_scanout ;
2251assign reg_ipdbhq_wr_addr_scanin = reg_ipdohq_wr_addr_scanout;
2252assign reg_ipdodq_wr_addr_scanin = reg_ipdbhq_wr_addr_scanout;
2253assign reg_ipdbdq_wr_addr_scanin = reg_ipdodq_wr_addr_scanout;
2254assign reg_dmu_sii_hdr_scanin = reg_ipdbdq_wr_addr_scanout;
2255assign reg_datareq16_scanin = reg_dmu_sii_hdr_scanout ;
2256assign reg_reqbypass_scanin = reg_datareq16_scanout ;
2257assign reg_add_or_scanin = reg_reqbypass_scanout ;
2258assign reg_add_by_scanin = reg_add_or_scanout ;
2259assign reg_dmu_wrack_tag_scanin = reg_add_by_scanout ;
2260assign reg_dmu_wrack_parity_scanin = reg_dmu_wrack_tag_scanout;
2261assign reg_ipcc_ipcs_wrack_scanin = reg_dmu_wrack_parity_scanout;
2262assign sync_ff_wrack1_scanin = reg_ipcc_ipcs_wrack_scanout;
2263assign sync_ff_wrack2_scanin = sync_ff_wrack1_scanout ;
2264assign reg_ipcc_ipcs_or_dq_scanin = sync_ff_wrack2_scanout ;
2265assign reg_ipcc_ipcs_by_dq_scanin = reg_ipcc_ipcs_or_dq_scanout;
2266assign sync_ff_or_ptr2_scanin = reg_ipcc_ipcs_by_dq_scanout;
2267assign sync_ff_by_ptr1_scanin = sync_ff_or_ptr2_scanout ;
2268assign reg_by_cam0_scanin = sync_ff_by_ptr1_scanout ;
2269assign reg_by_cam1_scanin = reg_by_cam0_scanout ;
2270assign reg_by_cam2_scanin = reg_by_cam1_scanout ;
2271assign reg_by_cam3_scanin = reg_by_cam2_scanout ;
2272assign reg_by_cam4_scanin = reg_by_cam3_scanout ;
2273assign reg_by_cam5_scanin = reg_by_cam4_scanout ;
2274assign reg_by_cam6_scanin = reg_by_cam5_scanout ;
2275assign reg_by_cam7_scanin = reg_by_cam6_scanout ;
2276assign reg_by_cam8_scanin = reg_by_cam7_scanout ;
2277assign reg_by_cam9_scanin = reg_by_cam8_scanout ;
2278assign reg_by_cam10_scanin = reg_by_cam9_scanout ;
2279assign reg_by_cam11_scanin = reg_by_cam10_scanout ;
2280assign reg_by_cam12_scanin = reg_by_cam11_scanout ;
2281assign reg_by_cam13_scanin = reg_by_cam12_scanout ;
2282assign reg_by_cam14_scanin = reg_by_cam13_scanout ;
2283assign reg_by_cam15_scanin = reg_by_cam14_scanout ;
2284assign reg_or_cam0_scanin = reg_by_cam15_scanout ;
2285assign reg_or_cam1_scanin = reg_or_cam0_scanout ;
2286assign reg_or_cam2_scanin = reg_or_cam1_scanout ;
2287assign reg_or_cam3_scanin = reg_or_cam2_scanout ;
2288assign reg_or_cam4_scanin = reg_or_cam3_scanout ;
2289assign reg_or_cam5_scanin = reg_or_cam4_scanout ;
2290assign reg_or_cam6_scanin = reg_or_cam5_scanout ;
2291assign reg_or_cam7_scanin = reg_or_cam6_scanout ;
2292assign reg_or_cam8_scanin = reg_or_cam7_scanout ;
2293assign reg_or_cam9_scanin = reg_or_cam8_scanout ;
2294assign reg_or_cam10_scanin = reg_or_cam9_scanout ;
2295assign reg_or_cam11_scanin = reg_or_cam10_scanout ;
2296assign reg_or_cam12_scanin = reg_or_cam11_scanout ;
2297assign reg_or_cam13_scanin = reg_or_cam12_scanout ;
2298assign reg_or_cam14_scanin = reg_or_cam13_scanout ;
2299assign reg_or_cam15_scanin = reg_or_cam14_scanout ;
2300assign scan_out = reg_or_cam15_scanout ;
2301// fixscan end:
2302endmodule
2303
2304
2305
2306
2307
2308
2309// any PARAMS parms go into naming of macro
2310
2311module sii_ipcs_ctll1clkhdr_ctl_macro (
2312 l2clk,
2313 l1en,
2314 pce_ov,
2315 stop,
2316 se,
2317 l1clk);
2318
2319
2320 input l2clk;
2321 input l1en;
2322 input pce_ov;
2323 input stop;
2324 input se;
2325 output l1clk;
2326
2327
2328
2329
2330
2331cl_sc1_l1hdr_8x c_0 (
2332
2333
2334 .l2clk(l2clk),
2335 .pce(l1en),
2336 .l1clk(l1clk),
2337 .se(se),
2338 .pce_ov(pce_ov),
2339 .stop(stop)
2340);
2341
2342
2343
2344endmodule
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354// Description: Spare gate macro for control blocks
2355//
2356// Param num controls the number of times the macro is added
2357// flops=0 can be used to use only combination spare logic
2358
2359
2360module sii_ipcs_ctlspare_ctl_macro__num_20 (
2361 l1clk,
2362 scan_in,
2363 siclk,
2364 soclk,
2365 scan_out);
2366wire si_0;
2367wire so_0;
2368wire spare0_flop_unused;
2369wire spare0_buf_32x_unused;
2370wire spare0_nand3_8x_unused;
2371wire spare0_inv_8x_unused;
2372wire spare0_aoi22_4x_unused;
2373wire spare0_buf_8x_unused;
2374wire spare0_oai22_4x_unused;
2375wire spare0_inv_16x_unused;
2376wire spare0_nand2_16x_unused;
2377wire spare0_nor3_4x_unused;
2378wire spare0_nand2_8x_unused;
2379wire spare0_buf_16x_unused;
2380wire spare0_nor2_16x_unused;
2381wire spare0_inv_32x_unused;
2382wire si_1;
2383wire so_1;
2384wire spare1_flop_unused;
2385wire spare1_buf_32x_unused;
2386wire spare1_nand3_8x_unused;
2387wire spare1_inv_8x_unused;
2388wire spare1_aoi22_4x_unused;
2389wire spare1_buf_8x_unused;
2390wire spare1_oai22_4x_unused;
2391wire spare1_inv_16x_unused;
2392wire spare1_nand2_16x_unused;
2393wire spare1_nor3_4x_unused;
2394wire spare1_nand2_8x_unused;
2395wire spare1_buf_16x_unused;
2396wire spare1_nor2_16x_unused;
2397wire spare1_inv_32x_unused;
2398wire si_2;
2399wire so_2;
2400wire spare2_flop_unused;
2401wire spare2_buf_32x_unused;
2402wire spare2_nand3_8x_unused;
2403wire spare2_inv_8x_unused;
2404wire spare2_aoi22_4x_unused;
2405wire spare2_buf_8x_unused;
2406wire spare2_oai22_4x_unused;
2407wire spare2_inv_16x_unused;
2408wire spare2_nand2_16x_unused;
2409wire spare2_nor3_4x_unused;
2410wire spare2_nand2_8x_unused;
2411wire spare2_buf_16x_unused;
2412wire spare2_nor2_16x_unused;
2413wire spare2_inv_32x_unused;
2414wire si_3;
2415wire so_3;
2416wire spare3_flop_unused;
2417wire spare3_buf_32x_unused;
2418wire spare3_nand3_8x_unused;
2419wire spare3_inv_8x_unused;
2420wire spare3_aoi22_4x_unused;
2421wire spare3_buf_8x_unused;
2422wire spare3_oai22_4x_unused;
2423wire spare3_inv_16x_unused;
2424wire spare3_nand2_16x_unused;
2425wire spare3_nor3_4x_unused;
2426wire spare3_nand2_8x_unused;
2427wire spare3_buf_16x_unused;
2428wire spare3_nor2_16x_unused;
2429wire spare3_inv_32x_unused;
2430wire si_4;
2431wire so_4;
2432wire spare4_flop_unused;
2433wire spare4_buf_32x_unused;
2434wire spare4_nand3_8x_unused;
2435wire spare4_inv_8x_unused;
2436wire spare4_aoi22_4x_unused;
2437wire spare4_buf_8x_unused;
2438wire spare4_oai22_4x_unused;
2439wire spare4_inv_16x_unused;
2440wire spare4_nand2_16x_unused;
2441wire spare4_nor3_4x_unused;
2442wire spare4_nand2_8x_unused;
2443wire spare4_buf_16x_unused;
2444wire spare4_nor2_16x_unused;
2445wire spare4_inv_32x_unused;
2446wire si_5;
2447wire so_5;
2448wire spare5_flop_unused;
2449wire spare5_buf_32x_unused;
2450wire spare5_nand3_8x_unused;
2451wire spare5_inv_8x_unused;
2452wire spare5_aoi22_4x_unused;
2453wire spare5_buf_8x_unused;
2454wire spare5_oai22_4x_unused;
2455wire spare5_inv_16x_unused;
2456wire spare5_nand2_16x_unused;
2457wire spare5_nor3_4x_unused;
2458wire spare5_nand2_8x_unused;
2459wire spare5_buf_16x_unused;
2460wire spare5_nor2_16x_unused;
2461wire spare5_inv_32x_unused;
2462wire si_6;
2463wire so_6;
2464wire spare6_flop_unused;
2465wire spare6_buf_32x_unused;
2466wire spare6_nand3_8x_unused;
2467wire spare6_inv_8x_unused;
2468wire spare6_aoi22_4x_unused;
2469wire spare6_buf_8x_unused;
2470wire spare6_oai22_4x_unused;
2471wire spare6_inv_16x_unused;
2472wire spare6_nand2_16x_unused;
2473wire spare6_nor3_4x_unused;
2474wire spare6_nand2_8x_unused;
2475wire spare6_buf_16x_unused;
2476wire spare6_nor2_16x_unused;
2477wire spare6_inv_32x_unused;
2478wire si_7;
2479wire so_7;
2480wire spare7_flop_unused;
2481wire spare7_buf_32x_unused;
2482wire spare7_nand3_8x_unused;
2483wire spare7_inv_8x_unused;
2484wire spare7_aoi22_4x_unused;
2485wire spare7_buf_8x_unused;
2486wire spare7_oai22_4x_unused;
2487wire spare7_inv_16x_unused;
2488wire spare7_nand2_16x_unused;
2489wire spare7_nor3_4x_unused;
2490wire spare7_nand2_8x_unused;
2491wire spare7_buf_16x_unused;
2492wire spare7_nor2_16x_unused;
2493wire spare7_inv_32x_unused;
2494wire si_8;
2495wire so_8;
2496wire spare8_flop_unused;
2497wire spare8_buf_32x_unused;
2498wire spare8_nand3_8x_unused;
2499wire spare8_inv_8x_unused;
2500wire spare8_aoi22_4x_unused;
2501wire spare8_buf_8x_unused;
2502wire spare8_oai22_4x_unused;
2503wire spare8_inv_16x_unused;
2504wire spare8_nand2_16x_unused;
2505wire spare8_nor3_4x_unused;
2506wire spare8_nand2_8x_unused;
2507wire spare8_buf_16x_unused;
2508wire spare8_nor2_16x_unused;
2509wire spare8_inv_32x_unused;
2510wire si_9;
2511wire so_9;
2512wire spare9_flop_unused;
2513wire spare9_buf_32x_unused;
2514wire spare9_nand3_8x_unused;
2515wire spare9_inv_8x_unused;
2516wire spare9_aoi22_4x_unused;
2517wire spare9_buf_8x_unused;
2518wire spare9_oai22_4x_unused;
2519wire spare9_inv_16x_unused;
2520wire spare9_nand2_16x_unused;
2521wire spare9_nor3_4x_unused;
2522wire spare9_nand2_8x_unused;
2523wire spare9_buf_16x_unused;
2524wire spare9_nor2_16x_unused;
2525wire spare9_inv_32x_unused;
2526wire si_10;
2527wire so_10;
2528wire spare10_flop_unused;
2529wire spare10_buf_32x_unused;
2530wire spare10_nand3_8x_unused;
2531wire spare10_inv_8x_unused;
2532wire spare10_aoi22_4x_unused;
2533wire spare10_buf_8x_unused;
2534wire spare10_oai22_4x_unused;
2535wire spare10_inv_16x_unused;
2536wire spare10_nand2_16x_unused;
2537wire spare10_nor3_4x_unused;
2538wire spare10_nand2_8x_unused;
2539wire spare10_buf_16x_unused;
2540wire spare10_nor2_16x_unused;
2541wire spare10_inv_32x_unused;
2542wire si_11;
2543wire so_11;
2544wire spare11_flop_unused;
2545wire spare11_buf_32x_unused;
2546wire spare11_nand3_8x_unused;
2547wire spare11_inv_8x_unused;
2548wire spare11_aoi22_4x_unused;
2549wire spare11_buf_8x_unused;
2550wire spare11_oai22_4x_unused;
2551wire spare11_inv_16x_unused;
2552wire spare11_nand2_16x_unused;
2553wire spare11_nor3_4x_unused;
2554wire spare11_nand2_8x_unused;
2555wire spare11_buf_16x_unused;
2556wire spare11_nor2_16x_unused;
2557wire spare11_inv_32x_unused;
2558wire si_12;
2559wire so_12;
2560wire spare12_flop_unused;
2561wire spare12_buf_32x_unused;
2562wire spare12_nand3_8x_unused;
2563wire spare12_inv_8x_unused;
2564wire spare12_aoi22_4x_unused;
2565wire spare12_buf_8x_unused;
2566wire spare12_oai22_4x_unused;
2567wire spare12_inv_16x_unused;
2568wire spare12_nand2_16x_unused;
2569wire spare12_nor3_4x_unused;
2570wire spare12_nand2_8x_unused;
2571wire spare12_buf_16x_unused;
2572wire spare12_nor2_16x_unused;
2573wire spare12_inv_32x_unused;
2574wire si_13;
2575wire so_13;
2576wire spare13_flop_unused;
2577wire spare13_buf_32x_unused;
2578wire spare13_nand3_8x_unused;
2579wire spare13_inv_8x_unused;
2580wire spare13_aoi22_4x_unused;
2581wire spare13_buf_8x_unused;
2582wire spare13_oai22_4x_unused;
2583wire spare13_inv_16x_unused;
2584wire spare13_nand2_16x_unused;
2585wire spare13_nor3_4x_unused;
2586wire spare13_nand2_8x_unused;
2587wire spare13_buf_16x_unused;
2588wire spare13_nor2_16x_unused;
2589wire spare13_inv_32x_unused;
2590wire si_14;
2591wire so_14;
2592wire spare14_flop_unused;
2593wire spare14_buf_32x_unused;
2594wire spare14_nand3_8x_unused;
2595wire spare14_inv_8x_unused;
2596wire spare14_aoi22_4x_unused;
2597wire spare14_buf_8x_unused;
2598wire spare14_oai22_4x_unused;
2599wire spare14_inv_16x_unused;
2600wire spare14_nand2_16x_unused;
2601wire spare14_nor3_4x_unused;
2602wire spare14_nand2_8x_unused;
2603wire spare14_buf_16x_unused;
2604wire spare14_nor2_16x_unused;
2605wire spare14_inv_32x_unused;
2606wire si_15;
2607wire so_15;
2608wire spare15_flop_unused;
2609wire spare15_buf_32x_unused;
2610wire spare15_nand3_8x_unused;
2611wire spare15_inv_8x_unused;
2612wire spare15_aoi22_4x_unused;
2613wire spare15_buf_8x_unused;
2614wire spare15_oai22_4x_unused;
2615wire spare15_inv_16x_unused;
2616wire spare15_nand2_16x_unused;
2617wire spare15_nor3_4x_unused;
2618wire spare15_nand2_8x_unused;
2619wire spare15_buf_16x_unused;
2620wire spare15_nor2_16x_unused;
2621wire spare15_inv_32x_unused;
2622wire si_16;
2623wire so_16;
2624wire spare16_flop_unused;
2625wire spare16_buf_32x_unused;
2626wire spare16_nand3_8x_unused;
2627wire spare16_inv_8x_unused;
2628wire spare16_aoi22_4x_unused;
2629wire spare16_buf_8x_unused;
2630wire spare16_oai22_4x_unused;
2631wire spare16_inv_16x_unused;
2632wire spare16_nand2_16x_unused;
2633wire spare16_nor3_4x_unused;
2634wire spare16_nand2_8x_unused;
2635wire spare16_buf_16x_unused;
2636wire spare16_nor2_16x_unused;
2637wire spare16_inv_32x_unused;
2638wire si_17;
2639wire so_17;
2640wire spare17_flop_unused;
2641wire spare17_buf_32x_unused;
2642wire spare17_nand3_8x_unused;
2643wire spare17_inv_8x_unused;
2644wire spare17_aoi22_4x_unused;
2645wire spare17_buf_8x_unused;
2646wire spare17_oai22_4x_unused;
2647wire spare17_inv_16x_unused;
2648wire spare17_nand2_16x_unused;
2649wire spare17_nor3_4x_unused;
2650wire spare17_nand2_8x_unused;
2651wire spare17_buf_16x_unused;
2652wire spare17_nor2_16x_unused;
2653wire spare17_inv_32x_unused;
2654wire si_18;
2655wire so_18;
2656wire spare18_flop_unused;
2657wire spare18_buf_32x_unused;
2658wire spare18_nand3_8x_unused;
2659wire spare18_inv_8x_unused;
2660wire spare18_aoi22_4x_unused;
2661wire spare18_buf_8x_unused;
2662wire spare18_oai22_4x_unused;
2663wire spare18_inv_16x_unused;
2664wire spare18_nand2_16x_unused;
2665wire spare18_nor3_4x_unused;
2666wire spare18_nand2_8x_unused;
2667wire spare18_buf_16x_unused;
2668wire spare18_nor2_16x_unused;
2669wire spare18_inv_32x_unused;
2670wire si_19;
2671wire so_19;
2672wire spare19_flop_unused;
2673wire spare19_buf_32x_unused;
2674wire spare19_nand3_8x_unused;
2675wire spare19_inv_8x_unused;
2676wire spare19_aoi22_4x_unused;
2677wire spare19_buf_8x_unused;
2678wire spare19_oai22_4x_unused;
2679wire spare19_inv_16x_unused;
2680wire spare19_nand2_16x_unused;
2681wire spare19_nor3_4x_unused;
2682wire spare19_nand2_8x_unused;
2683wire spare19_buf_16x_unused;
2684wire spare19_nor2_16x_unused;
2685wire spare19_inv_32x_unused;
2686
2687
2688input l1clk;
2689input scan_in;
2690input siclk;
2691input soclk;
2692output scan_out;
2693
2694cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
2695 .siclk(siclk),
2696 .soclk(soclk),
2697 .si(si_0),
2698 .so(so_0),
2699 .d(1'b0),
2700 .q(spare0_flop_unused));
2701assign si_0 = scan_in;
2702
2703cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
2704 .out(spare0_buf_32x_unused));
2705cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
2706 .in1(1'b1),
2707 .in2(1'b1),
2708 .out(spare0_nand3_8x_unused));
2709cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
2710 .out(spare0_inv_8x_unused));
2711cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
2712 .in01(1'b1),
2713 .in10(1'b1),
2714 .in11(1'b1),
2715 .out(spare0_aoi22_4x_unused));
2716cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
2717 .out(spare0_buf_8x_unused));
2718cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
2719 .in01(1'b1),
2720 .in10(1'b1),
2721 .in11(1'b1),
2722 .out(spare0_oai22_4x_unused));
2723cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
2724 .out(spare0_inv_16x_unused));
2725cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
2726 .in1(1'b1),
2727 .out(spare0_nand2_16x_unused));
2728cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
2729 .in1(1'b0),
2730 .in2(1'b0),
2731 .out(spare0_nor3_4x_unused));
2732cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
2733 .in1(1'b1),
2734 .out(spare0_nand2_8x_unused));
2735cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
2736 .out(spare0_buf_16x_unused));
2737cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
2738 .in1(1'b0),
2739 .out(spare0_nor2_16x_unused));
2740cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
2741 .out(spare0_inv_32x_unused));
2742
2743cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
2744 .siclk(siclk),
2745 .soclk(soclk),
2746 .si(si_1),
2747 .so(so_1),
2748 .d(1'b0),
2749 .q(spare1_flop_unused));
2750assign si_1 = so_0;
2751
2752cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
2753 .out(spare1_buf_32x_unused));
2754cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
2755 .in1(1'b1),
2756 .in2(1'b1),
2757 .out(spare1_nand3_8x_unused));
2758cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
2759 .out(spare1_inv_8x_unused));
2760cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
2761 .in01(1'b1),
2762 .in10(1'b1),
2763 .in11(1'b1),
2764 .out(spare1_aoi22_4x_unused));
2765cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
2766 .out(spare1_buf_8x_unused));
2767cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
2768 .in01(1'b1),
2769 .in10(1'b1),
2770 .in11(1'b1),
2771 .out(spare1_oai22_4x_unused));
2772cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
2773 .out(spare1_inv_16x_unused));
2774cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
2775 .in1(1'b1),
2776 .out(spare1_nand2_16x_unused));
2777cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
2778 .in1(1'b0),
2779 .in2(1'b0),
2780 .out(spare1_nor3_4x_unused));
2781cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
2782 .in1(1'b1),
2783 .out(spare1_nand2_8x_unused));
2784cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
2785 .out(spare1_buf_16x_unused));
2786cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
2787 .in1(1'b0),
2788 .out(spare1_nor2_16x_unused));
2789cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
2790 .out(spare1_inv_32x_unused));
2791
2792cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
2793 .siclk(siclk),
2794 .soclk(soclk),
2795 .si(si_2),
2796 .so(so_2),
2797 .d(1'b0),
2798 .q(spare2_flop_unused));
2799assign si_2 = so_1;
2800
2801cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
2802 .out(spare2_buf_32x_unused));
2803cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
2804 .in1(1'b1),
2805 .in2(1'b1),
2806 .out(spare2_nand3_8x_unused));
2807cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
2808 .out(spare2_inv_8x_unused));
2809cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
2810 .in01(1'b1),
2811 .in10(1'b1),
2812 .in11(1'b1),
2813 .out(spare2_aoi22_4x_unused));
2814cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
2815 .out(spare2_buf_8x_unused));
2816cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
2817 .in01(1'b1),
2818 .in10(1'b1),
2819 .in11(1'b1),
2820 .out(spare2_oai22_4x_unused));
2821cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
2822 .out(spare2_inv_16x_unused));
2823cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
2824 .in1(1'b1),
2825 .out(spare2_nand2_16x_unused));
2826cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
2827 .in1(1'b0),
2828 .in2(1'b0),
2829 .out(spare2_nor3_4x_unused));
2830cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
2831 .in1(1'b1),
2832 .out(spare2_nand2_8x_unused));
2833cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
2834 .out(spare2_buf_16x_unused));
2835cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
2836 .in1(1'b0),
2837 .out(spare2_nor2_16x_unused));
2838cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
2839 .out(spare2_inv_32x_unused));
2840
2841cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
2842 .siclk(siclk),
2843 .soclk(soclk),
2844 .si(si_3),
2845 .so(so_3),
2846 .d(1'b0),
2847 .q(spare3_flop_unused));
2848assign si_3 = so_2;
2849
2850cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
2851 .out(spare3_buf_32x_unused));
2852cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
2853 .in1(1'b1),
2854 .in2(1'b1),
2855 .out(spare3_nand3_8x_unused));
2856cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
2857 .out(spare3_inv_8x_unused));
2858cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
2859 .in01(1'b1),
2860 .in10(1'b1),
2861 .in11(1'b1),
2862 .out(spare3_aoi22_4x_unused));
2863cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
2864 .out(spare3_buf_8x_unused));
2865cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
2866 .in01(1'b1),
2867 .in10(1'b1),
2868 .in11(1'b1),
2869 .out(spare3_oai22_4x_unused));
2870cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
2871 .out(spare3_inv_16x_unused));
2872cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
2873 .in1(1'b1),
2874 .out(spare3_nand2_16x_unused));
2875cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
2876 .in1(1'b0),
2877 .in2(1'b0),
2878 .out(spare3_nor3_4x_unused));
2879cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
2880 .in1(1'b1),
2881 .out(spare3_nand2_8x_unused));
2882cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
2883 .out(spare3_buf_16x_unused));
2884cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
2885 .in1(1'b0),
2886 .out(spare3_nor2_16x_unused));
2887cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
2888 .out(spare3_inv_32x_unused));
2889
2890cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
2891 .siclk(siclk),
2892 .soclk(soclk),
2893 .si(si_4),
2894 .so(so_4),
2895 .d(1'b0),
2896 .q(spare4_flop_unused));
2897assign si_4 = so_3;
2898
2899cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
2900 .out(spare4_buf_32x_unused));
2901cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
2902 .in1(1'b1),
2903 .in2(1'b1),
2904 .out(spare4_nand3_8x_unused));
2905cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
2906 .out(spare4_inv_8x_unused));
2907cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
2908 .in01(1'b1),
2909 .in10(1'b1),
2910 .in11(1'b1),
2911 .out(spare4_aoi22_4x_unused));
2912cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
2913 .out(spare4_buf_8x_unused));
2914cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
2915 .in01(1'b1),
2916 .in10(1'b1),
2917 .in11(1'b1),
2918 .out(spare4_oai22_4x_unused));
2919cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
2920 .out(spare4_inv_16x_unused));
2921cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
2922 .in1(1'b1),
2923 .out(spare4_nand2_16x_unused));
2924cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
2925 .in1(1'b0),
2926 .in2(1'b0),
2927 .out(spare4_nor3_4x_unused));
2928cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
2929 .in1(1'b1),
2930 .out(spare4_nand2_8x_unused));
2931cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
2932 .out(spare4_buf_16x_unused));
2933cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
2934 .in1(1'b0),
2935 .out(spare4_nor2_16x_unused));
2936cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
2937 .out(spare4_inv_32x_unused));
2938
2939cl_sc1_msff_8x spare5_flop (.l1clk(l1clk),
2940 .siclk(siclk),
2941 .soclk(soclk),
2942 .si(si_5),
2943 .so(so_5),
2944 .d(1'b0),
2945 .q(spare5_flop_unused));
2946assign si_5 = so_4;
2947
2948cl_u1_buf_32x spare5_buf_32x (.in(1'b1),
2949 .out(spare5_buf_32x_unused));
2950cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1),
2951 .in1(1'b1),
2952 .in2(1'b1),
2953 .out(spare5_nand3_8x_unused));
2954cl_u1_inv_8x spare5_inv_8x (.in(1'b1),
2955 .out(spare5_inv_8x_unused));
2956cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1),
2957 .in01(1'b1),
2958 .in10(1'b1),
2959 .in11(1'b1),
2960 .out(spare5_aoi22_4x_unused));
2961cl_u1_buf_8x spare5_buf_8x (.in(1'b1),
2962 .out(spare5_buf_8x_unused));
2963cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1),
2964 .in01(1'b1),
2965 .in10(1'b1),
2966 .in11(1'b1),
2967 .out(spare5_oai22_4x_unused));
2968cl_u1_inv_16x spare5_inv_16x (.in(1'b1),
2969 .out(spare5_inv_16x_unused));
2970cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1),
2971 .in1(1'b1),
2972 .out(spare5_nand2_16x_unused));
2973cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0),
2974 .in1(1'b0),
2975 .in2(1'b0),
2976 .out(spare5_nor3_4x_unused));
2977cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1),
2978 .in1(1'b1),
2979 .out(spare5_nand2_8x_unused));
2980cl_u1_buf_16x spare5_buf_16x (.in(1'b1),
2981 .out(spare5_buf_16x_unused));
2982cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0),
2983 .in1(1'b0),
2984 .out(spare5_nor2_16x_unused));
2985cl_u1_inv_32x spare5_inv_32x (.in(1'b1),
2986 .out(spare5_inv_32x_unused));
2987
2988cl_sc1_msff_8x spare6_flop (.l1clk(l1clk),
2989 .siclk(siclk),
2990 .soclk(soclk),
2991 .si(si_6),
2992 .so(so_6),
2993 .d(1'b0),
2994 .q(spare6_flop_unused));
2995assign si_6 = so_5;
2996
2997cl_u1_buf_32x spare6_buf_32x (.in(1'b1),
2998 .out(spare6_buf_32x_unused));
2999cl_u1_nand3_8x spare6_nand3_8x (.in0(1'b1),
3000 .in1(1'b1),
3001 .in2(1'b1),
3002 .out(spare6_nand3_8x_unused));
3003cl_u1_inv_8x spare6_inv_8x (.in(1'b1),
3004 .out(spare6_inv_8x_unused));
3005cl_u1_aoi22_4x spare6_aoi22_4x (.in00(1'b1),
3006 .in01(1'b1),
3007 .in10(1'b1),
3008 .in11(1'b1),
3009 .out(spare6_aoi22_4x_unused));
3010cl_u1_buf_8x spare6_buf_8x (.in(1'b1),
3011 .out(spare6_buf_8x_unused));
3012cl_u1_oai22_4x spare6_oai22_4x (.in00(1'b1),
3013 .in01(1'b1),
3014 .in10(1'b1),
3015 .in11(1'b1),
3016 .out(spare6_oai22_4x_unused));
3017cl_u1_inv_16x spare6_inv_16x (.in(1'b1),
3018 .out(spare6_inv_16x_unused));
3019cl_u1_nand2_16x spare6_nand2_16x (.in0(1'b1),
3020 .in1(1'b1),
3021 .out(spare6_nand2_16x_unused));
3022cl_u1_nor3_4x spare6_nor3_4x (.in0(1'b0),
3023 .in1(1'b0),
3024 .in2(1'b0),
3025 .out(spare6_nor3_4x_unused));
3026cl_u1_nand2_8x spare6_nand2_8x (.in0(1'b1),
3027 .in1(1'b1),
3028 .out(spare6_nand2_8x_unused));
3029cl_u1_buf_16x spare6_buf_16x (.in(1'b1),
3030 .out(spare6_buf_16x_unused));
3031cl_u1_nor2_16x spare6_nor2_16x (.in0(1'b0),
3032 .in1(1'b0),
3033 .out(spare6_nor2_16x_unused));
3034cl_u1_inv_32x spare6_inv_32x (.in(1'b1),
3035 .out(spare6_inv_32x_unused));
3036
3037cl_sc1_msff_8x spare7_flop (.l1clk(l1clk),
3038 .siclk(siclk),
3039 .soclk(soclk),
3040 .si(si_7),
3041 .so(so_7),
3042 .d(1'b0),
3043 .q(spare7_flop_unused));
3044assign si_7 = so_6;
3045
3046cl_u1_buf_32x spare7_buf_32x (.in(1'b1),
3047 .out(spare7_buf_32x_unused));
3048cl_u1_nand3_8x spare7_nand3_8x (.in0(1'b1),
3049 .in1(1'b1),
3050 .in2(1'b1),
3051 .out(spare7_nand3_8x_unused));
3052cl_u1_inv_8x spare7_inv_8x (.in(1'b1),
3053 .out(spare7_inv_8x_unused));
3054cl_u1_aoi22_4x spare7_aoi22_4x (.in00(1'b1),
3055 .in01(1'b1),
3056 .in10(1'b1),
3057 .in11(1'b1),
3058 .out(spare7_aoi22_4x_unused));
3059cl_u1_buf_8x spare7_buf_8x (.in(1'b1),
3060 .out(spare7_buf_8x_unused));
3061cl_u1_oai22_4x spare7_oai22_4x (.in00(1'b1),
3062 .in01(1'b1),
3063 .in10(1'b1),
3064 .in11(1'b1),
3065 .out(spare7_oai22_4x_unused));
3066cl_u1_inv_16x spare7_inv_16x (.in(1'b1),
3067 .out(spare7_inv_16x_unused));
3068cl_u1_nand2_16x spare7_nand2_16x (.in0(1'b1),
3069 .in1(1'b1),
3070 .out(spare7_nand2_16x_unused));
3071cl_u1_nor3_4x spare7_nor3_4x (.in0(1'b0),
3072 .in1(1'b0),
3073 .in2(1'b0),
3074 .out(spare7_nor3_4x_unused));
3075cl_u1_nand2_8x spare7_nand2_8x (.in0(1'b1),
3076 .in1(1'b1),
3077 .out(spare7_nand2_8x_unused));
3078cl_u1_buf_16x spare7_buf_16x (.in(1'b1),
3079 .out(spare7_buf_16x_unused));
3080cl_u1_nor2_16x spare7_nor2_16x (.in0(1'b0),
3081 .in1(1'b0),
3082 .out(spare7_nor2_16x_unused));
3083cl_u1_inv_32x spare7_inv_32x (.in(1'b1),
3084 .out(spare7_inv_32x_unused));
3085
3086cl_sc1_msff_8x spare8_flop (.l1clk(l1clk),
3087 .siclk(siclk),
3088 .soclk(soclk),
3089 .si(si_8),
3090 .so(so_8),
3091 .d(1'b0),
3092 .q(spare8_flop_unused));
3093assign si_8 = so_7;
3094
3095cl_u1_buf_32x spare8_buf_32x (.in(1'b1),
3096 .out(spare8_buf_32x_unused));
3097cl_u1_nand3_8x spare8_nand3_8x (.in0(1'b1),
3098 .in1(1'b1),
3099 .in2(1'b1),
3100 .out(spare8_nand3_8x_unused));
3101cl_u1_inv_8x spare8_inv_8x (.in(1'b1),
3102 .out(spare8_inv_8x_unused));
3103cl_u1_aoi22_4x spare8_aoi22_4x (.in00(1'b1),
3104 .in01(1'b1),
3105 .in10(1'b1),
3106 .in11(1'b1),
3107 .out(spare8_aoi22_4x_unused));
3108cl_u1_buf_8x spare8_buf_8x (.in(1'b1),
3109 .out(spare8_buf_8x_unused));
3110cl_u1_oai22_4x spare8_oai22_4x (.in00(1'b1),
3111 .in01(1'b1),
3112 .in10(1'b1),
3113 .in11(1'b1),
3114 .out(spare8_oai22_4x_unused));
3115cl_u1_inv_16x spare8_inv_16x (.in(1'b1),
3116 .out(spare8_inv_16x_unused));
3117cl_u1_nand2_16x spare8_nand2_16x (.in0(1'b1),
3118 .in1(1'b1),
3119 .out(spare8_nand2_16x_unused));
3120cl_u1_nor3_4x spare8_nor3_4x (.in0(1'b0),
3121 .in1(1'b0),
3122 .in2(1'b0),
3123 .out(spare8_nor3_4x_unused));
3124cl_u1_nand2_8x spare8_nand2_8x (.in0(1'b1),
3125 .in1(1'b1),
3126 .out(spare8_nand2_8x_unused));
3127cl_u1_buf_16x spare8_buf_16x (.in(1'b1),
3128 .out(spare8_buf_16x_unused));
3129cl_u1_nor2_16x spare8_nor2_16x (.in0(1'b0),
3130 .in1(1'b0),
3131 .out(spare8_nor2_16x_unused));
3132cl_u1_inv_32x spare8_inv_32x (.in(1'b1),
3133 .out(spare8_inv_32x_unused));
3134
3135cl_sc1_msff_8x spare9_flop (.l1clk(l1clk),
3136 .siclk(siclk),
3137 .soclk(soclk),
3138 .si(si_9),
3139 .so(so_9),
3140 .d(1'b0),
3141 .q(spare9_flop_unused));
3142assign si_9 = so_8;
3143
3144cl_u1_buf_32x spare9_buf_32x (.in(1'b1),
3145 .out(spare9_buf_32x_unused));
3146cl_u1_nand3_8x spare9_nand3_8x (.in0(1'b1),
3147 .in1(1'b1),
3148 .in2(1'b1),
3149 .out(spare9_nand3_8x_unused));
3150cl_u1_inv_8x spare9_inv_8x (.in(1'b1),
3151 .out(spare9_inv_8x_unused));
3152cl_u1_aoi22_4x spare9_aoi22_4x (.in00(1'b1),
3153 .in01(1'b1),
3154 .in10(1'b1),
3155 .in11(1'b1),
3156 .out(spare9_aoi22_4x_unused));
3157cl_u1_buf_8x spare9_buf_8x (.in(1'b1),
3158 .out(spare9_buf_8x_unused));
3159cl_u1_oai22_4x spare9_oai22_4x (.in00(1'b1),
3160 .in01(1'b1),
3161 .in10(1'b1),
3162 .in11(1'b1),
3163 .out(spare9_oai22_4x_unused));
3164cl_u1_inv_16x spare9_inv_16x (.in(1'b1),
3165 .out(spare9_inv_16x_unused));
3166cl_u1_nand2_16x spare9_nand2_16x (.in0(1'b1),
3167 .in1(1'b1),
3168 .out(spare9_nand2_16x_unused));
3169cl_u1_nor3_4x spare9_nor3_4x (.in0(1'b0),
3170 .in1(1'b0),
3171 .in2(1'b0),
3172 .out(spare9_nor3_4x_unused));
3173cl_u1_nand2_8x spare9_nand2_8x (.in0(1'b1),
3174 .in1(1'b1),
3175 .out(spare9_nand2_8x_unused));
3176cl_u1_buf_16x spare9_buf_16x (.in(1'b1),
3177 .out(spare9_buf_16x_unused));
3178cl_u1_nor2_16x spare9_nor2_16x (.in0(1'b0),
3179 .in1(1'b0),
3180 .out(spare9_nor2_16x_unused));
3181cl_u1_inv_32x spare9_inv_32x (.in(1'b1),
3182 .out(spare9_inv_32x_unused));
3183
3184cl_sc1_msff_8x spare10_flop (.l1clk(l1clk),
3185 .siclk(siclk),
3186 .soclk(soclk),
3187 .si(si_10),
3188 .so(so_10),
3189 .d(1'b0),
3190 .q(spare10_flop_unused));
3191assign si_10 = so_9;
3192
3193cl_u1_buf_32x spare10_buf_32x (.in(1'b1),
3194 .out(spare10_buf_32x_unused));
3195cl_u1_nand3_8x spare10_nand3_8x (.in0(1'b1),
3196 .in1(1'b1),
3197 .in2(1'b1),
3198 .out(spare10_nand3_8x_unused));
3199cl_u1_inv_8x spare10_inv_8x (.in(1'b1),
3200 .out(spare10_inv_8x_unused));
3201cl_u1_aoi22_4x spare10_aoi22_4x (.in00(1'b1),
3202 .in01(1'b1),
3203 .in10(1'b1),
3204 .in11(1'b1),
3205 .out(spare10_aoi22_4x_unused));
3206cl_u1_buf_8x spare10_buf_8x (.in(1'b1),
3207 .out(spare10_buf_8x_unused));
3208cl_u1_oai22_4x spare10_oai22_4x (.in00(1'b1),
3209 .in01(1'b1),
3210 .in10(1'b1),
3211 .in11(1'b1),
3212 .out(spare10_oai22_4x_unused));
3213cl_u1_inv_16x spare10_inv_16x (.in(1'b1),
3214 .out(spare10_inv_16x_unused));
3215cl_u1_nand2_16x spare10_nand2_16x (.in0(1'b1),
3216 .in1(1'b1),
3217 .out(spare10_nand2_16x_unused));
3218cl_u1_nor3_4x spare10_nor3_4x (.in0(1'b0),
3219 .in1(1'b0),
3220 .in2(1'b0),
3221 .out(spare10_nor3_4x_unused));
3222cl_u1_nand2_8x spare10_nand2_8x (.in0(1'b1),
3223 .in1(1'b1),
3224 .out(spare10_nand2_8x_unused));
3225cl_u1_buf_16x spare10_buf_16x (.in(1'b1),
3226 .out(spare10_buf_16x_unused));
3227cl_u1_nor2_16x spare10_nor2_16x (.in0(1'b0),
3228 .in1(1'b0),
3229 .out(spare10_nor2_16x_unused));
3230cl_u1_inv_32x spare10_inv_32x (.in(1'b1),
3231 .out(spare10_inv_32x_unused));
3232
3233cl_sc1_msff_8x spare11_flop (.l1clk(l1clk),
3234 .siclk(siclk),
3235 .soclk(soclk),
3236 .si(si_11),
3237 .so(so_11),
3238 .d(1'b0),
3239 .q(spare11_flop_unused));
3240assign si_11 = so_10;
3241
3242cl_u1_buf_32x spare11_buf_32x (.in(1'b1),
3243 .out(spare11_buf_32x_unused));
3244cl_u1_nand3_8x spare11_nand3_8x (.in0(1'b1),
3245 .in1(1'b1),
3246 .in2(1'b1),
3247 .out(spare11_nand3_8x_unused));
3248cl_u1_inv_8x spare11_inv_8x (.in(1'b1),
3249 .out(spare11_inv_8x_unused));
3250cl_u1_aoi22_4x spare11_aoi22_4x (.in00(1'b1),
3251 .in01(1'b1),
3252 .in10(1'b1),
3253 .in11(1'b1),
3254 .out(spare11_aoi22_4x_unused));
3255cl_u1_buf_8x spare11_buf_8x (.in(1'b1),
3256 .out(spare11_buf_8x_unused));
3257cl_u1_oai22_4x spare11_oai22_4x (.in00(1'b1),
3258 .in01(1'b1),
3259 .in10(1'b1),
3260 .in11(1'b1),
3261 .out(spare11_oai22_4x_unused));
3262cl_u1_inv_16x spare11_inv_16x (.in(1'b1),
3263 .out(spare11_inv_16x_unused));
3264cl_u1_nand2_16x spare11_nand2_16x (.in0(1'b1),
3265 .in1(1'b1),
3266 .out(spare11_nand2_16x_unused));
3267cl_u1_nor3_4x spare11_nor3_4x (.in0(1'b0),
3268 .in1(1'b0),
3269 .in2(1'b0),
3270 .out(spare11_nor3_4x_unused));
3271cl_u1_nand2_8x spare11_nand2_8x (.in0(1'b1),
3272 .in1(1'b1),
3273 .out(spare11_nand2_8x_unused));
3274cl_u1_buf_16x spare11_buf_16x (.in(1'b1),
3275 .out(spare11_buf_16x_unused));
3276cl_u1_nor2_16x spare11_nor2_16x (.in0(1'b0),
3277 .in1(1'b0),
3278 .out(spare11_nor2_16x_unused));
3279cl_u1_inv_32x spare11_inv_32x (.in(1'b1),
3280 .out(spare11_inv_32x_unused));
3281
3282cl_sc1_msff_8x spare12_flop (.l1clk(l1clk),
3283 .siclk(siclk),
3284 .soclk(soclk),
3285 .si(si_12),
3286 .so(so_12),
3287 .d(1'b0),
3288 .q(spare12_flop_unused));
3289assign si_12 = so_11;
3290
3291cl_u1_buf_32x spare12_buf_32x (.in(1'b1),
3292 .out(spare12_buf_32x_unused));
3293cl_u1_nand3_8x spare12_nand3_8x (.in0(1'b1),
3294 .in1(1'b1),
3295 .in2(1'b1),
3296 .out(spare12_nand3_8x_unused));
3297cl_u1_inv_8x spare12_inv_8x (.in(1'b1),
3298 .out(spare12_inv_8x_unused));
3299cl_u1_aoi22_4x spare12_aoi22_4x (.in00(1'b1),
3300 .in01(1'b1),
3301 .in10(1'b1),
3302 .in11(1'b1),
3303 .out(spare12_aoi22_4x_unused));
3304cl_u1_buf_8x spare12_buf_8x (.in(1'b1),
3305 .out(spare12_buf_8x_unused));
3306cl_u1_oai22_4x spare12_oai22_4x (.in00(1'b1),
3307 .in01(1'b1),
3308 .in10(1'b1),
3309 .in11(1'b1),
3310 .out(spare12_oai22_4x_unused));
3311cl_u1_inv_16x spare12_inv_16x (.in(1'b1),
3312 .out(spare12_inv_16x_unused));
3313cl_u1_nand2_16x spare12_nand2_16x (.in0(1'b1),
3314 .in1(1'b1),
3315 .out(spare12_nand2_16x_unused));
3316cl_u1_nor3_4x spare12_nor3_4x (.in0(1'b0),
3317 .in1(1'b0),
3318 .in2(1'b0),
3319 .out(spare12_nor3_4x_unused));
3320cl_u1_nand2_8x spare12_nand2_8x (.in0(1'b1),
3321 .in1(1'b1),
3322 .out(spare12_nand2_8x_unused));
3323cl_u1_buf_16x spare12_buf_16x (.in(1'b1),
3324 .out(spare12_buf_16x_unused));
3325cl_u1_nor2_16x spare12_nor2_16x (.in0(1'b0),
3326 .in1(1'b0),
3327 .out(spare12_nor2_16x_unused));
3328cl_u1_inv_32x spare12_inv_32x (.in(1'b1),
3329 .out(spare12_inv_32x_unused));
3330
3331cl_sc1_msff_8x spare13_flop (.l1clk(l1clk),
3332 .siclk(siclk),
3333 .soclk(soclk),
3334 .si(si_13),
3335 .so(so_13),
3336 .d(1'b0),
3337 .q(spare13_flop_unused));
3338assign si_13 = so_12;
3339
3340cl_u1_buf_32x spare13_buf_32x (.in(1'b1),
3341 .out(spare13_buf_32x_unused));
3342cl_u1_nand3_8x spare13_nand3_8x (.in0(1'b1),
3343 .in1(1'b1),
3344 .in2(1'b1),
3345 .out(spare13_nand3_8x_unused));
3346cl_u1_inv_8x spare13_inv_8x (.in(1'b1),
3347 .out(spare13_inv_8x_unused));
3348cl_u1_aoi22_4x spare13_aoi22_4x (.in00(1'b1),
3349 .in01(1'b1),
3350 .in10(1'b1),
3351 .in11(1'b1),
3352 .out(spare13_aoi22_4x_unused));
3353cl_u1_buf_8x spare13_buf_8x (.in(1'b1),
3354 .out(spare13_buf_8x_unused));
3355cl_u1_oai22_4x spare13_oai22_4x (.in00(1'b1),
3356 .in01(1'b1),
3357 .in10(1'b1),
3358 .in11(1'b1),
3359 .out(spare13_oai22_4x_unused));
3360cl_u1_inv_16x spare13_inv_16x (.in(1'b1),
3361 .out(spare13_inv_16x_unused));
3362cl_u1_nand2_16x spare13_nand2_16x (.in0(1'b1),
3363 .in1(1'b1),
3364 .out(spare13_nand2_16x_unused));
3365cl_u1_nor3_4x spare13_nor3_4x (.in0(1'b0),
3366 .in1(1'b0),
3367 .in2(1'b0),
3368 .out(spare13_nor3_4x_unused));
3369cl_u1_nand2_8x spare13_nand2_8x (.in0(1'b1),
3370 .in1(1'b1),
3371 .out(spare13_nand2_8x_unused));
3372cl_u1_buf_16x spare13_buf_16x (.in(1'b1),
3373 .out(spare13_buf_16x_unused));
3374cl_u1_nor2_16x spare13_nor2_16x (.in0(1'b0),
3375 .in1(1'b0),
3376 .out(spare13_nor2_16x_unused));
3377cl_u1_inv_32x spare13_inv_32x (.in(1'b1),
3378 .out(spare13_inv_32x_unused));
3379
3380cl_sc1_msff_8x spare14_flop (.l1clk(l1clk),
3381 .siclk(siclk),
3382 .soclk(soclk),
3383 .si(si_14),
3384 .so(so_14),
3385 .d(1'b0),
3386 .q(spare14_flop_unused));
3387assign si_14 = so_13;
3388
3389cl_u1_buf_32x spare14_buf_32x (.in(1'b1),
3390 .out(spare14_buf_32x_unused));
3391cl_u1_nand3_8x spare14_nand3_8x (.in0(1'b1),
3392 .in1(1'b1),
3393 .in2(1'b1),
3394 .out(spare14_nand3_8x_unused));
3395cl_u1_inv_8x spare14_inv_8x (.in(1'b1),
3396 .out(spare14_inv_8x_unused));
3397cl_u1_aoi22_4x spare14_aoi22_4x (.in00(1'b1),
3398 .in01(1'b1),
3399 .in10(1'b1),
3400 .in11(1'b1),
3401 .out(spare14_aoi22_4x_unused));
3402cl_u1_buf_8x spare14_buf_8x (.in(1'b1),
3403 .out(spare14_buf_8x_unused));
3404cl_u1_oai22_4x spare14_oai22_4x (.in00(1'b1),
3405 .in01(1'b1),
3406 .in10(1'b1),
3407 .in11(1'b1),
3408 .out(spare14_oai22_4x_unused));
3409cl_u1_inv_16x spare14_inv_16x (.in(1'b1),
3410 .out(spare14_inv_16x_unused));
3411cl_u1_nand2_16x spare14_nand2_16x (.in0(1'b1),
3412 .in1(1'b1),
3413 .out(spare14_nand2_16x_unused));
3414cl_u1_nor3_4x spare14_nor3_4x (.in0(1'b0),
3415 .in1(1'b0),
3416 .in2(1'b0),
3417 .out(spare14_nor3_4x_unused));
3418cl_u1_nand2_8x spare14_nand2_8x (.in0(1'b1),
3419 .in1(1'b1),
3420 .out(spare14_nand2_8x_unused));
3421cl_u1_buf_16x spare14_buf_16x (.in(1'b1),
3422 .out(spare14_buf_16x_unused));
3423cl_u1_nor2_16x spare14_nor2_16x (.in0(1'b0),
3424 .in1(1'b0),
3425 .out(spare14_nor2_16x_unused));
3426cl_u1_inv_32x spare14_inv_32x (.in(1'b1),
3427 .out(spare14_inv_32x_unused));
3428
3429cl_sc1_msff_8x spare15_flop (.l1clk(l1clk),
3430 .siclk(siclk),
3431 .soclk(soclk),
3432 .si(si_15),
3433 .so(so_15),
3434 .d(1'b0),
3435 .q(spare15_flop_unused));
3436assign si_15 = so_14;
3437
3438cl_u1_buf_32x spare15_buf_32x (.in(1'b1),
3439 .out(spare15_buf_32x_unused));
3440cl_u1_nand3_8x spare15_nand3_8x (.in0(1'b1),
3441 .in1(1'b1),
3442 .in2(1'b1),
3443 .out(spare15_nand3_8x_unused));
3444cl_u1_inv_8x spare15_inv_8x (.in(1'b1),
3445 .out(spare15_inv_8x_unused));
3446cl_u1_aoi22_4x spare15_aoi22_4x (.in00(1'b1),
3447 .in01(1'b1),
3448 .in10(1'b1),
3449 .in11(1'b1),
3450 .out(spare15_aoi22_4x_unused));
3451cl_u1_buf_8x spare15_buf_8x (.in(1'b1),
3452 .out(spare15_buf_8x_unused));
3453cl_u1_oai22_4x spare15_oai22_4x (.in00(1'b1),
3454 .in01(1'b1),
3455 .in10(1'b1),
3456 .in11(1'b1),
3457 .out(spare15_oai22_4x_unused));
3458cl_u1_inv_16x spare15_inv_16x (.in(1'b1),
3459 .out(spare15_inv_16x_unused));
3460cl_u1_nand2_16x spare15_nand2_16x (.in0(1'b1),
3461 .in1(1'b1),
3462 .out(spare15_nand2_16x_unused));
3463cl_u1_nor3_4x spare15_nor3_4x (.in0(1'b0),
3464 .in1(1'b0),
3465 .in2(1'b0),
3466 .out(spare15_nor3_4x_unused));
3467cl_u1_nand2_8x spare15_nand2_8x (.in0(1'b1),
3468 .in1(1'b1),
3469 .out(spare15_nand2_8x_unused));
3470cl_u1_buf_16x spare15_buf_16x (.in(1'b1),
3471 .out(spare15_buf_16x_unused));
3472cl_u1_nor2_16x spare15_nor2_16x (.in0(1'b0),
3473 .in1(1'b0),
3474 .out(spare15_nor2_16x_unused));
3475cl_u1_inv_32x spare15_inv_32x (.in(1'b1),
3476 .out(spare15_inv_32x_unused));
3477
3478cl_sc1_msff_8x spare16_flop (.l1clk(l1clk),
3479 .siclk(siclk),
3480 .soclk(soclk),
3481 .si(si_16),
3482 .so(so_16),
3483 .d(1'b0),
3484 .q(spare16_flop_unused));
3485assign si_16 = so_15;
3486
3487cl_u1_buf_32x spare16_buf_32x (.in(1'b1),
3488 .out(spare16_buf_32x_unused));
3489cl_u1_nand3_8x spare16_nand3_8x (.in0(1'b1),
3490 .in1(1'b1),
3491 .in2(1'b1),
3492 .out(spare16_nand3_8x_unused));
3493cl_u1_inv_8x spare16_inv_8x (.in(1'b1),
3494 .out(spare16_inv_8x_unused));
3495cl_u1_aoi22_4x spare16_aoi22_4x (.in00(1'b1),
3496 .in01(1'b1),
3497 .in10(1'b1),
3498 .in11(1'b1),
3499 .out(spare16_aoi22_4x_unused));
3500cl_u1_buf_8x spare16_buf_8x (.in(1'b1),
3501 .out(spare16_buf_8x_unused));
3502cl_u1_oai22_4x spare16_oai22_4x (.in00(1'b1),
3503 .in01(1'b1),
3504 .in10(1'b1),
3505 .in11(1'b1),
3506 .out(spare16_oai22_4x_unused));
3507cl_u1_inv_16x spare16_inv_16x (.in(1'b1),
3508 .out(spare16_inv_16x_unused));
3509cl_u1_nand2_16x spare16_nand2_16x (.in0(1'b1),
3510 .in1(1'b1),
3511 .out(spare16_nand2_16x_unused));
3512cl_u1_nor3_4x spare16_nor3_4x (.in0(1'b0),
3513 .in1(1'b0),
3514 .in2(1'b0),
3515 .out(spare16_nor3_4x_unused));
3516cl_u1_nand2_8x spare16_nand2_8x (.in0(1'b1),
3517 .in1(1'b1),
3518 .out(spare16_nand2_8x_unused));
3519cl_u1_buf_16x spare16_buf_16x (.in(1'b1),
3520 .out(spare16_buf_16x_unused));
3521cl_u1_nor2_16x spare16_nor2_16x (.in0(1'b0),
3522 .in1(1'b0),
3523 .out(spare16_nor2_16x_unused));
3524cl_u1_inv_32x spare16_inv_32x (.in(1'b1),
3525 .out(spare16_inv_32x_unused));
3526
3527cl_sc1_msff_8x spare17_flop (.l1clk(l1clk),
3528 .siclk(siclk),
3529 .soclk(soclk),
3530 .si(si_17),
3531 .so(so_17),
3532 .d(1'b0),
3533 .q(spare17_flop_unused));
3534assign si_17 = so_16;
3535
3536cl_u1_buf_32x spare17_buf_32x (.in(1'b1),
3537 .out(spare17_buf_32x_unused));
3538cl_u1_nand3_8x spare17_nand3_8x (.in0(1'b1),
3539 .in1(1'b1),
3540 .in2(1'b1),
3541 .out(spare17_nand3_8x_unused));
3542cl_u1_inv_8x spare17_inv_8x (.in(1'b1),
3543 .out(spare17_inv_8x_unused));
3544cl_u1_aoi22_4x spare17_aoi22_4x (.in00(1'b1),
3545 .in01(1'b1),
3546 .in10(1'b1),
3547 .in11(1'b1),
3548 .out(spare17_aoi22_4x_unused));
3549cl_u1_buf_8x spare17_buf_8x (.in(1'b1),
3550 .out(spare17_buf_8x_unused));
3551cl_u1_oai22_4x spare17_oai22_4x (.in00(1'b1),
3552 .in01(1'b1),
3553 .in10(1'b1),
3554 .in11(1'b1),
3555 .out(spare17_oai22_4x_unused));
3556cl_u1_inv_16x spare17_inv_16x (.in(1'b1),
3557 .out(spare17_inv_16x_unused));
3558cl_u1_nand2_16x spare17_nand2_16x (.in0(1'b1),
3559 .in1(1'b1),
3560 .out(spare17_nand2_16x_unused));
3561cl_u1_nor3_4x spare17_nor3_4x (.in0(1'b0),
3562 .in1(1'b0),
3563 .in2(1'b0),
3564 .out(spare17_nor3_4x_unused));
3565cl_u1_nand2_8x spare17_nand2_8x (.in0(1'b1),
3566 .in1(1'b1),
3567 .out(spare17_nand2_8x_unused));
3568cl_u1_buf_16x spare17_buf_16x (.in(1'b1),
3569 .out(spare17_buf_16x_unused));
3570cl_u1_nor2_16x spare17_nor2_16x (.in0(1'b0),
3571 .in1(1'b0),
3572 .out(spare17_nor2_16x_unused));
3573cl_u1_inv_32x spare17_inv_32x (.in(1'b1),
3574 .out(spare17_inv_32x_unused));
3575
3576cl_sc1_msff_8x spare18_flop (.l1clk(l1clk),
3577 .siclk(siclk),
3578 .soclk(soclk),
3579 .si(si_18),
3580 .so(so_18),
3581 .d(1'b0),
3582 .q(spare18_flop_unused));
3583assign si_18 = so_17;
3584
3585cl_u1_buf_32x spare18_buf_32x (.in(1'b1),
3586 .out(spare18_buf_32x_unused));
3587cl_u1_nand3_8x spare18_nand3_8x (.in0(1'b1),
3588 .in1(1'b1),
3589 .in2(1'b1),
3590 .out(spare18_nand3_8x_unused));
3591cl_u1_inv_8x spare18_inv_8x (.in(1'b1),
3592 .out(spare18_inv_8x_unused));
3593cl_u1_aoi22_4x spare18_aoi22_4x (.in00(1'b1),
3594 .in01(1'b1),
3595 .in10(1'b1),
3596 .in11(1'b1),
3597 .out(spare18_aoi22_4x_unused));
3598cl_u1_buf_8x spare18_buf_8x (.in(1'b1),
3599 .out(spare18_buf_8x_unused));
3600cl_u1_oai22_4x spare18_oai22_4x (.in00(1'b1),
3601 .in01(1'b1),
3602 .in10(1'b1),
3603 .in11(1'b1),
3604 .out(spare18_oai22_4x_unused));
3605cl_u1_inv_16x spare18_inv_16x (.in(1'b1),
3606 .out(spare18_inv_16x_unused));
3607cl_u1_nand2_16x spare18_nand2_16x (.in0(1'b1),
3608 .in1(1'b1),
3609 .out(spare18_nand2_16x_unused));
3610cl_u1_nor3_4x spare18_nor3_4x (.in0(1'b0),
3611 .in1(1'b0),
3612 .in2(1'b0),
3613 .out(spare18_nor3_4x_unused));
3614cl_u1_nand2_8x spare18_nand2_8x (.in0(1'b1),
3615 .in1(1'b1),
3616 .out(spare18_nand2_8x_unused));
3617cl_u1_buf_16x spare18_buf_16x (.in(1'b1),
3618 .out(spare18_buf_16x_unused));
3619cl_u1_nor2_16x spare18_nor2_16x (.in0(1'b0),
3620 .in1(1'b0),
3621 .out(spare18_nor2_16x_unused));
3622cl_u1_inv_32x spare18_inv_32x (.in(1'b1),
3623 .out(spare18_inv_32x_unused));
3624
3625cl_sc1_msff_8x spare19_flop (.l1clk(l1clk),
3626 .siclk(siclk),
3627 .soclk(soclk),
3628 .si(si_19),
3629 .so(so_19),
3630 .d(1'b0),
3631 .q(spare19_flop_unused));
3632assign si_19 = so_18;
3633
3634cl_u1_buf_32x spare19_buf_32x (.in(1'b1),
3635 .out(spare19_buf_32x_unused));
3636cl_u1_nand3_8x spare19_nand3_8x (.in0(1'b1),
3637 .in1(1'b1),
3638 .in2(1'b1),
3639 .out(spare19_nand3_8x_unused));
3640cl_u1_inv_8x spare19_inv_8x (.in(1'b1),
3641 .out(spare19_inv_8x_unused));
3642cl_u1_aoi22_4x spare19_aoi22_4x (.in00(1'b1),
3643 .in01(1'b1),
3644 .in10(1'b1),
3645 .in11(1'b1),
3646 .out(spare19_aoi22_4x_unused));
3647cl_u1_buf_8x spare19_buf_8x (.in(1'b1),
3648 .out(spare19_buf_8x_unused));
3649cl_u1_oai22_4x spare19_oai22_4x (.in00(1'b1),
3650 .in01(1'b1),
3651 .in10(1'b1),
3652 .in11(1'b1),
3653 .out(spare19_oai22_4x_unused));
3654cl_u1_inv_16x spare19_inv_16x (.in(1'b1),
3655 .out(spare19_inv_16x_unused));
3656cl_u1_nand2_16x spare19_nand2_16x (.in0(1'b1),
3657 .in1(1'b1),
3658 .out(spare19_nand2_16x_unused));
3659cl_u1_nor3_4x spare19_nor3_4x (.in0(1'b0),
3660 .in1(1'b0),
3661 .in2(1'b0),
3662 .out(spare19_nor3_4x_unused));
3663cl_u1_nand2_8x spare19_nand2_8x (.in0(1'b1),
3664 .in1(1'b1),
3665 .out(spare19_nand2_8x_unused));
3666cl_u1_buf_16x spare19_buf_16x (.in(1'b1),
3667 .out(spare19_buf_16x_unused));
3668cl_u1_nor2_16x spare19_nor2_16x (.in0(1'b0),
3669 .in1(1'b0),
3670 .out(spare19_nor2_16x_unused));
3671cl_u1_inv_32x spare19_inv_32x (.in(1'b1),
3672 .out(spare19_inv_32x_unused));
3673assign scan_out = so_19;
3674
3675
3676
3677endmodule
3678
3679
3680
3681
3682
3683
3684// any PARAMS parms go into naming of macro
3685
3686module sii_ipcs_ctlmsff_ctl_macro__width_7 (
3687 din,
3688 l1clk,
3689 scan_in,
3690 siclk,
3691 soclk,
3692 dout,
3693 scan_out);
3694wire [6:0] fdin;
3695wire [5:0] so;
3696
3697 input [6:0] din;
3698 input l1clk;
3699 input scan_in;
3700
3701
3702 input siclk;
3703 input soclk;
3704
3705 output [6:0] dout;
3706 output scan_out;
3707assign fdin[6:0] = din[6:0];
3708
3709
3710
3711
3712
3713
3714dff #(7) d0_0 (
3715.l1clk(l1clk),
3716.siclk(siclk),
3717.soclk(soclk),
3718.d(fdin[6:0]),
3719.si({scan_in,so[5:0]}),
3720.so({so[5:0],scan_out}),
3721.q(dout[6:0])
3722);
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735endmodule
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749// any PARAMS parms go into naming of macro
3750
3751module sii_ipcs_ctlmsff_ctl_macro__width_5 (
3752 din,
3753 l1clk,
3754 scan_in,
3755 siclk,
3756 soclk,
3757 dout,
3758 scan_out);
3759wire [4:0] fdin;
3760wire [3:0] so;
3761
3762 input [4:0] din;
3763 input l1clk;
3764 input scan_in;
3765
3766
3767 input siclk;
3768 input soclk;
3769
3770 output [4:0] dout;
3771 output scan_out;
3772assign fdin[4:0] = din[4:0];
3773
3774
3775
3776
3777
3778
3779dff #(5) d0_0 (
3780.l1clk(l1clk),
3781.siclk(siclk),
3782.soclk(soclk),
3783.d(fdin[4:0]),
3784.si({scan_in,so[3:0]}),
3785.so({so[3:0],scan_out}),
3786.q(dout[4:0])
3787);
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800endmodule
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814// any PARAMS parms go into naming of macro
3815
3816module sii_ipcs_ctlmsff_ctl_macro__width_4 (
3817 din,
3818 l1clk,
3819 scan_in,
3820 siclk,
3821 soclk,
3822 dout,
3823 scan_out);
3824wire [3:0] fdin;
3825wire [2:0] so;
3826
3827 input [3:0] din;
3828 input l1clk;
3829 input scan_in;
3830
3831
3832 input siclk;
3833 input soclk;
3834
3835 output [3:0] dout;
3836 output scan_out;
3837assign fdin[3:0] = din[3:0];
3838
3839
3840
3841
3842
3843
3844dff #(4) d0_0 (
3845.l1clk(l1clk),
3846.siclk(siclk),
3847.soclk(soclk),
3848.d(fdin[3:0]),
3849.si({scan_in,so[2:0]}),
3850.so({so[2:0],scan_out}),
3851.q(dout[3:0])
3852);
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865endmodule
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879// any PARAMS parms go into naming of macro
3880
3881module sii_ipcs_ctlmsff_ctl_macro__width_6 (
3882 din,
3883 l1clk,
3884 scan_in,
3885 siclk,
3886 soclk,
3887 dout,
3888 scan_out);
3889wire [5:0] fdin;
3890wire [4:0] so;
3891
3892 input [5:0] din;
3893 input l1clk;
3894 input scan_in;
3895
3896
3897 input siclk;
3898 input soclk;
3899
3900 output [5:0] dout;
3901 output scan_out;
3902assign fdin[5:0] = din[5:0];
3903
3904
3905
3906
3907
3908
3909dff #(6) d0_0 (
3910.l1clk(l1clk),
3911.siclk(siclk),
3912.soclk(soclk),
3913.d(fdin[5:0]),
3914.si({scan_in,so[4:0]}),
3915.so({so[4:0],scan_out}),
3916.q(dout[5:0])
3917);
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930endmodule
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944// any PARAMS parms go into naming of macro
3945
3946module sii_ipcs_ctlmsff_ctl_macro__width_128 (
3947 din,
3948 l1clk,
3949 scan_in,
3950 siclk,
3951 soclk,
3952 dout,
3953 scan_out);
3954wire [127:0] fdin;
3955wire [126:0] so;
3956
3957 input [127:0] din;
3958 input l1clk;
3959 input scan_in;
3960
3961
3962 input siclk;
3963 input soclk;
3964
3965 output [127:0] dout;
3966 output scan_out;
3967assign fdin[127:0] = din[127:0];
3968
3969
3970
3971
3972
3973
3974dff #(128) d0_0 (
3975.l1clk(l1clk),
3976.siclk(siclk),
3977.soclk(soclk),
3978.d(fdin[127:0]),
3979.si({scan_in,so[126:0]}),
3980.so({so[126:0],scan_out}),
3981.q(dout[127:0])
3982);
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995endmodule
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009// any PARAMS parms go into naming of macro
4010
4011module sii_ipcs_ctlmsff_ctl_macro__width_1 (
4012 din,
4013 l1clk,
4014 scan_in,
4015 siclk,
4016 soclk,
4017 dout,
4018 scan_out);
4019wire [0:0] fdin;
4020
4021 input [0:0] din;
4022 input l1clk;
4023 input scan_in;
4024
4025
4026 input siclk;
4027 input soclk;
4028
4029 output [0:0] dout;
4030 output scan_out;
4031assign fdin[0:0] = din[0:0];
4032
4033
4034
4035
4036
4037
4038dff #(1) d0_0 (
4039.l1clk(l1clk),
4040.siclk(siclk),
4041.soclk(soclk),
4042.d(fdin[0:0]),
4043.si(scan_in),
4044.so(scan_out),
4045.q(dout[0:0])
4046);
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059endmodule
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073// any PARAMS parms go into naming of macro
4074
4075module sii_ipcs_ctlmsff_ctl_macro__width_41 (
4076 din,
4077 l1clk,
4078 scan_in,
4079 siclk,
4080 soclk,
4081 dout,
4082 scan_out);
4083wire [40:0] fdin;
4084wire [39:0] so;
4085
4086 input [40:0] din;
4087 input l1clk;
4088 input scan_in;
4089
4090
4091 input siclk;
4092 input soclk;
4093
4094 output [40:0] dout;
4095 output scan_out;
4096assign fdin[40:0] = din[40:0];
4097
4098
4099
4100
4101
4102
4103dff #(41) d0_0 (
4104.l1clk(l1clk),
4105.siclk(siclk),
4106.soclk(soclk),
4107.d(fdin[40:0]),
4108.si({scan_in,so[39:0]}),
4109.so({so[39:0],scan_out}),
4110.q(dout[40:0])
4111);
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124endmodule
4125
4126
4127
4128
4129
4130
4131
4132