Compare commits
No commits in common. '09420fd72cf750478bcc2f54b59e8a17dfb521e4' and '3dfd0cb60dfc01947ae1b9f923795d4ff1490a18' have entirely different histories.
09420fd72c
...
3dfd0cb60d
11 changed files with 14 additions and 368 deletions
@ -1,91 +0,0 @@ |
|||||||
// Benchmark "all_kyupy_primitives" written by ABC on Sat Nov 1 23:49:37 2025 |
|
||||||
|
|
||||||
module all_kyupy_primitives ( |
|
||||||
i0, i1, i2, i3, |
|
||||||
\o[0] , \o[1] , \o[2] , \o[3] , \o[4] , \o[5] , \o[6] , \o[7] , \o[8] , |
|
||||||
\o[9] , \o[10] , \o[11] , \o[12] , \o[13] , \o[14] , \o[15] , \o[16] , |
|
||||||
\o[17] , \o[18] , \o[19] , \o[20] , \o[21] , \o[22] , \o[23] , \o[24] , |
|
||||||
\o[25] , \o[26] , \o[27] , \o[28] , \o[29] ); |
|
||||||
input i0, i1, i2, i3; |
|
||||||
output \o[0] , \o[1] , \o[2] , \o[3] , \o[4] , \o[5] , \o[6] , \o[7] , |
|
||||||
\o[8] , \o[9] , \o[10] , \o[11] , \o[12] , \o[13] , \o[14] , \o[15] , |
|
||||||
\o[16] , \o[17] , \o[18] , \o[19] , \o[20] , \o[21] , \o[22] , \o[23] , |
|
||||||
\o[24] , \o[25] , \o[26] , \o[27] , \o[28] , \o[29] ; |
|
||||||
wire new_n42, new_n45, new_n48, new_n51, new_n52, new_n53, new_n54, |
|
||||||
new_n55, new_n57, new_n58, new_n59, new_n60, new_n61, new_n62, new_n63, |
|
||||||
new_n64, new_n65, new_n66, new_n67, new_n69, new_n70, new_n71, new_n72, |
|
||||||
new_n73, new_n74, new_n75, new_n76, new_n77, new_n78, new_n79, new_n83, |
|
||||||
new_n84, new_n88, new_n89, new_n93, new_n96, new_n99, new_n100, |
|
||||||
new_n101; |
|
||||||
INV1 g00(.i0(i1), .o(\o[1] )); |
|
||||||
AND2 g01(.i0(i1), .i1(i0), .o(\o[2] )); |
|
||||||
AND2 g02(.i0(\o[2] ), .i1(i2), .o(\o[3] )); |
|
||||||
AND2 g03(.i0(\o[3] ), .i1(i3), .o(\o[4] )); |
|
||||||
INV1 g04(.i0(\o[2] ), .o(\o[5] )); |
|
||||||
INV1 g05(.i0(\o[3] ), .o(\o[6] )); |
|
||||||
INV1 g06(.i0(\o[4] ), .o(\o[7] )); |
|
||||||
INV1 g07(.i0(i0), .o(new_n42)); |
|
||||||
AND2 g08(.i0(\o[1] ), .i1(new_n42), .o(\o[11] )); |
|
||||||
INV1 g09(.i0(\o[11] ), .o(\o[8] )); |
|
||||||
INV1 g10(.i0(i2), .o(new_n45)); |
|
||||||
AND2 g11(.i0(\o[11] ), .i1(new_n45), .o(\o[12] )); |
|
||||||
INV1 g12(.i0(\o[12] ), .o(\o[9] )); |
|
||||||
INV1 g13(.i0(i3), .o(new_n48)); |
|
||||||
AND2 g14(.i0(\o[12] ), .i1(new_n48), .o(\o[13] )); |
|
||||||
INV1 g15(.i0(\o[13] ), .o(\o[10] )); |
|
||||||
AND2 g16(.i0(\o[1] ), .i1(i0), .o(new_n51)); |
|
||||||
INV1 g17(.i0(new_n51), .o(new_n52)); |
|
||||||
AND2 g18(.i0(i1), .i1(new_n42), .o(new_n53)); |
|
||||||
INV1 g19(.i0(new_n53), .o(new_n54)); |
|
||||||
AND2 g20(.i0(new_n54), .i1(new_n52), .o(new_n55)); |
|
||||||
INV1 g21(.i0(new_n55), .o(\o[14] )); |
|
||||||
AND2 g22(.i0(i2), .i1(i1), .o(new_n57)); |
|
||||||
INV1 g23(.i0(new_n57), .o(new_n58)); |
|
||||||
AND2 g24(.i0(new_n45), .i1(\o[1] ), .o(new_n59)); |
|
||||||
INV1 g25(.i0(new_n59), .o(new_n60)); |
|
||||||
AND2 g26(.i0(new_n60), .i1(new_n58), .o(new_n61)); |
|
||||||
INV1 g27(.i0(new_n61), .o(new_n62)); |
|
||||||
AND2 g28(.i0(new_n62), .i1(i0), .o(new_n63)); |
|
||||||
INV1 g29(.i0(new_n63), .o(new_n64)); |
|
||||||
AND2 g30(.i0(new_n61), .i1(new_n42), .o(new_n65)); |
|
||||||
INV1 g31(.i0(new_n65), .o(new_n66)); |
|
||||||
AND2 g32(.i0(new_n66), .i1(new_n64), .o(new_n67)); |
|
||||||
INV1 g33(.i0(new_n67), .o(\o[15] )); |
|
||||||
AND2 g34(.i0(i3), .i1(new_n45), .o(new_n69)); |
|
||||||
INV1 g35(.i0(new_n69), .o(new_n70)); |
|
||||||
AND2 g36(.i0(new_n48), .i1(i2), .o(new_n71)); |
|
||||||
INV1 g37(.i0(new_n71), .o(new_n72)); |
|
||||||
AND2 g38(.i0(new_n72), .i1(new_n70), .o(new_n73)); |
|
||||||
INV1 g39(.i0(new_n73), .o(new_n74)); |
|
||||||
AND2 g40(.i0(new_n74), .i1(new_n55), .o(new_n75)); |
|
||||||
INV1 g41(.i0(new_n75), .o(new_n76)); |
|
||||||
AND2 g42(.i0(new_n73), .i1(\o[14] ), .o(new_n77)); |
|
||||||
INV1 g43(.i0(new_n77), .o(new_n78)); |
|
||||||
AND2 g44(.i0(new_n78), .i1(new_n76), .o(new_n79)); |
|
||||||
INV1 g45(.i0(new_n79), .o(\o[16] )); |
|
||||||
AND2 g46(.i0(\o[5] ), .i1(new_n45), .o(\o[21] )); |
|
||||||
INV1 g47(.i0(\o[21] ), .o(\o[17] )); |
|
||||||
AND2 g48(.i0(i3), .i1(i2), .o(new_n83)); |
|
||||||
INV1 g49(.i0(new_n83), .o(new_n84)); |
|
||||||
AND2 g50(.i0(new_n84), .i1(\o[5] ), .o(\o[22] )); |
|
||||||
INV1 g51(.i0(\o[22] ), .o(\o[18] )); |
|
||||||
AND2 g52(.i0(\o[8] ), .i1(i2), .o(\o[19] )); |
|
||||||
AND2 g53(.i0(new_n48), .i1(new_n45), .o(new_n88)); |
|
||||||
INV1 g54(.i0(new_n88), .o(new_n89)); |
|
||||||
AND2 g55(.i0(new_n89), .i1(\o[8] ), .o(\o[20] )); |
|
||||||
INV1 g56(.i0(\o[19] ), .o(\o[23] )); |
|
||||||
INV1 g57(.i0(\o[20] ), .o(\o[24] )); |
|
||||||
AND2 g58(.i0(\o[5] ), .i1(new_n48), .o(new_n93)); |
|
||||||
AND2 g59(.i0(new_n93), .i1(new_n45), .o(\o[27] )); |
|
||||||
INV1 g60(.i0(\o[27] ), .o(\o[25] )); |
|
||||||
AND2 g61(.i0(\o[8] ), .i1(i3), .o(new_n96)); |
|
||||||
AND2 g62(.i0(new_n96), .i1(i2), .o(\o[26] )); |
|
||||||
INV1 g63(.i0(\o[26] ), .o(\o[28] )); |
|
||||||
AND2 g64(.i0(new_n45), .i1(i0), .o(new_n99)); |
|
||||||
INV1 g65(.i0(new_n99), .o(new_n100)); |
|
||||||
AND2 g66(.i0(new_n100), .i1(new_n58), .o(new_n101)); |
|
||||||
INV1 g67(.i0(new_n101), .o(\o[29] )); |
|
||||||
BUF1 g68(.i0(i0), .o(\o[0] )); |
|
||||||
endmodule |
|
||||||
|
|
||||||
|
|
||||||
@ -1,49 +0,0 @@ |
|||||||
module all_kyupy_primitives (i0, i1, i2, i3, o); |
|
||||||
input i0; |
|
||||||
input i1; |
|
||||||
input i2; |
|
||||||
input i3; |
|
||||||
output [29:0] o; |
|
||||||
|
|
||||||
BUF1 buf1_0 (.i0(i0), .o(o[0])); |
|
||||||
INV1 inv1_0 (.i0(i1), .o(o[1])); |
|
||||||
|
|
||||||
AND2 and2_0 (.i0(i0), .i1(i1), .o(o[2])); |
|
||||||
AND3 and3_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[3])); |
|
||||||
AND4 and4_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[4])); |
|
||||||
|
|
||||||
NAND2 nand2_0 (.i0(i0), .i1(i1), .o(o[5])); |
|
||||||
NAND3 nand3_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[6])); |
|
||||||
NAND4 nand4_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[7])); |
|
||||||
|
|
||||||
OR2 or2_0 (.i0(i0), .i1(i1), .o(o[8])); |
|
||||||
OR3 or3_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[9])); |
|
||||||
OR4 or4_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[10])); |
|
||||||
|
|
||||||
NOR2 nor2_0 (.i0(i0), .i1(i1), .o(o[11])); |
|
||||||
NOR3 nor3_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[12])); |
|
||||||
NOR4 nor4_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[13])); |
|
||||||
|
|
||||||
XOR2 xor2_0 (.i0(i0), .i1(i1), .o(o[14])); |
|
||||||
XOR3 xor3_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[15])); |
|
||||||
XOR4 xor4_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[16])); |
|
||||||
|
|
||||||
AO21 ao21_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[17])); |
|
||||||
AO22 ao22_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[18])); |
|
||||||
OA21 oa21_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[19])); |
|
||||||
OA22 oa22_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[20])); |
|
||||||
|
|
||||||
AOI21 aoi21_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[21])); |
|
||||||
AOI22 aoi22_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[22])); |
|
||||||
OAI21 oai21_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[23])); |
|
||||||
OAI22 oai22_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[24])); |
|
||||||
|
|
||||||
AO211 ao211_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[25])); |
|
||||||
OA211 oa211_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[26])); |
|
||||||
|
|
||||||
AOI211 aoi211_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[27])); |
|
||||||
OAI211 oai211_0 (.i0(i0), .i1(i1), .i2(i2), .i3(i3), .o(o[28])); |
|
||||||
|
|
||||||
MUX21 mux21_0 (.i0(i0), .i1(i1), .i2(i2), .o(o[29])); |
|
||||||
|
|
||||||
endmodule |
|
||||||
@ -1,34 +0,0 @@ |
|||||||
# library of all KyuPy simulation primitives defined in kyupy.sim |
|
||||||
GATE BUF1 1 o=i0; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE INV1 1 o=!i0; PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE AND2 1 o=i0*i1; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE AND3 1 o=i0*i1*i2; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE AND4 1 o=i0*i1*i2*i3; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE NAND2 1 o=!(i0*i1); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE NAND3 1 o=!(i0*i1*i2); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE NAND4 1 o=!(i0*i1*i2*i3); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE OR2 1 o=i0+i1; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE OR3 1 o=i0+i1+i2; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE OR4 1 o=i0+i1+i2+i3; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE NOR2 1 o=!(i0+i1); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE NOR3 1 o=!(i0+i1+i2); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE NOR4 1 o=!(i0+i1+i2+i3); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE XOR2 1 o=i0^i1; PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
GATE XOR3 1 o=i0^i1^i2; PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
GATE XOR4 1 o=i0^i1^i2^i3; PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
GATE XNOR2 1 o=!(i0^i1); PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
GATE XNOR3 1 o=!(i0^i1^i2); PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
GATE XNOR4 1 o=!(i0^i1^i2^i3); PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
GATE AO21 1 o=(i0*i1)+i2; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE AO22 1 o=(i0*i1)+(i2*i3); PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE OA21 1 o=(i0+i1)*i2; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE OA22 1 o=(i0+i1)*(i2+i3); PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE AOI21 1 o=!( (i0*i1)+i2 ); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE AOI22 1 o=!( (i0*i1)+(i2*i3) ); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE OAI21 1 o=!( (i0+i1)*i2 ); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE OAI22 1 o=!( (i0+i1)*(i2+i3) ); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE AO211 1 o=(i0*i1)+i2+i3; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE OA211 1 o=(i0+i1)*i2*i3; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE AOI211 1 o=!( (i0*i1)+i2+i3 ); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE OAI211 1 o=!( (i0+i1)*i2*i3 ); PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE MUX21 1 o=(i0*!i2)+(i1*i2); PIN * UNKNOWN 1 999 1 0 1 0 |
|
||||||
@ -1,6 +0,0 @@ |
|||||||
read kyupy_simprims.genlib |
|
||||||
read -m all_kyupy_simprims.v |
|
||||||
fraig |
|
||||||
read minimal.genlib |
|
||||||
map |
|
||||||
write all_kyupy_simprims.minimal.v |
|
||||||
@ -1,5 +0,0 @@ |
|||||||
# A minimal library for generating logically equivalent circuits with |
|
||||||
# minimum number of gate types. |
|
||||||
GATE BUF1 1 o=i0; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
GATE INV1 1 o=!i0; PIN * INV 1 999 1 0 1 0 |
|
||||||
GATE AND2 1 o=i0*i1; PIN * NONINV 1 999 1 0 1 0 |
|
||||||
Loading…
Reference in new issue