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