Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / ccx / rtl / pcx_bfd_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: pcx_bfd_dp.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35`ifndef FPGA
36module pcx_bfd_dp (
37 pcx_sctag_data_px2,
38 pcx_scache_data_px_,
39 tcu_scan_en,
40 l2clk,
41 scan_in,
42 tcu_pce_ov,
43 ccx_aclk,
44 ccx_bclk,
45 scan_out,
46 ccx_aclk_out,
47 ccx_bclk_out,
48 tcu_pce_ov_out,
49 tcu_scan_en_out);
50wire pce_ov;
51wire stop;
52wire siclk;
53wire soclk;
54wire se;
55wire [129:0] in;
56wire [129:0] in_swz;
57wire i_dff_data_0_scanin;
58wire i_dff_data_0_scanout;
59wire [9:0] in_unused_x2;
60wire [129:0] in_x2;
61wire i_dff_data_1_scanin;
62wire i_dff_data_1_scanout;
63wire i_dff_data_2_scanin;
64wire i_dff_data_2_scanout;
65wire i_dff_data_3_scanin;
66wire i_dff_data_3_scanout;
67wire [129:0] in_px2;
68wire [9:0] in_unused;
69wire [129:0] out_swz;
70wire scan_out_prebuf;
71
72
73output [129:0] pcx_sctag_data_px2;
74
75input [129:0] pcx_scache_data_px_;
76
77// globals
78input tcu_scan_en ;
79input l2clk;
80input scan_in;
81input tcu_pce_ov; // scan signals
82input ccx_aclk;
83input ccx_bclk;
84output scan_out;
85
86// buffer the high fanout nets
87output ccx_aclk_out;
88output ccx_bclk_out;
89output tcu_pce_ov_out;
90output tcu_scan_en_out;
91
92// scan renames
93assign pce_ov = tcu_pce_ov_out;
94assign stop = 1'b0;
95assign siclk = ccx_aclk_out;
96assign soclk = ccx_bclk_out;
97assign se = tcu_scan_en_out ;
98// end scan
99
100pcx_bfd_dp_buff_macro__dbuff_8x__stack_none__width_4 buf_hfn (
101 .din ({ccx_aclk,ccx_bclk, tcu_pce_ov, tcu_scan_en}),
102 .dout ({ccx_aclk_out,ccx_bclk_out,tcu_pce_ov_out,tcu_scan_en_out})
103);
104
105assign in[129:0] = pcx_scache_data_px_[129:0];
106
107
108assign in_swz[64:0] = {
109 in[128],in[126],in[124],in[122],in[120],
110 in[118],in[116],in[114],in[112],in[110],in[108],in[106],in[104],in[102],in[100],
111 in[98],in[96],in[94],in[92],in[90],in[88],in[86],in[84],in[82],in[80],
112 in[78],in[76],in[74],in[72],in[70],in[68],in[66],in[64],in[62],in[60],
113 in[58],in[56],in[54],in[52],in[50],in[48],in[46],in[44],in[42],in[40],
114 in[38],in[36],in[34],in[32],in[30],in[28],in[26],in[24],in[22],in[20],
115 in[18],in[16],in[14],in[12],in[10],in[8],in[6],in[4],in[2],in[0]
116 };
117
118
119
120assign in_swz[129:65] = {
121 in[129],in[127],in[125],in[123],in[121],
122 in[119],in[117],in[115],in[113],in[111],in[109],in[107],in[105],in[103],in[101],
123 in[99],in[97],in[95],in[93],in[91],in[89],in[87],in[85],in[83],in[81],
124 in[79],in[77],in[75],in[73],in[71],in[69],in[67],in[65],in[63],in[61],
125 in[59],in[57],in[55],in[53],in[51],in[49],in[47],in[45],in[43],in[41],
126 in[39],in[37],in[35],in[33],in[31],in[29],in[27],in[25],in[23],in[21],
127 in[19],in[17],in[15],in[13],in[11],in[9],in[7],in[5],in[3],in[1]
128 };
129
130
131
132//inv_macro i_inv_data_2 (width=40, stack=50c) (
133// .din (pcx_scache_data_px_[129:90]),
134// .dout (pcx_scache_data_px[129:90]),
135//);
136//
137//inv_macro i_inv_data_1 (width=50, stack=50c) (
138// .din (pcx_scache_data_px_[89:40]),
139// .dout (pcx_scache_data_px[89:40]),
140//);
141//
142//inv_macro i_inv_data_0 (width=40, stack=50c) (
143// .din (pcx_scache_data_px_[39:0]),
144// .dout (pcx_scache_data_px[39:0]),
145//);
146//
147//msff_macro i_dff_data_2 (width=40, stack=50c) (
148// .scan_in(i_dff_sctag_l_scanin),
149// .scan_out(i_dff_sctag_l_scanout),
150// .clk (l2clk),
151// .din (pcx_scache_data_px[129:90]),
152// .dout (pcx_sctag_data_x2[129:90]),
153// .en (1'b1),
154//);
155//
156//msff_macro i_dff_data_1 (width=50, stack=50c) (
157// .scan_in(i_dff_sctag_c_scanin),
158// .scan_out(i_dff_sctag_c_scanout),
159// .clk (l2clk),
160// .din (pcx_scache_data_px[89:40]),
161// .dout (pcx_sctag_data_x2[89:40]),
162// .en (1'b1),
163//);
164//
165//msff_macro i_dff_data_0 (width=40, stack=50c) (
166// .scan_in(i_dff_sctag_r_scanin),
167// .scan_out(i_dff_sctag_r_scanout),
168// .clk (l2clk),
169// .din (pcx_scache_data_px[39:0]),
170// .dout (pcx_sctag_data_x2[39:0]),
171// .en (1'b1),
172//);
173//
174//buff_macro i_buf_data_2 (width=40, stack=50c) (
175// .din (pcx_sctag_data_x2[129:90]),
176// .dout (pcx_sctag_data_px2[129:90]),
177//);
178//
179//buff_macro i_buf_data_1 (width=50, stack=50c) (
180// .din (pcx_sctag_data_x2[89:40]),
181// .dout (pcx_sctag_data_px2[89:40]),
182//);
183//
184//buff_macro i_buf_data_0 (width=40, stack=50c) (
185// .din (pcx_sctag_data_x2[39:0]),
186// .dout (pcx_sctag_data_px2[39:0]),
187//);
188
189//inv_macro i_inv_data_0 (width=64, stack=64c) (
190// .din ({2'b00, in_swz[59:30],in_swz[29:0], 2'b00}),
191// .dout ({in_unused_px[3:2],in_px[59:30], in_px[29:0], in_unused_px[1:0]}),
192//);
193
194//inv_macro i_inv_data_1 (width=64, stack=64c) (
195// .din ({2'b00, in_swz[124:95],in_swz[94:65], 2'b00}),
196// .dout ({in_unused_px[7:6],in_px[124:95], in_px[94:65], in_unused_px[5:4]}),
197//);
198
199//inv_macro i_inv_data_2 (width=6, stack=6l) (
200// .din ({1'b0,in_swz[64:60]}),
201// .dout ({in_unused_px[8],in_px[64:60]}),
202//);
203
204//inv_macro i_inv_data_3 (width=6, stack=6l) (
205// .din ({1'b0,in_swz[129:125]}),
206// .dout ({in_unused_px[9],in_px[129:125]}),
207//);
208
209pcx_bfd_dp_msffiz_macro__dmsffi_32x__stack_64c__width_64 i_dff_data_0 (
210 .scan_in(i_dff_data_0_scanin),
211 .scan_out(i_dff_data_0_scanout),
212 .clk (l2clk),
213 .din ({2'b00, in_swz[59:30], in_swz[29:0], 2'b00 }),
214 .dout_l ({in_unused_x2[3:2],in_x2[59:30], in_x2[29:0], in_unused_x2[1:0]}),
215 .en (1'b1),
216 .se(se),
217 .siclk(siclk),
218 .soclk(soclk),
219 .pce_ov(pce_ov),
220 .stop(stop)
221);
222
223pcx_bfd_dp_msffiz_macro__dmsffi_32x__scanreverse_1__stack_64c__width_64 i_dff_data_1 (
224 .scan_in(i_dff_data_1_scanin),
225 .scan_out(i_dff_data_1_scanout),
226 .clk (l2clk),
227 .din ({2'b00, in_swz[124:95], in_swz[94:65], 2'b00}),
228 .dout_l ({in_unused_x2[7:6],in_x2[124:95], in_x2[94:65], in_unused_x2[5:4]}),
229 .en (1'b1),
230 .se(se),
231 .siclk(siclk),
232 .soclk(soclk),
233 .pce_ov(pce_ov),
234 .stop(stop)
235);
236
237pcx_bfd_dp_msffiz_macro__dmsffi_32x__stack_6l__width_6 i_dff_data_2 (
238 .scan_in(i_dff_data_2_scanin),
239 .scan_out(i_dff_data_2_scanout),
240 .clk (l2clk),
241 .din ({1'b0, in_swz[64:60]}),
242 .dout_l ({in_unused_x2[8],in_x2[64:60]}),
243 .en (1'b1),
244 .se(se),
245 .siclk(siclk),
246 .soclk(soclk),
247 .pce_ov(pce_ov),
248 .stop(stop)
249);
250
251pcx_bfd_dp_msffiz_macro__dmsffi_32x__stack_6l__width_6 i_dff_data_3 (
252 .scan_in(i_dff_data_3_scanin),
253 .scan_out(i_dff_data_3_scanout),
254 .clk (l2clk),
255 .din ({1'b0, in_swz[129:125]}),
256 .dout_l ({in_unused_x2[9],in_x2[129:125]}),
257 .en (1'b1),
258 .se(se),
259 .siclk(siclk),
260 .soclk(soclk),
261 .pce_ov(pce_ov),
262 .stop(stop)
263);
264
265//buff_macro i_buf_data_0 (dbuff=32x, width=64, stack=64c) (
266// .din ({in_unused_x2[3:2],in_x2[59:30], in_x2[29:0], in_unused_x2[1:0]}),
267// .dout ({in_unused[3:2], in_px2[59:30],in_px2[29:0], in_unused[1:0]}),
268//);
269//
270//buff_macro i_buf_data_1 (dbuff=32x, width=64, stack=64c) (
271// .din ({in_unused_x2[7:6],in_x2[124:95], in_x2[94:65], in_unused_x2[5:4]}),
272// .dout ({in_unused[7:6], in_px2[124:95],in_px2[94:65], in_unused[5:4]}),
273//);
274//
275//buff_macro i_buf_data_2 (dbuff=32x, width=6, stack=none) (
276// .din ({in_unused_x2[8],in_x2[64:60]}),
277// .dout ({in_unused[8], in_px2[64:60]}),
278//);
279//
280//buff_macro i_buf_data_3 (dbuff=32x, width=6, stack=none) (
281// .din ({in_unused_x2[9],in_x2[129:125]}),
282// .dout ({in_unused[9],in_px2[129:125]}),
283//);
284
285assign in_px2[129:0] = in_x2[129:0];
286assign in_unused[9:0] = in_unused_x2[9:0];
287
288assign {
289 out_swz[128],out_swz[126],out_swz[124],out_swz[122],out_swz[120],
290 out_swz[118],out_swz[116],out_swz[114],out_swz[112],out_swz[110],out_swz[108],out_swz[106],out_swz[104],out_swz[102],out_swz[100],
291 out_swz[98],out_swz[96],out_swz[94],out_swz[92],out_swz[90],out_swz[88],out_swz[86],out_swz[84],out_swz[82],out_swz[80],
292 out_swz[78],out_swz[76],out_swz[74],out_swz[72],out_swz[70],out_swz[68],out_swz[66],out_swz[64],out_swz[62],out_swz[60],
293 out_swz[58],out_swz[56],out_swz[54],out_swz[52],out_swz[50],out_swz[48],out_swz[46],out_swz[44],out_swz[42],out_swz[40],
294 out_swz[38],out_swz[36],out_swz[34],out_swz[32],out_swz[30],out_swz[28],out_swz[26],out_swz[24],out_swz[22],out_swz[20],
295 out_swz[18],out_swz[16],out_swz[14],out_swz[12],out_swz[10],out_swz[8],out_swz[6],out_swz[4],out_swz[2],out_swz[0]
296 } = in_px2[64:0];
297
298
299
300
301assign {
302 out_swz[129],out_swz[127],out_swz[125],out_swz[123],out_swz[121],
303 out_swz[119],out_swz[117],out_swz[115],out_swz[113],out_swz[111],out_swz[109],out_swz[107],out_swz[105],out_swz[103],out_swz[101],
304 out_swz[99],out_swz[97],out_swz[95],out_swz[93],out_swz[91],out_swz[89],out_swz[87],out_swz[85],out_swz[83],out_swz[81],
305 out_swz[79],out_swz[77],out_swz[75],out_swz[73],out_swz[71],out_swz[69],out_swz[67],out_swz[65],out_swz[63],out_swz[61],
306 out_swz[59],out_swz[57],out_swz[55],out_swz[53],out_swz[51],out_swz[49],out_swz[47],out_swz[45],out_swz[43],out_swz[41],
307 out_swz[39],out_swz[37],out_swz[35],out_swz[33],out_swz[31],out_swz[29],out_swz[27],out_swz[25],out_swz[23],out_swz[21],
308 out_swz[19],out_swz[17],out_swz[15],out_swz[13],out_swz[11],out_swz[9],out_swz[7],out_swz[5],out_swz[3],out_swz[1]
309 } = in_px2[129:65];
310
311
312assign pcx_sctag_data_px2[129:0] = out_swz[129:0];
313
314pcx_bfd_dp_buff_macro__dbuff_8x__stack_none__width_1 buf_scanout (
315 .din (scan_out_prebuf),
316 .dout (scan_out)
317);
318
319// fixscan start:
320assign i_dff_data_0_scanin = scan_in ;
321assign i_dff_data_1_scanin = i_dff_data_0_scanout ;
322assign i_dff_data_2_scanin = i_dff_data_1_scanout ;
323assign i_dff_data_3_scanin = i_dff_data_2_scanout ;
324assign scan_out_prebuf = i_dff_data_3_scanout ;
325// fixscan end:
326endmodule // pcx_bfs_dp
327
328
329//
330// buff macro
331//
332//
333
334
335
336
337
338module pcx_bfd_dp_buff_macro__dbuff_8x__stack_none__width_4 (
339 din,
340 dout);
341 input [3:0] din;
342 output [3:0] dout;
343
344
345
346
347
348
349buff #(4) d0_0 (
350.in(din[3:0]),
351.out(dout[3:0])
352);
353
354
355
356
357
358
359
360
361endmodule
362
363
364
365
366
367
368
369
370
371// any PARAMS parms go into naming of macro
372
373module pcx_bfd_dp_msffiz_macro__dmsffi_32x__stack_64c__width_64 (
374 din,
375 clk,
376 en,
377 se,
378 scan_in,
379 siclk,
380 soclk,
381 pce_ov,
382 stop,
383 dout_l,
384 scan_out);
385wire l1clk;
386wire siclk_out;
387wire soclk_out;
388wire [62:0] so;
389
390 input [63:0] din;
391
392
393 input clk;
394 input en;
395 input se;
396 input scan_in;
397 input siclk;
398 input soclk;
399 input pce_ov;
400 input stop;
401
402
403
404 output [63:0] dout_l;
405
406
407 output scan_out;
408
409
410
411
412cl_dp1_l1hdr_8x c0_0 (
413.l2clk(clk),
414.pce(en),
415.aclk(siclk),
416.bclk(soclk),
417.l1clk(l1clk),
418 .se(se),
419 .pce_ov(pce_ov),
420 .stop(stop),
421 .siclk_out(siclk_out),
422 .soclk_out(soclk_out)
423);
424msffiz_dp #(64) d0_0 (
425.l1clk(l1clk),
426.siclk(siclk_out),
427.soclk(soclk_out),
428.d(din[63:0]),
429.si({scan_in,so[62:0]}),
430.so({so[62:0],scan_out}),
431.q_l(dout_l[63:0])
432);
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452endmodule
453
454
455
456
457
458
459
460
461
462
463
464
465
466// any PARAMS parms go into naming of macro
467
468module pcx_bfd_dp_msffiz_macro__dmsffi_32x__scanreverse_1__stack_64c__width_64 (
469 din,
470 clk,
471 en,
472 se,
473 scan_in,
474 siclk,
475 soclk,
476 pce_ov,
477 stop,
478 dout_l,
479 scan_out);
480wire l1clk;
481wire siclk_out;
482wire soclk_out;
483
484 input [63:0] din;
485
486
487 input clk;
488 input en;
489 input se;
490 input scan_in;
491 input siclk;
492 input soclk;
493 input pce_ov;
494 input stop;
495
496
497
498 output [63:0] dout_l;
499
500
501 output scan_out;
502
503
504
505
506 wire [0:62] so;
507
508cl_dp1_l1hdr_8x c0_0 (
509.l2clk(clk),
510.pce(en),
511.aclk(siclk),
512.bclk(soclk),
513.l1clk(l1clk),
514 .se(se),
515 .pce_ov(pce_ov),
516 .stop(stop),
517 .siclk_out(siclk_out),
518 .soclk_out(soclk_out)
519);
520msffiz_dp #(64) d0_0 (
521.l1clk(l1clk),
522.siclk(siclk_out),
523.soclk(soclk_out),
524.d(din[63:0]),
525.si({so[0:62],scan_in}),
526.so({scan_out,so[0:62]}),
527.q_l(dout_l[63:0])
528);
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548endmodule
549
550
551
552
553
554
555
556
557
558
559
560
561
562// any PARAMS parms go into naming of macro
563
564module pcx_bfd_dp_msffiz_macro__dmsffi_32x__stack_6l__width_6 (
565 din,
566 clk,
567 en,
568 se,
569 scan_in,
570 siclk,
571 soclk,
572 pce_ov,
573 stop,
574 dout_l,
575 scan_out);
576wire l1clk;
577wire siclk_out;
578wire soclk_out;
579wire [4:0] so;
580
581 input [5:0] din;
582
583
584 input clk;
585 input en;
586 input se;
587 input scan_in;
588 input siclk;
589 input soclk;
590 input pce_ov;
591 input stop;
592
593
594
595 output [5:0] dout_l;
596
597
598 output scan_out;
599
600
601
602
603cl_dp1_l1hdr_8x c0_0 (
604.l2clk(clk),
605.pce(en),
606.aclk(siclk),
607.bclk(soclk),
608.l1clk(l1clk),
609 .se(se),
610 .pce_ov(pce_ov),
611 .stop(stop),
612 .siclk_out(siclk_out),
613 .soclk_out(soclk_out)
614);
615msffiz_dp #(6) d0_0 (
616.l1clk(l1clk),
617.siclk(siclk_out),
618.soclk(soclk_out),
619.d(din[5:0]),
620.si({scan_in,so[4:0]}),
621.so({so[4:0],scan_out}),
622.q_l(dout_l[5:0])
623);
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643endmodule
644
645
646
647
648
649
650
651
652
653//
654// buff macro
655//
656//
657
658
659
660
661
662module pcx_bfd_dp_buff_macro__dbuff_8x__stack_none__width_1 (
663 din,
664 dout);
665 input [0:0] din;
666 output [0:0] dout;
667
668
669
670
671
672
673buff #(1) d0_0 (
674.in(din[0:0]),
675.out(dout[0:0])
676);
677
678
679
680
681
682
683
684
685endmodule
686
687`endif // `ifndef FPGA
688
689`ifdef FPGA
690
691`timescale 1 ns / 100 ps
692module pcx_bfd_dp(pcx_sctag_data_px2, pcx_scache_data_px_, tcu_scan_en, l2clk,
693 scan_in, tcu_pce_ov, ccx_aclk, ccx_bclk, scan_out, ccx_aclk_out,
694 ccx_bclk_out, tcu_pce_ov_out, tcu_scan_en_out);
695
696 output [129:0] pcx_sctag_data_px2;
697 input [129:0] pcx_scache_data_px_;
698 input tcu_scan_en;
699 input l2clk;
700 input scan_in;
701 input tcu_pce_ov;
702 input ccx_aclk;
703 input ccx_bclk;
704 output scan_out;
705 output ccx_aclk_out;
706 output ccx_bclk_out;
707 output tcu_pce_ov_out;
708 output tcu_scan_en_out;
709
710 wire pce_ov;
711 wire stop;
712 wire siclk;
713 wire soclk;
714 wire se;
715 wire [129:0] in;
716 wire [129:0] in_swz;
717 wire i_dff_data_0_scanin;
718 wire i_dff_data_0_scanout;
719 wire [9:0] in_unused_x2;
720 wire [129:0] in_x2;
721 wire i_dff_data_1_scanin;
722 wire i_dff_data_1_scanout;
723 wire i_dff_data_2_scanin;
724 wire i_dff_data_2_scanout;
725 wire i_dff_data_3_scanin;
726 wire i_dff_data_3_scanout;
727 wire [129:0] in_px2;
728 wire [9:0] in_unused;
729 wire [129:0] out_swz;
730 wire scan_out_prebuf;
731
732 assign pce_ov = tcu_pce_ov_out;
733 assign stop = 1'b0;
734 assign siclk = ccx_aclk_out;
735 assign soclk = ccx_bclk_out;
736 assign se = tcu_scan_en_out;
737 assign in[129:0] = pcx_scache_data_px_[129:0];
738 assign in_swz[64:0] = {in[128], in[126], in[124], in[122], in[120],
739 in[118], in[116], in[114], in[112], in[110], in[108], in[106],
740 in[104], in[102], in[100], in[98], in[96], in[94], in[92],
741 in[90], in[88], in[86], in[84], in[82], in[80], in[78], in[76],
742 in[74], in[72], in[70], in[68], in[66], in[64], in[62], in[60],
743 in[58], in[56], in[54], in[52], in[50], in[48], in[46], in[44],
744 in[42], in[40], in[38], in[36], in[34], in[32], in[30], in[28],
745 in[26], in[24], in[22], in[20], in[18], in[16], in[14], in[12],
746 in[10], in[8], in[6], in[4], in[2], in[0]};
747 assign in_swz[129:65] = {in[129], in[127], in[125], in[123], in[121],
748 in[119], in[117], in[115], in[113], in[111], in[109], in[107],
749 in[105], in[103], in[101], in[99], in[97], in[95], in[93],
750 in[91], in[89], in[87], in[85], in[83], in[81], in[79], in[77],
751 in[75], in[73], in[71], in[69], in[67], in[65], in[63], in[61],
752 in[59], in[57], in[55], in[53], in[51], in[49], in[47], in[45],
753 in[43], in[41], in[39], in[37], in[35], in[33], in[31], in[29],
754 in[27], in[25], in[23], in[21], in[19], in[17], in[15], in[13],
755 in[11], in[9], in[7], in[5], in[3], in[1]};
756 assign in_px2[129:0] = in_x2[129:0];
757 assign in_unused[9:0] = in_unused_x2[9:0];
758 assign {out_swz[128], out_swz[126], out_swz[124], out_swz[122],
759 out_swz[120], out_swz[118], out_swz[116], out_swz[114],
760 out_swz[112], out_swz[110], out_swz[108], out_swz[106],
761 out_swz[104], out_swz[102], out_swz[100], out_swz[98],
762 out_swz[96], out_swz[94], out_swz[92], out_swz[90], out_swz[88],
763 out_swz[86], out_swz[84], out_swz[82], out_swz[80], out_swz[78],
764 out_swz[76], out_swz[74], out_swz[72], out_swz[70], out_swz[68],
765 out_swz[66], out_swz[64], out_swz[62], out_swz[60], out_swz[58],
766 out_swz[56], out_swz[54], out_swz[52], out_swz[50], out_swz[48],
767 out_swz[46], out_swz[44], out_swz[42], out_swz[40], out_swz[38],
768 out_swz[36], out_swz[34], out_swz[32], out_swz[30], out_swz[28],
769 out_swz[26], out_swz[24], out_swz[22], out_swz[20], out_swz[18],
770 out_swz[16], out_swz[14], out_swz[12], out_swz[10], out_swz[8],
771 out_swz[6], out_swz[4], out_swz[2], out_swz[0]} = in_px2[64:0];
772 assign {out_swz[129], out_swz[127], out_swz[125], out_swz[123],
773 out_swz[121], out_swz[119], out_swz[117], out_swz[115],
774 out_swz[113], out_swz[111], out_swz[109], out_swz[107],
775 out_swz[105], out_swz[103], out_swz[101], out_swz[99],
776 out_swz[97], out_swz[95], out_swz[93], out_swz[91], out_swz[89],
777 out_swz[87], out_swz[85], out_swz[83], out_swz[81], out_swz[79],
778 out_swz[77], out_swz[75], out_swz[73], out_swz[71], out_swz[69],
779 out_swz[67], out_swz[65], out_swz[63], out_swz[61], out_swz[59],
780 out_swz[57], out_swz[55], out_swz[53], out_swz[51], out_swz[49],
781 out_swz[47], out_swz[45], out_swz[43], out_swz[41], out_swz[39],
782 out_swz[37], out_swz[35], out_swz[33], out_swz[31], out_swz[29],
783 out_swz[27], out_swz[25], out_swz[23], out_swz[21], out_swz[19],
784 out_swz[17], out_swz[15], out_swz[13], out_swz[11], out_swz[9],
785 out_swz[7], out_swz[5], out_swz[3], out_swz[1]} = in_px2[129:65]
786 ;
787 assign pcx_sctag_data_px2[129:0] = out_swz[129:0];
788 assign i_dff_data_0_scanin = scan_in;
789 assign i_dff_data_1_scanin = i_dff_data_0_scanout;
790 assign i_dff_data_2_scanin = i_dff_data_1_scanout;
791 assign i_dff_data_3_scanin = i_dff_data_2_scanout;
792 assign scan_out_prebuf = i_dff_data_3_scanout;
793
794 buff_macro__dbuff_8x__stack_none__width_4 buf_hfn(
795 .din ({ccx_aclk, ccx_bclk,
796 tcu_pce_ov, tcu_scan_en}),
797 .dout ({ccx_aclk_out, ccx_bclk_out,
798 tcu_pce_ov_out, tcu_scan_en_out}));
799 msffiz_macro__dmsffi_32x__stack_64c__width_64 i_dff_data_0(
800 .scan_in (i_dff_data_0_scanin),
801 .scan_out (i_dff_data_0_scanout),
802 .clk (l2clk),
803 .din ({2'b0, in_swz[59:30],
804 in_swz[29:0], 2'b0}),
805 .dout_l ({in_unused_x2[3:2],
806 in_x2[59:30], in_x2[29:0], in_unused_x2[1:0]}),
807 .en (1'b1),
808 .se (se),
809 .siclk (siclk),
810 .soclk (soclk),
811 .pce_ov (pce_ov),
812 .stop (stop));
813 msffiz_macro__dmsffi_32x__scanreverse_1__stack_64c__width_64
814 i_dff_data_1(
815 .scan_in (i_dff_data_1_scanin),
816 .scan_out (i_dff_data_1_scanout),
817 .clk (l2clk),
818 .din ({2'b0, in_swz[124:95],
819 in_swz[94:65], 2'b0}),
820 .dout_l ({in_unused_x2[7:6],
821 in_x2[124:95], in_x2[94:65], in_unused_x2[5:4]}),
822 .en (1'b1),
823 .se (se),
824 .siclk (siclk),
825 .soclk (soclk),
826 .pce_ov (pce_ov),
827 .stop (stop));
828 msffiz_macro__dmsffi_32x__stack_6l__width_6 i_dff_data_2(
829 .scan_in (i_dff_data_2_scanin),
830 .scan_out (i_dff_data_2_scanout),
831 .clk (l2clk),
832 .din ({1'b0, in_swz[64:60]}),
833 .dout_l ({in_unused_x2[8],
834 in_x2[64:60]}),
835 .en (1'b1),
836 .se (se),
837 .siclk (siclk),
838 .soclk (soclk),
839 .pce_ov (pce_ov),
840 .stop (stop));
841 msffiz_macro__dmsffi_32x__stack_6l__width_6 i_dff_data_3(
842 .scan_in (i_dff_data_3_scanin),
843 .scan_out (i_dff_data_3_scanout),
844 .clk (l2clk),
845 .din ({1'b0, in_swz[129:125]}),
846 .dout_l ({in_unused_x2[9],
847 in_x2[129:125]}),
848 .en (1'b1),
849 .se (se),
850 .siclk (siclk),
851 .soclk (soclk),
852 .pce_ov (pce_ov),
853 .stop (stop));
854 buff_macro__dbuff_8x__stack_none__width_1 buf_scanout(
855 .din (scan_out_prebuf),
856 .dout (scan_out));
857endmodule
858
859module msffiz_macro__dmsffi_32x__stack_6l__width_6(din, clk, en, se, scan_in,
860 siclk, soclk, pce_ov, stop, dout_l, scan_out);
861
862 input [5:0] din;
863 input clk;
864 input en;
865 input se;
866 input scan_in;
867 input siclk;
868 input soclk;
869 input pce_ov;
870 input stop;
871 output [5:0] dout_l;
872 output scan_out;
873
874 wire l1clk;
875 wire siclk_out;
876 wire soclk_out;
877 wire [4:0] so;
878
879 cl_dp1_l1hdr_8x c0_0(
880 .l2clk (clk),
881 .pce (en),
882 .aclk (siclk),
883 .bclk (soclk),
884 .l1clk (l1clk),
885 .se (se),
886 .pce_ov (pce_ov),
887 .stop (stop),
888 .siclk_out (siclk_out),
889 .soclk_out (soclk_out));
890 msffiz_dp #(6) d0_0(
891 .l1clk (l1clk),
892 .siclk (siclk_out),
893 .soclk (soclk_out),
894 .d (din[5:0]),
895 .si ({scan_in, so[4:0]}),
896 .so ({so[4:0], scan_out}),
897 .q_l (dout_l[5:0]));
898endmodule
899
900module msffiz_macro__dmsffi_32x__stack_64c__width_64(din, clk, en, se, scan_in,
901 siclk, soclk, pce_ov, stop, dout_l, scan_out);
902
903 input [63:0] din;
904 input clk;
905 input en;
906 input se;
907 input scan_in;
908 input siclk;
909 input soclk;
910 input pce_ov;
911 input stop;
912 output [63:0] dout_l;
913 output scan_out;
914
915 wire l1clk;
916 wire siclk_out;
917 wire soclk_out;
918 wire [62:0] so;
919
920 cl_dp1_l1hdr_8x c0_0(
921 .l2clk (clk),
922 .pce (en),
923 .aclk (siclk),
924 .bclk (soclk),
925 .l1clk (l1clk),
926 .se (se),
927 .pce_ov (pce_ov),
928 .stop (stop),
929 .siclk_out (siclk_out),
930 .soclk_out (soclk_out));
931 msffiz_dp #(64) d0_0(
932 .l1clk (l1clk),
933 .siclk (siclk_out),
934 .soclk (soclk_out),
935 .d (din[63:0]),
936 .si ({scan_in, so[62:0]}),
937 .so ({so[62:0], scan_out}),
938 .q_l (dout_l[63:0]));
939endmodule
940
941
942`endif // `ifdef FPGA
943