Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / db0 / rtl / db0_reduct_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: db0_reduct_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 db0_reduct_ctl (
36 iol2clk,
37 scan_in,
38 scan_out,
39 tcu_pce_ov,
40 tcu_clk_stop,
41 tcu_aclk,
42 tcu_bclk,
43 tcu_scan_en,
44 dmu_ncu_vld,
45 wr_en0,
46 wr_en1,
47 wr_en2,
48 wr_en3,
49 mux1_sel0,
50 mux1_sel1,
51 mux1_sel2,
52 mux2_sel0,
53 mux2_sel1,
54 mux2_sel2,
55 mux3_sel0,
56 mux3_sel1,
57 mux3_sel2,
58 mux4_sel0,
59 mux4_sel1,
60 mux4_sel2,
61 mux5_sel0,
62 mux5_sel1,
63 mux5_sel2,
64 mux5_sel3);
65wire pce_ov;
66wire stop;
67wire siclk;
68wire soclk;
69wire se;
70wire dmu_ncu_vld_r;
71wire ff_dmu_ncu_vld_scanin;
72wire ff_dmu_ncu_vld_scanout;
73wire l1clk;
74wire reg0_vld_din;
75wire reg0_vld;
76wire reg1_vld;
77wire reg2_vld;
78wire reg3_vld;
79wire reg0_vld_r;
80wire reg0_vld_r2;
81wire ff_reg0_vld_scanin;
82wire ff_reg0_vld_scanout;
83wire ff_reg0_vld_r_scanin;
84wire ff_reg0_vld_r_scanout;
85wire ff_reg0_vld_r2_scanin;
86wire ff_reg0_vld_r2_scanout;
87wire reg1_vld_din;
88wire reg1_vld_r_din;
89wire reg1_vld_r;
90wire reg1_vld_r2;
91wire ff_reg1_vld_scanin;
92wire ff_reg1_vld_scanout;
93wire ff_reg1_vld_r_scanin;
94wire ff_reg1_vld_r_scanout;
95wire ff_reg1_vld_r2_scanin;
96wire ff_reg1_vld_r2_scanout;
97wire reg2_vld_din;
98wire reg2_vld_r_din;
99wire reg2_vld_r;
100wire reg2_vld_r2;
101wire ff_reg2_vld_scanin;
102wire ff_reg2_vld_scanout;
103wire ff_reg2_vld_r_scanin;
104wire ff_reg2_vld_r_scanout;
105wire ff_reg2_vld_r2_scanin;
106wire ff_reg2_vld_r2_scanout;
107wire reg3_vld_din;
108wire reg3_vld_r_din;
109wire reg3_vld_r;
110wire reg3_vld_r2;
111wire ff_reg3_vld_scanin;
112wire ff_reg3_vld_scanout;
113wire ff_reg3_vld_r_scanin;
114wire ff_reg3_vld_r_scanout;
115wire ff_reg3_vld_r2_scanin;
116wire ff_reg3_vld_r2_scanout;
117wire spares_scanin;
118wire spares_scanout;
119
120
121input iol2clk; // Internal IO clock from CCU
122
123input scan_in;
124output scan_out;
125input tcu_pce_ov;
126input tcu_clk_stop;
127input tcu_aclk;
128input tcu_bclk;
129input tcu_scan_en;
130
131
132input dmu_ncu_vld; //CSR Data return valid from DMU to NCU
133
134output wr_en0;
135output wr_en1;
136output wr_en2;
137output wr_en3;
138
139output mux1_sel0;
140output mux1_sel1;
141output mux1_sel2;
142
143output mux2_sel0;
144output mux2_sel1;
145output mux2_sel2;
146
147output mux3_sel0;
148output mux3_sel1;
149output mux3_sel2;
150
151output mux4_sel0;
152output mux4_sel1;
153output mux4_sel2;
154
155output mux5_sel0;
156output mux5_sel1;
157output mux5_sel2;
158output mux5_sel3;
159
160// Scan reassigns
161assign pce_ov = tcu_pce_ov;
162assign stop = tcu_clk_stop;
163assign siclk = tcu_aclk;
164assign soclk = tcu_bclk;
165assign se = tcu_scan_en;
166
167// flop dmu_ncu_vld
168
169db0_reduct_ctl_msff_ctl_macro__width_1 ff_dmu_ncu_vld
170 (.dout(dmu_ncu_vld_r),
171 .scan_in(ff_dmu_ncu_vld_scanin),
172 .scan_out(ff_dmu_ncu_vld_scanout),
173 .l1clk(l1clk),
174 .din(dmu_ncu_vld),
175 .siclk(siclk),
176 .soclk(soclk)
177);
178
179
180// Reg0 vld bits
181
182assign reg0_vld_din = (dmu_ncu_vld_r &
183 ~(reg0_vld | reg1_vld | reg2_vld | reg3_vld)
184 ) | reg0_vld; // set if dmu_ncu_vld_r is true
185 // and reg0_vld,reg1_vld,reg2_vld,reg3_vld are
186 // all 1'b0
187 // held at 1 with reg0_vld until
188 // cleared
189assign mux1_sel0 = reg0_vld & ~reg0_vld_r;
190assign mux1_sel1 = reg0_vld_r & ~reg0_vld_r2;
191assign mux1_sel2 = reg0_vld_r2;
192
193assign mux5_sel0 = mux1_sel0 | mux1_sel1 | mux1_sel2;
194
195assign wr_en0 = (dmu_ncu_vld_r &
196 ~(reg0_vld | reg1_vld | reg2_vld | reg3_vld));
197
198 // write to reg0 when none of the valid bits are on and dmu_ncu_vld_r is true
199
200db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg0_vld
201 (.dout(reg0_vld),
202 .scan_in(ff_reg0_vld_scanin),
203 .scan_out(ff_reg0_vld_scanout),
204 .clr(reg0_vld_r2),
205 .l1clk(l1clk),
206 .din(reg0_vld_din),
207 .siclk(siclk),
208 .soclk(soclk)
209
210);
211
212db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg0_vld_r
213 (.dout(reg0_vld_r),
214 .scan_in(ff_reg0_vld_r_scanin),
215 .scan_out(ff_reg0_vld_r_scanout),
216 .clr(reg0_vld_r2),
217 .l1clk(l1clk),
218 .din(reg0_vld),
219 .siclk(siclk),
220 .soclk(soclk)
221
222);
223
224db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg0_vld_r2
225 (.dout(reg0_vld_r2),
226 .scan_in(ff_reg0_vld_r2_scanin),
227 .scan_out(ff_reg0_vld_r2_scanout),
228 .clr(reg0_vld_r2),
229 .l1clk(l1clk),
230 .din(reg0_vld_r),
231 .siclk(siclk),
232 .soclk(soclk)
233
234);
235
236// Reg1 vld bits
237
238assign reg1_vld_din = (dmu_ncu_vld_r & reg0_vld ) | reg1_vld; // set if dmu_ncu_vld_r is true
239 // and reg0_vld is 1'b1
240 // held at 1 with reg1_vld until
241 // cleared
242
243assign reg1_vld_r_din = reg1_vld & ~reg0_vld; // propagate the value of reg1_vld to reg1_vld_r
244 // only when reg0_vld = 0
245
246assign mux2_sel0 = reg1_vld & ~reg1_vld_r & ~reg0_vld;
247assign mux2_sel1 = reg1_vld_r & ~reg1_vld_r2;
248assign mux2_sel2 = reg1_vld_r2;
249
250assign mux5_sel1 = mux2_sel0 | mux2_sel1 | mux2_sel2;
251
252assign wr_en1 = (dmu_ncu_vld_r & reg0_vld & ~reg1_vld);
253
254 // write to reg1 when reg0 valid bit is true and dmu_ncu_vld_r is true
255
256
257
258db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg1_vld
259 (.dout(reg1_vld),
260 .scan_in(ff_reg1_vld_scanin),
261 .scan_out(ff_reg1_vld_scanout),
262 .clr(reg1_vld_r2),
263 .l1clk(l1clk),
264 .din(reg1_vld_din),
265 .siclk(siclk),
266 .soclk(soclk)
267
268);
269
270db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg1_vld_r
271 (.dout(reg1_vld_r),
272 .scan_in(ff_reg1_vld_r_scanin),
273 .scan_out(ff_reg1_vld_r_scanout),
274 .clr(reg1_vld_r2),
275 .l1clk(l1clk),
276 .din(reg1_vld_r_din),
277 .siclk(siclk),
278 .soclk(soclk)
279
280);
281
282db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg1_vld_r2
283 (.dout(reg1_vld_r2),
284 .scan_in(ff_reg1_vld_r2_scanin),
285 .scan_out(ff_reg1_vld_r2_scanout),
286 .clr(reg1_vld_r2),
287 .l1clk(l1clk),
288 .din(reg1_vld_r),
289 .siclk(siclk),
290 .soclk(soclk)
291
292);
293
294// Reg2 vld bits
295
296assign reg2_vld_din = (dmu_ncu_vld_r & reg1_vld ) | reg2_vld; // set if dmu_ncu_vld_r is true
297 // and reg1_vld is 1'b1
298 // held at 1 with reg2_vld until
299 // cleared
300
301assign reg2_vld_r_din = reg2_vld & ~reg1_vld; // propagate the value of reg2_vld to reg2_vld_r
302 // only when reg1_vld = 0
303
304assign mux3_sel0 = reg2_vld & ~reg2_vld_r & ~reg1_vld;
305assign mux3_sel1 = reg2_vld_r & ~reg2_vld_r2;
306assign mux3_sel2 = reg2_vld_r2;
307
308assign mux5_sel2 = mux3_sel0 | mux3_sel1 | mux3_sel2;
309
310assign wr_en2 = (dmu_ncu_vld_r & reg1_vld & ~reg2_vld);
311
312 // write to reg2 when reg1 valid bit is true and dmu_ncu_vld_r is true
313
314
315
316db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg2_vld
317 (.dout(reg2_vld),
318 .scan_in(ff_reg2_vld_scanin),
319 .scan_out(ff_reg2_vld_scanout),
320 .clr(reg2_vld_r2),
321 .l1clk(l1clk),
322 .din(reg2_vld_din),
323 .siclk(siclk),
324 .soclk(soclk)
325
326);
327
328db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg2_vld_r
329 (.dout(reg2_vld_r),
330 .scan_in(ff_reg2_vld_r_scanin),
331 .scan_out(ff_reg2_vld_r_scanout),
332 .clr(reg2_vld_r2),
333 .l1clk(l1clk),
334 .din(reg2_vld_r_din),
335 .siclk(siclk),
336 .soclk(soclk)
337
338);
339
340db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg2_vld_r2
341 (.dout(reg2_vld_r2),
342 .scan_in(ff_reg2_vld_r2_scanin),
343 .scan_out(ff_reg2_vld_r2_scanout),
344 .clr(reg2_vld_r2),
345 .l1clk(l1clk),
346 .din(reg2_vld_r),
347 .siclk(siclk),
348 .soclk(soclk)
349
350);
351
352// Reg3 vld bits
353
354assign reg3_vld_din = (dmu_ncu_vld_r & reg2_vld ) | reg3_vld; // set if dmu_ncu_vld_r is true
355 // and reg2_vld is 1'b1
356 // held at 1 with reg3_vld until
357 // cleared
358
359assign reg3_vld_r_din = reg3_vld & ~reg2_vld; // propagate the value of reg3_vld to reg3_vld_r
360 // only when reg2_vld = 0
361
362assign mux4_sel0 = reg3_vld & ~reg3_vld_r & ~reg2_vld;
363assign mux4_sel1 = reg3_vld_r & ~reg3_vld_r2;
364assign mux4_sel2 = reg3_vld_r2;
365
366assign mux5_sel3 = mux4_sel0 | mux4_sel1 | mux4_sel2;
367
368assign wr_en3 = (dmu_ncu_vld_r & reg2_vld);
369
370 // write to reg3 when reg2 valid bit is true and dmu_ncu_vld_r is true
371
372
373
374db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg3_vld
375 (.dout(reg3_vld),
376 .scan_in(ff_reg3_vld_scanin),
377 .scan_out(ff_reg3_vld_scanout),
378 .clr(reg3_vld_r2),
379 .l1clk(l1clk),
380 .din(reg3_vld_din),
381 .siclk(siclk),
382 .soclk(soclk)
383
384);
385
386db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg3_vld_r
387 (.dout(reg3_vld_r),
388 .scan_in(ff_reg3_vld_r_scanin),
389 .scan_out(ff_reg3_vld_r_scanout),
390 .clr(reg3_vld_r2),
391 .l1clk(l1clk),
392 .din(reg3_vld_r_din),
393 .siclk(siclk),
394 .soclk(soclk)
395
396);
397
398db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 ff_reg3_vld_r2
399 (.dout(reg3_vld_r2),
400 .scan_in(ff_reg3_vld_r2_scanin),
401 .scan_out(ff_reg3_vld_r2_scanout),
402 .clr(reg3_vld_r2),
403 .l1clk(l1clk),
404 .din(reg3_vld_r),
405 .siclk(siclk),
406 .soclk(soclk)
407
408);
409
410// Spare gates
411
412db0_reduct_ctl_spare_ctl_macro__num_5 spares (
413 .scan_in(spares_scanin),
414 .scan_out(spares_scanout),
415 .l1clk (l1clk),
416 .siclk(siclk),
417 .soclk(soclk)
418);
419
420/**** adding clock header ****/
421db0_reduct_ctl_l1clkhdr_ctl_macro clkgen (
422 .l2clk (iol2clk),
423 .l1en (1'b1),
424 .l1clk (l1clk),
425 .pce_ov(pce_ov),
426 .stop(stop),
427 .se(se)
428 );
429
430
431// fixscan start:
432assign ff_dmu_ncu_vld_scanin = scan_in ;
433assign ff_reg0_vld_scanin = ff_dmu_ncu_vld_scanout ;
434assign ff_reg0_vld_r_scanin = ff_reg0_vld_scanout ;
435assign ff_reg0_vld_r2_scanin = ff_reg0_vld_r_scanout ;
436assign ff_reg1_vld_scanin = ff_reg0_vld_r2_scanout ;
437assign ff_reg1_vld_r_scanin = ff_reg1_vld_scanout ;
438assign ff_reg1_vld_r2_scanin = ff_reg1_vld_r_scanout ;
439assign ff_reg2_vld_scanin = ff_reg1_vld_r2_scanout ;
440assign ff_reg2_vld_r_scanin = ff_reg2_vld_scanout ;
441assign ff_reg2_vld_r2_scanin = ff_reg2_vld_r_scanout ;
442assign ff_reg3_vld_scanin = ff_reg2_vld_r2_scanout ;
443assign ff_reg3_vld_r_scanin = ff_reg3_vld_scanout ;
444assign ff_reg3_vld_r2_scanin = ff_reg3_vld_r_scanout ;
445assign spares_scanin = ff_reg3_vld_r2_scanout ;
446assign scan_out = spares_scanout ;
447// fixscan end:
448endmodule
449
450
451
452
453
454
455// any PARAMS parms go into naming of macro
456
457module db0_reduct_ctl_msff_ctl_macro__width_1 (
458 din,
459 l1clk,
460 scan_in,
461 siclk,
462 soclk,
463 dout,
464 scan_out);
465wire [0:0] fdin;
466
467 input [0:0] din;
468 input l1clk;
469 input scan_in;
470
471
472 input siclk;
473 input soclk;
474
475 output [0:0] dout;
476 output scan_out;
477assign fdin[0:0] = din[0:0];
478
479
480
481
482
483
484dff #(1) d0_0 (
485.l1clk(l1clk),
486.siclk(siclk),
487.soclk(soclk),
488.d(fdin[0:0]),
489.si(scan_in),
490.so(scan_out),
491.q(dout[0:0])
492);
493
494
495
496
497
498
499
500
501
502
503
504
505endmodule
506
507
508
509
510
511
512
513
514
515
516
517
518
519// any PARAMS parms go into naming of macro
520
521module db0_reduct_ctl_msff_ctl_macro__clr_1__width_1 (
522 din,
523 clr,
524 l1clk,
525 scan_in,
526 siclk,
527 soclk,
528 dout,
529 scan_out);
530wire [0:0] fdin;
531
532 input [0:0] din;
533 input clr;
534 input l1clk;
535 input scan_in;
536
537
538 input siclk;
539 input soclk;
540
541 output [0:0] dout;
542 output scan_out;
543assign fdin[0:0] = din[0:0] & ~{1{clr}};
544
545
546
547
548
549
550dff #(1) d0_0 (
551.l1clk(l1clk),
552.siclk(siclk),
553.soclk(soclk),
554.d(fdin[0:0]),
555.si(scan_in),
556.so(scan_out),
557.q(dout[0:0])
558);
559
560
561
562
563
564
565
566
567
568
569
570
571endmodule
572
573
574
575
576
577
578
579
580
581// Description: Spare gate macro for control blocks
582//
583// Param num controls the number of times the macro is added
584// flops=0 can be used to use only combination spare logic
585
586
587module db0_reduct_ctl_spare_ctl_macro__num_5 (
588 l1clk,
589 scan_in,
590 siclk,
591 soclk,
592 scan_out);
593wire si_0;
594wire so_0;
595wire spare0_flop_unused;
596wire spare0_buf_32x_unused;
597wire spare0_nand3_8x_unused;
598wire spare0_inv_8x_unused;
599wire spare0_aoi22_4x_unused;
600wire spare0_buf_8x_unused;
601wire spare0_oai22_4x_unused;
602wire spare0_inv_16x_unused;
603wire spare0_nand2_16x_unused;
604wire spare0_nor3_4x_unused;
605wire spare0_nand2_8x_unused;
606wire spare0_buf_16x_unused;
607wire spare0_nor2_16x_unused;
608wire spare0_inv_32x_unused;
609wire si_1;
610wire so_1;
611wire spare1_flop_unused;
612wire spare1_buf_32x_unused;
613wire spare1_nand3_8x_unused;
614wire spare1_inv_8x_unused;
615wire spare1_aoi22_4x_unused;
616wire spare1_buf_8x_unused;
617wire spare1_oai22_4x_unused;
618wire spare1_inv_16x_unused;
619wire spare1_nand2_16x_unused;
620wire spare1_nor3_4x_unused;
621wire spare1_nand2_8x_unused;
622wire spare1_buf_16x_unused;
623wire spare1_nor2_16x_unused;
624wire spare1_inv_32x_unused;
625wire si_2;
626wire so_2;
627wire spare2_flop_unused;
628wire spare2_buf_32x_unused;
629wire spare2_nand3_8x_unused;
630wire spare2_inv_8x_unused;
631wire spare2_aoi22_4x_unused;
632wire spare2_buf_8x_unused;
633wire spare2_oai22_4x_unused;
634wire spare2_inv_16x_unused;
635wire spare2_nand2_16x_unused;
636wire spare2_nor3_4x_unused;
637wire spare2_nand2_8x_unused;
638wire spare2_buf_16x_unused;
639wire spare2_nor2_16x_unused;
640wire spare2_inv_32x_unused;
641wire si_3;
642wire so_3;
643wire spare3_flop_unused;
644wire spare3_buf_32x_unused;
645wire spare3_nand3_8x_unused;
646wire spare3_inv_8x_unused;
647wire spare3_aoi22_4x_unused;
648wire spare3_buf_8x_unused;
649wire spare3_oai22_4x_unused;
650wire spare3_inv_16x_unused;
651wire spare3_nand2_16x_unused;
652wire spare3_nor3_4x_unused;
653wire spare3_nand2_8x_unused;
654wire spare3_buf_16x_unused;
655wire spare3_nor2_16x_unused;
656wire spare3_inv_32x_unused;
657wire si_4;
658wire so_4;
659wire spare4_flop_unused;
660wire spare4_buf_32x_unused;
661wire spare4_nand3_8x_unused;
662wire spare4_inv_8x_unused;
663wire spare4_aoi22_4x_unused;
664wire spare4_buf_8x_unused;
665wire spare4_oai22_4x_unused;
666wire spare4_inv_16x_unused;
667wire spare4_nand2_16x_unused;
668wire spare4_nor3_4x_unused;
669wire spare4_nand2_8x_unused;
670wire spare4_buf_16x_unused;
671wire spare4_nor2_16x_unused;
672wire spare4_inv_32x_unused;
673
674
675input l1clk;
676input scan_in;
677input siclk;
678input soclk;
679output scan_out;
680
681cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
682 .siclk(siclk),
683 .soclk(soclk),
684 .si(si_0),
685 .so(so_0),
686 .d(1'b0),
687 .q(spare0_flop_unused));
688assign si_0 = scan_in;
689
690cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
691 .out(spare0_buf_32x_unused));
692cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
693 .in1(1'b1),
694 .in2(1'b1),
695 .out(spare0_nand3_8x_unused));
696cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
697 .out(spare0_inv_8x_unused));
698cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
699 .in01(1'b1),
700 .in10(1'b1),
701 .in11(1'b1),
702 .out(spare0_aoi22_4x_unused));
703cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
704 .out(spare0_buf_8x_unused));
705cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
706 .in01(1'b1),
707 .in10(1'b1),
708 .in11(1'b1),
709 .out(spare0_oai22_4x_unused));
710cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
711 .out(spare0_inv_16x_unused));
712cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
713 .in1(1'b1),
714 .out(spare0_nand2_16x_unused));
715cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
716 .in1(1'b0),
717 .in2(1'b0),
718 .out(spare0_nor3_4x_unused));
719cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
720 .in1(1'b1),
721 .out(spare0_nand2_8x_unused));
722cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
723 .out(spare0_buf_16x_unused));
724cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
725 .in1(1'b0),
726 .out(spare0_nor2_16x_unused));
727cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
728 .out(spare0_inv_32x_unused));
729
730cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
731 .siclk(siclk),
732 .soclk(soclk),
733 .si(si_1),
734 .so(so_1),
735 .d(1'b0),
736 .q(spare1_flop_unused));
737assign si_1 = so_0;
738
739cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
740 .out(spare1_buf_32x_unused));
741cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
742 .in1(1'b1),
743 .in2(1'b1),
744 .out(spare1_nand3_8x_unused));
745cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
746 .out(spare1_inv_8x_unused));
747cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
748 .in01(1'b1),
749 .in10(1'b1),
750 .in11(1'b1),
751 .out(spare1_aoi22_4x_unused));
752cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
753 .out(spare1_buf_8x_unused));
754cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
755 .in01(1'b1),
756 .in10(1'b1),
757 .in11(1'b1),
758 .out(spare1_oai22_4x_unused));
759cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
760 .out(spare1_inv_16x_unused));
761cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
762 .in1(1'b1),
763 .out(spare1_nand2_16x_unused));
764cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
765 .in1(1'b0),
766 .in2(1'b0),
767 .out(spare1_nor3_4x_unused));
768cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
769 .in1(1'b1),
770 .out(spare1_nand2_8x_unused));
771cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
772 .out(spare1_buf_16x_unused));
773cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
774 .in1(1'b0),
775 .out(spare1_nor2_16x_unused));
776cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
777 .out(spare1_inv_32x_unused));
778
779cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
780 .siclk(siclk),
781 .soclk(soclk),
782 .si(si_2),
783 .so(so_2),
784 .d(1'b0),
785 .q(spare2_flop_unused));
786assign si_2 = so_1;
787
788cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
789 .out(spare2_buf_32x_unused));
790cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
791 .in1(1'b1),
792 .in2(1'b1),
793 .out(spare2_nand3_8x_unused));
794cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
795 .out(spare2_inv_8x_unused));
796cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
797 .in01(1'b1),
798 .in10(1'b1),
799 .in11(1'b1),
800 .out(spare2_aoi22_4x_unused));
801cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
802 .out(spare2_buf_8x_unused));
803cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
804 .in01(1'b1),
805 .in10(1'b1),
806 .in11(1'b1),
807 .out(spare2_oai22_4x_unused));
808cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
809 .out(spare2_inv_16x_unused));
810cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
811 .in1(1'b1),
812 .out(spare2_nand2_16x_unused));
813cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
814 .in1(1'b0),
815 .in2(1'b0),
816 .out(spare2_nor3_4x_unused));
817cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
818 .in1(1'b1),
819 .out(spare2_nand2_8x_unused));
820cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
821 .out(spare2_buf_16x_unused));
822cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
823 .in1(1'b0),
824 .out(spare2_nor2_16x_unused));
825cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
826 .out(spare2_inv_32x_unused));
827
828cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
829 .siclk(siclk),
830 .soclk(soclk),
831 .si(si_3),
832 .so(so_3),
833 .d(1'b0),
834 .q(spare3_flop_unused));
835assign si_3 = so_2;
836
837cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
838 .out(spare3_buf_32x_unused));
839cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
840 .in1(1'b1),
841 .in2(1'b1),
842 .out(spare3_nand3_8x_unused));
843cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
844 .out(spare3_inv_8x_unused));
845cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
846 .in01(1'b1),
847 .in10(1'b1),
848 .in11(1'b1),
849 .out(spare3_aoi22_4x_unused));
850cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
851 .out(spare3_buf_8x_unused));
852cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
853 .in01(1'b1),
854 .in10(1'b1),
855 .in11(1'b1),
856 .out(spare3_oai22_4x_unused));
857cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
858 .out(spare3_inv_16x_unused));
859cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
860 .in1(1'b1),
861 .out(spare3_nand2_16x_unused));
862cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
863 .in1(1'b0),
864 .in2(1'b0),
865 .out(spare3_nor3_4x_unused));
866cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
867 .in1(1'b1),
868 .out(spare3_nand2_8x_unused));
869cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
870 .out(spare3_buf_16x_unused));
871cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
872 .in1(1'b0),
873 .out(spare3_nor2_16x_unused));
874cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
875 .out(spare3_inv_32x_unused));
876
877cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
878 .siclk(siclk),
879 .soclk(soclk),
880 .si(si_4),
881 .so(so_4),
882 .d(1'b0),
883 .q(spare4_flop_unused));
884assign si_4 = so_3;
885
886cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
887 .out(spare4_buf_32x_unused));
888cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
889 .in1(1'b1),
890 .in2(1'b1),
891 .out(spare4_nand3_8x_unused));
892cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
893 .out(spare4_inv_8x_unused));
894cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
895 .in01(1'b1),
896 .in10(1'b1),
897 .in11(1'b1),
898 .out(spare4_aoi22_4x_unused));
899cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
900 .out(spare4_buf_8x_unused));
901cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
902 .in01(1'b1),
903 .in10(1'b1),
904 .in11(1'b1),
905 .out(spare4_oai22_4x_unused));
906cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
907 .out(spare4_inv_16x_unused));
908cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
909 .in1(1'b1),
910 .out(spare4_nand2_16x_unused));
911cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
912 .in1(1'b0),
913 .in2(1'b0),
914 .out(spare4_nor3_4x_unused));
915cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
916 .in1(1'b1),
917 .out(spare4_nand2_8x_unused));
918cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
919 .out(spare4_buf_16x_unused));
920cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
921 .in1(1'b0),
922 .out(spare4_nor2_16x_unused));
923cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
924 .out(spare4_inv_32x_unused));
925assign scan_out = so_4;
926
927
928
929endmodule
930
931
932
933
934
935
936// any PARAMS parms go into naming of macro
937
938module db0_reduct_ctl_l1clkhdr_ctl_macro (
939 l2clk,
940 l1en,
941 pce_ov,
942 stop,
943 se,
944 l1clk);
945
946
947 input l2clk;
948 input l1en;
949 input pce_ov;
950 input stop;
951 input se;
952 output l1clk;
953
954
955
956
957
958cl_sc1_l1hdr_8x c_0 (
959
960
961 .l2clk(l2clk),
962 .pce(l1en),
963 .l1clk(l1clk),
964 .se(se),
965 .pce_ov(pce_ov),
966 .stop(stop)
967);
968
969
970
971endmodule
972
973
974
975
976
977
978
979