source: XOpenSparcT1/trunk/T1-common/u1/u1.V @ 6

Revision 6, 49.2 KB checked in by pntsvt00, 13 years ago (diff)

versione iniziale opensparc

Line 
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T1 Processor File: u1.behV
4// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6//
7// The above named program is free software; you can redistribute it and/or
8// modify it under the terms of the GNU General Public
9// License version 2 as published by the Free Software Foundation.
10//
11// The above named program is distributed in the hope that it will be
12// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14// General Public License for more details.
15//
16// You should have received a copy of the GNU General Public
17// License along with this work; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19//
20// ========== Copyright Header End ============================================
21////////////////////////////////////////////////////////////////////////
22//
23// basic gates {
24//
25////////////////////////////////////////////////////////////////////////
26
27
28//bw_u1_inv_0p6x
29//
30//
31
32module bw_u1_inv_0p6x (
33    z,
34    a );
35
36    output z;
37    input  a;
38
39    assign z = ~( a );
40
41endmodule
42
43
44//bw_u1_inv_1x
45//
46//
47
48module bw_u1_inv_1x (
49    z,
50    a );
51
52    output z;
53    input  a;
54
55    assign z = ~( a );
56
57endmodule
58
59
60//bw_u1_inv_1p4x
61//
62//
63
64module bw_u1_inv_1p4x (
65    z,
66    a );
67
68    output z;
69    input  a;
70
71    assign z = ~( a );
72
73endmodule
74
75
76//bw_u1_inv_2x
77//
78//
79
80module bw_u1_inv_2x (
81    z,
82    a );
83
84    output z;
85    input  a;
86
87    assign z = ~( a );
88
89endmodule
90
91
92//bw_u1_inv_3x
93//
94//
95
96module bw_u1_inv_3x (
97    z,
98    a );
99
100    output z;
101    input  a;
102
103    assign z = ~( a );
104
105endmodule
106
107
108//bw_u1_inv_4x
109//
110//
111
112module bw_u1_inv_4x (
113    z,
114    a );
115
116    output z;
117    input  a;
118
119    assign z = ~( a );
120
121endmodule
122
123
124
125//bw_u1_inv_5x
126//
127//
128
129module bw_u1_inv_5x (
130    z,
131    a );
132
133    output z;
134    input  a;
135
136    assign z = ~( a );
137
138endmodule
139
140
141//bw_u1_inv_8x
142//
143//
144
145module bw_u1_inv_8x (
146    z,
147    a );
148
149    output z;
150    input  a;
151
152    assign z = ~( a );
153
154endmodule
155
156
157//bw_u1_inv_10x
158//
159//
160
161module bw_u1_inv_10x (
162    z,
163    a );
164
165    output z;
166    input  a;
167
168    assign z = ~( a );
169
170endmodule
171
172
173//bw_u1_inv_15x
174//
175//
176
177module bw_u1_inv_15x (
178    z,
179    a );
180
181    output z;
182    input  a;
183
184    assign z = ~( a );
185
186endmodule
187
188
189//bw_u1_inv_20x
190//
191//
192
193module bw_u1_inv_20x (
194    z,
195    a );
196
197    output z;
198    input  a;
199
200    assign z = ~( a );
201
202endmodule
203
204
205//bw_u1_inv_30x
206//
207//
208
209module bw_u1_inv_30x (
210    z,
211    a );
212
213    output z;
214    input  a;
215
216    assign z = ~( a );
217
218endmodule
219
220
221//bw_u1_inv_40x
222//
223//
224
225module bw_u1_inv_40x (
226    z,
227    a );
228
229    output z;
230    input  a;
231
232    assign z = ~( a );
233
234endmodule
235
236//bw_u1_invh_15x
237//
238//
239
240module bw_u1_invh_15x (
241    z,
242    a );
243
244    output z;
245    input  a;
246
247    assign z = ~( a );
248
249endmodule
250
251//bw_u1_invh_25x
252//
253//
254
255module bw_u1_invh_25x (
256    z,
257    a );
258
259    output z;
260    input  a;
261
262    assign z = ~( a );
263
264endmodule
265
266
267//bw_u1_invh_30x
268//
269//
270
271module bw_u1_invh_30x (
272    z,
273    a );
274
275    output z;
276    input  a;
277
278    assign z = ~( a );
279
280endmodule
281
282
283//bw_u1_invh_50x
284//
285//
286
287module bw_u1_invh_50x (
288    z,
289    a );
290
291    output z;
292    input  a;
293
294    assign z = ~( a );
295
296endmodule
297
298
299//bw_u1_invh_60x
300//
301//
302
303module bw_u1_invh_60x (
304    z,
305    a );
306
307    output z;
308    input  a;
309
310    assign z = ~( a );
311
312endmodule
313
314
315
316
317//bw_u1_nand2_0p4x
318//
319//
320module bw_u1_nand2_0p4x (
321    z,
322    a,
323    b );
324
325    output z;
326    input  a;
327    input  b;
328
329    assign z = ~( a & b );
330
331endmodule
332
333
334//bw_u1_nand2_0p6x
335//
336//
337module bw_u1_nand2_0p6x (
338    z,
339    a,
340    b );
341
342    output z;
343    input  a;
344    input  b;
345
346    assign z = ~( a & b );
347
348endmodule
349
350
351//bw_u1_nand2_1x
352//
353//
354module bw_u1_nand2_1x (
355    z,
356    a,
357    b );
358
359    output z;
360    input  a;
361    input  b;
362
363    assign z = ~( a & b );
364
365endmodule
366
367
368//bw_u1_nand2_1p4x
369//
370//
371module bw_u1_nand2_1p4x (
372    z,
373    a,
374    b );
375
376    output z;
377    input  a;
378    input  b;
379
380    assign z = ~( a & b );
381
382endmodule
383
384
385//bw_u1_nand2_2x
386//
387//
388module bw_u1_nand2_2x (
389    z,
390    a,
391    b );
392
393    output z;
394    input  a;
395    input  b;
396
397    assign z = ~( a & b );
398
399endmodule
400
401
402//bw_u1_nand2_3x
403//
404//
405module bw_u1_nand2_3x (
406    z,
407    a,
408    b );
409
410    output z;
411    input  a;
412    input  b;
413
414    assign z = ~( a & b );
415
416endmodule
417
418
419//bw_u1_nand2_4x
420//
421//
422module bw_u1_nand2_4x (
423    z,
424    a,
425    b );
426
427    output z;
428    input  a;
429    input  b;
430
431    assign z = ~( a & b );
432
433endmodule
434
435
436//bw_u1_nand2_5x
437//
438//
439module bw_u1_nand2_5x (
440    z,
441    a,
442    b );
443
444    output z;
445    input  a;
446    input  b;
447
448    assign z = ~( a & b );
449
450endmodule
451
452
453//bw_u1_nand2_7x
454//
455//
456module bw_u1_nand2_7x (
457    z,
458    a,
459    b );
460
461    output z;
462    input  a;
463    input  b;
464
465    assign z = ~( a & b );
466
467endmodule
468
469
470//bw_u1_nand2_10x
471//
472//
473module bw_u1_nand2_10x (
474    z,
475    a,
476    b );
477
478    output z;
479    input  a;
480    input  b;
481
482    assign z = ~( a & b );
483
484endmodule
485
486
487//bw_u1_nand2_15x
488//
489//
490module bw_u1_nand2_15x (
491    z,
492    a,
493    b );
494
495    output z;
496    input  a;
497    input  b;
498
499    assign z = ~( a & b );
500
501endmodule
502
503
504//bw_u1_nand3_0p4x
505//
506//
507module bw_u1_nand3_0p4x (
508    z,
509    a,
510    b,
511    c );
512
513    output z;
514    input  a;
515    input  b;
516    input  c;
517
518    assign z = ~( a & b & c );
519
520endmodule
521
522
523
524
525//bw_u1_nand3_0p6x
526//
527//
528module bw_u1_nand3_0p6x (
529    z,
530    a,
531    b,
532    c );
533
534    output z;
535    input  a;
536    input  b;
537    input  c;
538
539    assign z = ~( a & b & c );
540
541endmodule
542
543
544
545//bw_u1_nand3_1x
546
547//
548//
549module bw_u1_nand3_1x (
550    z,
551    a, 
552    b, 
553    c );
554   
555    output z;
556    input  a;
557    input  b;
558    input  c;
559   
560    assign z = ~( a & b & c );
561
562endmodule
563
564
565//bw_u1_nand3_1p4x
566
567//
568//
569module bw_u1_nand3_1p4x (
570    z,
571    a, 
572    b, 
573    c );
574   
575    output z;
576    input  a;
577    input  b;
578    input  c;
579   
580    assign z = ~( a & b & c );
581
582endmodule
583
584
585//bw_u1_nand3_2x
586
587//
588//
589module bw_u1_nand3_2x (
590    z,
591    a, 
592    b, 
593    c );
594   
595    output z;
596    input  a;
597    input  b;
598    input  c;
599   
600    assign z = ~( a & b & c );
601
602endmodule
603
604
605//bw_u1_nand3_3x
606
607//
608//
609module bw_u1_nand3_3x (
610    z,
611    a, 
612    b, 
613    c );
614   
615    output z;
616    input  a;
617    input  b;
618    input  c;
619   
620    assign z = ~( a & b & c );
621
622endmodule
623
624
625//bw_u1_nand3_4x
626
627//
628//
629module bw_u1_nand3_4x (
630    z,
631    a, 
632    b, 
633    c );
634   
635    output z;
636    input  a;
637    input  b;
638    input  c;
639   
640    assign z = ~( a & b & c );
641
642endmodule
643
644
645//bw_u1_nand3_5x
646
647//
648//
649module bw_u1_nand3_5x (
650    z,
651    a, 
652    b, 
653    c );
654   
655    output z;
656    input  a;
657    input  b;
658    input  c;
659   
660    assign z = ~( a & b & c );
661
662endmodule
663
664
665//bw_u1_nand3_7x
666
667//
668//
669module bw_u1_nand3_7x (
670    z,
671    a, 
672    b, 
673    c );
674   
675    output z;
676    input  a;
677    input  b;
678    input  c;
679   
680    assign z = ~( a & b & c );
681
682endmodule
683
684
685//bw_u1_nand3_10x
686
687//
688//
689module bw_u1_nand3_10x (
690    z,
691    a, 
692    b, 
693    c );
694   
695    output z;
696    input  a;
697    input  b;
698    input  c;
699   
700    assign z = ~( a & b & c );
701
702endmodule
703
704
705//bw_u1_nand4_0p6x
706
707//
708//
709module bw_u1_nand4_0p6x (
710    z,
711    a, 
712    b, 
713    c, 
714    d );
715   
716    output z;
717    input  a;
718    input  b;
719    input  c;
720    input  d;
721   
722    assign z = ~( a & b & c & d );
723
724endmodule
725
726
727//bw_u1_nand4_1x
728//
729//
730module bw_u1_nand4_1x (
731    z,
732    a,
733    b,
734    c,
735    d );
736
737    output z;
738    input  a;
739    input  b;
740    input  c;
741    input  d;
742
743    assign z = ~( a & b & c & d );
744
745endmodule
746
747
748//bw_u1_nand4_1p4x
749//
750//
751module bw_u1_nand4_1p4x (
752    z,
753    a,
754    b,
755    c,
756    d );
757
758    output z;
759    input  a;
760    input  b;
761    input  c;
762    input  d;
763
764    assign z = ~( a & b & c & d );
765
766endmodule
767
768
769//bw_u1_nand4_2x
770//
771//
772module bw_u1_nand4_2x (
773    z,
774    a,
775    b,
776    c,
777    d );
778
779    output z;
780    input  a;
781    input  b;
782    input  c;
783    input  d;
784
785    assign z = ~( a & b & c & d );
786
787endmodule
788
789
790//bw_u1_nand4_3x
791//
792//
793module bw_u1_nand4_3x (
794    z,
795    a,
796    b,
797    c,
798    d );
799
800    output z;
801    input  a;
802    input  b;
803    input  c;
804    input  d;
805
806    assign z = ~( a & b & c & d );
807
808endmodule
809
810
811//bw_u1_nand4_4x
812//
813//
814module bw_u1_nand4_4x (
815    z,
816    a,
817    b,
818    c,
819    d );
820
821    output z;
822    input  a;
823    input  b;
824    input  c;
825    input  d;
826
827    assign z = ~( a & b & c & d );
828
829endmodule
830
831
832//bw_u1_nand4_6x
833//
834//
835
836module bw_u1_nand4_6x (
837    z,
838    a,
839    b,
840    c,
841    d );
842
843    output z;
844    input  a;
845    input  b;
846    input  c;
847    input  d;
848
849
850    nand( z, a, b,c,d);
851
852endmodule
853
854//bw_u1_nand4_8x
855//
856//
857
858module bw_u1_nand4_8x (
859    z,
860    a,
861    b,
862    c,
863    d );
864
865    output z;
866    input  a;
867    input  b;
868    input  c;
869    input  d;
870
871
872    nand( z, a, b,c,d);
873
874endmodule
875
876//bw_u1_nor2_0p6x
877//
878//
879
880module bw_u1_nor2_0p6x (
881    z,
882    a,
883    b );
884
885    output z;
886    input  a;
887    input  b;
888
889    assign z = ~( a | b );
890
891endmodule
892
893
894//bw_u1_nor2_1x
895//
896//
897
898module bw_u1_nor2_1x (
899    z,
900    a,
901    b );
902
903    output z;
904    input  a;
905    input  b;
906
907    assign z = ~( a | b );
908
909endmodule
910
911
912//bw_u1_nor2_1p4x
913//
914//
915
916module bw_u1_nor2_1p4x (
917    z,
918    a,
919    b );
920
921    output z;
922    input  a;
923    input  b;
924
925    assign z = ~( a | b );
926
927endmodule
928
929
930//bw_u1_nor2_2x
931//
932//
933
934module bw_u1_nor2_2x (
935    z,
936    a,
937    b );
938
939    output z;
940    input  a;
941    input  b;
942
943    assign z = ~( a | b );
944
945endmodule
946
947
948//bw_u1_nor2_3x
949//
950//
951
952module bw_u1_nor2_3x (
953    z,
954    a,
955    b );
956
957    output z;
958    input  a;
959    input  b;
960
961    assign z = ~( a | b );
962
963endmodule
964
965
966//bw_u1_nor2_4x
967//
968//
969
970module bw_u1_nor2_4x (
971    z,
972    a,
973    b );
974
975    output z;
976    input  a;
977    input  b;
978
979    assign z = ~( a | b );
980
981endmodule
982
983
984//bw_u1_nor2_6x
985//
986//
987
988module bw_u1_nor2_6x (
989    z,
990    a,
991    b );
992
993    output z;
994    input  a;
995    input  b;
996
997    assign z = ~( a | b );
998
999endmodule
1000
1001
1002//bw_u1_nor2_8x
1003//
1004//
1005
1006module bw_u1_nor2_8x (
1007    z,
1008    a,
1009    b );
1010
1011    output z;
1012    input  a;
1013    input  b;
1014
1015    assign z = ~( a | b );
1016
1017endmodule
1018
1019
1020//bw_u1_nor2_12x
1021//
1022//
1023
1024module bw_u1_nor2_12x (
1025    z,
1026    a,
1027    b );
1028
1029    output z;
1030    input  a;
1031    input  b;
1032
1033    assign z = ~( a | b );
1034
1035endmodule
1036
1037
1038
1039
1040//bw_u1_nor3_0p6x
1041//
1042//
1043
1044module bw_u1_nor3_0p6x (
1045    z,
1046    a,
1047    b,
1048    c );
1049
1050    output z;
1051    input  a;
1052    input  b;
1053    input  c;
1054
1055    assign z = ~( a | b | c );
1056
1057endmodule
1058
1059
1060//bw_u1_nor3_1x
1061//
1062//
1063
1064module bw_u1_nor3_1x (
1065    z,
1066    a,
1067    b,
1068    c );
1069
1070    output z;
1071    input  a;
1072    input  b;
1073    input  c;
1074
1075    assign z = ~( a | b | c );
1076
1077endmodule
1078
1079
1080//bw_u1_nor3_1p4x
1081//
1082//
1083
1084module bw_u1_nor3_1p4x (
1085    z,
1086    a,
1087    b,
1088    c );
1089
1090    output z;
1091    input  a;
1092    input  b;
1093    input  c;
1094
1095    assign z = ~( a | b | c );
1096
1097endmodule
1098
1099
1100//bw_u1_nor3_2x
1101//
1102//
1103
1104module bw_u1_nor3_2x (
1105    z,
1106    a,
1107    b,
1108    c );
1109
1110    output z;
1111    input  a;
1112    input  b;
1113    input  c;
1114
1115    assign z = ~( a | b | c );
1116
1117endmodule
1118
1119
1120//bw_u1_nor3_3x
1121//
1122//
1123
1124module bw_u1_nor3_3x (
1125    z,
1126    a,
1127    b,
1128    c );
1129
1130    output z;
1131    input  a;
1132    input  b;
1133    input  c;
1134
1135    assign z = ~( a | b | c );
1136
1137endmodule
1138
1139
1140//bw_u1_nor3_4x
1141//
1142//
1143
1144module bw_u1_nor3_4x (
1145    z,
1146    a,
1147    b,
1148    c );
1149
1150    output z;
1151    input  a;
1152    input  b;
1153    input  c;
1154
1155    assign z = ~( a | b | c );
1156
1157endmodule
1158
1159
1160//bw_u1_nor3_6x
1161//
1162//
1163
1164module bw_u1_nor3_6x (
1165    z,
1166    a,
1167    b,
1168    c );
1169
1170    output z;
1171    input  a;
1172    input  b;
1173    input  c;
1174
1175    assign z = ~( a | b | c );
1176
1177endmodule
1178
1179
1180//bw_u1_nor3_8x
1181//
1182//
1183
1184module bw_u1_nor3_8x (
1185    z,
1186    a,
1187    b,
1188    c );
1189
1190    output z;
1191    input  a;
1192    input  b;
1193    input  c;
1194
1195    assign z = ~( a | b | c );
1196
1197endmodule
1198
1199
1200//bw_u1_aoi21_0p4x
1201//
1202//
1203module bw_u1_aoi21_0p4x (
1204    z,
1205    b1,
1206    b2,
1207    a );
1208
1209    output z;
1210    input  b1;
1211    input  b2;
1212    input  a;
1213
1214    assign z = ~(( b1 & b2 ) | ( a ));
1215
1216endmodule
1217//bw_u1_aoi21_1x
1218//
1219//
1220module bw_u1_aoi21_1x (
1221
1222    z,
1223    b1,
1224    b2,
1225    a );
1226
1227    output z;
1228    input  b1;
1229    input  b2;
1230    input  a;
1231
1232    assign z = ~(( b1 & b2 ) | ( a  ));
1233
1234endmodule
1235//bw_u1_aoi21_2x
1236//
1237//
1238module bw_u1_aoi21_2x (
1239    z,
1240    b1,
1241    b2,
1242    a );
1243
1244    output z;
1245    input  b1;
1246    input  b2;
1247    input  a;
1248
1249    assign z = ~(( b1 & b2 ) | ( a ));
1250
1251endmodule
1252//bw_u1_aoi21_4x
1253//
1254//
1255module bw_u1_aoi21_4x (
1256    z,
1257    b1,
1258    b2,
1259    a );
1260
1261    output z;
1262    input  b1;
1263    input  b2;
1264    input  a;
1265
1266    assign z = ~(( b1 & b2 ) | ( a ));
1267
1268endmodule
1269//bw_u1_aoi21_8x
1270//
1271//
1272module bw_u1_aoi21_8x (
1273    z,
1274    b1,
1275    b2,
1276    a );
1277
1278    output z;
1279    input  b1;
1280    input  b2;
1281    input  a;
1282
1283    assign z = ~(( b1 & b2 ) | ( a ));
1284
1285endmodule
1286//bw_u1_aoi21_12x
1287//
1288//
1289module bw_u1_aoi21_12x (
1290    z,
1291    b1,
1292    b2,
1293    a );
1294
1295    output z;
1296    input  b1;
1297    input  b2;
1298    input  a;
1299
1300    assign z = ~(( b1 & b2 ) | ( a ));
1301
1302endmodule
1303//bw_u1_aoi22_0p4x
1304//
1305//
1306module bw_u1_aoi22_0p4x (
1307    z,
1308    a1,
1309    a2,
1310    b1,
1311    b2 );
1312
1313    output z;
1314    input  a1;
1315    input  a2;
1316    input  b1;
1317    input  b2;
1318
1319    assign z = ~(( a1 & a2 ) | ( b1 & b2 ));
1320
1321endmodule
1322//bw_u1_aoi22_1x
1323//
1324//
1325module bw_u1_aoi22_1x (
1326    z,
1327    b1,
1328    b2,
1329    a1,
1330    a2 );
1331
1332    output z;
1333    input  b1;
1334    input  b2;
1335    input  a1;
1336    input  a2;
1337
1338
1339    assign z = ~(( a1 & a2 ) | ( b1 & b2 ));
1340
1341endmodule
1342//bw_u1_aoi22_2x
1343//
1344//
1345module bw_u1_aoi22_2x (
1346
1347
1348    z,
1349    b1,
1350    b2,
1351    a1,
1352    a2 );
1353
1354    output z;
1355    input  b1;
1356    input  b2;
1357    input  a1;
1358    input  a2;
1359 
1360    assign z = ~(( a1 & a2 ) | ( b1 & b2 ));
1361
1362endmodule
1363//bw_u1_aoi22_4x
1364//
1365//
1366module bw_u1_aoi22_4x (
1367
1368    z,
1369    b1,
1370    b2,
1371    a1,
1372    a2 );
1373
1374    output z;
1375    input  b1;
1376    input  b2;
1377    input  a1;
1378    input  a2;
1379
1380    assign z = ~(( a1 & a2 ) | ( b1 & b2 ));
1381
1382endmodule
1383//bw_u1_aoi22_8x
1384//
1385//
1386module bw_u1_aoi22_8x (
1387
1388    z,
1389    b1,
1390    b2,
1391    a1,
1392    a2 );
1393
1394    output z;
1395    input  b1;
1396    input  b2;
1397    input  a1;
1398    input  a2;
1399
1400    assign z = ~(( a1 & a2 ) | ( b1 & b2 ));
1401
1402endmodule
1403//bw_u1_aoi211_0p3x
1404//
1405//
1406module bw_u1_aoi211_0p3x (
1407
1408    z,
1409    c1,
1410    c2,
1411    b,
1412    a );
1413
1414    output z;
1415    input  c1;
1416    input  c2;
1417    input  b;
1418    input  a;
1419
1420    assign z = ~(( c1 & c2 ) | (a)| (b));
1421
1422endmodule
1423
1424//bw_u1_aoi211_1x
1425//
1426//
1427module bw_u1_aoi211_1x (
1428
1429    z,
1430    c1,
1431    c2,
1432    b,
1433    a );
1434
1435    output z;
1436    input  c1;
1437    input  c2;
1438    input  b;
1439    input  a;
1440
1441    assign z = ~(( c1 & c2 ) | (a)| (b));
1442
1443endmodule
1444
1445//bw_u1_aoi211_2x
1446//
1447//
1448module bw_u1_aoi211_2x (
1449
1450
1451
1452    z,
1453    c1,
1454    c2,
1455    b,
1456    a );
1457
1458    output z;
1459    input  c1;
1460    input  c2;
1461    input  b;
1462    input  a;
1463 
1464
1465    assign z = ~(( c1 & c2 ) | (a)| (b));
1466
1467endmodule
1468
1469//bw_u1_aoi211_4x
1470//
1471//
1472module bw_u1_aoi211_4x (
1473
1474
1475    z,
1476    c1,
1477    c2,
1478    b,
1479    a );
1480
1481    output z;
1482    input  c1;
1483    input  c2;
1484    input  b;
1485    input  a;
1486 
1487
1488
1489    assign z = ~(( c1 & c2 ) | (a)| (b));
1490
1491endmodule
1492
1493//bw_u1_aoi211_8x
1494//
1495//
1496module bw_u1_aoi211_8x (
1497
1498
1499    z,
1500    c1,
1501    c2,
1502    b,
1503    a );
1504
1505    output z;
1506    input  c1;
1507    input  c2;
1508    input  b;
1509    input  a;
1510 
1511
1512
1513    assign z = ~(( c1 & c2 ) | (a)| (b));
1514
1515endmodule
1516
1517//bw_u1_oai21_0p4x
1518//
1519//
1520module bw_u1_oai21_0p4x (
1521    z,
1522    b1,
1523    b2,
1524    a );
1525
1526    output z;
1527    input  b1;
1528    input  b2;
1529    input  a;
1530
1531    assign z = ~(( b1 | b2 ) & ( a ));
1532
1533endmodule
1534
1535
1536
1537//bw_u1_oai21_1x
1538//
1539//
1540module bw_u1_oai21_1x (
1541    z,
1542    b1,
1543    b2,
1544    a );
1545
1546    output z;
1547    input  b1;
1548    input  b2;
1549    input  a;
1550
1551    assign z = ~(( b1 | b2 ) & ( a ));
1552
1553endmodule
1554
1555
1556
1557//bw_u1_oai21_2x
1558//
1559//
1560module bw_u1_oai21_2x (
1561    z,
1562    b1,
1563    b2,
1564    a );
1565
1566    output z;
1567    input  b1;
1568    input  b2;
1569    input  a;
1570
1571    assign z = ~(( b1 | b2 ) & ( a ));
1572
1573endmodule
1574
1575
1576
1577//bw_u1_oai21_4x
1578//
1579//
1580module bw_u1_oai21_4x (
1581    z,
1582    b1,
1583    b2,
1584    a );
1585
1586    output z;
1587    input  b1;
1588    input  b2;
1589    input  a;
1590
1591    assign z = ~(( b1 | b2 ) & ( a ));
1592
1593endmodule
1594
1595
1596
1597//bw_u1_oai21_8x
1598//
1599//
1600module bw_u1_oai21_8x (
1601    z,
1602    b1,
1603    b2,
1604    a );
1605
1606    output z;
1607    input  b1;
1608    input  b2;
1609    input  a;
1610
1611    assign z = ~(( b1 | b2 ) & ( a ));
1612
1613endmodule
1614
1615
1616
1617//bw_u1_oai21_12x
1618//
1619//
1620module bw_u1_oai21_12x (
1621    z,
1622    b1,
1623    b2,
1624    a );
1625
1626    output z;
1627    input  b1;
1628    input  b2;
1629    input  a;
1630
1631    assign z = ~(( b1 | b2 ) & ( a ));
1632
1633endmodule
1634
1635
1636
1637//bw_u1_oai22_0p4x
1638//
1639module bw_u1_oai22_0p4x (
1640    z,
1641    a1,
1642    a2,
1643    b1,
1644    b2 );
1645
1646    output z;
1647    input  a1;
1648    input  a2;
1649    input  b1;
1650    input  b2;
1651
1652    assign z = ~(( a1 | a2 ) & ( b1 | b2 ));
1653
1654endmodule
1655
1656//bw_u1_oai22_1x
1657//
1658module bw_u1_oai22_1x (
1659    z,
1660    a1,
1661    a2,
1662    b1,
1663    b2 );
1664
1665    output z;
1666    input  a1;
1667    input  a2;
1668    input  b1;
1669    input  b2;
1670
1671    assign z = ~(( a1 | a2 ) & ( b1 | b2 ));
1672
1673endmodule
1674
1675//bw_u1_oai22_2x
1676//
1677module bw_u1_oai22_2x (
1678    z,
1679    a1,
1680    a2,
1681    b1,
1682    b2 );
1683
1684    output z;
1685    input  a1;
1686    input  a2;
1687    input  b1;
1688    input  b2;
1689
1690    assign z = ~(( a1 | a2 ) & ( b1 | b2 ));
1691
1692endmodule
1693
1694//bw_u1_oai22_4x
1695//
1696module bw_u1_oai22_4x (
1697    z,
1698    a1,
1699    a2,
1700    b1,
1701    b2 );
1702
1703    output z;
1704    input  a1;
1705    input  a2;
1706    input  b1;
1707    input  b2;
1708
1709    assign z = ~(( a1 | a2 ) & ( b1 | b2 ));
1710
1711endmodule
1712
1713//bw_u1_oai22_8x
1714//
1715module bw_u1_oai22_8x (
1716    z,
1717    a1,
1718    a2,
1719    b1,
1720    b2 );
1721
1722    output z;
1723    input  a1;
1724    input  a2;
1725    input  b1;
1726    input  b2;
1727
1728    assign z = ~(( a1 | a2 ) & ( b1 | b2 ));
1729
1730endmodule
1731
1732//bw_u1_oai211_0p3x
1733//
1734//
1735module bw_u1_oai211_0p3x (
1736    z,
1737    c1,
1738    c2,
1739    b,
1740    a );
1741
1742    output z;
1743    input  c1;
1744    input  c2;
1745    input  b;
1746    input  a;
1747
1748    assign z = ~(( c1 | c2 ) & ( a ) & (b));
1749
1750endmodule
1751
1752//bw_u1_oai211_1x
1753//
1754//
1755module bw_u1_oai211_1x (
1756    z,
1757    c1,
1758    c2,
1759    b,
1760    a );
1761
1762    output z;
1763    input  c1;
1764    input  c2;
1765    input  b;
1766    input  a;
1767
1768    assign z = ~(( c1 | c2 ) & ( a ) & (b));
1769
1770endmodule
1771
1772//bw_u1_oai211_2x
1773//
1774//
1775module bw_u1_oai211_2x (
1776    z,
1777    c1,
1778    c2,
1779    b,
1780    a );
1781
1782    output z;
1783    input  c1;
1784    input  c2;
1785    input  b;
1786    input  a;
1787
1788    assign z = ~(( c1 | c2 ) & ( a ) & (b));
1789
1790endmodule
1791
1792//bw_u1_oai211_4x
1793//
1794//
1795module bw_u1_oai211_4x (
1796    z,
1797    c1,
1798    c2,
1799    b,
1800    a );
1801
1802    output z;
1803    input  c1;
1804    input  c2;
1805    input  b;
1806    input  a;
1807
1808    assign z = ~(( c1 | c2 ) & ( a ) & (b));
1809
1810endmodule
1811
1812//bw_u1_oai211_8x
1813//
1814//
1815module bw_u1_oai211_8x (
1816    z,
1817    c1,
1818    c2,
1819    b,
1820    a );
1821
1822    output z;
1823    input  c1;
1824    input  c2;
1825    input  b;
1826    input  a;
1827
1828    assign z = ~(( c1 | c2 ) & ( a ) & (b));
1829
1830endmodule
1831
1832//bw_u1_aoi31_1x
1833//
1834//
1835module bw_u1_aoi31_1x (
1836
1837
1838    z,
1839    b1,
1840    b2,
1841    b3,
1842    a );
1843
1844    output z;
1845    input  b1;
1846    input  b2;
1847    input  b3;
1848    input  a;
1849
1850    assign z = ~(( b1 & b2&b3 ) | ( a ));
1851
1852endmodule
1853//bw_u1_aoi31_2x
1854//
1855//
1856module bw_u1_aoi31_2x (
1857
1858    z,
1859    b1,
1860    b2,
1861    b3,
1862    a );
1863   
1864    output z;
1865    input  b1;
1866    input  b2;
1867    input  b3;
1868    input  a;
1869
1870    assign z = ~(( b1 & b2&b3 ) | ( a ));
1871
1872endmodule
1873//bw_u1_aoi31_4x
1874//
1875//
1876module bw_u1_aoi31_4x (
1877    z,
1878    b1,
1879    b2,
1880    b3,
1881    a );
1882   
1883    output z;
1884    input  b1;
1885    input  b2;
1886    input  b3;
1887    input  a;
1888
1889    assign z = ~(( b1 & b2&b3 ) | ( a ));
1890
1891endmodule
1892//bw_u1_aoi31_8x
1893//
1894//
1895module bw_u1_aoi31_8x (
1896
1897    z,
1898    b1,
1899    b2,
1900    b3,
1901    a );
1902   
1903    output z;
1904    input  b1;
1905    input  b2;
1906    input  b3;
1907    input  a;
1908
1909    assign z = ~(( b1 & b2&b3 ) | ( a ));
1910
1911endmodule
1912//bw_u1_aoi32_1x
1913//
1914//
1915module bw_u1_aoi32_1x (
1916    z,
1917    b1,
1918    b2,
1919    b3,
1920    a1,
1921    a2 );
1922
1923    output z;
1924    input  b1;
1925    input  b2;
1926    input  b3;
1927    input  a1;
1928    input  a2;
1929
1930    assign z = ~(( b1 & b2&b3 ) | ( a1 & a2 ));
1931
1932endmodule
1933
1934//bw_u1_aoi32_2x
1935//
1936//
1937module bw_u1_aoi32_2x (
1938    z,
1939    b1,
1940    b2,
1941    b3,
1942    a1,
1943    a2 );
1944
1945    output z;
1946    input  b1;
1947    input  b2;
1948    input  b3;
1949    input  a1;
1950    input  a2;
1951
1952 
1953
1954    assign z = ~(( b1 & b2&b3 ) | ( a1 & a2 ));
1955
1956endmodule
1957
1958//bw_u1_aoi32_4x
1959//
1960//
1961module bw_u1_aoi32_4x (
1962
1963    z,
1964    b1,
1965    b2,
1966    b3,
1967    a1,
1968    a2 );
1969
1970    output z;
1971    input  b1;
1972    input  b2;
1973    input  b3;
1974    input  a1;
1975    input  a2;
1976
1977 
1978
1979    assign z = ~(( b1 & b2&b3 ) | ( a1 & a2 ));
1980
1981endmodule
1982
1983//bw_u1_aoi32_8x
1984//
1985//
1986module bw_u1_aoi32_8x (
1987
1988    z,
1989    b1,
1990    b2,
1991    b3,
1992    a1,
1993    a2 );
1994
1995    output z;
1996    input  b1;
1997    input  b2;
1998    input  b3;
1999    input  a1;
2000    input  a2;
2001
2002 
2003    assign z = ~(( b1 & b2&b3 ) | ( a1 & a2 ));
2004
2005endmodule
2006
2007//bw_u1_aoi33_1x
2008//
2009//
2010module bw_u1_aoi33_1x (
2011
2012
2013
2014
2015    z,
2016    b1,
2017    b2,
2018    b3,
2019    a1,
2020    a2,
2021    a3 );
2022
2023    output z;
2024    input  b1;
2025    input  b2;
2026    input  b3;
2027    input  a1;
2028    input  a2;
2029    input  a3;
2030
2031    assign z = ~(( b1 & b2&b3 ) | ( a1&a2&a3 ));
2032
2033endmodule
2034
2035
2036//bw_u1_aoi33_2x
2037//
2038//
2039module bw_u1_aoi33_2x (
2040
2041       
2042    z,
2043    b1,
2044    b2, 
2045    b3, 
2046    a1, 
2047    a2, 
2048    a3 );
2049   
2050    output z;
2051    input  b1;
2052    input  b2;
2053    input  b3;
2054    input  a1;
2055    input  a2;
2056    input  a3;
2057   
2058
2059    assign z = ~(( b1 & b2&b3 ) | ( a1&a2&a3 ));
2060
2061endmodule
2062
2063
2064//bw_u1_aoi33_4x
2065//
2066//
2067module bw_u1_aoi33_4x (
2068
2069       
2070    z,
2071    b1,
2072    b2, 
2073    b3, 
2074    a1, 
2075    a2, 
2076    a3 );
2077   
2078    output z;
2079    input  b1;
2080    input  b2;
2081    input  b3;
2082    input  a1;
2083    input  a2;
2084    input  a3;
2085   
2086
2087
2088    assign z = ~(( b1 & b2&b3 ) | ( a1&a2&a3 ));
2089
2090endmodule
2091
2092
2093//bw_u1_aoi33_8x
2094//
2095//
2096module bw_u1_aoi33_8x (
2097       
2098    z,
2099    b1,
2100    b2, 
2101    b3, 
2102    a1, 
2103    a2, 
2104    a3 );
2105   
2106    output z;
2107    input  b1;
2108    input  b2;
2109    input  b3;
2110    input  a1;
2111    input  a2;
2112    input  a3;
2113   
2114
2115
2116    assign z = ~(( b1 & b2&b3 ) | ( a1&a2&a3 ));
2117
2118endmodule
2119
2120
2121//bw_u1_aoi221_1x
2122//
2123//
2124module bw_u1_aoi221_1x (
2125
2126    z,
2127    c1,
2128    c2,
2129    b1,
2130    b2,
2131    a );
2132
2133    output z;
2134    input  c1;
2135    input  c2;
2136    input  b1;
2137    input  b2;
2138    input  a;
2139
2140    assign z = ~(( c1 & c2 ) | (b1&b2)| (a));
2141
2142endmodule
2143
2144
2145//bw_u1_aoi221_2x
2146//
2147//
2148module bw_u1_aoi221_2x (
2149
2150    z,
2151    c1,
2152    c2,
2153    b1,
2154    b2,
2155    a );
2156
2157    output z;
2158    input  c1;
2159    input  c2;
2160    input  b1;
2161    input  b2;
2162    input  a;
2163
2164
2165    assign z = ~(( c1 & c2 ) | (b1&b2)| (a));
2166
2167endmodule
2168
2169
2170//bw_u1_aoi221_4x
2171//
2172//
2173module bw_u1_aoi221_4x (
2174
2175
2176
2177    z,
2178    c1,
2179    c2,
2180    b1,
2181    b2,
2182    a );
2183
2184    output z;
2185    input  c1;
2186    input  c2;
2187    input  b1;
2188    input  b2;
2189    input  a;
2190
2191
2192    assign z = ~(( c1 & c2 ) | (b1&b2)| (a));
2193
2194endmodule
2195
2196
2197//bw_u1_aoi221_8x
2198//
2199//
2200module bw_u1_aoi221_8x (
2201    z,
2202    c1,
2203    c2,
2204    b1,
2205    b2,
2206    a );
2207
2208    output z;
2209    input  c1;
2210    input  c2;
2211    input  b1;
2212    input  b2;
2213    input  a;
2214
2215
2216    assign z = ~(( c1 & c2 ) | (b1&b2)| (a));
2217
2218endmodule
2219
2220
2221//bw_u1_aoi222_1x
2222//
2223//
2224module bw_u1_aoi222_1x (
2225
2226    z,
2227    a1,
2228    a2,
2229    b1,
2230    b2,
2231    c1,
2232    c2 );
2233
2234    output z;
2235    input  a1;
2236    input  a2;
2237    input  b1;
2238    input  b2;
2239    input  c1;
2240    input  c2;
2241
2242    assign z = ~(( c1 & c2 ) | (b1&b2)| (a1& a2));
2243
2244endmodule
2245
2246//bw_u1_aoi222_2x
2247//
2248//
2249module bw_u1_aoi222_2x (
2250
2251    z,
2252    a1,
2253    a2,
2254    b1,
2255    b2,
2256    c1,
2257    c2 );
2258
2259    output z;
2260    input  a1;
2261    input  a2;
2262    input  b1;
2263    input  b2;
2264    input  c1;
2265    input  c2;
2266
2267    assign z = ~(( c1 & c2 ) | (b1&b2)| (a1& a2));
2268
2269endmodule
2270
2271
2272//bw_u1_aoi222_4x
2273//
2274//
2275module bw_u1_aoi222_4x (
2276
2277    z,
2278    a1,
2279    a2,
2280    b1,
2281    b2,
2282    c1,
2283    c2 );
2284
2285    output z;
2286    input  a1;
2287    input  a2;
2288    input  b1;
2289    input  b2;
2290    input  c1;
2291    input  c2;
2292
2293    assign z = ~(( c1 & c2 ) | (b1&b2)| (a1& a2));
2294
2295endmodule
2296
2297
2298//bw_u1_aoi311_1x
2299//
2300//
2301module bw_u1_aoi311_1x (
2302
2303    z,
2304    c1,
2305    c2,
2306    c3,
2307    b,
2308    a );
2309
2310    output z;
2311    input  c1;
2312    input  c2;
2313    input  c3;
2314    input  b;
2315    input  a;
2316
2317    assign z = ~(( c1 & c2& c3 ) | (a)| (b));
2318
2319endmodule
2320
2321
2322
2323
2324//bw_u1_aoi311_2x
2325//
2326//
2327module bw_u1_aoi311_2x (
2328    z,
2329    c1,
2330    c2,
2331    c3,
2332    b,
2333    a );
2334
2335    output z;
2336    input  c1;
2337    input  c2;
2338    input  c3;
2339    input  b;
2340    input  a;
2341
2342    assign z = ~(( c1 & c2& c3 ) | (a)| (b));
2343
2344endmodule
2345
2346
2347
2348
2349//bw_u1_aoi311_4x
2350//
2351//
2352module bw_u1_aoi311_4x (
2353    z,
2354    c1,
2355    c2,
2356    c3,
2357    b,
2358    a );
2359
2360    output z;
2361    input  c1;
2362    input  c2;
2363    input  c3;
2364    input  b;
2365    input  a;
2366
2367
2368    assign z = ~(( c1 & c2& c3 ) | (a)| (b));
2369
2370endmodule
2371
2372
2373
2374
2375//bw_u1_aoi311_8x
2376//
2377//
2378module bw_u1_aoi311_8x (
2379    z,
2380    c1,
2381    c2,
2382    c3,
2383    b,
2384    a );
2385
2386    output z;
2387    input  c1;
2388    input  c2;
2389    input  c3;
2390    input  b;
2391    input  a;
2392
2393    assign z = ~(( c1 & c2& c3 ) | (a)| (b));
2394
2395endmodule
2396
2397
2398
2399
2400//bw_u1_oai31_1x
2401//
2402//
2403module bw_u1_oai31_1x (
2404    z,
2405    b1,
2406    b2,
2407    b3,
2408    a );
2409
2410    output z;
2411    input  b1;
2412    input  b2;
2413    input  b3;
2414    input  a;
2415
2416    assign z = ~(( b1 | b2|b3 ) & ( a ));
2417
2418endmodule
2419
2420
2421
2422
2423//bw_u1_oai31_2x
2424//
2425//
2426module bw_u1_oai31_2x (
2427    z,
2428    b1,
2429    b2,
2430    b3,
2431    a );
2432
2433    output z;
2434    input  b1;
2435    input  b2;
2436    input  b3;
2437    input  a;
2438
2439    assign z = ~(( b1 | b2|b3 ) & ( a ));
2440
2441endmodule
2442
2443
2444
2445
2446//bw_u1_oai31_4x
2447//
2448//
2449module bw_u1_oai31_4x (
2450    z,
2451    b1,
2452    b2,
2453    b3,
2454    a );
2455
2456    output z;
2457    input  b1;
2458    input  b2;
2459    input  b3;
2460    input  a;
2461
2462    assign z = ~(( b1 | b2|b3 ) & ( a ));
2463
2464endmodule
2465
2466
2467
2468
2469//bw_u1_oai31_8x
2470//
2471//
2472module bw_u1_oai31_8x (
2473    z,
2474    b1,
2475    b2,
2476    b3,
2477    a );
2478
2479    output z;
2480    input  b1;
2481    input  b2;
2482    input  b3;
2483    input  a;
2484
2485    assign z = ~(( b1 | b2|b3 ) & ( a ));
2486
2487endmodule
2488
2489
2490
2491
2492//bw_u1_oai32_1x
2493//
2494//
2495module bw_u1_oai32_1x (
2496    z,
2497    b1,
2498    b2,
2499    b3,
2500    a1,
2501    a2 );
2502
2503    output z;
2504    input  b1;
2505    input  b2;
2506    input  b3;
2507    input  a1;
2508    input  a2;
2509
2510    assign z = ~(( b1 | b2 | b3 ) & ( a1 | a2 ));
2511
2512endmodule
2513
2514
2515
2516//bw_u1_oai32_2x
2517//
2518//
2519module bw_u1_oai32_2x (
2520    z,
2521    b1,
2522    b2,
2523    b3,
2524    a1,
2525    a2 );
2526
2527    output z;
2528    input  b1;
2529    input  b2;
2530    input  b3;
2531    input  a1;
2532    input  a2;
2533
2534    assign z = ~(( b1 | b2 | b3 ) & ( a1 | a2 ));
2535
2536endmodule
2537
2538
2539
2540//bw_u1_oai32_4x
2541//
2542//
2543module bw_u1_oai32_4x (
2544    z,
2545    b1,
2546    b2,
2547    b3,
2548    a1,
2549    a2 );
2550
2551    output z;
2552    input  b1;
2553    input  b2;
2554    input  b3;
2555    input  a1;
2556    input  a2;
2557
2558    assign z = ~(( b1 | b2 | b3 ) & ( a1 | a2 ));
2559
2560endmodule
2561
2562
2563
2564//bw_u1_oai32_8x
2565//
2566//
2567module bw_u1_oai32_8x (
2568    z,
2569    b1,
2570    b2,
2571    b3,
2572    a1,
2573    a2 );
2574
2575    output z;
2576    input  b1;
2577    input  b2;
2578    input  b3;
2579    input  a1;
2580    input  a2;
2581
2582    assign z = ~(( b1 | b2 | b3 ) & ( a1 | a2 ));
2583
2584endmodule
2585
2586
2587
2588//bw_u1_oai33_1x
2589//
2590//
2591module bw_u1_oai33_1x (
2592    z,
2593    b1,
2594    b2,
2595    b3,
2596    a1,
2597    a2,
2598    a3 );
2599
2600    output z;
2601    input  b1;
2602    input  b2;
2603    input  b3;
2604    input  a1;
2605    input  a2;
2606    input  a3;
2607
2608    assign z = ~(( b1 | b2|b3 ) & ( a1|a2|a3 ));
2609
2610endmodule
2611
2612
2613//bw_u1_oai33_2x
2614//
2615//
2616module bw_u1_oai33_2x (
2617    z,
2618    b1,
2619    b2,
2620    b3,
2621    a1,
2622    a2,
2623    a3 );
2624
2625    output z;
2626    input  b1;
2627    input  b2;
2628    input  b3;
2629    input  a1;
2630    input  a2;
2631    input  a3;
2632
2633    assign z = ~(( b1 | b2|b3 ) & ( a1|a2|a3 ));
2634
2635endmodule
2636
2637
2638//bw_u1_oai33_4x
2639//
2640//
2641module bw_u1_oai33_4x (
2642    z,
2643    b1,
2644    b2,
2645    b3,
2646    a1,
2647    a2,
2648    a3 );
2649
2650    output z;
2651    input  b1;
2652    input  b2;
2653    input  b3;
2654    input  a1;
2655    input  a2;
2656    input  a3;
2657
2658    assign z = ~(( b1 | b2|b3 ) & ( a1|a2|a3 ));
2659
2660endmodule
2661
2662
2663//bw_u1_oai33_8x
2664//
2665//
2666module bw_u1_oai33_8x (
2667    z,
2668    b1,
2669    b2,
2670    b3,
2671    a1,
2672    a2,
2673    a3 );
2674
2675    output z;
2676    input  b1;
2677    input  b2;
2678    input  b3;
2679    input  a1;
2680    input  a2;
2681    input  a3;
2682
2683    assign z = ~(( b1 | b2|b3 ) & ( a1|a2|a3 ));
2684
2685endmodule
2686
2687
2688//bw_u1_oai221_1x
2689//
2690//
2691module bw_u1_oai221_1x (
2692    z,
2693    c1,
2694    c2,
2695    b1,
2696    b2,
2697    a );
2698
2699    output z;
2700    input  c1;
2701    input  c2;
2702    input  b1;
2703    input  b2;
2704    input  a;
2705
2706    assign z = ~(( c1 | c2 ) & ( a ) & (b1|b2));
2707
2708endmodule
2709
2710//bw_u1_oai221_2x
2711//
2712//
2713module bw_u1_oai221_2x (
2714    z,
2715    c1,
2716    c2,
2717    b1,
2718    b2,
2719    a );
2720
2721    output z;
2722    input  c1;
2723    input  c2;
2724    input  b1;
2725    input  b2;
2726    input  a;
2727
2728    assign z = ~(( c1 | c2 ) & ( a ) & (b1|b2));
2729
2730endmodule
2731
2732//bw_u1_oai221_4x
2733//
2734//
2735module bw_u1_oai221_4x (
2736    z,
2737    c1,
2738    c2,
2739    b1,
2740    b2,
2741    a );
2742
2743    output z;
2744    input  c1;
2745    input  c2;
2746    input  b1;
2747    input  b2;
2748    input  a;
2749
2750    assign z = ~(( c1 | c2 ) & ( a ) & (b1|b2));
2751
2752endmodule
2753
2754//bw_u1_oai221_8x
2755//
2756//
2757module bw_u1_oai221_8x (
2758    z,
2759    c1,
2760    c2,
2761    b1,
2762    b2,
2763    a );
2764
2765    output z;
2766    input  c1;
2767    input  c2;
2768    input  b1;
2769    input  b2;
2770    input  a;
2771
2772    assign z = ~(( c1 | c2 ) & ( a ) & (b1|b2));
2773
2774endmodule
2775
2776//bw_u1_oai222_1x
2777//
2778//
2779module bw_u1_oai222_1x (
2780    z,
2781    c1,
2782    c2,
2783    b1,
2784    b2,
2785    a1,
2786    a2 );
2787
2788    output z;
2789    input  c1;
2790    input  c2;
2791    input  b1;
2792    input  b2;
2793    input  a1;
2794    input  a2;
2795
2796    assign z = ~(( c1 | c2 ) & ( a1|a2 ) & (b1|b2));
2797
2798endmodule
2799
2800
2801//bw_u1_oai222_2x
2802//
2803//
2804module bw_u1_oai222_2x (
2805    z,
2806    c1,
2807    c2,
2808    b1,
2809    b2,
2810    a1,
2811    a2 );
2812
2813    output z;
2814    input  c1;
2815    input  c2;
2816    input  b1;
2817    input  b2;
2818    input  a1;
2819    input  a2;
2820
2821    assign z = ~(( c1 | c2 ) & ( a1|a2 ) & (b1|b2));
2822
2823endmodule
2824
2825
2826//bw_u1_oai222_4x
2827//
2828//
2829module bw_u1_oai222_4x (
2830    z,
2831    c1,
2832    c2,
2833    b1,
2834    b2,
2835    a1,
2836    a2 );
2837
2838    output z;
2839    input  c1;
2840    input  c2;
2841    input  b1;
2842    input  b2;
2843    input  a1;
2844    input  a2;
2845
2846    assign z = ~(( c1 | c2 ) & ( a1|a2 ) & (b1|b2));
2847
2848endmodule
2849
2850
2851//bw_u1_oai311_1x
2852//
2853//
2854module bw_u1_oai311_1x (
2855    z,
2856    c1,
2857    c2,
2858    c3,
2859    b,
2860    a );
2861
2862    output z;
2863    input  c1;
2864    input  c2;
2865    input  c3;
2866    input  b;
2867    input  a;
2868
2869    assign z = ~(( c1 | c2|c3 ) & ( a ) & (b));
2870
2871endmodule
2872
2873
2874//bw_u1_oai311_2x
2875//
2876//
2877module bw_u1_oai311_2x (
2878    z,
2879    c1,
2880    c2,
2881    c3,
2882    b,
2883    a );
2884
2885    output z;
2886    input  c1;
2887    input  c2;
2888    input  c3;
2889    input  b;
2890    input  a;
2891
2892    assign z = ~(( c1 | c2|c3 ) & ( a ) & (b));
2893
2894endmodule
2895
2896
2897//bw_u1_oai311_4x
2898//
2899//
2900module bw_u1_oai311_4x (
2901    z,
2902    c1,
2903    c2,
2904    c3,
2905    b,
2906    a );
2907
2908    output z;
2909    input  c1;
2910    input  c2;
2911    input  c3;
2912    input  b;
2913    input  a;
2914
2915    assign z = ~(( c1 | c2 | c3 ) & ( a ) & (b));
2916
2917endmodule
2918
2919
2920//bw_u1_oai311_8x
2921//
2922//
2923module bw_u1_oai311_8x (
2924    z,
2925    c1,
2926    c2,
2927    c3,
2928    b,
2929    a );
2930
2931    output z;
2932    input  c1;
2933    input  c2;
2934    input  c3;
2935    input  b;
2936    input  a;
2937
2938    assign z = ~(( c1 | c2|c3 ) & ( a ) & (b));
2939
2940endmodule
2941
2942
2943//bw_u1_muxi21_0p6x
2944
2945
2946
2947module bw_u1_muxi21_0p6x (z, d0, d1, s);
2948output z;
2949input  d0, d1, s;
2950
2951    assign z = s ? ~d1 : ~d0;
2952endmodule
2953
2954
2955//bw_u1_muxi21_1x
2956
2957
2958
2959module bw_u1_muxi21_1x (z, d0, d1, s);
2960output z;
2961input  d0, d1, s;
2962
2963    assign z = s ? ~d1 : ~d0;
2964endmodule
2965
2966
2967
2968
2969
2970
2971
2972//bw_u1_muxi21_2x
2973
2974
2975
2976module bw_u1_muxi21_2x (z, d0, d1, s);
2977output z;
2978input  d0, d1, s;
2979
2980    assign z = s ? ~d1 : ~d0;
2981endmodule
2982
2983
2984//bw_u1_muxi21_4x
2985
2986
2987
2988module bw_u1_muxi21_4x (z, d0, d1, s);
2989output z;
2990input  d0, d1, s;
2991
2992    assign z = s ? ~d1 : ~d0;
2993endmodule
2994
2995
2996
2997
2998//bw_u1_muxi21_6x
2999
3000
3001module bw_u1_muxi21_6x (z, d0, d1, s);
3002output z;
3003input  d0, d1, s;
3004
3005    assign z = s ? ~d1 : ~d0;
3006endmodule
3007
3008//bw_u1_muxi31d_4x
3009//
3010
3011module bw_u1_muxi31d_4x (z, d0, d1, d2, s0, s1, s2);
3012output z;
3013input  d0, d1, d2, s0, s1, s2;
3014        zmuxi31d_prim i0 ( z, d0, d1, d2, s0, s1, s2 );
3015endmodule
3016
3017//bw_u1_muxi41d_4x
3018//
3019
3020module bw_u1_muxi41d_4x (z, d0, d1, d2, d3, s0, s1, s2, s3);
3021output z;
3022input  d0, d1, d2, d3, s0, s1, s2, s3;
3023        zmuxi41d_prim i0 ( z, d0, d1, d2, d3, s0, s1, s2, s3 );
3024endmodule
3025
3026//bw_u1_muxi41d_6x
3027//
3028
3029module bw_u1_muxi41d_6x (z, d0, d1, d2, d3, s0, s1, s2, s3);
3030output z;
3031input  d0, d1, d2, d3, s0, s1, s2, s3;
3032        zmuxi41d_prim i0 ( z, d0, d1, d2, d3, s0, s1, s2, s3 );
3033endmodule
3034 
3035
3036//bw_u1_xor2_0p6x
3037//
3038//
3039module bw_u1_xor2_0p6x (
3040    z,
3041    a,
3042    b );
3043
3044    output z;
3045    input  a;
3046    input  b;
3047
3048    assign z = ( a ^ b );
3049
3050endmodule
3051//bw_u1_xor2_1x
3052//
3053//
3054module bw_u1_xor2_1x (
3055    z,
3056    a,
3057    b );
3058
3059    output z;
3060    input  a;
3061    input  b;
3062
3063    assign z = ( a ^ b );
3064
3065endmodule
3066//bw_u1_xor2_2x
3067//
3068//
3069module bw_u1_xor2_2x (
3070    z,
3071    a,
3072    b );
3073
3074    output z;
3075    input  a;
3076    input  b;
3077
3078    assign z = ( a ^ b );
3079
3080endmodule
3081//bw_u1_xor2_4x
3082//
3083//
3084module bw_u1_xor2_4x (
3085    z,
3086    a,
3087    b );
3088
3089    output z;
3090    input  a;
3091    input  b;
3092
3093    assign z = ( a ^ b );
3094
3095endmodule
3096//bw_u1_xnor2_0p6x
3097//
3098//
3099module bw_u1_xnor2_0p6x (
3100    z,
3101    a,
3102    b );
3103
3104    output z;
3105    input  a;
3106    input  b;
3107
3108    assign z = ~( a ^ b );
3109
3110endmodule
3111//bw_u1_xnor2_1x
3112//
3113//
3114module bw_u1_xnor2_1x (
3115    z,
3116    a,
3117    b );
3118
3119    output z;
3120    input  a;
3121    input  b;
3122
3123    assign z = ~( a ^ b );
3124
3125endmodule
3126//bw_u1_xnor2_2x
3127//
3128//
3129module bw_u1_xnor2_2x (
3130    z,
3131    a,
3132    b );
3133
3134    output z;
3135    input  a;
3136    input  b;
3137
3138    assign z = ~( a ^ b );
3139
3140endmodule
3141//bw_u1_xnor2_4x
3142//
3143//
3144module bw_u1_xnor2_4x (
3145    z,
3146    a,
3147    b );
3148
3149    output z;
3150    input  a;
3151    input  b;
3152
3153    assign z = ~( a ^ b );
3154
3155endmodule
3156
3157//bw_u1_buf_1x
3158//
3159
3160module bw_u1_buf_1x (
3161    z,
3162    a );
3163
3164    output z;
3165    input  a;
3166
3167    assign z = ( a );
3168
3169endmodule
3170
3171//bw_u1_buf_5x
3172//
3173
3174module bw_u1_buf_5x (
3175    z,
3176    a );
3177
3178    output z;
3179    input  a;
3180
3181    assign z = ( a );
3182
3183endmodule
3184
3185
3186//bw_u1_buf_10x
3187//
3188
3189module bw_u1_buf_10x (
3190    z,
3191    a );
3192
3193    output z;
3194    input  a;
3195
3196    assign z = ( a );
3197
3198endmodule
3199
3200
3201//bw_u1_buf_15x
3202//
3203
3204module bw_u1_buf_15x (
3205    z,
3206    a );
3207
3208    output z;
3209    input  a;
3210
3211    assign z = ( a );
3212
3213endmodule
3214
3215
3216//bw_u1_buf_20x
3217//
3218
3219module bw_u1_buf_20x (
3220    z,
3221    a );
3222
3223    output z;
3224    input  a;
3225
3226    assign z = ( a );
3227
3228endmodule
3229
3230
3231//bw_u1_buf_30x
3232//
3233
3234module bw_u1_buf_30x (
3235    z,
3236    a );
3237
3238    output z;
3239    input  a;
3240
3241    assign z = ( a );
3242
3243endmodule
3244
3245
3246//bw_u1_buf_40x
3247//
3248
3249module bw_u1_buf_40x (
3250    z,
3251    a );
3252
3253    output z;
3254    input  a;
3255
3256    assign z = ( a );
3257
3258endmodule
3259
3260
3261//bw_u1_ao2222_1x
3262//
3263//
3264module bw_u1_ao2222_1x (
3265
3266    z,
3267    a1,
3268    a2,
3269    b1,
3270    b2,
3271    c1,
3272    c2,
3273    d1,
3274    d2 );
3275
3276    output z;
3277    input  a1;
3278    input  a2;
3279    input  b1;
3280    input  b2;
3281    input  c1;
3282    input  c2;
3283    input  d1;
3284    input  d2;
3285
3286    assign z = ((d1&d2) | ( c1 & c2 ) | (b1&b2)| (a1& a2));
3287
3288endmodule
3289
3290
3291//bw_u1_ao2222_2x
3292//
3293//
3294module bw_u1_ao2222_2x (
3295
3296    z,
3297    a1,
3298    a2,
3299    b1,
3300    b2,
3301    c1,
3302    c2,
3303    d1,
3304    d2 );
3305
3306    output z;
3307    input  a1;
3308    input  a2;
3309    input  b1;
3310    input  b2;
3311    input  c1;
3312    input  c2;
3313    input  d1;
3314    input  d2;
3315
3316    assign z = ((d1&d2) | ( c1 & c2 ) | (b1&b2)| (a1& a2));
3317
3318endmodule
3319
3320//bw_u1_ao2222_4x
3321//
3322//
3323module bw_u1_ao2222_4x (
3324
3325    z,
3326    a1,
3327    a2,
3328    b1,
3329    b2,
3330    c1,
3331    c2,
3332    d1,
3333    d2 );
3334
3335    output z;
3336    input  a1;
3337    input  a2;
3338    input  b1;
3339    input  b2;
3340    input  c1;
3341    input  c2;
3342    input  d1;
3343    input  d2;
3344
3345    assign z = ((d1&d2) | ( c1 & c2 ) | (b1&b2)| (a1& a2));
3346
3347endmodule
3348
3349////////////////////////////////////////////////////////////////////////
3350//
3351// flipflops {
3352//
3353////////////////////////////////////////////////////////////////////////
3354
3355//      scanable D-flipflop with scanout
3356
3357module bw_u1_soff_1x (q, so, ck, d, se, sd);
3358output q, so;
3359input  ck, d, se, sd;
3360        zsoff_prim i0 ( q, so, ck, d, se, sd );
3361endmodule
3362
3363module bw_u1_soff_2x (q, so, ck, d, se, sd);
3364output q, so;
3365input  ck, d, se, sd;
3366        zsoff_prim i0 ( q, so, ck, d, se, sd );
3367endmodule
3368
3369module bw_u1_soff_4x (q, so, ck, d, se, sd);
3370output q, so;
3371input  ck, d, se, sd;
3372        zsoff_prim i0 ( q, so, ck, d, se, sd );
3373endmodule
3374
3375module bw_u1_soff_8x (q, so, ck, d, se, sd);
3376output q, so;
3377input  ck, d, se, sd;
3378        zsoff_prim i0 ( q, so, ck, d, se, sd );
3379endmodule
3380
3381//      fast scanable D-flipflop with scanout with inverted Q output
3382
3383module bw_u1_soffi_4x (q_l, so, ck, d, se, sd);
3384output q_l, so;
3385input  ck, d, se, sd;
3386        zsoffi_prim i0 ( q_l, so, ck, d, se, sd );
3387endmodule
3388 
3389module bw_u1_soffi_8x (q_l, so, ck, d, se, sd);
3390output q_l, so;
3391input  ck, d, se, sd;
3392        zsoffi_prim i0 ( q_l, so, ck, d, se, sd );
3393endmodule
3394
3395//      scanable D-flipflop with scanout with 2-to-1 input mux
3396
3397module bw_u1_soffm2_4x (q, so, ck, d0, d1, s, se, sd);
3398output q, so;
3399input  ck, d0, d1, s, se, sd;
3400        zsoffm2_prim i0 ( q, so, ck, d0, d1, s, se, sd );
3401endmodule
3402
3403module bw_u1_soffm2_8x (q, so, ck, d0, d1, s, se, sd);
3404output q, so;
3405input  ck, d0, d1, s, se, sd;
3406        zsoffm2_prim i0 ( q, so, ck, d0, d1, s, se, sd );
3407endmodule
3408
3409//      scanable D-flipflop with scanout with sync reset-bar
3410
3411module bw_u1_soffr_2x (q, so, ck, d, se, sd, r_l);
3412output q, so;
3413input  ck, d, se, sd, r_l;
3414        zsoffr_prim i0 ( q, so, ck, d, se, sd, r_l );
3415endmodule
3416 
3417module bw_u1_soffr_4x (q, so, ck, d, se, sd, r_l);
3418output q, so;
3419input  ck, d, se, sd, r_l;
3420        zsoffr_prim i0 ( q, so, ck, d, se, sd, r_l );
3421endmodule
3422
3423module bw_u1_soffr_8x (q, so, ck, d, se, sd, r_l);
3424output q, so;
3425input  ck, d, se, sd, r_l;
3426        zsoffr_prim i0 ( q, so, ck, d, se, sd, r_l );
3427endmodule
3428
3429//bw_u1_soffasr_2x
3430
3431module bw_u1_soffasr_2x (q, so, ck, d, r_l, s_l, se, sd);
3432output q, so;
3433input  ck, d, r_l, s_l, se, sd;
3434        zsoffasr_prim i0 (q, so, ck, d, r_l, s_l, se, sd);
3435endmodule
3436
3437
3438//bw_u1_ckbuf_1p5x
3439
3440
3441module bw_u1_ckbuf_1p5x  (clk, rclk);
3442output clk;
3443input  rclk;
3444        buf (clk, rclk);
3445endmodule
3446
3447
3448//bw_u1_ckbuf_3x
3449
3450
3451module bw_u1_ckbuf_3x  (clk, rclk);
3452output clk;
3453input  rclk;
3454        buf (clk, rclk);
3455endmodule
3456
3457//bw_u1_ckbuf_4p5x
3458
3459
3460module bw_u1_ckbuf_4p5x  (clk, rclk);
3461output clk;
3462input  rclk;
3463        buf (clk, rclk);
3464endmodule
3465
3466
3467//bw_u1_ckbuf_6x
3468
3469
3470module bw_u1_ckbuf_6x  (clk, rclk);
3471output clk;
3472input  rclk;
3473        buf (clk, rclk);
3474endmodule
3475
3476//bw_u1_ckbuf_7x
3477//
3478
3479module bw_u1_ckbuf_7x  (clk, rclk);
3480output clk;
3481input  rclk;
3482        buf (clk, rclk);
3483endmodule
3484
3485//bw_u1_ckbuf_8x
3486//
3487module bw_u1_ckbuf_8x  (clk, rclk);
3488output clk;
3489input  rclk;
3490        buf (clk, rclk);
3491endmodule
3492
3493
3494//bw_u1_ckbuf_11x
3495//
3496
3497module bw_u1_ckbuf_11x (clk, rclk);
3498output clk;
3499input  rclk;
3500
3501    assign clk = ( rclk );
3502
3503endmodule
3504
3505//bw_u1_ckbuf_14x
3506//
3507
3508module bw_u1_ckbuf_14x (clk, rclk);
3509output clk;
3510input  rclk;
3511
3512    assign clk = ( rclk );
3513
3514endmodule
3515
3516//bw_u1_ckbuf_17x
3517//
3518
3519module bw_u1_ckbuf_17x (clk, rclk);
3520output clk;
3521input  rclk;
3522
3523    assign clk = ( rclk );
3524
3525endmodule
3526
3527
3528
3529
3530//bw_u1_ckbuf_19x
3531//
3532
3533module bw_u1_ckbuf_19x (clk, rclk);
3534output clk;
3535input  rclk;
3536
3537    assign clk = ( rclk );
3538
3539endmodule
3540
3541
3542
3543
3544//bw_u1_ckbuf_22x
3545//
3546
3547module bw_u1_ckbuf_22x (clk, rclk);
3548output clk;
3549input  rclk;
3550
3551    assign clk = ( rclk );
3552
3553endmodule
3554
3555//bw_u1_ckbuf_25x
3556//
3557
3558module bw_u1_ckbuf_25x (clk, rclk);
3559output clk;
3560input  rclk;
3561
3562    assign clk = ( rclk );
3563
3564endmodule
3565
3566
3567//bw_u1_ckbuf_28x
3568//
3569
3570module bw_u1_ckbuf_28x (clk, rclk);
3571output clk;
3572input  rclk;
3573
3574    assign clk = ( rclk );
3575
3576endmodule
3577
3578
3579//bw_u1_ckbuf_30x
3580//
3581
3582module bw_u1_ckbuf_30x (clk, rclk);
3583output clk;
3584input  rclk;
3585
3586    assign clk = ( rclk );
3587
3588endmodule
3589
3590//bw_u1_ckbuf_33x
3591//
3592
3593module bw_u1_ckbuf_33x (clk, rclk);
3594output clk;
3595input  rclk;
3596
3597    assign clk = ( rclk );
3598
3599endmodule
3600
3601//bw_u1_ckbuf_40x
3602//
3603
3604module bw_u1_ckbuf_40x (clk, rclk);
3605output clk;
3606input  rclk;
3607
3608    assign clk = ( rclk );
3609
3610endmodule
3611
3612
3613// gated clock buffers
3614
3615
3616module bw_u1_ckenbuf_6x  (clk, rclk, en_l, tm_l);
3617output clk;
3618input  rclk, en_l, tm_l;
3619        zckenbuf_prim i0 ( clk, rclk, en_l, tm_l );
3620endmodule
3621
3622module bw_u1_ckenbuf_14x (clk, rclk, en_l, tm_l);
3623output clk;
3624input  rclk, en_l, tm_l;
3625        zckenbuf_prim i0 ( clk, rclk, en_l, tm_l );
3626endmodule   
3627
3628////////////////////////////////////////////////////////////////////////
3629//
3630// half cells
3631//
3632////////////////////////////////////////////////////////////////////////
3633
3634
3635
3636module bw_u1_zhinv_0p6x (z, a);
3637output z;
3638input  a;
3639        not (z, a);
3640endmodule
3641
3642
3643module bw_u1_zhinv_1x (z, a);
3644output z;
3645input  a;
3646        not (z, a);
3647endmodule
3648
3649
3650
3651module bw_u1_zhinv_1p4x (z, a);
3652output z;
3653input  a;
3654        not (z, a);
3655endmodule
3656
3657
3658module bw_u1_zhinv_2x (z, a);
3659output z;
3660input  a;
3661        not (z, a);
3662endmodule
3663
3664
3665
3666module bw_u1_zhinv_3x (z, a);
3667output z;
3668input  a;
3669        not (z, a);
3670endmodule
3671
3672
3673
3674module bw_u1_zhinv_4x (z, a);
3675output z;
3676input  a;
3677        not (z, a);
3678endmodule
3679
3680
3681
3682module bw_u1_zhnand2_0p4x (z, a, b);
3683output z;
3684input  a, b;
3685        nand (z, a, b);
3686endmodule
3687
3688
3689module bw_u1_zhnand2_0p6x (z, a, b);
3690output z;   
3691input  a, b;
3692        nand (z, a, b);
3693endmodule   
3694
3695
3696module bw_u1_zhnand2_1x (z, a, b);
3697output z;   
3698input  a, b;
3699        nand (z, a, b);
3700endmodule   
3701
3702
3703module bw_u1_zhnand2_1p4x (z, a, b);
3704output z;   
3705input  a, b;
3706        nand (z, a, b);
3707endmodule   
3708
3709
3710module bw_u1_zhnand2_2x (z, a, b);
3711output z;   
3712input  a, b;
3713        nand (z, a, b);
3714endmodule   
3715
3716
3717module bw_u1_zhnand2_3x (z, a, b);
3718output z;   
3719input  a, b;
3720        nand (z, a, b);
3721endmodule   
3722
3723
3724module bw_u1_zhnand3_0p6x (z, a, b, c);
3725output z;
3726input  a, b, c;
3727        nand (z, a, b, c);
3728endmodule
3729
3730module bw_u1_zhnand3_1x (z, a, b, c);
3731output z;
3732input  a, b, c;
3733        nand (z, a, b, c);
3734endmodule
3735
3736module bw_u1_zhnand3_2x (z, a, b, c);
3737output z;
3738input  a, b, c;
3739        nand (z, a, b, c);
3740endmodule
3741
3742
3743module bw_u1_zhnand4_0p6x (z, a, b, c, d);
3744output z;
3745input  a, b, c, d;
3746        nand (z, a, b, c, d);
3747endmodule
3748
3749module bw_u1_zhnand4_1x (z, a, b, c, d);
3750output z;
3751input  a, b, c, d;
3752        nand (z, a, b, c, d);
3753endmodule
3754
3755module bw_u1_zhnand4_2x (z, a, b, c, d);
3756output z;
3757input  a, b, c, d;
3758        nand (z, a, b, c, d);
3759endmodule
3760
3761
3762       
3763module bw_u1_zhnor2_0p6x (z, a, b);
3764output z;
3765input  a, b;
3766        nor (z, a, b);
3767endmodule
3768
3769module bw_u1_zhnor2_1x (z, a, b);
3770output z;   
3771input  a, b;
3772        nor (z, a, b);
3773endmodule
3774
3775module bw_u1_zhnor2_2x (z, a, b);
3776output z;   
3777input  a, b;
3778        nor (z, a, b);
3779endmodule
3780
3781
3782
3783module bw_u1_zhnor3_0p6x (z, a, b, c);
3784output z;
3785input  a, b, c;
3786        nor (z, a, b, c);
3787endmodule
3788
3789
3790module bw_u1_zhaoi21_0p4x (z,b1,b2,a);
3791
3792    output z;   
3793    input  b1;
3794    input  b2;
3795    input  a;
3796
3797    assign z = ~(( b1 & b2 ) | ( a ));
3798   
3799endmodule
3800
3801
3802
3803module bw_u1_zhaoi21_1x (z, a, b1, b2);
3804
3805    output z;
3806    input  b1;
3807    input  b2;
3808    input  a;
3809
3810    assign z = ~(( b1 & b2 ) | ( a ));
3811
3812endmodule
3813
3814
3815
3816module bw_u1_zhoai21_1x (z,b1,b2,a );
3817   
3818    output z;
3819    input  b1;
3820    input  b2; 
3821    input  a;
3822 
3823    assign z = ~(( b1 | b2 ) & ( a ));
3824     
3825endmodule
3826
3827
3828
3829
3830module bw_u1_zhoai211_0p3x (z, a, b, c1, c2);
3831    output z;
3832    input  c1; 
3833    input  c2;
3834    input  b;
3835    input  a;
3836     
3837    assign z = ~(( c1 | c2 ) & ( a ) & (b));
3838       
3839endmodule
3840
3841
3842
3843
3844
3845module bw_u1_zhoai211_1x (z, a, b, c1, c2);
3846output z;
3847input  a, b, c1, c2;
3848    assign z = ~(( c1 | c2 ) & ( a ) & (b));
3849       
3850endmodule
3851
3852
3853
3854
3855
3856/////////////// Scan data lock up latch ///////////////
3857
3858module bw_u1_scanlg_2x (so, sd, ck, se);
3859output so;
3860input sd, ck, se;
3861
3862reg so_l;
3863
3864    assign so = ~so_l;
3865    always @ ( ck or sd or se )
3866       if (~ck) so_l <= ~(sd & se) ;
3867
3868endmodule
3869
3870module bw_u1_scanl_2x (so, sd, ck);
3871output so;
3872input sd, ck;
3873
3874reg so_l;
3875
3876    assign so = ~so_l;
3877    always @ ( ck or sd )
3878       if (~ck) so_l <= ~sd ;
3879
3880endmodule
3881
3882
3883
3884////////////////// Synchronizer ////////////////
3885
3886module bw_u1_syncff_4x (q, so, ck, d, se, sd);
3887output q, so;
3888input  ck, d, se, sd;
3889
3890reg    q_r;
3891  always @ (posedge ck)
3892      q_r <= se ? sd : d;
3893  assign q  = q_r;
3894  assign so = q_r;
3895
3896endmodule
3897
3898
3899
3900
3901////////////////////////////////////////////////////////////////////////
3902//
3903// non library cells
3904//
3905////////////////////////////////////////////////////////////////////////
3906
3907// These cells are used only in custom DP macros
3908// Do not use in any block design without prior permission
3909
3910
3911module bw_u1_zzeccxor2_5x (z, a, b);
3912 output z;
3913 input a, b;
3914    assign z = ( a ^ b );
3915
3916endmodule
3917
3918
3919
3920module bw_u1_zzmulcsa42_5x (sum, carry, cout, a, b, c, d, cin);
3921output sum, carry, cout;
3922input  a, b, c, d, cin;
3923wire and_cin_b, or_cin_b, xor_a_c_d, and_or_cin_b_xor_a_c_d;
3924wire and_a_c, and_a_d, and_c_d;
3925        assign sum   = cin ^ a ^ b ^ c ^ d;
3926        assign carry = cin & b | (cin | b) & (a ^ c ^ d);
3927        assign cout  = a & c | a & d | c & d;
3928endmodule
3929
3930
3931
3932module bw_u1_zzmulcsa32_5x (sum, cout, a, b, c);
3933output sum, cout;
3934input  a, b, c;
3935wire and_a_b, and_a_c, and_b_c;
3936        assign sum  = a ^ b ^ c ;
3937        assign cout = a & b | a & c | b & c ;
3938endmodule
3939
3940
3941
3942module bw_u1_zzmulppmuxi21_2x ( z, d0, d1, s );
3943output  z;
3944input  d0, d1, s;
3945    assign z = s ? ~d1 : ~d0;
3946endmodule
3947
3948
3949
3950module bw_u1_zzmulnand2_2x ( z, a, b );
3951output z;
3952input  a;
3953input  b;
3954    assign z = ~( a & b );
3955endmodule
3956
3957
3958
3959// Primitives
3960
3961
3962
3963
3964module zmuxi31d_prim (z, d0, d1, d2, s0, s1, s2);
3965output z;
3966input  d0, d1, d2, s0, s1, s2;
3967// for Blacktie
3968`ifdef VERPLEX
3969   $constraint dp_1h3 ($one_hot ({s0,s1,s2}));
3970`endif
3971wire [2:0] sel = {s0,s1,s2}; // 0in one_hot
3972reg z;
3973    always @ (s2 or d2 or s1 or d1 or s0 or d0)
3974        casez ({s2,d2,s1,d1,s0,d0})
3975            6'b0?0?10: z = 1'b1; 
3976            6'b0?0?11: z = 1'b0; 
3977            6'b0?100?: z = 1'b1; 
3978            6'b0?110?: z = 1'b0; 
3979            6'b0?1010: z = 1'b1; 
3980            6'b0?1111: z = 1'b0; 
3981            6'b100?0?: z = 1'b1; 
3982            6'b110?0?: z = 1'b0; 
3983            6'b100?10: z = 1'b1; 
3984            6'b110?11: z = 1'b0; 
3985            6'b10100?: z = 1'b1; 
3986            6'b11110?: z = 1'b0; 
3987            6'b101010: z = 1'b1; 
3988            6'b111111: z = 1'b0; 
3989            default: z = 1'bx;
3990        endcase
3991endmodule
3992
3993
3994
3995
3996
3997
3998
3999module zmuxi41d_prim (z, d0, d1, d2, d3, s0, s1, s2, s3);
4000output z;
4001input  d0, d1, d2, d3, s0, s1, s2, s3;
4002// for Blacktie
4003`ifdef VERPLEX
4004   $constraint dp_1h4 ($one_hot ({s0,s1,s2,s3}));
4005`endif
4006wire [3:0] sel = {s0,s1,s2,s3}; // 0in one_hot
4007reg z;
4008    always @ (s3 or d3 or s2 or d2 or s1 or d1 or s0 or d0)
4009        casez ({s3,d3,s2,d2,s1,d1,s0,d0})
4010            8'b0?0?0?10: z = 1'b1;
4011            8'b0?0?0?11: z = 1'b0;
4012            8'b0?0?100?: z = 1'b1;
4013            8'b0?0?110?: z = 1'b0;
4014            8'b0?0?1010: z = 1'b1;
4015            8'b0?0?1111: z = 1'b0;
4016            8'b0?100?0?: z = 1'b1;
4017            8'b0?110?0?: z = 1'b0;
4018            8'b0?100?10: z = 1'b1;
4019            8'b0?110?11: z = 1'b0;
4020            8'b0?10100?: z = 1'b1;
4021            8'b0?11110?: z = 1'b0;
4022            8'b0?101010: z = 1'b1;
4023            8'b0?111111: z = 1'b0;
4024            8'b100?0?0?: z = 1'b1;
4025            8'b110?0?0?: z = 1'b0;
4026            8'b100?0?10: z = 1'b1;
4027            8'b110?0?11: z = 1'b0;
4028            8'b100?100?: z = 1'b1;
4029            8'b110?110?: z = 1'b0;
4030            8'b100?1010: z = 1'b1;
4031            8'b110?1111: z = 1'b0;
4032            8'b10100?0?: z = 1'b1;
4033            8'b11110?0?: z = 1'b0;
4034            8'b10100?10: z = 1'b1;
4035            8'b11110?11: z = 1'b0;
4036            8'b1010100?: z = 1'b1;
4037            8'b1111110?: z = 1'b0;
4038            8'b10101010: z = 1'b1;
4039            8'b11111111: z = 1'b0;
4040            default: z = 1'bx;
4041        endcase   
4042endmodule
4043
4044
4045
4046module zsoff_prim (q, so, ck, d, se, sd);
4047output q, so;
4048input  ck, d, se, sd;
4049reg    q_r;
4050  always @ (posedge ck)
4051      q_r <= se ? sd : d;
4052  assign q  = q_r;
4053  assign so = q_r ;
4054endmodule
4055
4056
4057module zsoffr_prim (q, so, ck, d, se, sd, r_l);
4058output q, so;
4059input  ck, d, se, sd, r_l;
4060reg    q_r;
4061  always @ (posedge ck)
4062      q_r <= se ? sd : (d & r_l) ;
4063  assign q  = q_r;
4064  assign so = q_r;
4065endmodule
4066
4067
4068module zsoffi_prim (q_l, so, ck, d, se, sd);
4069output q_l, so;
4070input  ck, d, se, sd;
4071reg    q_r;
4072  always @ (posedge ck)
4073      q_r <= se ? sd : d;
4074  assign q_l = ~q_r;
4075  assign so  = q_r;
4076endmodule
4077
4078
4079
4080module zsoffm2_prim (q, so, ck, d0, d1, s, se, sd);
4081output q, so;
4082input  ck, d0, d1, s, se, sd;
4083reg    q_r;
4084  always @ (posedge ck)
4085      q_r <= se ? sd : (s ? d1 : d0) ;
4086  assign q  = q_r;
4087  assign so = q_r;
4088endmodule
4089
4090module zsoffasr_prim (q, so, ck, d, r_l, s_l, se, sd);
4091  output q, so;
4092  input ck, d, r_l, s_l, se, sd;
4093
4094  // asynchronous reset and asynchronous set
4095  // (priority: r_l > s_l > se > d)
4096  reg q;
4097  wire so;
4098
4099  always @ (posedge ck or negedge r_l or negedge s_l) begin
4100                if(~r_l) q <= 1'b0;
4101                else if (~s_l) q <= r_l;
4102                else if (se) q <= r_l & s_l & sd;
4103                else q <= r_l & s_l & (~se) & d;
4104  end
4105
4106  assign so = q | ~se;
4107
4108endmodule
4109
4110
4111
4112module zckenbuf_prim (clk, rclk, en_l, tm_l);
4113output clk;
4114input  rclk, en_l, tm_l;
4115reg    clken;
4116
4117  always @ (rclk or en_l or tm_l)
4118    if (!rclk)  //latch opens on rclk low phase
4119      clken <= ~en_l | ~tm_l;
4120  assign clk = clken & rclk;
4121
4122endmodule
4123
4124module bw_mckbuf_40x (clk, rclk, en);
4125output clk;
4126input  rclk;
4127input  en;
4128
4129    assign clk = rclk & en ;
4130
4131endmodule
4132
4133module bw_mckbuf_33x (clk, rclk, en);
4134output clk;
4135input  rclk;
4136input  en;
4137
4138    assign clk = rclk & en ;
4139
4140endmodule
4141
4142module bw_mckbuf_30x (clk, rclk, en);
4143output clk;
4144input  rclk;
4145input  en;
4146
4147    assign clk = rclk & en ;
4148
4149endmodule
4150
4151module bw_mckbuf_28x (clk, rclk, en);
4152output clk;
4153input  rclk;
4154input  en;
4155
4156    assign clk = rclk & en ;
4157
4158endmodule
4159
4160module bw_mckbuf_25x (clk, rclk, en);
4161output clk;
4162input  rclk;
4163input  en;
4164
4165    assign clk = rclk & en ;
4166
4167endmodule
4168
4169module bw_mckbuf_22x (clk, rclk, en);
4170output clk;
4171input  rclk;
4172input  en;
4173
4174    assign clk = rclk & en ;
4175
4176endmodule
4177
4178module bw_mckbuf_19x (clk, rclk, en);
4179output clk;
4180input  rclk;
4181input  en;
4182
4183    assign clk = rclk & en ;
4184
4185endmodule
4186
4187module bw_mckbuf_17x (clk, rclk, en);
4188output clk;
4189input  rclk;
4190input  en;
4191
4192    assign clk = rclk & en ;
4193
4194endmodule
4195
4196module bw_mckbuf_14x (clk, rclk, en);
4197output clk;
4198input  rclk;
4199input  en;
4200
4201    assign clk = rclk & en ;
4202
4203endmodule
4204
4205module bw_mckbuf_11x (clk, rclk, en);
4206output clk;
4207input  rclk;
4208input  en;
4209
4210    assign clk = rclk & en ;
4211
4212endmodule
4213
4214module bw_mckbuf_8x (clk, rclk, en);
4215output clk;
4216input  rclk;
4217input  en;
4218
4219    assign clk = rclk & en ;
4220
4221endmodule
4222
4223module bw_mckbuf_7x (clk, rclk, en);
4224output clk;
4225input  rclk;
4226input  en;
4227
4228    assign clk = rclk & en ;
4229
4230endmodule
4231
4232module bw_mckbuf_6x (clk, rclk, en);
4233output clk;
4234input  rclk;
4235input  en;
4236
4237    assign clk = rclk & en ;
4238
4239endmodule
4240
4241module bw_mckbuf_4p5x (clk, rclk, en);
4242output clk;
4243input  rclk;
4244input  en;
4245
4246    assign clk = rclk & en ;
4247
4248endmodule
4249
4250module bw_mckbuf_3x (clk, rclk, en);
4251output clk;
4252input  rclk;
4253input  en;
4254
4255    assign clk = rclk & en ;
4256
4257endmodule
4258
4259module bw_mckbuf_1p5x (clk, rclk, en);
4260output clk;
4261input  rclk;
4262input  en;
4263
4264    assign clk = rclk & en ;
4265
4266endmodule
4267
4268//bw_u1_minbuf_1x
4269//
4270
4271module bw_u1_minbuf_1x (
4272    z,
4273    a );
4274
4275    output z;
4276    input  a;
4277
4278    assign z = ( a );
4279
4280endmodule
4281
4282//bw_u1_minbuf_4x
4283//
4284
4285module bw_u1_minbuf_4x (
4286    z,
4287    a );
4288
4289    output z;
4290    input  a;
4291
4292    assign z = ( a );
4293
4294endmodule
4295
4296//bw_u1_minbuf_5x
4297//
4298
4299module bw_u1_minbuf_5x (
4300    z,
4301    a );
4302
4303    output z;
4304    input  a;
4305
4306    assign z = ( a );
4307
4308endmodule
4309
4310module bw_u1_ckenbuf_4p5x  (clk, rclk, en_l, tm_l);
4311output clk;
4312input  rclk, en_l, tm_l;
4313        zckenbuf_prim i0 ( clk, rclk, en_l, tm_l );
4314endmodule
4315
4316// dummy fill modules to get rid of DFT "CAP" property errors (bug 5487)
4317
4318module bw_u1_fill_1x(\vdd! );
4319input \vdd! ;
4320endmodule
4321
4322module bw_u1_fill_2x(\vdd! );
4323input \vdd! ;
4324endmodule
4325
4326module bw_u1_fill_3x(\vdd! );
4327input \vdd! ;
4328endmodule
4329
4330module bw_u1_fill_4x(\vdd! );
4331input \vdd! ;
4332endmodule
Note: See TracBrowser for help on using the repository browser.