Skip to content

Commit dbaa561

Browse files
authored
Merge pull request #19 from siliconcompiler/fix-mux
fix mux4 lambdalib implementation
2 parents 5158d77 + 2cc44cd commit dbaa561

File tree

14 files changed

+268
-234
lines changed

14 files changed

+268
-234
lines changed

lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_mux4.v

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
// assign z = (d0 & ~s1 & ~s0) |
1818
// (d1 & ~s1 & s0) |
1919
// (d2 & s1 & ~s0) |
20-
// (d2 & s1 & s0);
20+
// (d3 & s1 & s0);
2121
//
2222
// endmodule
2323

@@ -29,6 +29,7 @@ module la_mux4(d0, d1, d2, d3, s0, s1, z);
2929
wire _02_;
3030
wire _03_;
3131
wire _04_;
32+
wire _05_;
3233
input d0;
3334
wire d0;
3435
input d1;
@@ -43,34 +44,41 @@ module la_mux4(d0, d1, d2, d3, s0, s1, z);
4344
wire s1;
4445
output z;
4546
wire z;
46-
INVx2_ASAP7_75t_L _05_ (
47-
.A(s1),
48-
.Y(_02_)
49-
);
5047
INVx2_ASAP7_75t_L _06_ (
5148
.A(s0),
52-
.Y(_03_)
53-
);
54-
AND2x2_ASAP7_75t_L _07_ (
55-
.A(s0),
56-
.B(d1),
5749
.Y(_04_)
5850
);
59-
AO21x1_ASAP7_75t_L _08_ (
60-
.A1(_03_),
61-
.A2(d0),
62-
.B(_04_),
51+
INVx2_ASAP7_75t_L _07_ (
52+
.A(s1),
53+
.Y(_05_)
54+
);
55+
OR2x2_ASAP7_75t_L _08_ (
56+
.A(d0),
57+
.B(s1),
6358
.Y(_00_)
6459
);
65-
AND2x2_ASAP7_75t_L _09_ (
66-
.A(s1),
67-
.B(d2),
60+
OA21x2_ASAP7_75t_L _09_ (
61+
.A1(_05_),
62+
.A2(d2),
63+
.B(_00_),
6864
.Y(_01_)
6965
);
70-
AO21x1_ASAP7_75t_L _10_ (
71-
.A1(_02_),
72-
.A2(_00_),
73-
.B(_01_),
66+
OR2x2_ASAP7_75t_L _10_ (
67+
.A(s1),
68+
.B(d1),
69+
.Y(_02_)
70+
);
71+
OA211x2_ASAP7_75t_L _11_ (
72+
.A1(_05_),
73+
.A2(d3),
74+
.B(_02_),
75+
.C(s0),
76+
.Y(_03_)
77+
);
78+
AO21x1_ASAP7_75t_L _12_ (
79+
.A1(_04_),
80+
.A2(_01_),
81+
.B(_03_),
7482
.Y(z)
7583
);
7684
endmodule

lambdapdk/asap7/libs/asap7sc7p5t_lvt/lambda/la_muxi4.v

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,19 @@
1717
// assign z = ~((d0 & ~s1 & ~s0) |
1818
// (d1 & ~s1 & s0) |
1919
// (d2 & s1 & ~s0) |
20-
// (d2 & s1 & s0));
20+
// (d3 & s1 & s0));
2121
//
2222
// endmodule
2323

2424
/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */
2525

2626
module la_muxi4(d0, d1, d2, d3, s0, s1, z);
27-
wire _0_;
28-
wire _1_;
29-
wire _2_;
30-
wire _3_;
27+
wire _00_;
28+
wire _01_;
29+
wire _02_;
30+
wire _03_;
31+
wire _04_;
32+
wire _05_;
3133
input d0;
3234
wire d0;
3335
input d1;
@@ -42,30 +44,41 @@ module la_muxi4(d0, d1, d2, d3, s0, s1, z);
4244
wire s1;
4345
output z;
4446
wire z;
45-
INVx2_ASAP7_75t_L _4_ (
46-
.A(d0),
47-
.Y(_1_)
47+
INVx2_ASAP7_75t_L _06_ (
48+
.A(s0),
49+
.Y(_04_)
4850
);
49-
NAND2x1_ASAP7_75t_L _5_ (
51+
OR2x2_ASAP7_75t_L _07_ (
5052
.A(s0),
51-
.B(d1),
52-
.Y(_2_)
53+
.B(d2),
54+
.Y(_05_)
55+
);
56+
OA211x2_ASAP7_75t_L _08_ (
57+
.A1(_04_),
58+
.A2(d3),
59+
.B(_05_),
60+
.C(s1),
61+
.Y(_00_)
5362
);
54-
OA21x2_ASAP7_75t_L _6_ (
55-
.A1(s0),
56-
.A2(_1_),
57-
.B(_2_),
58-
.Y(_3_)
63+
OR2x2_ASAP7_75t_L _09_ (
64+
.A(s0),
65+
.B(d0),
66+
.Y(_01_)
5967
);
60-
NAND2x1_ASAP7_75t_L _7_ (
68+
INVx2_ASAP7_75t_L _10_ (
6169
.A(s1),
62-
.B(d2),
63-
.Y(_0_)
70+
.Y(_02_)
71+
);
72+
OA211x2_ASAP7_75t_L _11_ (
73+
.A1(_04_),
74+
.A2(d1),
75+
.B(_01_),
76+
.C(_02_),
77+
.Y(_03_)
6478
);
65-
OA21x2_ASAP7_75t_L _8_ (
66-
.A1(s1),
67-
.A2(_3_),
68-
.B(_0_),
79+
NOR2x1_ASAP7_75t_L _12_ (
80+
.A(_00_),
81+
.B(_03_),
6982
.Y(z)
7083
);
7184
endmodule

lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_mux4.v

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
// assign z = (d0 & ~s1 & ~s0) |
1818
// (d1 & ~s1 & s0) |
1919
// (d2 & s1 & ~s0) |
20-
// (d2 & s1 & s0);
20+
// (d3 & s1 & s0);
2121
//
2222
// endmodule
2323

@@ -29,6 +29,7 @@ module la_mux4(d0, d1, d2, d3, s0, s1, z);
2929
wire _02_;
3030
wire _03_;
3131
wire _04_;
32+
wire _05_;
3233
input d0;
3334
wire d0;
3435
input d1;
@@ -43,34 +44,41 @@ module la_mux4(d0, d1, d2, d3, s0, s1, z);
4344
wire s1;
4445
output z;
4546
wire z;
46-
INVx2_ASAP7_75t_R _05_ (
47-
.A(s1),
48-
.Y(_02_)
49-
);
5047
INVx2_ASAP7_75t_R _06_ (
5148
.A(s0),
52-
.Y(_03_)
53-
);
54-
AND2x2_ASAP7_75t_R _07_ (
55-
.A(s0),
56-
.B(d1),
5749
.Y(_04_)
5850
);
59-
AO21x1_ASAP7_75t_R _08_ (
60-
.A1(_03_),
61-
.A2(d0),
62-
.B(_04_),
51+
INVx2_ASAP7_75t_R _07_ (
52+
.A(s1),
53+
.Y(_05_)
54+
);
55+
OR2x4_ASAP7_75t_R _08_ (
56+
.A(d0),
57+
.B(s1),
6358
.Y(_00_)
6459
);
65-
AND2x2_ASAP7_75t_R _09_ (
66-
.A(s1),
67-
.B(d2),
60+
OA21x2_ASAP7_75t_R _09_ (
61+
.A1(_05_),
62+
.A2(d2),
63+
.B(_00_),
6864
.Y(_01_)
6965
);
70-
AO21x1_ASAP7_75t_R _10_ (
71-
.A1(_02_),
72-
.A2(_00_),
73-
.B(_01_),
66+
OR2x2_ASAP7_75t_R _10_ (
67+
.A(s1),
68+
.B(d1),
69+
.Y(_02_)
70+
);
71+
OA211x2_ASAP7_75t_R _11_ (
72+
.A1(_05_),
73+
.A2(d3),
74+
.B(_02_),
75+
.C(s0),
76+
.Y(_03_)
77+
);
78+
AO21x1_ASAP7_75t_R _12_ (
79+
.A1(_04_),
80+
.A2(_01_),
81+
.B(_03_),
7482
.Y(z)
7583
);
7684
endmodule

lambdapdk/asap7/libs/asap7sc7p5t_rvt/lambda/la_muxi4.v

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,19 @@
1717
// assign z = ~((d0 & ~s1 & ~s0) |
1818
// (d1 & ~s1 & s0) |
1919
// (d2 & s1 & ~s0) |
20-
// (d2 & s1 & s0));
20+
// (d3 & s1 & s0));
2121
//
2222
// endmodule
2323

2424
/* Generated by Yosys 0.37 (git sha1 a5c7f69ed, clang 14.0.0-1ubuntu1.1 -fPIC -Os) */
2525

2626
module la_muxi4(d0, d1, d2, d3, s0, s1, z);
27-
wire _0_;
28-
wire _1_;
29-
wire _2_;
30-
wire _3_;
27+
wire _00_;
28+
wire _01_;
29+
wire _02_;
30+
wire _03_;
31+
wire _04_;
32+
wire _05_;
3133
input d0;
3234
wire d0;
3335
input d1;
@@ -42,30 +44,41 @@ module la_muxi4(d0, d1, d2, d3, s0, s1, z);
4244
wire s1;
4345
output z;
4446
wire z;
45-
INVx2_ASAP7_75t_R _4_ (
46-
.A(d0),
47-
.Y(_1_)
47+
INVx2_ASAP7_75t_R _06_ (
48+
.A(s0),
49+
.Y(_04_)
4850
);
49-
NAND2x1_ASAP7_75t_R _5_ (
51+
OR2x2_ASAP7_75t_R _07_ (
5052
.A(s0),
51-
.B(d1),
52-
.Y(_2_)
53+
.B(d2),
54+
.Y(_05_)
55+
);
56+
OA211x2_ASAP7_75t_R _08_ (
57+
.A1(_04_),
58+
.A2(d3),
59+
.B(_05_),
60+
.C(s1),
61+
.Y(_00_)
5362
);
54-
OA21x2_ASAP7_75t_R _6_ (
55-
.A1(s0),
56-
.A2(_1_),
57-
.B(_2_),
58-
.Y(_3_)
63+
OR2x2_ASAP7_75t_R _09_ (
64+
.A(s0),
65+
.B(d0),
66+
.Y(_01_)
5967
);
60-
NAND2x1_ASAP7_75t_R _7_ (
68+
INVx2_ASAP7_75t_R _10_ (
6169
.A(s1),
62-
.B(d2),
63-
.Y(_0_)
70+
.Y(_02_)
71+
);
72+
OA211x2_ASAP7_75t_R _11_ (
73+
.A1(_04_),
74+
.A2(d1),
75+
.B(_01_),
76+
.C(_02_),
77+
.Y(_03_)
6478
);
65-
OA21x2_ASAP7_75t_R _8_ (
66-
.A1(s1),
67-
.A2(_3_),
68-
.B(_0_),
79+
NOR2x1_ASAP7_75t_R _12_ (
80+
.A(_00_),
81+
.B(_03_),
6982
.Y(z)
7083
);
7184
endmodule

0 commit comments

Comments
 (0)