Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / libs / cl / cl_dp1 / cl_dp1.behV
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: cl_dp1.behV
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 cl_dp1_msffmin_30ps_16x ( q, so, d, l1clk, si, siclk, soclk );
36// RFM 05-14-2004
37// Level sensitive in SCAN_MODE
38// Edge triggered when not in SCAN_MODE
39
40
41 parameter SIZE = 1;
42
43 output q;
44 output so;
45
46 input d;
47 input l1clk;
48 input si;
49 input siclk;
50 input soclk;
51
52 reg q;
53 wire so;
54 wire l1clk, siclk, soclk;
55
56 `ifdef SCAN_MODE
57
58 reg l1;
59 `ifdef FAST_FLUSH
60 always @(posedge l1clk or posedge siclk ) begin
61 if (siclk) begin
62 q <= 1'b0; //pseudo flush reset
63 end else begin
64 q <= d;
65 end
66 end
67 `else
68 always @(l1clk or siclk or soclk or d or si)
69 begin
70 if (!l1clk && !siclk) l1 <= d; // Load master with data
71 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
72 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
73
74 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
75 if ( l1clk && siclk && !soclk) q <= si; // Flush
76 end
77 `endif
78 `else
79 wire si_unused;
80 wire siclk_unused;
81 wire soclk_unused;
82 assign si_unused = si;
83 assign siclk_unused = siclk;
84 assign soclk_unused = soclk;
85
86
87 `ifdef INITLATZERO
88 initial q = 1'b0;
89 `endif
90
91 always @(posedge l1clk)
92 begin
93 if (!siclk && !soclk) q <= d;
94 else q <= 1'bx;
95 end
96 `endif
97
98 assign so = q;
99
100endmodule // dff
101
102
103
104
105module cl_dp1_msffmin_30ps_8x ( q, so, d, l1clk, si, siclk, soclk );
106// RFM 05-14-2004
107// Level sensitive in SCAN_MODE
108// Edge triggered when not in SCAN_MODE
109
110
111 parameter SIZE = 1;
112
113 output q;
114 output so;
115
116 input d;
117 input l1clk;
118 input si;
119 input siclk;
120 input soclk;
121
122 reg q;
123 wire so;
124 wire l1clk, siclk, soclk;
125
126 `ifdef SCAN_MODE
127
128 reg l1;
129 `ifdef FAST_FLUSH
130 always @(posedge l1clk or posedge siclk ) begin
131 if (siclk) begin
132 q <= 1'b0; //pseudo flush reset
133 end else begin
134 q <= d;
135 end
136 end
137 `else
138 always @(l1clk or siclk or soclk or d or si)
139 begin
140 if (!l1clk && !siclk) l1 <= d; // Load master with data
141 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
142 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
143
144 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
145 if ( l1clk && siclk && !soclk) q <= si; // Flush
146 end
147 `endif
148 `else
149 wire si_unused;
150 wire siclk_unused;
151 wire soclk_unused;
152 assign si_unused = si;
153 assign siclk_unused = siclk;
154 assign soclk_unused = soclk;
155
156
157 `ifdef INITLATZERO
158 initial q = 1'b0;
159 `endif
160
161 always @(posedge l1clk)
162 begin
163 if (!siclk && !soclk) q <= d;
164 else q <= 1'bx;
165 end
166 `endif
167
168 assign so = q;
169
170endmodule // dff
171module cl_dp1_msffmin_30ps_4x ( q, so, d, l1clk, si, siclk, soclk );
172// RFM 05-14-2004
173// Level sensitive in SCAN_MODE
174// Edge triggered when not in SCAN_MODE
175
176
177 parameter SIZE = 1;
178
179 output q;
180 output so;
181
182 input d;
183 input l1clk;
184 input si;
185 input siclk;
186 input soclk;
187
188 reg q;
189 wire so;
190 wire l1clk, siclk, soclk;
191
192 `ifdef SCAN_MODE
193
194 reg l1;
195 `ifdef FAST_FLUSH
196 always @(posedge l1clk or posedge siclk ) begin
197 if (siclk) begin
198 q <= 1'b0; //pseudo flush reset
199 end else begin
200 q <= d;
201 end
202 end
203 `else
204 always @(l1clk or siclk or soclk or d or si)
205 begin
206 if (!l1clk && !siclk) l1 <= d; // Load master with data
207 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
208 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
209
210 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
211 if ( l1clk && siclk && !soclk) q <= si; // Flush
212 end
213 `endif
214 `else
215 wire si_unused;
216 wire siclk_unused;
217 wire soclk_unused;
218 assign si_unused = si;
219 assign siclk_unused = siclk;
220 assign soclk_unused = soclk;
221
222
223 `ifdef INITLATZERO
224 initial q = 1'b0;
225 `endif
226
227 always @(posedge l1clk)
228 begin
229 if (!siclk && !soclk) q <= d;
230 else q <= 1'bx;
231 end
232 `endif
233
234 assign so = q;
235
236endmodule // dff
237module cl_dp1_msffmin_30ps_32x ( q, so, d, l1clk, si, siclk, soclk );
238// RFM 05-14-2004
239// Level sensitive in SCAN_MODE
240// Edge triggered when not in SCAN_MODE
241
242
243 parameter SIZE = 1;
244
245 output q;
246 output so;
247
248 input d;
249 input l1clk;
250 input si;
251 input siclk;
252 input soclk;
253
254 reg q;
255 wire so;
256 wire l1clk, siclk, soclk;
257
258 `ifdef SCAN_MODE
259
260 reg l1;
261 `ifdef FAST_FLUSH
262 always @(posedge l1clk or posedge siclk ) begin
263 if (siclk) begin
264 q <= 1'b0; //pseudo flush reset
265 end else begin
266 q <= d;
267 end
268 end
269 `else
270 always @(l1clk or siclk or soclk or d or si)
271 begin
272 if (!l1clk && !siclk) l1 <= d; // Load master with data
273 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
274 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
275
276 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
277 if ( l1clk && siclk && !soclk) q <= si; // Flush
278 end
279 `endif
280 `else
281 wire si_unused;
282 wire siclk_unused;
283 wire soclk_unused;
284 assign si_unused = si;
285 assign siclk_unused = siclk;
286 assign soclk_unused = soclk;
287
288
289 `ifdef INITLATZERO
290 initial q = 1'b0;
291 `endif
292
293 always @(posedge l1clk)
294 begin
295 if (!siclk && !soclk) q <= d;
296 else q <= 1'bx;
297 end
298 `endif
299
300 assign so = q;
301
302endmodule // dff
303module cl_dp1_msffmin_30ps_1x ( q, so, d, l1clk, si, siclk, soclk );
304// RFM 05-14-2004
305// Level sensitive in SCAN_MODE
306// Edge triggered when not in SCAN_MODE
307
308
309 parameter SIZE = 1;
310
311 output q;
312 output so;
313
314 input d;
315 input l1clk;
316 input si;
317 input siclk;
318 input soclk;
319
320 reg q;
321 wire so;
322 wire l1clk, siclk, soclk;
323
324 `ifdef SCAN_MODE
325
326 reg l1;
327`ifdef FAST_FLUSH
328 always @(posedge l1clk or posedge siclk ) begin
329 if (siclk) begin
330 q <= 1'b0; //pseudo flush reset
331 end else begin
332 q <= d;
333 end
334 end
335 `else
336 always @(l1clk or siclk or soclk or d or si)
337 begin
338 if (!l1clk && !siclk) l1 <= d; // Load master with data
339 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
340 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
341
342 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
343 if ( l1clk && siclk && !soclk) q <= si; // Flush
344 end
345 `endif
346 `else
347 wire si_unused;
348 wire siclk_unused;
349 wire soclk_unused;
350 assign si_unused = si;
351 assign siclk_unused = siclk;
352 assign soclk_unused = soclk;
353
354
355 `ifdef INITLATZERO
356 initial q = 1'b0;
357 `endif
358
359 always @(posedge l1clk)
360 begin
361 if (!siclk && !soclk) q <= d;
362 else q <= 1'bx;
363 end
364 `endif
365
366 assign so = q;
367
368endmodule // dff
369module cl_dp1_bsac_cell_4x(q, so, d, l1clk, si, siclk, soclk, updateclk,
370 ac_mode, ac_test_signal);
371 output q;
372 output so;
373
374 input d, ac_test_signal;
375 input l1clk;
376 input si;
377 input siclk;
378 input soclk;
379 input updateclk, ac_mode;
380
381 reg q;
382 reg so;
383 wire l1clk, siclk, soclk, updateclk;
384
385
386 reg l1, qm;
387
388 always @(l1clk or siclk or soclk or d or si)
389 begin
390 if (!l1clk && !siclk) l1 <= d; // Load master with data
391 if ( l1clk && siclk) l1 <= si; // Load master with
392 // scan or flush
393 if (!l1clk && siclk) l1 <= 1'bx; // Conflict between
394 // data and scan
395 if ( l1clk && !soclk) so <= l1; // Load slave with
396 // master data
397 if ( l1clk && siclk && !soclk) so <= si; // Flush
398 end
399
400 initial qm = 1'b0;
401
402 always@(updateclk or l1)
403 begin
404 if(updateclk) qm <=l1;
405 end
406always@(ac_mode or qm or ac_test_signal)
407 begin
408 if(ac_mode==0) q=qm;
409 else q=qm ^ ac_test_signal;
410 end
411endmodule
412module cl_dp1_blatch_4x ( latout, so, d, l1clk, si, siclk, soclk);
413
414 output latout;
415 output so;
416 input d;
417 input l1clk;
418 input si;
419 input siclk;
420 input soclk;
421
422
423 wire so;
424 reg s, m;
425/*
426 `ifdef SCAN_MODE
427*/
428 always @(l1clk or siclk or soclk or d or si) begin
429
430 if (!l1clk && !siclk) m <= d; // Load master with data
431 else if ( l1clk && siclk) m <= si; // Load master with scan or flush
432 else if (!l1clk && siclk) m <= 1'bx; // Conflict between data and scan
433
434 if ( l1clk && !soclk && !siclk) s <= m; // Load slave with master data
435 else if (l1clk && siclk && !soclk) s <= si; // Flush
436 end
437/*
438 `else
439 wire si_unused = si;
440`ifdef INITLATZERO
441
442*/
443 initial m = 1'b0;
444// `endif
445
446
447 always @(l1clk or d or si or siclk) begin
448 if(siclk==0 && l1clk==0) m = d;
449 else if(siclk && !l1clk) m = 1'bx;
450 if(siclk && l1clk) m = si;
451 if(l1clk && !soclk) s = m;
452 end
453
454// `endif
455
456 assign latout = m;
457 assign so = s;
458
459
460endmodule
461module cl_dp1_alatch_4x ( q, so, d, l1clk, si, siclk, soclk, se );
462
463
464
465
466
467 output q;
468 output so;
469
470 input d;
471 input l1clk;
472 input si;
473 input siclk;
474 input soclk;
475 input se;
476
477 reg q;
478 wire so;
479 wire l1clk, siclk, soclk;
480
481
482
483 reg l1;
484
485 always @(l1clk or siclk or soclk or d or si or se)
486 begin
487
488 if (siclk) l1 <= si; // Load master with scan or flush
489
490 if(se && !soclk && l1clk && siclk) q <= si;
491 else if ( se && !soclk && l1clk) q <= l1;
492 else if ( !soclk && l1clk) q <= d;
493 end
494
495
496
497
498 `ifdef INITLATZERO
499 initial q = 1'b0;
500 `endif
501
502
503
504 assign so = q;
505
506endmodule // dff
507module cl_dp1_msffmin_16x ( q, so, d, l1clk, si, siclk, soclk );
508// RFM 05-14-2004
509// Level sensitive in SCAN_MODE
510// Edge triggered when not in SCAN_MODE
511
512
513 parameter SIZE = 1;
514
515 output q;
516 output so;
517
518 input d;
519 input l1clk;
520 input si;
521 input siclk;
522 input soclk;
523
524 reg q;
525 wire so;
526 wire l1clk, siclk, soclk;
527
528 `ifdef SCAN_MODE
529
530 reg l1;
531`ifdef FAST_FLUSH
532 always @(posedge l1clk or posedge siclk ) begin
533 if (siclk) begin
534 q <= 1'b0; //pseudo flush reset
535 end else begin
536 q <= d;
537 end
538 end
539 `else
540 always @(l1clk or siclk or soclk or d or si)
541 begin
542 if (!l1clk && !siclk) l1 <= d; // Load master with data
543 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
544 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
545
546 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
547 if ( l1clk && siclk && !soclk) q <= si; // Flush
548 end
549 `endif
550 `else
551 wire si_unused;
552 wire siclk_unused;
553 wire soclk_unused;
554 assign si_unused = si;
555 assign siclk_unused = siclk;
556 assign soclk_unused = soclk;
557
558
559 `ifdef INITLATZERO
560 initial q = 1'b0;
561 `endif
562
563 always @(posedge l1clk)
564 begin
565 if (!siclk && !soclk) q <= d;
566 else q <= 1'bx;
567 end
568 `endif
569
570 assign so = q;
571
572endmodule // dff
573
574
575
576
577module cl_dp1_msffmin_8x ( q, so, d, l1clk, si, siclk, soclk );
578// RFM 05-14-2004
579// Level sensitive in SCAN_MODE
580// Edge triggered when not in SCAN_MODE
581
582
583 parameter SIZE = 1;
584
585 output q;
586 output so;
587
588 input d;
589 input l1clk;
590 input si;
591 input siclk;
592 input soclk;
593
594 reg q;
595 wire so;
596 wire l1clk, siclk, soclk;
597
598 `ifdef SCAN_MODE
599
600 reg l1;
601`ifdef FAST_FLUSH
602 always @(posedge l1clk or posedge siclk ) begin
603 if (siclk) begin
604 q <= 1'b0; //pseudo flush reset
605 end else begin
606 q <= d;
607 end
608 end
609 `else
610 always @(l1clk or siclk or soclk or d or si)
611 begin
612 if (!l1clk && !siclk) l1 <= d; // Load master with data
613 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
614 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
615
616 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
617 if ( l1clk && siclk && !soclk) q <= si; // Flush
618 end
619 `endif
620 `else
621 wire si_unused;
622 wire siclk_unused;
623 wire soclk_unused;
624 assign si_unused = si;
625 assign siclk_unused = siclk;
626 assign soclk_unused = soclk;
627
628
629 `ifdef INITLATZERO
630 initial q = 1'b0;
631 `endif
632
633 always @(posedge l1clk)
634 begin
635 if (!siclk && !soclk) q <= d;
636 else q <= 1'bx;
637 end
638 `endif
639
640 assign so = q;
641
642endmodule // dff
643module cl_dp1_msffmin_4x ( q, so, d, l1clk, si, siclk, soclk );
644// RFM 05-14-2004
645// Level sensitive in SCAN_MODE
646// Edge triggered when not in SCAN_MODE
647
648
649 parameter SIZE = 1;
650
651 output q;
652 output so;
653
654 input d;
655 input l1clk;
656 input si;
657 input siclk;
658 input soclk;
659
660 reg q;
661 wire so;
662 wire l1clk, siclk, soclk;
663
664 `ifdef SCAN_MODE
665
666 reg l1;
667`ifdef FAST_FLUSH
668 always @(posedge l1clk or posedge siclk ) begin
669 if (siclk) begin
670 q <= 1'b0; //pseudo flush reset
671 end else begin
672 q <= d;
673 end
674 end
675 `else
676 always @(l1clk or siclk or soclk or d or si)
677 begin
678 if (!l1clk && !siclk) l1 <= d; // Load master with data
679 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
680 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
681
682 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
683 if ( l1clk && siclk && !soclk) q <= si; // Flush
684 end
685 `endif
686 `else
687 wire si_unused;
688 wire siclk_unused;
689 wire soclk_unused;
690 assign si_unused = si;
691 assign siclk_unused = siclk;
692 assign soclk_unused = soclk;
693
694
695 `ifdef INITLATZERO
696 initial q = 1'b0;
697 `endif
698
699 always @(posedge l1clk)
700 begin
701 if (!siclk && !soclk) q <= d;
702 else q <= 1'bx;
703 end
704 `endif
705
706 assign so = q;
707
708endmodule // dff
709module cl_dp1_msffmin_32x ( q, so, d, l1clk, si, siclk, soclk );
710// RFM 05-14-2004
711// Level sensitive in SCAN_MODE
712// Edge triggered when not in SCAN_MODE
713
714
715 parameter SIZE = 1;
716
717 output q;
718 output so;
719
720 input d;
721 input l1clk;
722 input si;
723 input siclk;
724 input soclk;
725
726 reg q;
727 wire so;
728 wire l1clk, siclk, soclk;
729
730 `ifdef SCAN_MODE
731
732 reg l1;
733`ifdef FAST_FLUSH
734 always @(posedge l1clk or posedge siclk ) begin
735 if (siclk) begin
736 q <= 1'b0; //pseudo flush reset
737 end else begin
738 q <= d;
739 end
740 end
741 `else
742 always @(l1clk or siclk or soclk or d or si)
743 begin
744 if (!l1clk && !siclk) l1 <= d; // Load master with data
745 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
746 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
747
748 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
749 if ( l1clk && siclk && !soclk) q <= si; // Flush
750 end
751 `endif
752 `else
753 wire si_unused;
754 wire siclk_unused;
755 wire soclk_unused;
756 assign si_unused = si;
757 assign siclk_unused = siclk;
758 assign soclk_unused = soclk;
759
760
761 `ifdef INITLATZERO
762 initial q = 1'b0;
763 `endif
764
765 always @(posedge l1clk)
766 begin
767 if (!siclk && !soclk) q <= d;
768 else q <= 1'bx;
769 end
770 `endif
771
772 assign so = q;
773
774endmodule // dff
775module cl_dp1_msffmin_1x ( q, so, d, l1clk, si, siclk, soclk );
776// RFM 05-14-2004
777// Level sensitive in SCAN_MODE
778// Edge triggered when not in SCAN_MODE
779
780
781 parameter SIZE = 1;
782
783 output q;
784 output so;
785
786 input d;
787 input l1clk;
788 input si;
789 input siclk;
790 input soclk;
791
792 reg q;
793 wire so;
794 wire l1clk, siclk, soclk;
795
796 `ifdef SCAN_MODE
797
798 reg l1;
799`ifdef FAST_FLUSH
800 always @(posedge l1clk or posedge siclk ) begin
801 if (siclk) begin
802 q <= 1'b0; //pseudo flush reset
803 end else begin
804 q <= d;
805 end
806 end
807 `else
808 always @(l1clk or siclk or soclk or d or si)
809 begin
810 if (!l1clk && !siclk) l1 <= d; // Load master with data
811 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
812 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
813
814 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
815 if ( l1clk && siclk && !soclk) q <= si; // Flush
816 end
817 `endif
818 `else
819 wire si_unused;
820 wire siclk_unused;
821 wire soclk_unused;
822 assign si_unused = si;
823 assign siclk_unused = siclk;
824 assign soclk_unused = soclk;
825
826
827 `ifdef INITLATZERO
828 initial q = 1'b0;
829 `endif
830
831 always @(posedge l1clk)
832 begin
833 if (!siclk && !soclk) q <= d;
834 else q <= 1'bx;
835 end
836 `endif
837
838 assign so = q;
839
840endmodule // dff
841module cl_dp1_rep_32x (
842in,
843out
844);
845input in;
846output out;
847
848`ifdef LIB
849assign out = in;
850`endif
851
852endmodule
853
854module cl_dp1_rep_m6_32x (
855in,
856out
857);
858input in;
859output out;
860
861`ifdef LIB
862assign out = in;
863`endif
864
865endmodule
866
867module cl_dp1_add12_8x (
868cin,
869in0,
870in1,
871out,
872cout
873);
874input cin;
875input [11:0] in0;
876input [11:0] in1;
877output [11:0] out;
878output cout;
879
880`ifdef LIB
881 assign {cout, out[11:0]} = ({1'b0, in0[11:0]} + {1'b0, in1[11:0]} + {{12{1'b0}}, cin});
882`endif
883
884endmodule
885module cl_dp1_add136_8x (
886 din0,
887 din1,
888 din2,
889 sel_din2,
890 sum,
891 fya_sticky_dp,
892 fya_sticky_sp,
893 fya_xicc_z);
894wire [101:0] p;
895wire [100:0] k;
896wire [101:0] z;
897
898
899 input [135:0] din0;
900 input [132:0] din1;
901 input [135:0] din2;
902 input [3:0] sel_din2;
903
904 output [135:0] sum;
905 output fya_sticky_dp;
906 output fya_sticky_sp;
907 output [1:0] fya_xicc_z;
908
909`ifdef LIB
910
911 assign sum[135:0] = { din0[135:0]} +
912 {3'b000,din1[132:0]} +
913 ({{{40{sel_din2[3]}} & din2[135:96]},
914 {{32{sel_din2[2]}} & din2[95:64] },
915 {{32{sel_din2[1]}} & din2[63:32] },
916 {{32{sel_din2[0]}} & din2[31:0] }});
917
918
919 // 127 126 125 ... 74 73 72 0
920 // --- --- --------------- --- ------------
921 // Float DP x x . 52 fraction G -> Sticky ->
922
923 // 127 126 125 ... 103 102 101 0
924 // --- --- --------------- --- ------------
925 // Float SP x x . 23 fraction G -> Sticky ->
926
927
928 assign p[101:0] = din0[101:0] ^ {din1[101:4],{4{1'b0}}};
929 assign k[100:0] = ~din0[100:0] & ~{din1[100:4],{4{1'b0}}};
930
931 assign z[101:1] = p[101:1] ^ k[100:0];
932 assign z[0] = ~p[0];
933
934 assign fya_sticky_sp = ~(& z[101:0]);
935 assign fya_sticky_dp = ~(& z[72:0]);
936
937 assign fya_xicc_z[1] = & z[63:0];
938 assign fya_xicc_z[0] = & z[31:0];
939
940`endif
941
942endmodule
943module cl_dp1_add16_8x (
944cin,
945in0,
946in1,
947out,
948cout
949);
950input cin;
951input [15:0] in0;
952input [15:0] in1;
953output [15:0] out;
954output cout;
955
956`ifdef LIB
957 assign {cout, out[15:0]} = ({1'b0, in0[15:0]} + {1'b0, in1[15:0]} + {{16{1'b0}}, cin});
958`endif
959
960endmodule
961module cl_dp1_add32_8x (
962cin,
963in0,
964in1,
965out,
966cout
967);
968input cin;
969input [31:0] in0;
970input [31:0] in1;
971output [31:0] out;
972output cout;
973
974`ifdef LIB
975 assign {cout, out[31:0]} = ({1'b0, in0[31:0]} + {1'b0, in1[31:0]} + {{32{1'b0}}, cin});
976`endif
977
978endmodule
979module cl_dp1_add4_8x (
980cin,
981in0,
982in1,
983out,
984cout
985);
986input cin;
987input [3:0] in0;
988input [3:0] in1;
989output [3:0] out;
990output cout;
991
992`ifdef LIB
993 assign {cout, out[3:0]} = ({1'b0, in0[3:0]} + {1'b0, in1[3:0]} + {{4{1'b0}}, cin});
994`endif
995
996endmodule
997module cl_dp1_add64_8x (
998cin,
999in0,
1000in1,
1001out,
1002cout
1003);
1004input cin;
1005input [63:0] in0;
1006input [63:0] in1;
1007output [63:0] out;
1008output cout;
1009
1010`ifdef LIB
1011 assign {cout, out[63:0]} = ({1'b0, in0[63:0]} + {1'b0, in1[63:0]} + {{64{1'b0}}, cin});
1012`endif
1013
1014endmodule
1015module cl_dp1_add8_8x (
1016cin,
1017in0,
1018in1,
1019out,
1020cout
1021);
1022input cin;
1023input [7:0] in0;
1024input [7:0] in1;
1025output [7:0] out;
1026output cout;
1027
1028`ifdef LIB
1029 assign {cout, out[7:0]} = ({1'b0, in0[7:0]} + {1'b0, in1[7:0]} + {{8{1'b0}}, cin});
1030`endif
1031
1032endmodule
1033
1034module cl_dp1_aomux2_1x (
1035in0,
1036in1,
1037sel0,
1038sel1,
1039out
1040);
1041input in0;
1042input in1;
1043input sel0;
1044input sel1;
1045output out;
1046
1047`ifdef LIB
1048assign out = ((sel0 & in0) |
1049 (sel1 & in1));
1050`endif
1051
1052
1053endmodule
1054module cl_dp1_aomux2_2x (
1055in0,
1056in1,
1057sel0,
1058sel1,
1059out
1060);
1061input in0;
1062input in1;
1063input sel0;
1064input sel1;
1065output out;
1066
1067`ifdef LIB
1068assign out = ((sel0 & in0) |
1069 (sel1 & in1));
1070`endif
1071
1072
1073endmodule
1074module cl_dp1_aomux2_4x (
1075in0,
1076in1,
1077sel0,
1078sel1,
1079out
1080);
1081input in0;
1082input in1;
1083input sel0;
1084input sel1;
1085output out;
1086
1087`ifdef LIB
1088assign out = ((sel0 & in0) |
1089 (sel1 & in1));
1090`endif
1091
1092
1093endmodule
1094module cl_dp1_aomux2_6x (
1095in0,
1096in1,
1097sel0,
1098sel1,
1099out
1100);
1101input in0;
1102input in1;
1103input sel0;
1104input sel1;
1105output out;
1106
1107`ifdef LIB
1108assign out = ((sel0 & in0) |
1109 (sel1 & in1));
1110`endif
1111
1112
1113endmodule
1114module cl_dp1_aomux2_8x (
1115in0,
1116in1,
1117sel0,
1118sel1,
1119out
1120);
1121input in0;
1122input in1;
1123input sel0;
1124input sel1;
1125output out;
1126
1127`ifdef LIB
1128assign out = ((sel0 & in0) |
1129 (sel1 & in1));
1130`endif
1131
1132
1133endmodule
1134
1135module cl_dp1_aomux3_1x (
1136in0,
1137in1,
1138in2,
1139sel0,
1140sel1,
1141sel2,
1142out
1143);
1144input in0;
1145input in1;
1146input in2;
1147input sel0;
1148input sel1;
1149input sel2;
1150output out;
1151
1152`ifdef LIB
1153assign out = ((sel0 & in0) |
1154 (sel1 & in1) |
1155 (sel2 & in2));
1156`endif
1157
1158endmodule
1159module cl_dp1_aomux3_2x (
1160in0,
1161in1,
1162in2,
1163sel0,
1164sel1,
1165sel2,
1166out
1167);
1168input in0;
1169input in1;
1170input in2;
1171input sel0;
1172input sel1;
1173input sel2;
1174output out;
1175
1176`ifdef LIB
1177assign out = ((sel0 & in0) |
1178 (sel1 & in1) |
1179 (sel2 & in2));
1180`endif
1181
1182endmodule
1183module cl_dp1_aomux3_4x (
1184in0,
1185in1,
1186in2,
1187sel0,
1188sel1,
1189sel2,
1190out
1191);
1192input in0;
1193input in1;
1194input in2;
1195input sel0;
1196input sel1;
1197input sel2;
1198output out;
1199
1200`ifdef LIB
1201assign out = ((sel0 & in0) |
1202 (sel1 & in1) |
1203 (sel2 & in2));
1204`endif
1205
1206endmodule
1207module cl_dp1_aomux3_6x (
1208in0,
1209in1,
1210in2,
1211sel0,
1212sel1,
1213sel2,
1214out
1215);
1216input in0;
1217input in1;
1218input in2;
1219input sel0;
1220input sel1;
1221input sel2;
1222output out;
1223
1224`ifdef LIB
1225assign out = ((sel0 & in0) |
1226 (sel1 & in1) |
1227 (sel2 & in2));
1228`endif
1229
1230endmodule
1231module cl_dp1_aomux3_8x (
1232in0,
1233in1,
1234in2,
1235sel0,
1236sel1,
1237sel2,
1238out
1239);
1240input in0;
1241input in1;
1242input in2;
1243input sel0;
1244input sel1;
1245input sel2;
1246output out;
1247
1248`ifdef LIB
1249assign out = ((sel0 & in0) |
1250 (sel1 & in1) |
1251 (sel2 & in2));
1252`endif
1253
1254endmodule
1255
1256module cl_dp1_aomux4_1x (
1257in0,
1258in1,
1259in2,
1260in3,
1261sel0,
1262sel1,
1263sel2,
1264sel3,
1265out
1266);
1267input in0;
1268input in1;
1269input in2;
1270input in3;
1271input sel0;
1272input sel1;
1273input sel2;
1274input sel3;
1275output out;
1276
1277`ifdef LIB
1278assign out = ((sel0 & in0) |
1279 (sel1 & in1) |
1280 (sel2 & in2) |
1281 (sel3 & in3));
1282`endif
1283
1284endmodule
1285module cl_dp1_aomux4_2x (
1286in0,
1287in1,
1288in2,
1289in3,
1290sel0,
1291sel1,
1292sel2,
1293sel3,
1294out
1295);
1296input in0;
1297input in1;
1298input in2;
1299input in3;
1300input sel0;
1301input sel1;
1302input sel2;
1303input sel3;
1304output out;
1305
1306`ifdef LIB
1307assign out = ((sel0 & in0) |
1308 (sel1 & in1) |
1309 (sel2 & in2) |
1310 (sel3 & in3));
1311`endif
1312
1313endmodule
1314module cl_dp1_aomux4_4x (
1315in0,
1316in1,
1317in2,
1318in3,
1319sel0,
1320sel1,
1321sel2,
1322sel3,
1323out
1324);
1325input in0;
1326input in1;
1327input in2;
1328input in3;
1329input sel0;
1330input sel1;
1331input sel2;
1332input sel3;
1333output out;
1334
1335`ifdef LIB
1336assign out = ((sel0 & in0) |
1337 (sel1 & in1) |
1338 (sel2 & in2) |
1339 (sel3 & in3));
1340`endif
1341
1342endmodule
1343module cl_dp1_aomux4_6x (
1344in0,
1345in1,
1346in2,
1347in3,
1348sel0,
1349sel1,
1350sel2,
1351sel3,
1352out
1353);
1354input in0;
1355input in1;
1356input in2;
1357input in3;
1358input sel0;
1359input sel1;
1360input sel2;
1361input sel3;
1362output out;
1363
1364`ifdef LIB
1365assign out = ((sel0 & in0) |
1366 (sel1 & in1) |
1367 (sel2 & in2) |
1368 (sel3 & in3));
1369`endif
1370
1371endmodule
1372module cl_dp1_aomux4_8x (
1373in0,
1374in1,
1375in2,
1376in3,
1377sel0,
1378sel1,
1379sel2,
1380sel3,
1381out
1382);
1383input in0;
1384input in1;
1385input in2;
1386input in3;
1387input sel0;
1388input sel1;
1389input sel2;
1390input sel3;
1391output out;
1392
1393`ifdef LIB
1394assign out = ((sel0 & in0) |
1395 (sel1 & in1) |
1396 (sel2 & in2) |
1397 (sel3 & in3));
1398`endif
1399
1400endmodule
1401
1402module cl_dp1_aomux5_1x (
1403in0,
1404in1,
1405in2,
1406in3,
1407in4,
1408sel0,
1409sel1,
1410sel2,
1411sel3,
1412sel4,
1413out
1414);
1415input in0;
1416input in1;
1417input in2;
1418input in3;
1419input in4;
1420input sel0;
1421input sel1;
1422input sel2;
1423input sel3;
1424input sel4;
1425output out;
1426
1427`ifdef LIB
1428assign out = ((sel0 & in0) |
1429 (sel1 & in1) |
1430 (sel2 & in2) |
1431 (sel3 & in3) |
1432 (sel4 & in4));
1433`endif
1434
1435endmodule
1436module cl_dp1_aomux5_2x (
1437in0,
1438in1,
1439in2,
1440in3,
1441in4,
1442sel0,
1443sel1,
1444sel2,
1445sel3,
1446sel4,
1447out
1448);
1449input in0;
1450input in1;
1451input in2;
1452input in3;
1453input in4;
1454input sel0;
1455input sel1;
1456input sel2;
1457input sel3;
1458input sel4;
1459output out;
1460
1461`ifdef LIB
1462assign out = ((sel0 & in0) |
1463 (sel1 & in1) |
1464 (sel2 & in2) |
1465 (sel3 & in3) |
1466 (sel4 & in4));
1467`endif
1468
1469endmodule
1470module cl_dp1_aomux5_4x (
1471in0,
1472in1,
1473in2,
1474in3,
1475in4,
1476sel0,
1477sel1,
1478sel2,
1479sel3,
1480sel4,
1481out
1482);
1483input in0;
1484input in1;
1485input in2;
1486input in3;
1487input in4;
1488input sel0;
1489input sel1;
1490input sel2;
1491input sel3;
1492input sel4;
1493output out;
1494
1495`ifdef LIB
1496assign out = ((sel0 & in0) |
1497 (sel1 & in1) |
1498 (sel2 & in2) |
1499 (sel3 & in3) |
1500 (sel4 & in4));
1501`endif
1502
1503endmodule
1504module cl_dp1_aomux5_6x (
1505in0,
1506in1,
1507in2,
1508in3,
1509in4,
1510sel0,
1511sel1,
1512sel2,
1513sel3,
1514sel4,
1515out
1516);
1517input in0;
1518input in1;
1519input in2;
1520input in3;
1521input in4;
1522input sel0;
1523input sel1;
1524input sel2;
1525input sel3;
1526input sel4;
1527output out;
1528
1529`ifdef LIB
1530assign out = ((sel0 & in0) |
1531 (sel1 & in1) |
1532 (sel2 & in2) |
1533 (sel3 & in3) |
1534 (sel4 & in4));
1535`endif
1536
1537endmodule
1538module cl_dp1_aomux5_8x (
1539in0,
1540in1,
1541in2,
1542in3,
1543in4,
1544sel0,
1545sel1,
1546sel2,
1547sel3,
1548sel4,
1549out
1550);
1551input in0;
1552input in1;
1553input in2;
1554input in3;
1555input in4;
1556input sel0;
1557input sel1;
1558input sel2;
1559input sel3;
1560input sel4;
1561output out;
1562
1563`ifdef LIB
1564assign out = ((sel0 & in0) |
1565 (sel1 & in1) |
1566 (sel2 & in2) |
1567 (sel3 & in3) |
1568 (sel4 & in4));
1569`endif
1570
1571endmodule
1572
1573module cl_dp1_aomux6_1x (
1574in0,
1575in1,
1576in2,
1577in3,
1578in4,
1579in5,
1580sel0,
1581sel1,
1582sel2,
1583sel3,
1584sel4,
1585sel5,
1586out
1587);
1588input in0;
1589input in1;
1590input in2;
1591input in3;
1592input in4;
1593input in5;
1594input sel0;
1595input sel1;
1596input sel2;
1597input sel3;
1598input sel4;
1599input sel5;
1600output out;
1601
1602`ifdef LIB
1603assign out = ((sel0 & in0) |
1604 (sel1 & in1) |
1605 (sel2 & in2) |
1606 (sel3 & in3) |
1607 (sel4 & in4) |
1608 (sel5 & in5));
1609`endif
1610
1611endmodule
1612module cl_dp1_aomux6_2x (
1613in0,
1614in1,
1615in2,
1616in3,
1617in4,
1618in5,
1619sel0,
1620sel1,
1621sel2,
1622sel3,
1623sel4,
1624sel5,
1625out
1626);
1627input in0;
1628input in1;
1629input in2;
1630input in3;
1631input in4;
1632input in5;
1633input sel0;
1634input sel1;
1635input sel2;
1636input sel3;
1637input sel4;
1638input sel5;
1639output out;
1640
1641`ifdef LIB
1642assign out = ((sel0 & in0) |
1643 (sel1 & in1) |
1644 (sel2 & in2) |
1645 (sel3 & in3) |
1646 (sel4 & in4) |
1647 (sel5 & in5));
1648`endif
1649
1650endmodule
1651module cl_dp1_aomux6_4x (
1652in0,
1653in1,
1654in2,
1655in3,
1656in4,
1657in5,
1658sel0,
1659sel1,
1660sel2,
1661sel3,
1662sel4,
1663sel5,
1664out
1665);
1666input in0;
1667input in1;
1668input in2;
1669input in3;
1670input in4;
1671input in5;
1672input sel0;
1673input sel1;
1674input sel2;
1675input sel3;
1676input sel4;
1677input sel5;
1678output out;
1679
1680`ifdef LIB
1681assign out = ((sel0 & in0) |
1682 (sel1 & in1) |
1683 (sel2 & in2) |
1684 (sel3 & in3) |
1685 (sel4 & in4) |
1686 (sel5 & in5));
1687`endif
1688
1689endmodule
1690module cl_dp1_aomux6_6x (
1691in0,
1692in1,
1693in2,
1694in3,
1695in4,
1696in5,
1697sel0,
1698sel1,
1699sel2,
1700sel3,
1701sel4,
1702sel5,
1703out
1704);
1705input in0;
1706input in1;
1707input in2;
1708input in3;
1709input in4;
1710input in5;
1711input sel0;
1712input sel1;
1713input sel2;
1714input sel3;
1715input sel4;
1716input sel5;
1717output out;
1718
1719`ifdef LIB
1720assign out = ((sel0 & in0) |
1721 (sel1 & in1) |
1722 (sel2 & in2) |
1723 (sel3 & in3) |
1724 (sel4 & in4) |
1725 (sel5 & in5));
1726`endif
1727
1728endmodule
1729module cl_dp1_aomux6_8x (
1730in0,
1731in1,
1732in2,
1733in3,
1734in4,
1735in5,
1736sel0,
1737sel1,
1738sel2,
1739sel3,
1740sel4,
1741sel5,
1742out
1743);
1744input in0;
1745input in1;
1746input in2;
1747input in3;
1748input in4;
1749input in5;
1750input sel0;
1751input sel1;
1752input sel2;
1753input sel3;
1754input sel4;
1755input sel5;
1756output out;
1757
1758`ifdef LIB
1759assign out = ((sel0 & in0) |
1760 (sel1 & in1) |
1761 (sel2 & in2) |
1762 (sel3 & in3) |
1763 (sel4 & in4) |
1764 (sel5 & in5));
1765`endif
1766
1767endmodule
1768
1769module cl_dp1_aomux7_1x (
1770in0,
1771in1,
1772in2,
1773in3,
1774in4,
1775in5,
1776in6,
1777sel0,
1778sel1,
1779sel2,
1780sel3,
1781sel4,
1782sel5,
1783sel6,
1784out
1785);
1786input in0;
1787input in1;
1788input in2;
1789input in3;
1790input in4;
1791input in5;
1792input in6;
1793input sel0;
1794input sel1;
1795input sel2;
1796input sel3;
1797input sel4;
1798input sel5;
1799input sel6;
1800output out;
1801
1802`ifdef LIB
1803assign out = ((sel0 & in0) |
1804 (sel1 & in1) |
1805 (sel2 & in2) |
1806 (sel3 & in3) |
1807 (sel4 & in4) |
1808 (sel5 & in5) |
1809 (sel6 & in6));
1810`endif
1811
1812endmodule
1813module cl_dp1_aomux7_2x (
1814in0,
1815in1,
1816in2,
1817in3,
1818in4,
1819in5,
1820in6,
1821sel0,
1822sel1,
1823sel2,
1824sel3,
1825sel4,
1826sel5,
1827sel6,
1828out
1829);
1830input in0;
1831input in1;
1832input in2;
1833input in3;
1834input in4;
1835input in5;
1836input in6;
1837input sel0;
1838input sel1;
1839input sel2;
1840input sel3;
1841input sel4;
1842input sel5;
1843input sel6;
1844output out;
1845
1846`ifdef LIB
1847assign out = ((sel0 & in0) |
1848 (sel1 & in1) |
1849 (sel2 & in2) |
1850 (sel3 & in3) |
1851 (sel4 & in4) |
1852 (sel5 & in5) |
1853 (sel6 & in6));
1854`endif
1855
1856endmodule
1857module cl_dp1_aomux7_4x (
1858in0,
1859in1,
1860in2,
1861in3,
1862in4,
1863in5,
1864in6,
1865sel0,
1866sel1,
1867sel2,
1868sel3,
1869sel4,
1870sel5,
1871sel6,
1872out
1873);
1874input in0;
1875input in1;
1876input in2;
1877input in3;
1878input in4;
1879input in5;
1880input in6;
1881input sel0;
1882input sel1;
1883input sel2;
1884input sel3;
1885input sel4;
1886input sel5;
1887input sel6;
1888output out;
1889
1890`ifdef LIB
1891assign out = ((sel0 & in0) |
1892 (sel1 & in1) |
1893 (sel2 & in2) |
1894 (sel3 & in3) |
1895 (sel4 & in4) |
1896 (sel5 & in5) |
1897 (sel6 & in6));
1898`endif
1899
1900endmodule
1901module cl_dp1_aomux7_6x (
1902in0,
1903in1,
1904in2,
1905in3,
1906in4,
1907in5,
1908in6,
1909sel0,
1910sel1,
1911sel2,
1912sel3,
1913sel4,
1914sel5,
1915sel6,
1916out
1917);
1918input in0;
1919input in1;
1920input in2;
1921input in3;
1922input in4;
1923input in5;
1924input in6;
1925input sel0;
1926input sel1;
1927input sel2;
1928input sel3;
1929input sel4;
1930input sel5;
1931input sel6;
1932output out;
1933
1934`ifdef LIB
1935assign out = ((sel0 & in0) |
1936 (sel1 & in1) |
1937 (sel2 & in2) |
1938 (sel3 & in3) |
1939 (sel4 & in4) |
1940 (sel5 & in5) |
1941 (sel6 & in6));
1942`endif
1943
1944endmodule
1945module cl_dp1_aomux7_8x (
1946in0,
1947in1,
1948in2,
1949in3,
1950in4,
1951in5,
1952in6,
1953sel0,
1954sel1,
1955sel2,
1956sel3,
1957sel4,
1958sel5,
1959sel6,
1960out
1961);
1962input in0;
1963input in1;
1964input in2;
1965input in3;
1966input in4;
1967input in5;
1968input in6;
1969input sel0;
1970input sel1;
1971input sel2;
1972input sel3;
1973input sel4;
1974input sel5;
1975input sel6;
1976output out;
1977
1978`ifdef LIB
1979assign out = ((sel0 & in0) |
1980 (sel1 & in1) |
1981 (sel2 & in2) |
1982 (sel3 & in3) |
1983 (sel4 & in4) |
1984 (sel5 & in5) |
1985 (sel6 & in6));
1986`endif
1987
1988endmodule
1989
1990module cl_dp1_aomux8_1x (
1991in0,
1992in1,
1993in2,
1994in3,
1995in4,
1996in5,
1997in6,
1998in7,
1999sel0,
2000sel1,
2001sel2,
2002sel3,
2003sel4,
2004sel5,
2005sel6,
2006sel7,
2007out
2008);
2009input in0;
2010input in1;
2011input in2;
2012input in3;
2013input in4;
2014input in5;
2015input in6;
2016input in7;
2017input sel0;
2018input sel1;
2019input sel2;
2020input sel3;
2021input sel4;
2022input sel5;
2023input sel6;
2024input sel7;
2025output out;
2026
2027`ifdef LIB
2028assign out = ((sel0 & in0) |
2029 (sel1 & in1) |
2030 (sel2 & in2) |
2031 (sel3 & in3) |
2032 (sel4 & in4) |
2033 (sel5 & in5) |
2034 (sel6 & in6) |
2035 (sel7 & in7));
2036`endif
2037
2038
2039endmodule
2040module cl_dp1_aomux8_2x (
2041in0,
2042in1,
2043in2,
2044in3,
2045in4,
2046in5,
2047in6,
2048in7,
2049sel0,
2050sel1,
2051sel2,
2052sel3,
2053sel4,
2054sel5,
2055sel6,
2056sel7,
2057out
2058);
2059input in0;
2060input in1;
2061input in2;
2062input in3;
2063input in4;
2064input in5;
2065input in6;
2066input in7;
2067input sel0;
2068input sel1;
2069input sel2;
2070input sel3;
2071input sel4;
2072input sel5;
2073input sel6;
2074input sel7;
2075output out;
2076
2077`ifdef LIB
2078assign out = ((sel0 & in0) |
2079 (sel1 & in1) |
2080 (sel2 & in2) |
2081 (sel3 & in3) |
2082 (sel4 & in4) |
2083 (sel5 & in5) |
2084 (sel6 & in6) |
2085 (sel7 & in7));
2086`endif
2087
2088
2089endmodule
2090module cl_dp1_aomux8_4x (
2091in0,
2092in1,
2093in2,
2094in3,
2095in4,
2096in5,
2097in6,
2098in7,
2099sel0,
2100sel1,
2101sel2,
2102sel3,
2103sel4,
2104sel5,
2105sel6,
2106sel7,
2107out
2108);
2109input in0;
2110input in1;
2111input in2;
2112input in3;
2113input in4;
2114input in5;
2115input in6;
2116input in7;
2117input sel0;
2118input sel1;
2119input sel2;
2120input sel3;
2121input sel4;
2122input sel5;
2123input sel6;
2124input sel7;
2125output out;
2126
2127`ifdef LIB
2128assign out = ((sel0 & in0) |
2129 (sel1 & in1) |
2130 (sel2 & in2) |
2131 (sel3 & in3) |
2132 (sel4 & in4) |
2133 (sel5 & in5) |
2134 (sel6 & in6) |
2135 (sel7 & in7));
2136`endif
2137
2138
2139endmodule
2140module cl_dp1_aomux8_6x (
2141in0,
2142in1,
2143in2,
2144in3,
2145in4,
2146in5,
2147in6,
2148in7,
2149sel0,
2150sel1,
2151sel2,
2152sel3,
2153sel4,
2154sel5,
2155sel6,
2156sel7,
2157out
2158);
2159input in0;
2160input in1;
2161input in2;
2162input in3;
2163input in4;
2164input in5;
2165input in6;
2166input in7;
2167input sel0;
2168input sel1;
2169input sel2;
2170input sel3;
2171input sel4;
2172input sel5;
2173input sel6;
2174input sel7;
2175output out;
2176
2177`ifdef LIB
2178assign out = ((sel0 & in0) |
2179 (sel1 & in1) |
2180 (sel2 & in2) |
2181 (sel3 & in3) |
2182 (sel4 & in4) |
2183 (sel5 & in5) |
2184 (sel6 & in6) |
2185 (sel7 & in7));
2186`endif
2187
2188
2189endmodule
2190module cl_dp1_aomux8_8x (
2191in0,
2192in1,
2193in2,
2194in3,
2195in4,
2196in5,
2197in6,
2198in7,
2199sel0,
2200sel1,
2201sel2,
2202sel3,
2203sel4,
2204sel5,
2205sel6,
2206sel7,
2207out
2208);
2209input in0;
2210input in1;
2211input in2;
2212input in3;
2213input in4;
2214input in5;
2215input in6;
2216input in7;
2217input sel0;
2218input sel1;
2219input sel2;
2220input sel3;
2221input sel4;
2222input sel5;
2223input sel6;
2224input sel7;
2225output out;
2226
2227`ifdef LIB
2228assign out = ((sel0 & in0) |
2229 (sel1 & in1) |
2230 (sel2 & in2) |
2231 (sel3 & in3) |
2232 (sel4 & in4) |
2233 (sel5 & in5) |
2234 (sel6 & in6) |
2235 (sel7 & in7));
2236`endif
2237
2238
2239endmodule
2240module cl_dp1_boothenc_4x (
2241 din,
2242 xr_mode,
2243 dout,
2244 pout,
2245 hout
2246);
2247
2248 input [2:0] din;
2249
2250 input xr_mode;
2251
2252 output [4:0] dout;
2253
2254 output pout;
2255
2256 output hout;
2257`ifdef LIB
2258 assign dout[0] = (~xr_mode & ~din[2] & ~din[1] & din[0]) | // +1
2259 (~xr_mode & ~din[2] & din[1] & ~din[0]) |
2260 ( xr_mode & ~din[2] & din[1] );
2261
2262 assign dout[1] = (~xr_mode & ~din[2] & din[1] & din[0]) | // +2
2263 ( xr_mode & din[2] & ~din[1] );
2264
2265 assign dout[2] = (~xr_mode & din[2] & ~din[1] & ~din[0]); // -2
2266
2267 assign dout[3] = (~xr_mode & din[2] & ~din[1] & din[0]) | // -1
2268 (~xr_mode & din[2] & din[1] & ~din[0]);
2269
2270 assign dout[4] = ( xr_mode & din[2] & din[1] ); // +3
2271
2272
2273 assign pout = (~xr_mode & ~din[2] ) | // P
2274 (~xr_mode & din[1] & din[0]);
2275
2276 assign hout = (~xr_mode & din[2] & ~din[1] ) | // H
2277 (~xr_mode & din[2] & ~din[0]);
2278
2279`endif
2280
2281
2282
2283endmodule
2284
2285module cl_dp1_boothenc_8x (
2286 din,
2287 xr_mode,
2288 dout,
2289 pout,
2290 hout
2291);
2292
2293 input [2:0] din;
2294
2295 input xr_mode;
2296
2297 output [4:0] dout;
2298
2299 output pout;
2300
2301 output hout;
2302`ifdef LIB
2303 assign dout[0] = (~xr_mode & ~din[2] & ~din[1] & din[0]) | // +1
2304 (~xr_mode & ~din[2] & din[1] & ~din[0]) |
2305 ( xr_mode & ~din[2] & din[1] );
2306
2307 assign dout[1] = (~xr_mode & ~din[2] & din[1] & din[0]) | // +2
2308 ( xr_mode & din[2] & ~din[1] );
2309
2310 assign dout[2] = (~xr_mode & din[2] & ~din[1] & ~din[0]); // -2
2311
2312 assign dout[3] = (~xr_mode & din[2] & ~din[1] & din[0]) | // -1
2313 (~xr_mode & din[2] & din[1] & ~din[0]);
2314
2315 assign dout[4] = ( xr_mode & din[2] & din[1] ); // +3
2316
2317
2318 assign pout = (~xr_mode & ~din[2] ) | // P
2319 (~xr_mode & din[1] & din[0]);
2320
2321 assign hout = (~xr_mode & din[2] & ~din[1] ) | // H
2322 (~xr_mode & din[2] & ~din[0]);
2323
2324`endif
2325
2326
2327
2328endmodule
2329
2330module cl_dp1_cmpr12_8x (
2331in0,
2332in1,
2333out
2334);
2335input [11:0] in0;
2336input [11:0] in1;
2337output out;
2338
2339`ifdef LIB
2340assign out = (in0[11:0] == in1[11:0]);
2341`endif
2342
2343endmodule
2344module cl_dp1_cmpr16_8x (
2345in0,
2346in1,
2347out
2348);
2349input [15:0] in0;
2350input [15:0] in1;
2351output out;
2352
2353`ifdef LIB
2354assign out = (in0[15:0] == in1[15:0]);
2355`endif
2356
2357endmodule
2358module cl_dp1_cmpr32_8x (
2359in0,
2360in1,
2361out
2362);
2363input [31:0] in0;
2364input [31:0] in1;
2365output out;
2366
2367`ifdef LIB
2368assign out = (in0[31:0] == in1[31:0]);
2369`endif
2370
2371endmodule
2372module cl_dp1_cmpr4_8x (
2373in0,
2374in1,
2375out
2376);
2377input [3:0] in0;
2378input [3:0] in1;
2379output out;
2380
2381`ifdef LIB
2382assign out = (in0[3:0] == in1[3:0]);
2383`endif
2384
2385endmodule
2386module cl_dp1_cmpr64_8x (
2387in0,
2388in1,
2389out
2390);
2391input [63:0] in0;
2392input [63:0] in1;
2393output out;
2394
2395`ifdef LIB
2396assign out = (in0[63:0] == in1[63:0]);
2397`endif
2398
2399endmodule
2400module cl_dp1_cmpr8_8x (
2401in0,
2402in1,
2403out
2404);
2405input [7:0] in0;
2406input [7:0] in1;
2407output out;
2408
2409`ifdef LIB
2410assign out = (in0[7:0] == in1[7:0]);
2411`endif
2412
2413endmodule
2414module cl_dp1_incr12_8x (
2415cin,
2416in0,
2417out,
2418cout
2419);
2420input cin;
2421input [11:0] in0;
2422output [11:0] out;
2423output cout;
2424
2425`ifdef LIB
2426 assign {cout, out[11:0]} = {1'b0, in0[11:0]} + {12'b0, cin};
2427`endif
2428
2429endmodule
2430module cl_dp1_incr16_8x (
2431cin,
2432in0,
2433out,
2434cout
2435);
2436input cin;
2437input [15:0] in0;
2438output [15:0] out;
2439output cout;
2440
2441`ifdef LIB
2442 assign {cout, out[15:0]} = {1'b0, in0[15:0]} + {16'b0, cin};
2443`endif
2444
2445endmodule
2446module cl_dp1_incr32_8x (
2447cin,
2448in0,
2449out,
2450cout
2451);
2452input cin;
2453input [31:0] in0;
2454output [31:0] out;
2455output cout;
2456
2457`ifdef LIB
2458 assign {cout, out[31:0]} = {1'b0, in0[31:0]} + {32'b0, cin};
2459`endif
2460
2461endmodule
2462module cl_dp1_incr4_8x (
2463cin,
2464in0,
2465out,
2466cout
2467);
2468input cin;
2469input [3:0] in0;
2470output [3:0] out;
2471output cout;
2472
2473`ifdef LIB
2474 assign {cout, out[3:0]} = {1'b0, in0[3:0]} + {4'b0, cin};
2475`endif
2476
2477endmodule
2478module cl_dp1_incr48_8x (
2479cin,
2480in0,
2481out,
2482cout
2483);
2484input cin;
2485input [47:0] in0;
2486output [47:0] out;
2487output cout;
2488
2489`ifdef LIB
2490 assign {cout, out[47:0]} = {1'b0, in0[47:0]} + {48'b0, cin};
2491`endif
2492
2493endmodule
2494module cl_dp1_incr64_8x (
2495cin,
2496in0,
2497out,
2498cout
2499);
2500input cin;
2501input [63:0] in0;
2502output [63:0] out;
2503output cout;
2504
2505`ifdef LIB
2506 assign {cout, out[63:0]} = {1'b0, in0[63:0]} + {64'b0, cin};
2507`endif
2508
2509endmodule
2510module cl_dp1_incr8_8x (
2511cin,
2512in0,
2513out,
2514cout
2515);
2516input cin;
2517input [7:0] in0;
2518output [7:0] out;
2519output cout;
2520
2521`ifdef LIB
2522 assign {cout, out[7:0]} = {1'b0, in0[7:0]} + {8'b0, cin};
2523`endif
2524
2525endmodule // cl_dp1_incr8_8x
2526module cl_dp1_l1hdr_12x (l1clk,
2527 l2clk,
2528 se,
2529 pce,
2530 pce_ov,
2531 stop,
2532 aclk,
2533 bclk,
2534 siclk_out,
2535 soclk_out
2536 );
2537// RFM 05/21/2004
2538
2539
2540 output l1clk;
2541 input l2clk; // level 2 clock, from clock grid
2542 input se; // Scan Enable
2543 input pce; // Clock enable for local power savings
2544 input pce_ov; // TCU sourced clock enable override for testing
2545 input stop; // TCU/CCU sourced clock stop for debug
2546 input aclk;
2547 input bclk;
2548 output siclk_out;
2549 output soclk_out;
2550`ifdef FORMAL_TOOL
2551wire l1en = (~stop & ( pce | pce_ov ));
2552assign l1clk = (l2clk & l1en) | se;
2553assign siclk_out = aclk;
2554assign soclk_out = bclk;
2555`else
2556 `ifdef LIB
2557reg l1en;
2558`ifdef SCAN_MODE
2559 always @ (l2clk or stop or pce or pce_ov)
2560 begin
2561 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2562 end
2563`else
2564 always @ (negedge l2clk )
2565 begin
2566 l1en <= (~stop & ( pce | pce_ov ));
2567 end
2568`endif
2569
2570 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2571
2572assign siclk_out = aclk;
2573assign soclk_out = bclk;
2574
2575 `endif // `ifdef LIB
2576`endif // !`ifdef FORMAL_TOOL
2577
2578
2579endmodule
2580
2581module cl_dp1_l1hdr_16x (l1clk,
2582 l2clk,
2583 se,
2584 pce,
2585 pce_ov,
2586 stop,
2587 aclk,
2588 bclk,
2589 siclk_out,
2590 soclk_out
2591 );
2592// RFM 05/21/2004
2593
2594
2595 output l1clk;
2596 input l2clk; // level 2 clock, from clock grid
2597 input se; // Scan Enable
2598 input pce; // Clock enable for local power savings
2599 input pce_ov; // TCU sourced clock enable override for testing
2600 input stop; // TCU/CCU sourced clock stop for debug
2601 input aclk;
2602 input bclk;
2603 output siclk_out;
2604 output soclk_out;
2605`ifdef FORMAL_TOOL
2606 wire l1en = (~stop & ( pce | pce_ov ));
2607 assign l1clk = (l2clk & l1en) | se;
2608 assign siclk_out = aclk;
2609 assign soclk_out = bclk;
2610 `else
2611`ifdef LIB
2612 reg l1en;
2613`ifdef SCAN_MODE
2614 always @ (l2clk or stop or pce or pce_ov)
2615 begin
2616 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2617 end
2618`else
2619 always @ (negedge l2clk )
2620 begin
2621 l1en <= (~stop & ( pce | pce_ov ));
2622 end
2623`endif
2624
2625
2626
2627
2628 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2629
2630assign siclk_out = aclk;
2631assign soclk_out = bclk;
2632
2633`endif
2634`endif
2635
2636endmodule
2637module cl_dp1_l1hdr_24x (l1clk,
2638 l2clk,
2639 se,
2640 pce,
2641 pce_ov,
2642 stop,
2643 aclk,
2644 bclk,
2645 siclk_out,
2646 soclk_out
2647 );
2648// RFM 05/21/2004
2649
2650
2651 output l1clk;
2652 input l2clk; // level 2 clock, from clock grid
2653 input se; // Scan Enable
2654 input pce; // Clock enable for local power savings
2655 input pce_ov; // TCU sourced clock enable override for testing
2656 input stop; // TCU/CCU sourced clock stop for debug
2657 input aclk;
2658 input bclk;
2659 output siclk_out;
2660 output soclk_out;
2661`ifdef FORMAL_TOOL
2662 wire l1en = (~stop & ( pce | pce_ov ));
2663 assign l1clk = (l2clk & l1en) | se;
2664 assign siclk_out = aclk;
2665 assign soclk_out = bclk;
2666 `else
2667`ifdef LIB
2668 reg l1en;
2669
2670`ifdef SCAN_MODE
2671 always @ (l2clk or stop or pce or pce_ov)
2672 begin
2673 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2674 end
2675`else
2676 always @ (negedge l2clk )
2677 begin
2678 l1en <= (~stop & ( pce | pce_ov ));
2679 end
2680`endif
2681
2682
2683
2684 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2685
2686assign siclk_out = aclk;
2687assign soclk_out = bclk;
2688
2689`endif
2690`endif
2691
2692endmodule
2693module cl_dp1_l1hdr_32x (l1clk,
2694 l2clk,
2695 se,
2696 pce,
2697 pce_ov,
2698 stop,
2699 aclk,
2700 bclk,
2701 siclk_out,
2702 soclk_out
2703 );
2704// RFM 05/21/2004
2705
2706
2707 output l1clk;
2708 input l2clk; // level 2 clock, from clock grid
2709 input se; // Scan Enable
2710 input pce; // Clock enable for local power savings
2711 input pce_ov; // TCU sourced clock enable override for testing
2712 input stop; // TCU/CCU sourced clock stop for debug
2713 input aclk;
2714 input bclk;
2715 output siclk_out;
2716 output soclk_out;
2717`ifdef FORMAL_TOOL
2718 wire l1en = (~stop & ( pce | pce_ov ));
2719 assign l1clk = (l2clk & l1en) | se;
2720 assign siclk_out = aclk;
2721 assign soclk_out = bclk;
2722 `else
2723`ifdef LIB
2724 reg l1en;
2725
2726
2727
2728 `ifdef SCAN_MODE
2729 always @ (l2clk or stop or pce or pce_ov)
2730 begin
2731 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2732 end
2733`else
2734 always @ (negedge l2clk )
2735 begin
2736 l1en <= (~stop & ( pce | pce_ov ));
2737 end
2738`endif
2739
2740 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2741
2742assign siclk_out = aclk;
2743assign soclk_out = bclk;
2744
2745`endif
2746`endif
2747
2748endmodule
2749module cl_dp1_l1hdr_4x (l1clk,
2750 l2clk,
2751 se,
2752 pce,
2753 pce_ov,
2754 stop,
2755 aclk,
2756 bclk,
2757 siclk_out,
2758 soclk_out
2759 );
2760// RFM 05/21/2004
2761
2762
2763 output l1clk;
2764 input l2clk; // level 2 clock, from clock grid
2765 input se; // Scan Enable
2766 input pce; // Clock enable for local power savings
2767 input pce_ov; // TCU sourced clock enable override for testing
2768 input stop; // TCU/CCU sourced clock stop for debug
2769 input aclk;
2770 input bclk;
2771 output siclk_out;
2772 output soclk_out;
2773`ifdef FORMAL_TOOL
2774 wire l1en = (~stop & ( pce | pce_ov ));
2775 assign l1clk = (l2clk & l1en) | se;
2776 assign siclk_out = aclk;
2777 assign soclk_out = bclk;
2778 `else
2779`ifdef LIB
2780 reg l1en;
2781
2782
2783
2784 `ifdef SCAN_MODE
2785 always @ (l2clk or stop or pce or pce_ov)
2786 begin
2787 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2788 end
2789`else
2790 always @ (negedge l2clk )
2791 begin
2792 l1en <= (~stop & ( pce | pce_ov ));
2793 end
2794`endif
2795
2796 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2797
2798assign siclk_out = aclk;
2799assign soclk_out = bclk;
2800
2801`endif
2802`endif
2803
2804endmodule
2805module cl_dp1_l1hdr_8x (l1clk,
2806 l2clk,
2807 se,
2808 pce,
2809 pce_ov,
2810 stop,
2811 aclk,
2812 bclk,
2813 siclk_out,
2814 soclk_out
2815 );
2816// RFM 05/21/2004
2817
2818
2819 output l1clk;
2820 input l2clk; // level 2 clock, from clock grid
2821 input se; // Scan Enable
2822 input pce; // Clock enable for local power savings
2823 input pce_ov; // TCU sourced clock enable override for testing
2824 input stop; // TCU/CCU sourced clock stop for debug
2825 input aclk;
2826 input bclk;
2827 output siclk_out;
2828 output soclk_out;
2829`ifdef FORMAL_TOOL
2830 wire l1en = (~stop & ( pce | pce_ov ));
2831 assign l1clk = (l2clk & l1en) | se;
2832 assign siclk_out = aclk;
2833 assign soclk_out = bclk;
2834 `else
2835`ifdef LIB
2836 reg l1en;
2837
2838
2839
2840 `ifdef SCAN_MODE
2841 always @ (l2clk or stop or pce or pce_ov)
2842 begin
2843 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2844 end
2845`else
2846 always @ (negedge l2clk )
2847 begin
2848 l1en <= (~stop & ( pce | pce_ov ));
2849 end
2850`endif
2851
2852 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2853
2854assign siclk_out = aclk;
2855assign soclk_out = bclk;
2856
2857`endif
2858`endif
2859
2860endmodule
2861module cl_dp1_l1hdr_48x (l1clk,
2862 l2clk,
2863 se,
2864 pce,
2865 pce_ov,
2866 stop,
2867 aclk,
2868 bclk,
2869 siclk_out,
2870 soclk_out
2871 );
2872// RFM 05/21/2004
2873
2874
2875 output l1clk;
2876 input l2clk; // level 2 clock, from clock grid
2877 input se; // Scan Enable
2878 input pce; // Clock enable for local power savings
2879 input pce_ov; // TCU sourced clock enable override for testing
2880 input stop; // TCU/CCU sourced clock stop for debug
2881 input aclk;
2882 input bclk;
2883 output siclk_out;
2884 output soclk_out;
2885`ifdef FORMAL_TOOL
2886 wire l1en = (~stop & ( pce | pce_ov ));
2887 assign l1clk = (l2clk & l1en) | se;
2888 assign siclk_out = aclk;
2889 assign soclk_out = bclk;
2890 `else
2891`ifdef LIB
2892 reg l1en;
2893
2894
2895
2896 `ifdef SCAN_MODE
2897 always @ (l2clk or stop or pce or pce_ov)
2898 begin
2899 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2900 end
2901`else
2902 always @ (negedge l2clk )
2903 begin
2904 l1en <= (~stop & ( pce | pce_ov ));
2905 end
2906`endif
2907
2908 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2909
2910assign siclk_out = aclk;
2911assign soclk_out = bclk;
2912
2913`endif
2914`endif
2915
2916endmodule
2917module cl_dp1_l1hdr_64x (l1clk,
2918 l2clk,
2919 se,
2920 pce,
2921 pce_ov,
2922 stop,
2923 aclk,
2924 bclk,
2925 siclk_out,
2926 soclk_out
2927 );
2928// RFM 05/21/2004
2929
2930
2931 output l1clk;
2932 input l2clk; // level 2 clock, from clock grid
2933 input se; // Scan Enable
2934 input pce; // Clock enable for local power savings
2935 input pce_ov; // TCU sourced clock enable override for testing
2936 input stop; // TCU/CCU sourced clock stop for debug
2937 input aclk;
2938 input bclk;
2939 output siclk_out;
2940 output soclk_out;
2941`ifdef FORMAL_TOOL
2942 wire l1en = (~stop & ( pce | pce_ov ));
2943 assign l1clk = (l2clk & l1en) | se;
2944 assign siclk_out = aclk;
2945 assign soclk_out = bclk;
2946 `else
2947`ifdef LIB
2948 reg l1en;
2949
2950
2951
2952 `ifdef SCAN_MODE
2953 always @ (l2clk or stop or pce or pce_ov)
2954 begin
2955 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
2956 end
2957`else
2958 always @ (negedge l2clk )
2959 begin
2960 l1en <= (~stop & ( pce | pce_ov ));
2961 end
2962`endif
2963
2964 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
2965
2966assign siclk_out = aclk;
2967assign soclk_out = bclk;
2968
2969`endif
2970`endif
2971
2972endmodule
2973module cl_dp1_l1hdr_nostop_48x (l1clk,
2974 l2clk,
2975 se,
2976 pce,
2977 pce_ov,
2978 stop,
2979 aclk,
2980 bclk,
2981 siclk_out,
2982 soclk_out
2983 );
2984// RFM 05/21/2004
2985
2986
2987 output l1clk;
2988 input l2clk; // level 2 clock, from clock grid
2989 input se; // Scan Enable
2990 input pce; // Clock enable for local power savings
2991 input pce_ov; // TCU sourced clock enable override for testing
2992 input stop; // TCU/CCU sourced clock stop for debug
2993 input aclk;
2994 input bclk;
2995 output siclk_out;
2996 output soclk_out;
2997`ifdef FORMAL_TOOL
2998 wire l1en = pce | pce_ov ;
2999 assign l1clk = (l2clk & l1en) | se;
3000 assign siclk_out = aclk;
3001 assign soclk_out = bclk;
3002 `else
3003`ifdef LIB
3004 reg l1en;
3005`ifdef SCAN_MODE
3006 always @ (l2clk or stop or pce or pce_ov)
3007 begin
3008 if (~l2clk) l1en <= ((pce | pce_ov));
3009 end
3010`else
3011
3012
3013 always @ (negedge l2clk )
3014 begin
3015 l1en <= (( pce | pce_ov ));
3016 end
3017`endif
3018
3019 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
3020
3021assign siclk_out = aclk;
3022assign soclk_out = bclk;
3023
3024`endif
3025`endif
3026
3027endmodule
3028module cl_dp1_inv_diode_16x (
3029in,
3030out
3031);
3032input in;
3033output out;
3034
3035`ifdef LIB
3036assign out = ~in;
3037`endif
3038
3039endmodule
3040module cl_dp1_l1hdr_nostop_72x (l1clk,
3041 l2clk,
3042 se,
3043 pce,
3044 pce_ov,
3045 stop,
3046 aclk,
3047 bclk,
3048 siclk_out,
3049 soclk_out
3050 );
3051// RFM 05/21/2004
3052
3053
3054 output l1clk;
3055 input l2clk; // level 2 clock, from clock grid
3056 input se; // Scan Enable
3057 input pce; // Clock enable for local power savings
3058 input pce_ov; // TCU sourced clock enable override for testing
3059 input stop; // TCU/CCU sourced clock stop for debug
3060 input aclk;
3061 input bclk;
3062 output siclk_out;
3063 output soclk_out;
3064`ifdef FORMAL_TOOL
3065 wire l1en = pce | pce_ov ;
3066 assign l1clk = (l2clk & l1en) | se;
3067 assign siclk_out = aclk;
3068 assign soclk_out = bclk;
3069 `else
3070`ifdef LIB
3071 reg l1en;
3072`ifdef SCAN_MODE
3073 always @ (l2clk or stop or pce or pce_ov)
3074 begin
3075 if (~l2clk) l1en <= ((pce | pce_ov));
3076 end
3077`else
3078
3079
3080 always @ (negedge l2clk )
3081 begin
3082 l1en <= (( pce | pce_ov ));
3083 end
3084`endif
3085 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
3086
3087assign siclk_out = aclk;
3088assign soclk_out = bclk;
3089
3090`endif
3091`endif
3092
3093endmodule
3094module cl_dp1_l1hdr_nostop_64x (l1clk,
3095 l2clk,
3096 se,
3097 pce,
3098 pce_ov,
3099 stop,
3100 aclk,
3101 bclk,
3102 siclk_out,
3103 soclk_out
3104 );
3105// RFM 05/21/2004
3106
3107
3108 output l1clk;
3109 input l2clk; // level 2 clock, from clock grid
3110 input se; // Scan Enable
3111 input pce; // Clock enable for local power savings
3112 input pce_ov; // TCU sourced clock enable override for testing
3113 input stop; // TCU/CCU sourced clock stop for debug
3114 input aclk;
3115 input bclk;
3116 output siclk_out;
3117 output soclk_out;
3118`ifdef FORMAL_TOOL
3119 wire l1en = pce | pce_ov ;
3120 assign l1clk = (l2clk & l1en) | se;
3121 assign siclk_out = aclk;
3122 assign soclk_out = bclk;
3123 `else
3124`ifdef LIB
3125 reg l1en;
3126
3127`ifdef SCAN_MODE
3128 always @ (l2clk or stop or pce or pce_ov)
3129 begin
3130 if (~l2clk) l1en <= ((pce | pce_ov));
3131 end
3132`else
3133
3134 always @ (negedge l2clk )
3135 begin
3136 l1en <= (( pce | pce_ov ));
3137 end
3138`endif
3139 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
3140
3141assign siclk_out = aclk;
3142assign soclk_out = bclk;
3143
3144`endif
3145`endif
3146
3147endmodule
3148module cl_dp1_msff_16x ( q, so, d, l1clk, si, siclk, soclk );
3149// RFM 05-14-2004
3150// Level sensitive in SCAN_MODE
3151// Edge triggered when not in SCAN_MODE
3152
3153
3154 parameter SIZE = 1;
3155
3156 output q;
3157 output so;
3158
3159 input d;
3160 input l1clk;
3161 input si;
3162 input siclk;
3163 input soclk;
3164
3165 reg q;
3166 wire so;
3167 wire l1clk, siclk, soclk;
3168
3169 `ifdef SCAN_MODE
3170
3171 reg l1;
3172`ifdef FAST_FLUSH
3173 always @(posedge l1clk or posedge siclk ) begin
3174 if (siclk) begin
3175 q <= 1'b0; //pseudo flush reset
3176 end else begin
3177 q <= d;
3178 end
3179 end
3180 `else
3181 always @(l1clk or siclk or soclk or d or si)
3182 begin
3183 if (!l1clk && !siclk) l1 <= d; // Load master with data
3184 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3185 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3186
3187 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3188 if ( l1clk && siclk && !soclk) q <= si; // Flush
3189 end
3190 `endif
3191 `else
3192 wire si_unused;
3193 wire siclk_unused;
3194 wire soclk_unused;
3195 assign si_unused = si;
3196 assign siclk_unused = siclk;
3197 assign soclk_unused = soclk;
3198
3199
3200 `ifdef INITLATZERO
3201 initial q = 1'b0;
3202 `endif
3203
3204 always @(posedge l1clk)
3205 begin
3206 if (!siclk && !soclk) q <= d;
3207 else q <= 1'bx;
3208 end
3209 `endif
3210
3211 assign so = q;
3212
3213endmodule // dff
3214
3215module cl_dp1_msff_1x ( q, so, d, l1clk, si, siclk, soclk );
3216// RFM 05-14-2004
3217// Level sensitive in SCAN_MODE
3218// Edge triggered when not in SCAN_MODE
3219
3220
3221 parameter SIZE = 1;
3222
3223 output q;
3224 output so;
3225
3226 input d;
3227 input l1clk;
3228 input si;
3229 input siclk;
3230 input soclk;
3231
3232 reg q;
3233 wire so;
3234 wire l1clk, siclk, soclk;
3235
3236 `ifdef SCAN_MODE
3237
3238 reg l1;
3239`ifdef FAST_FLUSH
3240 always @(posedge l1clk or posedge siclk ) begin
3241 if (siclk) begin
3242 q <= 1'b0; //pseudo flush reset
3243 end else begin
3244 q <= d;
3245 end
3246 end
3247 `else
3248 always @(l1clk or siclk or soclk or d or si)
3249 begin
3250 if (!l1clk && !siclk) l1 <= d; // Load master with data
3251 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3252 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3253
3254 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3255 if ( l1clk && siclk && !soclk) q <= si; // Flush
3256 end
3257 `endif
3258 `else
3259 wire si_unused;
3260 wire siclk_unused;
3261 wire soclk_unused;
3262 assign si_unused = si;
3263 assign siclk_unused = siclk;
3264 assign soclk_unused = soclk;
3265
3266
3267 `ifdef INITLATZERO
3268 initial q = 1'b0;
3269 `endif
3270
3271 always @(posedge l1clk)
3272 begin
3273 if (!siclk && !soclk) q <= d;
3274 else q <= 1'bx;
3275 end
3276 `endif
3277
3278 assign so = q;
3279
3280endmodule // dff
3281
3282module cl_dp1_msff_32x ( q, so, d, l1clk, si, siclk, soclk );
3283// RFM 05-14-2004
3284// Level sensitive in SCAN_MODE
3285// Edge triggered when not in SCAN_MODE
3286
3287
3288 parameter SIZE = 1;
3289
3290 output q;
3291 output so;
3292
3293 input d;
3294 input l1clk;
3295 input si;
3296 input siclk;
3297 input soclk;
3298
3299 reg q;
3300 wire so;
3301 wire l1clk, siclk, soclk;
3302
3303 `ifdef SCAN_MODE
3304
3305 reg l1;
3306`ifdef FAST_FLUSH
3307 always @(posedge l1clk or posedge siclk ) begin
3308 if (siclk) begin
3309 q <= 1'b0; //pseudo flush reset
3310 end else begin
3311 q <= d;
3312 end
3313 end
3314 `else
3315 always @(l1clk or siclk or soclk or d or si)
3316 begin
3317 if (!l1clk && !siclk) l1 <= d; // Load master with data
3318 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3319 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3320
3321 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3322 if ( l1clk && siclk && !soclk) q <= si; // Flush
3323 end
3324 `endif
3325 `else
3326 wire si_unused;
3327 wire siclk_unused;
3328 wire soclk_unused;
3329 assign si_unused = si;
3330 assign siclk_unused = siclk;
3331 assign soclk_unused = soclk;
3332
3333
3334 `ifdef INITLATZERO
3335 initial q = 1'b0;
3336 `endif
3337
3338 always @(posedge l1clk)
3339 begin
3340 if (!siclk && !soclk) q <= d;
3341 else q <= 1'bx;
3342 end
3343 `endif
3344
3345 assign so = q;
3346
3347endmodule // dff
3348
3349module cl_dp1_msff_4x ( q, so, d, l1clk, si, siclk, soclk );
3350// RFM 05-14-2004
3351// Level sensitive in SCAN_MODE
3352// Edge triggered when not in SCAN_MODE
3353
3354
3355 parameter SIZE = 1;
3356
3357 output q;
3358 output so;
3359
3360 input d;
3361 input l1clk;
3362 input si;
3363 input siclk;
3364 input soclk;
3365
3366 reg q;
3367 wire so;
3368 wire l1clk, siclk, soclk;
3369
3370 `ifdef SCAN_MODE
3371
3372 reg l1;
3373`ifdef FAST_FLUSH
3374 always @(posedge l1clk or posedge siclk ) begin
3375 if (siclk) begin
3376 q <= 1'b0; //pseudo flush reset
3377 end else begin
3378 q <= d;
3379 end
3380 end
3381 `else
3382 always @(l1clk or siclk or soclk or d or si)
3383 begin
3384 if (!l1clk && !siclk) l1 <= d; // Load master with data
3385 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3386 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3387
3388 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3389 if ( l1clk && siclk && !soclk) q <= si; // Flush
3390 end
3391 `endif
3392 `else
3393 wire si_unused;
3394 wire siclk_unused;
3395 wire soclk_unused;
3396 assign si_unused = si;
3397 assign siclk_unused = siclk;
3398 assign soclk_unused = soclk;
3399
3400
3401 `ifdef INITLATZERO
3402 initial q = 1'b0;
3403 `endif
3404
3405 always @(posedge l1clk)
3406 begin
3407 if (!siclk && !soclk) q <= d;
3408 else q <= 1'bx;
3409 end
3410 `endif
3411
3412 assign so = q;
3413
3414endmodule // dff
3415
3416module cl_dp1_msff_8x ( q, so, d, l1clk, si, siclk, soclk );
3417// RFM 05-14-2004
3418// Level sensitive in SCAN_MODE
3419// Edge triggered when not in SCAN_MODE
3420
3421
3422 parameter SIZE = 1;
3423
3424 output q;
3425 output so;
3426
3427 input d;
3428 input l1clk;
3429 input si;
3430 input siclk;
3431 input soclk;
3432
3433 reg q;
3434 wire so;
3435 wire l1clk, siclk, soclk;
3436
3437 `ifdef SCAN_MODE
3438
3439 reg l1;
3440`ifdef FAST_FLUSH
3441 always @(posedge l1clk or posedge siclk ) begin
3442 if (siclk) begin
3443 q <= 1'b0; //pseudo flush reset
3444 end else begin
3445 q <= d;
3446 end
3447 end
3448 `else
3449 always @(l1clk or siclk or soclk or d or si)
3450 begin
3451 if (!l1clk && !siclk) l1 <= d; // Load master with data
3452 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3453 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3454
3455 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3456 if ( l1clk && siclk && !soclk) q <= si; // Flush
3457 end
3458 `endif
3459 `else
3460 wire si_unused;
3461 wire siclk_unused;
3462 wire soclk_unused;
3463 assign si_unused = si;
3464 assign siclk_unused = siclk;
3465 assign soclk_unused = soclk;
3466
3467
3468 `ifdef INITLATZERO
3469 initial q = 1'b0;
3470 `endif
3471
3472 always @(posedge l1clk)
3473 begin
3474 if (!siclk && !soclk) q <= d;
3475 else q <= 1'bx;
3476 end
3477 `endif
3478
3479 assign so = q;
3480
3481endmodule // dff
3482
3483module cl_dp1_msffi_16x ( q_l, so, d, l1clk, si, siclk, soclk );
3484// RFM 05-14-2004
3485// Level sensitive in SCAN_MODE
3486// Edge triggered when not in SCAN_MODE
3487
3488
3489 parameter SIZE = 1;
3490
3491 output q_l;
3492 output so;
3493
3494 input d;
3495 input l1clk;
3496 input si;
3497 input siclk;
3498 input soclk;
3499
3500 reg q_l;
3501 reg q;
3502 wire so;
3503 wire l1clk, siclk, soclk;
3504
3505 `ifdef SCAN_MODE
3506 reg l1;
3507`ifdef FAST_FLUSH
3508 always @(posedge l1clk or posedge siclk ) begin
3509 if (siclk) begin
3510 q <= 1'b0; //pseudo flush reset
3511 end else begin
3512 q <= d;
3513 end
3514 end
3515 `else
3516
3517 always @(l1clk or siclk or soclk or d or si)
3518 begin
3519 if (!l1clk && !siclk) l1 <= d; // Load master with data
3520 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3521 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3522
3523 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3524 if ( l1clk && siclk && !soclk) q <= si; // Flush
3525 end
3526 `endif
3527 `else
3528 wire si_unused;
3529 wire siclk_unused;
3530 wire soclk_unused;
3531 assign si_unused = si;
3532 assign siclk_unused = siclk;
3533 assign soclk_unused = soclk;
3534
3535
3536 `ifdef INITLATZERO
3537 initial q_l = 1'b1;
3538 initial q = 1'b0;
3539 `endif
3540
3541 always @(posedge l1clk)
3542 begin
3543 if (!siclk && !soclk) q <= d;
3544 else q <= 1'bx;
3545 end
3546 `endif
3547
3548
3549 always @ (q)
3550begin
3551 q_l=~q;
3552end
3553
3554
3555
3556 assign so = q;
3557
3558endmodule // dff
3559module cl_dp1_msffi_1x ( q_l, so, d, l1clk, si, siclk, soclk );
3560// RFM 05-14-2004
3561// Level sensitive in SCAN_MODE
3562// Edge triggered when not in SCAN_MODE
3563
3564
3565 parameter SIZE = 1;
3566
3567 output q_l;
3568 output so;
3569
3570 input d;
3571 input l1clk;
3572 input si;
3573 input siclk;
3574 input soclk;
3575
3576 reg q_l;
3577 reg q;
3578 wire so;
3579 wire l1clk, siclk, soclk;
3580
3581 `ifdef SCAN_MODE
3582 reg l1;
3583`ifdef FAST_FLUSH
3584 always @(posedge l1clk or posedge siclk ) begin
3585 if (siclk) begin
3586 q <= 1'b0; //pseudo flush reset
3587 end else begin
3588 q <= d;
3589 end
3590 end
3591 `else
3592
3593 always @(l1clk or siclk or soclk or d or si)
3594 begin
3595 if (!l1clk && !siclk) l1 <= d; // Load master with data
3596 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3597 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3598
3599 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3600 if ( l1clk && siclk && !soclk) q <= si; // Flush
3601 end
3602 `endif
3603 `else
3604 wire si_unused;
3605 wire siclk_unused;
3606 wire soclk_unused;
3607 assign si_unused = si;
3608 assign siclk_unused = siclk;
3609 assign soclk_unused = soclk;
3610
3611
3612 `ifdef INITLATZERO
3613 initial q_l = 1'b1;
3614 initial q = 1'b0;
3615 `endif
3616
3617 always @(posedge l1clk)
3618 begin
3619 if (!siclk && !soclk) q <= d;
3620 else q <= 1'bx;
3621 end
3622 `endif
3623
3624
3625 always @ (q)
3626begin
3627 q_l=~q;
3628end
3629
3630
3631
3632 assign so = q;
3633
3634endmodule // dff
3635module cl_dp1_msffi_32x ( q_l, so, d, l1clk, si, siclk, soclk );
3636// RFM 05-14-2004
3637// Level sensitive in SCAN_MODE
3638// Edge triggered when not in SCAN_MODE
3639
3640
3641 parameter SIZE = 1;
3642
3643 output q_l;
3644 output so;
3645
3646 input d;
3647 input l1clk;
3648 input si;
3649 input siclk;
3650 input soclk;
3651
3652 reg q_l;
3653 reg q;
3654 wire so;
3655 wire l1clk, siclk, soclk;
3656
3657 `ifdef SCAN_MODE
3658 reg l1;
3659`ifdef FAST_FLUSH
3660 always @(posedge l1clk or posedge siclk ) begin
3661 if (siclk) begin
3662 q <= 1'b0; //pseudo flush reset
3663 end else begin
3664 q <= d;
3665 end
3666 end
3667 `else
3668
3669 always @(l1clk or siclk or soclk or d or si)
3670 begin
3671 if (!l1clk && !siclk) l1 <= d; // Load master with data
3672 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3673 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3674
3675 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3676 if ( l1clk && siclk && !soclk) q <= si; // Flush
3677 end
3678 `endif
3679 `else
3680 wire si_unused;
3681 wire siclk_unused;
3682 wire soclk_unused;
3683 assign si_unused = si;
3684 assign siclk_unused = siclk;
3685 assign soclk_unused = soclk;
3686
3687
3688 `ifdef INITLATZERO
3689 initial q_l = 1'b1;
3690 initial q = 1'b0;
3691 `endif
3692
3693 always @(posedge l1clk)
3694 begin
3695 if (!siclk && !soclk) q <= d;
3696 else q <= 1'bx;
3697 end
3698 `endif
3699
3700
3701 always @ (q)
3702begin
3703 q_l=~q;
3704end
3705
3706
3707
3708 assign so = q;
3709
3710endmodule // dff
3711module cl_dp1_msffi_4x ( q_l, so, d, l1clk, si, siclk, soclk );
3712// RFM 05-14-2004
3713// Level sensitive in SCAN_MODE
3714// Edge triggered when not in SCAN_MODE
3715
3716
3717 parameter SIZE = 1;
3718
3719 output q_l;
3720 output so;
3721
3722 input d;
3723 input l1clk;
3724 input si;
3725 input siclk;
3726 input soclk;
3727
3728 reg q_l;
3729 reg q;
3730 wire so;
3731 wire l1clk, siclk, soclk;
3732
3733 `ifdef SCAN_MODE
3734 reg l1;
3735 `ifdef FAST_FLUSH
3736 always @(posedge l1clk or posedge siclk ) begin
3737 if (siclk) begin
3738 q <= 1'b0; //pseudo flush reset
3739 end else begin
3740 q <= d;
3741 end
3742 end
3743 `else
3744
3745 always @(l1clk or siclk or soclk or d or si)
3746 begin
3747 if (!l1clk && !siclk) l1 <= d; // Load master with data
3748 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3749 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3750
3751 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3752 if ( l1clk && siclk && !soclk) q <= si; // Flush
3753 end
3754 `endif
3755 `else
3756 wire si_unused;
3757 wire siclk_unused;
3758 wire soclk_unused;
3759 assign si_unused = si;
3760 assign siclk_unused = siclk;
3761 assign soclk_unused = soclk;
3762
3763
3764 `ifdef INITLATZERO
3765 initial q_l = 1'b1;
3766 initial q = 1'b0;
3767 `endif
3768
3769 always @(posedge l1clk)
3770 begin
3771 if (!siclk && !soclk) q <= d;
3772 else q <= 1'bx;
3773 end
3774 `endif
3775
3776
3777 always @ (q)
3778begin
3779 q_l=~q;
3780end
3781
3782
3783
3784 assign so = q;
3785
3786endmodule // dff
3787module cl_dp1_msffi_8x ( q_l, so, d, l1clk, si, siclk, soclk );
3788// RFM 05-14-2004
3789// Level sensitive in SCAN_MODE
3790// Edge triggered when not in SCAN_MODE
3791
3792
3793 parameter SIZE = 1;
3794
3795 output q_l;
3796 output so;
3797
3798 input d;
3799 input l1clk;
3800 input si;
3801 input siclk;
3802 input soclk;
3803
3804 reg q_l;
3805 reg q;
3806 wire so;
3807 wire l1clk, siclk, soclk;
3808
3809 `ifdef SCAN_MODE
3810 reg l1;
3811`ifdef FAST_FLUSH
3812 always @(posedge l1clk or posedge siclk ) begin
3813 if (siclk) begin
3814 q <= 1'b0; //pseudo flush reset
3815 end else begin
3816 q <= d;
3817 end
3818 end
3819 `else
3820
3821 always @(l1clk or siclk or soclk or d or si)
3822 begin
3823 if (!l1clk && !siclk) l1 <= d; // Load master with data
3824 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3825 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3826
3827 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
3828 if ( l1clk && siclk && !soclk) q <= si; // Flush
3829 end
3830 `endif
3831 `else
3832 wire si_unused;
3833 wire siclk_unused;
3834 wire soclk_unused;
3835 assign si_unused = si;
3836 assign siclk_unused = siclk;
3837 assign soclk_unused = soclk;
3838
3839
3840 `ifdef INITLATZERO
3841 initial q_l = 1'b1;
3842 initial q = 1'b0;
3843 `endif
3844
3845 always @(posedge l1clk)
3846 begin
3847 if (!siclk && !soclk) q <= d;
3848 else q <= 1'bx;
3849 end
3850 `endif
3851
3852
3853 always @ (q)
3854begin
3855 q_l=~q;
3856end
3857
3858
3859
3860 assign so = q;
3861
3862endmodule // dff
3863module cl_dp1_msffiz_32x ( q_l, so, d, l1clk, si, siclk, soclk );
3864// RFM 05-14-2004
3865// Level sensitive in SCAN_MODE
3866// Edge triggered when not in SCAN_MODE
3867
3868
3869 parameter SIZE = 1;
3870
3871 output q_l;
3872 output so;
3873
3874 input d;
3875 input l1clk;
3876 input si;
3877 input siclk;
3878 input soclk;
3879
3880 reg q_l;
3881
3882 wire so;
3883 wire l1clk, siclk, soclk;
3884
3885 `ifdef SCAN_MODE
3886
3887 reg l1;
3888`ifdef FAST_FLUSH
3889 always @(posedge l1clk or posedge siclk ) begin
3890 if (siclk) begin
3891 q_l <= 1'b0; //pseudo flush reset
3892 end else begin
3893 q_l <= ~d;
3894 end
3895 end
3896 `else
3897 always @(l1clk or siclk or soclk or d or si)
3898 begin
3899 if (!l1clk && !siclk) l1 <= ~d; // Load master with data
3900 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3901 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3902
3903 else if ( l1clk && !siclk && !soclk) q_l <= l1; // Load slave with master data
3904 if ( l1clk && siclk && !soclk) q_l <= si; // Flush
3905 end
3906 `endif
3907 `else
3908 wire si_unused;
3909 wire siclk_unused;
3910 wire soclk_unused;
3911 assign si_unused = si;
3912 assign siclk_unused = siclk;
3913 assign soclk_unused = soclk;
3914
3915
3916 `ifdef INITLATZERO
3917 initial q_l = 1'b0;
3918 `endif
3919
3920 always @(posedge l1clk)
3921 begin
3922 if (!siclk && !soclk) q_l <= ~d;
3923 else q_l <= 1'bx;
3924 end
3925 `endif
3926
3927 assign so = q_l;
3928
3929endmodule // dff
3930module cl_dp1_msffiz_16x ( q_l, so, d, l1clk, si, siclk, soclk );
3931// RFM 05-14-2004
3932// Level sensitive in SCAN_MODE
3933// Edge triggered when not in SCAN_MODE
3934
3935
3936 parameter SIZE = 1;
3937
3938 output q_l;
3939 output so;
3940
3941 input d;
3942 input l1clk;
3943 input si;
3944 input siclk;
3945 input soclk;
3946
3947 reg q_l;
3948
3949 wire so;
3950 wire l1clk, siclk, soclk;
3951
3952 `ifdef SCAN_MODE
3953
3954 reg l1;
3955`ifdef FAST_FLUSH
3956 always @(posedge l1clk or posedge siclk ) begin
3957 if (siclk) begin
3958 q_l <= 1'b0; //pseudo flush reset
3959 end else begin
3960 q_l <= ~d;
3961 end
3962 end
3963 `else
3964 always @(l1clk or siclk or soclk or d or si)
3965 begin
3966 if (!l1clk && !siclk) l1 <= ~d; // Load master with data
3967 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
3968 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
3969
3970 else if ( l1clk && !siclk && !soclk) q_l <= l1; // Load slave with master data
3971 if ( l1clk && siclk && !soclk) q_l <= si; // Flush
3972 end
3973 `endif
3974 `else
3975 wire si_unused;
3976 wire siclk_unused;
3977 wire soclk_unused;
3978 assign si_unused = si;
3979 assign siclk_unused = siclk;
3980 assign soclk_unused = soclk;
3981
3982
3983 `ifdef INITLATZERO
3984 initial q_l = 1'b0;
3985 `endif
3986
3987 always @(posedge l1clk)
3988 begin
3989 if (!siclk && !soclk) q_l <= ~d;
3990 else q_l <= 1'bx;
3991 end
3992 `endif
3993
3994 assign so = q_l;
3995
3996endmodule // dff
3997module cl_dp1_mux2_12x (
3998in0,
3999in1,
4000sel0,
4001out
4002);
4003input in0;
4004input in1;
4005input sel0;
4006output out;
4007
4008`ifdef LIB
4009reg out;
4010 always @ ( sel0 or in0 or in1)
4011 case ( sel0 )
4012 1'b1: out = in0;
4013 1'b0: out = in1;
4014
4015 default: out = 1'bx;
4016
4017 endcase
4018`endif
4019
4020endmodule
4021
4022module cl_dp1_mux2_16x (
4023in0,
4024in1,
4025sel0,
4026out
4027);
4028input in0;
4029input in1;
4030input sel0;
4031output out;
4032
4033`ifdef LIB
4034reg out;
4035 always @ ( sel0 or in0 or in1)
4036 case ( sel0 )
4037 1'b1: out = in0;
4038 1'b0: out = in1;
4039
4040 default: out = 1'bx;
4041
4042 endcase
4043`endif
4044
4045endmodule
4046
4047module cl_dp1_mux2_24x (
4048in0,
4049in1,
4050sel0,
4051out
4052);
4053input in0;
4054input in1;
4055input sel0;
4056output out;
4057
4058`ifdef LIB
4059reg out;
4060 always @ ( sel0 or in0 or in1)
4061 case ( sel0 )
4062 1'b1: out = in0;
4063 1'b0: out = in1;
4064
4065 default: out = 1'bx;
4066
4067 endcase
4068`endif
4069
4070endmodule
4071
4072module cl_dp1_mux2_2x (
4073in0,
4074in1,
4075sel0,
4076out
4077);
4078input in0;
4079input in1;
4080input sel0;
4081output out;
4082
4083`ifdef LIB
4084reg out;
4085 always @ ( sel0 or in0 or in1)
4086 case ( sel0 )
4087 1'b1: out = in0;
4088 1'b0: out = in1;
4089
4090 default: out = 1'bx;
4091
4092 endcase
4093`endif
4094
4095endmodule
4096
4097module cl_dp1_mux2_32x (
4098in0,
4099in1,
4100sel0,
4101out
4102);
4103input in0;
4104input in1;
4105input sel0;
4106output out;
4107
4108`ifdef LIB
4109reg out;
4110 always @ ( sel0 or in0 or in1)
4111 case ( sel0 )
4112 1'b1: out = in0;
4113 1'b0: out = in1;
4114
4115 default: out = 1'bx;
4116
4117 endcase
4118`endif
4119
4120endmodule
4121
4122module cl_dp1_mux2_4x (
4123in0,
4124in1,
4125sel0,
4126out
4127);
4128input in0;
4129input in1;
4130input sel0;
4131output out;
4132
4133`ifdef LIB
4134reg out;
4135 always @ ( sel0 or in0 or in1)
4136 case ( sel0 )
4137 1'b1: out = in0;
4138 1'b0: out = in1;
4139
4140 default: out = 1'bx;
4141
4142 endcase
4143`endif
4144
4145endmodule
4146
4147module cl_dp1_mux2_6x (
4148in0,
4149in1,
4150sel0,
4151out
4152);
4153input in0;
4154input in1;
4155input sel0;
4156output out;
4157
4158`ifdef LIB
4159reg out;
4160 always @ ( sel0 or in0 or in1)
4161 case ( sel0 )
4162 1'b1: out = in0;
4163 1'b0: out = in1;
4164
4165 default: out = 1'bx;
4166
4167 endcase
4168`endif
4169
4170endmodule
4171
4172module cl_dp1_mux2_8x (
4173in0,
4174in1,
4175sel0,
4176out
4177);
4178input in0;
4179input in1;
4180input sel0;
4181output out;
4182
4183`ifdef LIB
4184reg out;
4185 always @ ( sel0 or in0 or in1)
4186 case ( sel0 )
4187 1'b1: out = in0;
4188 1'b0: out = in1;
4189
4190 default: out = 1'bx;
4191
4192 endcase
4193`endif
4194
4195endmodule
4196
4197
4198
4199
4200module cl_dp1_mux3_12x(
4201in0,
4202in1,
4203in2,
4204sel0,
4205sel1,
4206sel2,
4207muxtst,
4208out
4209);
4210
4211
4212
4213 input in0;
4214 input in1;
4215 input in2;
4216 input sel0;
4217 input sel1;
4218 input sel2;
4219 input muxtst;
4220 output out;
4221
4222`ifdef LIB
4223`ifdef muxohtest
4224//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4225`endif
4226
4227 wire [3:0] sel= {muxtst,sel2,sel1,sel0};
4228
4229 assign out = (sel[2:0] == 3'b001) ? in0:
4230 (sel[2:0] == 3'b010) ? in1:
4231 (sel[2:0] == 3'b100) ? in2:
4232 (sel[3:0] == 4'b0000) ? 1'b1:
4233 1'bx;
4234`endif
4235endmodule
4236
4237module cl_dp1_mux3_16x(
4238in0,
4239in1,
4240in2,
4241sel0,
4242sel1,
4243sel2,
4244muxtst,
4245out
4246);
4247
4248
4249
4250 input in0;
4251 input in1;
4252 input in2;
4253 input sel0;
4254 input sel1;
4255 input sel2;
4256 input muxtst;
4257 output out;
4258
4259`ifdef LIB
4260
4261`ifdef muxohtest
4262//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4263`endif
4264
4265 wire [3:0] sel = {muxtst,sel2,sel1,sel0};
4266
4267 assign out = (sel[2:0] == 3'b001) ? in0:
4268 (sel[2:0] == 3'b010) ? in1:
4269 (sel[2:0] == 3'b100) ? in2:
4270 (sel[3:0] == 4'b0000) ? 1'b1:
4271 1'bx;
4272`endif
4273endmodule
4274
4275module cl_dp1_mux3_24x(
4276in0,
4277in1,
4278in2,
4279sel0,
4280sel1,
4281sel2,
4282muxtst,
4283out
4284);
4285
4286
4287
4288 input in0;
4289 input in1;
4290 input in2;
4291 input sel0;
4292 input sel1;
4293 input sel2;
4294 input muxtst;
4295 output out;
4296
4297`ifdef LIB
4298`ifdef muxohtest
4299//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4300`endif
4301
4302 wire [3:0] sel = {muxtst,sel2,sel1,sel0};
4303
4304 assign out = (sel[2:0] == 3'b001) ? in0:
4305 (sel[2:0] == 3'b010) ? in1:
4306 (sel[2:0] == 3'b100) ? in2:
4307 (sel[3:0] == 4'b0000) ? 1'b1:
4308 1'bx;
4309`endif
4310endmodule
4311
4312module cl_dp1_mux3_2x(
4313in0,
4314in1,
4315in2,
4316sel0,
4317sel1,
4318sel2,
4319muxtst,
4320out
4321);
4322
4323
4324
4325 input in0;
4326 input in1;
4327 input in2;
4328 input sel0;
4329 input sel1;
4330 input sel2;
4331 input muxtst;
4332 output out;
4333
4334`ifdef LIB
4335`ifdef muxohtest
4336//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4337`endif
4338
4339 wire [3:0] sel= {muxtst,sel2,sel1,sel0};
4340
4341 assign out = (sel[2:0] == 3'b001) ? in0:
4342 (sel[2:0] == 3'b010) ? in1:
4343 (sel[2:0] == 3'b100) ? in2:
4344 (sel[3:0] == 4'b0000) ? 1'b1:
4345 1'bx;
4346`endif
4347endmodule
4348
4349module cl_dp1_mux3_32x(
4350in0,
4351in1,
4352in2,
4353sel0,
4354sel1,
4355sel2,
4356muxtst,
4357out
4358);
4359
4360
4361
4362 input in0;
4363 input in1;
4364 input in2;
4365 input sel0;
4366 input sel1;
4367 input sel2;
4368 input muxtst;
4369 output out;
4370
4371`ifdef LIB
4372
4373
4374 wire [3:0] sel= {muxtst,sel2,sel1,sel0};
4375
4376 assign out = (sel[2:0] == 3'b001) ? in0:
4377 (sel[2:0] == 3'b010) ? in1:
4378 (sel[2:0] == 3'b100) ? in2:
4379 (sel[3:0] == 4'b0000) ? 1'b1:
4380 1'bx;
4381`endif
4382endmodule
4383
4384module cl_dp1_mux3_4x(
4385in0,
4386in1,
4387in2,
4388sel0,
4389sel1,
4390sel2,
4391muxtst,
4392out
4393);
4394
4395
4396
4397 input in0;
4398 input in1;
4399 input in2;
4400 input sel0;
4401 input sel1;
4402 input sel2;
4403 input muxtst;
4404 output out;
4405
4406`ifdef LIB
4407`ifdef muxohtest
4408//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4409`endif
4410
4411 wire [3:0] sel= {muxtst,sel2,sel1,sel0};
4412
4413 assign out = (sel[2:0] == 3'b001) ? in0:
4414 (sel[2:0] == 3'b010) ? in1:
4415 (sel[2:0] == 3'b100) ? in2:
4416 (sel[3:0] == 4'b0000) ? 1'b1:
4417 1'bx;
4418`endif
4419endmodule
4420
4421module cl_dp1_mux3_6x(
4422in0,
4423in1,
4424in2,
4425sel0,
4426sel1,
4427sel2,
4428muxtst,
4429out
4430);
4431
4432
4433
4434 input in0;
4435 input in1;
4436 input in2;
4437 input sel0;
4438 input sel1;
4439 input sel2;
4440 input muxtst;
4441 output out;
4442
4443`ifdef LIB
4444
4445`ifdef muxohtest
4446//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4447`endif
4448
4449 wire [3:0] sel= {muxtst,sel2,sel1,sel0};
4450
4451 assign out = (sel[2:0] == 3'b001) ? in0:
4452 (sel[2:0] == 3'b010) ? in1:
4453 (sel[2:0] == 3'b100) ? in2:
4454 (sel[3:0] == 4'b0000) ? 1'b1:
4455 1'bx;
4456`endif
4457endmodule
4458
4459module cl_dp1_mux3_8x(
4460in0,
4461in1,
4462in2,
4463sel0,
4464sel1,
4465sel2,
4466muxtst,
4467out
4468);
4469
4470
4471
4472 input in0;
4473 input in1;
4474 input in2;
4475 input sel0;
4476 input sel1;
4477 input sel2;
4478 input muxtst;
4479 output out;
4480
4481`ifdef LIB
4482
4483`ifdef muxohtest
4484//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4485`endif
4486
4487 wire [3:0] sel = {muxtst,sel2,sel1,sel0};
4488
4489 assign out = (sel[2:0] == 3'b001) ? in0:
4490 (sel[2:0] == 3'b010) ? in1:
4491 (sel[2:0] == 3'b100) ? in2:
4492 (sel[3:0] == 4'b0000) ? 1'b1:
4493 1'bx;
4494`endif
4495endmodule
4496
4497
4498module cl_dp1_mux4_12x(
4499in0,
4500in1,
4501in2,
4502in3,
4503sel0,
4504sel1,
4505sel2,
4506sel3,
4507muxtst,
4508out
4509);
4510
4511
4512
4513 input in0;
4514 input in1;
4515 input in2;
4516 input in3;
4517 input sel0;
4518 input sel1;
4519 input sel2;
4520 input sel3;
4521 input muxtst;
4522 output out;
4523
4524
4525 `ifdef LIB
4526
4527`ifdef muxohtest
4528//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
4529`endif
4530
4531 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4532
4533 assign out = (sel[3:0] == 4'b0001) ? in0:
4534 (sel[3:0] == 4'b0010) ? in1:
4535 (sel[3:0] == 4'b0100) ? in2:
4536 (sel[3:0] == 4'b1000) ? in3:
4537 (sel[4:0] == 5'b00000) ? 1'b1:
4538 1'bx;
4539`endif
4540endmodule
4541
4542module cl_dp1_mux4_16x(
4543in0,
4544in1,
4545in2,
4546in3,
4547sel0,
4548sel1,
4549sel2,
4550sel3,
4551muxtst,
4552out
4553);
4554
4555
4556
4557 input in0;
4558 input in1;
4559 input in2;
4560 input in3;
4561 input sel0;
4562 input sel1;
4563 input sel2;
4564 input sel3;
4565 input muxtst;
4566 output out;
4567
4568
4569 `ifdef LIB
4570`ifdef MUXOHTEST
4571//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4572`endif
4573
4574
4575 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4576
4577 assign out = (sel[3:0] == 4'b0001) ? in0:
4578 (sel[3:0] == 4'b0010) ? in1:
4579 (sel[3:0] == 4'b0100) ? in2:
4580 (sel[3:0] == 4'b1000) ? in3:
4581 (sel[4:0] == 5'b00000) ? 1'b1:
4582 1'bx;
4583`endif
4584endmodule
4585
4586module cl_dp1_mux4_24x(
4587in0,
4588in1,
4589in2,
4590in3,
4591sel0,
4592sel1,
4593sel2,
4594sel3,
4595muxtst,
4596out
4597);
4598
4599
4600
4601 input in0;
4602 input in1;
4603 input in2;
4604 input in3;
4605 input sel0;
4606 input sel1;
4607 input sel2;
4608 input sel3;
4609 input muxtst;
4610 output out;
4611
4612
4613 `ifdef LIB
4614`ifdef MUXOHTEST
4615//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4616`endif
4617
4618
4619 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4620
4621 assign out = (sel[3:0] == 4'b0001) ? in0:
4622 (sel[3:0] == 4'b0010) ? in1:
4623 (sel[3:0] == 4'b0100) ? in2:
4624 (sel[3:0] == 4'b1000) ? in3:
4625 (sel[4:0] == 5'b00000) ? 1'b1:
4626 1'bx;
4627`endif
4628endmodule
4629
4630module cl_dp1_mux4_2x(
4631in0,
4632in1,
4633in2,
4634in3,
4635sel0,
4636sel1,
4637sel2,
4638sel3,
4639muxtst,
4640out
4641);
4642
4643
4644
4645 input in0;
4646 input in1;
4647 input in2;
4648 input in3;
4649 input sel0;
4650 input sel1;
4651 input sel2;
4652 input sel3;
4653 input muxtst;
4654 output out;
4655
4656
4657 `ifdef LIB
4658`ifdef MUXOHTEST
4659//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4660`endif
4661
4662
4663 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4664
4665 assign out = (sel[3:0] == 4'b0001) ? in0:
4666 (sel[3:0] == 4'b0010) ? in1:
4667 (sel[3:0] == 4'b0100) ? in2:
4668 (sel[3:0] == 4'b1000) ? in3:
4669 (sel[4:0] == 5'b00000) ? 1'b1:
4670 1'bx;
4671`endif
4672endmodule
4673
4674module cl_dp1_mux4_32x(
4675in0,
4676in1,
4677in2,
4678in3,
4679sel0,
4680sel1,
4681sel2,
4682sel3,
4683muxtst,
4684out
4685);
4686
4687
4688
4689 input in0;
4690 input in1;
4691 input in2;
4692 input in3;
4693 input sel0;
4694 input sel1;
4695 input sel2;
4696 input sel3;
4697 input muxtst;
4698 output out;
4699
4700
4701 `ifdef LIB
4702 `ifdef MUXOHTEST
4703//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4704`endif
4705
4706
4707 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4708
4709 assign out = (sel[3:0] == 4'b0001) ? in0:
4710 (sel[3:0] == 4'b0010) ? in1:
4711 (sel[3:0] == 4'b0100) ? in2:
4712 (sel[3:0] == 4'b1000) ? in3:
4713 (sel[4:0] == 5'b00000) ? 1'b1:
4714 1'bx;
4715`endif
4716endmodule
4717
4718module cl_dp1_mux4_4x(
4719in0,
4720in1,
4721in2,
4722in3,
4723sel0,
4724sel1,
4725sel2,
4726sel3,
4727muxtst,
4728out
4729);
4730
4731
4732
4733 input in0;
4734 input in1;
4735 input in2;
4736 input in3;
4737 input sel0;
4738 input sel1;
4739 input sel2;
4740 input sel3;
4741 input muxtst;
4742 output out;
4743
4744
4745 `ifdef LIB
4746 `ifdef MUXOHTEST
4747//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4748`endif
4749
4750
4751 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4752
4753 assign out = (sel[3:0] == 4'b0001) ? in0:
4754 (sel[3:0] == 4'b0010) ? in1:
4755 (sel[3:0] == 4'b0100) ? in2:
4756 (sel[3:0] == 4'b1000) ? in3:
4757 (sel[4:0] == 5'b00000) ? 1'b1:
4758 1'bx;
4759`endif
4760endmodule
4761
4762module cl_dp1_mux4_6x(
4763in0,
4764in1,
4765in2,
4766in3,
4767sel0,
4768sel1,
4769sel2,
4770sel3,
4771muxtst,
4772out
4773);
4774
4775
4776
4777 input in0;
4778 input in1;
4779 input in2;
4780 input in3;
4781 input sel0;
4782 input sel1;
4783 input sel2;
4784 input sel3;
4785 input muxtst;
4786 output out;
4787
4788
4789 `ifdef LIB
4790`ifdef MUXOHTEST
4791//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4792`endif
4793
4794
4795 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4796
4797 assign out = (sel[3:0] == 4'b0001) ? in0:
4798 (sel[3:0] == 4'b0010) ? in1:
4799 (sel[3:0] == 4'b0100) ? in2:
4800 (sel[3:0] == 4'b1000) ? in3:
4801 (sel[4:0] == 5'b00000) ? 1'b1:
4802 1'bx;
4803`endif
4804endmodule
4805
4806module cl_dp1_mux4_8x(
4807in0,
4808in1,
4809in2,
4810in3,
4811sel0,
4812sel1,
4813sel2,
4814sel3,
4815muxtst,
4816out
4817);
4818
4819
4820
4821 input in0;
4822 input in1;
4823 input in2;
4824 input in3;
4825 input sel0;
4826 input sel1;
4827 input sel2;
4828 input sel3;
4829 input muxtst;
4830 output out;
4831
4832
4833 `ifdef LIB
4834
4835`ifdef MUXOHTEST
4836//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
4837`endif
4838
4839 wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
4840
4841 assign out = (sel[3:0] == 4'b0001) ? in0:
4842 (sel[3:0] == 4'b0010) ? in1:
4843 (sel[3:0] == 4'b0100) ? in2:
4844 (sel[3:0] == 4'b1000) ? in3:
4845 (sel[4:0] == 5'b00000) ? 1'b1:
4846 1'bx;
4847`endif
4848endmodule
4849
4850
4851
4852module cl_dp1_mux5_12x(
4853in0,
4854in1,
4855in2,
4856in3,
4857in4,
4858sel0,
4859sel1,
4860sel2,
4861sel3,
4862sel4,
4863muxtst,
4864out
4865);
4866
4867
4868
4869 input in0;
4870 input in1;
4871 input in2;
4872 input in3;
4873 input in4;
4874 input sel0;
4875 input sel1;
4876 input sel2;
4877 input sel3;
4878 input sel4;
4879 input muxtst;
4880 output out;
4881`ifdef LIB
4882`ifdef MUXOHTEST
4883//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
4884`endif
4885
4886 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
4887
4888 assign out = (sel[4:0] == 5'b00001) ? in0:
4889 (sel[4:0] == 5'b00010) ? in1:
4890 (sel[4:0] == 5'b00100) ? in2:
4891 (sel[4:0] == 5'b01000) ? in3:
4892 (sel[4:0] == 5'b10000) ? in4:
4893 (sel[5:0] == 6'b000000) ? 1'b1:
4894 1'bx;
4895`endif
4896endmodule
4897
4898module cl_dp1_mux5_16x(
4899in0,
4900in1,
4901in2,
4902in3,
4903in4,
4904sel0,
4905sel1,
4906sel2,
4907sel3,
4908sel4,
4909muxtst,
4910out
4911);
4912
4913
4914
4915 input in0;
4916 input in1;
4917 input in2;
4918 input in3;
4919 input in4;
4920 input sel0;
4921 input sel1;
4922 input sel2;
4923 input sel3;
4924 input sel4;
4925 input muxtst;
4926 output out;
4927`ifdef LIB
4928`ifdef MUXOHTEST
4929//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
4930`endif
4931
4932 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
4933
4934 assign out = (sel[4:0] == 5'b00001) ? in0:
4935 (sel[4:0] == 5'b00010) ? in1:
4936 (sel[4:0] == 5'b00100) ? in2:
4937 (sel[4:0] == 5'b01000) ? in3:
4938 (sel[4:0] == 5'b10000) ? in4:
4939 (sel[5:0] == 6'b000000) ? 1'b1:
4940 1'bx;
4941`endif
4942endmodule
4943
4944module cl_dp1_mux5_24x(
4945in0,
4946in1,
4947in2,
4948in3,
4949in4,
4950sel0,
4951sel1,
4952sel2,
4953sel3,
4954sel4,
4955muxtst,
4956out
4957);
4958
4959
4960
4961 input in0;
4962 input in1;
4963 input in2;
4964 input in3;
4965 input in4;
4966 input sel0;
4967 input sel1;
4968 input sel2;
4969 input sel3;
4970 input sel4;
4971 input muxtst;
4972 output out;
4973`ifdef LIB
4974`ifdef MUXOHTEST
4975//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
4976`endif
4977
4978 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
4979
4980 assign out = (sel[4:0] == 5'b00001) ? in0:
4981 (sel[4:0] == 5'b00010) ? in1:
4982 (sel[4:0] == 5'b00100) ? in2:
4983 (sel[4:0] == 5'b01000) ? in3:
4984 (sel[4:0] == 5'b10000) ? in4:
4985 (sel[5:0] == 6'b000000) ? 1'b1:
4986 1'bx;
4987`endif
4988endmodule
4989
4990module cl_dp1_mux5_2x(
4991in0,
4992in1,
4993in2,
4994in3,
4995in4,
4996sel0,
4997sel1,
4998sel2,
4999sel3,
5000sel4,
5001muxtst,
5002out
5003);
5004
5005
5006
5007 input in0;
5008 input in1;
5009 input in2;
5010 input in3;
5011 input in4;
5012 input sel0;
5013 input sel1;
5014 input sel2;
5015 input sel3;
5016 input sel4;
5017 input muxtst;
5018 output out;
5019`ifdef LIB
5020`ifdef MUXOHTEST
5021//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
5022`endif
5023
5024 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
5025
5026 assign out = (sel[4:0] == 5'b00001) ? in0:
5027 (sel[4:0] == 5'b00010) ? in1:
5028 (sel[4:0] == 5'b00100) ? in2:
5029 (sel[4:0] == 5'b01000) ? in3:
5030 (sel[4:0] == 5'b10000) ? in4:
5031 (sel[5:0] == 6'b000000) ? 1'b1:
5032 1'bx;
5033`endif
5034endmodule
5035
5036module cl_dp1_mux5_32x(
5037in0,
5038in1,
5039in2,
5040in3,
5041in4,
5042sel0,
5043sel1,
5044sel2,
5045sel3,
5046sel4,
5047muxtst,
5048out
5049);
5050
5051
5052
5053 input in0;
5054 input in1;
5055 input in2;
5056 input in3;
5057 input in4;
5058 input sel0;
5059 input sel1;
5060 input sel2;
5061 input sel3;
5062 input sel4;
5063 input muxtst;
5064 output out;
5065`ifdef LIB
5066`ifdef MUXOHTEST
5067//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
5068`endif
5069
5070 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
5071
5072 assign out = (sel[4:0] == 5'b00001) ? in0:
5073 (sel[4:0] == 5'b00010) ? in1:
5074 (sel[4:0] == 5'b00100) ? in2:
5075 (sel[4:0] == 5'b01000) ? in3:
5076 (sel[4:0] == 5'b10000) ? in4:
5077 (sel[5:0] == 6'b000000) ? 1'b1:
5078 1'bx;
5079`endif
5080endmodule
5081
5082module cl_dp1_mux5_4x(
5083in0,
5084in1,
5085in2,
5086in3,
5087in4,
5088sel0,
5089sel1,
5090sel2,
5091sel3,
5092sel4,
5093muxtst,
5094out
5095);
5096
5097
5098
5099 input in0;
5100 input in1;
5101 input in2;
5102 input in3;
5103 input in4;
5104 input sel0;
5105 input sel1;
5106 input sel2;
5107 input sel3;
5108 input sel4;
5109 input muxtst;
5110 output out;
5111`ifdef LIB
5112`ifdef MUXOHTEST
5113//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
5114`endif
5115
5116 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
5117
5118 assign out = (sel[4:0] == 5'b00001) ? in0:
5119 (sel[4:0] == 5'b00010) ? in1:
5120 (sel[4:0] == 5'b00100) ? in2:
5121 (sel[4:0] == 5'b01000) ? in3:
5122 (sel[4:0] == 5'b10000) ? in4:
5123 (sel[5:0] == 6'b000000) ? 1'b1:
5124 1'bx;
5125`endif
5126endmodule
5127
5128module cl_dp1_mux5_6x(
5129in0,
5130in1,
5131in2,
5132in3,
5133in4,
5134sel0,
5135sel1,
5136sel2,
5137sel3,
5138sel4,
5139muxtst,
5140out
5141);
5142
5143
5144
5145 input in0;
5146 input in1;
5147 input in2;
5148 input in3;
5149 input in4;
5150 input sel0;
5151 input sel1;
5152 input sel2;
5153 input sel3;
5154 input sel4;
5155 input muxtst;
5156 output out;
5157`ifdef LIB
5158`ifdef MUXOHTEST
5159//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
5160`endif
5161
5162 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
5163
5164 assign out = (sel[4:0] == 5'b00001) ? in0:
5165 (sel[4:0] == 5'b00010) ? in1:
5166 (sel[4:0] == 5'b00100) ? in2:
5167 (sel[4:0] == 5'b01000) ? in3:
5168 (sel[4:0] == 5'b10000) ? in4:
5169 (sel[5:0] == 6'b000000) ? 1'b1:
5170 1'bx;
5171`endif
5172endmodule
5173
5174module cl_dp1_mux5_8x(
5175in0,
5176in1,
5177in2,
5178in3,
5179in4,
5180sel0,
5181sel1,
5182sel2,
5183sel3,
5184sel4,
5185muxtst,
5186out
5187);
5188
5189
5190
5191 input in0;
5192 input in1;
5193 input in2;
5194 input in3;
5195 input in4;
5196 input sel0;
5197 input sel1;
5198 input sel2;
5199 input sel3;
5200 input sel4;
5201 input muxtst;
5202 output out;
5203`ifdef LIB
5204`ifdef MUXOHTEST
5205//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
5206`endif
5207
5208 wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
5209
5210 assign out = (sel[4:0] == 5'b00001) ? in0:
5211 (sel[4:0] == 5'b00010) ? in1:
5212 (sel[4:0] == 5'b00100) ? in2:
5213 (sel[4:0] == 5'b01000) ? in3:
5214 (sel[4:0] == 5'b10000) ? in4:
5215 (sel[5:0] == 6'b000000) ? 1'b1:
5216 1'bx;
5217`endif
5218endmodule
5219
5220module cl_dp1_mux6_12x(
5221in0,
5222in1,
5223in2,
5224in3,
5225in4,
5226in5,
5227sel0,
5228sel1,
5229sel2,
5230sel3,
5231sel4,
5232sel5,
5233muxtst,
5234out
5235);
5236
5237
5238
5239 output out;
5240
5241 input in0;
5242 input in1;
5243 input in2;
5244 input in3;
5245 input in4;
5246 input in5;
5247 input sel0;
5248 input sel1;
5249 input sel2;
5250 input sel3;
5251 input sel4;
5252 input sel5;
5253 input muxtst;
5254`ifdef LIB
5255`ifdef MUXOHTEST
5256//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5257`endif
5258 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5259
5260 assign out = (sel[5:0] == 6'b000001) ? in0:
5261 (sel[5:0] == 6'b000010) ? in1:
5262 (sel[5:0] == 6'b000100) ? in2:
5263 (sel[5:0] == 6'b001000) ? in3:
5264 (sel[5:0] == 6'b010000) ? in4:
5265 (sel[5:0] == 6'b100000) ? in5:
5266 (sel[6:0] == 7'b0000000) ? 1'b1:
5267 1'bx;
5268`endif
5269endmodule
5270
5271module cl_dp1_mux6_16x(
5272in0,
5273in1,
5274in2,
5275in3,
5276in4,
5277in5,
5278sel0,
5279sel1,
5280sel2,
5281sel3,
5282sel4,
5283sel5,
5284muxtst,
5285out
5286);
5287
5288
5289
5290 output out;
5291
5292 input in0;
5293 input in1;
5294 input in2;
5295 input in3;
5296 input in4;
5297 input in5;
5298 input sel0;
5299 input sel1;
5300 input sel2;
5301 input sel3;
5302 input sel4;
5303 input sel5;
5304 input muxtst;
5305`ifdef LIB
5306`ifdef MUXOHTEST
5307//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5308`endif
5309 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5310
5311 assign out = (sel[5:0] == 6'b000001) ? in0:
5312 (sel[5:0] == 6'b000010) ? in1:
5313 (sel[5:0] == 6'b000100) ? in2:
5314 (sel[5:0] == 6'b001000) ? in3:
5315 (sel[5:0] == 6'b010000) ? in4:
5316 (sel[5:0] == 6'b100000) ? in5:
5317 (sel[6:0] == 7'b0000000) ? 1'b1:
5318 1'bx;
5319`endif
5320endmodule
5321
5322module cl_dp1_mux6_24x(
5323in0,
5324in1,
5325in2,
5326in3,
5327in4,
5328in5,
5329sel0,
5330sel1,
5331sel2,
5332sel3,
5333sel4,
5334sel5,
5335muxtst,
5336out
5337);
5338
5339
5340
5341 output out;
5342
5343 input in0;
5344 input in1;
5345 input in2;
5346 input in3;
5347 input in4;
5348 input in5;
5349 input sel0;
5350 input sel1;
5351 input sel2;
5352 input sel3;
5353 input sel4;
5354 input sel5;
5355 input muxtst;
5356`ifdef LIB
5357`ifdef MUXOHTEST
5358//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5359`endif
5360 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5361
5362 assign out = (sel[5:0] == 6'b000001) ? in0:
5363 (sel[5:0] == 6'b000010) ? in1:
5364 (sel[5:0] == 6'b000100) ? in2:
5365 (sel[5:0] == 6'b001000) ? in3:
5366 (sel[5:0] == 6'b010000) ? in4:
5367 (sel[5:0] == 6'b100000) ? in5:
5368 (sel[6:0] == 7'b0000000) ? 1'b1:
5369 1'bx;
5370`endif
5371endmodule
5372
5373module cl_dp1_mux6_2x(
5374in0,
5375in1,
5376in2,
5377in3,
5378in4,
5379in5,
5380sel0,
5381sel1,
5382sel2,
5383sel3,
5384sel4,
5385sel5,
5386muxtst,
5387out
5388);
5389
5390
5391
5392 output out;
5393
5394 input in0;
5395 input in1;
5396 input in2;
5397 input in3;
5398 input in4;
5399 input in5;
5400 input sel0;
5401 input sel1;
5402 input sel2;
5403 input sel3;
5404 input sel4;
5405 input sel5;
5406 input muxtst;
5407`ifdef LIB
5408`ifdef MUXOHTEST
5409//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5410`endif
5411 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5412
5413 assign out = (sel[5:0] == 6'b000001) ? in0:
5414 (sel[5:0] == 6'b000010) ? in1:
5415 (sel[5:0] == 6'b000100) ? in2:
5416 (sel[5:0] == 6'b001000) ? in3:
5417 (sel[5:0] == 6'b010000) ? in4:
5418 (sel[5:0] == 6'b100000) ? in5:
5419 (sel[6:0] == 7'b0000000) ? 1'b1:
5420 1'bx;
5421`endif
5422endmodule
5423
5424module cl_dp1_mux6_32x(
5425in0,
5426in1,
5427in2,
5428in3,
5429in4,
5430in5,
5431sel0,
5432sel1,
5433sel2,
5434sel3,
5435sel4,
5436sel5,
5437muxtst,
5438out
5439);
5440
5441
5442
5443 output out;
5444
5445 input in0;
5446 input in1;
5447 input in2;
5448 input in3;
5449 input in4;
5450 input in5;
5451 input sel0;
5452 input sel1;
5453 input sel2;
5454 input sel3;
5455 input sel4;
5456 input sel5;
5457 input muxtst;
5458`ifdef LIB
5459`ifdef MUXOHTEST
5460//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5461`endif
5462 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5463
5464 assign out = (sel[5:0] == 6'b000001) ? in0:
5465 (sel[5:0] == 6'b000010) ? in1:
5466 (sel[5:0] == 6'b000100) ? in2:
5467 (sel[5:0] == 6'b001000) ? in3:
5468 (sel[5:0] == 6'b010000) ? in4:
5469 (sel[5:0] == 6'b100000) ? in5:
5470 (sel[6:0] == 7'b0000000) ? 1'b1:
5471 1'bx;
5472`endif
5473endmodule
5474
5475module cl_dp1_mux6_4x(
5476in0,
5477in1,
5478in2,
5479in3,
5480in4,
5481in5,
5482sel0,
5483sel1,
5484sel2,
5485sel3,
5486sel4,
5487sel5,
5488muxtst,
5489out
5490);
5491
5492
5493
5494 output out;
5495
5496 input in0;
5497 input in1;
5498 input in2;
5499 input in3;
5500 input in4;
5501 input in5;
5502 input sel0;
5503 input sel1;
5504 input sel2;
5505 input sel3;
5506 input sel4;
5507 input sel5;
5508 input muxtst;
5509`ifdef LIB
5510`ifdef MUXOHTEST
5511//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5512`endif
5513 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5514
5515 assign out = (sel[5:0] == 6'b000001) ? in0:
5516 (sel[5:0] == 6'b000010) ? in1:
5517 (sel[5:0] == 6'b000100) ? in2:
5518 (sel[5:0] == 6'b001000) ? in3:
5519 (sel[5:0] == 6'b010000) ? in4:
5520 (sel[5:0] == 6'b100000) ? in5:
5521 (sel[6:0] == 7'b0000000) ? 1'b1:
5522 1'bx;
5523`endif
5524endmodule
5525
5526module cl_dp1_mux6_6x(
5527in0,
5528in1,
5529in2,
5530in3,
5531in4,
5532in5,
5533sel0,
5534sel1,
5535sel2,
5536sel3,
5537sel4,
5538sel5,
5539muxtst,
5540out
5541);
5542
5543`ifdef MUXOHTEST
5544//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5545`endif
5546
5547 output out;
5548
5549 input in0;
5550 input in1;
5551 input in2;
5552 input in3;
5553 input in4;
5554 input in5;
5555 input sel0;
5556 input sel1;
5557 input sel2;
5558 input sel3;
5559 input sel4;
5560 input sel5;
5561 input muxtst;
5562`ifdef LIB
5563
5564 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5565
5566 assign out = (sel[5:0] == 6'b000001) ? in0:
5567 (sel[5:0] == 6'b000010) ? in1:
5568 (sel[5:0] == 6'b000100) ? in2:
5569 (sel[5:0] == 6'b001000) ? in3:
5570 (sel[5:0] == 6'b010000) ? in4:
5571 (sel[5:0] == 6'b100000) ? in5:
5572 (sel[6:0] == 7'b0000000) ? 1'b1:
5573 1'bx;
5574`endif
5575endmodule
5576
5577module cl_dp1_mux6_8x(
5578in0,
5579in1,
5580in2,
5581in3,
5582in4,
5583in5,
5584sel0,
5585sel1,
5586sel2,
5587sel3,
5588sel4,
5589sel5,
5590muxtst,
5591out
5592);
5593
5594`ifdef MUXOHTEST
5595//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
5596`endif
5597
5598 output out;
5599
5600 input in0;
5601 input in1;
5602 input in2;
5603 input in3;
5604 input in4;
5605 input in5;
5606 input sel0;
5607 input sel1;
5608 input sel2;
5609 input sel3;
5610 input sel4;
5611 input sel5;
5612 input muxtst;
5613`ifdef LIB
5614
5615 wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
5616
5617 assign out = (sel[5:0] == 6'b000001) ? in0:
5618 (sel[5:0] == 6'b000010) ? in1:
5619 (sel[5:0] == 6'b000100) ? in2:
5620 (sel[5:0] == 6'b001000) ? in3:
5621 (sel[5:0] == 6'b010000) ? in4:
5622 (sel[5:0] == 6'b100000) ? in5:
5623 (sel[6:0] == 7'b0000000) ? 1'b1:
5624 1'bx;
5625`endif
5626endmodule
5627
5628
5629module cl_dp1_mux7_12x(
5630in0,
5631in1,
5632in2,
5633in3,
5634in4,
5635in5,
5636in6,
5637sel0,
5638sel1,
5639sel2,
5640sel3,
5641sel4,
5642sel5,
5643sel6,
5644muxtst,
5645out
5646);
5647
5648
5649 output out;
5650
5651 input in0;
5652 input in1;
5653 input in2;
5654 input in3;
5655 input in4;
5656 input in5;
5657 input in6;
5658 input sel0;
5659 input sel1;
5660 input sel2;
5661 input sel3;
5662 input sel4;
5663 input sel5;
5664 input sel6;
5665 input muxtst;
5666
5667 `ifdef LIB
5668`ifdef MUXOHTEST
5669//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
5670`endif
5671
5672 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
5673
5674 assign out = (sel[6:0] == 7'b0000001) ? in0:
5675 (sel[6:0] == 7'b0000010) ? in1:
5676 (sel[6:0] == 7'b0000100) ? in2:
5677 (sel[6:0] == 7'b0001000) ? in3:
5678 (sel[6:0] == 7'b0010000) ? in4:
5679 (sel[6:0] == 7'b0100000) ? in5:
5680 (sel[6:0] == 7'b1000000) ? in6:
5681 (sel[7:0] == 8'b00000000) ? 1'b1:
5682 1'bx;
5683`endif
5684endmodule
5685
5686module cl_dp1_mux7_16x(
5687in0,
5688in1,
5689in2,
5690in3,
5691in4,
5692in5,
5693in6,
5694sel0,
5695sel1,
5696sel2,
5697sel3,
5698sel4,
5699sel5,
5700sel6,
5701muxtst,
5702out
5703);
5704
5705
5706 output out;
5707
5708 input in0;
5709 input in1;
5710 input in2;
5711 input in3;
5712 input in4;
5713 input in5;
5714 input in6;
5715 input sel0;
5716 input sel1;
5717 input sel2;
5718 input sel3;
5719 input sel4;
5720 input sel5;
5721 input sel6;
5722 input muxtst;
5723
5724 `ifdef LIB
5725
5726 `ifdef MUXOHTEST
5727//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
5728`endif
5729
5730 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
5731
5732 assign out = (sel[6:0] == 7'b0000001) ? in0:
5733 (sel[6:0] == 7'b0000010) ? in1:
5734 (sel[6:0] == 7'b0000100) ? in2:
5735 (sel[6:0] == 7'b0001000) ? in3:
5736 (sel[6:0] == 7'b0010000) ? in4:
5737 (sel[6:0] == 7'b0100000) ? in5:
5738 (sel[6:0] == 7'b1000000) ? in6:
5739 (sel[7:0] == 8'b00000000) ? 1'b1:
5740 1'bx;
5741`endif
5742endmodule
5743
5744module cl_dp1_mux7_24x(
5745in0,
5746in1,
5747in2,
5748in3,
5749in4,
5750in5,
5751in6,
5752sel0,
5753sel1,
5754sel2,
5755sel3,
5756sel4,
5757sel5,
5758sel6,
5759muxtst,
5760out
5761);
5762
5763
5764 output out;
5765
5766 input in0;
5767 input in1;
5768 input in2;
5769 input in3;
5770 input in4;
5771 input in5;
5772 input in6;
5773 input sel0;
5774 input sel1;
5775 input sel2;
5776 input sel3;
5777 input sel4;
5778 input sel5;
5779 input sel6;
5780 input muxtst;
5781
5782 `ifdef LIB
5783 `ifdef MUXOHTEST
5784//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
5785`endif
5786
5787 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
5788
5789 assign out = (sel[6:0] == 7'b0000001) ? in0:
5790 (sel[6:0] == 7'b0000010) ? in1:
5791 (sel[6:0] == 7'b0000100) ? in2:
5792 (sel[6:0] == 7'b0001000) ? in3:
5793 (sel[6:0] == 7'b0010000) ? in4:
5794 (sel[6:0] == 7'b0100000) ? in5:
5795 (sel[6:0] == 7'b1000000) ? in6:
5796 (sel[7:0] == 8'b00000000) ? 1'b1:
5797 1'bx;
5798`endif
5799endmodule
5800
5801module cl_dp1_mux7_2x(
5802in0,
5803in1,
5804in2,
5805in3,
5806in4,
5807in5,
5808in6,
5809sel0,
5810sel1,
5811sel2,
5812sel3,
5813sel4,
5814sel5,
5815sel6,
5816muxtst,
5817out
5818);
5819
5820
5821 output out;
5822
5823 input in0;
5824 input in1;
5825 input in2;
5826 input in3;
5827 input in4;
5828 input in5;
5829 input in6;
5830 input sel0;
5831 input sel1;
5832 input sel2;
5833 input sel3;
5834 input sel4;
5835 input sel5;
5836 input sel6;
5837 input muxtst;
5838
5839 `ifdef LIB
5840 `ifdef MUXOHTEST
5841//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
5842`endif
5843
5844 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
5845
5846 assign out = (sel[6:0] == 7'b0000001) ? in0:
5847 (sel[6:0] == 7'b0000010) ? in1:
5848 (sel[6:0] == 7'b0000100) ? in2:
5849 (sel[6:0] == 7'b0001000) ? in3:
5850 (sel[6:0] == 7'b0010000) ? in4:
5851 (sel[6:0] == 7'b0100000) ? in5:
5852 (sel[6:0] == 7'b1000000) ? in6:
5853 (sel[7:0] == 8'b00000000) ? 1'b1:
5854 1'bx;
5855`endif
5856endmodule
5857
5858module cl_dp1_mux7_32x(
5859in0,
5860in1,
5861in2,
5862in3,
5863in4,
5864in5,
5865in6,
5866sel0,
5867sel1,
5868sel2,
5869sel3,
5870sel4,
5871sel5,
5872sel6,
5873muxtst,
5874out
5875);
5876
5877
5878 output out;
5879
5880 input in0;
5881 input in1;
5882 input in2;
5883 input in3;
5884 input in4;
5885 input in5;
5886 input in6;
5887 input sel0;
5888 input sel1;
5889 input sel2;
5890 input sel3;
5891 input sel4;
5892 input sel5;
5893 input sel6;
5894 input muxtst;
5895
5896 `ifdef LIB
5897`ifdef MUXOHTEST
5898//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
5899`endif
5900
5901 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
5902
5903 assign out = (sel[6:0] == 7'b0000001) ? in0:
5904 (sel[6:0] == 7'b0000010) ? in1:
5905 (sel[6:0] == 7'b0000100) ? in2:
5906 (sel[6:0] == 7'b0001000) ? in3:
5907 (sel[6:0] == 7'b0010000) ? in4:
5908 (sel[6:0] == 7'b0100000) ? in5:
5909 (sel[6:0] == 7'b1000000) ? in6:
5910 (sel[7:0] == 8'b00000000) ? 1'b1:
5911 1'bx;
5912`endif
5913endmodule
5914
5915module cl_dp1_mux7_4x(
5916in0,
5917in1,
5918in2,
5919in3,
5920in4,
5921in5,
5922in6,
5923sel0,
5924sel1,
5925sel2,
5926sel3,
5927sel4,
5928sel5,
5929sel6,
5930muxtst,
5931out
5932);
5933
5934
5935 output out;
5936
5937 input in0;
5938 input in1;
5939 input in2;
5940 input in3;
5941 input in4;
5942 input in5;
5943 input in6;
5944 input sel0;
5945 input sel1;
5946 input sel2;
5947 input sel3;
5948 input sel4;
5949 input sel5;
5950 input sel6;
5951 input muxtst;
5952
5953 `ifdef LIB
5954`ifdef MUXOHTEST
5955//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
5956`endif
5957
5958 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
5959
5960 assign out = (sel[6:0] == 7'b0000001) ? in0:
5961 (sel[6:0] == 7'b0000010) ? in1:
5962 (sel[6:0] == 7'b0000100) ? in2:
5963 (sel[6:0] == 7'b0001000) ? in3:
5964 (sel[6:0] == 7'b0010000) ? in4:
5965 (sel[6:0] == 7'b0100000) ? in5:
5966 (sel[6:0] == 7'b1000000) ? in6:
5967 (sel[7:0] == 8'b00000000) ? 1'b1:
5968 1'bx;
5969`endif
5970endmodule
5971
5972module cl_dp1_mux7_6x(
5973in0,
5974in1,
5975in2,
5976in3,
5977in4,
5978in5,
5979in6,
5980sel0,
5981sel1,
5982sel2,
5983sel3,
5984sel4,
5985sel5,
5986sel6,
5987muxtst,
5988out
5989);
5990
5991
5992 output out;
5993
5994 input in0;
5995 input in1;
5996 input in2;
5997 input in3;
5998 input in4;
5999 input in5;
6000 input in6;
6001 input sel0;
6002 input sel1;
6003 input sel2;
6004 input sel3;
6005 input sel4;
6006 input sel5;
6007 input sel6;
6008 input muxtst;
6009
6010 `ifdef LIB
6011`ifdef MUXOHTEST
6012//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
6013`endif
6014
6015 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6016
6017 assign out = (sel[6:0] == 7'b0000001) ? in0:
6018 (sel[6:0] == 7'b0000010) ? in1:
6019 (sel[6:0] == 7'b0000100) ? in2:
6020 (sel[6:0] == 7'b0001000) ? in3:
6021 (sel[6:0] == 7'b0010000) ? in4:
6022 (sel[6:0] == 7'b0100000) ? in5:
6023 (sel[6:0] == 7'b1000000) ? in6:
6024 (sel[7:0] == 8'b00000000) ? 1'b1:
6025 1'bx;
6026`endif
6027endmodule
6028
6029module cl_dp1_mux7_8x(
6030in0,
6031in1,
6032in2,
6033in3,
6034in4,
6035in5,
6036in6,
6037sel0,
6038sel1,
6039sel2,
6040sel3,
6041sel4,
6042sel5,
6043sel6,
6044muxtst,
6045out
6046);
6047
6048
6049 output out;
6050
6051 input in0;
6052 input in1;
6053 input in2;
6054 input in3;
6055 input in4;
6056 input in5;
6057 input in6;
6058 input sel0;
6059 input sel1;
6060 input sel2;
6061 input sel3;
6062 input sel4;
6063 input sel5;
6064 input sel6;
6065 input muxtst;
6066
6067 `ifdef LIB
6068`ifdef MUXOHTEST
6069//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
6070`endif
6071
6072 wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6073
6074 assign out = (sel[6:0] == 7'b0000001) ? in0:
6075 (sel[6:0] == 7'b0000010) ? in1:
6076 (sel[6:0] == 7'b0000100) ? in2:
6077 (sel[6:0] == 7'b0001000) ? in3:
6078 (sel[6:0] == 7'b0010000) ? in4:
6079 (sel[6:0] == 7'b0100000) ? in5:
6080 (sel[6:0] == 7'b1000000) ? in6:
6081 (sel[7:0] == 8'b00000000) ? 1'b1:
6082 1'bx;
6083`endif
6084endmodule
6085
6086
6087module cl_dp1_mux8_12x(
6088in0,
6089in1,
6090in2,
6091in3,
6092in4,
6093in5,
6094in6,
6095in7,
6096sel0,
6097sel1,
6098sel2,
6099sel3,
6100sel4,
6101sel5,
6102sel6,
6103sel7,
6104muxtst,
6105out
6106);
6107
6108
6109
6110
6111 input in0;
6112 input in1;
6113 input in2;
6114 input in3;
6115 input in4;
6116 input in5;
6117 input in6;
6118 input in7;
6119 input sel0;
6120 input sel1;
6121 input sel2;
6122 input sel3;
6123 input sel4;
6124 input sel5;
6125 input sel6;
6126 input sel7;
6127 input muxtst;
6128 output out;
6129
6130 `ifdef LIB
6131`ifdef MUXOHTEST
6132//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6133`endif
6134 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6135
6136 assign out = (sel[7:0] == 8'b00000001) ? in0:
6137 (sel[7:0] == 8'b00000010) ? in1:
6138 (sel[7:0] == 8'b00000100) ? in2:
6139 (sel[7:0] == 8'b00001000) ? in3:
6140 (sel[7:0] == 8'b00010000) ? in4:
6141 (sel[7:0] == 8'b00100000) ? in5:
6142 (sel[7:0] == 8'b01000000) ? in6:
6143 (sel[7:0] == 8'b10000000) ? in7:
6144 (sel[8:0] == 9'b000000000) ? 1'b1:
6145 1'bx;
6146`endif
6147endmodule
6148
6149module cl_dp1_mux8_16x(
6150in0,
6151in1,
6152in2,
6153in3,
6154in4,
6155in5,
6156in6,
6157in7,
6158sel0,
6159sel1,
6160sel2,
6161sel3,
6162sel4,
6163sel5,
6164sel6,
6165sel7,
6166muxtst,
6167out
6168);
6169
6170
6171
6172
6173 input in0;
6174 input in1;
6175 input in2;
6176 input in3;
6177 input in4;
6178 input in5;
6179 input in6;
6180 input in7;
6181 input sel0;
6182 input sel1;
6183 input sel2;
6184 input sel3;
6185 input sel4;
6186 input sel5;
6187 input sel6;
6188 input sel7;
6189 input muxtst;
6190 output out;
6191
6192 `ifdef LIB
6193`ifdef MUXOHTEST
6194//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6195`endif
6196 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6197
6198 assign out = (sel[7:0] == 8'b00000001) ? in0:
6199 (sel[7:0] == 8'b00000010) ? in1:
6200 (sel[7:0] == 8'b00000100) ? in2:
6201 (sel[7:0] == 8'b00001000) ? in3:
6202 (sel[7:0] == 8'b00010000) ? in4:
6203 (sel[7:0] == 8'b00100000) ? in5:
6204 (sel[7:0] == 8'b01000000) ? in6:
6205 (sel[7:0] == 8'b10000000) ? in7:
6206 (sel[8:0] == 9'b000000000) ? 1'b1:
6207 1'bx;
6208`endif
6209endmodule
6210
6211module cl_dp1_mux8_24x(
6212in0,
6213in1,
6214in2,
6215in3,
6216in4,
6217in5,
6218in6,
6219in7,
6220sel0,
6221sel1,
6222sel2,
6223sel3,
6224sel4,
6225sel5,
6226sel6,
6227sel7,
6228muxtst,
6229out
6230);
6231
6232
6233
6234
6235 input in0;
6236 input in1;
6237 input in2;
6238 input in3;
6239 input in4;
6240 input in5;
6241 input in6;
6242 input in7;
6243 input sel0;
6244 input sel1;
6245 input sel2;
6246 input sel3;
6247 input sel4;
6248 input sel5;
6249 input sel6;
6250 input sel7;
6251 input muxtst;
6252 output out;
6253
6254 `ifdef LIB
6255`ifdef MUXOHTEST
6256//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6257`endif
6258 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6259
6260 assign out = (sel[7:0] == 8'b00000001) ? in0:
6261 (sel[7:0] == 8'b00000010) ? in1:
6262 (sel[7:0] == 8'b00000100) ? in2:
6263 (sel[7:0] == 8'b00001000) ? in3:
6264 (sel[7:0] == 8'b00010000) ? in4:
6265 (sel[7:0] == 8'b00100000) ? in5:
6266 (sel[7:0] == 8'b01000000) ? in6:
6267 (sel[7:0] == 8'b10000000) ? in7:
6268 (sel[8:0] == 9'b000000000) ? 1'b1:
6269 1'bx;
6270`endif
6271endmodule
6272
6273module cl_dp1_mux8_2x(
6274in0,
6275in1,
6276in2,
6277in3,
6278in4,
6279in5,
6280in6,
6281in7,
6282sel0,
6283sel1,
6284sel2,
6285sel3,
6286sel4,
6287sel5,
6288sel6,
6289sel7,
6290muxtst,
6291out
6292);
6293
6294
6295
6296
6297 input in0;
6298 input in1;
6299 input in2;
6300 input in3;
6301 input in4;
6302 input in5;
6303 input in6;
6304 input in7;
6305 input sel0;
6306 input sel1;
6307 input sel2;
6308 input sel3;
6309 input sel4;
6310 input sel5;
6311 input sel6;
6312 input sel7;
6313 input muxtst;
6314 output out;
6315
6316 `ifdef LIB
6317`ifdef MUXOHTEST
6318//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6319`endif
6320 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6321
6322 assign out = (sel[7:0] == 8'b00000001) ? in0:
6323 (sel[7:0] == 8'b00000010) ? in1:
6324 (sel[7:0] == 8'b00000100) ? in2:
6325 (sel[7:0] == 8'b00001000) ? in3:
6326 (sel[7:0] == 8'b00010000) ? in4:
6327 (sel[7:0] == 8'b00100000) ? in5:
6328 (sel[7:0] == 8'b01000000) ? in6:
6329 (sel[7:0] == 8'b10000000) ? in7:
6330 (sel[8:0] == 9'b000000000) ? 1'b1:
6331 1'bx;
6332`endif
6333endmodule
6334
6335module cl_dp1_mux8_32x(
6336in0,
6337in1,
6338in2,
6339in3,
6340in4,
6341in5,
6342in6,
6343in7,
6344sel0,
6345sel1,
6346sel2,
6347sel3,
6348sel4,
6349sel5,
6350sel6,
6351sel7,
6352muxtst,
6353out
6354);
6355
6356
6357
6358
6359 input in0;
6360 input in1;
6361 input in2;
6362 input in3;
6363 input in4;
6364 input in5;
6365 input in6;
6366 input in7;
6367 input sel0;
6368 input sel1;
6369 input sel2;
6370 input sel3;
6371 input sel4;
6372 input sel5;
6373 input sel6;
6374 input sel7;
6375 input muxtst;
6376 output out;
6377
6378 `ifdef LIB
6379`ifdef MUXOHTEST
6380//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6381`endif
6382 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6383
6384 assign out = (sel[7:0] == 8'b00000001) ? in0:
6385 (sel[7:0] == 8'b00000010) ? in1:
6386 (sel[7:0] == 8'b00000100) ? in2:
6387 (sel[7:0] == 8'b00001000) ? in3:
6388 (sel[7:0] == 8'b00010000) ? in4:
6389 (sel[7:0] == 8'b00100000) ? in5:
6390 (sel[7:0] == 8'b01000000) ? in6:
6391 (sel[7:0] == 8'b10000000) ? in7:
6392 (sel[8:0] == 9'b000000000) ? 1'b1:
6393 1'bx;
6394`endif
6395endmodule
6396
6397module cl_dp1_mux8_4x(
6398in0,
6399in1,
6400in2,
6401in3,
6402in4,
6403in5,
6404in6,
6405in7,
6406sel0,
6407sel1,
6408sel2,
6409sel3,
6410sel4,
6411sel5,
6412sel6,
6413sel7,
6414muxtst,
6415out
6416);
6417
6418
6419
6420
6421 input in0;
6422 input in1;
6423 input in2;
6424 input in3;
6425 input in4;
6426 input in5;
6427 input in6;
6428 input in7;
6429 input sel0;
6430 input sel1;
6431 input sel2;
6432 input sel3;
6433 input sel4;
6434 input sel5;
6435 input sel6;
6436 input sel7;
6437 input muxtst;
6438 output out;
6439
6440 `ifdef LIB
6441`ifdef MUXOHTEST
6442//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6443`endif
6444 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6445
6446 assign out = (sel[7:0] == 8'b00000001) ? in0:
6447 (sel[7:0] == 8'b00000010) ? in1:
6448 (sel[7:0] == 8'b00000100) ? in2:
6449 (sel[7:0] == 8'b00001000) ? in3:
6450 (sel[7:0] == 8'b00010000) ? in4:
6451 (sel[7:0] == 8'b00100000) ? in5:
6452 (sel[7:0] == 8'b01000000) ? in6:
6453 (sel[7:0] == 8'b10000000) ? in7:
6454 (sel[8:0] == 9'b000000000) ? 1'b1:
6455 1'bx;
6456`endif
6457endmodule
6458
6459module cl_dp1_mux8_6x(
6460in0,
6461in1,
6462in2,
6463in3,
6464in4,
6465in5,
6466in6,
6467in7,
6468sel0,
6469sel1,
6470sel2,
6471sel3,
6472sel4,
6473sel5,
6474sel6,
6475sel7,
6476muxtst,
6477out
6478);
6479
6480
6481
6482
6483 input in0;
6484 input in1;
6485 input in2;
6486 input in3;
6487 input in4;
6488 input in5;
6489 input in6;
6490 input in7;
6491 input sel0;
6492 input sel1;
6493 input sel2;
6494 input sel3;
6495 input sel4;
6496 input sel5;
6497 input sel6;
6498 input sel7;
6499 input muxtst;
6500 output out;
6501
6502 `ifdef LIB
6503`ifdef MUXOHTEST
6504//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6505`endif
6506 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6507
6508 assign out = (sel[7:0] == 8'b00000001) ? in0:
6509 (sel[7:0] == 8'b00000010) ? in1:
6510 (sel[7:0] == 8'b00000100) ? in2:
6511 (sel[7:0] == 8'b00001000) ? in3:
6512 (sel[7:0] == 8'b00010000) ? in4:
6513 (sel[7:0] == 8'b00100000) ? in5:
6514 (sel[7:0] == 8'b01000000) ? in6:
6515 (sel[7:0] == 8'b10000000) ? in7:
6516 (sel[8:0] == 9'b000000000) ? 1'b1:
6517 1'bx;
6518`endif
6519endmodule
6520
6521module cl_dp1_mux8_8x(
6522in0,
6523in1,
6524in2,
6525in3,
6526in4,
6527in5,
6528in6,
6529in7,
6530sel0,
6531sel1,
6532sel2,
6533sel3,
6534sel4,
6535sel5,
6536sel6,
6537sel7,
6538muxtst,
6539out
6540);
6541
6542
6543
6544
6545 input in0;
6546 input in1;
6547 input in2;
6548 input in3;
6549 input in4;
6550 input in5;
6551 input in6;
6552 input in7;
6553 input sel0;
6554 input sel1;
6555 input sel2;
6556 input sel3;
6557 input sel4;
6558 input sel5;
6559 input sel6;
6560 input sel7;
6561 input muxtst;
6562 output out;
6563
6564 `ifdef LIB
6565`ifdef MUXOHTEST
6566//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
6567`endif
6568 wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
6569
6570 assign out = (sel[7:0] == 8'b00000001) ? in0:
6571 (sel[7:0] == 8'b00000010) ? in1:
6572 (sel[7:0] == 8'b00000100) ? in2:
6573 (sel[7:0] == 8'b00001000) ? in3:
6574 (sel[7:0] == 8'b00010000) ? in4:
6575 (sel[7:0] == 8'b00100000) ? in5:
6576 (sel[7:0] == 8'b01000000) ? in6:
6577 (sel[7:0] == 8'b10000000) ? in7:
6578 (sel[8:0] == 9'b000000000) ? 1'b1:
6579 1'bx;
6580`endif
6581endmodule
6582
6583
6584module cl_dp1_muxbuff2_16x (
6585in0,
6586in1,
6587out0,
6588out1
6589);
6590input in0;
6591input in1;
6592output out0;
6593output out1;
6594
6595`ifdef LIB
6596assign {out1,out0} = {in1,in0};
6597`endif
6598
6599endmodule
6600module cl_dp1_muxbuff2_32x (
6601in0,
6602in1,
6603out0,
6604out1
6605);
6606input in0;
6607input in1;
6608output out0;
6609output out1;
6610
6611`ifdef LIB
6612assign {out1,out0} = {in1,in0};
6613`endif
6614
6615endmodule
6616module cl_dp1_muxbuff2_48x (
6617in0,
6618in1,
6619out0,
6620out1
6621);
6622input in0;
6623input in1;
6624output out0;
6625output out1;
6626
6627`ifdef LIB
6628assign {out1,out0} = {in1,in0};
6629`endif
6630
6631endmodule
6632module cl_dp1_muxbuff2_64x (
6633in0,
6634in1,
6635out0,
6636out1
6637);
6638input in0;
6639input in1;
6640output out0;
6641output out1;
6642
6643`ifdef LIB
6644assign {out1,out0} = {in1,in0};
6645`endif
6646
6647endmodule
6648
6649module cl_dp1_muxbuff2_8x (
6650in0,
6651in1,
6652out0,
6653out1
6654);
6655input in0;
6656input in1;
6657output out0;
6658output out1;
6659
6660`ifdef LIB
6661assign {out1,out0} = {in1,in0};
6662`endif
6663
6664endmodule
6665module cl_dp1_muxbuff3_16x (
6666in0,
6667in1,
6668in2,
6669out0,
6670out1,
6671out2
6672);
6673input in0;
6674input in1;
6675input in2;
6676output out0;
6677output out1;
6678output out2;
6679
6680`ifdef LIB
6681assign {out2,out1,out0} = {in2,in1,in0};
6682`endif
6683
6684endmodule
6685module cl_dp1_muxbuff3_32x (
6686in0,
6687in1,
6688in2,
6689out0,
6690out1,
6691out2
6692);
6693input in0;
6694input in1;
6695input in2;
6696output out0;
6697output out1;
6698output out2;
6699
6700`ifdef LIB
6701assign {out2,out1,out0} = {in2,in1,in0};
6702`endif
6703
6704endmodule
6705module cl_dp1_muxbuff3_48x (
6706in0,
6707in1,
6708in2,
6709out0,
6710out1,
6711out2
6712);
6713input in0;
6714input in1;
6715input in2;
6716output out0;
6717output out1;
6718output out2;
6719
6720`ifdef LIB
6721assign {out2,out1,out0} = {in2,in1,in0};
6722`endif
6723
6724endmodule
6725module cl_dp1_muxbuff3_64x (
6726in0,
6727in1,
6728in2,
6729out0,
6730out1,
6731out2
6732);
6733input in0;
6734input in1;
6735input in2;
6736output out0;
6737output out1;
6738output out2;
6739
6740`ifdef LIB
6741assign {out2,out1,out0} = {in2,in1,in0};
6742`endif
6743
6744endmodule
6745
6746module cl_dp1_muxbuff3_8x (
6747in0,
6748in1,
6749in2,
6750out0,
6751out1,
6752out2
6753);
6754input in0;
6755input in1;
6756input in2;
6757output out0;
6758output out1;
6759output out2;
6760
6761`ifdef LIB
6762assign {out2,out1,out0} = {in2,in1,in0};
6763`endif
6764
6765endmodule
6766module cl_dp1_muxbuff4_16x (
6767in0,
6768in1,
6769in2,
6770in3,
6771out0,
6772out1,
6773out2,
6774out3
6775);
6776input in0;
6777input in1;
6778input in2;
6779input in3;
6780output out0;
6781output out1;
6782output out2;
6783output out3;
6784
6785`ifdef LIB
6786assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
6787`endif
6788
6789endmodule
6790module cl_dp1_muxbuff4_32x (
6791in0,
6792in1,
6793in2,
6794in3,
6795out0,
6796out1,
6797out2,
6798out3
6799);
6800input in0;
6801input in1;
6802input in2;
6803input in3;
6804output out0;
6805output out1;
6806output out2;
6807output out3;
6808
6809`ifdef LIB
6810assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
6811`endif
6812
6813endmodule
6814module cl_dp1_muxbuff4_48x (
6815in0,
6816in1,
6817in2,
6818in3,
6819out0,
6820out1,
6821out2,
6822out3
6823);
6824input in0;
6825input in1;
6826input in2;
6827input in3;
6828output out0;
6829output out1;
6830output out2;
6831output out3;
6832
6833`ifdef LIB
6834assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
6835`endif
6836
6837endmodule
6838module cl_dp1_muxbuff4_64x (
6839in0,
6840in1,
6841in2,
6842in3,
6843out0,
6844out1,
6845out2,
6846out3
6847);
6848input in0;
6849input in1;
6850input in2;
6851input in3;
6852output out0;
6853output out1;
6854output out2;
6855output out3;
6856
6857`ifdef LIB
6858assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
6859`endif
6860
6861endmodule
6862
6863module cl_dp1_muxbuff4_8x (
6864in0,
6865in1,
6866in2,
6867in3,
6868out0,
6869out1,
6870out2,
6871out3
6872);
6873input in0;
6874input in1;
6875input in2;
6876input in3;
6877output out0;
6878output out1;
6879output out2;
6880output out3;
6881
6882`ifdef LIB
6883assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
6884`endif
6885
6886endmodule
6887module cl_dp1_muxbuff5_16x (
6888in0,
6889in1,
6890in2,
6891in3,
6892in4,
6893out0,
6894out1,
6895out2,
6896out3,
6897out4
6898);
6899input in0;
6900input in1;
6901input in2;
6902input in3;
6903input in4;
6904output out0;
6905output out1;
6906output out2;
6907output out3;
6908output out4;
6909
6910`ifdef LIB
6911assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
6912`endif
6913
6914endmodule
6915module cl_dp1_muxbuff5_32x (
6916in0,
6917in1,
6918in2,
6919in3,
6920in4,
6921out0,
6922out1,
6923out2,
6924out3,
6925out4
6926);
6927input in0;
6928input in1;
6929input in2;
6930input in3;
6931input in4;
6932output out0;
6933output out1;
6934output out2;
6935output out3;
6936output out4;
6937
6938`ifdef LIB
6939assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
6940`endif
6941
6942endmodule
6943module cl_dp1_muxbuff5_48x (
6944in0,
6945in1,
6946in2,
6947in3,
6948in4,
6949out0,
6950out1,
6951out2,
6952out3,
6953out4
6954);
6955input in0;
6956input in1;
6957input in2;
6958input in3;
6959input in4;
6960output out0;
6961output out1;
6962output out2;
6963output out3;
6964output out4;
6965
6966`ifdef LIB
6967assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
6968`endif
6969
6970endmodule
6971module cl_dp1_muxbuff5_64x (
6972in0,
6973in1,
6974in2,
6975in3,
6976in4,
6977out0,
6978out1,
6979out2,
6980out3,
6981out4
6982);
6983input in0;
6984input in1;
6985input in2;
6986input in3;
6987input in4;
6988output out0;
6989output out1;
6990output out2;
6991output out3;
6992output out4;
6993
6994`ifdef LIB
6995assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
6996`endif
6997
6998endmodule
6999
7000module cl_dp1_muxbuff5_8x (
7001in0,
7002in1,
7003in2,
7004in3,
7005in4,
7006out0,
7007out1,
7008out2,
7009out3,
7010out4
7011);
7012input in0;
7013input in1;
7014input in2;
7015input in3;
7016input in4;
7017output out0;
7018output out1;
7019output out2;
7020output out3;
7021output out4;
7022
7023`ifdef LIB
7024assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
7025`endif
7026
7027endmodule
7028module cl_dp1_muxbuff6_16x (
7029in0,
7030in1,
7031in2,
7032in3,
7033in4,
7034in5,
7035out0,
7036out1,
7037out2,
7038out3,
7039out4,
7040out5
7041);
7042input in0;
7043input in1;
7044input in2;
7045input in3;
7046input in4;
7047input in5;
7048output out0;
7049output out1;
7050output out2;
7051output out3;
7052output out4;
7053output out5;
7054
7055`ifdef LIB
7056assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
7057`endif
7058
7059endmodule
7060module cl_dp1_muxbuff6_32x (
7061in0,
7062in1,
7063in2,
7064in3,
7065in4,
7066in5,
7067out0,
7068out1,
7069out2,
7070out3,
7071out4,
7072out5
7073);
7074input in0;
7075input in1;
7076input in2;
7077input in3;
7078input in4;
7079input in5;
7080output out0;
7081output out1;
7082output out2;
7083output out3;
7084output out4;
7085output out5;
7086
7087`ifdef LIB
7088assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
7089`endif
7090
7091endmodule
7092module cl_dp1_muxbuff6_48x (
7093in0,
7094in1,
7095in2,
7096in3,
7097in4,
7098in5,
7099out0,
7100out1,
7101out2,
7102out3,
7103out4,
7104out5
7105);
7106input in0;
7107input in1;
7108input in2;
7109input in3;
7110input in4;
7111input in5;
7112output out0;
7113output out1;
7114output out2;
7115output out3;
7116output out4;
7117output out5;
7118
7119`ifdef LIB
7120assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
7121`endif
7122
7123endmodule
7124module cl_dp1_muxbuff6_64x (
7125in0,
7126in1,
7127in2,
7128in3,
7129in4,
7130in5,
7131out0,
7132out1,
7133out2,
7134out3,
7135out4,
7136out5
7137);
7138input in0;
7139input in1;
7140input in2;
7141input in3;
7142input in4;
7143input in5;
7144output out0;
7145output out1;
7146output out2;
7147output out3;
7148output out4;
7149output out5;
7150
7151`ifdef LIB
7152assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
7153`endif
7154
7155endmodule
7156
7157module cl_dp1_muxbuff6_8x (
7158in0,
7159in1,
7160in2,
7161in3,
7162in4,
7163in5,
7164out0,
7165out1,
7166out2,
7167out3,
7168out4,
7169out5
7170);
7171input in0;
7172input in1;
7173input in2;
7174input in3;
7175input in4;
7176input in5;
7177output out0;
7178output out1;
7179output out2;
7180output out3;
7181output out4;
7182output out5;
7183
7184`ifdef LIB
7185assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
7186`endif
7187
7188endmodule
7189module cl_dp1_muxbuff7_16x (
7190in0,
7191in1,
7192in2,
7193in3,
7194in4,
7195in5,
7196in6,
7197out0,
7198out1,
7199out2,
7200out3,
7201out4,
7202out5,
7203out6
7204);
7205input in0;
7206input in1;
7207input in2;
7208input in3;
7209input in4;
7210input in5;
7211input in6;
7212output out0;
7213output out1;
7214output out2;
7215output out3;
7216output out4;
7217output out5;
7218output out6;
7219
7220`ifdef LIB
7221assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
7222`endif
7223
7224endmodule
7225module cl_dp1_muxbuff7_32x (
7226in0,
7227in1,
7228in2,
7229in3,
7230in4,
7231in5,
7232in6,
7233out0,
7234out1,
7235out2,
7236out3,
7237out4,
7238out5,
7239out6
7240);
7241input in0;
7242input in1;
7243input in2;
7244input in3;
7245input in4;
7246input in5;
7247input in6;
7248output out0;
7249output out1;
7250output out2;
7251output out3;
7252output out4;
7253output out5;
7254output out6;
7255
7256`ifdef LIB
7257assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
7258`endif
7259
7260endmodule
7261module cl_dp1_muxbuff7_48x (
7262in0,
7263in1,
7264in2,
7265in3,
7266in4,
7267in5,
7268in6,
7269out0,
7270out1,
7271out2,
7272out3,
7273out4,
7274out5,
7275out6
7276);
7277input in0;
7278input in1;
7279input in2;
7280input in3;
7281input in4;
7282input in5;
7283input in6;
7284output out0;
7285output out1;
7286output out2;
7287output out3;
7288output out4;
7289output out5;
7290output out6;
7291
7292`ifdef LIB
7293assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
7294`endif
7295
7296endmodule
7297module cl_dp1_muxbuff7_64x (
7298in0,
7299in1,
7300in2,
7301in3,
7302in4,
7303in5,
7304in6,
7305out0,
7306out1,
7307out2,
7308out3,
7309out4,
7310out5,
7311out6
7312);
7313input in0;
7314input in1;
7315input in2;
7316input in3;
7317input in4;
7318input in5;
7319input in6;
7320output out0;
7321output out1;
7322output out2;
7323output out3;
7324output out4;
7325output out5;
7326output out6;
7327
7328`ifdef LIB
7329assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
7330`endif
7331
7332endmodule
7333
7334module cl_dp1_muxbuff7_8x (
7335in0,
7336in1,
7337in2,
7338in3,
7339in4,
7340in5,
7341in6,
7342out0,
7343out1,
7344out2,
7345out3,
7346out4,
7347out5,
7348out6
7349);
7350input in0;
7351input in1;
7352input in2;
7353input in3;
7354input in4;
7355input in5;
7356input in6;
7357output out0;
7358output out1;
7359output out2;
7360output out3;
7361output out4;
7362output out5;
7363output out6;
7364
7365`ifdef LIB
7366assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
7367`endif
7368
7369endmodule
7370module cl_dp1_muxbuff8_16x (
7371in0,
7372in1,
7373in2,
7374in3,
7375in4,
7376in5,
7377in6,
7378in7,
7379out0,
7380out1,
7381out2,
7382out3,
7383out4,
7384out5,
7385out6,
7386out7
7387);
7388input in0;
7389input in1;
7390input in2;
7391input in3;
7392input in4;
7393input in5;
7394input in6;
7395input in7;
7396output out0;
7397output out1;
7398output out2;
7399output out3;
7400output out4;
7401output out5;
7402output out6;
7403output out7;
7404
7405`ifdef LIB
7406assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
7407`endif
7408
7409endmodule
7410module cl_dp1_muxbuff8_32x (
7411in0,
7412in1,
7413in2,
7414in3,
7415in4,
7416in5,
7417in6,
7418in7,
7419out0,
7420out1,
7421out2,
7422out3,
7423out4,
7424out5,
7425out6,
7426out7
7427);
7428input in0;
7429input in1;
7430input in2;
7431input in3;
7432input in4;
7433input in5;
7434input in6;
7435input in7;
7436output out0;
7437output out1;
7438output out2;
7439output out3;
7440output out4;
7441output out5;
7442output out6;
7443output out7;
7444
7445`ifdef LIB
7446assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
7447`endif
7448
7449endmodule
7450module cl_dp1_muxbuff8_48x (
7451in0,
7452in1,
7453in2,
7454in3,
7455in4,
7456in5,
7457in6,
7458in7,
7459out0,
7460out1,
7461out2,
7462out3,
7463out4,
7464out5,
7465out6,
7466out7
7467);
7468input in0;
7469input in1;
7470input in2;
7471input in3;
7472input in4;
7473input in5;
7474input in6;
7475input in7;
7476output out0;
7477output out1;
7478output out2;
7479output out3;
7480output out4;
7481output out5;
7482output out6;
7483output out7;
7484
7485`ifdef LIB
7486assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
7487`endif
7488
7489endmodule
7490module cl_dp1_muxbuff8_64x (
7491in0,
7492in1,
7493in2,
7494in3,
7495in4,
7496in5,
7497in6,
7498in7,
7499out0,
7500out1,
7501out2,
7502out3,
7503out4,
7504out5,
7505out6,
7506out7
7507);
7508input in0;
7509input in1;
7510input in2;
7511input in3;
7512input in4;
7513input in5;
7514input in6;
7515input in7;
7516output out0;
7517output out1;
7518output out2;
7519output out3;
7520output out4;
7521output out5;
7522output out6;
7523output out7;
7524
7525`ifdef LIB
7526assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
7527`endif
7528
7529endmodule
7530
7531module cl_dp1_muxbuff8_8x (
7532in0,
7533in1,
7534in2,
7535in3,
7536in4,
7537in5,
7538in6,
7539in7,
7540out0,
7541out1,
7542out2,
7543out3,
7544out4,
7545out5,
7546out6,
7547out7
7548);
7549input in0;
7550input in1;
7551input in2;
7552input in3;
7553input in4;
7554input in5;
7555input in6;
7556input in7;
7557output out0;
7558output out1;
7559output out2;
7560output out3;
7561output out4;
7562output out5;
7563output out6;
7564output out7;
7565
7566`ifdef LIB
7567assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
7568`endif
7569
7570endmodule
7571module cl_dp1_muxinv2_16x (
7572in0,
7573in1,
7574out0,
7575out1
7576);
7577input in0;
7578input in1;
7579output out0;
7580output out1;
7581
7582`ifdef LIB
7583assign {out1,out0} = ~{in1,in0};
7584`endif
7585
7586endmodule
7587module cl_dp1_muxinv2_32x (
7588in0,
7589in1,
7590out0,
7591out1
7592);
7593input in0;
7594input in1;
7595output out0;
7596output out1;
7597
7598`ifdef LIB
7599assign {out1,out0} = ~{in1,in0};
7600`endif
7601
7602endmodule
7603module cl_dp1_muxinv2_48x (
7604in0,
7605in1,
7606out0,
7607out1
7608);
7609input in0;
7610input in1;
7611output out0;
7612output out1;
7613
7614`ifdef LIB
7615assign {out1,out0} = ~{in1,in0};
7616`endif
7617
7618endmodule
7619module cl_dp1_muxinv2_64x (
7620in0,
7621in1,
7622out0,
7623out1
7624);
7625input in0;
7626input in1;
7627output out0;
7628output out1;
7629
7630`ifdef LIB
7631assign {out1,out0} = ~{in1,in0};
7632`endif
7633
7634endmodule
7635
7636module cl_dp1_muxinv2_8x (
7637in0,
7638in1,
7639out0,
7640out1
7641);
7642input in0;
7643input in1;
7644output out0;
7645output out1;
7646
7647`ifdef LIB
7648assign {out1,out0} = ~{in1,in0};
7649`endif
7650
7651endmodule
7652module cl_dp1_muxinv3_16x (
7653in0,
7654in1,
7655in2,
7656out0,
7657out1,
7658out2
7659);
7660input in0;
7661input in1;
7662input in2;
7663output out0;
7664output out1;
7665output out2;
7666
7667`ifdef LIB
7668assign {out2,out1,out0} = ~{in2,in1,in0};
7669`endif
7670
7671endmodule
7672module cl_dp1_muxinv3_32x (
7673in0,
7674in1,
7675in2,
7676out0,
7677out1,
7678out2
7679);
7680input in0;
7681input in1;
7682input in2;
7683output out0;
7684output out1;
7685output out2;
7686
7687`ifdef LIB
7688assign {out2,out1,out0} = ~{in2,in1,in0};
7689`endif
7690
7691endmodule
7692module cl_dp1_muxinv3_48x (
7693in0,
7694in1,
7695in2,
7696out0,
7697out1,
7698out2
7699);
7700input in0;
7701input in1;
7702input in2;
7703output out0;
7704output out1;
7705output out2;
7706
7707`ifdef LIB
7708assign {out2,out1,out0} = ~{in2,in1,in0};
7709`endif
7710
7711endmodule
7712module cl_dp1_muxinv3_64x (
7713in0,
7714in1,
7715in2,
7716out0,
7717out1,
7718out2
7719);
7720input in0;
7721input in1;
7722input in2;
7723output out0;
7724output out1;
7725output out2;
7726
7727`ifdef LIB
7728assign {out2,out1,out0} = ~{in2,in1,in0};
7729`endif
7730
7731endmodule
7732
7733module cl_dp1_muxinv3_8x (
7734in0,
7735in1,
7736in2,
7737out0,
7738out1,
7739out2
7740);
7741input in0;
7742input in1;
7743input in2;
7744output out0;
7745output out1;
7746output out2;
7747
7748`ifdef LIB
7749assign {out2,out1,out0} = ~{in2,in1,in0};
7750`endif
7751
7752endmodule
7753module cl_dp1_muxinv4_16x (
7754in0,
7755in1,
7756in2,
7757in3,
7758out0,
7759out1,
7760out2,
7761out3
7762);
7763input in0;
7764input in1;
7765input in2;
7766input in3;
7767output out0;
7768output out1;
7769output out2;
7770output out3;
7771
7772`ifdef LIB
7773assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
7774`endif
7775
7776endmodule
7777module cl_dp1_muxinv4_32x (
7778in0,
7779in1,
7780in2,
7781in3,
7782out0,
7783out1,
7784out2,
7785out3
7786);
7787input in0;
7788input in1;
7789input in2;
7790input in3;
7791output out0;
7792output out1;
7793output out2;
7794output out3;
7795
7796`ifdef LIB
7797assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
7798`endif
7799
7800endmodule
7801module cl_dp1_muxinv4_48x (
7802in0,
7803in1,
7804in2,
7805in3,
7806out0,
7807out1,
7808out2,
7809out3
7810);
7811input in0;
7812input in1;
7813input in2;
7814input in3;
7815output out0;
7816output out1;
7817output out2;
7818output out3;
7819
7820`ifdef LIB
7821assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
7822`endif
7823
7824endmodule
7825module cl_dp1_muxinv4_64x (
7826in0,
7827in1,
7828in2,
7829in3,
7830out0,
7831out1,
7832out2,
7833out3
7834);
7835input in0;
7836input in1;
7837input in2;
7838input in3;
7839output out0;
7840output out1;
7841output out2;
7842output out3;
7843
7844`ifdef LIB
7845assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
7846`endif
7847
7848endmodule
7849
7850module cl_dp1_muxinv4_8x (
7851in0,
7852in1,
7853in2,
7854in3,
7855out0,
7856out1,
7857out2,
7858out3
7859);
7860input in0;
7861input in1;
7862input in2;
7863input in3;
7864output out0;
7865output out1;
7866output out2;
7867output out3;
7868
7869`ifdef LIB
7870assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
7871`endif
7872
7873endmodule
7874module cl_dp1_muxinv5_16x (
7875in0,
7876in1,
7877in2,
7878in3,
7879in4,
7880out0,
7881out1,
7882out2,
7883out3,
7884out4
7885);
7886input in0;
7887input in1;
7888input in2;
7889input in3;
7890input in4;
7891output out0;
7892output out1;
7893output out2;
7894output out3;
7895output out4;
7896
7897`ifdef LIB
7898assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
7899`endif
7900
7901endmodule
7902module cl_dp1_muxinv5_32x (
7903in0,
7904in1,
7905in2,
7906in3,
7907in4,
7908out0,
7909out1,
7910out2,
7911out3,
7912out4
7913);
7914input in0;
7915input in1;
7916input in2;
7917input in3;
7918input in4;
7919output out0;
7920output out1;
7921output out2;
7922output out3;
7923output out4;
7924
7925`ifdef LIB
7926assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
7927`endif
7928
7929endmodule
7930module cl_dp1_muxinv5_48x (
7931in0,
7932in1,
7933in2,
7934in3,
7935in4,
7936out0,
7937out1,
7938out2,
7939out3,
7940out4
7941);
7942input in0;
7943input in1;
7944input in2;
7945input in3;
7946input in4;
7947output out0;
7948output out1;
7949output out2;
7950output out3;
7951output out4;
7952
7953`ifdef LIB
7954assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
7955`endif
7956
7957endmodule
7958module cl_dp1_muxinv5_64x (
7959in0,
7960in1,
7961in2,
7962in3,
7963in4,
7964out0,
7965out1,
7966out2,
7967out3,
7968out4
7969);
7970input in0;
7971input in1;
7972input in2;
7973input in3;
7974input in4;
7975output out0;
7976output out1;
7977output out2;
7978output out3;
7979output out4;
7980
7981`ifdef LIB
7982assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
7983`endif
7984
7985endmodule
7986
7987module cl_dp1_muxinv5_8x (
7988in0,
7989in1,
7990in2,
7991in3,
7992in4,
7993out0,
7994out1,
7995out2,
7996out3,
7997out4
7998);
7999input in0;
8000input in1;
8001input in2;
8002input in3;
8003input in4;
8004output out0;
8005output out1;
8006output out2;
8007output out3;
8008output out4;
8009
8010`ifdef LIB
8011assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
8012`endif
8013
8014endmodule
8015module cl_dp1_muxinv6_16x (
8016in0,
8017in1,
8018in2,
8019in3,
8020in4,
8021in5,
8022out0,
8023out1,
8024out2,
8025out3,
8026out4,
8027out5
8028);
8029input in0;
8030input in1;
8031input in2;
8032input in3;
8033input in4;
8034input in5;
8035output out0;
8036output out1;
8037output out2;
8038output out3;
8039output out4;
8040output out5;
8041
8042`ifdef LIB
8043assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
8044`endif
8045
8046endmodule
8047module cl_dp1_muxinv6_32x (
8048in0,
8049in1,
8050in2,
8051in3,
8052in4,
8053in5,
8054out0,
8055out1,
8056out2,
8057out3,
8058out4,
8059out5
8060);
8061input in0;
8062input in1;
8063input in2;
8064input in3;
8065input in4;
8066input in5;
8067output out0;
8068output out1;
8069output out2;
8070output out3;
8071output out4;
8072output out5;
8073
8074`ifdef LIB
8075assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
8076`endif
8077
8078endmodule
8079module cl_dp1_muxinv6_48x (
8080in0,
8081in1,
8082in2,
8083in3,
8084in4,
8085in5,
8086out0,
8087out1,
8088out2,
8089out3,
8090out4,
8091out5
8092);
8093input in0;
8094input in1;
8095input in2;
8096input in3;
8097input in4;
8098input in5;
8099output out0;
8100output out1;
8101output out2;
8102output out3;
8103output out4;
8104output out5;
8105
8106`ifdef LIB
8107assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
8108`endif
8109
8110endmodule
8111module cl_dp1_muxinv6_64x (
8112in0,
8113in1,
8114in2,
8115in3,
8116in4,
8117in5,
8118out0,
8119out1,
8120out2,
8121out3,
8122out4,
8123out5
8124);
8125input in0;
8126input in1;
8127input in2;
8128input in3;
8129input in4;
8130input in5;
8131output out0;
8132output out1;
8133output out2;
8134output out3;
8135output out4;
8136output out5;
8137
8138`ifdef LIB
8139assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
8140`endif
8141
8142endmodule
8143
8144module cl_dp1_muxinv6_8x (
8145in0,
8146in1,
8147in2,
8148in3,
8149in4,
8150in5,
8151out0,
8152out1,
8153out2,
8154out3,
8155out4,
8156out5
8157);
8158input in0;
8159input in1;
8160input in2;
8161input in3;
8162input in4;
8163input in5;
8164output out0;
8165output out1;
8166output out2;
8167output out3;
8168output out4;
8169output out5;
8170
8171`ifdef LIB
8172assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
8173`endif
8174
8175endmodule
8176module cl_dp1_muxinv7_16x (
8177in0,
8178in1,
8179in2,
8180in3,
8181in4,
8182in5,
8183in6,
8184out0,
8185out1,
8186out2,
8187out3,
8188out4,
8189out5,
8190out6
8191);
8192input in0;
8193input in1;
8194input in2;
8195input in3;
8196input in4;
8197input in5;
8198input in6;
8199output out0;
8200output out1;
8201output out2;
8202output out3;
8203output out4;
8204output out5;
8205output out6;
8206
8207`ifdef LIB
8208assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
8209`endif
8210
8211endmodule
8212module cl_dp1_muxinv7_32x (
8213in0,
8214in1,
8215in2,
8216in3,
8217in4,
8218in5,
8219in6,
8220out0,
8221out1,
8222out2,
8223out3,
8224out4,
8225out5,
8226out6
8227);
8228input in0;
8229input in1;
8230input in2;
8231input in3;
8232input in4;
8233input in5;
8234input in6;
8235output out0;
8236output out1;
8237output out2;
8238output out3;
8239output out4;
8240output out5;
8241output out6;
8242
8243`ifdef LIB
8244assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
8245`endif
8246
8247endmodule
8248module cl_dp1_muxinv7_48x (
8249in0,
8250in1,
8251in2,
8252in3,
8253in4,
8254in5,
8255in6,
8256out0,
8257out1,
8258out2,
8259out3,
8260out4,
8261out5,
8262out6
8263);
8264input in0;
8265input in1;
8266input in2;
8267input in3;
8268input in4;
8269input in5;
8270input in6;
8271output out0;
8272output out1;
8273output out2;
8274output out3;
8275output out4;
8276output out5;
8277output out6;
8278
8279`ifdef LIB
8280assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
8281`endif
8282
8283endmodule
8284module cl_dp1_muxinv7_64x (
8285in0,
8286in1,
8287in2,
8288in3,
8289in4,
8290in5,
8291in6,
8292out0,
8293out1,
8294out2,
8295out3,
8296out4,
8297out5,
8298out6
8299);
8300input in0;
8301input in1;
8302input in2;
8303input in3;
8304input in4;
8305input in5;
8306input in6;
8307output out0;
8308output out1;
8309output out2;
8310output out3;
8311output out4;
8312output out5;
8313output out6;
8314
8315`ifdef LIB
8316assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
8317`endif
8318
8319endmodule
8320
8321module cl_dp1_muxinv7_8x (
8322in0,
8323in1,
8324in2,
8325in3,
8326in4,
8327in5,
8328in6,
8329out0,
8330out1,
8331out2,
8332out3,
8333out4,
8334out5,
8335out6
8336);
8337input in0;
8338input in1;
8339input in2;
8340input in3;
8341input in4;
8342input in5;
8343input in6;
8344output out0;
8345output out1;
8346output out2;
8347output out3;
8348output out4;
8349output out5;
8350output out6;
8351
8352`ifdef LIB
8353assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
8354`endif
8355
8356endmodule
8357module cl_dp1_muxinv8_16x (
8358in0,
8359in1,
8360in2,
8361in3,
8362in4,
8363in5,
8364in6,
8365in7,
8366out0,
8367out1,
8368out2,
8369out3,
8370out4,
8371out5,
8372out6,
8373out7
8374);
8375input in0;
8376input in1;
8377input in2;
8378input in3;
8379input in4;
8380input in5;
8381input in6;
8382input in7;
8383output out0;
8384output out1;
8385output out2;
8386output out3;
8387output out4;
8388output out5;
8389output out6;
8390output out7;
8391
8392`ifdef LIB
8393assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
8394`endif
8395
8396endmodule
8397module cl_dp1_muxinv8_32x (
8398in0,
8399in1,
8400in2,
8401in3,
8402in4,
8403in5,
8404in6,
8405in7,
8406out0,
8407out1,
8408out2,
8409out3,
8410out4,
8411out5,
8412out6,
8413out7
8414);
8415input in0;
8416input in1;
8417input in2;
8418input in3;
8419input in4;
8420input in5;
8421input in6;
8422input in7;
8423output out0;
8424output out1;
8425output out2;
8426output out3;
8427output out4;
8428output out5;
8429output out6;
8430output out7;
8431
8432`ifdef LIB
8433assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
8434`endif
8435
8436endmodule
8437module cl_dp1_muxinv8_48x (
8438in0,
8439in1,
8440in2,
8441in3,
8442in4,
8443in5,
8444in6,
8445in7,
8446out0,
8447out1,
8448out2,
8449out3,
8450out4,
8451out5,
8452out6,
8453out7
8454);
8455input in0;
8456input in1;
8457input in2;
8458input in3;
8459input in4;
8460input in5;
8461input in6;
8462input in7;
8463output out0;
8464output out1;
8465output out2;
8466output out3;
8467output out4;
8468output out5;
8469output out6;
8470output out7;
8471
8472`ifdef LIB
8473assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
8474`endif
8475
8476endmodule
8477module cl_dp1_muxinv8_64x (
8478in0,
8479in1,
8480in2,
8481in3,
8482in4,
8483in5,
8484in6,
8485in7,
8486out0,
8487out1,
8488out2,
8489out3,
8490out4,
8491out5,
8492out6,
8493out7
8494);
8495input in0;
8496input in1;
8497input in2;
8498input in3;
8499input in4;
8500input in5;
8501input in6;
8502input in7;
8503output out0;
8504output out1;
8505output out2;
8506output out3;
8507output out4;
8508output out5;
8509output out6;
8510output out7;
8511
8512`ifdef LIB
8513assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
8514`endif
8515
8516endmodule
8517
8518module cl_dp1_muxinv8_8x (
8519in0,
8520in1,
8521in2,
8522in3,
8523in4,
8524in5,
8525in6,
8526in7,
8527out0,
8528out1,
8529out2,
8530out3,
8531out4,
8532out5,
8533out6,
8534out7
8535);
8536input in0;
8537input in1;
8538input in2;
8539input in3;
8540input in4;
8541input in5;
8542input in6;
8543input in7;
8544output out0;
8545output out1;
8546output out2;
8547output out3;
8548output out4;
8549output out5;
8550output out6;
8551output out7;
8552
8553`ifdef LIB
8554assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
8555`endif
8556
8557endmodule
8558module cl_dp1_pdec4_16x (
8559sel0,
8560sel1,
8561test,
8562psel0,
8563psel1,
8564psel2,
8565psel3
8566);
8567input sel0;
8568input sel1;
8569input test;
8570output psel0;
8571output psel1;
8572output psel2;
8573output psel3;
8574
8575`ifdef LIB
8576 assign psel0 = ~sel1 & ~sel0;
8577 assign psel1 = ~sel1 & sel0;
8578 assign psel2 = sel1 & ~sel0;
8579 assign psel3 = sel1 & sel0 & test;
8580`endif
8581endmodule
8582module cl_dp1_pdec4_32x (
8583sel0,
8584sel1,
8585test,
8586psel0,
8587psel1,
8588psel2,
8589psel3
8590);
8591input sel0;
8592input sel1;
8593input test;
8594output psel0;
8595output psel1;
8596output psel2;
8597output psel3;
8598
8599`ifdef LIB
8600 assign psel0 = ~sel1 & ~sel0;
8601 assign psel1 = ~sel1 & sel0;
8602 assign psel2 = sel1 & ~sel0;
8603 assign psel3 = sel1 & sel0 & test;
8604`endif
8605endmodule
8606module cl_dp1_pdec4_48x (
8607sel0,
8608sel1,
8609test,
8610psel0,
8611psel1,
8612psel2,
8613psel3
8614);
8615input sel0;
8616input sel1;
8617input test;
8618output psel0;
8619output psel1;
8620output psel2;
8621output psel3;
8622
8623`ifdef LIB
8624 assign psel0 = ~sel1 & ~sel0;
8625 assign psel1 = ~sel1 & sel0;
8626 assign psel2 = sel1 & ~sel0;
8627 assign psel3 = sel1 & sel0 & test;
8628`endif
8629endmodule
8630module cl_dp1_pdec4_64x (
8631sel0,
8632sel1,
8633test,
8634psel0,
8635psel1,
8636psel2,
8637psel3
8638);
8639input sel0;
8640input sel1;
8641input test;
8642output psel0;
8643output psel1;
8644output psel2;
8645output psel3;
8646
8647`ifdef LIB
8648 assign psel0 = ~sel1 & ~sel0;
8649 assign psel1 = ~sel1 & sel0;
8650 assign psel2 = sel1 & ~sel0;
8651 assign psel3 = sel1 & sel0 & test;
8652`endif
8653endmodule
8654module cl_dp1_pdec4_8x (
8655sel0,
8656sel1,
8657test,
8658psel0,
8659psel1,
8660psel2,
8661psel3
8662);
8663input sel0;
8664input sel1;
8665input test;
8666output psel0;
8667output psel1;
8668output psel2;
8669output psel3;
8670
8671`ifdef LIB
8672 assign psel0 = ~sel1 & ~sel0;
8673 assign psel1 = ~sel1 & sel0;
8674 assign psel2 = sel1 & ~sel0;
8675 assign psel3 = sel1 & sel0 & test;
8676`endif
8677endmodule
8678module cl_dp1_pdec8_16x (
8679sel0,
8680sel1,
8681sel2,
8682test,
8683psel0,
8684psel1,
8685psel2,
8686psel3,
8687psel4,
8688psel5,
8689psel6,
8690psel7
8691);
8692input sel0;
8693input sel1;
8694input sel2;
8695input test;
8696output psel0;
8697output psel1;
8698output psel2;
8699output psel3;
8700output psel4;
8701output psel5;
8702output psel6;
8703output psel7;
8704
8705`ifdef LIB
8706assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
8707assign psel1 = ~sel2 & ~sel1 & sel0;
8708assign psel2 = ~sel2 & sel1 & ~sel0;
8709assign psel3 = ~sel2 & sel1 & sel0;
8710assign psel4 = sel2 & ~sel1 & ~sel0;
8711assign psel5 = sel2 & ~sel1 & sel0;
8712assign psel6 = sel2 & sel1 & ~sel0;
8713assign psel7 = sel2 & sel1 & sel0;
8714`endif
8715
8716endmodule
8717module cl_dp1_pdec8_32x (
8718sel0,
8719sel1,
8720sel2,
8721test,
8722psel0,
8723psel1,
8724psel2,
8725psel3,
8726psel4,
8727psel5,
8728psel6,
8729psel7
8730);
8731input sel0;
8732input sel1;
8733input sel2;
8734input test;
8735output psel0;
8736output psel1;
8737output psel2;
8738output psel3;
8739output psel4;
8740output psel5;
8741output psel6;
8742output psel7;
8743
8744`ifdef LIB
8745assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
8746assign psel1 = ~sel2 & ~sel1 & sel0;
8747assign psel2 = ~sel2 & sel1 & ~sel0;
8748assign psel3 = ~sel2 & sel1 & sel0;
8749assign psel4 = sel2 & ~sel1 & ~sel0;
8750assign psel5 = sel2 & ~sel1 & sel0;
8751assign psel6 = sel2 & sel1 & ~sel0;
8752assign psel7 = sel2 & sel1 & sel0;
8753`endif
8754
8755endmodule
8756module cl_dp1_pdec8_48x (
8757sel0,
8758sel1,
8759sel2,
8760test,
8761psel0,
8762psel1,
8763psel2,
8764psel3,
8765psel4,
8766psel5,
8767psel6,
8768psel7
8769);
8770input sel0;
8771input sel1;
8772input sel2;
8773input test;
8774output psel0;
8775output psel1;
8776output psel2;
8777output psel3;
8778output psel4;
8779output psel5;
8780output psel6;
8781output psel7;
8782
8783`ifdef LIB
8784assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
8785assign psel1 = ~sel2 & ~sel1 & sel0;
8786assign psel2 = ~sel2 & sel1 & ~sel0;
8787assign psel3 = ~sel2 & sel1 & sel0;
8788assign psel4 = sel2 & ~sel1 & ~sel0;
8789assign psel5 = sel2 & ~sel1 & sel0;
8790assign psel6 = sel2 & sel1 & ~sel0;
8791assign psel7 = sel2 & sel1 & sel0;
8792`endif
8793
8794endmodule
8795module cl_dp1_pdec8_64x (
8796sel0,
8797sel1,
8798sel2,
8799test,
8800psel0,
8801psel1,
8802psel2,
8803psel3,
8804psel4,
8805psel5,
8806psel6,
8807psel7
8808);
8809input sel0;
8810input sel1;
8811input sel2;
8812input test;
8813output psel0;
8814output psel1;
8815output psel2;
8816output psel3;
8817output psel4;
8818output psel5;
8819output psel6;
8820output psel7;
8821
8822`ifdef LIB
8823assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
8824assign psel1 = ~sel2 & ~sel1 & sel0;
8825assign psel2 = ~sel2 & sel1 & ~sel0;
8826assign psel3 = ~sel2 & sel1 & sel0;
8827assign psel4 = sel2 & ~sel1 & ~sel0;
8828assign psel5 = sel2 & ~sel1 & sel0;
8829assign psel6 = sel2 & sel1 & ~sel0;
8830assign psel7 = sel2 & sel1 & sel0;
8831`endif
8832
8833endmodule
8834module cl_dp1_pdec8_8x (
8835sel0,
8836sel1,
8837sel2,
8838test,
8839psel0,
8840psel1,
8841psel2,
8842psel3,
8843psel4,
8844psel5,
8845psel6,
8846psel7
8847);
8848input sel0;
8849input sel1;
8850input sel2;
8851input test;
8852output psel0;
8853output psel1;
8854output psel2;
8855output psel3;
8856output psel4;
8857output psel5;
8858output psel6;
8859output psel7;
8860
8861`ifdef LIB
8862assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
8863assign psel1 = ~sel2 & ~sel1 & sel0;
8864assign psel2 = ~sel2 & sel1 & ~sel0;
8865assign psel3 = ~sel2 & sel1 & sel0;
8866assign psel4 = sel2 & ~sel1 & ~sel0;
8867assign psel5 = sel2 & ~sel1 & sel0;
8868assign psel6 = sel2 & sel1 & ~sel0;
8869assign psel7 = sel2 & sel1 & sel0;
8870`endif
8871
8872endmodule
8873module cl_dp1_penc2_16x (
8874sel0,
8875psel0,
8876psel1
8877);
8878input sel0;
8879output psel0;
8880output psel1;
8881
8882`ifdef LIB
8883assign psel0 = sel0;
8884assign psel1 = ~sel0;
8885`endif
8886
8887endmodule
8888module cl_dp1_penc2_32x (
8889sel0,
8890psel0,
8891psel1
8892);
8893input sel0;
8894output psel0;
8895output psel1;
8896
8897`ifdef LIB
8898assign psel0 = sel0;
8899assign psel1 = ~sel0;
8900`endif
8901
8902endmodule
8903module cl_dp1_penc2_48x (
8904sel0,
8905psel0,
8906psel1
8907);
8908input sel0;
8909output psel0;
8910output psel1;
8911
8912`ifdef LIB
8913assign psel0 = sel0;
8914assign psel1 = ~sel0;
8915`endif
8916
8917endmodule
8918module cl_dp1_penc2_64x (
8919sel0,
8920psel0,
8921psel1
8922);
8923input sel0;
8924output psel0;
8925output psel1;
8926
8927`ifdef LIB
8928assign psel0 = sel0;
8929assign psel1 = ~sel0;
8930`endif
8931
8932endmodule
8933module cl_dp1_penc2_8x (
8934sel0,
8935psel0,
8936psel1
8937);
8938input sel0;
8939output psel0;
8940output psel1;
8941
8942`ifdef LIB
8943assign psel0 = sel0;
8944assign psel1 = ~sel0;
8945`endif
8946
8947endmodule
8948module cl_dp1_penc3_16x (
8949sel0,
8950sel1,
8951test,
8952psel0,
8953psel1,
8954psel2
8955);
8956input sel0;
8957input sel1;
8958input test;
8959output psel0;
8960output psel1;
8961output psel2;
8962
8963`ifdef LIB
8964assign psel0 = sel0;
8965assign psel1 = ~sel0 & sel1;
8966assign psel2 = ~sel0 & ~sel1 & test;
8967`endif
8968
8969endmodule
8970module cl_dp1_penc3_32x (
8971sel0,
8972sel1,
8973test,
8974psel0,
8975psel1,
8976psel2
8977);
8978input sel0;
8979input sel1;
8980input test;
8981output psel0;
8982output psel1;
8983output psel2;
8984
8985`ifdef LIB
8986assign psel0 = sel0;
8987assign psel1 = ~sel0 & sel1;
8988assign psel2 = ~sel0 & ~sel1 & test;
8989`endif
8990
8991endmodule
8992module cl_dp1_penc3_48x (
8993sel0,
8994sel1,
8995test,
8996psel0,
8997psel1,
8998psel2
8999);
9000input sel0;
9001input sel1;
9002input test;
9003output psel0;
9004output psel1;
9005output psel2;
9006
9007`ifdef LIB
9008assign psel0 = sel0;
9009assign psel1 = ~sel0 & sel1;
9010assign psel2 = ~sel0 & ~sel1 & test;
9011`endif
9012
9013endmodule
9014module cl_dp1_penc3_64x (
9015sel0,
9016sel1,
9017test,
9018psel0,
9019psel1,
9020psel2
9021);
9022input sel0;
9023input sel1;
9024input test;
9025output psel0;
9026output psel1;
9027output psel2;
9028
9029`ifdef LIB
9030assign psel0 = sel0;
9031assign psel1 = ~sel0 & sel1;
9032assign psel2 = ~sel0 & ~sel1 & test;
9033`endif
9034
9035endmodule
9036module cl_dp1_penc3_8x (
9037sel0,
9038sel1,
9039test,
9040psel0,
9041psel1,
9042psel2
9043);
9044input sel0;
9045input sel1;
9046input test;
9047output psel0;
9048output psel1;
9049output psel2;
9050
9051`ifdef LIB
9052assign psel0 = sel0;
9053assign psel1 = ~sel0 & sel1;
9054assign psel2 = ~sel0 & ~sel1 & test;
9055`endif
9056
9057endmodule
9058module cl_dp1_penc4_16x (
9059sel0,
9060sel1,
9061sel2,
9062test,
9063psel0,
9064psel1,
9065psel2,
9066psel3
9067);
9068input sel0;
9069input sel1;
9070input sel2;
9071input test;
9072output psel0;
9073output psel1;
9074output psel2;
9075output psel3;
9076
9077`ifdef LIB
9078assign psel0 = sel0;
9079assign psel1 = ~sel0 & sel1 & test;
9080assign psel2 = ~sel0 & ~sel1 & sel2;
9081assign psel3 = ~sel0 & ~sel1 & ~sel2;
9082`endif
9083
9084endmodule
9085module cl_dp1_penc4_32x (
9086sel0,
9087sel1,
9088sel2,
9089test,
9090psel0,
9091psel1,
9092psel2,
9093psel3
9094);
9095input sel0;
9096input sel1;
9097input sel2;
9098input test;
9099output psel0;
9100output psel1;
9101output psel2;
9102output psel3;
9103
9104`ifdef LIB
9105assign psel0 = sel0;
9106assign psel1 = ~sel0 & sel1 & test;
9107assign psel2 = ~sel0 & ~sel1 & sel2;
9108assign psel3 = ~sel0 & ~sel1 & ~sel2;
9109`endif
9110
9111endmodule
9112module cl_dp1_penc4_48x (
9113sel0,
9114sel1,
9115sel2,
9116test,
9117psel0,
9118psel1,
9119psel2,
9120psel3
9121);
9122input sel0;
9123input sel1;
9124input sel2;
9125input test;
9126output psel0;
9127output psel1;
9128output psel2;
9129output psel3;
9130
9131`ifdef LIB
9132assign psel0 = sel0;
9133assign psel1 = ~sel0 & sel1 & test;
9134assign psel2 = ~sel0 & ~sel1 & sel2;
9135assign psel3 = ~sel0 & ~sel1 & ~sel2;
9136`endif
9137
9138endmodule
9139module cl_dp1_penc4_64x (
9140sel0,
9141sel1,
9142sel2,
9143test,
9144psel0,
9145psel1,
9146psel2,
9147psel3
9148);
9149input sel0;
9150input sel1;
9151input sel2;
9152input test;
9153output psel0;
9154output psel1;
9155output psel2;
9156output psel3;
9157
9158`ifdef LIB
9159assign psel0 = sel0;
9160assign psel1 = ~sel0 & sel1 & test;
9161assign psel2 = ~sel0 & ~sel1 & sel2;
9162assign psel3 = ~sel0 & ~sel1 & ~sel2;
9163`endif
9164
9165endmodule
9166module cl_dp1_penc4_8x (
9167sel0,
9168sel1,
9169sel2,
9170test,
9171psel0,
9172psel1,
9173psel2,
9174psel3
9175);
9176input sel0;
9177input sel1;
9178input sel2;
9179input test;
9180output psel0;
9181output psel1;
9182output psel2;
9183output psel3;
9184
9185`ifdef LIB
9186assign psel0 = sel0;
9187assign psel1 = ~sel0 & sel1 & test;
9188assign psel2 = ~sel0 & ~sel1 & sel2;
9189assign psel3 = ~sel0 & ~sel1 & ~sel2;
9190`endif
9191
9192endmodule
9193module cl_dp1_penc5_16x (
9194sel0,
9195sel1,
9196sel2,
9197sel3,
9198test,
9199psel0,
9200psel1,
9201psel2,
9202psel3,
9203psel4
9204);
9205input sel0;
9206input sel1;
9207input sel2;
9208input sel3;
9209input test;
9210output psel0;
9211output psel1;
9212output psel2;
9213output psel3;
9214output psel4;
9215
9216`ifdef LIB
9217assign psel0 = sel0 & test;
9218assign psel1 = ~sel0 & sel1;
9219assign psel2 = ~sel0 & ~sel1 & sel2;
9220assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9221assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
9222`endif
9223
9224endmodule
9225module cl_dp1_penc5_32x (
9226sel0,
9227sel1,
9228sel2,
9229sel3,
9230test,
9231psel0,
9232psel1,
9233psel2,
9234psel3,
9235psel4
9236);
9237input sel0;
9238input sel1;
9239input sel2;
9240input sel3;
9241input test;
9242output psel0;
9243output psel1;
9244output psel2;
9245output psel3;
9246output psel4;
9247
9248`ifdef LIB
9249assign psel0 = sel0 & test;
9250assign psel1 = ~sel0 & sel1;
9251assign psel2 = ~sel0 & ~sel1 & sel2;
9252assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9253assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
9254`endif
9255
9256endmodule
9257module cl_dp1_penc5_48x (
9258sel0,
9259sel1,
9260sel2,
9261sel3,
9262test,
9263psel0,
9264psel1,
9265psel2,
9266psel3,
9267psel4
9268);
9269input sel0;
9270input sel1;
9271input sel2;
9272input sel3;
9273input test;
9274output psel0;
9275output psel1;
9276output psel2;
9277output psel3;
9278output psel4;
9279
9280`ifdef LIB
9281assign psel0 = sel0 & test;
9282assign psel1 = ~sel0 & sel1;
9283assign psel2 = ~sel0 & ~sel1 & sel2;
9284assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9285assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
9286`endif
9287
9288endmodule
9289module cl_dp1_penc5_64x (
9290sel0,
9291sel1,
9292sel2,
9293sel3,
9294test,
9295psel0,
9296psel1,
9297psel2,
9298psel3,
9299psel4
9300);
9301input sel0;
9302input sel1;
9303input sel2;
9304input sel3;
9305input test;
9306output psel0;
9307output psel1;
9308output psel2;
9309output psel3;
9310output psel4;
9311
9312`ifdef LIB
9313assign psel0 = sel0 & test;
9314assign psel1 = ~sel0 & sel1;
9315assign psel2 = ~sel0 & ~sel1 & sel2;
9316assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9317assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
9318`endif
9319
9320endmodule
9321module cl_dp1_penc5_8x (
9322sel0,
9323sel1,
9324sel2,
9325sel3,
9326test,
9327psel0,
9328psel1,
9329psel2,
9330psel3,
9331psel4
9332);
9333input sel0;
9334input sel1;
9335input sel2;
9336input sel3;
9337input test;
9338output psel0;
9339output psel1;
9340output psel2;
9341output psel3;
9342output psel4;
9343
9344`ifdef LIB
9345assign psel0 = sel0 & test;
9346assign psel1 = ~sel0 & sel1;
9347assign psel2 = ~sel0 & ~sel1 & sel2;
9348assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9349assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
9350`endif
9351
9352endmodule
9353module cl_dp1_penc6_16x (
9354sel0,
9355sel1,
9356sel2,
9357sel3,
9358sel4,
9359test,
9360psel0,
9361psel1,
9362psel2,
9363psel3,
9364psel4,
9365psel5
9366);
9367input sel0;
9368input sel1;
9369input sel2;
9370input sel3;
9371input sel4;
9372input test;
9373output psel0;
9374output psel1;
9375output psel2;
9376output psel3;
9377output psel4;
9378output psel5;
9379
9380`ifdef LIB
9381assign psel0 = sel0;
9382assign psel1 = ~sel0 & sel1;
9383assign psel2 = ~sel0 & ~sel1 & sel2 & test;
9384assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9385assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9386assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
9387`endif
9388
9389endmodule
9390module cl_dp1_penc6_32x (
9391sel0,
9392sel1,
9393sel2,
9394sel3,
9395sel4,
9396test,
9397psel0,
9398psel1,
9399psel2,
9400psel3,
9401psel4,
9402psel5
9403);
9404input sel0;
9405input sel1;
9406input sel2;
9407input sel3;
9408input sel4;
9409input test;
9410output psel0;
9411output psel1;
9412output psel2;
9413output psel3;
9414output psel4;
9415output psel5;
9416
9417`ifdef LIB
9418assign psel0 = sel0;
9419assign psel1 = ~sel0 & sel1;
9420assign psel2 = ~sel0 & ~sel1 & sel2 & test;
9421assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9422assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9423assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
9424`endif
9425
9426endmodule
9427module cl_dp1_penc6_48x (
9428sel0,
9429sel1,
9430sel2,
9431sel3,
9432sel4,
9433test,
9434psel0,
9435psel1,
9436psel2,
9437psel3,
9438psel4,
9439psel5
9440);
9441input sel0;
9442input sel1;
9443input sel2;
9444input sel3;
9445input sel4;
9446input test;
9447output psel0;
9448output psel1;
9449output psel2;
9450output psel3;
9451output psel4;
9452output psel5;
9453
9454`ifdef LIB
9455assign psel0 = sel0;
9456assign psel1 = ~sel0 & sel1;
9457assign psel2 = ~sel0 & ~sel1 & sel2 & test;
9458assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9459assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9460assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
9461`endif
9462
9463endmodule
9464module cl_dp1_penc6_64x (
9465sel0,
9466sel1,
9467sel2,
9468sel3,
9469sel4,
9470test,
9471psel0,
9472psel1,
9473psel2,
9474psel3,
9475psel4,
9476psel5
9477);
9478input sel0;
9479input sel1;
9480input sel2;
9481input sel3;
9482input sel4;
9483input test;
9484output psel0;
9485output psel1;
9486output psel2;
9487output psel3;
9488output psel4;
9489output psel5;
9490
9491`ifdef LIB
9492assign psel0 = sel0;
9493assign psel1 = ~sel0 & sel1;
9494assign psel2 = ~sel0 & ~sel1 & sel2 & test;
9495assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9496assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9497assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
9498`endif
9499
9500endmodule
9501module cl_dp1_penc6_8x (
9502sel0,
9503sel1,
9504sel2,
9505sel3,
9506sel4,
9507test,
9508psel0,
9509psel1,
9510psel2,
9511psel3,
9512psel4,
9513psel5
9514);
9515input sel0;
9516input sel1;
9517input sel2;
9518input sel3;
9519input sel4;
9520input test;
9521output psel0;
9522output psel1;
9523output psel2;
9524output psel3;
9525output psel4;
9526output psel5;
9527
9528`ifdef LIB
9529assign psel0 = sel0;
9530assign psel1 = ~sel0 & sel1;
9531assign psel2 = ~sel0 & ~sel1 & sel2 & test;
9532assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9533assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9534assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
9535`endif
9536
9537endmodule
9538module cl_dp1_penc7_16x (
9539sel0,
9540sel1,
9541sel2,
9542sel3,
9543sel4,
9544sel5,
9545test,
9546psel0,
9547psel1,
9548psel2,
9549psel3,
9550psel4,
9551psel5,
9552psel6
9553);
9554input sel0;
9555input sel1;
9556input sel2;
9557input sel3;
9558input sel4;
9559input sel5;
9560input test;
9561output psel0;
9562output psel1;
9563output psel2;
9564output psel3;
9565output psel4;
9566output psel5;
9567output psel6;
9568
9569`ifdef LIB
9570assign psel0 = sel0;
9571assign psel1 = ~sel0 & sel1 & test;
9572assign psel2 = ~sel0 & ~sel1 & sel2;
9573assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9574assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9575assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9576assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
9577`endif
9578
9579endmodule
9580module cl_dp1_penc7_32x (
9581sel0,
9582sel1,
9583sel2,
9584sel3,
9585sel4,
9586sel5,
9587test,
9588psel0,
9589psel1,
9590psel2,
9591psel3,
9592psel4,
9593psel5,
9594psel6
9595);
9596input sel0;
9597input sel1;
9598input sel2;
9599input sel3;
9600input sel4;
9601input sel5;
9602input test;
9603output psel0;
9604output psel1;
9605output psel2;
9606output psel3;
9607output psel4;
9608output psel5;
9609output psel6;
9610
9611`ifdef LIB
9612assign psel0 = sel0;
9613assign psel1 = ~sel0 & sel1 & test;
9614assign psel2 = ~sel0 & ~sel1 & sel2;
9615assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9616assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9617assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9618assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
9619`endif
9620
9621endmodule
9622module cl_dp1_penc7_48x (
9623sel0,
9624sel1,
9625sel2,
9626sel3,
9627sel4,
9628sel5,
9629test,
9630psel0,
9631psel1,
9632psel2,
9633psel3,
9634psel4,
9635psel5,
9636psel6
9637);
9638input sel0;
9639input sel1;
9640input sel2;
9641input sel3;
9642input sel4;
9643input sel5;
9644input test;
9645output psel0;
9646output psel1;
9647output psel2;
9648output psel3;
9649output psel4;
9650output psel5;
9651output psel6;
9652
9653`ifdef LIB
9654assign psel0 = sel0;
9655assign psel1 = ~sel0 & sel1 & test;
9656assign psel2 = ~sel0 & ~sel1 & sel2;
9657assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9658assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9659assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9660assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
9661`endif
9662
9663endmodule
9664module cl_dp1_penc7_64x (
9665sel0,
9666sel1,
9667sel2,
9668sel3,
9669sel4,
9670sel5,
9671test,
9672psel0,
9673psel1,
9674psel2,
9675psel3,
9676psel4,
9677psel5,
9678psel6
9679);
9680input sel0;
9681input sel1;
9682input sel2;
9683input sel3;
9684input sel4;
9685input sel5;
9686input test;
9687output psel0;
9688output psel1;
9689output psel2;
9690output psel3;
9691output psel4;
9692output psel5;
9693output psel6;
9694
9695`ifdef LIB
9696assign psel0 = sel0;
9697assign psel1 = ~sel0 & sel1 & test;
9698assign psel2 = ~sel0 & ~sel1 & sel2;
9699assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9700assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9701assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9702assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
9703`endif
9704
9705endmodule
9706module cl_dp1_penc7_8x (
9707sel0,
9708sel1,
9709sel2,
9710sel3,
9711sel4,
9712sel5,
9713test,
9714psel0,
9715psel1,
9716psel2,
9717psel3,
9718psel4,
9719psel5,
9720psel6
9721);
9722input sel0;
9723input sel1;
9724input sel2;
9725input sel3;
9726input sel4;
9727input sel5;
9728input test;
9729output psel0;
9730output psel1;
9731output psel2;
9732output psel3;
9733output psel4;
9734output psel5;
9735output psel6;
9736
9737`ifdef LIB
9738assign psel0 = sel0;
9739assign psel1 = ~sel0 & sel1 & test;
9740assign psel2 = ~sel0 & ~sel1 & sel2;
9741assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9742assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9743assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9744assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
9745`endif
9746
9747endmodule
9748module cl_dp1_penc8_16x (
9749sel0,
9750sel1,
9751sel2,
9752sel3,
9753sel4,
9754sel5,
9755sel6,
9756test,
9757psel0,
9758psel1,
9759psel2,
9760psel3,
9761psel4,
9762psel5,
9763psel6,
9764psel7
9765);
9766input sel0;
9767input sel1;
9768input sel2;
9769input sel3;
9770input sel4;
9771input sel5;
9772input sel6;
9773input test;
9774output psel0;
9775output psel1;
9776output psel2;
9777output psel3;
9778output psel4;
9779output psel5;
9780output psel6;
9781output psel7;
9782
9783`ifdef LIB
9784assign psel0 = sel0;
9785assign psel1 = ~sel0 & sel1 & test;
9786assign psel2 = ~sel0 & ~sel1 & sel2;
9787assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9788assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9789assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9790assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
9791assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
9792`endif
9793
9794endmodule
9795module cl_dp1_penc8_32x (
9796sel0,
9797sel1,
9798sel2,
9799sel3,
9800sel4,
9801sel5,
9802sel6,
9803test,
9804psel0,
9805psel1,
9806psel2,
9807psel3,
9808psel4,
9809psel5,
9810psel6,
9811psel7
9812);
9813input sel0;
9814input sel1;
9815input sel2;
9816input sel3;
9817input sel4;
9818input sel5;
9819input sel6;
9820input test;
9821output psel0;
9822output psel1;
9823output psel2;
9824output psel3;
9825output psel4;
9826output psel5;
9827output psel6;
9828output psel7;
9829
9830`ifdef LIB
9831assign psel0 = sel0;
9832assign psel1 = ~sel0 & sel1 & test;
9833assign psel2 = ~sel0 & ~sel1 & sel2;
9834assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9835assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9836assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9837assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
9838assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
9839`endif
9840
9841endmodule
9842module cl_dp1_penc8_48x (
9843sel0,
9844sel1,
9845sel2,
9846sel3,
9847sel4,
9848sel5,
9849sel6,
9850test,
9851psel0,
9852psel1,
9853psel2,
9854psel3,
9855psel4,
9856psel5,
9857psel6,
9858psel7
9859);
9860input sel0;
9861input sel1;
9862input sel2;
9863input sel3;
9864input sel4;
9865input sel5;
9866input sel6;
9867input test;
9868output psel0;
9869output psel1;
9870output psel2;
9871output psel3;
9872output psel4;
9873output psel5;
9874output psel6;
9875output psel7;
9876
9877`ifdef LIB
9878assign psel0 = sel0;
9879assign psel1 = ~sel0 & sel1 & test;
9880assign psel2 = ~sel0 & ~sel1 & sel2;
9881assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9882assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9883assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9884assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
9885assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
9886`endif
9887
9888endmodule
9889module cl_dp1_penc8_64x (
9890sel0,
9891sel1,
9892sel2,
9893sel3,
9894sel4,
9895sel5,
9896sel6,
9897test,
9898psel0,
9899psel1,
9900psel2,
9901psel3,
9902psel4,
9903psel5,
9904psel6,
9905psel7
9906);
9907input sel0;
9908input sel1;
9909input sel2;
9910input sel3;
9911input sel4;
9912input sel5;
9913input sel6;
9914input test;
9915output psel0;
9916output psel1;
9917output psel2;
9918output psel3;
9919output psel4;
9920output psel5;
9921output psel6;
9922output psel7;
9923
9924`ifdef LIB
9925assign psel0 = sel0;
9926assign psel1 = ~sel0 & sel1 & test;
9927assign psel2 = ~sel0 & ~sel1 & sel2;
9928assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9929assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9930assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9931assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
9932assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
9933`endif
9934
9935endmodule
9936module cl_dp1_penc8_8x (
9937sel0,
9938sel1,
9939sel2,
9940sel3,
9941sel4,
9942sel5,
9943sel6,
9944test,
9945psel0,
9946psel1,
9947psel2,
9948psel3,
9949psel4,
9950psel5,
9951psel6,
9952psel7
9953);
9954input sel0;
9955input sel1;
9956input sel2;
9957input sel3;
9958input sel4;
9959input sel5;
9960input sel6;
9961input test;
9962output psel0;
9963output psel1;
9964output psel2;
9965output psel3;
9966output psel4;
9967output psel5;
9968output psel6;
9969output psel7;
9970
9971`ifdef LIB
9972assign psel0 = sel0;
9973assign psel1 = ~sel0 & sel1 & test;
9974assign psel2 = ~sel0 & ~sel1 & sel2;
9975assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
9976assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
9977assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
9978assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
9979assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
9980`endif
9981
9982endmodule
9983module cl_dp1_prty16_8x (
9984in,
9985out
9986);
9987input [15:0] in;
9988output out;
9989
9990
9991`ifdef LIB
9992assign out = ^in[15:0];
9993`endif
9994
9995endmodule
9996module cl_dp1_prty32_8x (
9997in,
9998out
9999);
10000input [31:0] in;
10001output out;
10002
10003`ifdef LIB
10004assign out = ^in[31:0];
10005`endif
10006
10007endmodule
10008module cl_dp1_prty4_8x (
10009in,
10010out
10011);
10012input [3:0] in;
10013output out;
10014
10015`ifdef LIB
10016assign out = ^in[3:0];
10017`endif
10018
10019endmodule
10020module cl_dp1_prty8_8x (
10021in,
10022out
10023);
10024input [7:0] in;
10025output out;
10026
10027`ifdef LIB
10028assign out = ^in[7:0];
10029`endif
10030
10031endmodule
10032
10033module cl_dp1_zero12_12x (
10034in,
10035out
10036);
10037
10038input [11:0] in;
10039output out;
10040
10041`ifdef LIB
10042
10043assign out = ( in[11:0] == 12'b0);
10044
10045`endif
10046
10047
10048endmodule
10049module cl_dp1_zero16_12x (
10050in,
10051out
10052);
10053
10054input [15:0] in;
10055output out;
10056
10057`ifdef LIB
10058
10059assign out = ( in[15:0] == 16'b0);
10060
10061`endif
10062
10063
10064endmodule
10065
10066module cl_dp1_zero32_12x (
10067in,
10068out
10069);
10070
10071input [31:0] in;
10072output out;
10073
10074`ifdef LIB
10075
10076assign out = ( in[31:0] == 32'b0);
10077
10078`endif
10079
10080
10081endmodule
10082
10083module cl_dp1_zero4_12x (
10084in,
10085out
10086);
10087
10088input [3:0] in;
10089output out;
10090
10091`ifdef LIB
10092
10093assign out = ( in[3:0] == 4'b0);
10094
10095`endif
10096
10097
10098endmodule
10099module cl_dp1_zero64_12x (
10100in,
10101out
10102);
10103
10104input [63:0] in;
10105output out;
10106
10107`ifdef LIB
10108
10109assign out = ( in[63:0] == 64'b0);
10110
10111`endif
10112
10113
10114endmodule
10115
10116module cl_dp1_zero8_12x (
10117in,
10118out
10119);
10120
10121input [7:0] in;
10122output out;
10123
10124`ifdef LIB
10125
10126assign out = ( in[7:0] == 8'b0);
10127
10128`endif
10129
10130
10131endmodule
10132
10133
10134module cl_dp1_zdt64_8x(
10135din0,
10136din1,
10137cin,
10138zdt_z64_,
10139zdt_z32_
10140);
10141
10142 input [63:0] din0;
10143 input [63:0] din1;
10144 input cin;
10145
10146 output zdt_z64_;
10147 output zdt_z32_;
10148
10149 wire [63:0] p;
10150 wire [62:0] k;
10151 wire [63:0] z;
10152 wire zero_detect32;
10153 wire zero_detect64;
10154
10155`ifdef LIB
10156
10157
10158
10159assign p[63:0] = din0[63:0] ^ din1[63:0];
10160assign k[62:0] = ~din0[62:0] & ~din1[62:0];
10161
10162assign z[63:1] = p[63:1] ^ k[62:0];
10163assign z[0] = p[0] ^ ~cin;
10164
10165assign zero_detect32 = & z[31:0];
10166assign zero_detect64 = & z[63:0];
10167
10168assign zdt_z32_ = ~zero_detect32;
10169assign zdt_z64_ = ~zero_detect64;
10170
10171`endif
10172
10173
10174endmodule
10175module cl_dp1_ccxhdr (
10176l2clk,
10177pce0,
10178pce1,
10179pce_ov,
10180stop,
10181siclk_in,
10182soclk_in,
10183siclk_out,
10184soclk_out,
10185l1clk0,
10186l1clk1,
10187se,
10188si,
10189so,
10190l1clk,
10191grant_a,
10192grant_x,
10193qsel0,
10194qsel0_buf,
10195shift,
10196shift_buf
10197);
10198
10199input l2clk;
10200input pce0;
10201input pce1;
10202input pce_ov;
10203input stop;
10204input siclk_in;
10205input soclk_in;
10206
10207output siclk_out;
10208output soclk_out;
10209output l1clk0;
10210output l1clk1;
10211
10212input l1clk;
10213input se;
10214input si;
10215input grant_a;
10216input qsel0;
10217input shift;
10218output so;
10219
10220output grant_x;
10221output qsel0_buf;
10222output shift_buf;
10223
10224wire siclk_out_unused;
10225wire soclk_out_unused;
10226
10227cl_dp1_ccx_l1hdr_16x hdr0 (
10228.l2clk(l2clk),
10229.se(se),
10230.pce(pce0),
10231.aclk(siclk_in),
10232.bclk(soclk_in),
10233.siclk_out(siclk_out),
10234.soclk_out(soclk_out),
10235.l1clk(l1clk0),
10236.pce_ov(pce_ov),
10237.stop(stop)
10238);
10239
10240cl_dp1_ccx_l1hdr_16x hdr1 (
10241.l2clk(l2clk),
10242.se(se),
10243.pce(pce1),
10244.aclk(siclk_in),
10245.bclk(soclk_in),
10246.siclk_out(siclk_out_unused),
10247.soclk_out(soclk_out_unused),
10248.l1clk(l1clk1),
10249.pce_ov(pce_ov),
10250.stop(stop)
10251);
10252
10253cl_dp1_ccx_msff_16x msff1 (
10254.l1clk(l1clk),
10255.siclk(siclk_out),
10256.soclk(soclk_out),
10257.d(grant_a),
10258.si(si),
10259.so(so),
10260.q(grant_x)
10261);
10262
10263assign qsel0_buf = qsel0;
10264assign shift_buf = shift;
10265
10266
10267endmodule // cl_dp1_ccxhdr
10268
10269module cl_dp1_ccx_mac_a (
10270l1clk0,
10271l1clk1,
10272siclk,
10273soclk,
10274grant_x,
10275data_a,
10276data_x_l,
10277qsel0_buf,
10278shift_buf,
10279si,
10280so
10281);
10282
10283input l1clk0;
10284input l1clk1;
10285input siclk;
10286input soclk;
10287input grant_x;
10288input data_a;
10289
10290input qsel0_buf;
10291input shift_buf;
10292
10293output data_x_l;
10294
10295input si;
10296output so;
10297
10298wire so1;
10299wire q1;
10300wire q0;
10301wire q0_in;
10302
10303cl_dp1_ccx_msff_4x msff1 (
10304.l1clk(l1clk1),
10305.siclk(siclk),
10306.soclk(soclk),
10307.d(data_a),
10308.si(si),
10309.so(so1),
10310.q(q1)
10311);
10312
10313cl_dp1_ccx_aomux2_4x mux1(
10314.in0(data_a),
10315.in1(q1),
10316.sel0(qsel0_buf),
10317.sel1(shift_buf),
10318.out(q0_in)
10319);
10320
10321cl_dp1_ccx_msff_4x msff0 (
10322.l1clk(l1clk0),
10323.siclk(siclk),
10324.soclk(soclk),
10325.d(q0_in),
10326.si(so1),
10327.so(so),
10328.q(q0)
10329);
10330
10331cl_dp1_ccx_nand2_4x nand0(
10332.in0(q0),
10333.in1(grant_x),
10334.out(data_x_l)
10335);
10336
10337endmodule // cl_dp1_ccx_mac_a
10338
10339module cl_dp1_ccx_mac_b (
10340l1clk0,
10341l1clk1,
10342siclk,
10343soclk,
10344grant_x,
10345data_a,
10346data_prev_x_l,
10347data_x_l,
10348qsel0_buf,
10349shift_buf,
10350si,
10351so
10352);
10353
10354input l1clk0;
10355input l1clk1;
10356input siclk;
10357input soclk;
10358input grant_x;
10359input data_a;
10360input data_prev_x_l;
10361
10362input qsel0_buf;
10363input shift_buf;
10364
10365output data_x_l;
10366
10367input si;
10368output so;
10369
10370wire so1;
10371wire q1;
10372wire q0;
10373wire q0_in;
10374wire x4;
10375wire x5;
10376
10377
10378cl_dp1_ccx_msff_4x msff1 (
10379.l1clk(l1clk1),
10380.siclk(siclk),
10381.soclk(soclk),
10382.d(data_a),
10383.si(si),
10384.so(so1),
10385.q(q1)
10386);
10387
10388cl_dp1_ccx_aomux2_4x mux1(
10389.in0(data_a),
10390.in1(q1),
10391.sel0(qsel0_buf),
10392.sel1(shift_buf),
10393.out(q0_in)
10394);
10395
10396cl_dp1_ccx_msff_4x msff0 (
10397.l1clk(l1clk0),
10398.siclk(siclk),
10399.soclk(soclk),
10400.d(q0_in),
10401.si(so1),
10402.so(so),
10403.q(q0)
10404);
10405
10406cl_dp1_ccx_nand2_4x nand0(
10407.in0(q0),
10408.in1(grant_x),
10409.out(x4)
10410);
10411
10412cl_dp1_ccx_nand2_12x nand1(
10413.in0(x4),
10414.in1(data_prev_x_l),
10415.out(x5)
10416);
10417
10418cl_dp1_ccx_inv_32x inv0(
10419.in(x5),
10420.out(data_x_l)
10421);
10422
10423endmodule // cl_dp1_ccx_mac_b
10424
10425module cl_dp1_ccx_mac_c (
10426l1clk0,
10427l1clk1,
10428siclk,
10429soclk,
10430grant_x,
10431data_a,
10432data_crit_x_l,
10433data_ncrit_x_l,
10434data_x_l,
10435qsel0_buf,
10436shift_buf,
10437si,
10438so
10439);
10440
10441input l1clk0;
10442input l1clk1;
10443input siclk;
10444input soclk;
10445input grant_x;
10446input data_a;
10447input data_crit_x_l;
10448input data_ncrit_x_l;
10449
10450input qsel0_buf;
10451input shift_buf;
10452
10453output data_x_l;
10454
10455input si;
10456output so;
10457
10458wire so1;
10459wire q1;
10460wire q0;
10461wire q0_in;
10462wire x4;
10463wire x5;
10464
10465
10466cl_dp1_ccx_msff_4x msff1 (
10467.l1clk(l1clk1),
10468.siclk(siclk),
10469.soclk(soclk),
10470.d(data_a),
10471.si(si),
10472.so(so1),
10473.q(q1)
10474);
10475
10476cl_dp1_ccx_aomux2_4x mux1(
10477.in0(data_a),
10478.in1(q1),
10479.sel0(qsel0_buf),
10480.sel1(shift_buf),
10481.out(q0_in)
10482);
10483
10484cl_dp1_ccx_msff_4x msff0 (
10485.l1clk(l1clk0),
10486.siclk(siclk),
10487.soclk(soclk),
10488.d(q0_in),
10489.si(so1),
10490.so(so),
10491.q(q0)
10492);
10493
10494cl_dp1_ccx_nand2_4x nand0(
10495.in0(q0),
10496.in1(grant_x),
10497.out(x4)
10498);
10499
10500cl_dp1_ccx_nand3_12x nand1(
10501.in0(x4),
10502.in1(data_ncrit_x_l),
10503.in2(data_crit_x_l),
10504.out(x5)
10505);
10506
10507cl_dp1_ccx_inva_32x inv0(
10508.in(x5),
10509.out(data_x_l)
10510);
10511
10512endmodule // cl_dp1_ccx_mac_c
10513
10514module cl_dp1_ccx_mac_b2 (
10515l1clk0,
10516l1clk1,
10517siclk,
10518soclk,
10519grant_x,
10520data_a,
10521data_prev_x_l,
10522data_x_l,
10523qsel0_buf,
10524shift_buf,
10525si,
10526so
10527);
10528
10529input l1clk0;
10530input l1clk1;
10531input siclk;
10532input soclk;
10533input grant_x;
10534input data_a;
10535input data_prev_x_l;
10536
10537input qsel0_buf;
10538input shift_buf;
10539
10540output data_x_l;
10541
10542input si;
10543output so;
10544
10545wire so1;
10546wire q1;
10547wire q0;
10548wire q0_in;
10549wire x4;
10550wire x5;
10551
10552
10553cl_dp1_ccx_msff_4x msff1 (
10554.l1clk(l1clk1),
10555.siclk(siclk),
10556.soclk(soclk),
10557.d(data_a),
10558.si(si),
10559.so(so1),
10560.q(q1)
10561);
10562
10563cl_dp1_ccx_aomux2_4x mux1(
10564.in0(data_a),
10565.in1(q1),
10566.sel0(qsel0_buf),
10567.sel1(shift_buf),
10568.out(q0_in)
10569);
10570
10571cl_dp1_ccx_msff_4x msff0 (
10572.l1clk(l1clk0),
10573.siclk(siclk),
10574.soclk(soclk),
10575.d(q0_in),
10576.si(so1),
10577.so(so),
10578.q(q0)
10579);
10580
10581cl_dp1_ccx_nand2_4x nand0(
10582.in0(q0),
10583.in1(grant_x),
10584.out(x4)
10585);
10586
10587cl_dp1_ccx_nand2_12x nand1(
10588.in0(x4),
10589.in1(data_prev_x_l),
10590.out(x5)
10591);
10592
10593cl_dp1_ccx_inva_32x inv0(
10594.in(x5),
10595.out(data_x_l)
10596);
10597
10598endmodule // cl_dp1_ccx_mac_b2
10599
10600module cl_dp1_ccx_mac_c2 (
10601l1clk0,
10602l1clk1,
10603siclk,
10604soclk,
10605grant_x,
10606data_a,
10607data_crit_x_l,
10608data_ncrit_x_l,
10609data_x_l,
10610qsel0_buf,
10611shift_buf,
10612si,
10613so
10614);
10615
10616input l1clk0;
10617input l1clk1;
10618input siclk;
10619input soclk;
10620input grant_x;
10621input data_a;
10622input data_crit_x_l;
10623input data_ncrit_x_l;
10624
10625input qsel0_buf;
10626input shift_buf;
10627
10628output data_x_l;
10629
10630input si;
10631output so;
10632
10633wire so1;
10634wire q1;
10635wire q0;
10636wire q0_in;
10637wire x4;
10638wire x5;
10639
10640
10641cl_dp1_ccx_msff_4x msff1 (
10642.l1clk(l1clk1),
10643.siclk(siclk),
10644.soclk(soclk),
10645.d(data_a),
10646.si(si),
10647.so(so1),
10648.q(q1)
10649);
10650
10651cl_dp1_ccx_aomux2_4x mux1(
10652.in0(data_a),
10653.in1(q1),
10654.sel0(qsel0_buf),
10655.sel1(shift_buf),
10656.out(q0_in)
10657);
10658
10659cl_dp1_ccx_msff_4x msff0 (
10660.l1clk(l1clk0),
10661.siclk(siclk),
10662.soclk(soclk),
10663.d(q0_in),
10664.si(so1),
10665.so(so),
10666.q(q0)
10667);
10668
10669cl_dp1_ccx_nand2_4x nand0(
10670.in0(q0),
10671.in1(grant_x),
10672.out(x4)
10673);
10674
10675cl_dp1_ccx_nand3_12x nand1(
10676.in0(x4),
10677.in1(data_ncrit_x_l),
10678.in2(data_crit_x_l),
10679.out(x5)
10680);
10681
10682cl_dp1_ccx_inva_32x inv0(
10683.in(x5),
10684.out(data_x_l)
10685);
10686
10687endmodule // cl_dp1_ccx_mac_c2
10688
10689module cl_dp1_ccx_aomux2_4x (
10690in0,
10691in1,
10692sel0,
10693sel1,
10694out
10695);
10696input in0;
10697input in1;
10698input sel0;
10699input sel1;
10700output out;
10701
10702`ifdef LIB
10703assign out = ((sel0 & in0) |
10704 (sel1 & in1));
10705`endif
10706
10707
10708endmodule
10709
10710module cl_dp1_ccx_buf_8x (
10711in,
10712out
10713);
10714input in;
10715output out;
10716
10717`ifdef LIB
10718assign out = in;
10719`endif
10720
10721endmodule
10722module cl_dp1_ccx_buf_1x (
10723in,
10724out
10725);
10726input in;
10727output out;
10728
10729`ifdef LIB
10730assign out = in;
10731`endif
10732
10733endmodule
10734module cl_dp1_ccx_bufmin_1x (
10735in,
10736out
10737);
10738input in;
10739output out;
10740
10741`ifdef LIB
10742assign out = in;
10743`endif
10744
10745endmodule
10746module cl_dp1_ccx_inv_12x (
10747in,
10748out
10749);
10750input in;
10751output out;
10752
10753`ifdef LIB
10754assign out = ~in;
10755`endif
10756
10757endmodule
10758module cl_dp1_ccx_inv_32x (
10759in,
10760out
10761);
10762input in;
10763output out;
10764
10765`ifdef LIB
10766assign out = ~in;
10767`endif
10768
10769endmodule
10770module cl_dp1_ccx_inva_32x (
10771in,
10772out
10773);
10774input in;
10775output out;
10776
10777`ifdef LIB
10778assign out = ~in;
10779`endif
10780
10781endmodule
10782
10783module cl_dp1_ccx_msff_16x ( q, so, d, l1clk, si, siclk, soclk );
10784// RFM 05-14-2004
10785// Level sensitive in SCAN_MODE
10786// Edge triggered when not in SCAN_MODE
10787
10788
10789 parameter SIZE = 1;
10790
10791 output q;
10792 output so;
10793
10794 input d;
10795 input l1clk;
10796 input si;
10797 input siclk;
10798 input soclk;
10799
10800 reg q;
10801 wire so;
10802 wire l1clk, siclk, soclk;
10803
10804 `ifdef SCAN_MODE
10805
10806 reg l1;
10807 `ifdef FAST_FLUSH
10808 always @(posedge l1clk or posedge siclk ) begin
10809 if (siclk) begin
10810 q <= 1'b0; //pseudo flush reset
10811 end else begin
10812 q <= d;
10813 end
10814 end
10815 `else
10816 always @(l1clk or siclk or soclk or d or si)
10817 begin
10818 if (!l1clk && !siclk) l1 <= d; // Load master with data
10819 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
10820 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
10821
10822 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
10823 if ( l1clk && siclk && !soclk) q <= si; // Flush
10824 end
10825 `endif
10826 `else
10827 wire si_unused;
10828 wire siclk_unused;
10829 wire soclk_unused;
10830 assign si_unused = si;
10831 assign siclk_unused = siclk;
10832 assign soclk_unused = soclk;
10833
10834
10835 `ifdef INITLATZERO
10836 initial q = 1'b0;
10837 `endif
10838
10839 always @(posedge l1clk)
10840 begin
10841 if (!siclk && !soclk) q <= d;
10842 else q <= 1'bx;
10843 end
10844 `endif
10845
10846 assign so = q;
10847
10848endmodule // dff
10849module cl_dp1_ccx_msffmin_4x ( q, so, d, l1clk, si, siclk, soclk );
10850// RFM 05-14-2004
10851// Level sensitive in SCAN_MODE
10852// Edge triggered when not in SCAN_MODE
10853
10854
10855 parameter SIZE = 1;
10856
10857 output q;
10858 output so;
10859
10860 input d;
10861 input l1clk;
10862 input si;
10863 input siclk;
10864 input soclk;
10865
10866 reg q;
10867 wire so;
10868 wire l1clk, siclk, soclk;
10869
10870 `ifdef SCAN_MODE
10871
10872 reg l1;
10873 `ifdef FAST_FLUSH
10874 always @(posedge l1clk or posedge siclk ) begin
10875 if (siclk) begin
10876 q <= 1'b0; //pseudo flush reset
10877 end else begin
10878 q <= d;
10879 end
10880 end
10881 `else
10882 always @(l1clk or siclk or soclk or d or si)
10883 begin
10884 if (!l1clk && !siclk) l1 <= d; // Load master with data
10885 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
10886 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
10887
10888 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
10889 if ( l1clk && siclk && !soclk) q <= si; // Flush
10890 end
10891 `endif
10892 `else
10893 wire si_unused;
10894 wire siclk_unused;
10895 wire soclk_unused;
10896 assign si_unused = si;
10897 assign siclk_unused = siclk;
10898 assign soclk_unused = soclk;
10899
10900
10901 `ifdef INITLATZERO
10902 initial q = 1'b0;
10903 `endif
10904
10905 always @(posedge l1clk)
10906 begin
10907 if (!siclk && !soclk) q <= d;
10908 else q <= 1'bx;
10909 end
10910 `endif
10911
10912 assign so = q;
10913
10914endmodule // dff
10915module cl_dp1_ccx_msff_4x ( q, so, d, l1clk, si, siclk, soclk );
10916// RFM 05-14-2004
10917// Level sensitive in SCAN_MODE
10918// Edge triggered when not in SCAN_MODE
10919
10920
10921 parameter SIZE = 1;
10922
10923 output q;
10924 output so;
10925
10926 input d;
10927 input l1clk;
10928 input si;
10929 input siclk;
10930 input soclk;
10931
10932 reg q;
10933 wire so;
10934 wire l1clk, siclk, soclk;
10935
10936 `ifdef SCAN_MODE
10937
10938 reg l1;
10939`ifdef FAST_FLUSH
10940 always @(posedge l1clk or posedge siclk ) begin
10941 if (siclk) begin
10942 q <= 1'b0; //pseudo flush reset
10943 end else begin
10944 q <= d;
10945 end
10946 end
10947 `else
10948 always @(l1clk or siclk or soclk or d or si)
10949 begin
10950 if (!l1clk && !siclk) l1 <= d; // Load master with data
10951 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
10952 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
10953
10954 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
10955 if ( l1clk && siclk && !soclk) q <= si; // Flush
10956 end
10957 `endif
10958 `else
10959 wire si_unused;
10960 wire siclk_unused;
10961 wire soclk_unused;
10962 assign si_unused = si;
10963 assign siclk_unused = siclk;
10964 assign soclk_unused = soclk;
10965
10966
10967 `ifdef INITLATZERO
10968 initial q = 1'b0;
10969 `endif
10970
10971 always @(posedge l1clk)
10972 begin
10973 if (!siclk && !soclk) q <= d;
10974 else q <= 1'bx;
10975 end
10976 `endif
10977
10978 assign so = q;
10979
10980endmodule // dff
10981module cl_dp1_ccx_msff_8x ( q, so, d, l1clk, si, siclk, soclk );
10982// RFM 05-14-2004
10983// Level sensitive in SCAN_MODE
10984// Edge triggered when not in SCAN_MODE
10985
10986
10987 parameter SIZE = 1;
10988
10989 output q;
10990 output so;
10991
10992 input d;
10993 input l1clk;
10994 input si;
10995 input siclk;
10996 input soclk;
10997
10998 reg q;
10999 wire so;
11000 wire l1clk, siclk, soclk;
11001
11002 `ifdef SCAN_MODE
11003
11004 reg l1;
11005`ifdef FAST_FLUSH
11006 always @(posedge l1clk or posedge siclk ) begin
11007 if (siclk) begin
11008 q <= 1'b0; //pseudo flush reset
11009 end else begin
11010 q <= d;
11011 end
11012 end
11013 `else
11014 always @(l1clk or siclk or soclk or d or si)
11015 begin
11016 if (!l1clk && !siclk) l1 <= d; // Load master with data
11017 else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
11018 else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
11019
11020 else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
11021 if ( l1clk && siclk && !soclk) q <= si; // Flush
11022 end
11023 `endif
11024 `else
11025 wire si_unused;
11026 wire siclk_unused;
11027 wire soclk_unused;
11028 assign si_unused = si;
11029 assign siclk_unused = siclk;
11030 assign soclk_unused = soclk;
11031
11032
11033 `ifdef INITLATZERO
11034 initial q = 1'b0;
11035 `endif
11036
11037 always @(posedge l1clk)
11038 begin
11039 if (!siclk && !soclk) q <= d;
11040 else q <= 1'bx;
11041 end
11042 `endif
11043
11044 assign so = q;
11045
11046endmodule // dff
11047
11048module cl_dp1_ccx_nand2_1x (
11049in0,
11050in1,
11051out
11052);
11053input in0;
11054input in1;
11055output out;
11056
11057`ifdef LIB
11058assign out = ~(in0 & in1);
11059`endif
11060
11061endmodule
11062module cl_dp1_ccx_nand2_12x (
11063in0,
11064in1,
11065out
11066);
11067input in0;
11068input in1;
11069output out;
11070
11071`ifdef LIB
11072assign out = ~(in0 & in1);
11073`endif
11074
11075endmodule
11076module cl_dp1_ccx_nand2_4x (
11077in0,
11078in1,
11079out
11080);
11081input in0;
11082input in1;
11083output out;
11084
11085`ifdef LIB
11086assign out = ~(in0 & in1);
11087`endif
11088
11089endmodule
11090module cl_dp1_ccx_nand3_12x (
11091in0,
11092in1,
11093in2,
11094out
11095);
11096input in0;
11097input in1;
11098input in2;
11099output out;
11100
11101`ifdef LIB
11102assign out = ~(in0 & in1 & in2);
11103`endif
11104
11105endmodule
11106module cl_dp1_ccx_l1hdr_16x (l1clk,
11107 l2clk,
11108 se,
11109 pce,
11110 pce_ov,
11111 stop,
11112 aclk,
11113 bclk,
11114 siclk_out,
11115 soclk_out
11116 );
11117// RFM 05/21/2004
11118
11119
11120 output l1clk;
11121 input l2clk; // level 2 clock, from clock grid
11122 input se; // Scan Enable
11123 input pce; // Clock enable for local power savings
11124 input pce_ov; // TCU sourced clock enable override for testing
11125 input stop; // TCU/CCU sourced clock stop for debug
11126 input aclk;
11127 input bclk;
11128 output siclk_out;
11129 output soclk_out;
11130`ifdef FORMAL_TOOL
11131wire l1en = (~stop & ( pce | pce_ov ));
11132assign l1clk = (l2clk & l1en) | se;
11133assign siclk_out = aclk;
11134assign soclk_out = bclk;
11135`else
11136 `ifdef LIB
11137reg l1en;
11138`ifdef SCAN_MODE
11139 always @ (l2clk or stop or pce or pce_ov)
11140 begin
11141 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
11142 end
11143`else
11144
11145 always @ (negedge l2clk )
11146 begin
11147 l1en <= (~stop & ( pce | pce_ov ));
11148 end
11149`endif
11150 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
11151
11152assign siclk_out = aclk;
11153assign soclk_out = bclk;
11154
11155 `endif // `ifdef LIB
11156`endif // !`ifdef FORMAL_TOOL
11157
11158
11159endmodule
11160
11161module cl_dp1_ccx_l1hdr_8x (l1clk,
11162 l2clk,
11163 se,
11164 pce,
11165 pce_ov,
11166 stop,
11167 aclk,
11168 bclk,
11169 siclk_out,
11170 soclk_out
11171 );
11172// RFM 05/21/2004
11173
11174
11175 output l1clk;
11176 input l2clk; // level 2 clock, from clock grid
11177 input se; // Scan Enable
11178 input pce; // Clock enable for local power savings
11179 input pce_ov; // TCU sourced clock enable override for testing
11180 input stop; // TCU/CCU sourced clock stop for debug
11181 input aclk;
11182 input bclk;
11183 output siclk_out;
11184 output soclk_out;
11185`ifdef FORMAL_TOOL
11186wire l1en = (~stop & ( pce | pce_ov ));
11187assign l1clk = (l2clk & l1en) | se;
11188assign siclk_out = aclk;
11189assign soclk_out = bclk;
11190`else
11191 `ifdef LIB
11192reg l1en;
11193`ifdef SCAN_MODE
11194 always @ (l2clk or stop or pce or pce_ov)
11195 begin
11196 if (~l2clk) l1en <= (~stop & (pce | pce_ov));
11197 end
11198`else
11199
11200 always @ (negedge l2clk )
11201 begin
11202 l1en <= (~stop & ( pce | pce_ov ));
11203 end
11204`endif
11205 assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
11206
11207assign siclk_out = aclk;
11208assign soclk_out = bclk;
11209
11210 `endif // `ifdef LIB
11211`endif // !`ifdef FORMAL_TOOL
11212
11213
11214endmodule