Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / libs / cl / cl_dp1lvt / cl_dp1lvt.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: cl_dp1lvt.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35module cl_dp1lvt_add136_8x (
36 din0,
37 din1,
38 din2,
39 sel_din2,
40 sum,
41 fya_sticky_dp,
42 fya_sticky_sp,
43 fya_xicc_z);
44wire [101:0] p;
45wire [100:0] k;
46wire [101:0] z;
47
48
49 input [135:0] din0;
50 input [132:0] din1;
51 input [135:0] din2;
52 input [3:0] sel_din2;
53
54 output [135:0] sum;
55 output fya_sticky_dp;
56 output fya_sticky_sp;
57 output [1:0] fya_xicc_z;
58
59`ifdef LIB
60
61 assign sum[135:0] = { din0[135:0]} +
62 {3'b000,din1[132:0]} +
63 ({{{40{sel_din2[3]}} & din2[135:96]},
64 {{32{sel_din2[2]}} & din2[95:64] },
65 {{32{sel_din2[1]}} & din2[63:32] },
66 {{32{sel_din2[0]}} & din2[31:0] }});
67
68
69 // 127 126 125 ... 74 73 72 0
70 // --- --- --------------- --- ------------
71 // Float DP x x . 52 fraction G -> Sticky ->
72
73 // 127 126 125 ... 103 102 101 0
74 // --- --- --------------- --- ------------
75 // Float SP x x . 23 fraction G -> Sticky ->
76
77
78 assign p[101:0] = din0[101:0] ^ {din1[101:4],{4{1'b0}}};
79 assign k[100:0] = ~din0[100:0] & ~{din1[100:4],{4{1'b0}}};
80
81 assign z[101:1] = p[101:1] ^ k[100:0];
82 assign z[0] = ~p[0];
83
84 assign fya_sticky_sp = ~(& z[101:0]);
85 assign fya_sticky_dp = ~(& z[72:0]);
86
87 assign fya_xicc_z[1] = & z[63:0];
88 assign fya_xicc_z[0] = & z[31:0];
89
90`endif
91
92endmodule
93module cl_dp1lvt_add12_fulllvt_8x (
94cin,
95in0,
96in1,
97out,
98cout
99);
100input cin;
101input [11:0] in0;
102input [11:0] in1;
103output [11:0] out;
104output cout;
105
106`ifdef LIB
107 assign {cout, out[11:0]} = ({1'b0, in0[11:0]} + {1'b0, in1[11:0]} + {{12{1'b0}}, cin});
108`endif
109
110endmodule
111
112module cl_dp1lvt_add16_fulllvt_8x (
113cin,
114in0,
115in1,
116out,
117cout
118);
119input cin;
120input [15:0] in0;
121input [15:0] in1;
122output [15:0] out;
123output cout;
124
125`ifdef LIB
126 assign {cout, out[15:0]} = ({1'b0, in0[15:0]} + {1'b0, in1[15:0]} + {{16{1'b0}}, cin});
127`endif
128
129endmodule
130module cl_dp1lvt_add4_fulllvt_8x (
131cin,
132in0,
133in1,
134out,
135cout
136);
137input cin;
138input [3:0] in0;
139input [3:0] in1;
140output [3:0] out;
141output cout;
142
143`ifdef LIB
144 assign {cout, out[3:0]} = ({1'b0, in0[3:0]} + {1'b0, in1[3:0]} + {{4{1'b0}}, cin});
145`endif
146
147endmodule
148module cl_dp1lvt_add64_fulllvt_8x (
149cin,
150in0,
151in1,
152out,
153cout
154);
155input cin;
156input [63:0] in0;
157input [63:0] in1;
158output [63:0] out;
159output cout;
160
161`ifdef LIB
162 assign {cout, out[63:0]} = ({1'b0, in0[63:0]} + {1'b0, in1[63:0]} + {{64{1'b0}}, cin});
163`endif
164
165endmodule
166module cl_dp1lvt_add8_fulllvt_8x (
167cin,
168in0,
169in1,
170out,
171cout
172);
173input cin;
174input [7:0] in0;
175input [7:0] in1;
176output [7:0] out;
177output cout;
178
179`ifdef LIB
180 assign {cout, out[7:0]} = ({1'b0, in0[7:0]} + {1'b0, in1[7:0]} + {{8{1'b0}}, cin});
181`endif
182
183endmodule
184module cl_dp1lvt_add12_8x (
185cin,
186in0,
187in1,
188out,
189cout
190);
191input cin;
192input [11:0] in0;
193input [11:0] in1;
194output [11:0] out;
195output cout;
196
197`ifdef LIB
198 assign {cout, out[11:0]} = ({1'b0, in0[11:0]} + {1'b0, in1[11:0]} + {{12{1'b0}}, cin});
199`endif
200
201endmodule
202module cl_dp1lvt_add16_8x (
203cin,
204in0,
205in1,
206out,
207cout
208);
209input cin;
210input [15:0] in0;
211input [15:0] in1;
212output [15:0] out;
213output cout;
214
215`ifdef LIB
216 assign {cout, out[15:0]} = ({1'b0, in0[15:0]} + {1'b0, in1[15:0]} + {{16{1'b0}}, cin});
217`endif
218
219endmodule
220module cl_dp1lvt_add32_8x (
221cin,
222in0,
223in1,
224out,
225cout
226);
227input cin;
228input [31:0] in0;
229input [31:0] in1;
230output [31:0] out;
231output cout;
232
233`ifdef LIB
234 assign {cout, out[31:0]} = ({1'b0, in0[31:0]} + {1'b0, in1[31:0]} + {{32{1'b0}}, cin});
235`endif
236
237endmodule
238module cl_dp1lvt_add4_8x (
239cin,
240in0,
241in1,
242out,
243cout
244);
245input cin;
246input [3:0] in0;
247input [3:0] in1;
248output [3:0] out;
249output cout;
250
251`ifdef LIB
252 assign {cout, out[3:0]} = ({1'b0, in0[3:0]} + {1'b0, in1[3:0]} + {{4{1'b0}}, cin});
253`endif
254
255endmodule
256module cl_dp1lvt_add64_8x (
257cin,
258in0,
259in1,
260out,
261cout
262);
263input cin;
264input [63:0] in0;
265input [63:0] in1;
266output [63:0] out;
267output cout;
268
269`ifdef LIB
270 assign {cout, out[63:0]} = ({1'b0, in0[63:0]} + {1'b0, in1[63:0]} + {{64{1'b0}}, cin});
271`endif
272
273endmodule
274
275
276module cl_dp1lvt_cmpr12_8x (
277in0,
278in1,
279out
280);
281input [11:0] in0;
282input [11:0] in1;
283output out;
284
285`ifdef LIB
286assign out = (in0[11:0] == in1[11:0]);
287`endif
288
289endmodule
290module cl_dp1lvt_add8_8x (
291cin,
292in0,
293in1,
294out,
295cout
296);
297input cin;
298input [7:0] in0;
299input [7:0] in1;
300output [7:0] out;
301output cout;
302
303`ifdef LIB
304 assign {cout, out[7:0]} = ({1'b0, in0[7:0]} + {1'b0, in1[7:0]} + {{8{1'b0}}, cin});
305`endif
306
307endmodule
308module cl_dp1lvt_cmpr16_8x (
309in0,
310in1,
311out
312);
313input [15:0] in0;
314input [15:0] in1;
315output out;
316
317`ifdef LIB
318assign out = (in0[15:0] == in1[15:0]);
319`endif
320
321endmodule
322module cl_dp1lvt_cmpr32_8x (
323in0,
324in1,
325out
326);
327input [31:0] in0;
328input [31:0] in1;
329output out;
330
331`ifdef LIB
332assign out = (in0[31:0] == in1[31:0]);
333`endif
334
335endmodule
336module cl_dp1lvt_cmpr4_8x (
337in0,
338in1,
339out
340);
341input [3:0] in0;
342input [3:0] in1;
343output out;
344
345`ifdef LIB
346assign out = (in0[3:0] == in1[3:0]);
347`endif
348
349endmodule
350module cl_dp1lvt_cmpr64_8x (
351in0,
352in1,
353out
354);
355input [63:0] in0;
356input [63:0] in1;
357output out;
358
359`ifdef LIB
360assign out = (in0[63:0] == in1[63:0]);
361`endif
362
363endmodule
364module cl_dp1lvt_cmpr8_8x (
365in0,
366in1,
367out
368);
369input [7:0] in0;
370input [7:0] in1;
371output out;
372
373`ifdef LIB
374assign out = (in0[7:0] == in1[7:0]);
375`endif
376
377endmodule
378
379module cl_dp1lvt_prty16_8x (
380in,
381out
382);
383input [15:0] in;
384output out;
385
386
387`ifdef LIB
388assign out = ^in[15:0];
389`endif
390
391endmodule
392module cl_dp1lvt_prty32_8x (
393in,
394out
395);
396input [31:0] in;
397output out;
398
399`ifdef LIB
400assign out = ^in[31:0];
401`endif
402
403endmodule
404module cl_dp1lvt_prty4_8x (
405in,
406out
407);
408input [3:0] in;
409output out;
410
411`ifdef LIB
412assign out = ^in[3:0];
413`endif
414
415endmodule
416module cl_dp1lvt_prty8_8x (
417in,
418out
419);
420input [7:0] in;
421output out;
422
423`ifdef LIB
424assign out = ^in[7:0];
425`endif
426
427endmodule
428
429module cl_dp1lvt_aomux2_1x (
430in0,
431in1,
432sel0,
433sel1,
434out
435);
436input in0;
437input in1;
438input sel0;
439input sel1;
440output out;
441
442`ifdef LIB
443assign out = ((sel0 & in0) |
444 (sel1 & in1));
445`endif
446
447
448endmodule
449module cl_dp1lvt_aomux2_2x (
450in0,
451in1,
452sel0,
453sel1,
454out
455);
456input in0;
457input in1;
458input sel0;
459input sel1;
460output out;
461
462`ifdef LIB
463assign out = ((sel0 & in0) |
464 (sel1 & in1));
465`endif
466
467
468endmodule
469module cl_dp1lvt_aomux2_4x (
470in0,
471in1,
472sel0,
473sel1,
474out
475);
476input in0;
477input in1;
478input sel0;
479input sel1;
480output out;
481
482`ifdef LIB
483assign out = ((sel0 & in0) |
484 (sel1 & in1));
485`endif
486
487
488endmodule
489module cl_dp1lvt_aomux2_6x (
490in0,
491in1,
492sel0,
493sel1,
494out
495);
496input in0;
497input in1;
498input sel0;
499input sel1;
500output out;
501
502`ifdef LIB
503assign out = ((sel0 & in0) |
504 (sel1 & in1));
505`endif
506
507
508endmodule
509module cl_dp1lvt_aomux2_8x (
510in0,
511in1,
512sel0,
513sel1,
514out
515);
516input in0;
517input in1;
518input sel0;
519input sel1;
520output out;
521
522`ifdef LIB
523assign out = ((sel0 & in0) |
524 (sel1 & in1));
525`endif
526
527
528endmodule
529
530module cl_dp1lvt_aomux3_1x (
531in0,
532in1,
533in2,
534sel0,
535sel1,
536sel2,
537out
538);
539input in0;
540input in1;
541input in2;
542input sel0;
543input sel1;
544input sel2;
545output out;
546
547`ifdef LIB
548assign out = ((sel0 & in0) |
549 (sel1 & in1) |
550 (sel2 & in2));
551`endif
552
553endmodule
554module cl_dp1lvt_aomux3_2x (
555in0,
556in1,
557in2,
558sel0,
559sel1,
560sel2,
561out
562);
563input in0;
564input in1;
565input in2;
566input sel0;
567input sel1;
568input sel2;
569output out;
570
571`ifdef LIB
572assign out = ((sel0 & in0) |
573 (sel1 & in1) |
574 (sel2 & in2));
575`endif
576
577endmodule
578module cl_dp1lvt_aomux3_4x (
579in0,
580in1,
581in2,
582sel0,
583sel1,
584sel2,
585out
586);
587input in0;
588input in1;
589input in2;
590input sel0;
591input sel1;
592input sel2;
593output out;
594
595`ifdef LIB
596assign out = ((sel0 & in0) |
597 (sel1 & in1) |
598 (sel2 & in2));
599`endif
600
601endmodule
602module cl_dp1lvt_aomux3_6x (
603in0,
604in1,
605in2,
606sel0,
607sel1,
608sel2,
609out
610);
611input in0;
612input in1;
613input in2;
614input sel0;
615input sel1;
616input sel2;
617output out;
618
619`ifdef LIB
620assign out = ((sel0 & in0) |
621 (sel1 & in1) |
622 (sel2 & in2));
623`endif
624
625endmodule
626module cl_dp1lvt_aomux3_8x (
627in0,
628in1,
629in2,
630sel0,
631sel1,
632sel2,
633out
634);
635input in0;
636input in1;
637input in2;
638input sel0;
639input sel1;
640input sel2;
641output out;
642
643`ifdef LIB
644assign out = ((sel0 & in0) |
645 (sel1 & in1) |
646 (sel2 & in2));
647`endif
648
649endmodule
650
651module cl_dp1lvt_aomux4_1x (
652in0,
653in1,
654in2,
655in3,
656sel0,
657sel1,
658sel2,
659sel3,
660out
661);
662input in0;
663input in1;
664input in2;
665input in3;
666input sel0;
667input sel1;
668input sel2;
669input sel3;
670output out;
671
672`ifdef LIB
673assign out = ((sel0 & in0) |
674 (sel1 & in1) |
675 (sel2 & in2) |
676 (sel3 & in3));
677`endif
678
679endmodule
680module cl_dp1lvt_aomux4_2x (
681in0,
682in1,
683in2,
684in3,
685sel0,
686sel1,
687sel2,
688sel3,
689out
690);
691input in0;
692input in1;
693input in2;
694input in3;
695input sel0;
696input sel1;
697input sel2;
698input sel3;
699output out;
700
701`ifdef LIB
702assign out = ((sel0 & in0) |
703 (sel1 & in1) |
704 (sel2 & in2) |
705 (sel3 & in3));
706`endif
707
708endmodule
709module cl_dp1lvt_aomux4_4x (
710in0,
711in1,
712in2,
713in3,
714sel0,
715sel1,
716sel2,
717sel3,
718out
719);
720input in0;
721input in1;
722input in2;
723input in3;
724input sel0;
725input sel1;
726input sel2;
727input sel3;
728output out;
729
730`ifdef LIB
731assign out = ((sel0 & in0) |
732 (sel1 & in1) |
733 (sel2 & in2) |
734 (sel3 & in3));
735`endif
736
737endmodule
738module cl_dp1lvt_aomux4_6x (
739in0,
740in1,
741in2,
742in3,
743sel0,
744sel1,
745sel2,
746sel3,
747out
748);
749input in0;
750input in1;
751input in2;
752input in3;
753input sel0;
754input sel1;
755input sel2;
756input sel3;
757output out;
758
759`ifdef LIB
760assign out = ((sel0 & in0) |
761 (sel1 & in1) |
762 (sel2 & in2) |
763 (sel3 & in3));
764`endif
765
766endmodule
767module cl_dp1lvt_aomux4_8x (
768in0,
769in1,
770in2,
771in3,
772sel0,
773sel1,
774sel2,
775sel3,
776out
777);
778input in0;
779input in1;
780input in2;
781input in3;
782input sel0;
783input sel1;
784input sel2;
785input sel3;
786output out;
787
788`ifdef LIB
789assign out = ((sel0 & in0) |
790 (sel1 & in1) |
791 (sel2 & in2) |
792 (sel3 & in3));
793`endif
794
795endmodule
796
797module cl_dp1lvt_aomux5_1x (
798in0,
799in1,
800in2,
801in3,
802in4,
803sel0,
804sel1,
805sel2,
806sel3,
807sel4,
808out
809);
810input in0;
811input in1;
812input in2;
813input in3;
814input in4;
815input sel0;
816input sel1;
817input sel2;
818input sel3;
819input sel4;
820output out;
821
822`ifdef LIB
823assign out = ((sel0 & in0) |
824 (sel1 & in1) |
825 (sel2 & in2) |
826 (sel3 & in3) |
827 (sel4 & in4));
828`endif
829
830endmodule
831module cl_dp1lvt_aomux5_2x (
832in0,
833in1,
834in2,
835in3,
836in4,
837sel0,
838sel1,
839sel2,
840sel3,
841sel4,
842out
843);
844input in0;
845input in1;
846input in2;
847input in3;
848input in4;
849input sel0;
850input sel1;
851input sel2;
852input sel3;
853input sel4;
854output out;
855
856`ifdef LIB
857assign out = ((sel0 & in0) |
858 (sel1 & in1) |
859 (sel2 & in2) |
860 (sel3 & in3) |
861 (sel4 & in4));
862`endif
863
864endmodule
865module cl_dp1lvt_aomux5_4x (
866in0,
867in1,
868in2,
869in3,
870in4,
871sel0,
872sel1,
873sel2,
874sel3,
875sel4,
876out
877);
878input in0;
879input in1;
880input in2;
881input in3;
882input in4;
883input sel0;
884input sel1;
885input sel2;
886input sel3;
887input sel4;
888output out;
889
890`ifdef LIB
891assign out = ((sel0 & in0) |
892 (sel1 & in1) |
893 (sel2 & in2) |
894 (sel3 & in3) |
895 (sel4 & in4));
896`endif
897
898endmodule
899module cl_dp1lvt_aomux5_6x (
900in0,
901in1,
902in2,
903in3,
904in4,
905sel0,
906sel1,
907sel2,
908sel3,
909sel4,
910out
911);
912input in0;
913input in1;
914input in2;
915input in3;
916input in4;
917input sel0;
918input sel1;
919input sel2;
920input sel3;
921input sel4;
922output out;
923
924`ifdef LIB
925assign out = ((sel0 & in0) |
926 (sel1 & in1) |
927 (sel2 & in2) |
928 (sel3 & in3) |
929 (sel4 & in4));
930`endif
931
932endmodule
933module cl_dp1lvt_aomux5_8x (
934in0,
935in1,
936in2,
937in3,
938in4,
939sel0,
940sel1,
941sel2,
942sel3,
943sel4,
944out
945);
946input in0;
947input in1;
948input in2;
949input in3;
950input in4;
951input sel0;
952input sel1;
953input sel2;
954input sel3;
955input sel4;
956output out;
957
958`ifdef LIB
959assign out = ((sel0 & in0) |
960 (sel1 & in1) |
961 (sel2 & in2) |
962 (sel3 & in3) |
963 (sel4 & in4));
964`endif
965
966endmodule
967
968module cl_dp1lvt_aomux6_1x (
969in0,
970in1,
971in2,
972in3,
973in4,
974in5,
975sel0,
976sel1,
977sel2,
978sel3,
979sel4,
980sel5,
981out
982);
983input in0;
984input in1;
985input in2;
986input in3;
987input in4;
988input in5;
989input sel0;
990input sel1;
991input sel2;
992input sel3;
993input sel4;
994input sel5;
995output out;
996
997`ifdef LIB
998assign out = ((sel0 & in0) |
999 (sel1 & in1) |
1000 (sel2 & in2) |
1001 (sel3 & in3) |
1002 (sel4 & in4) |
1003 (sel5 & in5));
1004`endif
1005
1006endmodule
1007module cl_dp1lvt_aomux6_2x (
1008in0,
1009in1,
1010in2,
1011in3,
1012in4,
1013in5,
1014sel0,
1015sel1,
1016sel2,
1017sel3,
1018sel4,
1019sel5,
1020out
1021);
1022input in0;
1023input in1;
1024input in2;
1025input in3;
1026input in4;
1027input in5;
1028input sel0;
1029input sel1;
1030input sel2;
1031input sel3;
1032input sel4;
1033input sel5;
1034output out;
1035
1036`ifdef LIB
1037assign out = ((sel0 & in0) |
1038 (sel1 & in1) |
1039 (sel2 & in2) |
1040 (sel3 & in3) |
1041 (sel4 & in4) |
1042 (sel5 & in5));
1043`endif
1044
1045endmodule
1046module cl_dp1lvt_aomux6_4x (
1047in0,
1048in1,
1049in2,
1050in3,
1051in4,
1052in5,
1053sel0,
1054sel1,
1055sel2,
1056sel3,
1057sel4,
1058sel5,
1059out
1060);
1061input in0;
1062input in1;
1063input in2;
1064input in3;
1065input in4;
1066input in5;
1067input sel0;
1068input sel1;
1069input sel2;
1070input sel3;
1071input sel4;
1072input sel5;
1073output out;
1074
1075`ifdef LIB
1076assign out = ((sel0 & in0) |
1077 (sel1 & in1) |
1078 (sel2 & in2) |
1079 (sel3 & in3) |
1080 (sel4 & in4) |
1081 (sel5 & in5));
1082`endif
1083
1084endmodule
1085module cl_dp1lvt_aomux6_6x (
1086in0,
1087in1,
1088in2,
1089in3,
1090in4,
1091in5,
1092sel0,
1093sel1,
1094sel2,
1095sel3,
1096sel4,
1097sel5,
1098out
1099);
1100input in0;
1101input in1;
1102input in2;
1103input in3;
1104input in4;
1105input in5;
1106input sel0;
1107input sel1;
1108input sel2;
1109input sel3;
1110input sel4;
1111input sel5;
1112output out;
1113
1114`ifdef LIB
1115assign out = ((sel0 & in0) |
1116 (sel1 & in1) |
1117 (sel2 & in2) |
1118 (sel3 & in3) |
1119 (sel4 & in4) |
1120 (sel5 & in5));
1121`endif
1122
1123endmodule
1124module cl_dp1lvt_aomux6_8x (
1125in0,
1126in1,
1127in2,
1128in3,
1129in4,
1130in5,
1131sel0,
1132sel1,
1133sel2,
1134sel3,
1135sel4,
1136sel5,
1137out
1138);
1139input in0;
1140input in1;
1141input in2;
1142input in3;
1143input in4;
1144input in5;
1145input sel0;
1146input sel1;
1147input sel2;
1148input sel3;
1149input sel4;
1150input sel5;
1151output out;
1152
1153`ifdef LIB
1154assign out = ((sel0 & in0) |
1155 (sel1 & in1) |
1156 (sel2 & in2) |
1157 (sel3 & in3) |
1158 (sel4 & in4) |
1159 (sel5 & in5));
1160`endif
1161
1162endmodule
1163
1164module cl_dp1lvt_aomux7_1x (
1165in0,
1166in1,
1167in2,
1168in3,
1169in4,
1170in5,
1171in6,
1172sel0,
1173sel1,
1174sel2,
1175sel3,
1176sel4,
1177sel5,
1178sel6,
1179out
1180);
1181input in0;
1182input in1;
1183input in2;
1184input in3;
1185input in4;
1186input in5;
1187input in6;
1188input sel0;
1189input sel1;
1190input sel2;
1191input sel3;
1192input sel4;
1193input sel5;
1194input sel6;
1195output out;
1196
1197`ifdef LIB
1198assign out = ((sel0 & in0) |
1199 (sel1 & in1) |
1200 (sel2 & in2) |
1201 (sel3 & in3) |
1202 (sel4 & in4) |
1203 (sel5 & in5) |
1204 (sel6 & in6));
1205`endif
1206
1207endmodule
1208module cl_dp1lvt_aomux7_2x (
1209in0,
1210in1,
1211in2,
1212in3,
1213in4,
1214in5,
1215in6,
1216sel0,
1217sel1,
1218sel2,
1219sel3,
1220sel4,
1221sel5,
1222sel6,
1223out
1224);
1225input in0;
1226input in1;
1227input in2;
1228input in3;
1229input in4;
1230input in5;
1231input in6;
1232input sel0;
1233input sel1;
1234input sel2;
1235input sel3;
1236input sel4;
1237input sel5;
1238input sel6;
1239output out;
1240
1241`ifdef LIB
1242assign out = ((sel0 & in0) |
1243 (sel1 & in1) |
1244 (sel2 & in2) |
1245 (sel3 & in3) |
1246 (sel4 & in4) |
1247 (sel5 & in5) |
1248 (sel6 & in6));
1249`endif
1250
1251endmodule
1252module cl_dp1lvt_aomux7_4x (
1253in0,
1254in1,
1255in2,
1256in3,
1257in4,
1258in5,
1259in6,
1260sel0,
1261sel1,
1262sel2,
1263sel3,
1264sel4,
1265sel5,
1266sel6,
1267out
1268);
1269input in0;
1270input in1;
1271input in2;
1272input in3;
1273input in4;
1274input in5;
1275input in6;
1276input sel0;
1277input sel1;
1278input sel2;
1279input sel3;
1280input sel4;
1281input sel5;
1282input sel6;
1283output out;
1284
1285`ifdef LIB
1286assign out = ((sel0 & in0) |
1287 (sel1 & in1) |
1288 (sel2 & in2) |
1289 (sel3 & in3) |
1290 (sel4 & in4) |
1291 (sel5 & in5) |
1292 (sel6 & in6));
1293`endif
1294
1295endmodule
1296module cl_dp1lvt_aomux7_6x (
1297in0,
1298in1,
1299in2,
1300in3,
1301in4,
1302in5,
1303in6,
1304sel0,
1305sel1,
1306sel2,
1307sel3,
1308sel4,
1309sel5,
1310sel6,
1311out
1312);
1313input in0;
1314input in1;
1315input in2;
1316input in3;
1317input in4;
1318input in5;
1319input in6;
1320input sel0;
1321input sel1;
1322input sel2;
1323input sel3;
1324input sel4;
1325input sel5;
1326input sel6;
1327output out;
1328
1329`ifdef LIB
1330assign out = ((sel0 & in0) |
1331 (sel1 & in1) |
1332 (sel2 & in2) |
1333 (sel3 & in3) |
1334 (sel4 & in4) |
1335 (sel5 & in5) |
1336 (sel6 & in6));
1337`endif
1338
1339endmodule
1340module cl_dp1lvt_aomux7_8x (
1341in0,
1342in1,
1343in2,
1344in3,
1345in4,
1346in5,
1347in6,
1348sel0,
1349sel1,
1350sel2,
1351sel3,
1352sel4,
1353sel5,
1354sel6,
1355out
1356);
1357input in0;
1358input in1;
1359input in2;
1360input in3;
1361input in4;
1362input in5;
1363input in6;
1364input sel0;
1365input sel1;
1366input sel2;
1367input sel3;
1368input sel4;
1369input sel5;
1370input sel6;
1371output out;
1372
1373`ifdef LIB
1374assign out = ((sel0 & in0) |
1375 (sel1 & in1) |
1376 (sel2 & in2) |
1377 (sel3 & in3) |
1378 (sel4 & in4) |
1379 (sel5 & in5) |
1380 (sel6 & in6));
1381`endif
1382
1383endmodule
1384
1385module cl_dp1lvt_aomux8_1x (
1386in0,
1387in1,
1388in2,
1389in3,
1390in4,
1391in5,
1392in6,
1393in7,
1394sel0,
1395sel1,
1396sel2,
1397sel3,
1398sel4,
1399sel5,
1400sel6,
1401sel7,
1402out
1403);
1404input in0;
1405input in1;
1406input in2;
1407input in3;
1408input in4;
1409input in5;
1410input in6;
1411input in7;
1412input sel0;
1413input sel1;
1414input sel2;
1415input sel3;
1416input sel4;
1417input sel5;
1418input sel6;
1419input sel7;
1420output out;
1421
1422`ifdef LIB
1423assign out = ((sel0 & in0) |
1424 (sel1 & in1) |
1425 (sel2 & in2) |
1426 (sel3 & in3) |
1427 (sel4 & in4) |
1428 (sel5 & in5) |
1429 (sel6 & in6) |
1430 (sel7 & in7));
1431`endif
1432
1433
1434endmodule
1435module cl_dp1lvt_aomux8_2x (
1436in0,
1437in1,
1438in2,
1439in3,
1440in4,
1441in5,
1442in6,
1443in7,
1444sel0,
1445sel1,
1446sel2,
1447sel3,
1448sel4,
1449sel5,
1450sel6,
1451sel7,
1452out
1453);
1454input in0;
1455input in1;
1456input in2;
1457input in3;
1458input in4;
1459input in5;
1460input in6;
1461input in7;
1462input sel0;
1463input sel1;
1464input sel2;
1465input sel3;
1466input sel4;
1467input sel5;
1468input sel6;
1469input sel7;
1470output out;
1471
1472`ifdef LIB
1473assign out = ((sel0 & in0) |
1474 (sel1 & in1) |
1475 (sel2 & in2) |
1476 (sel3 & in3) |
1477 (sel4 & in4) |
1478 (sel5 & in5) |
1479 (sel6 & in6) |
1480 (sel7 & in7));
1481`endif
1482
1483
1484endmodule
1485module cl_dp1lvt_aomux8_4x (
1486in0,
1487in1,
1488in2,
1489in3,
1490in4,
1491in5,
1492in6,
1493in7,
1494sel0,
1495sel1,
1496sel2,
1497sel3,
1498sel4,
1499sel5,
1500sel6,
1501sel7,
1502out
1503);
1504input in0;
1505input in1;
1506input in2;
1507input in3;
1508input in4;
1509input in5;
1510input in6;
1511input in7;
1512input sel0;
1513input sel1;
1514input sel2;
1515input sel3;
1516input sel4;
1517input sel5;
1518input sel6;
1519input sel7;
1520output out;
1521
1522`ifdef LIB
1523assign out = ((sel0 & in0) |
1524 (sel1 & in1) |
1525 (sel2 & in2) |
1526 (sel3 & in3) |
1527 (sel4 & in4) |
1528 (sel5 & in5) |
1529 (sel6 & in6) |
1530 (sel7 & in7));
1531`endif
1532
1533
1534endmodule
1535module cl_dp1lvt_aomux8_6x (
1536in0,
1537in1,
1538in2,
1539in3,
1540in4,
1541in5,
1542in6,
1543in7,
1544sel0,
1545sel1,
1546sel2,
1547sel3,
1548sel4,
1549sel5,
1550sel6,
1551sel7,
1552out
1553);
1554input in0;
1555input in1;
1556input in2;
1557input in3;
1558input in4;
1559input in5;
1560input in6;
1561input in7;
1562input sel0;
1563input sel1;
1564input sel2;
1565input sel3;
1566input sel4;
1567input sel5;
1568input sel6;
1569input sel7;
1570output out;
1571
1572`ifdef LIB
1573assign out = ((sel0 & in0) |
1574 (sel1 & in1) |
1575 (sel2 & in2) |
1576 (sel3 & in3) |
1577 (sel4 & in4) |
1578 (sel5 & in5) |
1579 (sel6 & in6) |
1580 (sel7 & in7));
1581`endif
1582
1583
1584endmodule
1585module cl_dp1lvt_aomux8_8x (
1586in0,
1587in1,
1588in2,
1589in3,
1590in4,
1591in5,
1592in6,
1593in7,
1594sel0,
1595sel1,
1596sel2,
1597sel3,
1598sel4,
1599sel5,
1600sel6,
1601sel7,
1602out
1603);
1604input in0;
1605input in1;
1606input in2;
1607input in3;
1608input in4;
1609input in5;
1610input in6;
1611input in7;
1612input sel0;
1613input sel1;
1614input sel2;
1615input sel3;
1616input sel4;
1617input sel5;
1618input sel6;
1619input sel7;
1620output out;
1621
1622`ifdef LIB
1623assign out = ((sel0 & in0) |
1624 (sel1 & in1) |
1625 (sel2 & in2) |
1626 (sel3 & in3) |
1627 (sel4 & in4) |
1628 (sel5 & in5) |
1629 (sel6 & in6) |
1630 (sel7 & in7));
1631`endif
1632
1633
1634endmodule
1635module cl_dp1lvt_incr32_8x (
1636cin,
1637in0,
1638out,
1639cout
1640);
1641input cin;
1642input [31:0] in0;
1643output [31:0] out;
1644output cout;
1645
1646`ifdef LIB
1647 assign {cout, out[31:0]} = {1'b0, in0[31:0]} + {32'b0, cin};
1648`endif
1649
1650endmodule
1651module cl_dp1lvt_incr48_8x (
1652cin,
1653in0,
1654out,
1655cout
1656);
1657input cin;
1658input [47:0] in0;
1659output [47:0] out;
1660output cout;
1661
1662`ifdef LIB
1663 assign {cout, out[47:0]} = {1'b0, in0[47:0]} + {48'b0, cin};
1664`endif
1665
1666endmodule
1667module cl_dp1lvt_incr64_8x (
1668cin,
1669in0,
1670out,
1671cout
1672);
1673input cin;
1674input [63:0] in0;
1675output [63:0] out;
1676output cout;
1677
1678`ifdef LIB
1679 assign {cout, out[63:0]} = {1'b0, in0[63:0]} + {64'b0, cin};
1680`endif
1681
1682endmodule