├── .gitignore ├── ISCAS ├── README.md ├── best_insertion │ ├── adder1.v │ ├── adder8.v │ ├── alu32.v │ ├── c1355.v │ ├── c17.v │ ├── c1908.v │ ├── c2670.v │ ├── c3540.v │ ├── c432.v │ ├── c499.v │ ├── c5315.v │ ├── c6288.v │ ├── c7552.v │ ├── c880.v │ ├── counter128.v │ ├── counter16.v │ ├── counter32.v │ ├── counter64.v │ ├── mult8.v │ ├── sorter32.v │ └── sorter48.v ├── original │ ├── _adder8_new.v │ ├── _alu32_new.v │ ├── _apc128_new.v │ ├── _apc16_new.v │ ├── _apc32_new.v │ ├── _apc64_new.v │ ├── _multi_new.v │ ├── _sorter32_new.v │ ├── _sorter48_new.v │ ├── adder.v │ ├── c1355.v │ ├── c17.v │ ├── c1908.v │ ├── c2670.v │ ├── c3540.v │ ├── c432.v │ ├── c499.v │ ├── c5315.v │ ├── c6288.v │ ├── c7552.v │ ├── c880.v │ └── readme.md └── strashed │ ├── adder1.v │ ├── adder8.v │ ├── alu32.v │ ├── c1355.v │ ├── c17.v │ ├── c1908.v │ ├── c2670.v │ ├── c3540.v │ ├── c432.v │ ├── c499.v │ ├── c5315.v │ ├── c6288.v │ ├── c7552.v │ ├── c880.v │ ├── counter128.v │ ├── counter16.v │ ├── counter32.v │ ├── counter64.v │ ├── mult8.v │ ├── sorter32.v │ └── sorter48.v ├── LICENSE ├── MCNC ├── README.md ├── best_insertion │ ├── 5xp1_buffered.v │ ├── c1908_buffered.v │ ├── c432_buffered.v │ ├── c5315_buffered.v │ ├── c880_buffered.v │ ├── chkn_buffered.v │ ├── count_buffered.v │ ├── dist_buffered.v │ ├── in5_buffered.v │ ├── in6_buffered.v │ ├── k2_buffered.v │ ├── m3_buffered.v │ ├── max512_buffered.v │ ├── misex3_buffered.v │ ├── mlp4_buffered.v │ ├── prom2_buffered.v │ ├── sqr6_buffered.v │ └── x1dn_buffered.v ├── best_mapping │ ├── 5xp1.v │ ├── c1908.v │ ├── c432.v │ ├── c5315.v │ ├── c880.v │ ├── chkn.v │ ├── count.v │ ├── dist.v │ ├── in5.v │ ├── in6.v │ ├── k2.v │ ├── m3.v │ ├── max512.v │ ├── misex3.v │ ├── mlp4.v │ ├── prom2.v │ ├── sqr6.v │ └── x1dn.v └── original │ ├── 5xp1.v │ ├── c1908.v │ ├── c432.v │ ├── c5315.v │ ├── c880.v │ ├── chkn.v │ ├── count.v │ ├── dist.v │ ├── in5.v │ ├── in6.v │ ├── k2.v │ ├── m3.v │ ├── max512.v │ ├── misex3.v │ ├── mlp4.v │ ├── prom2.v │ ├── sqr6.v │ └── x1dn.v └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | 3 | -------------------------------------------------------------------------------- /ISCAS/README.md: -------------------------------------------------------------------------------- 1 | # ISCAS'85 and simple arithmetic benchmarks 2 | 3 | ## Initial circuits 4 | These benchmarks were generated (optimized) by the authors of [1] using Yosys. We obtained these benchmarks from the authors of [4] (in `ISCAS/original/`). However, we observed that these Verilog files use special module instantiations to represent simple AND-2, OR-2, MAJ-3 and INV gates (with variations of input negations) and are not topologically sorted. This makes them harder to be parsed by some logic synthesis tools (e.g. ABC). Moreover, if read-in and stored using a standard AIG data structure, it can be observed that some gates can be trivially optimized out by structural hashing or trivial case (e.g. equivalent fanins) elimination. Thus, a cleaned-up version of the same benchmarks are provided (in `ISCAS/strashed/`), which were obtained by reading in the original Verilog and writing out again using [`mockturtle`](https://github.com/lsils/mockturtle). The file names were also adjusted for better readability. 5 | 6 | | Benchmark | #gates | depth | max FO | 7 | | ---------- | ------ | ----- | ------ | 8 | | adder1 | 7 | 4 | 2 | 9 | | adder8 | 77 | 17 | 3 | 10 | | mult8 | 439 | 35 | 9 | 11 | | counter16 | 29 | 9 | 4 | 12 | | counter32 | 82 | 13 | 4 | 13 | | counter64 | 195 | 17 | 4 | 14 | | counter128 | 428 | 22 | 4 | 15 | | c17 | 6 | 3 | 2 | 16 | | c432 | 121 | 26 | 10 | 17 | | c499 | 387 | 18 | 8 | 18 | | c880 | 306 | 27 | 9 | 19 | | c1355 | 389 | 18 | 9 | 20 | | c1908 | 289 | 21 | 14 | 21 | | c2670 | 368 | 21 | 32 | 22 | | c3540 | 794 | 32 | 38 | 23 | | c5315 | 1302 | 26 | 41 | 24 | | c6288 | 1870 | 89 | 17 | 25 | | c7552 | 1394 | 33 | 170 | 26 | | sorter32 | 480 | 15 | 2 | 27 | | sorter48 | 880 | 20 | 3 | 28 | | alu32 | 1513 | 100 | 128 | 29 | 30 | ### Buffer and splitter insertion results without logic optimization [8] 31 | 32 | | Benchmark | #buffers | #JJs | Depth | Time (s) | 33 | | ---------- | -------- | ----- | ----- | -------- | 34 | | adder1 | 16 | 74 | 8 | 0.00 | 35 | | adder8 | 371 | 1204 | 33 | 0.01 | 36 | | mult8 | 1690 | 6014 | 70 | 0.18 | 37 | | counter16 | 65 | 304 | 17 | 0.00 | 38 | | counter32 | 154 | 800 | 23 | 0.01 | 39 | | counter64 | 347 | 1864 | 30 | 0.02 | 40 | | counter128 | 747 | 4062 | 38 | 0.07 | 41 | | c17 | 12 | 60 | 5 | 0.00 | 42 | | c432 | 839 | 2404 | 37 | 0.02 | 43 | | c499 | 1173 | 4668 | 29 | 0.09 | 44 | | c880 | 1511 | 4858 | 40 | 0.15 | 45 | | c1355 | 1184 | 4702 | 29 | 0.06 | 46 | | c1908 | 1234 | 4202 | 34 | 0.09 | 47 | | c2670 | 1912 | 6032 | 28 | 0.32 | 48 | | c3540 | 1943 | 8650 | 52 | 0.81 | 49 | | c5315 | 5640 | 19092 | 40 | 2.05 | 50 | | c6288 | 8647 | 28514 | 179 | 2.56 | 51 | | c7552 | 7437 | 23238 | 56 | 4.17 | 52 | | sorter32 | 480 | 3840 | 30 | 0.06 | 53 | | sorter48 | 880 | 7040 | 35 | 0.22 | 54 | | alu32 | 13836 | 36750 | 169 | 2.75 | 55 | -------------------------------------------------------------------------------- /ISCAS/best_insertion/adder1.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , y0 , y1 ); 10 | input x0 , x1 , x2 ; 11 | output y0 , y1 ; 12 | wire n2 , n4 , n6 , n7 , n8 , n9 , n10 , n11 , n12 , n13 , n14 , n15 , n16 , n17 , n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 ; 13 | buffer buf_n2( .i (x0), .o (n2) ); 14 | buffer buf_n4( .i (x1), .o (n4) ); 15 | assign n11 = n2 & n4 ; 16 | buffer buf_n12( .i (n11), .o (n12) ); 17 | buffer buf_n13( .i (n12), .o (n13) ); 18 | buffer buf_n14( .i (n13), .o (n14) ); 19 | buffer buf_n15( .i (n14), .o (n15) ); 20 | buffer buf_n16( .i (n15), .o (n16) ); 21 | buffer buf_n6( .i (x2), .o (n6) ); 22 | buffer buf_n7( .i (n6), .o (n7) ); 23 | buffer buf_n8( .i (n7), .o (n8) ); 24 | buffer buf_n9( .i (n8), .o (n9) ); 25 | buffer buf_n10( .i (n9), .o (n10) ); 26 | assign n17 = n2 | n4 ; 27 | buffer buf_n18( .i (n17), .o (n18) ); 28 | assign n19 = ~n12 & n18 ; 29 | buffer buf_n20( .i (n19), .o (n20) ); 30 | assign n21 = n10 & n20 ; 31 | buffer buf_n22( .i (n21), .o (n22) ); 32 | assign n23 = n16 | n22 ; 33 | assign n24 = n10 | n20 ; 34 | buffer buf_n25( .i (n24), .o (n25) ); 35 | assign n26 = ~n22 & n25 ; 36 | assign y0 = n23 ; 37 | assign y1 = n26 ; 38 | endmodule 39 | -------------------------------------------------------------------------------- /ISCAS/best_insertion/c17.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , y0 , y1 ); 10 | input x0 , x1 , x2 , x3 , x4 ; 11 | output y0 , y1 ; 12 | wire n2 , n4 , n5 , n6 , n8 , n10 , n12 , n13 , n14 , n15 , n16 , n17 , n18 , n19 , n20 , n21 , n22 , n23 ; 13 | buffer buf_n2( .i (x0), .o (n2) ); 14 | buffer buf_n8( .i (x2), .o (n8) ); 15 | assign n13 = n2 & n8 ; 16 | buffer buf_n14( .i (n13), .o (n14) ); 17 | buffer buf_n15( .i (n14), .o (n15) ); 18 | buffer buf_n4( .i (x1), .o (n4) ); 19 | buffer buf_n5( .i (n4), .o (n5) ); 20 | buffer buf_n6( .i (n5), .o (n6) ); 21 | buffer buf_n10( .i (x3), .o (n10) ); 22 | assign n16 = n8 & n10 ; 23 | buffer buf_n17( .i (n16), .o (n17) ); 24 | assign n18 = n6 & ~n17 ; 25 | assign n19 = n15 | n18 ; 26 | buffer buf_n12( .i (x4), .o (n12) ); 27 | assign n20 = n4 | n12 ; 28 | buffer buf_n21( .i (n20), .o (n21) ); 29 | assign n22 = ~n17 & n21 ; 30 | buffer buf_n23( .i (n22), .o (n23) ); 31 | assign y0 = n19 ; 32 | assign y1 = n23 ; 33 | endmodule 34 | -------------------------------------------------------------------------------- /ISCAS/best_insertion/counter16.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , y0 , y1 , y2 , y3 , y4 ); 10 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 ; 11 | output y0 , y1 , y2 , y3 , y4 ; 12 | wire n17 , n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 ; 13 | assign n17 = x14 & x15 ; 14 | buffer buf_n18( .i (n17), .o (n18) ); 15 | buffer buf_n19( .i (n18), .o (n19) ); 16 | buffer buf_n20( .i (n19), .o (n20) ); 17 | buffer buf_n21( .i (n20), .o (n21) ); 18 | buffer buf_n22( .i (n21), .o (n22) ); 19 | buffer buf_n23( .i (n22), .o (n23) ); 20 | buffer buf_n24( .i (n23), .o (n24) ); 21 | buffer buf_n25( .i (n24), .o (n25) ); 22 | buffer buf_n26( .i (n25), .o (n26) ); 23 | assign n27 = x12 | x13 ; 24 | buffer buf_n28( .i (n27), .o (n28) ); 25 | buffer buf_n29( .i (n28), .o (n29) ); 26 | buffer buf_n30( .i (n29), .o (n30) ); 27 | buffer buf_n31( .i (n30), .o (n31) ); 28 | buffer buf_n32( .i (n31), .o (n32) ); 29 | buffer buf_n33( .i (n32), .o (n33) ); 30 | buffer buf_n34( .i (n33), .o (n34) ); 31 | assign n35 = x4 | x5 ; 32 | buffer buf_n36( .i (n35), .o (n36) ); 33 | buffer buf_n37( .i (n36), .o (n37) ); 34 | buffer buf_n38( .i (n37), .o (n38) ); 35 | assign n39 = x0 | x1 ; 36 | buffer buf_n40( .i (n39), .o (n40) ); 37 | assign n41 = x2 & x3 ; 38 | buffer buf_n42( .i (n41), .o (n42) ); 39 | assign n43 = ( n36 & n40 ) | ( n36 & n42 ) | ( n40 & n42 ) ; 40 | buffer buf_n44( .i (n43), .o (n44) ); 41 | assign n49 = ( ~n36 & n40 ) | ( ~n36 & n42 ) | ( n40 & n42 ) ; 42 | buffer buf_n50( .i (n49), .o (n50) ); 43 | assign n51 = ( n38 & ~n44 ) | ( n38 & n50 ) | ( ~n44 & n50 ) ; 44 | buffer buf_n52( .i (n51), .o (n52) ); 45 | assign n53 = x10 & x11 ; 46 | buffer buf_n54( .i (n53), .o (n54) ); 47 | buffer buf_n55( .i (n54), .o (n55) ); 48 | buffer buf_n56( .i (n55), .o (n56) ); 49 | assign n57 = x6 & x7 ; 50 | buffer buf_n58( .i (n57), .o (n58) ); 51 | assign n59 = x8 | x9 ; 52 | buffer buf_n60( .i (n59), .o (n60) ); 53 | assign n61 = ( n54 & n58 ) | ( n54 & n60 ) | ( n58 & n60 ) ; 54 | buffer buf_n62( .i (n61), .o (n62) ); 55 | assign n67 = ( ~n54 & n58 ) | ( ~n54 & n60 ) | ( n58 & n60 ) ; 56 | buffer buf_n68( .i (n67), .o (n68) ); 57 | assign n69 = ( n56 & ~n62 ) | ( n56 & n68 ) | ( ~n62 & n68 ) ; 58 | buffer buf_n70( .i (n69), .o (n70) ); 59 | assign n71 = ( n32 & n52 ) | ( n32 & n70 ) | ( n52 & n70 ) ; 60 | buffer buf_n72( .i (n71), .o (n72) ); 61 | assign n75 = ( ~n32 & n52 ) | ( ~n32 & n70 ) | ( n52 & n70 ) ; 62 | buffer buf_n76( .i (n75), .o (n76) ); 63 | assign n77 = ( n34 & ~n72 ) | ( n34 & n76 ) | ( ~n72 & n76 ) ; 64 | buffer buf_n78( .i (n77), .o (n78) ); 65 | assign n79 = n26 & n78 ; 66 | buffer buf_n80( .i (n79), .o (n80) ); 67 | assign n81 = n26 | n78 ; 68 | buffer buf_n82( .i (n81), .o (n82) ); 69 | assign n83 = ~n80 & n82 ; 70 | buffer buf_n84( .i (n83), .o (n84) ); 71 | buffer buf_n85( .i (n84), .o (n85) ); 72 | buffer buf_n86( .i (n85), .o (n86) ); 73 | buffer buf_n87( .i (n86), .o (n87) ); 74 | buffer buf_n73( .i (n72), .o (n73) ); 75 | buffer buf_n74( .i (n73), .o (n74) ); 76 | buffer buf_n45( .i (n44), .o (n45) ); 77 | buffer buf_n46( .i (n45), .o (n46) ); 78 | buffer buf_n47( .i (n46), .o (n47) ); 79 | buffer buf_n48( .i (n47), .o (n48) ); 80 | buffer buf_n63( .i (n62), .o (n63) ); 81 | buffer buf_n64( .i (n63), .o (n64) ); 82 | buffer buf_n65( .i (n64), .o (n65) ); 83 | buffer buf_n66( .i (n65), .o (n66) ); 84 | assign n88 = ( n48 & n66 ) | ( n48 & n72 ) | ( n66 & n72 ) ; 85 | buffer buf_n89( .i (n88), .o (n89) ); 86 | assign n94 = ( n48 & n66 ) | ( n48 & ~n72 ) | ( n66 & ~n72 ) ; 87 | buffer buf_n95( .i (n94), .o (n95) ); 88 | assign n96 = ( n74 & ~n89 ) | ( n74 & n95 ) | ( ~n89 & n95 ) ; 89 | buffer buf_n97( .i (n96), .o (n97) ); 90 | assign n98 = n80 & n97 ; 91 | buffer buf_n99( .i (n98), .o (n99) ); 92 | assign n100 = n80 | n97 ; 93 | buffer buf_n101( .i (n100), .o (n101) ); 94 | assign n102 = ~n99 & n101 ; 95 | buffer buf_n103( .i (n102), .o (n103) ); 96 | buffer buf_n104( .i (n103), .o (n104) ); 97 | buffer buf_n90( .i (n89), .o (n90) ); 98 | buffer buf_n91( .i (n90), .o (n91) ); 99 | buffer buf_n92( .i (n91), .o (n92) ); 100 | buffer buf_n93( .i (n92), .o (n93) ); 101 | assign n105 = n93 & n99 ; 102 | buffer buf_n106( .i (n105), .o (n106) ); 103 | assign n108 = n93 | n99 ; 104 | buffer buf_n109( .i (n108), .o (n109) ); 105 | assign n110 = ~n106 & n109 ; 106 | buffer buf_n107( .i (n106), .o (n107) ); 107 | assign y0 = 1'b0 ; 108 | assign y1 = n87 ; 109 | assign y2 = n104 ; 110 | assign y3 = n110 ; 111 | assign y4 = n107 ; 112 | endmodule 113 | -------------------------------------------------------------------------------- /ISCAS/best_insertion/counter32.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , x27 , x28 , x29 , x30 , x31 , y0 , y1 , y2 , y3 , y4 , y5 ); 10 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , x27 , x28 , x29 , x30 , x31 ; 11 | output y0 , y1 , y2 , y3 , y4 , y5 ; 12 | wire n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 , n211 , n212 , n213 , n214 , n215 , n216 , n217 , n218 , n219 , n220 , n221 , n222 , n223 , n224 , n225 , n226 , n227 , n228 , n229 , n230 , n231 , n232 , n233 , n234 , n235 , n236 , n237 , n238 , n239 , n240 , n241 , n242 , n243 , n244 , n245 , n246 , n247 , n248 , n249 , n250 , n251 , n252 , n253 , n254 , n255 , n256 , n257 , n258 , n259 , n260 , n261 , n262 , n263 , n264 , n265 , n266 , n267 , n268 ; 13 | assign n33 = x28 | x29 ; 14 | buffer buf_n34( .i (n33), .o (n34) ); 15 | buffer buf_n35( .i (n34), .o (n35) ); 16 | buffer buf_n36( .i (n35), .o (n36) ); 17 | buffer buf_n37( .i (n36), .o (n37) ); 18 | buffer buf_n38( .i (n37), .o (n38) ); 19 | assign n41 = x9 | x26 ; 20 | buffer buf_n42( .i (n41), .o (n42) ); 21 | buffer buf_n43( .i (n42), .o (n43) ); 22 | buffer buf_n44( .i (n43), .o (n44) ); 23 | assign n45 = x18 | x23 ; 24 | buffer buf_n46( .i (n45), .o (n46) ); 25 | assign n47 = x24 & x25 ; 26 | buffer buf_n48( .i (n47), .o (n48) ); 27 | assign n49 = ( n42 & n46 ) | ( n42 & n48 ) | ( n46 & n48 ) ; 28 | buffer buf_n50( .i (n49), .o (n50) ); 29 | assign n55 = ( ~n42 & n46 ) | ( ~n42 & n48 ) | ( n46 & n48 ) ; 30 | buffer buf_n56( .i (n55), .o (n56) ); 31 | assign n57 = ( n44 & ~n50 ) | ( n44 & n56 ) | ( ~n50 & n56 ) ; 32 | buffer buf_n58( .i (n57), .o (n58) ); 33 | assign n59 = x15 & x20 ; 34 | buffer buf_n60( .i (n59), .o (n60) ); 35 | buffer buf_n61( .i (n60), .o (n61) ); 36 | buffer buf_n62( .i (n61), .o (n62) ); 37 | assign n63 = x8 & x14 ; 38 | buffer buf_n64( .i (n63), .o (n64) ); 39 | assign n65 = x6 | x11 ; 40 | buffer buf_n66( .i (n65), .o (n66) ); 41 | assign n67 = ( n60 & n64 ) | ( n60 & n66 ) | ( n64 & n66 ) ; 42 | buffer buf_n68( .i (n67), .o (n68) ); 43 | assign n73 = ( ~n60 & n64 ) | ( ~n60 & n66 ) | ( n64 & n66 ) ; 44 | buffer buf_n74( .i (n73), .o (n74) ); 45 | assign n75 = ( n62 & ~n68 ) | ( n62 & n74 ) | ( ~n68 & n74 ) ; 46 | buffer buf_n76( .i (n75), .o (n76) ); 47 | assign n77 = ( n38 & n58 ) | ( n38 & n76 ) | ( n58 & n76 ) ; 48 | buffer buf_n78( .i (n77), .o (n78) ); 49 | buffer buf_n79( .i (n78), .o (n79) ); 50 | buffer buf_n80( .i (n79), .o (n80) ); 51 | buffer buf_n51( .i (n50), .o (n51) ); 52 | buffer buf_n52( .i (n51), .o (n52) ); 53 | buffer buf_n53( .i (n52), .o (n53) ); 54 | buffer buf_n54( .i (n53), .o (n54) ); 55 | buffer buf_n69( .i (n68), .o (n69) ); 56 | buffer buf_n70( .i (n69), .o (n70) ); 57 | buffer buf_n71( .i (n70), .o (n71) ); 58 | buffer buf_n72( .i (n71), .o (n72) ); 59 | assign n81 = ( n54 & n72 ) | ( n54 & n78 ) | ( n72 & n78 ) ; 60 | buffer buf_n82( .i (n81), .o (n82) ); 61 | assign n87 = ( n54 & n72 ) | ( n54 & ~n78 ) | ( n72 & ~n78 ) ; 62 | buffer buf_n88( .i (n87), .o (n88) ); 63 | assign n89 = ( n80 & ~n82 ) | ( n80 & n88 ) | ( ~n82 & n88 ) ; 64 | buffer buf_n90( .i (n89), .o (n90) ); 65 | assign n91 = x19 & x27 ; 66 | buffer buf_n92( .i (n91), .o (n92) ); 67 | buffer buf_n93( .i (n92), .o (n93) ); 68 | buffer buf_n94( .i (n93), .o (n94) ); 69 | buffer buf_n95( .i (n94), .o (n95) ); 70 | buffer buf_n96( .i (n95), .o (n96) ); 71 | buffer buf_n97( .i (n96), .o (n97) ); 72 | buffer buf_n98( .i (n97), .o (n98) ); 73 | buffer buf_n99( .i (n98), .o (n99) ); 74 | buffer buf_n100( .i (n99), .o (n100) ); 75 | buffer buf_n39( .i (n38), .o (n39) ); 76 | buffer buf_n40( .i (n39), .o (n40) ); 77 | assign n101 = ( ~n38 & n58 ) | ( ~n38 & n76 ) | ( n58 & n76 ) ; 78 | buffer buf_n102( .i (n101), .o (n102) ); 79 | assign n103 = ( n40 & ~n78 ) | ( n40 & n102 ) | ( ~n78 & n102 ) ; 80 | buffer buf_n104( .i (n103), .o (n104) ); 81 | assign n105 = n100 & n104 ; 82 | buffer buf_n106( .i (n105), .o (n106) ); 83 | assign n107 = n90 & n106 ; 84 | buffer buf_n108( .i (n107), .o (n108) ); 85 | assign n109 = n90 | n106 ; 86 | buffer buf_n110( .i (n109), .o (n110) ); 87 | assign n111 = ~n108 & n110 ; 88 | buffer buf_n112( .i (n111), .o (n112) ); 89 | assign n113 = x2 | x21 ; 90 | buffer buf_n114( .i (n113), .o (n114) ); 91 | buffer buf_n115( .i (n114), .o (n115) ); 92 | buffer buf_n116( .i (n115), .o (n116) ); 93 | buffer buf_n117( .i (n116), .o (n117) ); 94 | buffer buf_n118( .i (n117), .o (n118) ); 95 | assign n121 = x12 | x13 ; 96 | buffer buf_n122( .i (n121), .o (n122) ); 97 | buffer buf_n123( .i (n122), .o (n123) ); 98 | buffer buf_n124( .i (n123), .o (n124) ); 99 | assign n125 = x16 | x17 ; 100 | buffer buf_n126( .i (n125), .o (n126) ); 101 | assign n127 = x4 & x31 ; 102 | buffer buf_n128( .i (n127), .o (n128) ); 103 | assign n129 = ( n122 & n126 ) | ( n122 & n128 ) | ( n126 & n128 ) ; 104 | buffer buf_n130( .i (n129), .o (n130) ); 105 | assign n135 = ( ~n122 & n126 ) | ( ~n122 & n128 ) | ( n126 & n128 ) ; 106 | buffer buf_n136( .i (n135), .o (n136) ); 107 | assign n137 = ( n124 & ~n130 ) | ( n124 & n136 ) | ( ~n130 & n136 ) ; 108 | buffer buf_n138( .i (n137), .o (n138) ); 109 | assign n139 = x5 & x22 ; 110 | buffer buf_n140( .i (n139), .o (n140) ); 111 | buffer buf_n141( .i (n140), .o (n141) ); 112 | buffer buf_n142( .i (n141), .o (n142) ); 113 | assign n143 = x0 & x10 ; 114 | buffer buf_n144( .i (n143), .o (n144) ); 115 | assign n145 = x7 | x30 ; 116 | buffer buf_n146( .i (n145), .o (n146) ); 117 | assign n147 = ( n140 & n144 ) | ( n140 & n146 ) | ( n144 & n146 ) ; 118 | buffer buf_n148( .i (n147), .o (n148) ); 119 | assign n153 = ( ~n140 & n144 ) | ( ~n140 & n146 ) | ( n144 & n146 ) ; 120 | buffer buf_n154( .i (n153), .o (n154) ); 121 | assign n155 = ( n142 & ~n148 ) | ( n142 & n154 ) | ( ~n148 & n154 ) ; 122 | buffer buf_n156( .i (n155), .o (n156) ); 123 | assign n157 = ( n118 & n138 ) | ( n118 & n156 ) | ( n138 & n156 ) ; 124 | buffer buf_n158( .i (n157), .o (n158) ); 125 | buffer buf_n159( .i (n158), .o (n159) ); 126 | buffer buf_n160( .i (n159), .o (n160) ); 127 | buffer buf_n131( .i (n130), .o (n131) ); 128 | buffer buf_n132( .i (n131), .o (n132) ); 129 | buffer buf_n133( .i (n132), .o (n133) ); 130 | buffer buf_n134( .i (n133), .o (n134) ); 131 | buffer buf_n149( .i (n148), .o (n149) ); 132 | buffer buf_n150( .i (n149), .o (n150) ); 133 | buffer buf_n151( .i (n150), .o (n151) ); 134 | buffer buf_n152( .i (n151), .o (n152) ); 135 | assign n161 = ( n134 & n152 ) | ( n134 & n158 ) | ( n152 & n158 ) ; 136 | buffer buf_n162( .i (n161), .o (n162) ); 137 | assign n167 = ( n134 & n152 ) | ( n134 & ~n158 ) | ( n152 & ~n158 ) ; 138 | buffer buf_n168( .i (n167), .o (n168) ); 139 | assign n169 = ( n160 & ~n162 ) | ( n160 & n168 ) | ( ~n162 & n168 ) ; 140 | buffer buf_n170( .i (n169), .o (n170) ); 141 | assign n171 = x1 & x3 ; 142 | buffer buf_n172( .i (n171), .o (n172) ); 143 | buffer buf_n173( .i (n172), .o (n173) ); 144 | buffer buf_n174( .i (n173), .o (n174) ); 145 | buffer buf_n175( .i (n174), .o (n175) ); 146 | buffer buf_n176( .i (n175), .o (n176) ); 147 | buffer buf_n177( .i (n176), .o (n177) ); 148 | buffer buf_n178( .i (n177), .o (n178) ); 149 | buffer buf_n179( .i (n178), .o (n179) ); 150 | buffer buf_n180( .i (n179), .o (n180) ); 151 | buffer buf_n119( .i (n118), .o (n119) ); 152 | buffer buf_n120( .i (n119), .o (n120) ); 153 | assign n181 = ( ~n118 & n138 ) | ( ~n118 & n156 ) | ( n138 & n156 ) ; 154 | buffer buf_n182( .i (n181), .o (n182) ); 155 | assign n183 = ( n120 & ~n158 ) | ( n120 & n182 ) | ( ~n158 & n182 ) ; 156 | buffer buf_n184( .i (n183), .o (n184) ); 157 | assign n185 = n180 & n184 ; 158 | buffer buf_n186( .i (n185), .o (n186) ); 159 | assign n187 = n170 & n186 ; 160 | buffer buf_n188( .i (n187), .o (n188) ); 161 | assign n189 = n170 | n186 ; 162 | buffer buf_n190( .i (n189), .o (n190) ); 163 | assign n191 = ~n188 & n190 ; 164 | buffer buf_n192( .i (n191), .o (n192) ); 165 | assign n193 = n112 & n192 ; 166 | assign n194 = n112 | n192 ; 167 | assign n195 = ~n193 & n194 ; 168 | buffer buf_n196( .i (n195), .o (n196) ); 169 | assign n197 = n100 | n104 ; 170 | buffer buf_n198( .i (n197), .o (n198) ); 171 | assign n199 = ~n106 & n198 ; 172 | buffer buf_n200( .i (n199), .o (n200) ); 173 | assign n201 = n180 | n184 ; 174 | buffer buf_n202( .i (n201), .o (n202) ); 175 | assign n203 = ~n186 & n202 ; 176 | buffer buf_n204( .i (n203), .o (n204) ); 177 | assign n205 = n200 & n204 ; 178 | buffer buf_n206( .i (n205), .o (n206) ); 179 | buffer buf_n207( .i (n206), .o (n207) ); 180 | buffer buf_n208( .i (n207), .o (n208) ); 181 | buffer buf_n209( .i (n208), .o (n209) ); 182 | assign n210 = n196 & n209 ; 183 | assign n211 = n196 | n209 ; 184 | assign n212 = ~n210 & n211 ; 185 | buffer buf_n213( .i (n212), .o (n213) ); 186 | buffer buf_n214( .i (n213), .o (n214) ); 187 | assign n215 = n200 | n204 ; 188 | buffer buf_n216( .i (n215), .o (n216) ); 189 | buffer buf_n217( .i (n216), .o (n217) ); 190 | buffer buf_n218( .i (n217), .o (n218) ); 191 | assign n219 = ~n208 & n218 ; 192 | buffer buf_n220( .i (n219), .o (n220) ); 193 | buffer buf_n221( .i (n220), .o (n221) ); 194 | buffer buf_n222( .i (n221), .o (n222) ); 195 | buffer buf_n223( .i (n222), .o (n223) ); 196 | buffer buf_n83( .i (n82), .o (n83) ); 197 | buffer buf_n84( .i (n83), .o (n84) ); 198 | buffer buf_n85( .i (n84), .o (n85) ); 199 | buffer buf_n86( .i (n85), .o (n86) ); 200 | assign n224 = n86 & n108 ; 201 | buffer buf_n225( .i (n224), .o (n225) ); 202 | assign n230 = n86 | n108 ; 203 | buffer buf_n231( .i (n230), .o (n231) ); 204 | assign n232 = ~n225 & n231 ; 205 | buffer buf_n233( .i (n232), .o (n233) ); 206 | buffer buf_n163( .i (n162), .o (n163) ); 207 | buffer buf_n164( .i (n163), .o (n164) ); 208 | buffer buf_n165( .i (n164), .o (n165) ); 209 | buffer buf_n166( .i (n165), .o (n166) ); 210 | assign n234 = n166 & n188 ; 211 | buffer buf_n235( .i (n234), .o (n235) ); 212 | assign n240 = n166 | n188 ; 213 | buffer buf_n241( .i (n240), .o (n241) ); 214 | assign n242 = ~n235 & n241 ; 215 | buffer buf_n243( .i (n242), .o (n243) ); 216 | assign n244 = n233 & n243 ; 217 | assign n245 = n233 | n243 ; 218 | assign n246 = ~n244 & n245 ; 219 | buffer buf_n247( .i (n246), .o (n247) ); 220 | assign n248 = ( n112 & n192 ) | ( n112 & n206 ) | ( n192 & n206 ) ; 221 | buffer buf_n249( .i (n248), .o (n249) ); 222 | buffer buf_n250( .i (n249), .o (n250) ); 223 | buffer buf_n251( .i (n250), .o (n251) ); 224 | buffer buf_n252( .i (n251), .o (n252) ); 225 | assign n253 = n247 & n252 ; 226 | assign n254 = n247 | n252 ; 227 | assign n255 = ~n253 & n254 ; 228 | buffer buf_n226( .i (n225), .o (n226) ); 229 | buffer buf_n227( .i (n226), .o (n227) ); 230 | buffer buf_n228( .i (n227), .o (n228) ); 231 | buffer buf_n229( .i (n228), .o (n229) ); 232 | buffer buf_n236( .i (n235), .o (n236) ); 233 | buffer buf_n237( .i (n236), .o (n237) ); 234 | buffer buf_n238( .i (n237), .o (n238) ); 235 | buffer buf_n239( .i (n238), .o (n239) ); 236 | assign n256 = ( n233 & n243 ) | ( n233 & n249 ) | ( n243 & n249 ) ; 237 | buffer buf_n257( .i (n256), .o (n257) ); 238 | assign n259 = ( n229 & n239 ) | ( n229 & n257 ) | ( n239 & n257 ) ; 239 | buffer buf_n260( .i (n259), .o (n260) ); 240 | buffer buf_n261( .i (n260), .o (n261) ); 241 | buffer buf_n258( .i (n257), .o (n258) ); 242 | assign n262 = n227 | n237 ; 243 | assign n263 = n227 & n237 ; 244 | assign n264 = n262 & ~n263 ; 245 | buffer buf_n265( .i (n264), .o (n265) ); 246 | assign n266 = n258 & n265 ; 247 | assign n267 = n258 | n265 ; 248 | assign n268 = ~n266 & n267 ; 249 | assign y0 = n214 ; 250 | assign y1 = n223 ; 251 | assign y2 = n255 ; 252 | assign y3 = 1'b0 ; 253 | assign y4 = n261 ; 254 | assign y5 = n268 ; 255 | endmodule 256 | -------------------------------------------------------------------------------- /ISCAS/original/_adder8_new.v: -------------------------------------------------------------------------------- 1 | module adder(b_4_,a_6_,a_7_,a_1_,a_0_,a_2_,c,b_7_,a_5_,b_3_,b_2_,b_1_,b_6_,a_3_,b_5_,a_4_,b_0_,cout,s_6_,s_3_,s_4_,s_5_,s_0_,s_2_,s_7_,s_1_); 2 | wire jinkela_wire_0; 3 | wire jinkela_wire_1; 4 | wire jinkela_wire_2; 5 | wire jinkela_wire_3; 6 | wire jinkela_wire_4; 7 | wire jinkela_wire_5; 8 | wire jinkela_wire_6; 9 | wire jinkela_wire_7; 10 | wire jinkela_wire_8; 11 | wire jinkela_wire_9; 12 | wire jinkela_wire_10; 13 | wire jinkela_wire_11; 14 | wire jinkela_wire_12; 15 | wire jinkela_wire_13; 16 | wire jinkela_wire_14; 17 | wire jinkela_wire_15; 18 | wire jinkela_wire_16; 19 | wire jinkela_wire_17; 20 | wire jinkela_wire_18; 21 | wire jinkela_wire_19; 22 | wire jinkela_wire_20; 23 | wire jinkela_wire_21; 24 | wire jinkela_wire_22; 25 | wire jinkela_wire_23; 26 | wire jinkela_wire_24; 27 | wire jinkela_wire_25; 28 | wire jinkela_wire_26; 29 | wire jinkela_wire_27; 30 | wire jinkela_wire_28; 31 | wire jinkela_wire_29; 32 | wire jinkela_wire_30; 33 | wire jinkela_wire_31; 34 | wire jinkela_wire_32; 35 | wire jinkela_wire_33; 36 | wire jinkela_wire_34; 37 | wire jinkela_wire_35; 38 | wire jinkela_wire_36; 39 | wire jinkela_wire_37; 40 | wire jinkela_wire_38; 41 | wire jinkela_wire_39; 42 | wire jinkela_wire_40; 43 | wire jinkela_wire_41; 44 | wire jinkela_wire_42; 45 | wire jinkela_wire_43; 46 | wire jinkela_wire_44; 47 | wire jinkela_wire_45; 48 | wire jinkela_wire_46; 49 | wire jinkela_wire_47; 50 | wire jinkela_wire_48; 51 | wire jinkela_wire_49; 52 | wire jinkela_wire_50; 53 | wire jinkela_wire_51; 54 | wire jinkela_wire_52; 55 | wire jinkela_wire_53; 56 | wire jinkela_wire_54; 57 | wire jinkela_wire_55; 58 | wire jinkela_wire_56; 59 | wire jinkela_wire_57; 60 | wire jinkela_wire_58; 61 | wire jinkela_wire_59; 62 | wire jinkela_wire_60; 63 | wire jinkela_wire_61; 64 | wire jinkela_wire_62; 65 | wire jinkela_wire_63; 66 | wire jinkela_wire_64; 67 | wire jinkela_wire_65; 68 | wire jinkela_wire_66; 69 | wire jinkela_wire_67; 70 | input b_4_; 71 | input a_6_; 72 | input a_7_; 73 | input a_1_; 74 | input a_0_; 75 | input a_2_; 76 | input c; 77 | input b_7_; 78 | input a_5_; 79 | input b_3_; 80 | input b_2_; 81 | input b_1_; 82 | input b_6_; 83 | input a_3_; 84 | input b_5_; 85 | input a_4_; 86 | input b_0_; 87 | output cout; 88 | output s_6_; 89 | output s_3_; 90 | output s_4_; 91 | output s_5_; 92 | output s_0_; 93 | output s_2_; 94 | output s_7_; 95 | output s_1_; 96 | 97 | or_bb n_116_ ( 98 | .a(jinkela_wire_20), 99 | .b(jinkela_wire_40), 100 | .c(jinkela_wire_55) 101 | ); 102 | 103 | and_ii n_117_ ( 104 | .a(jinkela_wire_55), 105 | .b(jinkela_wire_63), 106 | .c(jinkela_wire_28) 107 | ); 108 | 109 | and_bb n_118_ ( 110 | .a(jinkela_wire_55), 111 | .b(jinkela_wire_63), 112 | .c(jinkela_wire_23) 113 | ); 114 | 115 | or_bb n_119_ ( 116 | .a(jinkela_wire_23), 117 | .b(jinkela_wire_28), 118 | .c(jinkela_wire_32) 119 | ); 120 | 121 | or_bb n_120_ ( 122 | .a(jinkela_wire_32), 123 | .b(jinkela_wire_13), 124 | .c(jinkela_wire_66) 125 | ); 126 | 127 | and_bb n_121_ ( 128 | .a(jinkela_wire_32), 129 | .b(jinkela_wire_13), 130 | .c(jinkela_wire_17) 131 | ); 132 | 133 | and_bi n_122_ ( 134 | .a(jinkela_wire_66), 135 | .b(jinkela_wire_17), 136 | .c(s_5_) 137 | ); 138 | 139 | and_ii n_123_ ( 140 | .a(jinkela_wire_28), 141 | .b(jinkela_wire_40), 142 | .c(jinkela_wire_57) 143 | ); 144 | 145 | and_bb n_124_ ( 146 | .a(b_6_), 147 | .b(a_6_), 148 | .c(jinkela_wire_54) 149 | ); 150 | 151 | and_ii n_125_ ( 152 | .a(b_6_), 153 | .b(a_6_), 154 | .c(jinkela_wire_22) 155 | ); 156 | 157 | or_bb n_126_ ( 158 | .a(jinkela_wire_22), 159 | .b(jinkela_wire_54), 160 | .c(jinkela_wire_3) 161 | ); 162 | 163 | and_ii n_127_ ( 164 | .a(jinkela_wire_3), 165 | .b(jinkela_wire_57), 166 | .c(jinkela_wire_21) 167 | ); 168 | 169 | and_bb n_128_ ( 170 | .a(jinkela_wire_3), 171 | .b(jinkela_wire_57), 172 | .c(jinkela_wire_18) 173 | ); 174 | 175 | or_bb n_129_ ( 176 | .a(jinkela_wire_18), 177 | .b(jinkela_wire_21), 178 | .c(jinkela_wire_7) 179 | ); 180 | 181 | or_bb n_130_ ( 182 | .a(jinkela_wire_7), 183 | .b(jinkela_wire_66), 184 | .c(jinkela_wire_0) 185 | ); 186 | 187 | and_bb n_131_ ( 188 | .a(jinkela_wire_7), 189 | .b(jinkela_wire_66), 190 | .c(jinkela_wire_10) 191 | ); 192 | 193 | and_bi n_132_ ( 194 | .a(jinkela_wire_0), 195 | .b(jinkela_wire_10), 196 | .c(s_6_) 197 | ); 198 | 199 | and_ii n_133_ ( 200 | .a(jinkela_wire_21), 201 | .b(jinkela_wire_54), 202 | .c(jinkela_wire_51) 203 | ); 204 | 205 | and_bb n_134_ ( 206 | .a(b_7_), 207 | .b(a_7_), 208 | .c(jinkela_wire_26) 209 | ); 210 | 211 | and_ii n_135_ ( 212 | .a(b_7_), 213 | .b(a_7_), 214 | .c(jinkela_wire_1) 215 | ); 216 | 217 | or_bb n_136_ ( 218 | .a(jinkela_wire_1), 219 | .b(jinkela_wire_26), 220 | .c(jinkela_wire_29) 221 | ); 222 | 223 | and_ii n_137_ ( 224 | .a(jinkela_wire_29), 225 | .b(jinkela_wire_51), 226 | .c(jinkela_wire_31) 227 | ); 228 | 229 | and_bb n_138_ ( 230 | .a(jinkela_wire_29), 231 | .b(jinkela_wire_51), 232 | .c(jinkela_wire_50) 233 | ); 234 | 235 | or_bb n_139_ ( 236 | .a(jinkela_wire_50), 237 | .b(jinkela_wire_31), 238 | .c(jinkela_wire_11) 239 | ); 240 | 241 | and_ii n_140_ ( 242 | .a(jinkela_wire_11), 243 | .b(jinkela_wire_0), 244 | .c(jinkela_wire_34) 245 | ); 246 | 247 | or_ii n_141_ ( 248 | .a(jinkela_wire_11), 249 | .b(jinkela_wire_0), 250 | .c(jinkela_wire_43) 251 | ); 252 | 253 | and_bi n_142_ ( 254 | .a(jinkela_wire_43), 255 | .b(jinkela_wire_34), 256 | .c(s_7_) 257 | ); 258 | 259 | or_bb n_143_ ( 260 | .a(jinkela_wire_31), 261 | .b(jinkela_wire_26), 262 | .c(jinkela_wire_49) 263 | ); 264 | 265 | or_bb n_144_ ( 266 | .a(jinkela_wire_49), 267 | .b(jinkela_wire_34), 268 | .c(cout) 269 | ); 270 | 271 | or_ii n_074_ ( 272 | .a(b_1_), 273 | .b(a_1_), 274 | .c(jinkela_wire_42) 275 | ); 276 | 277 | and_ii n_075_ ( 278 | .a(b_1_), 279 | .b(a_1_), 280 | .c(jinkela_wire_33) 281 | ); 282 | 283 | and_bi n_076_ ( 284 | .a(jinkela_wire_42), 285 | .b(jinkela_wire_33), 286 | .c(jinkela_wire_9) 287 | ); 288 | 289 | and_ii n_077_ ( 290 | .a(jinkela_wire_8), 291 | .b(jinkela_wire_6), 292 | .c(jinkela_wire_14) 293 | ); 294 | 295 | or_bi n_078_ ( 296 | .a(jinkela_wire_9), 297 | .b(jinkela_wire_14), 298 | .c(jinkela_wire_56) 299 | ); 300 | 301 | and_bi n_079_ ( 302 | .a(jinkela_wire_9), 303 | .b(jinkela_wire_14), 304 | .c(jinkela_wire_47) 305 | ); 306 | 307 | and_bi n_080_ ( 308 | .a(jinkela_wire_56), 309 | .b(jinkela_wire_47), 310 | .c(s_1_) 311 | ); 312 | 313 | or_ii n_081_ ( 314 | .a(jinkela_wire_9), 315 | .b(jinkela_wire_8), 316 | .c(jinkela_wire_46) 317 | ); 318 | 319 | or_ii n_082_ ( 320 | .a(b_2_), 321 | .b(a_2_), 322 | .c(jinkela_wire_2) 323 | ); 324 | 325 | or_bb n_083_ ( 326 | .a(b_2_), 327 | .b(a_2_), 328 | .c(jinkela_wire_37) 329 | ); 330 | 331 | or_ii n_084_ ( 332 | .a(jinkela_wire_37), 333 | .b(jinkela_wire_2), 334 | .c(jinkela_wire_41) 335 | ); 336 | 337 | and_bi n_085_ ( 338 | .a(jinkela_wire_6), 339 | .b(jinkela_wire_33), 340 | .c(jinkela_wire_65) 341 | ); 342 | 343 | and_bi n_086_ ( 344 | .a(jinkela_wire_42), 345 | .b(jinkela_wire_65), 346 | .c(jinkela_wire_38) 347 | ); 348 | 349 | and_ii n_087_ ( 350 | .a(jinkela_wire_38), 351 | .b(jinkela_wire_41), 352 | .c(jinkela_wire_27) 353 | ); 354 | 355 | and_bb n_088_ ( 356 | .a(jinkela_wire_38), 357 | .b(jinkela_wire_41), 358 | .c(jinkela_wire_53) 359 | ); 360 | 361 | or_bb n_089_ ( 362 | .a(jinkela_wire_53), 363 | .b(jinkela_wire_27), 364 | .c(jinkela_wire_25) 365 | ); 366 | 367 | or_bb n_090_ ( 368 | .a(jinkela_wire_25), 369 | .b(jinkela_wire_46), 370 | .c(jinkela_wire_16) 371 | ); 372 | 373 | and_bb n_091_ ( 374 | .a(jinkela_wire_25), 375 | .b(jinkela_wire_46), 376 | .c(jinkela_wire_58) 377 | ); 378 | 379 | and_bi n_092_ ( 380 | .a(jinkela_wire_16), 381 | .b(jinkela_wire_58), 382 | .c(s_2_) 383 | ); 384 | 385 | and_bi n_093_ ( 386 | .a(jinkela_wire_2), 387 | .b(jinkela_wire_27), 388 | .c(jinkela_wire_15) 389 | ); 390 | 391 | and_bb n_094_ ( 392 | .a(b_3_), 393 | .b(a_3_), 394 | .c(jinkela_wire_44) 395 | ); 396 | 397 | and_ii n_095_ ( 398 | .a(b_3_), 399 | .b(a_3_), 400 | .c(jinkela_wire_60) 401 | ); 402 | 403 | or_bb n_096_ ( 404 | .a(jinkela_wire_60), 405 | .b(jinkela_wire_44), 406 | .c(jinkela_wire_48) 407 | ); 408 | 409 | and_ii n_097_ ( 410 | .a(jinkela_wire_48), 411 | .b(jinkela_wire_15), 412 | .c(jinkela_wire_5) 413 | ); 414 | 415 | and_bb n_098_ ( 416 | .a(jinkela_wire_48), 417 | .b(jinkela_wire_15), 418 | .c(jinkela_wire_35) 419 | ); 420 | 421 | or_bb n_099_ ( 422 | .a(jinkela_wire_35), 423 | .b(jinkela_wire_5), 424 | .c(jinkela_wire_62) 425 | ); 426 | 427 | or_bb n_100_ ( 428 | .a(jinkela_wire_62), 429 | .b(jinkela_wire_16), 430 | .c(jinkela_wire_12) 431 | ); 432 | 433 | and_bb n_101_ ( 434 | .a(jinkela_wire_62), 435 | .b(jinkela_wire_16), 436 | .c(jinkela_wire_59) 437 | ); 438 | 439 | and_bi n_102_ ( 440 | .a(jinkela_wire_12), 441 | .b(jinkela_wire_59), 442 | .c(s_3_) 443 | ); 444 | 445 | and_ii n_103_ ( 446 | .a(jinkela_wire_5), 447 | .b(jinkela_wire_44), 448 | .c(jinkela_wire_24) 449 | ); 450 | 451 | and_bb n_104_ ( 452 | .a(b_4_), 453 | .b(a_4_), 454 | .c(jinkela_wire_30) 455 | ); 456 | 457 | and_ii n_105_ ( 458 | .a(b_4_), 459 | .b(a_4_), 460 | .c(jinkela_wire_45) 461 | ); 462 | 463 | and_bb n_068_ ( 464 | .a(b_0_), 465 | .b(a_0_), 466 | .c(jinkela_wire_6) 467 | ); 468 | 469 | or_bb n_106_ ( 470 | .a(jinkela_wire_45), 471 | .b(jinkela_wire_30), 472 | .c(jinkela_wire_19) 473 | ); 474 | 475 | and_ii n_107_ ( 476 | .a(jinkela_wire_19), 477 | .b(jinkela_wire_24), 478 | .c(jinkela_wire_52) 479 | ); 480 | 481 | and_bb n_108_ ( 482 | .a(jinkela_wire_19), 483 | .b(jinkela_wire_24), 484 | .c(jinkela_wire_36) 485 | ); 486 | 487 | or_bb n_109_ ( 488 | .a(jinkela_wire_36), 489 | .b(jinkela_wire_52), 490 | .c(jinkela_wire_61) 491 | ); 492 | 493 | or_bb n_110_ ( 494 | .a(jinkela_wire_61), 495 | .b(jinkela_wire_12), 496 | .c(jinkela_wire_13) 497 | ); 498 | 499 | and_ii n_073_ ( 500 | .a(jinkela_wire_64), 501 | .b(jinkela_wire_8), 502 | .c(s_0_) 503 | ); 504 | 505 | and_bb n_111_ ( 506 | .a(jinkela_wire_61), 507 | .b(jinkela_wire_12), 508 | .c(jinkela_wire_39) 509 | ); 510 | 511 | and_bi n_071_ ( 512 | .a(c), 513 | .b(jinkela_wire_4), 514 | .c(jinkela_wire_8) 515 | ); 516 | 517 | and_ii n_069_ ( 518 | .a(b_0_), 519 | .b(a_0_), 520 | .c(jinkela_wire_67) 521 | ); 522 | 523 | and_bi n_112_ ( 524 | .a(jinkela_wire_13), 525 | .b(jinkela_wire_39), 526 | .c(s_4_) 527 | ); 528 | 529 | or_bb n_070_ ( 530 | .a(jinkela_wire_67), 531 | .b(jinkela_wire_6), 532 | .c(jinkela_wire_4) 533 | ); 534 | 535 | and_ii n_113_ ( 536 | .a(jinkela_wire_52), 537 | .b(jinkela_wire_30), 538 | .c(jinkela_wire_63) 539 | ); 540 | 541 | and_bb n_114_ ( 542 | .a(b_5_), 543 | .b(a_5_), 544 | .c(jinkela_wire_40) 545 | ); 546 | 547 | and_bi n_072_ ( 548 | .a(jinkela_wire_4), 549 | .b(c), 550 | .c(jinkela_wire_64) 551 | ); 552 | 553 | and_ii n_115_ ( 554 | .a(b_5_), 555 | .b(a_5_), 556 | .c(jinkela_wire_20) 557 | ); 558 | 559 | endmodule 560 | -------------------------------------------------------------------------------- /ISCAS/original/_apc16_new.v: -------------------------------------------------------------------------------- 1 | module apc16bits(in_0_, in_1_, in_2_, in_3_, in_4_, in_5_, in_6_, in_7_, in_8_, in_9_, in_10_, in_11_, in_12_, in_13_, in_14_, in_15_, out_0_, out_1_, out_2_, out_3_, out_4_); 2 | wire _00_; 3 | wire _01_; 4 | wire _02_; 5 | wire _adder1_lv1_a ; 6 | wire _adder1_lv1_b ; 7 | wire _adder1_lv1_cin ; 8 | wire _adder1_lv1_cout ; 9 | wire _adder1_lv1_d ; 10 | wire _adder1_lv1_m3_d ; 11 | wire _adder1_lv2_b ; 12 | wire _adder1_lv2_cin ; 13 | wire _adder1_lv2_cout ; 14 | wire _adder1_lv2_d ; 15 | wire _adder1_lv2_m3_d ; 16 | wire _adder2_lv1_a ; 17 | wire _adder2_lv1_b ; 18 | wire _adder2_lv1_cin ; 19 | wire _adder2_lv1_d ; 20 | wire _adder2_lv1_m3_d ; 21 | wire _adder2_lv2_cin ; 22 | wire _adder2_lv2_d ; 23 | wire _adder2_lv2_m3_d ; 24 | wire _half1_a ; 25 | wire _half1_cout ; 26 | wire _half2_cout ; 27 | input in_0_; 28 | input in_1_; 29 | input in_2_; 30 | input in_3_; 31 | input in_4_; 32 | input in_5_; 33 | input in_6_; 34 | input in_7_; 35 | input in_8_; 36 | input in_9_; 37 | input in_10_; 38 | input in_11_; 39 | input in_12_; 40 | input in_13_; 41 | input in_14_; 42 | input in_15_; 43 | output out_0_; 44 | output out_1_; 45 | output out_2_; 46 | output out_3_; 47 | output out_4_; 48 | or_bb _03_ ( 49 | .a(in_1_), 50 | .b(in_0_), 51 | .c(_adder1_lv1_a ) 52 | ); 53 | and_bb _04_ ( 54 | .a(in_3_), 55 | .b(in_2_), 56 | .c(_adder1_lv1_b ) 57 | ); 58 | or_bb _05_ ( 59 | .a(in_5_), 60 | .b(in_4_), 61 | .c(_adder1_lv1_cin ) 62 | ); 63 | and_bb _06_ ( 64 | .a(in_7_), 65 | .b(in_6_), 66 | .c(_adder2_lv1_a ) 67 | ); 68 | or_bb _07_ ( 69 | .a(in_9_), 70 | .b(in_8_), 71 | .c(_adder2_lv1_b ) 72 | ); 73 | and_bb _08_ ( 74 | .a(in_11_), 75 | .b(in_10_), 76 | .c(_adder2_lv1_cin ) 77 | ); 78 | or_bb _09_ ( 79 | .a(in_13_), 80 | .b(in_12_), 81 | .c(_adder2_lv2_cin ) 82 | ); 83 | and_bb _10_ ( 84 | .a(in_15_), 85 | .b(in_14_), 86 | .c(_half1_a ) 87 | ); 88 | maj_bbb _11_ ( 89 | .a(_adder1_lv1_cin ), 90 | .b(_adder1_lv1_b ), 91 | .c(_adder1_lv1_a ), 92 | .d(_adder1_lv1_cout ) 93 | ); 94 | maj_bbi _12_ ( 95 | .a(_adder1_lv1_b ), 96 | .b(_adder1_lv1_a ), 97 | .c(_adder1_lv1_cin ), 98 | .d(_adder1_lv1_d ) 99 | ); 100 | maj_bbi _13_ ( 101 | .a(_adder1_lv1_d ), 102 | .b(_adder1_lv1_cin ), 103 | .c(_adder1_lv1_cout ), 104 | .d(_adder1_lv1_m3_d ) 105 | ); 106 | maj_bbb _14_ ( 107 | .a(_adder1_lv2_cin ), 108 | .b(_adder1_lv2_b ), 109 | .c(_adder1_lv1_cout ), 110 | .d(_adder1_lv2_cout ) 111 | ); 112 | maj_bbi _15_ ( 113 | .a(_adder1_lv2_b ), 114 | .b(_adder1_lv1_cout ), 115 | .c(_adder1_lv2_cin ), 116 | .d(_adder1_lv2_d ) 117 | ); 118 | maj_bbi _16_ ( 119 | .a(_adder1_lv2_d ), 120 | .b(_adder1_lv2_cin ), 121 | .c(_adder1_lv2_cout ), 122 | .d(_adder1_lv2_m3_d ) 123 | ); 124 | maj_bbb _17_ ( 125 | .a(_adder2_lv1_cin ), 126 | .b(_adder2_lv1_b ), 127 | .c(_adder2_lv1_a ), 128 | .d(_adder1_lv2_b ) 129 | ); 130 | maj_bbi _18_ ( 131 | .a(_adder2_lv1_b ), 132 | .b(_adder2_lv1_a ), 133 | .c(_adder2_lv1_cin ), 134 | .d(_adder2_lv1_d ) 135 | ); 136 | maj_bbi _19_ ( 137 | .a(_adder2_lv1_d ), 138 | .b(_adder2_lv1_cin ), 139 | .c(_adder1_lv2_b ), 140 | .d(_adder2_lv1_m3_d ) 141 | ); 142 | maj_bbb _20_ ( 143 | .a(_adder2_lv2_cin ), 144 | .b(_adder2_lv1_m3_d ), 145 | .c(_adder1_lv1_m3_d ), 146 | .d(_adder1_lv2_cin ) 147 | ); 148 | maj_bbi _21_ ( 149 | .a(_adder2_lv1_m3_d ), 150 | .b(_adder1_lv1_m3_d ), 151 | .c(_adder2_lv2_cin ), 152 | .d(_adder2_lv2_d ) 153 | ); 154 | maj_bbi _22_ ( 155 | .a(_adder2_lv2_d ), 156 | .b(_adder2_lv2_cin ), 157 | .c(_adder1_lv2_cin ), 158 | .d(_adder2_lv2_m3_d ) 159 | ); 160 | and_bb _23_ ( 161 | .a(_adder2_lv2_m3_d ), 162 | .b(_half1_a ), 163 | .c(_half1_cout ) 164 | ); 165 | or_bb _24_ ( 166 | .a(_adder2_lv2_m3_d ), 167 | .b(_half1_a ), 168 | .c(_00_) 169 | ); 170 | and_bi _25_ ( 171 | .a(_00_), 172 | .b(_half1_cout ), 173 | .c(out_1_) 174 | ); 175 | and_bb _26_ ( 176 | .a(_half1_cout ), 177 | .b(_adder1_lv2_m3_d ), 178 | .c(_half2_cout ) 179 | ); 180 | or_bb _27_ ( 181 | .a(_half1_cout ), 182 | .b(_adder1_lv2_m3_d ), 183 | .c(_01_) 184 | ); 185 | and_bi _28_ ( 186 | .a(_01_), 187 | .b(_half2_cout ), 188 | .c(out_2_) 189 | ); 190 | and_bb _29_ ( 191 | .a(_half2_cout ), 192 | .b(_adder1_lv2_cout ), 193 | .c(out_4_) 194 | ); 195 | or_bb _30_ ( 196 | .a(_half2_cout ), 197 | .b(_adder1_lv2_cout ), 198 | .c(_02_) 199 | ); 200 | and_bi _31_ ( 201 | .a(_02_), 202 | .b(out_4_), 203 | .c(out_3_) 204 | ); 205 | assign out_0_ = 1'b0; 206 | endmodule 207 | -------------------------------------------------------------------------------- /ISCAS/original/_apc32_new.v: -------------------------------------------------------------------------------- 1 | module apc32bits(in_6_,in_15_,in_13_,in_14_,in_2_,in_10_,in_24_,in_8_,in_22_,in_20_,in_7_,in_25_,in_5_,in_4_,in_23_,in_27_,in_1_,in_0_,in_16_,in_30_,in_26_,in_12_,in_11_,in_17_,in_19_,in_18_,in_21_,in_31_,in_29_,in_28_,in_9_,in_3_,out_2_,out_1_,out_3_,out_0_,out_5_,out_4_); 2 | wire jinkela_wire_0; 3 | wire jinkela_wire_1; 4 | wire jinkela_wire_2; 5 | wire jinkela_wire_3; 6 | wire jinkela_wire_4; 7 | wire jinkela_wire_5; 8 | wire jinkela_wire_6; 9 | wire jinkela_wire_7; 10 | wire jinkela_wire_8; 11 | wire jinkela_wire_9; 12 | wire jinkela_wire_10; 13 | wire jinkela_wire_11; 14 | wire jinkela_wire_12; 15 | wire jinkela_wire_13; 16 | wire jinkela_wire_14; 17 | wire jinkela_wire_15; 18 | wire jinkela_wire_16; 19 | wire jinkela_wire_17; 20 | wire jinkela_wire_18; 21 | wire jinkela_wire_19; 22 | wire jinkela_wire_20; 23 | wire jinkela_wire_21; 24 | wire jinkela_wire_22; 25 | wire jinkela_wire_23; 26 | wire jinkela_wire_24; 27 | wire jinkela_wire_25; 28 | wire jinkela_wire_26; 29 | wire jinkela_wire_27; 30 | wire jinkela_wire_28; 31 | wire jinkela_wire_29; 32 | wire jinkela_wire_30; 33 | wire jinkela_wire_31; 34 | wire jinkela_wire_32; 35 | wire jinkela_wire_33; 36 | wire jinkela_wire_34; 37 | wire jinkela_wire_35; 38 | wire jinkela_wire_36; 39 | wire jinkela_wire_37; 40 | wire jinkela_wire_38; 41 | wire jinkela_wire_39; 42 | wire jinkela_wire_40; 43 | wire jinkela_wire_41; 44 | wire jinkela_wire_42; 45 | wire jinkela_wire_43; 46 | wire jinkela_wire_44; 47 | wire jinkela_wire_45; 48 | wire jinkela_wire_46; 49 | wire jinkela_wire_47; 50 | wire jinkela_wire_48; 51 | wire jinkela_wire_49; 52 | wire jinkela_wire_50; 53 | wire jinkela_wire_51; 54 | wire jinkela_wire_52; 55 | wire jinkela_wire_53; 56 | wire jinkela_wire_54; 57 | wire jinkela_wire_55; 58 | wire jinkela_wire_56; 59 | wire jinkela_wire_57; 60 | wire jinkela_wire_58; 61 | wire jinkela_wire_59; 62 | wire jinkela_wire_60; 63 | wire jinkela_wire_61; 64 | wire jinkela_wire_62; 65 | wire jinkela_wire_63; 66 | wire jinkela_wire_64; 67 | wire jinkela_wire_65; 68 | wire jinkela_wire_66; 69 | wire jinkela_wire_67; 70 | wire jinkela_wire_68; 71 | wire jinkela_wire_69; 72 | wire jinkela_wire_70; 73 | wire jinkela_wire_71; 74 | wire jinkela_wire_72; 75 | wire jinkela_wire_73; 76 | wire jinkela_wire_74; 77 | wire jinkela_wire_75; 78 | wire jinkela_wire_76; 79 | wire jinkela_wire_77; 80 | wire jinkela_wire_78; 81 | wire jinkela_wire_79; 82 | wire jinkela_wire_80; 83 | wire jinkela_wire_81; 84 | wire jinkela_wire_82; 85 | input in_6_; 86 | input in_15_; 87 | input in_13_; 88 | input in_14_; 89 | input in_2_; 90 | input in_10_; 91 | input in_24_; 92 | input in_8_; 93 | input in_22_; 94 | input in_20_; 95 | input in_7_; 96 | input in_25_; 97 | input in_5_; 98 | input in_4_; 99 | input in_23_; 100 | input in_27_; 101 | input in_1_; 102 | input in_0_; 103 | input in_16_; 104 | input in_30_; 105 | input in_26_; 106 | input in_12_; 107 | input in_11_; 108 | input in_17_; 109 | input in_19_; 110 | input in_18_; 111 | input in_21_; 112 | input in_31_; 113 | input in_29_; 114 | input in_28_; 115 | input in_9_; 116 | input in_3_; 117 | output out_2_; 118 | output out_1_; 119 | output out_3_; 120 | output out_0_; 121 | output out_5_; 122 | output out_4_; 123 | 124 | or_bi _037_ ( 125 | .b(jinkela_wire_61), 126 | .a(jinkela_wire_41), 127 | .c(jinkela_wire_46) 128 | ); 129 | 130 | and_bi _038_ ( 131 | .b(jinkela_wire_61), 132 | .a(jinkela_wire_41), 133 | .c(jinkela_wire_51) 134 | ); 135 | 136 | and_bi _039_ ( 137 | .b(jinkela_wire_51), 138 | .a(jinkela_wire_46), 139 | .c(out_1_) 140 | ); 141 | 142 | maj_bii _040_ ( 143 | .b(jinkela_wire_11), 144 | .a(jinkela_wire_41), 145 | .c(jinkela_wire_28), 146 | .d(jinkela_wire_56) 147 | ); 148 | 149 | or_ii _041_ ( 150 | .b(jinkela_wire_10), 151 | .a(jinkela_wire_64), 152 | .c(jinkela_wire_20) 153 | ); 154 | 155 | and_ii _042_ ( 156 | .b(jinkela_wire_10), 157 | .a(jinkela_wire_64), 158 | .c(jinkela_wire_3) 159 | ); 160 | 161 | and_bi _043_ ( 162 | .b(jinkela_wire_3), 163 | .a(jinkela_wire_20), 164 | .c(jinkela_wire_9) 165 | ); 166 | 167 | or_bi _044_ ( 168 | .b(jinkela_wire_9), 169 | .a(jinkela_wire_56), 170 | .c(jinkela_wire_17) 171 | ); 172 | 173 | and_bi _045_ ( 174 | .b(jinkela_wire_9), 175 | .a(jinkela_wire_56), 176 | .c(jinkela_wire_67) 177 | ); 178 | 179 | and_bi _046_ ( 180 | .b(jinkela_wire_67), 181 | .a(jinkela_wire_17), 182 | .c(out_2_) 183 | ); 184 | 185 | maj_bii _047_ ( 186 | .b(jinkela_wire_64), 187 | .a(jinkela_wire_56), 188 | .c(jinkela_wire_10), 189 | .d(jinkela_wire_59) 190 | ); 191 | 192 | and_bi _119_ ( 193 | .b(jinkela_wire_35), 194 | .a(jinkela_wire_54), 195 | .c(jinkela_wire_22) 196 | ); 197 | 198 | or_ii _048_ ( 199 | .b(jinkela_wire_15), 200 | .a(jinkela_wire_22), 201 | .c(jinkela_wire_5) 202 | ); 203 | 204 | and_ii _049_ ( 205 | .b(jinkela_wire_15), 206 | .a(jinkela_wire_22), 207 | .c(jinkela_wire_1) 208 | ); 209 | 210 | and_bi _050_ ( 211 | .b(jinkela_wire_1), 212 | .a(jinkela_wire_5), 213 | .c(jinkela_wire_60) 214 | ); 215 | 216 | or_bi _051_ ( 217 | .b(jinkela_wire_60), 218 | .a(jinkela_wire_59), 219 | .c(jinkela_wire_80) 220 | ); 221 | 222 | and_bi _052_ ( 223 | .b(jinkela_wire_60), 224 | .a(jinkela_wire_59), 225 | .c(jinkela_wire_21) 226 | ); 227 | 228 | and_bi _053_ ( 229 | .b(jinkela_wire_21), 230 | .a(jinkela_wire_80), 231 | .c(out_3_) 232 | ); 233 | 234 | maj_bii _054_ ( 235 | .b(jinkela_wire_22), 236 | .a(jinkela_wire_59), 237 | .c(jinkela_wire_15), 238 | .d(jinkela_wire_42) 239 | ); 240 | 241 | or_ii _055_ ( 242 | .b(jinkela_wire_27), 243 | .a(jinkela_wire_35), 244 | .c(jinkela_wire_82) 245 | ); 246 | 247 | and_ii _056_ ( 248 | .b(jinkela_wire_27), 249 | .a(jinkela_wire_35), 250 | .c(jinkela_wire_73) 251 | ); 252 | 253 | and_bi _057_ ( 254 | .b(jinkela_wire_73), 255 | .a(jinkela_wire_82), 256 | .c(jinkela_wire_2) 257 | ); 258 | 259 | or_bi _058_ ( 260 | .b(jinkela_wire_2), 261 | .a(jinkela_wire_42), 262 | .c(jinkela_wire_52) 263 | ); 264 | 265 | and_bi _059_ ( 266 | .b(jinkela_wire_2), 267 | .a(jinkela_wire_42), 268 | .c(jinkela_wire_32) 269 | ); 270 | 271 | and_bi _060_ ( 272 | .b(jinkela_wire_32), 273 | .a(jinkela_wire_52), 274 | .c(out_4_) 275 | ); 276 | 277 | maj_bbi _061_ ( 278 | .b(jinkela_wire_27), 279 | .a(jinkela_wire_35), 280 | .c(jinkela_wire_42), 281 | .d(out_5_) 282 | ); 283 | 284 | or_bb _062_ ( 285 | .b(in_16_), 286 | .a(in_17_), 287 | .c(jinkela_wire_25) 288 | ); 289 | 290 | and_bb _063_ ( 291 | .b(in_18_), 292 | .a(in_19_), 293 | .c(jinkela_wire_68) 294 | ); 295 | 296 | or_bb _064_ ( 297 | .b(in_20_), 298 | .a(in_21_), 299 | .c(jinkela_wire_33) 300 | ); 301 | 302 | and_bb _065_ ( 303 | .b(in_22_), 304 | .a(in_23_), 305 | .c(jinkela_wire_6) 306 | ); 307 | 308 | or_bb _066_ ( 309 | .b(in_24_), 310 | .a(in_25_), 311 | .c(jinkela_wire_58) 312 | ); 313 | 314 | and_bb _067_ ( 315 | .b(in_26_), 316 | .a(in_27_), 317 | .c(jinkela_wire_12) 318 | ); 319 | 320 | or_bb _068_ ( 321 | .b(in_28_), 322 | .a(in_29_), 323 | .c(jinkela_wire_48) 324 | ); 325 | 326 | and_bb _069_ ( 327 | .b(in_30_), 328 | .a(in_31_), 329 | .c(jinkela_wire_72) 330 | ); 331 | 332 | maj_bbb _070_ ( 333 | .b(jinkela_wire_68), 334 | .a(jinkela_wire_33), 335 | .c(jinkela_wire_25), 336 | .d(jinkela_wire_0) 337 | ); 338 | 339 | maj_bbi _071_ ( 340 | .b(jinkela_wire_25), 341 | .a(jinkela_wire_68), 342 | .c(jinkela_wire_33), 343 | .d(jinkela_wire_74) 344 | ); 345 | 346 | maj_bbi _072_ ( 347 | .b(jinkela_wire_33), 348 | .a(jinkela_wire_74), 349 | .c(jinkela_wire_0), 350 | .d(jinkela_wire_49) 351 | ); 352 | 353 | maj_bbb _073_ ( 354 | .b(jinkela_wire_65), 355 | .a(jinkela_wire_43), 356 | .c(jinkela_wire_0), 357 | .d(jinkela_wire_36) 358 | ); 359 | 360 | maj_bbi _074_ ( 361 | .b(jinkela_wire_0), 362 | .a(jinkela_wire_65), 363 | .c(jinkela_wire_43), 364 | .d(jinkela_wire_29) 365 | ); 366 | 367 | maj_bbi _075_ ( 368 | .b(jinkela_wire_43), 369 | .a(jinkela_wire_29), 370 | .c(jinkela_wire_36), 371 | .d(jinkela_wire_37) 372 | ); 373 | 374 | maj_bbb _076_ ( 375 | .b(jinkela_wire_58), 376 | .a(jinkela_wire_12), 377 | .c(jinkela_wire_6), 378 | .d(jinkela_wire_65) 379 | ); 380 | 381 | maj_bbi _077_ ( 382 | .b(jinkela_wire_6), 383 | .a(jinkela_wire_58), 384 | .c(jinkela_wire_12), 385 | .d(jinkela_wire_7) 386 | ); 387 | 388 | maj_bbi _078_ ( 389 | .b(jinkela_wire_12), 390 | .a(jinkela_wire_7), 391 | .c(jinkela_wire_65), 392 | .d(jinkela_wire_8) 393 | ); 394 | 395 | maj_bbb _079_ ( 396 | .b(jinkela_wire_8), 397 | .a(jinkela_wire_48), 398 | .c(jinkela_wire_49), 399 | .d(jinkela_wire_43) 400 | ); 401 | 402 | maj_bbi _080_ ( 403 | .b(jinkela_wire_49), 404 | .a(jinkela_wire_8), 405 | .c(jinkela_wire_48), 406 | .d(jinkela_wire_53) 407 | ); 408 | 409 | maj_bbi _081_ ( 410 | .b(jinkela_wire_48), 411 | .a(jinkela_wire_53), 412 | .c(jinkela_wire_43), 413 | .d(jinkela_wire_50) 414 | ); 415 | 416 | and_bb _082_ ( 417 | .b(jinkela_wire_72), 418 | .a(jinkela_wire_50), 419 | .c(jinkela_wire_44) 420 | ); 421 | 422 | or_bb _083_ ( 423 | .b(jinkela_wire_72), 424 | .a(jinkela_wire_50), 425 | .c(jinkela_wire_76) 426 | ); 427 | 428 | and_bi _084_ ( 429 | .b(jinkela_wire_44), 430 | .a(jinkela_wire_76), 431 | .c(jinkela_wire_28) 432 | ); 433 | 434 | and_bb _085_ ( 435 | .b(jinkela_wire_37), 436 | .a(jinkela_wire_44), 437 | .c(jinkela_wire_23) 438 | ); 439 | 440 | or_bb _086_ ( 441 | .b(jinkela_wire_37), 442 | .a(jinkela_wire_44), 443 | .c(jinkela_wire_13) 444 | ); 445 | 446 | and_bi _087_ ( 447 | .b(jinkela_wire_23), 448 | .a(jinkela_wire_13), 449 | .c(jinkela_wire_10) 450 | ); 451 | 452 | and_bb _088_ ( 453 | .b(jinkela_wire_36), 454 | .a(jinkela_wire_23), 455 | .c(jinkela_wire_27) 456 | ); 457 | 458 | or_bb _089_ ( 459 | .b(jinkela_wire_36), 460 | .a(jinkela_wire_23), 461 | .c(jinkela_wire_31) 462 | ); 463 | 464 | and_bi _090_ ( 465 | .b(jinkela_wire_27), 466 | .a(jinkela_wire_31), 467 | .c(jinkela_wire_15) 468 | ); 469 | 470 | or_bb _091_ ( 471 | .b(in_0_), 472 | .a(in_1_), 473 | .c(jinkela_wire_57) 474 | ); 475 | 476 | and_bb _092_ ( 477 | .b(in_2_), 478 | .a(in_3_), 479 | .c(jinkela_wire_45) 480 | ); 481 | 482 | or_bb _093_ ( 483 | .b(in_4_), 484 | .a(in_5_), 485 | .c(jinkela_wire_39) 486 | ); 487 | 488 | and_bb _094_ ( 489 | .b(in_6_), 490 | .a(in_7_), 491 | .c(jinkela_wire_55) 492 | ); 493 | 494 | or_bb _095_ ( 495 | .b(in_8_), 496 | .a(in_9_), 497 | .c(jinkela_wire_75) 498 | ); 499 | 500 | and_bb _096_ ( 501 | .b(in_10_), 502 | .a(in_11_), 503 | .c(jinkela_wire_81) 504 | ); 505 | 506 | or_bb _097_ ( 507 | .b(in_12_), 508 | .a(in_13_), 509 | .c(jinkela_wire_79) 510 | ); 511 | 512 | and_bb _098_ ( 513 | .b(in_14_), 514 | .a(in_15_), 515 | .c(jinkela_wire_30) 516 | ); 517 | 518 | maj_bbb _099_ ( 519 | .b(jinkela_wire_45), 520 | .a(jinkela_wire_39), 521 | .c(jinkela_wire_57), 522 | .d(jinkela_wire_62) 523 | ); 524 | 525 | maj_bbi _100_ ( 526 | .b(jinkela_wire_57), 527 | .a(jinkela_wire_45), 528 | .c(jinkela_wire_39), 529 | .d(jinkela_wire_70) 530 | ); 531 | 532 | maj_bbi _101_ ( 533 | .b(jinkela_wire_39), 534 | .a(jinkela_wire_70), 535 | .c(jinkela_wire_62), 536 | .d(jinkela_wire_26) 537 | ); 538 | 539 | maj_bbb _102_ ( 540 | .b(jinkela_wire_78), 541 | .a(jinkela_wire_14), 542 | .c(jinkela_wire_62), 543 | .d(jinkela_wire_66) 544 | ); 545 | 546 | maj_bbi _103_ ( 547 | .b(jinkela_wire_62), 548 | .a(jinkela_wire_78), 549 | .c(jinkela_wire_14), 550 | .d(jinkela_wire_47) 551 | ); 552 | 553 | maj_bbi _104_ ( 554 | .b(jinkela_wire_14), 555 | .a(jinkela_wire_47), 556 | .c(jinkela_wire_66), 557 | .d(jinkela_wire_34) 558 | ); 559 | 560 | maj_bbb _105_ ( 561 | .b(jinkela_wire_75), 562 | .a(jinkela_wire_81), 563 | .c(jinkela_wire_55), 564 | .d(jinkela_wire_78) 565 | ); 566 | 567 | maj_bbi _106_ ( 568 | .b(jinkela_wire_55), 569 | .a(jinkela_wire_75), 570 | .c(jinkela_wire_81), 571 | .d(jinkela_wire_71) 572 | ); 573 | 574 | maj_bbi _107_ ( 575 | .b(jinkela_wire_81), 576 | .a(jinkela_wire_71), 577 | .c(jinkela_wire_78), 578 | .d(jinkela_wire_24) 579 | ); 580 | 581 | maj_bbb _108_ ( 582 | .b(jinkela_wire_24), 583 | .a(jinkela_wire_79), 584 | .c(jinkela_wire_26), 585 | .d(jinkela_wire_14) 586 | ); 587 | 588 | maj_bbi _109_ ( 589 | .b(jinkela_wire_26), 590 | .a(jinkela_wire_24), 591 | .c(jinkela_wire_79), 592 | .d(jinkela_wire_63) 593 | ); 594 | 595 | maj_bbi _110_ ( 596 | .b(jinkela_wire_79), 597 | .a(jinkela_wire_63), 598 | .c(jinkela_wire_14), 599 | .d(jinkela_wire_4) 600 | ); 601 | 602 | and_bb _111_ ( 603 | .b(jinkela_wire_30), 604 | .a(jinkela_wire_4), 605 | .c(jinkela_wire_40) 606 | ); 607 | 608 | or_bb _112_ ( 609 | .b(jinkela_wire_30), 610 | .a(jinkela_wire_4), 611 | .c(jinkela_wire_19) 612 | ); 613 | 614 | and_bi _113_ ( 615 | .b(jinkela_wire_40), 616 | .a(jinkela_wire_19), 617 | .c(jinkela_wire_11) 618 | ); 619 | 620 | and_bb _114_ ( 621 | .b(jinkela_wire_34), 622 | .a(jinkela_wire_40), 623 | .c(jinkela_wire_69) 624 | ); 625 | 626 | or_bb _115_ ( 627 | .b(jinkela_wire_34), 628 | .a(jinkela_wire_40), 629 | .c(jinkela_wire_16) 630 | ); 631 | 632 | and_bi _116_ ( 633 | .b(jinkela_wire_69), 634 | .a(jinkela_wire_16), 635 | .c(jinkela_wire_64) 636 | ); 637 | 638 | or_ii _034_ ( 639 | .b(jinkela_wire_28), 640 | .a(jinkela_wire_11), 641 | .c(jinkela_wire_38) 642 | ); 643 | 644 | and_ii _032_ ( 645 | .b(1'b0), 646 | .a(1'b0), 647 | .c(jinkela_wire_18) 648 | ); 649 | 650 | and_bb _117_ ( 651 | .b(jinkela_wire_66), 652 | .a(jinkela_wire_69), 653 | .c(jinkela_wire_35) 654 | ); 655 | 656 | and_bi _033_ ( 657 | .b(jinkela_wire_18), 658 | .a(jinkela_wire_41), 659 | .c(out_0_) 660 | ); 661 | 662 | or_bb _118_ ( 663 | .b(jinkela_wire_66), 664 | .a(jinkela_wire_69), 665 | .c(jinkela_wire_54) 666 | ); 667 | 668 | or_ii _031_ ( 669 | .b(1'b0), 670 | .a(1'b0), 671 | .c(jinkela_wire_41) 672 | ); 673 | 674 | and_ii _035_ ( 675 | .b(jinkela_wire_28), 676 | .a(jinkela_wire_11), 677 | .c(jinkela_wire_77) 678 | ); 679 | 680 | and_bi _036_ ( 681 | .b(jinkela_wire_77), 682 | .a(jinkela_wire_38), 683 | .c(jinkela_wire_61) 684 | ); 685 | 686 | endmodule 687 | -------------------------------------------------------------------------------- /ISCAS/original/adder.v: -------------------------------------------------------------------------------- 1 | module adder(a, b, c, cout, s); 2 | wire n_00_; 3 | wire n_01_; 4 | wire n_02_; 5 | wire n_03_; 6 | wire n_04_; 7 | input a; 8 | input b; 9 | input c; 10 | output cout; 11 | output s; 12 | and_bb n_05_ ( 13 | .a(b), 14 | .b(a), 15 | .c(n_01_) 16 | ); 17 | or_bb n_06_ ( 18 | .a(b), 19 | .b(a), 20 | .c(n_02_) 21 | ); 22 | or_bi n_07_ ( 23 | .a(n_01_), 24 | .b(n_02_), 25 | .c(n_03_) 26 | ); 27 | and_bi n_08_ ( 28 | .a(c), 29 | .b(n_03_), 30 | .c(n_04_) 31 | ); 32 | or_bi n_09_ ( 33 | .a(c), 34 | .b(n_03_), 35 | .c(n_00_) 36 | ); 37 | and_bi n_10_ ( 38 | .a(n_00_), 39 | .b(n_04_), 40 | .c(s) 41 | ); 42 | or_bb n_11_ ( 43 | .a(n_04_), 44 | .b(n_01_), 45 | .c(cout) 46 | ); 47 | endmodule 48 | -------------------------------------------------------------------------------- /ISCAS/original/c17.v: -------------------------------------------------------------------------------- 1 | /* Generated by Yosys 0.7 (git sha1 61f6811) */ 2 | //5 3 | module c17(N1, N2, N3, N6, N7, N22, N23); 4 | wire _0_; 5 | wire _1_; 6 | wire _2_; 7 | wire _3_; 8 | input N1; 9 | input N2; 10 | output N22; 11 | output N23; 12 | input N3; 13 | input N6; 14 | input N7; 15 | and_bb _4_ ( 16 | .a(N3), 17 | .b(N1), 18 | .c(_2_) 19 | ); 20 | or_ii _5_ ( 21 | .a(N6), 22 | .b(N3), 23 | .c(_3_) 24 | ); 25 | and_bb _6_ ( 26 | .a(_3_), 27 | .b(N2), 28 | .c(_0_) 29 | ); 30 | or_bb _7_ ( 31 | .a(_0_), 32 | .b(_2_), 33 | .c(N22) 34 | ); 35 | and_ii _8_ ( 36 | .a(N7), 37 | .b(N2), 38 | .c(_1_) 39 | ); 40 | and_bi _9_ ( 41 | .a(_3_), 42 | .b(_1_), 43 | .c(N23) 44 | ); 45 | endmodule 46 | -------------------------------------------------------------------------------- /ISCAS/original/c432.v: -------------------------------------------------------------------------------- 1 | /* Generated by Yosys 0.7 (git sha1 61f6811) */ 2 | //36 3 | module c432(N1, N4, N8, N11, N14, N17, N21, N24, N27, N30, N34, N37, N40, N43, N47, N50, N53, N56, N60, N63, N66, N69, N73, N76, N79, N82, N86, N89, N92, N95, N99, N102, N105, N108, N112, N115, N223, N329, N370, N421, N430, N431, N432); 4 | wire _000_; 5 | wire _001_; 6 | wire _002_; 7 | wire _003_; 8 | wire _004_; 9 | wire _005_; 10 | wire _006_; 11 | wire _007_; 12 | wire _008_; 13 | wire _009_; 14 | wire _010_; 15 | wire _011_; 16 | wire _012_; 17 | wire _013_; 18 | wire _014_; 19 | wire _015_; 20 | wire _016_; 21 | wire _017_; 22 | wire _018_; 23 | wire _019_; 24 | wire _020_; 25 | wire _021_; 26 | wire _022_; 27 | wire _023_; 28 | wire _024_; 29 | wire _025_; 30 | wire _026_; 31 | wire _027_; 32 | wire _028_; 33 | wire _029_; 34 | wire _030_; 35 | wire _031_; 36 | wire _032_; 37 | wire _033_; 38 | wire _034_; 39 | wire _035_; 40 | wire _036_; 41 | wire _037_; 42 | wire _038_; 43 | wire _039_; 44 | wire _040_; 45 | wire _041_; 46 | wire _042_; 47 | wire _043_; 48 | wire _044_; 49 | wire _045_; 50 | wire _046_; 51 | wire _047_; 52 | wire _048_; 53 | wire _049_; 54 | wire _050_; 55 | wire _051_; 56 | wire _052_; 57 | wire _053_; 58 | wire _054_; 59 | wire _055_; 60 | wire _056_; 61 | wire _057_; 62 | wire _058_; 63 | wire _059_; 64 | wire _060_; 65 | wire _061_; 66 | wire _062_; 67 | wire _063_; 68 | wire _064_; 69 | wire _065_; 70 | wire _066_; 71 | wire _067_; 72 | wire _068_; 73 | wire _069_; 74 | wire _070_; 75 | wire _071_; 76 | wire _072_; 77 | wire _073_; 78 | wire _074_; 79 | wire _075_; 80 | wire _076_; 81 | wire _077_; 82 | wire _078_; 83 | wire _079_; 84 | wire _080_; 85 | wire _081_; 86 | wire _082_; 87 | wire _083_; 88 | wire _084_; 89 | wire _085_; 90 | wire _086_; 91 | wire _087_; 92 | wire _088_; 93 | wire _089_; 94 | wire _090_; 95 | wire _091_; 96 | wire _092_; 97 | wire _093_; 98 | wire _094_; 99 | wire _095_; 100 | wire _096_; 101 | wire _097_; 102 | wire _098_; 103 | wire _099_; 104 | wire _100_; 105 | wire _101_; 106 | wire _102_; 107 | wire _103_; 108 | wire _104_; 109 | wire _105_; 110 | wire _106_; 111 | wire _107_; 112 | wire _108_; 113 | wire _109_; 114 | wire _110_; 115 | wire _111_; 116 | wire _112_; 117 | wire _113_; 118 | wire _114_; 119 | wire _115_; 120 | wire _116_; 121 | input N1; 122 | input N102; 123 | input N105; 124 | input N108; 125 | input N11; 126 | input N112; 127 | input N115; 128 | input N14; 129 | input N17; 130 | input N21; 131 | output N223; 132 | input N24; 133 | input N27; 134 | input N30; 135 | output N329; 136 | input N34; 137 | input N37; 138 | output N370; 139 | input N4; 140 | input N40; 141 | output N421; 142 | input N43; 143 | output N430; 144 | output N431; 145 | output N432; 146 | input N47; 147 | input N50; 148 | input N53; 149 | input N56; 150 | input N60; 151 | input N63; 152 | input N66; 153 | input N69; 154 | input N73; 155 | input N76; 156 | input N79; 157 | input N8; 158 | input N82; 159 | input N86; 160 | input N89; 161 | input N92; 162 | input N95; 163 | input N99; 164 | or_bi _117_ ( 165 | .a(N24), 166 | .b(N30), 167 | .c(_061_) 168 | ); 169 | and_bi _118_ ( 170 | .a(N108), 171 | .b(N102), 172 | .c(_062_) 173 | ); 174 | and_bi _119_ ( 175 | .a(_061_), 176 | .b(_062_), 177 | .c(_063_) 178 | ); 179 | and_bi _120_ ( 180 | .a(N4), 181 | .b(N1), 182 | .c(_064_) 183 | ); 184 | and_bi _121_ ( 185 | .a(N95), 186 | .b(N89), 187 | .c(_065_) 188 | ); 189 | and_bi _122_ ( 190 | .a(N82), 191 | .b(N76), 192 | .c(_066_) 193 | ); 194 | or_bb _123_ ( 195 | .a(_066_), 196 | .b(_065_), 197 | .c(_067_) 198 | ); 199 | or_bb _124_ ( 200 | .a(_067_), 201 | .b(_064_), 202 | .c(_068_) 203 | ); 204 | and_bi _125_ ( 205 | .a(N69), 206 | .b(N63), 207 | .c(_069_) 208 | ); 209 | and_bi _126_ ( 210 | .a(N43), 211 | .b(N37), 212 | .c(_070_) 213 | ); 214 | or_bb _127_ ( 215 | .a(_070_), 216 | .b(_069_), 217 | .c(_071_) 218 | ); 219 | and_bi _128_ ( 220 | .a(N56), 221 | .b(N50), 222 | .c(_072_) 223 | ); 224 | and_bi _129_ ( 225 | .a(N17), 226 | .b(N11), 227 | .c(_073_) 228 | ); 229 | or_bb _130_ ( 230 | .a(_073_), 231 | .b(_072_), 232 | .c(_074_) 233 | ); 234 | or_bb _131_ ( 235 | .a(_074_), 236 | .b(_071_), 237 | .c(_075_) 238 | ); 239 | or_bb _132_ ( 240 | .a(_075_), 241 | .b(_068_), 242 | .c(_076_) 243 | ); 244 | and_bi _133_ ( 245 | .a(_063_), 246 | .b(_076_), 247 | .c(_077_) 248 | ); 249 | or_ii _134_ ( 250 | .a(_077_), 251 | .b(N30), 252 | .c(_078_) 253 | ); 254 | and_bb _135_ ( 255 | .a(_078_), 256 | .b(_061_), 257 | .c(_079_) 258 | ); 259 | or_bi _136_ ( 260 | .a(_077_), 261 | .b(N102), 262 | .c(_080_) 263 | ); 264 | or_ii _137_ ( 265 | .a(_080_), 266 | .b(N108), 267 | .c(_081_) 268 | ); 269 | or_bb _138_ ( 270 | .a(_081_), 271 | .b(N112), 272 | .c(_082_) 273 | ); 274 | or_bi _139_ ( 275 | .a(_077_), 276 | .b(N76), 277 | .c(_083_) 278 | ); 279 | or_ii _140_ ( 280 | .a(_083_), 281 | .b(N82), 282 | .c(_084_) 283 | ); 284 | and_ii _141_ ( 285 | .a(_084_), 286 | .b(N86), 287 | .c(_085_) 288 | ); 289 | and_bi _142_ ( 290 | .a(_082_), 291 | .b(_085_), 292 | .c(_086_) 293 | ); 294 | and_ii _143_ ( 295 | .a(_079_), 296 | .b(N34), 297 | .c(_087_) 298 | ); 299 | or_bi _144_ ( 300 | .a(_077_), 301 | .b(N11), 302 | .c(_088_) 303 | ); 304 | or_ii _145_ ( 305 | .a(_088_), 306 | .b(N17), 307 | .c(_089_) 308 | ); 309 | and_ii _146_ ( 310 | .a(_089_), 311 | .b(N21), 312 | .c(_090_) 313 | ); 314 | or_bb _147_ ( 315 | .a(_090_), 316 | .b(_087_), 317 | .c(_091_) 318 | ); 319 | and_bi _148_ ( 320 | .a(_086_), 321 | .b(_091_), 322 | .c(_092_) 323 | ); 324 | or_bi _149_ ( 325 | .a(_077_), 326 | .b(N1), 327 | .c(_093_) 328 | ); 329 | or_ii _150_ ( 330 | .a(_093_), 331 | .b(N4), 332 | .c(_094_) 333 | ); 334 | and_ii _151_ ( 335 | .a(_094_), 336 | .b(N8), 337 | .c(_095_) 338 | ); 339 | or_bi _152_ ( 340 | .a(_077_), 341 | .b(N89), 342 | .c(_096_) 343 | ); 344 | or_ii _153_ ( 345 | .a(_096_), 346 | .b(N95), 347 | .c(_097_) 348 | ); 349 | and_ii _154_ ( 350 | .a(_097_), 351 | .b(N99), 352 | .c(_098_) 353 | ); 354 | or_bb _155_ ( 355 | .a(_098_), 356 | .b(_095_), 357 | .c(_099_) 358 | ); 359 | or_bi _156_ ( 360 | .a(_077_), 361 | .b(N50), 362 | .c(_100_) 363 | ); 364 | or_ii _157_ ( 365 | .a(_100_), 366 | .b(N56), 367 | .c(_101_) 368 | ); 369 | and_ii _158_ ( 370 | .a(_101_), 371 | .b(N60), 372 | .c(_102_) 373 | ); 374 | or_ii _159_ ( 375 | .a(_077_), 376 | .b(N69), 377 | .c(_103_) 378 | ); 379 | and_bi _160_ ( 380 | .a(_103_), 381 | .b(_069_), 382 | .c(_104_) 383 | ); 384 | and_ii _161_ ( 385 | .a(_104_), 386 | .b(N73), 387 | .c(_105_) 388 | ); 389 | or_bi _162_ ( 390 | .a(_077_), 391 | .b(N37), 392 | .c(_106_) 393 | ); 394 | or_ii _163_ ( 395 | .a(_106_), 396 | .b(N43), 397 | .c(_107_) 398 | ); 399 | and_ii _164_ ( 400 | .a(_107_), 401 | .b(N47), 402 | .c(_108_) 403 | ); 404 | or_bb _165_ ( 405 | .a(_108_), 406 | .b(_105_), 407 | .c(_109_) 408 | ); 409 | or_bb _166_ ( 410 | .a(_109_), 411 | .b(_102_), 412 | .c(_110_) 413 | ); 414 | or_bb _167_ ( 415 | .a(_110_), 416 | .b(_099_), 417 | .c(_111_) 418 | ); 419 | and_bi _168_ ( 420 | .a(_092_), 421 | .b(_111_), 422 | .c(_112_) 423 | ); 424 | and_bi _169_ ( 425 | .a(N34), 426 | .b(_112_), 427 | .c(_113_) 428 | ); 429 | or_bb _170_ ( 430 | .a(_113_), 431 | .b(_079_), 432 | .c(_114_) 433 | ); 434 | or_bb _171_ ( 435 | .a(_114_), 436 | .b(N40), 437 | .c(_115_) 438 | ); 439 | and_bi _172_ ( 440 | .a(N99), 441 | .b(_112_), 442 | .c(_116_) 443 | ); 444 | or_bb _173_ ( 445 | .a(_116_), 446 | .b(_097_), 447 | .c(_000_) 448 | ); 449 | and_ii _174_ ( 450 | .a(_000_), 451 | .b(N105), 452 | .c(_001_) 453 | ); 454 | and_bi _175_ ( 455 | .a(N21), 456 | .b(_112_), 457 | .c(_002_) 458 | ); 459 | or_bb _176_ ( 460 | .a(_002_), 461 | .b(_089_), 462 | .c(_003_) 463 | ); 464 | and_ii _177_ ( 465 | .a(_003_), 466 | .b(N27), 467 | .c(_004_) 468 | ); 469 | or_bb _178_ ( 470 | .a(_004_), 471 | .b(_001_), 472 | .c(_005_) 473 | ); 474 | and_bi _179_ ( 475 | .a(_115_), 476 | .b(_005_), 477 | .c(_006_) 478 | ); 479 | and_bi _180_ ( 480 | .a(N8), 481 | .b(_112_), 482 | .c(_007_) 483 | ); 484 | or_bb _181_ ( 485 | .a(_007_), 486 | .b(_094_), 487 | .c(_008_) 488 | ); 489 | and_ii _182_ ( 490 | .a(_008_), 491 | .b(N14), 492 | .c(_009_) 493 | ); 494 | and_bi _183_ ( 495 | .a(N86), 496 | .b(_112_), 497 | .c(_010_) 498 | ); 499 | or_bb _184_ ( 500 | .a(_010_), 501 | .b(_084_), 502 | .c(_011_) 503 | ); 504 | and_ii _185_ ( 505 | .a(_011_), 506 | .b(N92), 507 | .c(_012_) 508 | ); 509 | or_bb _186_ ( 510 | .a(_012_), 511 | .b(_009_), 512 | .c(_013_) 513 | ); 514 | and_bi _187_ ( 515 | .a(N73), 516 | .b(_112_), 517 | .c(_014_) 518 | ); 519 | or_bb _188_ ( 520 | .a(_014_), 521 | .b(_104_), 522 | .c(_015_) 523 | ); 524 | and_ii _189_ ( 525 | .a(_015_), 526 | .b(N79), 527 | .c(_016_) 528 | ); 529 | and_bi _190_ ( 530 | .a(N60), 531 | .b(_112_), 532 | .c(_017_) 533 | ); 534 | or_bb _191_ ( 535 | .a(_017_), 536 | .b(_101_), 537 | .c(_018_) 538 | ); 539 | and_ii _192_ ( 540 | .a(_018_), 541 | .b(N66), 542 | .c(_019_) 543 | ); 544 | or_bb _193_ ( 545 | .a(_019_), 546 | .b(_016_), 547 | .c(_020_) 548 | ); 549 | and_bi _194_ ( 550 | .a(N47), 551 | .b(_112_), 552 | .c(_021_) 553 | ); 554 | or_bb _195_ ( 555 | .a(_021_), 556 | .b(_107_), 557 | .c(_022_) 558 | ); 559 | and_ii _196_ ( 560 | .a(_022_), 561 | .b(N53), 562 | .c(_023_) 563 | ); 564 | and_bi _197_ ( 565 | .a(N112), 566 | .b(_112_), 567 | .c(_024_) 568 | ); 569 | or_bb _198_ ( 570 | .a(_024_), 571 | .b(_081_), 572 | .c(_025_) 573 | ); 574 | and_ii _199_ ( 575 | .a(_025_), 576 | .b(N115), 577 | .c(_026_) 578 | ); 579 | or_bb _200_ ( 580 | .a(_026_), 581 | .b(_023_), 582 | .c(_027_) 583 | ); 584 | or_bb _201_ ( 585 | .a(_027_), 586 | .b(_020_), 587 | .c(_028_) 588 | ); 589 | or_bb _202_ ( 590 | .a(_028_), 591 | .b(_013_), 592 | .c(_029_) 593 | ); 594 | and_bi _203_ ( 595 | .a(_006_), 596 | .b(_029_), 597 | .c(_030_) 598 | ); 599 | inv _204_ ( 600 | .din(_030_), 601 | .dout(N370) 602 | ); 603 | inv _205_ ( 604 | .din(_077_), 605 | .dout(N223) 606 | ); 607 | and_bi _206_ ( 608 | .a(N40), 609 | .b(_030_), 610 | .c(_031_) 611 | ); 612 | or_bb _207_ ( 613 | .a(_031_), 614 | .b(_114_), 615 | .c(_032_) 616 | ); 617 | or_bi _208_ ( 618 | .a(_030_), 619 | .b(N27), 620 | .c(_033_) 621 | ); 622 | and_bi _209_ ( 623 | .a(_033_), 624 | .b(_003_), 625 | .c(_034_) 626 | ); 627 | or_bi _210_ ( 628 | .a(_034_), 629 | .b(_032_), 630 | .c(_035_) 631 | ); 632 | and_bi _211_ ( 633 | .a(N53), 634 | .b(_030_), 635 | .c(_036_) 636 | ); 637 | and_ii _212_ ( 638 | .a(_036_), 639 | .b(_022_), 640 | .c(_037_) 641 | ); 642 | and_bi _213_ ( 643 | .a(_030_), 644 | .b(_018_), 645 | .c(_038_) 646 | ); 647 | or_bb _214_ ( 648 | .a(_038_), 649 | .b(_019_), 650 | .c(_039_) 651 | ); 652 | or_bb _215_ ( 653 | .a(_039_), 654 | .b(_037_), 655 | .c(_040_) 656 | ); 657 | or_bb _216_ ( 658 | .a(_040_), 659 | .b(_035_), 660 | .c(N430) 661 | ); 662 | and_bi _217_ ( 663 | .a(N92), 664 | .b(_030_), 665 | .c(_041_) 666 | ); 667 | or_bb _218_ ( 668 | .a(_041_), 669 | .b(_011_), 670 | .c(_042_) 671 | ); 672 | and_bi _219_ ( 673 | .a(N79), 674 | .b(_030_), 675 | .c(_043_) 676 | ); 677 | and_ii _220_ ( 678 | .a(_043_), 679 | .b(_015_), 680 | .c(_044_) 681 | ); 682 | or_bi _221_ ( 683 | .a(_044_), 684 | .b(_042_), 685 | .c(_045_) 686 | ); 687 | and_bi _222_ ( 688 | .a(N105), 689 | .b(_030_), 690 | .c(_046_) 691 | ); 692 | or_bb _223_ ( 693 | .a(_046_), 694 | .b(_000_), 695 | .c(_047_) 696 | ); 697 | and_bi _224_ ( 698 | .a(N115), 699 | .b(_030_), 700 | .c(_048_) 701 | ); 702 | or_bb _225_ ( 703 | .a(_048_), 704 | .b(_025_), 705 | .c(_049_) 706 | ); 707 | or_ii _226_ ( 708 | .a(_049_), 709 | .b(_047_), 710 | .c(_050_) 711 | ); 712 | or_bb _227_ ( 713 | .a(_050_), 714 | .b(_045_), 715 | .c(_051_) 716 | ); 717 | or_bb _228_ ( 718 | .a(_051_), 719 | .b(N430), 720 | .c(_052_) 721 | ); 722 | or_bi _229_ ( 723 | .a(_030_), 724 | .b(N14), 725 | .c(_053_) 726 | ); 727 | and_bi _230_ ( 728 | .a(_053_), 729 | .b(_008_), 730 | .c(_054_) 731 | ); 732 | and_bi _231_ ( 733 | .a(_052_), 734 | .b(_054_), 735 | .c(N421) 736 | ); 737 | and_bi _232_ ( 738 | .a(_045_), 739 | .b(_040_), 740 | .c(_055_) 741 | ); 742 | or_bb _233_ ( 743 | .a(_055_), 744 | .b(_035_), 745 | .c(N431) 746 | ); 747 | or_bi _234_ ( 748 | .a(_040_), 749 | .b(_044_), 750 | .c(_056_) 751 | ); 752 | and_bi _235_ ( 753 | .a(_042_), 754 | .b(_047_), 755 | .c(_057_) 756 | ); 757 | or_bb _236_ ( 758 | .a(_057_), 759 | .b(_037_), 760 | .c(_058_) 761 | ); 762 | and_bi _237_ ( 763 | .a(_056_), 764 | .b(_058_), 765 | .c(_059_) 766 | ); 767 | and_bi _238_ ( 768 | .a(_032_), 769 | .b(_059_), 770 | .c(_060_) 771 | ); 772 | or_bb _239_ ( 773 | .a(_060_), 774 | .b(_034_), 775 | .c(N432) 776 | ); 777 | inv _240_ ( 778 | .din(_112_), 779 | .dout(N329) 780 | ); 781 | endmodule 782 | -------------------------------------------------------------------------------- /ISCAS/original/readme.md: -------------------------------------------------------------------------------- 1 | ## A note on how to read these benchmarks using `mockturtle` + `lorina` 2 | 3 | ### Modification to the Verilog header 4 | First, insert the following module declarations at the top of each Verilog file. 5 | ```verilog 6 | module or_bi( a, b, c ); 7 | input a, b; 8 | output c; 9 | endmodule 10 | module and_bi( a, b, c ); 11 | input a, b; 12 | output c; 13 | endmodule 14 | module or_bb( a, b, c ); 15 | input a, b; 16 | output c; 17 | endmodule 18 | module or_ii( a, b, c ); 19 | input a, b; 20 | output c; 21 | endmodule 22 | module and_bb( a, b, c ); 23 | input a, b; 24 | output c; 25 | endmodule 26 | module and_ii( a, b, c ); 27 | input a, b; 28 | output c; 29 | endmodule 30 | module inv( din, dout ); 31 | input din; 32 | output dout; 33 | endmodule 34 | module maj_bbb( a, b, c, d ); 35 | input a, b, c; 36 | output d; 37 | endmodule 38 | module maj_bbi( a, b, c, d ); 39 | input a, b, c; 40 | output d; 41 | endmodule 42 | module maj_bii( a, b, c, d ); 43 | input a, b, c; 44 | output d; 45 | endmodule 46 | ``` 47 | Also, change the main module name to `top`, and remove any comment with the `/* ... */` syntax. 48 | 49 | ### Modification to `mockturtle` 50 | Update `mockturtle` to at least newer than commit [36a0a90](https://github.com/lsils/mockturtle/commit/36a0a907a2b60cd6201f0530f5da22d99b42e7ca) (PR #506). 51 | 52 | Insert the following code into `mockturtle/io/verilog_reader.hpp`, at the end of function `on_module_instantiation`, before `else fmt::print( stderr, "[e] unknown module name {}\n", module_name );` (at about line 389). 53 | ```c++ 54 | else if ( module_name == "or_bi" || module_name == "or_bb" || module_name == "or_ii" ) 55 | { 56 | signal fi1 = ntk_.get_constant( false ), fi2 = ntk_.get_constant( false ); 57 | std::string lhs; 58 | for ( auto const& arg : args ) 59 | { 60 | if ( arg.first == ".a" ) 61 | { 62 | if ( signals_.find( arg.second ) == signals_.end() ) 63 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 64 | else 65 | fi1 = signals_[arg.second]; 66 | } 67 | else if ( arg.first == ".b" ) 68 | { 69 | if ( signals_.find( arg.second ) == signals_.end() ) 70 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 71 | else 72 | fi2 = signals_[arg.second]; 73 | } 74 | else if ( arg.first == ".c" ) 75 | lhs = arg.second; 76 | else 77 | fmt::print( stderr, "[e] unknown argument {} to a `{}` instance\n", arg.first, module_name ); 78 | } 79 | if ( module_name == "or_bi" ) 80 | signals_[lhs] = ntk_.create_or( fi1, !fi2 ); 81 | else if ( module_name == "or_ii" ) 82 | signals_[lhs] = ntk_.create_or( !fi1, !fi2 ); 83 | else 84 | signals_[lhs] = ntk_.create_or( fi1, fi2 ); 85 | return; 86 | } 87 | else if ( module_name == "and_bi" || module_name == "and_bb" || module_name == "and_ii" ) 88 | { 89 | signal fi1 = ntk_.get_constant( false ), fi2 = ntk_.get_constant( false ); 90 | std::string lhs; 91 | for ( auto const& arg : args ) 92 | { 93 | if ( arg.first == ".a" ) 94 | { 95 | if ( signals_.find( arg.second ) == signals_.end() ) 96 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 97 | else 98 | fi1 = signals_[arg.second]; 99 | } 100 | else if ( arg.first == ".b" ) 101 | { 102 | if ( signals_.find( arg.second ) == signals_.end() ) 103 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 104 | else 105 | fi2 = signals_[arg.second]; 106 | } 107 | else if ( arg.first == ".c" ) 108 | lhs = arg.second; 109 | else 110 | fmt::print( stderr, "[e] unknown argument {} to a `{}` instance\n", arg.first, module_name ); 111 | } 112 | if ( module_name == "and_bi" ) 113 | signals_[lhs] = ntk_.create_and( fi1, !fi2 ); 114 | else if ( module_name == "and_ii" ) 115 | signals_[lhs] = ntk_.create_and( !fi1, !fi2 ); 116 | else 117 | signals_[lhs] = ntk_.create_and( fi1, fi2 ); 118 | return; 119 | } 120 | else if ( module_name == "maj_bbb" || module_name == "maj_bbi" || module_name == "maj_bii" ) 121 | { 122 | signal fi1 = ntk_.get_constant( false ), fi2 = ntk_.get_constant( false ), fi3 = ntk_.get_constant( false ); 123 | std::string lhs; 124 | for ( auto const& arg : args ) 125 | { 126 | if ( arg.first == ".a" ) 127 | { 128 | if ( signals_.find( arg.second ) == signals_.end() ) 129 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 130 | else 131 | fi1 = signals_[arg.second]; 132 | } 133 | else if ( arg.first == ".b" ) 134 | { 135 | if ( signals_.find( arg.second ) == signals_.end() ) 136 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 137 | else 138 | fi2 = signals_[arg.second]; 139 | } 140 | else if ( arg.first == ".c" ) 141 | { 142 | if ( signals_.find( arg.second ) == signals_.end() ) 143 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 144 | else 145 | fi3 = signals_[arg.second]; 146 | } 147 | else if ( arg.first == ".d" ) 148 | lhs = arg.second; 149 | else 150 | fmt::print( stderr, "[e] unknown argument {} to a `{}` instance\n", arg.first, module_name ); 151 | } 152 | if ( module_name == "maj_bbb" ) 153 | signals_[lhs] = ntk_.create_maj( fi1, fi2, fi3 ); 154 | else if ( module_name == "maj_bbi" ) 155 | signals_[lhs] = ntk_.create_maj( fi1, fi2, !fi3 ); 156 | else 157 | signals_[lhs] = ntk_.create_maj( fi1, !fi2, !fi3 ); 158 | return; 159 | } 160 | else if ( module_name == "inv" ) 161 | { 162 | signal fi = ntk_.get_constant( false ); 163 | std::string lhs; 164 | for ( auto const& arg : args ) 165 | { 166 | if ( arg.first == ".din" ) 167 | { 168 | if ( signals_.find( arg.second ) == signals_.end() ) 169 | fmt::print( stderr, "[w] undefined signal {} assigned 0\n", arg.second ); 170 | else 171 | fi = signals_[arg.second]; 172 | } 173 | else if ( arg.first == ".dout" ) 174 | lhs = arg.second; 175 | else 176 | fmt::print( stderr, "[e] unknown argument {} to a `{}` instance\n", arg.first, module_name ); 177 | } 178 | signals_[lhs] = ntk_.create_not( fi ); 179 | return; 180 | } 181 | ``` 182 | -------------------------------------------------------------------------------- /ISCAS/strashed/adder1.v: -------------------------------------------------------------------------------- 1 | module top( a , b , c , cout , s ); 2 | input a , b , c ; 3 | output cout , s ; 4 | wire n4 , n5 , n6 , n7 , n8 , n9 , n10 ; 5 | assign n4 = a & b ; 6 | assign n5 = a | b ; 7 | assign n6 = ~n4 & n5 ; 8 | assign n7 = c & n6 ; 9 | assign n8 = n4 | n7 ; 10 | assign n9 = c | n6 ; 11 | assign n10 = ~n7 & n9 ; 12 | assign cout = n8 ; 13 | assign s = n10 ; 14 | endmodule 15 | -------------------------------------------------------------------------------- /ISCAS/strashed/adder8.v: -------------------------------------------------------------------------------- 1 | module top( b_4_ , a_6_ , a_7_ , a_1_ , a_0_ , a_2_ , c , b_7_ , a_5_ , b_3_ , b_2_ , b_1_ , b_6_ , a_3_ , b_5_ , a_4_ , b_0_ , cout , s_6_ , s_3_ , s_4_ , s_5_ , s_0_ , s_2_ , s_7_ , s_1_ ); 2 | input b_4_ , a_6_ , a_7_ , a_1_ , a_0_ , a_2_ , c , b_7_ , a_5_ , b_3_ , b_2_ , b_1_ , b_6_ , a_3_ , b_5_ , a_4_ , b_0_ ; 3 | output cout , s_6_ , s_3_ , s_4_ , s_5_ , s_0_ , s_2_ , s_7_ , s_1_ ; 4 | wire n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 ; 5 | assign n18 = a_7_ & b_7_ ; 6 | assign n19 = a_7_ | b_7_ ; 7 | assign n20 = ~n18 & n19 ; 8 | assign n21 = a_6_ & b_6_ ; 9 | assign n22 = a_6_ | b_6_ ; 10 | assign n23 = ~n21 & n22 ; 11 | assign n24 = a_5_ & b_5_ ; 12 | assign n25 = b_4_ & a_4_ ; 13 | assign n26 = b_3_ & a_3_ ; 14 | assign n27 = b_3_ | a_3_ ; 15 | assign n28 = ~n26 & n27 ; 16 | assign n29 = a_2_ & b_2_ ; 17 | assign n30 = a_2_ | b_2_ ; 18 | assign n31 = ~n29 & n30 ; 19 | assign n32 = a_1_ & b_1_ ; 20 | assign n33 = a_1_ | b_1_ ; 21 | assign n34 = a_0_ & b_0_ ; 22 | assign n35 = n33 & n34 ; 23 | assign n36 = n32 | n35 ; 24 | assign n37 = n31 & n36 ; 25 | assign n38 = n29 | n37 ; 26 | assign n39 = n28 & n38 ; 27 | assign n40 = n26 | n39 ; 28 | assign n41 = b_4_ | a_4_ ; 29 | assign n42 = ~n25 & n41 ; 30 | assign n43 = n40 & n42 ; 31 | assign n44 = n25 | n43 ; 32 | assign n45 = a_5_ | b_5_ ; 33 | assign n46 = ~n24 & n45 ; 34 | assign n47 = n44 & n46 ; 35 | assign n48 = n24 | n47 ; 36 | assign n49 = n23 & n48 ; 37 | assign n50 = n21 | n49 ; 38 | assign n51 = n20 & n50 ; 39 | assign n52 = n18 | n51 ; 40 | assign n53 = n20 | n50 ; 41 | assign n54 = ~n51 & n53 ; 42 | assign n55 = n23 | n48 ; 43 | assign n56 = ~n49 & n55 ; 44 | assign n57 = n40 | n42 ; 45 | assign n58 = ~n43 & n57 ; 46 | assign n59 = n28 | n38 ; 47 | assign n60 = ~n39 & n59 ; 48 | assign n61 = n31 | n36 ; 49 | assign n62 = ~n37 & n61 ; 50 | assign n63 = ~n32 & n33 ; 51 | assign n64 = a_0_ | b_0_ ; 52 | assign n65 = ~n34 & n64 ; 53 | assign n66 = c & n65 ; 54 | assign n67 = n63 & n66 ; 55 | assign n68 = n62 & n67 ; 56 | assign n69 = n60 & n68 ; 57 | assign n70 = n58 & n69 ; 58 | assign n71 = n44 | n46 ; 59 | assign n72 = ~n47 & n71 ; 60 | assign n73 = n70 & n72 ; 61 | assign n74 = n56 & n73 ; 62 | assign n75 = n54 & n74 ; 63 | assign n76 = n52 | n75 ; 64 | assign n77 = n56 | n73 ; 65 | assign n78 = ~n74 & n77 ; 66 | assign n79 = n60 | n68 ; 67 | assign n80 = ~n69 & n79 ; 68 | assign n81 = n58 | n69 ; 69 | assign n82 = ~n70 & n81 ; 70 | assign n83 = n70 | n72 ; 71 | assign n84 = ~n73 & n83 ; 72 | assign n85 = c | n65 ; 73 | assign n86 = ~n66 & n85 ; 74 | assign n87 = n62 | n67 ; 75 | assign n88 = ~n68 & n87 ; 76 | assign n89 = n54 | n74 ; 77 | assign n90 = ~n75 & n89 ; 78 | assign n91 = n34 | n66 ; 79 | assign n92 = n63 | n91 ; 80 | assign n93 = n63 & n91 ; 81 | assign n94 = n92 & ~n93 ; 82 | assign cout = n76 ; 83 | assign s_6_ = n78 ; 84 | assign s_3_ = n80 ; 85 | assign s_4_ = n82 ; 86 | assign s_5_ = n84 ; 87 | assign s_0_ = n86 ; 88 | assign s_2_ = n88 ; 89 | assign s_7_ = n90 ; 90 | assign s_1_ = n94 ; 91 | endmodule 92 | -------------------------------------------------------------------------------- /ISCAS/strashed/c17.v: -------------------------------------------------------------------------------- 1 | module top( N1 , N2 , N3 , N6 , N7 , N22 , N23 ); 2 | input N1 , N2 , N3 , N6 , N7 ; 3 | output N22 , N23 ; 4 | wire n6 , n7 , n8 , n9 , n10 , n11 ; 5 | assign n6 = N1 & N3 ; 6 | assign n7 = N3 & N6 ; 7 | assign n8 = N2 & ~n7 ; 8 | assign n9 = n6 | n8 ; 9 | assign n10 = N2 | N7 ; 10 | assign n11 = ~n7 & n10 ; 11 | assign N22 = n9 ; 12 | assign N23 = n11 ; 13 | endmodule 14 | -------------------------------------------------------------------------------- /ISCAS/strashed/c1908.v: -------------------------------------------------------------------------------- 1 | module top( G1 , G10 , G11 , G12 , G13 , G14 , G15 , G16 , G17 , G18 , G19 , G2 , G20 , G21 , G22 , G23 , G24 , G25 , G26 , G27 , G28 , G29 , G3 , G30 , G31 , G32 , G33 , G4 , G5 , G6 , G7 , G8 , G9 , G1884 , G1885 , G1886 , G1887 , G1888 , G1889 , G1890 , G1891 , G1892 , G1893 , G1894 , G1895 , G1896 , G1897 , G1898 , G1899 , G1900 , G1901 , G1902 , G1903 , G1904 , G1905 , G1906 , G1907 , G1908 ); 2 | input G1 , G10 , G11 , G12 , G13 , G14 , G15 , G16 , G17 , G18 , G19 , G2 , G20 , G21 , G22 , G23 , G24 , G25 , G26 , G27 , G28 , G29 , G3 , G30 , G31 , G32 , G33 , G4 , G5 , G6 , G7 , G8 , G9 ; 3 | output G1884 , G1885 , G1886 , G1887 , G1888 , G1889 , G1890 , G1891 , G1892 , G1893 , G1894 , G1895 , G1896 , G1897 , G1898 , G1899 , G1900 , G1901 , G1902 , G1903 , G1904 , G1905 , G1906 , G1907 , G1908 ; 4 | wire n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 , n211 , n212 , n213 , n214 , n215 , n216 , n217 , n218 , n219 , n220 , n221 , n222 , n223 , n224 , n225 , n226 , n227 , n228 , n229 , n230 , n231 , n232 , n233 , n234 , n235 , n236 , n237 , n238 , n239 , n240 , n241 , n242 , n243 , n244 , n245 , n246 , n247 , n248 , n249 , n250 , n251 , n252 , n253 , n254 , n255 , n256 , n257 , n258 , n259 , n260 , n261 , n262 , n263 , n264 , n265 , n266 , n267 , n268 , n269 , n270 , n271 , n272 , n273 , n274 , n275 , n276 , n277 , n278 , n279 , n280 , n281 , n282 , n283 , n284 , n285 , n286 , n287 , n288 , n289 , n290 , n291 , n292 , n293 , n294 , n295 , n296 , n297 , n298 , n299 , n300 , n301 , n302 , n303 , n304 , n305 , n306 , n307 , n308 , n309 , n310 , n311 , n312 , n313 , n314 , n315 , n316 , n317 , n318 , n319 , n320 , n321 , n322 ; 5 | assign n34 = G24 | G31 ; 6 | assign n35 = G18 & n34 ; 7 | assign n36 = G6 | G7 ; 8 | assign n37 = G6 & G7 ; 9 | assign n38 = n36 & ~n37 ; 10 | assign n39 = G5 & n38 ; 11 | assign n40 = G5 | n38 ; 12 | assign n41 = ~n39 & n40 ; 13 | assign n42 = G4 | G8 ; 14 | assign n43 = G4 & G8 ; 15 | assign n44 = n42 & ~n43 ; 16 | assign n45 = G2 | G3 ; 17 | assign n46 = G2 & G3 ; 18 | assign n47 = n45 & ~n46 ; 19 | assign n48 = G1 & n47 ; 20 | assign n49 = G1 | n47 ; 21 | assign n50 = ~n48 & n49 ; 22 | assign n51 = ~n44 & n50 ; 23 | assign n52 = n44 & ~n50 ; 24 | assign n53 = n51 | n52 ; 25 | assign n54 = n41 | n53 ; 26 | assign n55 = n41 & n53 ; 27 | assign n56 = n54 & ~n55 ; 28 | assign n57 = G21 & ~G33 ; 29 | assign n58 = ~G9 & n57 ; 30 | assign n59 = G9 & ~n57 ; 31 | assign n60 = n58 | n59 ; 32 | assign n61 = G10 & ~G15 ; 33 | assign n62 = ~G10 & G15 ; 34 | assign n63 = n61 | n62 ; 35 | assign n64 = ~G16 & n63 ; 36 | assign n65 = G16 & ~n63 ; 37 | assign n66 = n64 | n65 ; 38 | assign n67 = ~n60 & n66 ; 39 | assign n68 = n60 & ~n66 ; 40 | assign n69 = n67 | n68 ; 41 | assign n70 = n56 & ~n69 ; 42 | assign n71 = ~n56 & n69 ; 43 | assign n72 = n70 | n71 ; 44 | assign n73 = G31 | n72 ; 45 | assign n74 = G17 & n34 ; 46 | assign n75 = n73 & ~n74 ; 47 | assign n76 = ~n73 & n74 ; 48 | assign n77 = n75 | n76 ; 49 | assign n78 = n35 & ~n77 ; 50 | assign n79 = ~G11 & G13 ; 51 | assign n80 = G11 & ~G13 ; 52 | assign n81 = n79 | n80 ; 53 | assign n82 = G12 & ~n81 ; 54 | assign n83 = ~G12 & n81 ; 55 | assign n84 = n82 | n83 ; 56 | assign n85 = ~n66 & n84 ; 57 | assign n86 = n66 & ~n84 ; 58 | assign n87 = n85 | n86 ; 59 | assign n88 = G24 | G33 ; 60 | assign n89 = G17 & ~n88 ; 61 | assign n90 = ~G1 & n89 ; 62 | assign n91 = G1 & ~n89 ; 63 | assign n92 = n90 | n91 ; 64 | assign n93 = n41 | n92 ; 65 | assign n94 = n41 & n92 ; 66 | assign n95 = n93 & ~n94 ; 67 | assign n96 = n87 | n95 ; 68 | assign n97 = n87 & n95 ; 69 | assign n98 = n96 & ~n97 ; 70 | assign n99 = G31 | n98 ; 71 | assign n100 = G26 | n99 ; 72 | assign n101 = G26 & n99 ; 73 | assign n102 = n100 & ~n101 ; 74 | assign n103 = ~G14 & G9 ; 75 | assign n104 = G14 & ~G9 ; 76 | assign n105 = n103 | n104 ; 77 | assign n106 = ~G16 & n105 ; 78 | assign n107 = G16 & ~n105 ; 79 | assign n108 = n106 | n107 ; 80 | assign n109 = G23 | G33 ; 81 | assign n110 = G20 & ~n109 ; 82 | assign n111 = ~G13 & n110 ; 83 | assign n112 = G13 & ~n110 ; 84 | assign n113 = n111 | n112 ; 85 | assign n114 = ~n108 & n113 ; 86 | assign n115 = n108 & ~n113 ; 87 | assign n116 = n114 | n115 ; 88 | assign n117 = G4 & ~G7 ; 89 | assign n118 = ~G4 & G7 ; 90 | assign n119 = n117 | n118 ; 91 | assign n120 = G10 & ~n119 ; 92 | assign n121 = ~G10 & n119 ; 93 | assign n122 = n120 | n121 ; 94 | assign n123 = n116 & n122 ; 95 | assign n124 = n116 | n122 ; 96 | assign n125 = ~n123 & n124 ; 97 | assign n126 = G31 | n125 ; 98 | assign n127 = G23 | G31 ; 99 | assign n128 = G19 & n127 ; 100 | assign n129 = n126 & n128 ; 101 | assign n130 = n126 | n128 ; 102 | assign n131 = ~n129 & n130 ; 103 | assign n132 = n102 & n131 ; 104 | assign n133 = G18 & ~n88 ; 105 | assign n134 = G11 | G15 ; 106 | assign n135 = G11 & G15 ; 107 | assign n136 = n134 & ~n135 ; 108 | assign n137 = n133 | n136 ; 109 | assign n138 = n133 & n136 ; 110 | assign n139 = n137 & ~n138 ; 111 | assign n140 = n108 & n139 ; 112 | assign n141 = n108 | n139 ; 113 | assign n142 = ~n140 & n141 ; 114 | assign n143 = G5 & ~G8 ; 115 | assign n144 = ~G5 & G8 ; 116 | assign n145 = n143 | n144 ; 117 | assign n146 = G2 & ~n145 ; 118 | assign n147 = ~G2 & n145 ; 119 | assign n148 = n146 | n147 ; 120 | assign n149 = ~n142 & n148 ; 121 | assign n150 = n142 & ~n148 ; 122 | assign n151 = n149 | n150 ; 123 | assign n152 = ~G31 & n151 ; 124 | assign n153 = G27 & n152 ; 125 | assign n154 = G27 | n152 ; 126 | assign n155 = ~n153 & n154 ; 127 | assign n156 = G3 | G6 ; 128 | assign n157 = G3 & G6 ; 129 | assign n158 = n156 & ~n157 ; 130 | assign n159 = G8 & n158 ; 131 | assign n160 = G8 | n158 ; 132 | assign n161 = ~n159 & n160 ; 133 | assign n162 = G19 & ~n109 ; 134 | assign n163 = G12 & n63 ; 135 | assign n164 = G12 | n63 ; 136 | assign n165 = ~n163 & n164 ; 137 | assign n166 = n162 & ~n165 ; 138 | assign n167 = ~n162 & n165 ; 139 | assign n168 = n166 | n167 ; 140 | assign n169 = n161 | n168 ; 141 | assign n170 = n161 & n168 ; 142 | assign n171 = n169 & ~n170 ; 143 | assign n172 = ~G31 & n171 ; 144 | assign n173 = G28 & n172 ; 145 | assign n174 = G28 | n172 ; 146 | assign n175 = ~n173 & n174 ; 147 | assign n176 = n155 | n175 ; 148 | assign n177 = n132 & ~n176 ; 149 | assign n178 = G20 & n127 ; 150 | assign n179 = G22 & ~G33 ; 151 | assign n180 = ~G14 & G4 ; 152 | assign n181 = G14 & ~G4 ; 153 | assign n182 = n180 | n181 ; 154 | assign n183 = n179 & ~n182 ; 155 | assign n184 = ~n179 & n182 ; 156 | assign n185 = n183 | n184 ; 157 | assign n186 = n50 | n185 ; 158 | assign n187 = n50 & n185 ; 159 | assign n188 = n186 & ~n187 ; 160 | assign n189 = n87 | n188 ; 161 | assign n190 = n87 & n188 ; 162 | assign n191 = n189 & ~n190 ; 163 | assign n192 = ~G31 & n191 ; 164 | assign n193 = G25 | n192 ; 165 | assign n194 = G25 & n192 ; 166 | assign n195 = n193 & ~n194 ; 167 | assign n196 = n178 & n195 ; 168 | assign n197 = n177 & ~n196 ; 169 | assign n198 = ~n78 & n197 ; 170 | assign n199 = G29 | G33 ; 171 | assign n200 = ~G23 & G24 ; 172 | assign n201 = G31 | n200 ; 173 | assign n202 = n199 | n201 ; 174 | assign n203 = G32 | G33 ; 175 | assign n204 = n200 | n203 ; 176 | assign n205 = n202 & n204 ; 177 | assign n206 = n198 & ~n205 ; 178 | assign n207 = G1 | n206 ; 179 | assign n208 = G1 & n206 ; 180 | assign n209 = n207 & ~n208 ; 181 | assign n210 = G2 | n206 ; 182 | assign n211 = G2 & n206 ; 183 | assign n212 = n210 & ~n211 ; 184 | assign n213 = G3 | n206 ; 185 | assign n214 = G3 & n206 ; 186 | assign n215 = n213 & ~n214 ; 187 | assign n216 = G4 | n206 ; 188 | assign n217 = G4 & n206 ; 189 | assign n218 = n216 & ~n217 ; 190 | assign n219 = G30 | G33 ; 191 | assign n220 = n201 | n219 ; 192 | assign n221 = n204 & n220 ; 193 | assign n222 = n198 & ~n221 ; 194 | assign n223 = G10 | n222 ; 195 | assign n224 = G10 & n222 ; 196 | assign n225 = n223 & ~n224 ; 197 | assign n226 = G15 | n222 ; 198 | assign n227 = G15 & n222 ; 199 | assign n228 = n226 & ~n227 ; 200 | assign n229 = G16 | n222 ; 201 | assign n230 = G16 & n222 ; 202 | assign n231 = n229 & ~n230 ; 203 | assign n232 = n178 & ~n195 ; 204 | assign n233 = n177 & n232 ; 205 | assign n234 = ~n78 & n233 ; 206 | assign n235 = ~n205 & n234 ; 207 | assign n236 = G5 | n235 ; 208 | assign n237 = G5 & n235 ; 209 | assign n238 = n236 & ~n237 ; 210 | assign n239 = G6 | n235 ; 211 | assign n240 = G6 & n235 ; 212 | assign n241 = n239 & ~n240 ; 213 | assign n242 = G7 | n235 ; 214 | assign n243 = G7 & n235 ; 215 | assign n244 = n242 & ~n243 ; 216 | assign n245 = G8 | n235 ; 217 | assign n246 = G8 & n235 ; 218 | assign n247 = n245 & ~n246 ; 219 | assign n248 = ~n221 & n234 ; 220 | assign n249 = G9 & ~n248 ; 221 | assign n250 = ~G9 & n248 ; 222 | assign n251 = n249 | n250 ; 223 | assign n252 = n35 & n197 ; 224 | assign n253 = n77 & n252 ; 225 | assign n254 = ~n221 & n253 ; 226 | assign n255 = G11 | n254 ; 227 | assign n256 = G11 & n254 ; 228 | assign n257 = n255 & ~n256 ; 229 | assign n258 = G12 | n254 ; 230 | assign n259 = G12 & n254 ; 231 | assign n260 = n258 & ~n259 ; 232 | assign n261 = G13 | n254 ; 233 | assign n262 = G13 & n254 ; 234 | assign n263 = n261 & ~n262 ; 235 | assign n264 = G14 | n254 ; 236 | assign n265 = G14 & n254 ; 237 | assign n266 = n264 & ~n265 ; 238 | assign n267 = n206 | n222 ; 239 | assign n268 = G32 & n267 ; 240 | assign n269 = n35 | n178 ; 241 | assign n270 = n195 | n269 ; 242 | assign n271 = n77 & ~n270 ; 243 | assign n272 = n177 & n271 ; 244 | assign n273 = G33 | n272 ; 245 | assign n274 = n268 | n273 ; 246 | assign n275 = n74 & n267 ; 247 | assign n276 = ~G31 & n275 ; 248 | assign n277 = n72 & ~n276 ; 249 | assign n278 = ~n73 & n275 ; 250 | assign n279 = n203 & ~n278 ; 251 | assign n280 = ~n277 & n279 ; 252 | assign n281 = G25 & n267 ; 253 | assign n282 = ~G31 & n281 ; 254 | assign n283 = n191 | n282 ; 255 | assign n284 = n192 & n281 ; 256 | assign n285 = n203 & ~n284 ; 257 | assign n286 = n283 & n285 ; 258 | assign n287 = G27 & ~G31 ; 259 | assign n288 = n267 & n287 ; 260 | assign n289 = n151 & ~n288 ; 261 | assign n290 = n203 & ~n289 ; 262 | assign n291 = G28 & ~G31 ; 263 | assign n292 = n267 & n291 ; 264 | assign n293 = n171 & ~n292 ; 265 | assign n294 = n203 & ~n293 ; 266 | assign n295 = ~G31 & n128 ; 267 | assign n296 = n267 & n295 ; 268 | assign n297 = n125 | n296 ; 269 | assign n298 = n203 & n297 ; 270 | assign n299 = n56 & n199 ; 271 | assign n300 = G21 & G29 ; 272 | assign n301 = n206 | n300 ; 273 | assign n302 = n206 & n300 ; 274 | assign n303 = n301 & ~n302 ; 275 | assign n304 = G33 | n303 ; 276 | assign n305 = n299 & n304 ; 277 | assign n306 = n299 | n304 ; 278 | assign n307 = ~n305 & n306 ; 279 | assign n308 = n87 | n105 ; 280 | assign n309 = n87 & n105 ; 281 | assign n310 = n219 & ~n309 ; 282 | assign n311 = n308 & n310 ; 283 | assign n312 = G22 & G30 ; 284 | assign n313 = n222 | n312 ; 285 | assign n314 = n222 & n312 ; 286 | assign n315 = n313 & ~n314 ; 287 | assign n316 = G33 | n315 ; 288 | assign n317 = n311 & ~n316 ; 289 | assign n318 = ~n311 & n316 ; 290 | assign n319 = n317 | n318 ; 291 | assign n320 = G26 & n267 ; 292 | assign n321 = ~n98 & n203 ; 293 | assign n322 = ~n320 & n321 ; 294 | assign G1884 = ~n209 ; 295 | assign G1885 = ~n212 ; 296 | assign G1886 = ~n215 ; 297 | assign G1887 = ~n218 ; 298 | assign G1888 = ~n225 ; 299 | assign G1889 = ~n228 ; 300 | assign G1890 = ~n231 ; 301 | assign G1891 = ~n238 ; 302 | assign G1892 = ~n241 ; 303 | assign G1893 = ~n244 ; 304 | assign G1894 = ~n247 ; 305 | assign G1895 = ~n251 ; 306 | assign G1896 = ~n257 ; 307 | assign G1897 = ~n260 ; 308 | assign G1898 = ~n263 ; 309 | assign G1899 = ~n266 ; 310 | assign G1900 = n274 ; 311 | assign G1901 = n280 ; 312 | assign G1902 = n286 ; 313 | assign G1903 = n290 ; 314 | assign G1904 = n294 ; 315 | assign G1905 = n298 ; 316 | assign G1906 = ~n307 ; 317 | assign G1907 = ~n319 ; 318 | assign G1908 = n322 ; 319 | endmodule 320 | -------------------------------------------------------------------------------- /ISCAS/strashed/c432.v: -------------------------------------------------------------------------------- 1 | module top( N1 , N102 , N105 , N108 , N11 , N112 , N115 , N14 , N17 , N21 , N24 , N27 , N30 , N34 , N37 , N4 , N40 , N43 , N47 , N50 , N53 , N56 , N60 , N63 , N66 , N69 , N73 , N76 , N79 , N8 , N82 , N86 , N89 , N92 , N95 , N99 , N223 , N329 , N370 , N421 , N430 , N431 , N432 ); 2 | input N1 , N102 , N105 , N108 , N11 , N112 , N115 , N14 , N17 , N21 , N24 , N27 , N30 , N34 , N37 , N4 , N40 , N43 , N47 , N50 , N53 , N56 , N60 , N63 , N66 , N69 , N73 , N76 , N79 , N8 , N82 , N86 , N89 , N92 , N95 , N99 ; 3 | output N223 , N329 , N370 , N421 , N430 , N431 , N432 ; 4 | wire n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 ; 5 | assign n37 = ~N24 & N30 ; 6 | assign n38 = ~N102 & N108 ; 7 | assign n39 = n37 | n38 ; 8 | assign n40 = ~N1 & N4 ; 9 | assign n41 = ~N89 & N95 ; 10 | assign n42 = ~N76 & N82 ; 11 | assign n43 = n41 | n42 ; 12 | assign n44 = n40 | n43 ; 13 | assign n45 = ~N63 & N69 ; 14 | assign n46 = ~N37 & N43 ; 15 | assign n47 = n45 | n46 ; 16 | assign n48 = ~N50 & N56 ; 17 | assign n49 = ~N11 & N17 ; 18 | assign n50 = n48 | n49 ; 19 | assign n51 = n47 | n50 ; 20 | assign n52 = n44 | n51 ; 21 | assign n53 = n39 | n52 ; 22 | assign n54 = N102 & n53 ; 23 | assign n55 = N108 & ~n54 ; 24 | assign n56 = ~N112 & n55 ; 25 | assign n57 = N76 & n53 ; 26 | assign n58 = N82 & ~n57 ; 27 | assign n59 = ~N86 & n58 ; 28 | assign n60 = n56 | n59 ; 29 | assign n61 = N30 & ~n53 ; 30 | assign n62 = n37 | n61 ; 31 | assign n63 = ~N34 & n62 ; 32 | assign n64 = N11 & n53 ; 33 | assign n65 = N17 & ~n64 ; 34 | assign n66 = ~N21 & n65 ; 35 | assign n67 = n63 | n66 ; 36 | assign n68 = n60 | n67 ; 37 | assign n69 = N1 & n53 ; 38 | assign n70 = N4 & ~n69 ; 39 | assign n71 = ~N8 & n70 ; 40 | assign n72 = N89 & n53 ; 41 | assign n73 = N95 & ~n72 ; 42 | assign n74 = ~N99 & n73 ; 43 | assign n75 = n71 | n74 ; 44 | assign n76 = N50 & n53 ; 45 | assign n77 = N56 & ~n76 ; 46 | assign n78 = ~N60 & n77 ; 47 | assign n79 = N69 & ~n53 ; 48 | assign n80 = n45 | n79 ; 49 | assign n81 = ~N73 & n80 ; 50 | assign n82 = N37 & n53 ; 51 | assign n83 = N43 & ~n82 ; 52 | assign n84 = ~N47 & n83 ; 53 | assign n85 = n81 | n84 ; 54 | assign n86 = n78 | n85 ; 55 | assign n87 = n75 | n86 ; 56 | assign n88 = n68 | n87 ; 57 | assign n89 = N34 & n88 ; 58 | assign n90 = n62 & ~n89 ; 59 | assign n91 = ~N40 & n90 ; 60 | assign n92 = N99 & n88 ; 61 | assign n93 = n73 & ~n92 ; 62 | assign n94 = ~N105 & n93 ; 63 | assign n95 = N21 & n88 ; 64 | assign n96 = n65 & ~n95 ; 65 | assign n97 = ~N27 & n96 ; 66 | assign n98 = n94 | n97 ; 67 | assign n99 = n91 | n98 ; 68 | assign n100 = N8 & n88 ; 69 | assign n101 = n70 & ~n100 ; 70 | assign n102 = ~N14 & n101 ; 71 | assign n103 = N86 & n88 ; 72 | assign n104 = n58 & ~n103 ; 73 | assign n105 = ~N92 & n104 ; 74 | assign n106 = n102 | n105 ; 75 | assign n107 = N73 & n88 ; 76 | assign n108 = n80 & ~n107 ; 77 | assign n109 = ~N79 & n108 ; 78 | assign n110 = N60 & n88 ; 79 | assign n111 = n77 & ~n110 ; 80 | assign n112 = ~N66 & n111 ; 81 | assign n113 = n109 | n112 ; 82 | assign n114 = N47 & n88 ; 83 | assign n115 = n83 & ~n114 ; 84 | assign n116 = ~N53 & n115 ; 85 | assign n117 = N112 & n88 ; 86 | assign n118 = n55 & ~n117 ; 87 | assign n119 = ~N115 & n118 ; 88 | assign n120 = n116 | n119 ; 89 | assign n121 = n113 | n120 ; 90 | assign n122 = n106 | n121 ; 91 | assign n123 = n99 | n122 ; 92 | assign n124 = N40 & n123 ; 93 | assign n125 = n90 & ~n124 ; 94 | assign n126 = N27 & n123 ; 95 | assign n127 = n96 & ~n126 ; 96 | assign n128 = n125 | n127 ; 97 | assign n129 = N53 & n123 ; 98 | assign n130 = n115 & ~n129 ; 99 | assign n131 = n111 & ~n123 ; 100 | assign n132 = n112 | n131 ; 101 | assign n133 = n130 | n132 ; 102 | assign n134 = n128 | n133 ; 103 | assign n135 = N92 & n123 ; 104 | assign n136 = n104 & ~n135 ; 105 | assign n137 = N79 & n123 ; 106 | assign n138 = n108 & ~n137 ; 107 | assign n139 = n136 | n138 ; 108 | assign n140 = N105 & n123 ; 109 | assign n141 = n93 & ~n140 ; 110 | assign n142 = N115 & n123 ; 111 | assign n143 = n118 & ~n142 ; 112 | assign n144 = n141 | n143 ; 113 | assign n145 = n139 | n144 ; 114 | assign n146 = n134 | n145 ; 115 | assign n147 = N14 & n123 ; 116 | assign n148 = n101 & ~n147 ; 117 | assign n149 = n146 & ~n148 ; 118 | assign n150 = ~n133 & n139 ; 119 | assign n151 = n128 | n150 ; 120 | assign n152 = ~n133 & n138 ; 121 | assign n153 = ~n136 & n141 ; 122 | assign n154 = n130 | n153 ; 123 | assign n155 = n152 | n154 ; 124 | assign n156 = ~n125 & n155 ; 125 | assign n157 = n127 | n156 ; 126 | assign N223 = n53 ; 127 | assign N329 = n88 ; 128 | assign N370 = n123 ; 129 | assign N421 = n149 ; 130 | assign N430 = n134 ; 131 | assign N431 = n151 ; 132 | assign N432 = n157 ; 133 | endmodule 134 | -------------------------------------------------------------------------------- /ISCAS/strashed/c880.v: -------------------------------------------------------------------------------- 1 | module top( N1 , N101 , N106 , N111 , N116 , N121 , N126 , N13 , N130 , N135 , N138 , N143 , N146 , N149 , N152 , N153 , N156 , N159 , N165 , N17 , N171 , N177 , N183 , N189 , N195 , N201 , N207 , N210 , N219 , N228 , N237 , N246 , N255 , N259 , N26 , N260 , N261 , N267 , N268 , N29 , N36 , N42 , N51 , N55 , N59 , N68 , N72 , N73 , N74 , N75 , N8 , N80 , N85 , N86 , N87 , N88 , N89 , N90 , N91 , N96 , N388 , N389 , N390 , N391 , N418 , N419 , N420 , N421 , N422 , N423 , N446 , N447 , N448 , N449 , N450 , N767 , N768 , N850 , N863 , N864 , N865 , N866 , N874 , N878 , N879 , N880 ); 2 | input N1 , N101 , N106 , N111 , N116 , N121 , N126 , N13 , N130 , N135 , N138 , N143 , N146 , N149 , N152 , N153 , N156 , N159 , N165 , N17 , N171 , N177 , N183 , N189 , N195 , N201 , N207 , N210 , N219 , N228 , N237 , N246 , N255 , N259 , N26 , N260 , N261 , N267 , N268 , N29 , N36 , N42 , N51 , N55 , N59 , N68 , N72 , N73 , N74 , N75 , N8 , N80 , N85 , N86 , N87 , N88 , N89 , N90 , N91 , N96 ; 3 | output N388 , N389 , N390 , N391 , N418 , N419 , N420 , N421 , N422 , N423 , N446 , N447 , N448 , N449 , N450 , N767 , N768 , N850 , N863 , N864 , N865 , N866 , N874 , N878 , N879 , N880 ; 4 | wire n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 , n211 , n212 , n213 , n214 , n215 , n216 , n217 , n218 , n219 , n220 , n221 , n222 , n223 , n224 , n225 , n226 , n227 , n228 , n229 , n230 , n231 , n232 , n233 , n234 , n235 , n236 , n237 , n238 , n239 , n240 , n241 , n242 , n243 , n244 , n245 , n246 , n247 , n248 , n249 , n250 , n251 , n252 , n253 , n254 , n255 , n256 , n257 , n258 , n259 , n260 , n261 , n262 , n263 , n264 , n265 , n266 , n267 , n268 , n269 , n270 , n271 , n272 , n273 , n274 , n275 , n276 , n277 , n278 , n279 , n280 , n281 , n282 , n283 , n284 , n285 , n286 , n287 , n288 , n289 , n290 , n291 , n292 , n293 , n294 , n295 , n296 , n297 , n298 , n299 , n300 , n301 , n302 , n303 , n304 , n305 , n306 , n307 , n308 , n309 , n310 , n311 , n312 , n313 , n314 , n315 , n316 , n317 , n318 , n319 , n320 , n321 , n322 , n323 , n324 , n325 , n326 , n327 , n328 , n329 , n330 , n331 , n332 , n333 , n334 , n335 , n336 , n337 , n338 , n339 , n340 , n341 , n342 , n343 , n344 , n345 , n346 , n347 , n348 , n349 , n350 , n351 , n352 , n353 , n354 , n355 , n356 , n357 , n358 , n359 , n360 , n361 , n362 , n363 , n364 , n365 , n366 ; 5 | assign n61 = N29 & N75 ; 6 | assign n62 = N42 & n61 ; 7 | assign n63 = N29 & N36 ; 8 | assign n64 = N80 & n63 ; 9 | assign n65 = N42 & n63 ; 10 | assign n66 = N85 & N86 ; 11 | assign n67 = N1 & N8 ; 12 | assign n68 = N13 & N17 ; 13 | assign n69 = n67 & n68 ; 14 | assign n70 = N1 & N26 ; 15 | assign n71 = n68 & n70 ; 16 | assign n72 = ~n65 & n71 ; 17 | assign n73 = N59 & N75 ; 18 | assign n74 = N80 & n73 ; 19 | assign n75 = N36 & N59 ; 20 | assign n76 = N80 & n75 ; 21 | assign n77 = N42 & n75 ; 22 | assign n78 = N87 | N88 ; 23 | assign n79 = N90 & n78 ; 24 | assign n80 = n65 & n71 ; 25 | assign n81 = N51 & n70 ; 26 | assign n82 = N13 & N55 ; 27 | assign n83 = n67 & n82 ; 28 | assign n84 = N29 & N68 ; 29 | assign n85 = n83 & n84 ; 30 | assign n86 = N59 & N68 ; 31 | assign n87 = N74 & n86 ; 32 | assign n88 = n83 & n87 ; 33 | assign n89 = N89 & n78 ; 34 | assign n90 = N130 | N96 ; 35 | assign n91 = N130 & N96 ; 36 | assign n92 = n90 & ~n91 ; 37 | assign n93 = N91 & n92 ; 38 | assign n94 = N91 | n92 ; 39 | assign n95 = ~n93 & n94 ; 40 | assign n96 = N121 | N135 ; 41 | assign n97 = N121 & N135 ; 42 | assign n98 = n96 & ~n97 ; 43 | assign n99 = N126 & ~n98 ; 44 | assign n100 = ~N126 & n98 ; 45 | assign n101 = n99 | n100 ; 46 | assign n102 = N101 & ~N106 ; 47 | assign n103 = ~N101 & N106 ; 48 | assign n104 = n102 | n103 ; 49 | assign n105 = N111 | N116 ; 50 | assign n106 = N111 & N116 ; 51 | assign n107 = n105 & ~n106 ; 52 | assign n108 = n104 | n107 ; 53 | assign n109 = n104 & n107 ; 54 | assign n110 = n108 & ~n109 ; 55 | assign n111 = n101 | n110 ; 56 | assign n112 = n101 & n110 ; 57 | assign n113 = n111 & ~n112 ; 58 | assign n114 = ~n95 & n113 ; 59 | assign n115 = n95 & ~n113 ; 60 | assign n116 = n114 | n115 ; 61 | assign n117 = N159 | N177 ; 62 | assign n118 = N159 & N177 ; 63 | assign n119 = n117 & ~n118 ; 64 | assign n120 = N130 & ~n119 ; 65 | assign n121 = ~N130 & n119 ; 66 | assign n122 = n120 | n121 ; 67 | assign n123 = N189 | N195 ; 68 | assign n124 = N189 & N195 ; 69 | assign n125 = n123 & ~n124 ; 70 | assign n126 = N207 & ~n125 ; 71 | assign n127 = ~N207 & n125 ; 72 | assign n128 = n126 | n127 ; 73 | assign n129 = ~N165 & N201 ; 74 | assign n130 = N165 & ~N201 ; 75 | assign n131 = n129 | n130 ; 76 | assign n132 = N171 & ~N183 ; 77 | assign n133 = ~N171 & N183 ; 78 | assign n134 = n132 | n133 ; 79 | assign n135 = n131 & ~n134 ; 80 | assign n136 = ~n131 & n134 ; 81 | assign n137 = n135 | n136 ; 82 | assign n138 = ~n128 & n137 ; 83 | assign n139 = n128 & ~n137 ; 84 | assign n140 = n138 | n139 ; 85 | assign n141 = n122 & ~n140 ; 86 | assign n142 = ~n122 & n140 ; 87 | assign n143 = n141 | n142 ; 88 | assign n144 = N156 & N59 ; 89 | assign n145 = n81 & ~n144 ; 90 | assign n146 = N17 & n145 ; 91 | assign n147 = N1 & ~n146 ; 92 | assign n148 = N153 & ~n147 ; 93 | assign n149 = N80 & n61 ; 94 | assign n150 = n81 & n149 ; 95 | assign n151 = N55 & n150 ; 96 | assign n152 = ~N268 & n151 ; 97 | assign n153 = N17 & ~N42 ; 98 | assign n154 = ~N17 & N42 ; 99 | assign n155 = n153 | n154 ; 100 | assign n156 = n81 & n144 ; 101 | assign n157 = n155 & n156 ; 102 | assign n158 = N42 & n73 ; 103 | assign n159 = N17 & N51 ; 104 | assign n160 = n67 & n159 ; 105 | assign n161 = ~n158 & n160 ; 106 | assign n162 = n157 | n161 ; 107 | assign n163 = N126 & n162 ; 108 | assign n164 = n152 | n163 ; 109 | assign n165 = n148 | n164 ; 110 | assign n166 = N201 | n165 ; 111 | assign n167 = N201 & n165 ; 112 | assign n168 = n166 & ~n167 ; 113 | assign n169 = N261 & n168 ; 114 | assign n170 = N261 | n168 ; 115 | assign n171 = N219 & n170 ; 116 | assign n172 = ~n169 & n171 ; 117 | assign n173 = N228 & n168 ; 118 | assign n174 = N237 & n167 ; 119 | assign n175 = N246 & n165 ; 120 | assign n176 = N42 & N72 ; 121 | assign n177 = N73 & n176 ; 122 | assign n178 = n86 & n177 ; 123 | assign n179 = n83 & n178 ; 124 | assign n180 = N201 & n179 ; 125 | assign n181 = N255 & N267 ; 126 | assign n182 = N121 & N210 ; 127 | assign n183 = n181 | n182 ; 128 | assign n184 = n180 | n183 ; 129 | assign n185 = n175 | n184 ; 130 | assign n186 = n174 | n185 ; 131 | assign n187 = n173 | n186 ; 132 | assign n188 = n172 | n187 ; 133 | assign n189 = N146 & ~n147 ; 134 | assign n190 = N116 & n162 ; 135 | assign n191 = n152 | n190 ; 136 | assign n192 = n189 | n191 ; 137 | assign n193 = N189 & n192 ; 138 | assign n194 = N189 | n192 ; 139 | assign n195 = N149 & ~n147 ; 140 | assign n196 = N121 & n162 ; 141 | assign n197 = n152 | n196 ; 142 | assign n198 = n195 | n197 ; 143 | assign n199 = N195 & n198 ; 144 | assign n200 = N195 | n198 ; 145 | assign n201 = N261 | n167 ; 146 | assign n202 = n166 & n201 ; 147 | assign n203 = n200 & n202 ; 148 | assign n204 = n199 | n203 ; 149 | assign n205 = n194 & n204 ; 150 | assign n206 = n193 | n205 ; 151 | assign n207 = N111 & n162 ; 152 | assign n208 = N143 & ~n147 ; 153 | assign n209 = n207 | n208 ; 154 | assign n210 = n152 | n209 ; 155 | assign n211 = N183 & n210 ; 156 | assign n212 = N183 | n210 ; 157 | assign n213 = ~n211 & n212 ; 158 | assign n214 = n206 | n213 ; 159 | assign n215 = n206 & n213 ; 160 | assign n216 = n214 & ~n215 ; 161 | assign n217 = N219 & n216 ; 162 | assign n218 = N228 & n213 ; 163 | assign n219 = N237 & n211 ; 164 | assign n220 = N246 & n210 ; 165 | assign n221 = N183 & n179 ; 166 | assign n222 = N106 & N210 ; 167 | assign n223 = n221 | n222 ; 168 | assign n224 = n220 | n223 ; 169 | assign n225 = n219 | n224 ; 170 | assign n226 = n218 | n225 ; 171 | assign n227 = n217 | n226 ; 172 | assign n228 = ~n193 & n194 ; 173 | assign n229 = n204 | n228 ; 174 | assign n230 = n204 & n228 ; 175 | assign n231 = n229 & ~n230 ; 176 | assign n232 = N219 & n231 ; 177 | assign n233 = N228 & n228 ; 178 | assign n234 = N237 & n193 ; 179 | assign n235 = N246 & n192 ; 180 | assign n236 = N189 & n179 ; 181 | assign n237 = N111 & N210 ; 182 | assign n238 = N255 & N259 ; 183 | assign n239 = n237 | n238 ; 184 | assign n240 = n236 | n239 ; 185 | assign n241 = n235 | n240 ; 186 | assign n242 = n234 | n241 ; 187 | assign n243 = n233 | n242 ; 188 | assign n244 = n232 | n243 ; 189 | assign n245 = ~n199 & n200 ; 190 | assign n246 = n202 | n245 ; 191 | assign n247 = n202 & n245 ; 192 | assign n248 = n246 & ~n247 ; 193 | assign n249 = N219 & n248 ; 194 | assign n250 = N228 & n245 ; 195 | assign n251 = N237 & n199 ; 196 | assign n252 = N246 & n198 ; 197 | assign n253 = N195 & n179 ; 198 | assign n254 = N255 & N260 ; 199 | assign n255 = N116 & N210 ; 200 | assign n256 = n254 | n255 ; 201 | assign n257 = n253 | n256 ; 202 | assign n258 = n252 | n257 ; 203 | assign n259 = n251 | n258 ; 204 | assign n260 = n250 | n259 ; 205 | assign n261 = n249 | n260 ; 206 | assign n262 = N91 & n162 ; 207 | assign n263 = N55 & n145 ; 208 | assign n264 = N143 & n263 ; 209 | assign n265 = N17 & ~N268 ; 210 | assign n266 = n150 & n265 ; 211 | assign n267 = N138 & N8 ; 212 | assign n268 = n266 | n267 ; 213 | assign n269 = n264 | n268 ; 214 | assign n270 = n262 | n269 ; 215 | assign n271 = N159 & n270 ; 216 | assign n272 = N159 | n270 ; 217 | assign n273 = N96 & n162 ; 218 | assign n274 = N146 & n263 ; 219 | assign n275 = N138 & N51 ; 220 | assign n276 = n266 | n275 ; 221 | assign n277 = n274 | n276 ; 222 | assign n278 = n273 | n277 ; 223 | assign n279 = N165 & n278 ; 224 | assign n280 = N165 | n278 ; 225 | assign n281 = N101 & n162 ; 226 | assign n282 = N149 & n263 ; 227 | assign n283 = N138 & N17 ; 228 | assign n284 = n266 | n283 ; 229 | assign n285 = n282 | n284 ; 230 | assign n286 = n281 | n285 ; 231 | assign n287 = N171 & n286 ; 232 | assign n288 = N171 | n286 ; 233 | assign n289 = N106 & n162 ; 234 | assign n290 = N153 & n263 ; 235 | assign n291 = N138 & N152 ; 236 | assign n292 = n266 | n291 ; 237 | assign n293 = n290 | n292 ; 238 | assign n294 = n289 | n293 ; 239 | assign n295 = N177 & n294 ; 240 | assign n296 = N177 | n294 ; 241 | assign n297 = n206 & n212 ; 242 | assign n298 = n211 | n297 ; 243 | assign n299 = n296 & n298 ; 244 | assign n300 = n295 | n299 ; 245 | assign n301 = n288 & n300 ; 246 | assign n302 = n287 | n301 ; 247 | assign n303 = n280 & n302 ; 248 | assign n304 = n279 | n303 ; 249 | assign n305 = n272 & n304 ; 250 | assign n306 = n271 | n305 ; 251 | assign n307 = ~n295 & n296 ; 252 | assign n308 = N219 & ~n298 ; 253 | assign n309 = N228 | n308 ; 254 | assign n310 = n307 & n309 ; 255 | assign n311 = N219 & ~n307 ; 256 | assign n312 = n298 & n311 ; 257 | assign n313 = N237 & n295 ; 258 | assign n314 = N246 & n294 ; 259 | assign n315 = N177 & n179 ; 260 | assign n316 = N101 & N210 ; 261 | assign n317 = n315 | n316 ; 262 | assign n318 = n314 | n317 ; 263 | assign n319 = n313 | n318 ; 264 | assign n320 = n312 | n319 ; 265 | assign n321 = n310 | n320 ; 266 | assign n322 = ~n271 & n272 ; 267 | assign n323 = n304 | n322 ; 268 | assign n324 = n304 & n322 ; 269 | assign n325 = N219 & ~n324 ; 270 | assign n326 = n323 & n325 ; 271 | assign n327 = N228 & n322 ; 272 | assign n328 = N237 & n271 ; 273 | assign n329 = N246 & n270 ; 274 | assign n330 = N159 & n179 ; 275 | assign n331 = N210 & N268 ; 276 | assign n332 = n330 | n331 ; 277 | assign n333 = n329 | n332 ; 278 | assign n334 = n328 | n333 ; 279 | assign n335 = n327 | n334 ; 280 | assign n336 = n326 | n335 ; 281 | assign n337 = ~n279 & n280 ; 282 | assign n338 = n302 & n337 ; 283 | assign n339 = n302 | n337 ; 284 | assign n340 = N219 & n339 ; 285 | assign n341 = ~n338 & n340 ; 286 | assign n342 = N228 & n337 ; 287 | assign n343 = N237 & n279 ; 288 | assign n344 = N246 & n278 ; 289 | assign n345 = N210 & N91 ; 290 | assign n346 = N165 & n179 ; 291 | assign n347 = n345 | n346 ; 292 | assign n348 = n344 | n347 ; 293 | assign n349 = n343 | n348 ; 294 | assign n350 = n342 | n349 ; 295 | assign n351 = n341 | n350 ; 296 | assign n352 = ~n287 & n288 ; 297 | assign n353 = n300 & n352 ; 298 | assign n354 = n300 | n352 ; 299 | assign n355 = N219 & n354 ; 300 | assign n356 = ~n353 & n355 ; 301 | assign n357 = N228 & n352 ; 302 | assign n358 = N237 & n287 ; 303 | assign n359 = N246 & n286 ; 304 | assign n360 = N210 & N96 ; 305 | assign n361 = N171 & n179 ; 306 | assign n362 = n360 | n361 ; 307 | assign n363 = n359 | n362 ; 308 | assign n364 = n358 | n363 ; 309 | assign n365 = n357 | n364 ; 310 | assign n366 = n356 | n365 ; 311 | assign N388 = n62 ; 312 | assign N389 = n64 ; 313 | assign N390 = n65 ; 314 | assign N391 = n66 ; 315 | assign N418 = n69 ; 316 | assign N419 = ~n72 ; 317 | assign N420 = ~n74 ; 318 | assign N421 = ~n76 ; 319 | assign N422 = ~n77 ; 320 | assign N423 = n79 ; 321 | assign N446 = ~n80 ; 322 | assign N447 = n81 ; 323 | assign N448 = n85 ; 324 | assign N449 = n88 ; 325 | assign N450 = n89 ; 326 | assign N767 = n116 ; 327 | assign N768 = n143 ; 328 | assign N850 = n188 ; 329 | assign N863 = n227 ; 330 | assign N864 = n244 ; 331 | assign N865 = n261 ; 332 | assign N866 = n306 ; 333 | assign N874 = n321 ; 334 | assign N878 = n336 ; 335 | assign N879 = n351 ; 336 | assign N880 = n366 ; 337 | endmodule 338 | -------------------------------------------------------------------------------- /ISCAS/strashed/counter16.v: -------------------------------------------------------------------------------- 1 | module top( in_0_ , in_1_ , in_2_ , in_3_ , in_4_ , in_5_ , in_6_ , in_7_ , in_8_ , in_9_ , in_10_ , in_11_ , in_12_ , in_13_ , in_14_ , in_15_ , out_0_ , out_1_ , out_2_ , out_3_ , out_4_ ); 2 | input in_0_ , in_1_ , in_2_ , in_3_ , in_4_ , in_5_ , in_6_ , in_7_ , in_8_ , in_9_ , in_10_ , in_11_ , in_12_ , in_13_ , in_14_ , in_15_ ; 3 | output out_0_ , out_1_ , out_2_ , out_3_ , out_4_ ; 4 | wire n17 , n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 ; 5 | assign n17 = in_14_ & in_15_ ; 6 | assign n18 = in_12_ | in_13_ ; 7 | assign n19 = in_4_ | in_5_ ; 8 | assign n20 = in_0_ | in_1_ ; 9 | assign n21 = in_2_ & in_3_ ; 10 | assign n22 = ( n19 & n20 ) | ( n19 & n21 ) | ( n20 & n21 ) ; 11 | assign n23 = ( ~n19 & n20 ) | ( ~n19 & n21 ) | ( n20 & n21 ) ; 12 | assign n24 = ( n19 & ~n22 ) | ( n19 & n23 ) | ( ~n22 & n23 ) ; 13 | assign n25 = in_10_ & in_11_ ; 14 | assign n26 = in_6_ & in_7_ ; 15 | assign n27 = in_8_ | in_9_ ; 16 | assign n28 = ( n25 & n26 ) | ( n25 & n27 ) | ( n26 & n27 ) ; 17 | assign n29 = ( ~n25 & n26 ) | ( ~n25 & n27 ) | ( n26 & n27 ) ; 18 | assign n30 = ( n25 & ~n28 ) | ( n25 & n29 ) | ( ~n28 & n29 ) ; 19 | assign n31 = ( n18 & n24 ) | ( n18 & n30 ) | ( n24 & n30 ) ; 20 | assign n32 = ( ~n18 & n24 ) | ( ~n18 & n30 ) | ( n24 & n30 ) ; 21 | assign n33 = ( n18 & ~n31 ) | ( n18 & n32 ) | ( ~n31 & n32 ) ; 22 | assign n34 = n17 & n33 ; 23 | assign n35 = n17 | n33 ; 24 | assign n36 = ~n34 & n35 ; 25 | assign n37 = ( n22 & n28 ) | ( n22 & n31 ) | ( n28 & n31 ) ; 26 | assign n38 = ( n22 & n28 ) | ( n22 & ~n31 ) | ( n28 & ~n31 ) ; 27 | assign n39 = ( n31 & ~n37 ) | ( n31 & n38 ) | ( ~n37 & n38 ) ; 28 | assign n40 = n34 & n39 ; 29 | assign n41 = n34 | n39 ; 30 | assign n42 = ~n40 & n41 ; 31 | assign n43 = n37 & n40 ; 32 | assign n44 = n37 | n40 ; 33 | assign n45 = ~n43 & n44 ; 34 | assign out_0_ = 1'b0 ; 35 | assign out_1_ = n36 ; 36 | assign out_2_ = n42 ; 37 | assign out_3_ = n45 ; 38 | assign out_4_ = n43 ; 39 | endmodule 40 | -------------------------------------------------------------------------------- /ISCAS/strashed/counter32.v: -------------------------------------------------------------------------------- 1 | module top( in_6_ , in_15_ , in_13_ , in_14_ , in_2_ , in_10_ , in_24_ , in_8_ , in_22_ , in_20_ , in_7_ , in_25_ , in_5_ , in_4_ , in_23_ , in_27_ , in_1_ , in_0_ , in_16_ , in_30_ , in_26_ , in_12_ , in_11_ , in_17_ , in_19_ , in_18_ , in_21_ , in_31_ , in_29_ , in_28_ , in_9_ , in_3_ , out_2_ , out_1_ , out_3_ , out_0_ , out_5_ , out_4_ ); 2 | input in_6_ , in_15_ , in_13_ , in_14_ , in_2_ , in_10_ , in_24_ , in_8_ , in_22_ , in_20_ , in_7_ , in_25_ , in_5_ , in_4_ , in_23_ , in_27_ , in_1_ , in_0_ , in_16_ , in_30_ , in_26_ , in_12_ , in_11_ , in_17_ , in_19_ , in_18_ , in_21_ , in_31_ , in_29_ , in_28_ , in_9_ , in_3_ ; 3 | output out_2_ , out_1_ , out_3_ , out_0_ , out_5_ , out_4_ ; 4 | wire n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 ; 5 | assign n33 = in_29_ | in_28_ ; 6 | assign n34 = in_20_ | in_21_ ; 7 | assign n35 = in_16_ | in_17_ ; 8 | assign n36 = in_19_ & in_18_ ; 9 | assign n37 = ( n34 & n35 ) | ( n34 & n36 ) | ( n35 & n36 ) ; 10 | assign n38 = ( ~n34 & n35 ) | ( ~n34 & n36 ) | ( n35 & n36 ) ; 11 | assign n39 = ( n34 & ~n37 ) | ( n34 & n38 ) | ( ~n37 & n38 ) ; 12 | assign n40 = in_27_ & in_26_ ; 13 | assign n41 = in_22_ & in_23_ ; 14 | assign n42 = in_24_ | in_25_ ; 15 | assign n43 = ( n40 & n41 ) | ( n40 & n42 ) | ( n41 & n42 ) ; 16 | assign n44 = ( ~n40 & n41 ) | ( ~n40 & n42 ) | ( n41 & n42 ) ; 17 | assign n45 = ( n40 & ~n43 ) | ( n40 & n44 ) | ( ~n43 & n44 ) ; 18 | assign n46 = ( n33 & n39 ) | ( n33 & n45 ) | ( n39 & n45 ) ; 19 | assign n47 = ( n37 & n43 ) | ( n37 & n46 ) | ( n43 & n46 ) ; 20 | assign n48 = ( n37 & n43 ) | ( n37 & ~n46 ) | ( n43 & ~n46 ) ; 21 | assign n49 = ( n46 & ~n47 ) | ( n46 & n48 ) | ( ~n47 & n48 ) ; 22 | assign n50 = in_30_ & in_31_ ; 23 | assign n51 = ( ~n33 & n39 ) | ( ~n33 & n45 ) | ( n39 & n45 ) ; 24 | assign n52 = ( n33 & ~n46 ) | ( n33 & n51 ) | ( ~n46 & n51 ) ; 25 | assign n53 = n50 & n52 ; 26 | assign n54 = n49 & n53 ; 27 | assign n55 = n49 | n53 ; 28 | assign n56 = ~n54 & n55 ; 29 | assign n57 = in_13_ | in_12_ ; 30 | assign n58 = in_5_ | in_4_ ; 31 | assign n59 = in_1_ | in_0_ ; 32 | assign n60 = in_2_ & in_3_ ; 33 | assign n61 = ( n58 & n59 ) | ( n58 & n60 ) | ( n59 & n60 ) ; 34 | assign n62 = ( ~n58 & n59 ) | ( ~n58 & n60 ) | ( n59 & n60 ) ; 35 | assign n63 = ( n58 & ~n61 ) | ( n58 & n62 ) | ( ~n61 & n62 ) ; 36 | assign n64 = in_10_ & in_11_ ; 37 | assign n65 = in_6_ & in_7_ ; 38 | assign n66 = in_8_ | in_9_ ; 39 | assign n67 = ( n64 & n65 ) | ( n64 & n66 ) | ( n65 & n66 ) ; 40 | assign n68 = ( ~n64 & n65 ) | ( ~n64 & n66 ) | ( n65 & n66 ) ; 41 | assign n69 = ( n64 & ~n67 ) | ( n64 & n68 ) | ( ~n67 & n68 ) ; 42 | assign n70 = ( n57 & n63 ) | ( n57 & n69 ) | ( n63 & n69 ) ; 43 | assign n71 = ( n61 & n67 ) | ( n61 & n70 ) | ( n67 & n70 ) ; 44 | assign n72 = ( n61 & n67 ) | ( n61 & ~n70 ) | ( n67 & ~n70 ) ; 45 | assign n73 = ( n70 & ~n71 ) | ( n70 & n72 ) | ( ~n71 & n72 ) ; 46 | assign n74 = in_15_ & in_14_ ; 47 | assign n75 = ( ~n57 & n63 ) | ( ~n57 & n69 ) | ( n63 & n69 ) ; 48 | assign n76 = ( n57 & ~n70 ) | ( n57 & n75 ) | ( ~n70 & n75 ) ; 49 | assign n77 = n74 & n76 ; 50 | assign n78 = n73 & n77 ; 51 | assign n79 = n73 | n77 ; 52 | assign n80 = ~n78 & n79 ; 53 | assign n81 = n56 & n80 ; 54 | assign n82 = n56 | n80 ; 55 | assign n83 = ~n81 & n82 ; 56 | assign n84 = n50 | n52 ; 57 | assign n85 = ~n53 & n84 ; 58 | assign n86 = n74 | n76 ; 59 | assign n87 = ~n77 & n86 ; 60 | assign n88 = n85 & n87 ; 61 | assign n89 = n83 & n88 ; 62 | assign n90 = n83 | n88 ; 63 | assign n91 = ~n89 & n90 ; 64 | assign n92 = n85 | n87 ; 65 | assign n93 = ~n88 & n92 ; 66 | assign n94 = n47 & n54 ; 67 | assign n95 = n47 | n54 ; 68 | assign n96 = ~n94 & n95 ; 69 | assign n97 = n71 & n78 ; 70 | assign n98 = n71 | n78 ; 71 | assign n99 = ~n97 & n98 ; 72 | assign n100 = n96 & n99 ; 73 | assign n101 = n96 | n99 ; 74 | assign n102 = ~n100 & n101 ; 75 | assign n103 = ( n56 & n80 ) | ( n56 & n88 ) | ( n80 & n88 ) ; 76 | assign n104 = n102 & n103 ; 77 | assign n105 = n102 | n103 ; 78 | assign n106 = ~n104 & n105 ; 79 | assign n107 = ( n96 & n99 ) | ( n96 & n103 ) | ( n99 & n103 ) ; 80 | assign n108 = ( n94 & n97 ) | ( n94 & n107 ) | ( n97 & n107 ) ; 81 | assign n109 = n94 | n97 ; 82 | assign n110 = n94 & n97 ; 83 | assign n111 = n109 & ~n110 ; 84 | assign n112 = n107 & n111 ; 85 | assign n113 = n107 | n111 ; 86 | assign n114 = ~n112 & n113 ; 87 | assign out_2_ = n91 ; 88 | assign out_1_ = n93 ; 89 | assign out_3_ = n106 ; 90 | assign out_0_ = 1'b0 ; 91 | assign out_5_ = n108 ; 92 | assign out_4_ = n114 ; 93 | endmodule 94 | -------------------------------------------------------------------------------- /ISCAS/strashed/counter64.v: -------------------------------------------------------------------------------- 1 | module top( in_15_ , in_0_ , in_4_ , in_29_ , in_38_ , in_53_ , in_42_ , in_11_ , in_59_ , in_48_ , in_54_ , in_16_ , in_43_ , in_37_ , in_61_ , in_14_ , in_62_ , in_60_ , in_40_ , in_5_ , in_28_ , in_7_ , in_6_ , in_34_ , in_57_ , in_3_ , in_56_ , in_45_ , in_10_ , in_27_ , in_21_ , in_25_ , in_22_ , in_12_ , in_58_ , in_36_ , in_51_ , in_18_ , in_9_ , in_39_ , in_24_ , in_26_ , in_8_ , in_41_ , in_55_ , in_2_ , in_49_ , in_19_ , in_35_ , in_50_ , in_32_ , in_30_ , in_33_ , in_17_ , in_31_ , in_44_ , in_1_ , in_23_ , in_52_ , in_20_ , in_46_ , in_13_ , in_63_ , in_47_ , out_1_ , out_3_ , out_6_ , out_2_ , out_0_ , out_4_ , out_5_ ); 2 | input in_15_ , in_0_ , in_4_ , in_29_ , in_38_ , in_53_ , in_42_ , in_11_ , in_59_ , in_48_ , in_54_ , in_16_ , in_43_ , in_37_ , in_61_ , in_14_ , in_62_ , in_60_ , in_40_ , in_5_ , in_28_ , in_7_ , in_6_ , in_34_ , in_57_ , in_3_ , in_56_ , in_45_ , in_10_ , in_27_ , in_21_ , in_25_ , in_22_ , in_12_ , in_58_ , in_36_ , in_51_ , in_18_ , in_9_ , in_39_ , in_24_ , in_26_ , in_8_ , in_41_ , in_55_ , in_2_ , in_49_ , in_19_ , in_35_ , in_50_ , in_32_ , in_30_ , in_33_ , in_17_ , in_31_ , in_44_ , in_1_ , in_23_ , in_52_ , in_20_ , in_46_ , in_13_ , in_63_ , in_47_ ; 3 | output out_1_ , out_3_ , out_6_ , out_2_ , out_0_ , out_4_ , out_5_ ; 4 | wire n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 , n211 , n212 , n213 , n214 , n215 , n216 , n217 , n218 , n219 , n220 , n221 , n222 , n223 , n224 , n225 , n226 , n227 , n228 , n229 , n230 , n231 , n232 , n233 , n234 , n235 , n236 , n237 , n238 , n239 , n240 , n241 , n242 , n243 , n244 , n245 , n246 , n247 , n248 , n249 , n250 , n251 , n252 , n253 , n254 , n255 , n256 , n257 , n258 , n259 ; 5 | assign n65 = in_15_ & in_14_ ; 6 | assign n66 = in_12_ | in_13_ ; 7 | assign n67 = in_4_ | in_5_ ; 8 | assign n68 = in_0_ | in_1_ ; 9 | assign n69 = in_3_ & in_2_ ; 10 | assign n70 = ( n67 & n68 ) | ( n67 & n69 ) | ( n68 & n69 ) ; 11 | assign n71 = ( ~n67 & n68 ) | ( ~n67 & n69 ) | ( n68 & n69 ) ; 12 | assign n72 = ( n67 & ~n70 ) | ( n67 & n71 ) | ( ~n70 & n71 ) ; 13 | assign n73 = in_11_ & in_10_ ; 14 | assign n74 = in_7_ & in_6_ ; 15 | assign n75 = in_9_ | in_8_ ; 16 | assign n76 = ( n73 & n74 ) | ( n73 & n75 ) | ( n74 & n75 ) ; 17 | assign n77 = ( ~n73 & n74 ) | ( ~n73 & n75 ) | ( n74 & n75 ) ; 18 | assign n78 = ( n73 & ~n76 ) | ( n73 & n77 ) | ( ~n76 & n77 ) ; 19 | assign n79 = ( n66 & n72 ) | ( n66 & n78 ) | ( n72 & n78 ) ; 20 | assign n80 = ( ~n66 & n72 ) | ( ~n66 & n78 ) | ( n72 & n78 ) ; 21 | assign n81 = ( n66 & ~n79 ) | ( n66 & n80 ) | ( ~n79 & n80 ) ; 22 | assign n82 = n65 & n81 ; 23 | assign n83 = n65 | n81 ; 24 | assign n84 = ~n82 & n83 ; 25 | assign n85 = in_30_ & in_31_ ; 26 | assign n86 = in_29_ | in_28_ ; 27 | assign n87 = in_21_ | in_20_ ; 28 | assign n88 = in_16_ | in_17_ ; 29 | assign n89 = in_18_ & in_19_ ; 30 | assign n90 = ( n87 & n88 ) | ( n87 & n89 ) | ( n88 & n89 ) ; 31 | assign n91 = ( ~n87 & n88 ) | ( ~n87 & n89 ) | ( n88 & n89 ) ; 32 | assign n92 = ( n87 & ~n90 ) | ( n87 & n91 ) | ( ~n90 & n91 ) ; 33 | assign n93 = in_27_ & in_26_ ; 34 | assign n94 = in_22_ & in_23_ ; 35 | assign n95 = in_25_ | in_24_ ; 36 | assign n96 = ( n93 & n94 ) | ( n93 & n95 ) | ( n94 & n95 ) ; 37 | assign n97 = ( ~n93 & n94 ) | ( ~n93 & n95 ) | ( n94 & n95 ) ; 38 | assign n98 = ( n93 & ~n96 ) | ( n93 & n97 ) | ( ~n96 & n97 ) ; 39 | assign n99 = ( n86 & n92 ) | ( n86 & n98 ) | ( n92 & n98 ) ; 40 | assign n100 = ( ~n86 & n92 ) | ( ~n86 & n98 ) | ( n92 & n98 ) ; 41 | assign n101 = ( n86 & ~n99 ) | ( n86 & n100 ) | ( ~n99 & n100 ) ; 42 | assign n102 = n85 & n101 ; 43 | assign n103 = n85 | n101 ; 44 | assign n104 = ~n102 & n103 ; 45 | assign n105 = n84 & n104 ; 46 | assign n106 = n84 | n104 ; 47 | assign n107 = ~n105 & n106 ; 48 | assign n108 = in_46_ & in_47_ ; 49 | assign n109 = in_45_ | in_44_ ; 50 | assign n110 = in_37_ | in_36_ ; 51 | assign n111 = in_32_ | in_33_ ; 52 | assign n112 = in_34_ & in_35_ ; 53 | assign n113 = ( n110 & n111 ) | ( n110 & n112 ) | ( n111 & n112 ) ; 54 | assign n114 = ( ~n110 & n111 ) | ( ~n110 & n112 ) | ( n111 & n112 ) ; 55 | assign n115 = ( n110 & ~n113 ) | ( n110 & n114 ) | ( ~n113 & n114 ) ; 56 | assign n116 = in_42_ & in_43_ ; 57 | assign n117 = in_38_ & in_39_ ; 58 | assign n118 = in_40_ | in_41_ ; 59 | assign n119 = ( n116 & n117 ) | ( n116 & n118 ) | ( n117 & n118 ) ; 60 | assign n120 = ( ~n116 & n117 ) | ( ~n116 & n118 ) | ( n117 & n118 ) ; 61 | assign n121 = ( n116 & ~n119 ) | ( n116 & n120 ) | ( ~n119 & n120 ) ; 62 | assign n122 = ( n109 & n115 ) | ( n109 & n121 ) | ( n115 & n121 ) ; 63 | assign n123 = ( ~n109 & n115 ) | ( ~n109 & n121 ) | ( n115 & n121 ) ; 64 | assign n124 = ( n109 & ~n122 ) | ( n109 & n123 ) | ( ~n122 & n123 ) ; 65 | assign n125 = n108 & n124 ; 66 | assign n126 = n108 | n124 ; 67 | assign n127 = ~n125 & n126 ; 68 | assign n128 = in_62_ & in_63_ ; 69 | assign n129 = in_61_ | in_60_ ; 70 | assign n130 = in_53_ | in_52_ ; 71 | assign n131 = in_48_ | in_49_ ; 72 | assign n132 = in_51_ & in_50_ ; 73 | assign n133 = ( n130 & n131 ) | ( n130 & n132 ) | ( n131 & n132 ) ; 74 | assign n134 = ( ~n130 & n131 ) | ( ~n130 & n132 ) | ( n131 & n132 ) ; 75 | assign n135 = ( n130 & ~n133 ) | ( n130 & n134 ) | ( ~n133 & n134 ) ; 76 | assign n136 = in_59_ & in_58_ ; 77 | assign n137 = in_54_ & in_55_ ; 78 | assign n138 = in_57_ | in_56_ ; 79 | assign n139 = ( n136 & n137 ) | ( n136 & n138 ) | ( n137 & n138 ) ; 80 | assign n140 = ( ~n136 & n137 ) | ( ~n136 & n138 ) | ( n137 & n138 ) ; 81 | assign n141 = ( n136 & ~n139 ) | ( n136 & n140 ) | ( ~n139 & n140 ) ; 82 | assign n142 = ( n129 & n135 ) | ( n129 & n141 ) | ( n135 & n141 ) ; 83 | assign n143 = ( ~n129 & n135 ) | ( ~n129 & n141 ) | ( n135 & n141 ) ; 84 | assign n144 = ( n129 & ~n142 ) | ( n129 & n143 ) | ( ~n142 & n143 ) ; 85 | assign n145 = n128 | n144 ; 86 | assign n146 = n128 & n144 ; 87 | assign n147 = n145 & ~n146 ; 88 | assign n148 = n127 & n147 ; 89 | assign n149 = n127 | n147 ; 90 | assign n150 = ~n148 & n149 ; 91 | assign n151 = n107 & n150 ; 92 | assign n152 = n107 | n150 ; 93 | assign n153 = ~n151 & n152 ; 94 | assign n154 = ( n70 & n76 ) | ( n70 & n79 ) | ( n76 & n79 ) ; 95 | assign n155 = ( n70 & n76 ) | ( n70 & ~n79 ) | ( n76 & ~n79 ) ; 96 | assign n156 = ( n79 & ~n154 ) | ( n79 & n155 ) | ( ~n154 & n155 ) ; 97 | assign n157 = n82 & n156 ; 98 | assign n158 = n154 & n157 ; 99 | assign n159 = n154 | n157 ; 100 | assign n160 = ~n158 & n159 ; 101 | assign n161 = ( n90 & n96 ) | ( n90 & n99 ) | ( n96 & n99 ) ; 102 | assign n162 = ( n90 & n96 ) | ( n90 & ~n99 ) | ( n96 & ~n99 ) ; 103 | assign n163 = ( n99 & ~n161 ) | ( n99 & n162 ) | ( ~n161 & n162 ) ; 104 | assign n164 = n102 & n163 ; 105 | assign n165 = n161 & n164 ; 106 | assign n166 = n161 | n164 ; 107 | assign n167 = ~n165 & n166 ; 108 | assign n168 = n160 & n167 ; 109 | assign n169 = n160 | n167 ; 110 | assign n170 = ~n168 & n169 ; 111 | assign n171 = n82 | n156 ; 112 | assign n172 = ~n157 & n171 ; 113 | assign n173 = n102 | n163 ; 114 | assign n174 = ~n164 & n173 ; 115 | assign n175 = ( n105 & n172 ) | ( n105 & n174 ) | ( n172 & n174 ) ; 116 | assign n176 = n170 & n175 ; 117 | assign n177 = n170 | n175 ; 118 | assign n178 = ~n176 & n177 ; 119 | assign n179 = ( n113 & n119 ) | ( n113 & n122 ) | ( n119 & n122 ) ; 120 | assign n180 = ( n113 & n119 ) | ( n113 & ~n122 ) | ( n119 & ~n122 ) ; 121 | assign n181 = ( n122 & ~n179 ) | ( n122 & n180 ) | ( ~n179 & n180 ) ; 122 | assign n182 = n125 & n181 ; 123 | assign n183 = n179 & n182 ; 124 | assign n184 = n179 | n182 ; 125 | assign n185 = ~n183 & n184 ; 126 | assign n186 = ( n133 & n139 ) | ( n133 & n142 ) | ( n139 & n142 ) ; 127 | assign n187 = ( n133 & n139 ) | ( n133 & ~n142 ) | ( n139 & ~n142 ) ; 128 | assign n188 = ( n142 & ~n186 ) | ( n142 & n187 ) | ( ~n186 & n187 ) ; 129 | assign n189 = n146 & n188 ; 130 | assign n190 = n186 & n189 ; 131 | assign n191 = n186 | n189 ; 132 | assign n192 = ~n190 & n191 ; 133 | assign n193 = n185 & n192 ; 134 | assign n194 = n185 | n192 ; 135 | assign n195 = ~n193 & n194 ; 136 | assign n196 = n125 | n181 ; 137 | assign n197 = ~n182 & n196 ; 138 | assign n198 = n146 | n188 ; 139 | assign n199 = ~n189 & n198 ; 140 | assign n200 = ( n148 & n197 ) | ( n148 & n199 ) | ( n197 & n199 ) ; 141 | assign n201 = n195 & n200 ; 142 | assign n202 = n195 | n200 ; 143 | assign n203 = ~n201 & n202 ; 144 | assign n204 = n178 & n203 ; 145 | assign n205 = n178 | n203 ; 146 | assign n206 = ~n204 & n205 ; 147 | assign n207 = n172 & n174 ; 148 | assign n208 = n172 | n174 ; 149 | assign n209 = ~n207 & n208 ; 150 | assign n210 = n105 & n209 ; 151 | assign n211 = n105 | n209 ; 152 | assign n212 = ~n210 & n211 ; 153 | assign n213 = n197 & n199 ; 154 | assign n214 = n197 | n199 ; 155 | assign n215 = ~n213 & n214 ; 156 | assign n216 = n148 & n215 ; 157 | assign n217 = n148 | n215 ; 158 | assign n218 = ~n216 & n217 ; 159 | assign n219 = ( n151 & n212 ) | ( n151 & n218 ) | ( n212 & n218 ) ; 160 | assign n220 = n206 & n219 ; 161 | assign n221 = n206 | n219 ; 162 | assign n222 = ~n220 & n221 ; 163 | assign n223 = ( n160 & n167 ) | ( n160 & n175 ) | ( n167 & n175 ) ; 164 | assign n224 = ( n158 & n165 ) | ( n158 & n223 ) | ( n165 & n223 ) ; 165 | assign n225 = ( n185 & n192 ) | ( n185 & n200 ) | ( n192 & n200 ) ; 166 | assign n226 = ( n183 & n190 ) | ( n183 & n225 ) | ( n190 & n225 ) ; 167 | assign n227 = n158 & n165 ; 168 | assign n228 = n158 | n165 ; 169 | assign n229 = ~n227 & n228 ; 170 | assign n230 = n223 & n229 ; 171 | assign n231 = n223 | n229 ; 172 | assign n232 = ~n230 & n231 ; 173 | assign n233 = n183 & n190 ; 174 | assign n234 = n183 | n190 ; 175 | assign n235 = ~n233 & n234 ; 176 | assign n236 = n225 & n235 ; 177 | assign n237 = n225 | n235 ; 178 | assign n238 = ~n236 & n237 ; 179 | assign n239 = ( n178 & n203 ) | ( n178 & n219 ) | ( n203 & n219 ) ; 180 | assign n240 = ( n232 & n238 ) | ( n232 & n239 ) | ( n238 & n239 ) ; 181 | assign n241 = ( n224 & n226 ) | ( n224 & n240 ) | ( n226 & n240 ) ; 182 | assign n242 = n212 & n218 ; 183 | assign n243 = n212 | n218 ; 184 | assign n244 = ~n242 & n243 ; 185 | assign n245 = n151 & n244 ; 186 | assign n246 = n151 | n244 ; 187 | assign n247 = ~n245 & n246 ; 188 | assign n248 = n232 & n238 ; 189 | assign n249 = n232 | n238 ; 190 | assign n250 = ~n248 & n249 ; 191 | assign n251 = n239 & n250 ; 192 | assign n252 = n239 | n250 ; 193 | assign n253 = ~n251 & n252 ; 194 | assign n254 = n224 & n226 ; 195 | assign n255 = n224 | n226 ; 196 | assign n256 = ~n254 & n255 ; 197 | assign n257 = n240 & n256 ; 198 | assign n258 = n240 | n256 ; 199 | assign n259 = ~n257 & n258 ; 200 | assign out_1_ = n153 ; 201 | assign out_3_ = n222 ; 202 | assign out_6_ = n241 ; 203 | assign out_2_ = n247 ; 204 | assign out_0_ = 1'b0 ; 205 | assign out_4_ = n253 ; 206 | assign out_5_ = n259 ; 207 | endmodule 208 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 lsils 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MCNC/README.md: -------------------------------------------------------------------------------- 1 | # MCNC benchmarks 2 | 3 | The initial MIG circuits were obtained by first mapping into 4-LUT networks using ABC command `&if -a -K 4`, then rewriting each LUT with optimum MIGs looked up in a database, and finally restricting the fanout size of each node to at most 16. (See Section 3.1 of [2].) 4 | 5 | ### Buffer and splitter insertion results without logic optimization [7] 6 | 7 | | benchmark | #B/S | #JJs | depth | 8 | | --------- | ----- | ----- | ----- | 9 | | 5xp1 | 175 | 1046 | 16 | 10 | | c1908 | 2524 | 7334 | 59 | 11 | | c432 | 2110 | 5264 | 64 | 12 | | c5315 | 8834 | 25288 | 56 | 13 | | c880 | 2187 | 6174 | 41 | 14 | | chkn | 1107 | 4740 | 36 | 15 | | count | 650 | 2014 | 25 | 16 | | dist | 706 | 4622 | 27 | 17 | | in5 | 950 | 4558 | 29 | 18 | | in6 | 823 | 3866 | 23 | 19 | | k2 | 3862 | 19454 | 40 | 20 | | m3 | 531 | 3528 | 22 | 21 | | max512 | 939 | 6156 | 27 | 22 | | misex3 | 2649 | 14490 | 37 | 23 | | mlp4 | 569 | 3910 | 26 | 24 | | prom2 | 4628 | 30118 | 32 | 25 | | sqr6 | 218 | 1264 | 19 | 26 | | x1dn | 366 | 1644 | 19 | 27 | 28 | ### Logic optimization results considering buffer and splitter costs [8] 29 | 30 | |Benchmark |#MAJ3 | #buffers | #JJs | depth | 31 | | ------- | ----- | -------- | ----- | ------| 32 | 5xp1 | 38 | 70 | 368 | 9 | 33 | c1908 | 328 | 1233 | 4434 | 29 | 34 | c432 | 184 | 619 | 2342 | 27 | 35 | c5315 | 1129 | 3606 | 13986 | 24 | 36 | c880 | 278 | 848 | 3364 | 19 | 37 | chkn | 238 | 405 | 2238 | 15 | 38 | count | 111 | 318 | 1302 | 11 | 39 | dist | 221 | 249 | 1824 | 14 | 40 | in5 | 170 | 291 | 1602 | 13 | 41 | in6 | 175 | 329 | 1708 | 12 | 42 | k2 | 892 | 1512 | 8376 | 19 | 43 | m3 | 194 | 218 | 1600 | 12 | 44 | max512| 340 | 350 | 2740 | 14 | 45 | misex3| 288 | 453 | 2634 | 17 | 46 | mlp4 | 189 | 227 | 1588 | 14 | 47 | prom2 | 1957 | 1758 | 15258 | 16 | 48 | sqr6 | 86 | 97 | 710 | 9 | 49 | x1dn | 84 | 105 | 714 | 10 | 50 | 51 | -------------------------------------------------------------------------------- /MCNC/best_insertion/5xp1_buffered.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 ); 10 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 ; 11 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 ; 12 | wire n8 , n9 , n10 , n11 , n12 , n13 , n14 , n15 , n16 , n17 , n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 , n211 , n212 , n213 , n214 , n215 , n216 , n217 , n218 , n219 , n220 , n221 , n222 , n223 , n224 , n225 , n226 , n227 , n228 , n229 , n230 , n231 , n232 , n233 , n234 , n235 , n236 , n237 , n238 , n239 , n240 , n241 , n242 , n243 , n244 , n245 , n246 , n247 , n248 , n249 , n250 , n251 , n252 , n253 , n254 , n255 , n256 , n257 , n258 , n259 , n260 , n261 , n262 , n263 , n264 , n265 , n266 , n267 , n268 , n269 , n270 , n271 , n272 , n273 , n274 , n275 , n276 , n277 , n278 , n279 , n280 , n281 , n282 , n283 , n284 , n285 , n286 , n287 , n288 , n289 , n290 , n291 , n292 , n293 , n294 , n295 , n296 , n297 , n298 ; 13 | buffer buf_n69( .i (x4), .o (n69) ); 14 | buffer buf_n70( .i (n69), .o (n70) ); 15 | buffer buf_n71( .i (n70), .o (n71) ); 16 | buffer buf_n72( .i (n71), .o (n72) ); 17 | buffer buf_n73( .i (n72), .o (n73) ); 18 | buffer buf_n74( .i (n73), .o (n74) ); 19 | buffer buf_n75( .i (n74), .o (n75) ); 20 | buffer buf_n76( .i (n75), .o (n76) ); 21 | buffer buf_n77( .i (n76), .o (n77) ); 22 | buffer buf_n78( .i (n77), .o (n78) ); 23 | buffer buf_n82( .i (x5), .o (n82) ); 24 | buffer buf_n83( .i (n82), .o (n83) ); 25 | buffer buf_n84( .i (n83), .o (n84) ); 26 | buffer buf_n85( .i (n84), .o (n85) ); 27 | buffer buf_n86( .i (n85), .o (n86) ); 28 | buffer buf_n87( .i (n86), .o (n87) ); 29 | buffer buf_n88( .i (n87), .o (n88) ); 30 | buffer buf_n89( .i (n88), .o (n89) ); 31 | buffer buf_n90( .i (n89), .o (n90) ); 32 | buffer buf_n97( .i (x6), .o (n97) ); 33 | buffer buf_n98( .i (n97), .o (n98) ); 34 | buffer buf_n99( .i (n98), .o (n99) ); 35 | buffer buf_n100( .i (n99), .o (n100) ); 36 | buffer buf_n101( .i (n100), .o (n101) ); 37 | buffer buf_n102( .i (n101), .o (n102) ); 38 | buffer buf_n103( .i (n102), .o (n103) ); 39 | buffer buf_n104( .i (n103), .o (n104) ); 40 | buffer buf_n38( .i (x2), .o (n38) ); 41 | buffer buf_n39( .i (n38), .o (n39) ); 42 | buffer buf_n40( .i (n39), .o (n40) ); 43 | buffer buf_n41( .i (n40), .o (n41) ); 44 | buffer buf_n42( .i (n41), .o (n42) ); 45 | buffer buf_n53( .i (x3), .o (n53) ); 46 | buffer buf_n54( .i (n53), .o (n54) ); 47 | buffer buf_n55( .i (n54), .o (n55) ); 48 | buffer buf_n56( .i (n55), .o (n56) ); 49 | buffer buf_n57( .i (n56), .o (n57) ); 50 | assign n111 = n42 & n57 ; 51 | buffer buf_n112( .i (n111), .o (n112) ); 52 | buffer buf_n113( .i (n112), .o (n113) ); 53 | buffer buf_n23( .i (x1), .o (n23) ); 54 | buffer buf_n24( .i (n23), .o (n24) ); 55 | buffer buf_n25( .i (n24), .o (n25) ); 56 | buffer buf_n26( .i (n25), .o (n26) ); 57 | buffer buf_n27( .i (n26), .o (n27) ); 58 | buffer buf_n28( .i (n27), .o (n28) ); 59 | buffer buf_n29( .i (n28), .o (n29) ); 60 | assign n115 = n29 | n103 ; 61 | assign n116 = ( n104 & n113 ) | ( n104 & n115 ) | ( n113 & n115 ) ; 62 | buffer buf_n8( .i (x0), .o (n8) ); 63 | buffer buf_n9( .i (n8), .o (n9) ); 64 | buffer buf_n10( .i (n9), .o (n10) ); 65 | buffer buf_n11( .i (n10), .o (n11) ); 66 | buffer buf_n12( .i (n11), .o (n12) ); 67 | assign n117 = n12 & n86 ; 68 | buffer buf_n118( .i (n117), .o (n118) ); 69 | buffer buf_n119( .i (n118), .o (n119) ); 70 | buffer buf_n120( .i (n119), .o (n120) ); 71 | assign n121 = ( n90 & n116 ) | ( n90 & n120 ) | ( n116 & n120 ) ; 72 | assign n122 = n78 & n121 ; 73 | buffer buf_n123( .i (n122), .o (n123) ); 74 | buffer buf_n79( .i (n78), .o (n79) ); 75 | buffer buf_n91( .i (n90), .o (n91) ); 76 | buffer buf_n105( .i (n104), .o (n105) ); 77 | buffer buf_n114( .i (n113), .o (n114) ); 78 | buffer buf_n13( .i (n12), .o (n13) ); 79 | buffer buf_n14( .i (n13), .o (n14) ); 80 | assign n128 = ( n14 & n29 ) | ( n14 & n103 ) | ( n29 & n103 ) ; 81 | assign n129 = ~n113 & n128 ; 82 | assign n130 = ( n105 & n114 ) | ( n105 & n129 ) | ( n114 & n129 ) ; 83 | assign n131 = n91 & n130 ; 84 | assign n132 = n79 | n131 ; 85 | assign n133 = ~n123 & n132 ; 86 | buffer buf_n134( .i (n133), .o (n134) ); 87 | buffer buf_n135( .i (n134), .o (n135) ); 88 | buffer buf_n136( .i (n135), .o (n136) ); 89 | buffer buf_n92( .i (n91), .o (n92) ); 90 | buffer buf_n93( .i (n92), .o (n93) ); 91 | buffer buf_n94( .i (n93), .o (n94) ); 92 | buffer buf_n95( .i (n94), .o (n95) ); 93 | buffer buf_n96( .i (n95), .o (n96) ); 94 | buffer buf_n80( .i (n79), .o (n80) ); 95 | buffer buf_n81( .i (n80), .o (n81) ); 96 | buffer buf_n15( .i (n14), .o (n15) ); 97 | buffer buf_n16( .i (n15), .o (n16) ); 98 | buffer buf_n17( .i (n16), .o (n17) ); 99 | buffer buf_n30( .i (n29), .o (n30) ); 100 | buffer buf_n31( .i (n30), .o (n31) ); 101 | assign n137 = ( n29 & n103 ) | ( n29 & ~n112 ) | ( n103 & ~n112 ) ; 102 | buffer buf_n138( .i (n102), .o (n138) ); 103 | assign n139 = ( n75 & n112 ) | ( n75 & n138 ) | ( n112 & n138 ) ; 104 | assign n140 = n137 & ~n139 ; 105 | assign n141 = ( n31 & n105 ) | ( n31 & ~n140 ) | ( n105 & ~n140 ) ; 106 | assign n142 = n17 | n141 ; 107 | buffer buf_n143( .i (n142), .o (n143) ); 108 | buffer buf_n144( .i (n143), .o (n144) ); 109 | buffer buf_n106( .i (n105), .o (n106) ); 110 | buffer buf_n107( .i (n106), .o (n107) ); 111 | buffer buf_n108( .i (n107), .o (n108) ); 112 | assign n145 = n108 & n143 ; 113 | assign n146 = ( n81 & n144 ) | ( n81 & n145 ) | ( n144 & n145 ) ; 114 | assign n147 = n95 & ~n146 ; 115 | buffer buf_n43( .i (n42), .o (n43) ); 116 | buffer buf_n44( .i (n43), .o (n44) ); 117 | buffer buf_n45( .i (n44), .o (n45) ); 118 | assign n148 = ( n30 & n45 ) | ( n30 & ~n76 ) | ( n45 & ~n76 ) ; 119 | assign n149 = n40 & n99 ; 120 | buffer buf_n150( .i (n149), .o (n150) ); 121 | buffer buf_n151( .i (n150), .o (n151) ); 122 | buffer buf_n152( .i (n151), .o (n152) ); 123 | buffer buf_n153( .i (n152), .o (n153) ); 124 | buffer buf_n154( .i (n153), .o (n154) ); 125 | assign n155 = ( n77 & n148 ) | ( n77 & n154 ) | ( n148 & n154 ) ; 126 | buffer buf_n58( .i (n57), .o (n58) ); 127 | buffer buf_n59( .i (n58), .o (n59) ); 128 | buffer buf_n60( .i (n59), .o (n60) ); 129 | buffer buf_n156( .i (n28), .o (n156) ); 130 | assign n157 = ( ~n59 & n75 ) | ( ~n59 & n156 ) | ( n75 & n156 ) ; 131 | assign n158 = n138 & n156 ; 132 | assign n159 = ( n60 & n157 ) | ( n60 & n158 ) | ( n157 & n158 ) ; 133 | assign n160 = n16 & n159 ; 134 | assign n161 = ( n17 & n155 ) | ( n17 & n160 ) | ( n155 & n160 ) ; 135 | buffer buf_n162( .i (n161), .o (n162) ); 136 | buffer buf_n163( .i (n162), .o (n163) ); 137 | assign n164 = n108 | n162 ; 138 | assign n165 = ( n81 & n163 ) | ( n81 & n164 ) | ( n163 & n164 ) ; 139 | assign n166 = n95 | n165 ; 140 | assign n167 = ( ~n96 & n147 ) | ( ~n96 & n166 ) | ( n147 & n166 ) ; 141 | buffer buf_n109( .i (n108), .o (n109) ); 142 | buffer buf_n110( .i (n109), .o (n110) ); 143 | buffer buf_n18( .i (n17), .o (n18) ); 144 | assign n168 = ( n12 & ~n42 ) | ( n12 & n57 ) | ( ~n42 & n57 ) ; 145 | assign n169 = ( n12 & n42 ) | ( n12 & n86 ) | ( n42 & n86 ) ; 146 | assign n170 = ~n168 & n169 ; 147 | assign n171 = ( n14 & n59 ) | ( n14 & n170 ) | ( n59 & n170 ) ; 148 | assign n172 = n30 & n171 ; 149 | buffer buf_n173( .i (n172), .o (n173) ); 150 | buffer buf_n174( .i (n173), .o (n174) ); 151 | assign n175 = n91 | n173 ; 152 | assign n176 = ( n18 & n174 ) | ( n18 & n175 ) | ( n174 & n175 ) ; 153 | assign n177 = ~n80 & n176 ; 154 | buffer buf_n61( .i (n60), .o (n61) ); 155 | buffer buf_n62( .i (n61), .o (n62) ); 156 | buffer buf_n46( .i (n45), .o (n46) ); 157 | assign n178 = ( n46 & ~n61 ) | ( n46 & n90 ) | ( ~n61 & n90 ) ; 158 | assign n179 = n16 | n46 ; 159 | assign n180 = ( n62 & n178 ) | ( n62 & n179 ) | ( n178 & n179 ) ; 160 | buffer buf_n181( .i (n11), .o (n181) ); 161 | assign n182 = n57 | n181 ; 162 | buffer buf_n183( .i (n182), .o (n183) ); 163 | buffer buf_n184( .i (n183), .o (n184) ); 164 | buffer buf_n185( .i (n184), .o (n185) ); 165 | buffer buf_n186( .i (n185), .o (n186) ); 166 | assign n187 = n16 & n31 ; 167 | assign n188 = ( n91 & n186 ) | ( n91 & n187 ) | ( n186 & n187 ) ; 168 | assign n189 = n180 & n188 ; 169 | assign n190 = n80 & ~n189 ; 170 | assign n191 = n177 | n190 ; 171 | buffer buf_n19( .i (n18), .o (n19) ); 172 | assign n192 = n61 & n90 ; 173 | assign n193 = n78 & n192 ; 174 | buffer buf_n32( .i (n31), .o (n32) ); 175 | buffer buf_n47( .i (n46), .o (n47) ); 176 | assign n194 = ~n32 & n47 ; 177 | assign n195 = ( n18 & n193 ) | ( n18 & n194 ) | ( n193 & n194 ) ; 178 | assign n196 = ~n19 & n195 ; 179 | buffer buf_n197( .i (n196), .o (n197) ); 180 | assign n198 = ( ~n110 & n191 ) | ( ~n110 & n197 ) | ( n191 & n197 ) ; 181 | buffer buf_n199( .i (n15), .o (n199) ); 182 | buffer buf_n200( .i (n89), .o (n200) ); 183 | assign n201 = ( ~n31 & n199 ) | ( ~n31 & n200 ) | ( n199 & n200 ) ; 184 | buffer buf_n202( .i (n30), .o (n202) ); 185 | assign n203 = ( n46 & n199 ) | ( n46 & n202 ) | ( n199 & n202 ) ; 186 | assign n204 = n201 & ~n203 ; 187 | assign n205 = ( n18 & n92 ) | ( n18 & ~n204 ) | ( n92 & ~n204 ) ; 188 | assign n206 = n80 & n205 ; 189 | assign n207 = ( n44 & n118 ) | ( n44 & n183 ) | ( n118 & n183 ) ; 190 | buffer buf_n208( .i (n156), .o (n208) ); 191 | assign n209 = n207 | n208 ; 192 | buffer buf_n210( .i (n209), .o (n210) ); 193 | buffer buf_n211( .i (n210), .o (n211) ); 194 | buffer buf_n212( .i (n200), .o (n212) ); 195 | assign n213 = n210 & n212 ; 196 | buffer buf_n214( .i (n17), .o (n214) ); 197 | assign n215 = ( n211 & n213 ) | ( n211 & n214 ) | ( n213 & n214 ) ; 198 | buffer buf_n216( .i (n79), .o (n216) ); 199 | assign n217 = n215 & ~n216 ; 200 | assign n218 = ( n81 & ~n206 ) | ( n81 & n217 ) | ( ~n206 & n217 ) ; 201 | assign n219 = ( n110 & n197 ) | ( n110 & ~n218 ) | ( n197 & ~n218 ) ; 202 | assign n220 = n198 | n219 ; 203 | assign n221 = ~n199 & n200 ; 204 | buffer buf_n222( .i (n221), .o (n222) ); 205 | buffer buf_n223( .i (n222), .o (n223) ); 206 | assign n224 = ( ~n15 & n89 ) | ( ~n15 & n104 ) | ( n89 & n104 ) ; 207 | buffer buf_n225( .i (n224), .o (n225) ); 208 | buffer buf_n226( .i (n225), .o (n226) ); 209 | assign n227 = ( n62 & n212 ) | ( n62 & n225 ) | ( n212 & n225 ) ; 210 | assign n228 = n226 | n227 ; 211 | assign n229 = ~n223 & n228 ; 212 | buffer buf_n230( .i (n229), .o (n230) ); 213 | buffer buf_n231( .i (n230), .o (n231) ); 214 | buffer buf_n33( .i (n32), .o (n33) ); 215 | buffer buf_n34( .i (n33), .o (n34) ); 216 | buffer buf_n35( .i (n34), .o (n35) ); 217 | buffer buf_n36( .i (n35), .o (n36) ); 218 | assign n232 = ~n36 & n230 ; 219 | assign n233 = ~n34 & n108 ; 220 | buffer buf_n48( .i (n47), .o (n48) ); 221 | buffer buf_n49( .i (n48), .o (n49) ); 222 | assign n234 = n61 & ~n199 ; 223 | assign n235 = ~n212 & n234 ; 224 | assign n236 = ( n92 & ~n222 ) | ( n92 & n235 ) | ( ~n222 & n235 ) ; 225 | assign n237 = n49 & n236 ; 226 | assign n238 = ( n35 & n233 ) | ( n35 & n237 ) | ( n233 & n237 ) ; 227 | assign n239 = ( ~n47 & n62 ) | ( ~n47 & n212 ) | ( n62 & n212 ) ; 228 | assign n240 = ( n48 & n214 ) | ( n48 & ~n239 ) | ( n214 & ~n239 ) ; 229 | assign n241 = ( ~n49 & n223 ) | ( ~n49 & n240 ) | ( n223 & n240 ) ; 230 | assign n242 = n15 | n89 ; 231 | assign n243 = ( n86 & n150 ) | ( n86 & n181 ) | ( n150 & n181 ) ; 232 | buffer buf_n244( .i (n243), .o (n244) ); 233 | buffer buf_n245( .i (n244), .o (n245) ); 234 | assign n246 = ( n14 & n59 ) | ( n14 & n244 ) | ( n59 & n244 ) ; 235 | assign n247 = n245 & n246 ; 236 | assign n248 = n242 & ~n247 ; 237 | assign n249 = ~n32 & n248 ; 238 | buffer buf_n250( .i (n249), .o (n250) ); 239 | buffer buf_n251( .i (n250), .o (n251) ); 240 | buffer buf_n252( .i (n107), .o (n252) ); 241 | assign n253 = ~n250 & n252 ; 242 | assign n254 = ( n241 & n251 ) | ( n241 & ~n253 ) | ( n251 & ~n253 ) ; 243 | assign n255 = n238 | n254 ; 244 | assign n256 = ( n231 & ~n232 ) | ( n231 & n255 ) | ( ~n232 & n255 ) ; 245 | buffer buf_n37( .i (n36), .o (n37) ); 246 | buffer buf_n257( .i (n13), .o (n257) ); 247 | buffer buf_n258( .i (n257), .o (n258) ); 248 | buffer buf_n259( .i (n258), .o (n259) ); 249 | buffer buf_n260( .i (n259), .o (n260) ); 250 | buffer buf_n261( .i (n60), .o (n261) ); 251 | buffer buf_n262( .i (n261), .o (n262) ); 252 | assign n263 = ( n47 & n260 ) | ( n47 & n262 ) | ( n260 & n262 ) ; 253 | buffer buf_n264( .i (n263), .o (n264) ); 254 | assign n265 = n252 & ~n264 ; 255 | assign n266 = ~n252 & n264 ; 256 | assign n267 = n265 | n266 ; 257 | assign n268 = n36 & ~n267 ; 258 | buffer buf_n269( .i (n45), .o (n269) ); 259 | assign n270 = n259 & n269 ; 260 | buffer buf_n271( .i (n269), .o (n271) ); 261 | assign n272 = ( n262 & n270 ) | ( n262 & n271 ) | ( n270 & n271 ) ; 262 | buffer buf_n273( .i (n272), .o (n273) ); 263 | buffer buf_n274( .i (n273), .o (n274) ); 264 | assign n275 = n252 | n273 ; 265 | buffer buf_n276( .i (n107), .o (n276) ); 266 | assign n277 = n273 & ~n276 ; 267 | assign n278 = ( ~n274 & n275 ) | ( ~n274 & n277 ) | ( n275 & n277 ) ; 268 | assign n279 = n36 | n278 ; 269 | assign n280 = ( ~n37 & n268 ) | ( ~n37 & n279 ) | ( n268 & n279 ) ; 270 | buffer buf_n20( .i (n19), .o (n20) ); 271 | buffer buf_n21( .i (n20), .o (n21) ); 272 | buffer buf_n22( .i (n21), .o (n22) ); 273 | buffer buf_n63( .i (n62), .o (n63) ); 274 | buffer buf_n64( .i (n63), .o (n64) ); 275 | buffer buf_n65( .i (n64), .o (n65) ); 276 | buffer buf_n66( .i (n65), .o (n66) ); 277 | assign n281 = n34 & n64 ; 278 | buffer buf_n282( .i (n281), .o (n282) ); 279 | assign n283 = ( ~n19 & n49 ) | ( ~n19 & n64 ) | ( n49 & n64 ) ; 280 | buffer buf_n284( .i (n283), .o (n284) ); 281 | assign n285 = ( ~n66 & n282 ) | ( ~n66 & n284 ) | ( n282 & n284 ) ; 282 | buffer buf_n50( .i (n49), .o (n50) ); 283 | buffer buf_n51( .i (n50), .o (n51) ); 284 | assign n286 = ( n51 & n282 ) | ( n51 & ~n284 ) | ( n282 & ~n284 ) ; 285 | assign n287 = ( n22 & n285 ) | ( n22 & ~n286 ) | ( n285 & ~n286 ) ; 286 | buffer buf_n52( .i (n51), .o (n52) ); 287 | buffer buf_n288( .i (n48), .o (n288) ); 288 | assign n289 = n64 | n288 ; 289 | buffer buf_n290( .i (n289), .o (n290) ); 290 | buffer buf_n292( .i (n35), .o (n292) ); 291 | assign n293 = ( n51 & n290 ) | ( n51 & ~n292 ) | ( n290 & ~n292 ) ; 292 | assign n294 = ( n51 & ~n290 ) | ( n51 & n292 ) | ( ~n290 & n292 ) ; 293 | assign n295 = ( ~n52 & n293 ) | ( ~n52 & n294 ) | ( n293 & n294 ) ; 294 | buffer buf_n291( .i (n290), .o (n291) ); 295 | buffer buf_n296( .i (n50), .o (n296) ); 296 | assign n297 = ~n66 & n296 ; 297 | assign n298 = ( ~n52 & n291 ) | ( ~n52 & n297 ) | ( n291 & n297 ) ; 298 | buffer buf_n67( .i (n66), .o (n67) ); 299 | inverter inv_n68( .i (n67), .o (n68) ); 300 | buffer buf_n124( .i (n123), .o (n124) ); 301 | buffer buf_n125( .i (n124), .o (n125) ); 302 | buffer buf_n126( .i (n125), .o (n126) ); 303 | buffer buf_n127( .i (n126), .o (n127) ); 304 | assign y0 = n136 ; 305 | assign y1 = n167 ; 306 | assign y2 = n220 ; 307 | assign y3 = n256 ; 308 | assign y4 = n280 ; 309 | assign y5 = n287 ; 310 | assign y6 = n295 ; 311 | assign y7 = n298 ; 312 | assign y8 = n68 ; 313 | assign y9 = n127 ; 314 | endmodule 315 | -------------------------------------------------------------------------------- /MCNC/best_mapping/5xp1.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 ); 10 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 ; 11 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 ; 12 | wire n2 , n3 , n4 , n5 , n6 , n7 , n8 , n10 , n11 , n12 , n13 , n14 , n15 , n17 , n18 , n19 , n20 , n21 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 ; 13 | buffer buf_n10( .i (x1), .o (n10) ); 14 | buffer buf_n17( .i (x2), .o (n17) ); 15 | assign n54 = n10 | n17 ; 16 | buffer buf_n2( .i (x0), .o (n2) ); 17 | buffer buf_n23( .i (x3), .o (n23) ); 18 | assign n55 = ( n2 & n17 ) | ( n2 & n23 ) | ( n17 & n23 ) ; 19 | assign n56 = n54 & n55 ; 20 | buffer buf_n57( .i (n56), .o (n57) ); 21 | buffer buf_n33( .i (x4), .o (n33) ); 22 | buffer buf_n34( .i (n33), .o (n34) ); 23 | buffer buf_n35( .i (n34), .o (n35) ); 24 | buffer buf_n49( .i (x6), .o (n49) ); 25 | buffer buf_n50( .i (n49), .o (n50) ); 26 | buffer buf_n51( .i (n50), .o (n51) ); 27 | buffer buf_n41( .i (x5), .o (n41) ); 28 | assign n59 = ( n2 & n10 ) | ( n2 & n41 ) | ( n10 & n41 ) ; 29 | buffer buf_n60( .i (n59), .o (n60) ); 30 | assign n62 = ( n35 & n51 ) | ( n35 & n60 ) | ( n51 & n60 ) ; 31 | assign n63 = ( n2 & n41 ) | ( n2 & n49 ) | ( n41 & n49 ) ; 32 | buffer buf_n64( .i (n63), .o (n64) ); 33 | assign n66 = ( n35 & n51 ) | ( n35 & n64 ) | ( n51 & n64 ) ; 34 | assign n67 = ( n57 & n62 ) | ( n57 & n66 ) | ( n62 & n66 ) ; 35 | buffer buf_n68( .i (n67), .o (n68) ); 36 | buffer buf_n36( .i (n35), .o (n36) ); 37 | buffer buf_n37( .i (n36), .o (n37) ); 38 | buffer buf_n42( .i (n41), .o (n42) ); 39 | buffer buf_n43( .i (n42), .o (n43) ); 40 | buffer buf_n44( .i (n43), .o (n44) ); 41 | buffer buf_n45( .i (n44), .o (n45) ); 42 | assign n70 = n37 & n45 ; 43 | assign n71 = n68 & n70 ; 44 | buffer buf_n72( .i (n71), .o (n72) ); 45 | buffer buf_n38( .i (n37), .o (n38) ); 46 | buffer buf_n39( .i (n38), .o (n39) ); 47 | buffer buf_n69( .i (n68), .o (n69) ); 48 | buffer buf_n46( .i (n45), .o (n46) ); 49 | assign n74 = n38 | n46 ; 50 | assign n75 = ( n39 & n69 ) | ( n39 & n74 ) | ( n69 & n74 ) ; 51 | assign n76 = ~n72 & n75 ; 52 | buffer buf_n47( .i (n46), .o (n47) ); 53 | assign n77 = n47 & n69 ; 54 | assign n78 = n47 | n69 ; 55 | assign n79 = ~n77 & n78 ; 56 | buffer buf_n58( .i (n57), .o (n58) ); 57 | buffer buf_n52( .i (n51), .o (n52) ); 58 | buffer buf_n61( .i (n60), .o (n61) ); 59 | assign n80 = ( ~n36 & n52 ) | ( ~n36 & n61 ) | ( n52 & n61 ) ; 60 | buffer buf_n65( .i (n64), .o (n65) ); 61 | assign n81 = ( ~n36 & n52 ) | ( ~n36 & n65 ) | ( n52 & n65 ) ; 62 | assign n82 = ( n58 & n80 ) | ( n58 & n81 ) | ( n80 & n81 ) ; 63 | assign n83 = ( n38 & ~n68 ) | ( n38 & n82 ) | ( ~n68 & n82 ) ; 64 | buffer buf_n84( .i (n83), .o (n84) ); 65 | buffer buf_n85( .i (n84), .o (n85) ); 66 | buffer buf_n3( .i (n2), .o (n3) ); 67 | buffer buf_n4( .i (n3), .o (n4) ); 68 | buffer buf_n5( .i (n4), .o (n5) ); 69 | buffer buf_n6( .i (n5), .o (n6) ); 70 | assign n86 = ( n57 & n61 ) | ( n57 & n65 ) | ( n61 & n65 ) ; 71 | buffer buf_n11( .i (n10), .o (n11) ); 72 | buffer buf_n12( .i (n11), .o (n12) ); 73 | assign n87 = ( ~n4 & n12 ) | ( ~n4 & n43 ) | ( n12 & n43 ) ; 74 | assign n88 = ( ~n4 & n43 ) | ( ~n4 & n51 ) | ( n43 & n51 ) ; 75 | assign n89 = ( n57 & n87 ) | ( n57 & n88 ) | ( n87 & n88 ) ; 76 | assign n90 = ( n6 & ~n86 ) | ( n6 & n89 ) | ( ~n86 & n89 ) ; 77 | buffer buf_n91( .i (n90), .o (n91) ); 78 | buffer buf_n92( .i (n91), .o (n92) ); 79 | buffer buf_n93( .i (n92), .o (n93) ); 80 | buffer buf_n13( .i (n12), .o (n13) ); 81 | buffer buf_n14( .i (n13), .o (n14) ); 82 | buffer buf_n15( .i (n14), .o (n15) ); 83 | buffer buf_n53( .i (n52), .o (n53) ); 84 | assign n94 = ( n14 & n53 ) | ( n14 & n58 ) | ( n53 & n58 ) ; 85 | assign n95 = ( ~n14 & n53 ) | ( ~n14 & n58 ) | ( n53 & n58 ) ; 86 | assign n96 = ( n15 & ~n94 ) | ( n15 & n95 ) | ( ~n94 & n95 ) ; 87 | buffer buf_n97( .i (n96), .o (n97) ); 88 | buffer buf_n98( .i (n97), .o (n98) ); 89 | buffer buf_n7( .i (n6), .o (n7) ); 90 | buffer buf_n8( .i (n7), .o (n8) ); 91 | buffer buf_n18( .i (n17), .o (n18) ); 92 | buffer buf_n19( .i (n18), .o (n19) ); 93 | buffer buf_n24( .i (n23), .o (n24) ); 94 | buffer buf_n25( .i (n24), .o (n25) ); 95 | assign n99 = ~n19 & n25 ; 96 | buffer buf_n100( .i (n99), .o (n100) ); 97 | assign n103 = n14 & n100 ; 98 | buffer buf_n104( .i (n103), .o (n104) ); 99 | assign n105 = n8 | n104 ; 100 | buffer buf_n20( .i (n19), .o (n20) ); 101 | buffer buf_n21( .i (n20), .o (n21) ); 102 | buffer buf_n26( .i (n25), .o (n26) ); 103 | buffer buf_n27( .i (n26), .o (n27) ); 104 | assign n106 = n21 & ~n27 ; 105 | buffer buf_n107( .i (n106), .o (n107) ); 106 | assign n108 = ( n8 & n104 ) | ( n8 & n107 ) | ( n104 & n107 ) ; 107 | assign n109 = ~n8 & n107 ; 108 | assign n110 = ( n105 & ~n108 ) | ( n105 & n109 ) | ( ~n108 & n109 ) ; 109 | buffer buf_n101( .i (n100), .o (n101) ); 110 | assign n111 = n15 | n101 ; 111 | assign n112 = ~n104 & n111 ; 112 | buffer buf_n113( .i (n112), .o (n113) ); 113 | buffer buf_n102( .i (n101), .o (n102) ); 114 | assign n114 = n102 | n107 ; 115 | buffer buf_n115( .i (n114), .o (n115) ); 116 | buffer buf_n28( .i (n27), .o (n28) ); 117 | buffer buf_n29( .i (n28), .o (n29) ); 118 | buffer buf_n30( .i (n29), .o (n30) ); 119 | buffer buf_n31( .i (n30), .o (n31) ); 120 | buffer buf_n73( .i (n72), .o (n73) ); 121 | assign y0 = n76 ; 122 | assign y1 = n79 ; 123 | assign y2 = n85 ; 124 | assign y3 = n93 ; 125 | assign y4 = n98 ; 126 | assign y5 = n110 ; 127 | assign y6 = n113 ; 128 | assign y7 = n115 ; 129 | assign y8 = ~n31 ; 130 | assign y9 = n73 ; 131 | endmodule 132 | -------------------------------------------------------------------------------- /MCNC/best_mapping/sqr6.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , x5 , y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 , y10 , y11 ); 10 | input x0 , x1 , x2 , x3 , x4 , x5 ; 11 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 , y10 , y11 ; 12 | wire n2 , n3 , n4 , n5 , n6 , n7 , n8 , n10 , n11 , n12 , n13 , n14 , n15 , n17 , n18 , n19 , n20 , n21 , n22 , n24 , n25 , n26 , n27 , n28 , n29 , n31 , n32 , n33 , n34 , n35 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 ; 13 | buffer buf_n2( .i (x0), .o (n2) ); 14 | buffer buf_n3( .i (n2), .o (n3) ); 15 | buffer buf_n4( .i (n3), .o (n4) ); 16 | buffer buf_n5( .i (n4), .o (n5) ); 17 | buffer buf_n10( .i (x1), .o (n10) ); 18 | buffer buf_n11( .i (n10), .o (n11) ); 19 | buffer buf_n12( .i (n11), .o (n12) ); 20 | buffer buf_n13( .i (n12), .o (n13) ); 21 | assign n46 = n5 & n13 ; 22 | buffer buf_n47( .i (n46), .o (n47) ); 23 | buffer buf_n31( .i (x4), .o (n31) ); 24 | buffer buf_n32( .i (n31), .o (n32) ); 25 | assign n48 = n3 & n32 ; 26 | buffer buf_n49( .i (n48), .o (n49) ); 27 | buffer buf_n50( .i (n49), .o (n50) ); 28 | buffer buf_n17( .i (x2), .o (n17) ); 29 | buffer buf_n18( .i (n17), .o (n18) ); 30 | buffer buf_n19( .i (n18), .o (n19) ); 31 | buffer buf_n24( .i (x3), .o (n24) ); 32 | buffer buf_n25( .i (n24), .o (n25) ); 33 | buffer buf_n26( .i (n25), .o (n26) ); 34 | assign n51 = n19 & n26 ; 35 | buffer buf_n52( .i (n51), .o (n52) ); 36 | assign n54 = n50 & n52 ; 37 | assign n55 = n47 | n54 ; 38 | buffer buf_n56( .i (n55), .o (n56) ); 39 | buffer buf_n57( .i (n56), .o (n57) ); 40 | assign n58 = n24 & n31 ; 41 | buffer buf_n59( .i (n58), .o (n59) ); 42 | buffer buf_n60( .i (n59), .o (n60) ); 43 | assign n61 = ~n10 & n17 ; 44 | buffer buf_n62( .i (n61), .o (n62) ); 45 | buffer buf_n63( .i (n62), .o (n63) ); 46 | assign n64 = n60 & n63 ; 47 | buffer buf_n65( .i (n64), .o (n65) ); 48 | buffer buf_n66( .i (n65), .o (n66) ); 49 | buffer buf_n67( .i (n66), .o (n67) ); 50 | buffer buf_n6( .i (n5), .o (n6) ); 51 | buffer buf_n7( .i (n6), .o (n7) ); 52 | buffer buf_n8( .i (n7), .o (n8) ); 53 | buffer buf_n14( .i (n13), .o (n14) ); 54 | buffer buf_n15( .i (n14), .o (n15) ); 55 | buffer buf_n20( .i (n19), .o (n20) ); 56 | buffer buf_n21( .i (n20), .o (n21) ); 57 | buffer buf_n22( .i (n21), .o (n22) ); 58 | assign n68 = n15 & ~n22 ; 59 | assign n69 = n8 & ~n68 ; 60 | assign n70 = ~n67 & n69 ; 61 | buffer buf_n37( .i (x5), .o (n37) ); 62 | buffer buf_n38( .i (n37), .o (n38) ); 63 | assign n71 = n11 & n38 ; 64 | buffer buf_n72( .i (n71), .o (n72) ); 65 | assign n75 = n60 & n72 ; 66 | assign n76 = ~n59 & n62 ; 67 | assign n77 = n11 & n25 ; 68 | assign n78 = n4 & n77 ; 69 | assign n79 = ( n5 & n76 ) | ( n5 & n78 ) | ( n76 & n78 ) ; 70 | assign n80 = n75 | n79 ; 71 | buffer buf_n81( .i (n80), .o (n81) ); 72 | assign n82 = ~n18 & n38 ; 73 | buffer buf_n83( .i (n82), .o (n83) ); 74 | assign n84 = n49 & n83 ; 75 | buffer buf_n85( .i (n84), .o (n85) ); 76 | assign n86 = ( n5 & n13 ) | ( n5 & n20 ) | ( n13 & n20 ) ; 77 | assign n87 = ~n6 & n86 ; 78 | assign n88 = ( n15 & n85 ) | ( n15 & n87 ) | ( n85 & n87 ) ; 79 | assign n89 = n81 | n88 ; 80 | buffer buf_n90( .i (n89), .o (n90) ); 81 | assign n91 = n25 & ~n32 ; 82 | buffer buf_n92( .i (n91), .o (n92) ); 83 | buffer buf_n93( .i (n92), .o (n93) ); 84 | buffer buf_n94( .i (n93), .o (n94) ); 85 | assign n95 = n47 & n94 ; 86 | assign n96 = n31 & n37 ; 87 | buffer buf_n97( .i (n96), .o (n97) ); 88 | buffer buf_n98( .i (n97), .o (n98) ); 89 | assign n99 = n11 | n25 ; 90 | buffer buf_n100( .i (n99), .o (n100) ); 91 | assign n101 = n98 | n100 ; 92 | buffer buf_n102( .i (n101), .o (n102) ); 93 | assign n103 = ~n65 & n102 ; 94 | assign n104 = ~n95 & n103 ; 95 | buffer buf_n27( .i (n26), .o (n27) ); 96 | buffer buf_n28( .i (n27), .o (n28) ); 97 | buffer buf_n29( .i (n28), .o (n29) ); 98 | assign n105 = n21 & ~n50 ; 99 | assign n106 = ( ~n29 & n85 ) | ( ~n29 & n105 ) | ( n85 & n105 ) ; 100 | assign n107 = n60 & n83 ; 101 | buffer buf_n108( .i (n107), .o (n108) ); 102 | assign n109 = n6 | n14 ; 103 | assign n110 = ( n7 & ~n108 ) | ( n7 & n109 ) | ( ~n108 & n109 ) ; 104 | assign n111 = ~n106 & n110 ; 105 | assign n112 = n104 & n111 ; 106 | assign n113 = n32 & ~n38 ; 107 | buffer buf_n114( .i (n113), .o (n114) ); 108 | assign n120 = ~n100 & n114 ; 109 | buffer buf_n39( .i (n38), .o (n39) ); 110 | buffer buf_n40( .i (n39), .o (n40) ); 111 | buffer buf_n33( .i (n32), .o (n33) ); 112 | assign n121 = n19 & ~n33 ; 113 | assign n122 = n40 & n121 ; 114 | assign n123 = n120 | n122 ; 115 | assign n124 = n7 & n123 ; 116 | assign n125 = n4 & n97 ; 117 | assign n126 = ~n33 & n62 ; 118 | assign n127 = n125 | n126 ; 119 | assign n128 = n28 & n127 ; 120 | assign n129 = ~n20 & n92 ; 121 | assign n130 = n20 & n98 ; 122 | assign n131 = ( n14 & n129 ) | ( n14 & n130 ) | ( n129 & n130 ) ; 123 | assign n132 = n128 | n131 ; 124 | assign n133 = n124 | n132 ; 125 | buffer buf_n134( .i (n4), .o (n134) ); 126 | buffer buf_n135( .i (n19), .o (n135) ); 127 | assign n136 = n134 & n135 ; 128 | buffer buf_n137( .i (n10), .o (n137) ); 129 | buffer buf_n138( .i (n24), .o (n138) ); 130 | buffer buf_n139( .i (n31), .o (n139) ); 131 | assign n140 = ( n137 & n138 ) | ( n137 & ~n139 ) | ( n138 & ~n139 ) ; 132 | buffer buf_n141( .i (n140), .o (n141) ); 133 | buffer buf_n143( .i (n18), .o (n143) ); 134 | assign n144 = n39 & n143 ; 135 | assign n145 = ( n72 & ~n141 ) | ( n72 & n144 ) | ( ~n141 & n144 ) ; 136 | assign n146 = ( n6 & n136 ) | ( n6 & n145 ) | ( n136 & n145 ) ; 137 | buffer buf_n34( .i (n33), .o (n34) ); 138 | buffer buf_n35( .i (n34), .o (n35) ); 139 | assign n147 = ( n12 & n26 ) | ( n12 & n143 ) | ( n26 & n143 ) ; 140 | assign n148 = ~n83 & n147 ; 141 | buffer buf_n149( .i (n134), .o (n149) ); 142 | assign n150 = ( n35 & n148 ) | ( n35 & n149 ) | ( n148 & n149 ) ; 143 | assign n151 = ~n146 & n150 ; 144 | assign n152 = ~n81 & n151 ; 145 | assign n153 = n133 | n152 ; 146 | buffer buf_n142( .i (n141), .o (n142) ); 147 | assign n154 = ( n14 & n21 ) | ( n14 & ~n142 ) | ( n21 & ~n142 ) ; 148 | buffer buf_n155( .i (n154), .o (n155) ); 149 | assign n156 = n8 & ~n155 ; 150 | buffer buf_n41( .i (n40), .o (n41) ); 151 | buffer buf_n42( .i (n41), .o (n42) ); 152 | buffer buf_n43( .i (n42), .o (n43) ); 153 | assign n157 = ( n8 & n43 ) | ( n8 & ~n155 ) | ( n43 & ~n155 ) ; 154 | assign n158 = n26 | n33 ; 155 | buffer buf_n159( .i (n158), .o (n159) ); 156 | assign n160 = n21 & ~n159 ; 157 | buffer buf_n161( .i (n13), .o (n161) ); 158 | buffer buf_n162( .i (n135), .o (n162) ); 159 | assign n163 = n161 & n162 ; 160 | assign n164 = ( n35 & n161 ) | ( n35 & n162 ) | ( n161 & n162 ) ; 161 | assign n165 = ( n160 & ~n163 ) | ( n160 & n164 ) | ( ~n163 & n164 ) ; 162 | assign n166 = n43 | n165 ; 163 | assign n167 = ( n156 & ~n157 ) | ( n156 & n166 ) | ( ~n157 & n166 ) ; 164 | assign n168 = ( n18 & n138 ) | ( n18 & n139 ) | ( n138 & n139 ) ; 165 | buffer buf_n169( .i (n168), .o (n169) ); 166 | assign n172 = n72 & ~n169 ; 167 | buffer buf_n173( .i (n172), .o (n173) ); 168 | buffer buf_n174( .i (n173), .o (n174) ); 169 | buffer buf_n53( .i (n52), .o (n53) ); 170 | buffer buf_n170( .i (n169), .o (n170) ); 171 | buffer buf_n171( .i (n170), .o (n171) ); 172 | assign n175 = n41 & n52 ; 173 | assign n176 = ( ~n53 & n171 ) | ( ~n53 & n175 ) | ( n171 & n175 ) ; 174 | buffer buf_n73( .i (n72), .o (n73) ); 175 | buffer buf_n74( .i (n73), .o (n74) ); 176 | assign n177 = n74 & ~n173 ; 177 | assign n178 = ( n174 & n176 ) | ( n174 & ~n177 ) | ( n176 & ~n177 ) ; 178 | buffer buf_n179( .i (n178), .o (n179) ); 179 | assign n180 = n22 | n29 ; 180 | assign n181 = ( n22 & n29 ) | ( n22 & ~n42 ) | ( n29 & ~n42 ) ; 181 | assign n182 = ~n42 & n94 ; 182 | assign n183 = ( n180 & ~n181 ) | ( n180 & n182 ) | ( ~n181 & n182 ) ; 183 | buffer buf_n184( .i (n183), .o (n184) ); 184 | assign n185 = n40 & ~n60 ; 185 | assign n186 = n159 & n185 ; 186 | buffer buf_n187( .i (n186), .o (n187) ); 187 | buffer buf_n188( .i (n187), .o (n188) ); 188 | buffer buf_n189( .i (n188), .o (n189) ); 189 | buffer buf_n115( .i (n114), .o (n115) ); 190 | buffer buf_n116( .i (n115), .o (n116) ); 191 | buffer buf_n117( .i (n116), .o (n117) ); 192 | buffer buf_n118( .i (n117), .o (n118) ); 193 | buffer buf_n119( .i (n118), .o (n119) ); 194 | buffer buf_n44( .i (n43), .o (n44) ); 195 | buffer buf_n45( .i (n44), .o (n45) ); 196 | assign y0 = n57 ; 197 | assign y1 = n70 ; 198 | assign y2 = n90 ; 199 | assign y3 = n112 ; 200 | assign y4 = n153 ; 201 | assign y5 = n167 ; 202 | assign y6 = n179 ; 203 | assign y7 = n184 ; 204 | assign y8 = n189 ; 205 | assign y9 = n119 ; 206 | assign y10 = 1'b0 ; 207 | assign y11 = n45 ; 208 | endmodule 209 | -------------------------------------------------------------------------------- /MCNC/best_mapping/x1dn.v: -------------------------------------------------------------------------------- 1 | module buffer( i , o ); 2 | input i ; 3 | output o ; 4 | endmodule 5 | module inverter( i , o ); 6 | input i ; 7 | output o ; 8 | endmodule 9 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , y0 , y1 , y2 , y3 , y4 , y5 ); 10 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 ; 11 | output y0 , y1 , y2 , y3 , y4 , y5 ; 12 | wire n2 , n3 , n4 , n5 , n7 , n8 , n10 , n11 , n13 , n14 , n16 , n17 , n19 , n20 , n21 , n22 , n24 , n25 , n27 , n29 , n30 , n32 , n34 , n36 , n38 , n39 , n41 , n42 , n43 , n44 , n46 , n48 , n49 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n59 , n60 , n61 , n63 , n64 , n65 , n66 , n68 , n69 , n70 , n72 , n73 , n74 , n76 , n77 , n79 , n80 , n82 , n83 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 , n211 , n212 , n213 , n214 , n215 , n216 ; 13 | buffer buf_n19( .i (x5), .o (n19) ); 14 | buffer buf_n20( .i (n19), .o (n20) ); 15 | buffer buf_n21( .i (n20), .o (n21) ); 16 | buffer buf_n22( .i (n21), .o (n22) ); 17 | buffer buf_n27( .i (x7), .o (n27) ); 18 | buffer buf_n29( .i (x8), .o (n29) ); 19 | assign n88 = n27 | n29 ; 20 | buffer buf_n89( .i (n88), .o (n89) ); 21 | buffer buf_n90( .i (n89), .o (n90) ); 22 | buffer buf_n30( .i (n29), .o (n30) ); 23 | buffer buf_n24( .i (x6), .o (n24) ); 24 | assign n91 = ~n24 & n27 ; 25 | assign n92 = n30 & n91 ; 26 | buffer buf_n93( .i (n92), .o (n93) ); 27 | assign n94 = ( n22 & ~n90 ) | ( n22 & n93 ) | ( ~n90 & n93 ) ; 28 | buffer buf_n25( .i (n24), .o (n25) ); 29 | buffer buf_n38( .i (x12), .o (n38) ); 30 | buffer buf_n39( .i (n38), .o (n39) ); 31 | assign n95 = n25 & n39 ; 32 | assign n96 = n89 & n95 ; 33 | buffer buf_n34( .i (x10), .o (n34) ); 34 | assign n97 = n24 | n34 ; 35 | buffer buf_n98( .i (n97), .o (n98) ); 36 | buffer buf_n32( .i (x9), .o (n32) ); 37 | buffer buf_n36( .i (x11), .o (n36) ); 38 | assign n99 = n32 & ~n36 ; 39 | buffer buf_n100( .i (n99), .o (n100) ); 40 | assign n101 = ~n98 & n100 ; 41 | assign n102 = n96 | n101 ; 42 | assign n103 = n94 | n102 ; 43 | buffer buf_n104( .i (n103), .o (n104) ); 44 | buffer buf_n2( .i (x0), .o (n2) ); 45 | buffer buf_n3( .i (n2), .o (n3) ); 46 | buffer buf_n4( .i (n3), .o (n4) ); 47 | buffer buf_n5( .i (n4), .o (n5) ); 48 | buffer buf_n16( .i (x4), .o (n16) ); 49 | buffer buf_n17( .i (n16), .o (n17) ); 50 | buffer buf_n10( .i (x2), .o (n10) ); 51 | buffer buf_n13( .i (x3), .o (n13) ); 52 | assign n106 = n10 & ~n13 ; 53 | assign n107 = n17 | n106 ; 54 | buffer buf_n108( .i (n107), .o (n108) ); 55 | buffer buf_n7( .i (x1), .o (n7) ); 56 | buffer buf_n8( .i (n7), .o (n8) ); 57 | assign n109 = ~n3 & n8 ; 58 | buffer buf_n110( .i (n109), .o (n110) ); 59 | assign n111 = ( n5 & n108 ) | ( n5 & ~n110 ) | ( n108 & ~n110 ) ; 60 | buffer buf_n112( .i (n111), .o (n112) ); 61 | buffer buf_n113( .i (n112), .o (n113) ); 62 | assign n114 = n104 & n113 ; 63 | buffer buf_n41( .i (x13), .o (n41) ); 64 | buffer buf_n42( .i (n41), .o (n42) ); 65 | buffer buf_n43( .i (n42), .o (n43) ); 66 | buffer buf_n44( .i (n43), .o (n44) ); 67 | assign n115 = ( n44 & ~n90 ) | ( n44 & n93 ) | ( ~n90 & n93 ) ; 68 | buffer buf_n48( .i (x15), .o (n48) ); 69 | buffer buf_n49( .i (n48), .o (n49) ); 70 | assign n116 = n25 & n49 ; 71 | assign n117 = n89 & n116 ; 72 | buffer buf_n46( .i (x14), .o (n46) ); 73 | assign n118 = ~n36 & n46 ; 74 | buffer buf_n119( .i (n118), .o (n119) ); 75 | assign n120 = ~n98 & n119 ; 76 | assign n121 = n117 | n120 ; 77 | assign n122 = n115 | n121 ; 78 | buffer buf_n123( .i (n122), .o (n123) ); 79 | assign n125 = ~n10 & n13 ; 80 | assign n126 = n17 & ~n125 ; 81 | assign n127 = n3 & ~n8 ; 82 | assign n128 = ( n4 & n126 ) | ( n4 & n127 ) | ( n126 & n127 ) ; 83 | buffer buf_n129( .i (n128), .o (n129) ); 84 | buffer buf_n130( .i (n129), .o (n130) ); 85 | buffer buf_n131( .i (n130), .o (n131) ); 86 | assign n132 = n123 & ~n131 ; 87 | assign n133 = n114 | n132 ; 88 | buffer buf_n134( .i (n133), .o (n134) ); 89 | buffer buf_n51( .i (x16), .o (n51) ); 90 | buffer buf_n52( .i (n51), .o (n52) ); 91 | buffer buf_n53( .i (n52), .o (n53) ); 92 | buffer buf_n54( .i (n53), .o (n54) ); 93 | buffer buf_n59( .i (x17), .o (n59) ); 94 | buffer buf_n60( .i (n59), .o (n60) ); 95 | buffer buf_n61( .i (n60), .o (n61) ); 96 | buffer buf_n63( .i (x18), .o (n63) ); 97 | buffer buf_n64( .i (n63), .o (n64) ); 98 | buffer buf_n65( .i (n64), .o (n65) ); 99 | assign n135 = n61 & ~n65 ; 100 | assign n136 = n54 | n135 ; 101 | buffer buf_n66( .i (n65), .o (n66) ); 102 | buffer buf_n72( .i (x20), .o (n72) ); 103 | buffer buf_n73( .i (n72), .o (n73) ); 104 | buffer buf_n74( .i (n73), .o (n74) ); 105 | buffer buf_n76( .i (x21), .o (n76) ); 106 | buffer buf_n77( .i (n76), .o (n77) ); 107 | buffer buf_n79( .i (x22), .o (n79) ); 108 | buffer buf_n80( .i (n79), .o (n80) ); 109 | assign n137 = n77 & ~n80 ; 110 | buffer buf_n68( .i (x19), .o (n68) ); 111 | buffer buf_n69( .i (n68), .o (n69) ); 112 | assign n138 = n69 & ~n73 ; 113 | assign n139 = ( ~n74 & n137 ) | ( ~n74 & n138 ) | ( n137 & n138 ) ; 114 | assign n140 = ~n66 & n139 ; 115 | assign n141 = n136 | n140 ; 116 | buffer buf_n142( .i (n141), .o (n142) ); 117 | assign n143 = n104 & n142 ; 118 | assign n144 = ~n77 & n80 ; 119 | buffer buf_n145( .i (n144), .o (n145) ); 120 | buffer buf_n70( .i (n69), .o (n70) ); 121 | assign n146 = n51 & n59 ; 122 | buffer buf_n147( .i (n146), .o (n147) ); 123 | assign n148 = n70 & n147 ; 124 | assign n149 = ~n145 & n148 ; 125 | assign n150 = n61 & ~n74 ; 126 | assign n151 = n53 & ~n65 ; 127 | assign n152 = ( n54 & n150 ) | ( n54 & n151 ) | ( n150 & n151 ) ; 128 | assign n153 = n149 | n152 ; 129 | buffer buf_n154( .i (n153), .o (n154) ); 130 | assign n155 = n123 & ~n154 ; 131 | assign n156 = n143 | n155 ; 132 | buffer buf_n157( .i (n156), .o (n157) ); 133 | buffer buf_n105( .i (n104), .o (n105) ); 134 | buffer buf_n55( .i (n54), .o (n55) ); 135 | buffer buf_n56( .i (n55), .o (n56) ); 136 | buffer buf_n57( .i (n56), .o (n57) ); 137 | assign n158 = n3 | n8 ; 138 | buffer buf_n14( .i (n13), .o (n14) ); 139 | buffer buf_n82( .i (x23), .o (n82) ); 140 | buffer buf_n83( .i (n82), .o (n83) ); 141 | assign n159 = n14 | n83 ; 142 | assign n160 = n158 | n159 ; 143 | assign n161 = n108 | n160 ; 144 | buffer buf_n162( .i (n161), .o (n162) ); 145 | buffer buf_n163( .i (n162), .o (n163) ); 146 | assign n165 = n57 | n163 ; 147 | assign n166 = n105 & ~n165 ; 148 | buffer buf_n124( .i (n123), .o (n124) ); 149 | assign n167 = n2 & n7 ; 150 | buffer buf_n168( .i (n167), .o (n168) ); 151 | assign n169 = n14 & n83 ; 152 | assign n170 = n168 & n169 ; 153 | buffer buf_n11( .i (n10), .o (n11) ); 154 | assign n171 = n7 & ~n16 ; 155 | assign n172 = n11 & ~n171 ; 156 | buffer buf_n173( .i (n172), .o (n173) ); 157 | assign n174 = n170 & n173 ; 158 | buffer buf_n175( .i (n174), .o (n175) ); 159 | buffer buf_n176( .i (n175), .o (n176) ); 160 | assign n178 = n57 & n176 ; 161 | assign n179 = n124 & n178 ; 162 | assign n180 = n166 | n179 ; 163 | buffer buf_n177( .i (n176), .o (n177) ); 164 | assign n181 = n124 & n177 ; 165 | buffer buf_n182( .i (n181), .o (n182) ); 166 | buffer buf_n164( .i (n163), .o (n164) ); 167 | assign n183 = n105 & ~n164 ; 168 | buffer buf_n184( .i (n183), .o (n184) ); 169 | assign n185 = x24 & x25 ; 170 | buffer buf_n186( .i (n185), .o (n186) ); 171 | buffer buf_n187( .i (n186), .o (n187) ); 172 | buffer buf_n188( .i (n187), .o (n188) ); 173 | buffer buf_n189( .i (n188), .o (n189) ); 174 | buffer buf_n190( .i (n189), .o (n190) ); 175 | buffer buf_n191( .i (n190), .o (n191) ); 176 | buffer buf_n192( .i (n191), .o (n192) ); 177 | buffer buf_n193( .i (n192), .o (n193) ); 178 | assign n194 = n72 | n76 ; 179 | buffer buf_n87( .i (x26), .o (n87) ); 180 | assign n195 = n79 | n87 ; 181 | assign n196 = n194 | n195 ; 182 | assign n197 = n51 | n59 ; 183 | assign n198 = n63 | n68 ; 184 | assign n199 = n197 | n198 ; 185 | assign n200 = n196 | n199 ; 186 | buffer buf_n201( .i (n200), .o (n201) ); 187 | buffer buf_n202( .i (n201), .o (n202) ); 188 | assign n203 = n162 | n202 ; 189 | assign n204 = n104 & ~n203 ; 190 | assign n205 = n64 & n73 ; 191 | assign n206 = n147 & n205 ; 192 | assign n207 = n68 & n76 ; 193 | assign n208 = n79 & n87 ; 194 | assign n209 = n207 & n208 ; 195 | buffer buf_n210( .i (n209), .o (n210) ); 196 | assign n211 = n206 & n210 ; 197 | buffer buf_n212( .i (n211), .o (n212) ); 198 | assign n213 = n175 & n212 ; 199 | assign n214 = n123 & n213 ; 200 | assign n215 = n204 | n214 ; 201 | assign n216 = ~n193 & n215 ; 202 | assign y0 = n134 ; 203 | assign y1 = n157 ; 204 | assign y2 = n180 ; 205 | assign y3 = n182 ; 206 | assign y4 = n184 ; 207 | assign y5 = n216 ; 208 | endmodule 209 | -------------------------------------------------------------------------------- /MCNC/original/5xp1.v: -------------------------------------------------------------------------------- 1 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 ); 2 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 ; 3 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 ; 4 | wire n8 , n9 , n10 , n11 , n12 , n13 , n14 , n15 , n16 , n17 , n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 ; 5 | assign n8 = x2 & x3 ; 6 | assign n12 = x1 | x6 ; 7 | assign n13 = ( x6 & n8 ) | ( x6 & n12 ) | ( n8 & n12 ) ; 8 | assign n14 = x0 & x5 ; 9 | assign n15 = ( x5 & n13 ) | ( x5 & n14 ) | ( n13 & n14 ) ; 10 | assign n16 = x4 & n15 ; 11 | assign n9 = ( x0 & x1 ) | ( x0 & x6 ) | ( x1 & x6 ) ; 12 | assign n10 = ~n8 & n9 ; 13 | assign n11 = ( x6 & n8 ) | ( x6 & n10 ) | ( n8 & n10 ) ; 14 | assign n17 = x5 & n11 ; 15 | assign n18 = x4 | n17 ; 16 | assign n19 = ~n16 & n18 ; 17 | assign n20 = ( x1 & x6 ) | ( x1 & ~n8 ) | ( x6 & ~n8 ) ; 18 | assign n21 = ( x4 & x6 ) | ( x4 & n8 ) | ( x6 & n8 ) ; 19 | assign n22 = n20 & ~n21 ; 20 | assign n23 = ( x1 & x6 ) | ( x1 & ~n22 ) | ( x6 & ~n22 ) ; 21 | assign n24 = x0 | n23 ; 22 | assign n25 = x6 & n24 ; 23 | assign n26 = ( x4 & n24 ) | ( x4 & n25 ) | ( n24 & n25 ) ; 24 | assign n37 = x5 & ~n26 ; 25 | assign n30 = ( x1 & x2 ) | ( x1 & ~x4 ) | ( x2 & ~x4 ) ; 26 | assign n31 = x2 & x6 ; 27 | assign n32 = ( x4 & n30 ) | ( x4 & n31 ) | ( n30 & n31 ) ; 28 | assign n27 = ( x1 & ~x3 ) | ( x1 & x4 ) | ( ~x3 & x4 ) ; 29 | assign n28 = x1 & x6 ; 30 | assign n29 = ( x3 & n27 ) | ( x3 & n28 ) | ( n27 & n28 ) ; 31 | assign n33 = x0 & n29 ; 32 | assign n34 = ( x0 & n32 ) | ( x0 & n33 ) | ( n32 & n33 ) ; 33 | assign n35 = x6 | n34 ; 34 | assign n36 = ( x4 & n34 ) | ( x4 & n35 ) | ( n34 & n35 ) ; 35 | assign n38 = x5 | n36 ; 36 | assign n39 = ( ~x5 & n37 ) | ( ~x5 & n38 ) | ( n37 & n38 ) ; 37 | assign n57 = ( x0 & ~x2 ) | ( x0 & x3 ) | ( ~x2 & x3 ) ; 38 | assign n58 = ( x0 & x2 ) | ( x0 & x5 ) | ( x2 & x5 ) ; 39 | assign n59 = ~n57 & n58 ; 40 | assign n60 = ( x0 & x3 ) | ( x0 & n59 ) | ( x3 & n59 ) ; 41 | assign n61 = x1 & n60 ; 42 | assign n62 = x5 | n61 ; 43 | assign n63 = ( x0 & n61 ) | ( x0 & n62 ) | ( n61 & n62 ) ; 44 | assign n64 = ~x4 & n63 ; 45 | assign n52 = ( x2 & ~x3 ) | ( x2 & x5 ) | ( ~x3 & x5 ) ; 46 | assign n53 = x0 | x2 ; 47 | assign n54 = ( x3 & n52 ) | ( x3 & n53 ) | ( n52 & n53 ) ; 48 | assign n44 = x0 | x3 ; 49 | assign n55 = x0 & x1 ; 50 | assign n56 = ( x5 & n44 ) | ( x5 & n55 ) | ( n44 & n55 ) ; 51 | assign n65 = n54 & n56 ; 52 | assign n66 = x4 & ~n65 ; 53 | assign n67 = n64 | n66 ; 54 | assign n68 = x3 & x5 ; 55 | assign n69 = x4 & n68 ; 56 | assign n70 = ~x1 & x2 ; 57 | assign n71 = ( x0 & n69 ) | ( x0 & n70 ) | ( n69 & n70 ) ; 58 | assign n72 = ~x0 & n71 ; 59 | assign n73 = ( ~x6 & n67 ) | ( ~x6 & n72 ) | ( n67 & n72 ) ; 60 | assign n40 = ( x0 & ~x1 ) | ( x0 & x5 ) | ( ~x1 & x5 ) ; 61 | assign n41 = ( x0 & x1 ) | ( x0 & x2 ) | ( x1 & x2 ) ; 62 | assign n42 = n40 & ~n41 ; 63 | assign n43 = ( x0 & x5 ) | ( x0 & ~n42 ) | ( x5 & ~n42 ) ; 64 | assign n49 = x4 & n43 ; 65 | assign n45 = ( x2 & n14 ) | ( x2 & n44 ) | ( n14 & n44 ) ; 66 | assign n46 = x1 | n45 ; 67 | assign n47 = x5 & n46 ; 68 | assign n48 = ( x0 & n46 ) | ( x0 & n47 ) | ( n46 & n47 ) ; 69 | assign n50 = ~x4 & n48 ; 70 | assign n51 = ( x4 & ~n49 ) | ( x4 & n50 ) | ( ~n49 & n50 ) ; 71 | assign n74 = ( x6 & ~n51 ) | ( x6 & n72 ) | ( ~n51 & n72 ) ; 72 | assign n75 = n73 | n74 ; 73 | assign n76 = ~x0 & x5 ; 74 | assign n77 = ( ~x0 & x5 ) | ( ~x0 & x6 ) | ( x5 & x6 ) ; 75 | assign n78 = ( x3 & x5 ) | ( x3 & n77 ) | ( x5 & n77 ) ; 76 | assign n79 = n77 | n78 ; 77 | assign n80 = ~n76 & n79 ; 78 | assign n98 = ~x1 & n80 ; 79 | assign n84 = ~x1 & x6 ; 80 | assign n81 = ~x0 & x3 ; 81 | assign n82 = ~x5 & n81 ; 82 | assign n83 = ( x5 & ~n76 ) | ( x5 & n82 ) | ( ~n76 & n82 ) ; 83 | assign n85 = x2 & n83 ; 84 | assign n86 = ( x1 & n84 ) | ( x1 & n85 ) | ( n84 & n85 ) ; 85 | assign n87 = ( ~x2 & x3 ) | ( ~x2 & x5 ) | ( x3 & x5 ) ; 86 | assign n88 = ( x0 & x2 ) | ( x0 & ~n87 ) | ( x2 & ~n87 ) ; 87 | assign n89 = ( ~x2 & n76 ) | ( ~x2 & n88 ) | ( n76 & n88 ) ; 88 | assign n90 = x0 | x5 ; 89 | assign n91 = ( x0 & x5 ) | ( x0 & n31 ) | ( x5 & n31 ) ; 90 | assign n92 = ( x0 & x3 ) | ( x0 & n91 ) | ( x3 & n91 ) ; 91 | assign n93 = n91 & n92 ; 92 | assign n94 = n90 & ~n93 ; 93 | assign n95 = ~x1 & n94 ; 94 | assign n96 = x6 & ~n95 ; 95 | assign n97 = ( n89 & n95 ) | ( n89 & ~n96 ) | ( n95 & ~n96 ) ; 96 | assign n99 = n86 | n97 ; 97 | assign n100 = ( n80 & ~n98 ) | ( n80 & n99 ) | ( ~n98 & n99 ) ; 98 | assign n106 = ( x0 & x2 ) | ( x0 & x3 ) | ( x2 & x3 ) ; 99 | assign n107 = x6 & ~n106 ; 100 | assign n108 = ~x6 & n106 ; 101 | assign n109 = n107 | n108 ; 102 | assign n110 = x1 & ~n109 ; 103 | assign n101 = x0 & x2 ; 104 | assign n102 = ( x2 & x3 ) | ( x2 & n101 ) | ( x3 & n101 ) ; 105 | assign n103 = x6 | n102 ; 106 | assign n104 = ~x6 & n102 ; 107 | assign n105 = ( ~n102 & n103 ) | ( ~n102 & n104 ) | ( n103 & n104 ) ; 108 | assign n111 = x1 | n105 ; 109 | assign n112 = ( ~x1 & n110 ) | ( ~x1 & n111 ) | ( n110 & n111 ) ; 110 | assign n113 = x1 & x3 ; 111 | assign n114 = ( ~x0 & x2 ) | ( ~x0 & x3 ) | ( x2 & x3 ) ; 112 | assign n115 = ( ~x3 & n113 ) | ( ~x3 & n114 ) | ( n113 & n114 ) ; 113 | assign n116 = ( x2 & n113 ) | ( x2 & ~n114 ) | ( n113 & ~n114 ) ; 114 | assign n117 = ( x0 & n115 ) | ( x0 & ~n116 ) | ( n115 & ~n116 ) ; 115 | assign n118 = x2 | x3 ; 116 | assign n119 = ( ~x1 & x2 ) | ( ~x1 & n118 ) | ( x2 & n118 ) ; 117 | assign n120 = ( x1 & x2 ) | ( x1 & ~n118 ) | ( x2 & ~n118 ) ; 118 | assign n121 = ( ~x2 & n119 ) | ( ~x2 & n120 ) | ( n119 & n120 ) ; 119 | assign n122 = x2 & ~x3 ; 120 | assign n123 = ( ~x2 & n118 ) | ( ~x2 & n122 ) | ( n118 & n122 ) ; 121 | assign y0 = n19 ; 122 | assign y1 = n39 ; 123 | assign y2 = n75 ; 124 | assign y3 = n100 ; 125 | assign y4 = n112 ; 126 | assign y5 = n117 ; 127 | assign y6 = n121 ; 128 | assign y7 = n123 ; 129 | assign y8 = ~x3 ; 130 | assign y9 = n16 ; 131 | endmodule 132 | -------------------------------------------------------------------------------- /MCNC/original/c432.v: -------------------------------------------------------------------------------- 1 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , x27 , x28 , x29 , x30 , x31 , x32 , x33 , x34 , x35 , y0 , y1 , y2 , y3 , y4 , y5 , y6 ); 2 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , x27 , x28 , x29 , x30 , x31 , x32 , x33 , x34 , x35 ; 3 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 ; 4 | wire n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 , n180 , n181 , n182 , n183 , n184 , n185 , n186 , n187 , n188 , n189 , n190 , n191 , n192 , n193 , n194 , n195 , n196 , n197 , n198 , n199 , n200 , n201 , n202 , n203 , n204 , n205 , n206 , n207 , n208 , n209 , n210 ; 5 | assign n45 = x19 | x21 ; 6 | assign n37 = ~x15 & x17 ; 7 | assign n40 = x7 | x9 ; 8 | assign n38 = ~x0 & x1 ; 9 | assign n39 = ~x3 & x5 ; 10 | assign n41 = n38 | n39 ; 11 | assign n42 = ( ~x7 & n40 ) | ( ~x7 & n41 ) | ( n40 & n41 ) ; 12 | assign n43 = x13 | n42 ; 13 | assign n44 = ( ~x11 & n42 ) | ( ~x11 & n43 ) | ( n42 & n43 ) ; 14 | assign n46 = n37 | n44 ; 15 | assign n47 = ( ~x19 & n45 ) | ( ~x19 & n46 ) | ( n45 & n46 ) ; 16 | assign n48 = x25 | n47 ; 17 | assign n49 = ( ~x23 & n47 ) | ( ~x23 & n48 ) | ( n47 & n48 ) ; 18 | assign n50 = x29 | n49 ; 19 | assign n51 = ( ~x27 & n49 ) | ( ~x27 & n50 ) | ( n49 & n50 ) ; 20 | assign n52 = x31 & ~n51 ; 21 | assign n53 = ( x33 & n51 ) | ( x33 & ~n52 ) | ( n51 & ~n52 ) ; 22 | assign n57 = ~x31 & n51 ; 23 | assign n58 = x33 & ~x34 ; 24 | assign n59 = ( ~n51 & n57 ) | ( ~n51 & n58 ) | ( n57 & n58 ) ; 25 | assign n54 = ( x27 & ~x29 ) | ( x27 & n53 ) | ( ~x29 & n53 ) ; 26 | assign n55 = ( x27 & ~x30 ) | ( x27 & n53 ) | ( ~x30 & n53 ) ; 27 | assign n56 = ~n54 & n55 ; 28 | assign n60 = ( x23 & ~x25 ) | ( x23 & n53 ) | ( ~x25 & n53 ) ; 29 | assign n61 = ( x23 & ~x26 ) | ( x23 & n53 ) | ( ~x26 & n53 ) ; 30 | assign n62 = ~n60 & n61 ; 31 | assign n66 = ( x15 & ~x17 ) | ( x15 & n53 ) | ( ~x17 & n53 ) ; 32 | assign n67 = ( x15 & ~x18 ) | ( x15 & n53 ) | ( ~x18 & n53 ) ; 33 | assign n68 = ~n66 & n67 ; 34 | assign n63 = ( x19 & ~x21 ) | ( x19 & n53 ) | ( ~x21 & n53 ) ; 35 | assign n64 = ( x19 & ~x22 ) | ( x19 & n53 ) | ( ~x22 & n53 ) ; 36 | assign n65 = ~n63 & n64 ; 37 | assign n69 = ( x11 & ~x13 ) | ( x11 & n53 ) | ( ~x13 & n53 ) ; 38 | assign n70 = ( x11 & ~x14 ) | ( x11 & n53 ) | ( ~x14 & n53 ) ; 39 | assign n71 = ~n69 & n70 ; 40 | assign n75 = ( x0 & ~x1 ) | ( x0 & n53 ) | ( ~x1 & n53 ) ; 41 | assign n76 = ( x0 & ~x2 ) | ( x0 & n53 ) | ( ~x2 & n53 ) ; 42 | assign n77 = ~n75 & n76 ; 43 | assign n72 = ( x7 & ~x9 ) | ( x7 & n53 ) | ( ~x9 & n53 ) ; 44 | assign n73 = ( x7 & ~x10 ) | ( x7 & n53 ) | ( ~x10 & n53 ) ; 45 | assign n74 = ~n72 & n73 ; 46 | assign n78 = ( x3 & ~x5 ) | ( x3 & n53 ) | ( ~x5 & n53 ) ; 47 | assign n79 = ( x3 & ~x6 ) | ( x3 & n53 ) | ( ~x6 & n53 ) ; 48 | assign n80 = ~n78 & n79 ; 49 | assign n81 = n74 | n80 ; 50 | assign n82 = ( ~n71 & n77 ) | ( ~n71 & n81 ) | ( n77 & n81 ) ; 51 | assign n83 = n71 | n82 ; 52 | assign n84 = n65 | n83 ; 53 | assign n85 = ( ~n62 & n68 ) | ( ~n62 & n84 ) | ( n68 & n84 ) ; 54 | assign n86 = n62 | n85 ; 55 | assign n87 = n56 | n86 ; 56 | assign n88 = n59 | n87 ; 57 | assign n103 = ( x3 & ~x8 ) | ( x3 & n53 ) | ( ~x8 & n53 ) ; 58 | assign n104 = ~n78 & n103 ; 59 | assign n105 = ( n80 & ~n88 ) | ( n80 & n104 ) | ( ~n88 & n104 ) ; 60 | assign n106 = ~n80 & n105 ; 61 | assign n107 = ( n88 & n105 ) | ( n88 & n106 ) | ( n105 & n106 ) ; 62 | assign n108 = ~n77 & n88 ; 63 | assign n101 = ( x0 & ~x4 ) | ( x0 & n53 ) | ( ~x4 & n53 ) ; 64 | assign n102 = ~n75 & n101 ; 65 | assign n109 = ( ~n77 & n88 ) | ( ~n77 & n102 ) | ( n88 & n102 ) ; 66 | assign n110 = ( n107 & ~n108 ) | ( n107 & n109 ) | ( ~n108 & n109 ) ; 67 | assign n111 = n74 & ~n88 ; 68 | assign n99 = ( x7 & ~x12 ) | ( x7 & n53 ) | ( ~x12 & n53 ) ; 69 | assign n100 = ~n72 & n99 ; 70 | assign n112 = ( n74 & ~n88 ) | ( n74 & n100 ) | ( ~n88 & n100 ) ; 71 | assign n113 = ( n110 & ~n111 ) | ( n110 & n112 ) | ( ~n111 & n112 ) ; 72 | assign n114 = n71 & ~n88 ; 73 | assign n97 = ( x11 & ~x16 ) | ( x11 & n53 ) | ( ~x16 & n53 ) ; 74 | assign n98 = ~n69 & n97 ; 75 | assign n115 = ( n71 & ~n88 ) | ( n71 & n98 ) | ( ~n88 & n98 ) ; 76 | assign n116 = ( n113 & ~n114 ) | ( n113 & n115 ) | ( ~n114 & n115 ) ; 77 | assign n117 = n68 & ~n88 ; 78 | assign n95 = ( x15 & ~x20 ) | ( x15 & n53 ) | ( ~x20 & n53 ) ; 79 | assign n96 = ~n66 & n95 ; 80 | assign n118 = ( n68 & ~n88 ) | ( n68 & n96 ) | ( ~n88 & n96 ) ; 81 | assign n119 = ( n116 & ~n117 ) | ( n116 & n118 ) | ( ~n117 & n118 ) ; 82 | assign n120 = n65 & ~n88 ; 83 | assign n93 = ( x19 & ~x24 ) | ( x19 & n53 ) | ( ~x24 & n53 ) ; 84 | assign n94 = ~n63 & n93 ; 85 | assign n121 = ( n65 & ~n88 ) | ( n65 & n94 ) | ( ~n88 & n94 ) ; 86 | assign n122 = ( n119 & ~n120 ) | ( n119 & n121 ) | ( ~n120 & n121 ) ; 87 | assign n123 = n62 & ~n88 ; 88 | assign n91 = ( x23 & ~x28 ) | ( x23 & n53 ) | ( ~x28 & n53 ) ; 89 | assign n92 = ~n60 & n91 ; 90 | assign n124 = ( n62 & ~n88 ) | ( n62 & n92 ) | ( ~n88 & n92 ) ; 91 | assign n125 = ( n122 & ~n123 ) | ( n122 & n124 ) | ( ~n123 & n124 ) ; 92 | assign n126 = n56 & ~n88 ; 93 | assign n89 = ( x27 & ~x32 ) | ( x27 & n53 ) | ( ~x32 & n53 ) ; 94 | assign n90 = ~n54 & n89 ; 95 | assign n127 = ( n56 & ~n88 ) | ( n56 & n90 ) | ( ~n88 & n90 ) ; 96 | assign n128 = ( n125 & ~n126 ) | ( n125 & n127 ) | ( ~n126 & n127 ) ; 97 | assign n131 = ~n59 & n88 ; 98 | assign n129 = x33 & ~x35 ; 99 | assign n130 = ( ~n51 & n57 ) | ( ~n51 & n129 ) | ( n57 & n129 ) ; 100 | assign n132 = ( ~n59 & n88 ) | ( ~n59 & n130 ) | ( n88 & n130 ) ; 101 | assign n133 = ( n128 & ~n131 ) | ( n128 & n132 ) | ( ~n131 & n132 ) ; 102 | assign n137 = ~x35 & n133 ; 103 | assign n134 = x34 & n88 ; 104 | assign n135 = n53 | n134 ; 105 | assign n136 = ( x31 & n134 ) | ( x31 & n135 ) | ( n134 & n135 ) ; 106 | assign n138 = x33 & ~n136 ; 107 | assign n139 = ( ~n133 & n137 ) | ( ~n133 & n138 ) | ( n137 & n138 ) ; 108 | assign n149 = ~x28 & n133 ; 109 | assign n146 = x26 & n88 ; 110 | assign n147 = n53 | n146 ; 111 | assign n148 = ( x23 & n146 ) | ( x23 & n147 ) | ( n146 & n147 ) ; 112 | assign n150 = x25 & ~n148 ; 113 | assign n151 = ( ~n133 & n149 ) | ( ~n133 & n150 ) | ( n149 & n150 ) ; 114 | assign n143 = ~x32 & n133 ; 115 | assign n140 = x30 & n88 ; 116 | assign n141 = n53 | n140 ; 117 | assign n142 = ( x27 & n140 ) | ( x27 & n141 ) | ( n140 & n141 ) ; 118 | assign n144 = x29 & ~n142 ; 119 | assign n145 = ( ~n133 & n143 ) | ( ~n133 & n144 ) | ( n143 & n144 ) ; 120 | assign n155 = ~x24 & n133 ; 121 | assign n152 = x22 & n88 ; 122 | assign n153 = n53 | n152 ; 123 | assign n154 = ( x19 & n152 ) | ( x19 & n153 ) | ( n152 & n153 ) ; 124 | assign n156 = x21 & ~n154 ; 125 | assign n157 = ( ~n133 & n155 ) | ( ~n133 & n156 ) | ( n155 & n156 ) ; 126 | assign n167 = ~x16 & n133 ; 127 | assign n164 = x14 & n88 ; 128 | assign n165 = n53 | n164 ; 129 | assign n166 = ( x11 & n164 ) | ( x11 & n165 ) | ( n164 & n165 ) ; 130 | assign n168 = x13 & ~n166 ; 131 | assign n169 = ( ~n133 & n167 ) | ( ~n133 & n168 ) | ( n167 & n168 ) ; 132 | assign n161 = ~x20 & n133 ; 133 | assign n158 = x18 & n88 ; 134 | assign n159 = n53 | n158 ; 135 | assign n160 = ( x15 & n158 ) | ( x15 & n159 ) | ( n158 & n159 ) ; 136 | assign n162 = x17 & ~n160 ; 137 | assign n163 = ( ~n133 & n161 ) | ( ~n133 & n162 ) | ( n161 & n162 ) ; 138 | assign n173 = ~x8 & n133 ; 139 | assign n170 = x6 & n88 ; 140 | assign n171 = n53 | n170 ; 141 | assign n172 = ( x3 & n170 ) | ( x3 & n171 ) | ( n170 & n171 ) ; 142 | assign n174 = x5 & ~n172 ; 143 | assign n175 = ( ~n133 & n173 ) | ( ~n133 & n174 ) | ( n173 & n174 ) ; 144 | assign n179 = ~x12 & n133 ; 145 | assign n176 = x10 & n88 ; 146 | assign n177 = n53 | n176 ; 147 | assign n178 = ( x7 & n176 ) | ( x7 & n177 ) | ( n176 & n177 ) ; 148 | assign n180 = x9 & ~n178 ; 149 | assign n181 = ( ~n133 & n179 ) | ( ~n133 & n180 ) | ( n179 & n180 ) ; 150 | assign n182 = n175 | n181 ; 151 | assign n183 = n163 | n182 ; 152 | assign n184 = ( ~n157 & n169 ) | ( ~n157 & n183 ) | ( n169 & n183 ) ; 153 | assign n185 = n157 | n184 ; 154 | assign n186 = n145 | n185 ; 155 | assign n187 = ( ~n139 & n151 ) | ( ~n139 & n186 ) | ( n151 & n186 ) ; 156 | assign n188 = n139 | n187 ; 157 | assign n192 = ~x0 & n53 ; 158 | assign n189 = x4 & n133 ; 159 | assign n190 = n88 | n189 ; 160 | assign n191 = ( x2 & n189 ) | ( x2 & n190 ) | ( n189 & n190 ) ; 161 | assign n193 = x1 & ~n191 ; 162 | assign n194 = ( ~n53 & n192 ) | ( ~n53 & n193 ) | ( n192 & n193 ) ; 163 | assign n195 = n188 & ~n194 ; 164 | assign n196 = n169 & ~n181 ; 165 | assign n197 = n182 | n196 ; 166 | assign n198 = n163 | n197 ; 167 | assign n199 = n169 | n181 ; 168 | assign n200 = n163 | n199 ; 169 | assign n201 = n157 & ~n200 ; 170 | assign n202 = ( n163 & n169 ) | ( n163 & ~n201 ) | ( n169 & ~n201 ) ; 171 | assign n203 = n151 & n202 ; 172 | assign n204 = ( n151 & n201 ) | ( n151 & ~n203 ) | ( n201 & ~n203 ) ; 173 | assign n205 = n182 | n204 ; 174 | assign n206 = ( n145 & ~n151 ) | ( n145 & n201 ) | ( ~n151 & n201 ) ; 175 | assign n207 = n199 | n206 ; 176 | assign n208 = ( ~n199 & n201 ) | ( ~n199 & n207 ) | ( n201 & n207 ) ; 177 | assign n209 = n196 | n208 ; 178 | assign n210 = n175 | n209 ; 179 | assign y0 = n53 ; 180 | assign y1 = n88 ; 181 | assign y2 = n133 ; 182 | assign y3 = n195 ; 183 | assign y4 = n198 ; 184 | assign y5 = n205 ; 185 | assign y6 = n210 ; 186 | endmodule 187 | -------------------------------------------------------------------------------- /MCNC/original/count.v: -------------------------------------------------------------------------------- 1 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , x27 , x28 , x29 , x30 , x31 , x32 , x33 , x34 , y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 , y10 , y11 , y12 , y13 , y14 , y15 ); 2 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , x27 , x28 , x29 , x30 , x31 , x32 , x33 , x34 ; 3 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 , y10 , y11 , y12 , y13 , y14 , y15 ; 4 | wire n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 ; 5 | assign n36 = ~x17 & x19 ; 6 | assign n37 = ( x16 & ~x17 ) | ( x16 & x19 ) | ( ~x17 & x19 ) ; 7 | assign n38 = x15 | x16 ; 8 | assign n39 = ( n36 & ~n37 ) | ( n36 & n38 ) | ( ~n37 & n38 ) ; 9 | assign n40 = ~x18 & n39 ; 10 | assign n44 = ( x14 & x16 ) | ( x14 & ~x18 ) | ( x16 & ~x18 ) ; 11 | assign n41 = ( ~x17 & x20 ) | ( ~x17 & n36 ) | ( x20 & n36 ) ; 12 | assign n42 = ( x17 & x20 ) | ( x17 & n36 ) | ( x20 & n36 ) ; 13 | assign n43 = ( x17 & n41 ) | ( x17 & ~n42 ) | ( n41 & ~n42 ) ; 14 | assign n45 = ( x16 & x18 ) | ( x16 & ~n43 ) | ( x18 & ~n43 ) ; 15 | assign n46 = n44 & ~n45 ; 16 | assign n52 = ( x13 & x16 ) | ( x13 & ~x18 ) | ( x16 & ~x18 ) ; 17 | assign n47 = x17 | x19 ; 18 | assign n48 = x20 | n47 ; 19 | assign n49 = x21 & n48 ; 20 | assign n50 = x21 | n48 ; 21 | assign n51 = ~n49 & n50 ; 22 | assign n53 = ( x16 & x18 ) | ( x16 & ~n51 ) | ( x18 & ~n51 ) ; 23 | assign n54 = n52 & ~n53 ; 24 | assign n55 = x19 | x21 ; 25 | assign n56 = ( ~x17 & x20 ) | ( ~x17 & n55 ) | ( x20 & n55 ) ; 26 | assign n57 = x17 | n56 ; 27 | assign n58 = x22 & n57 ; 28 | assign n59 = ( x16 & x22 ) | ( x16 & n57 ) | ( x22 & n57 ) ; 29 | assign n60 = x12 & ~x16 ; 30 | assign n61 = ( ~n58 & n59 ) | ( ~n58 & n60 ) | ( n59 & n60 ) ; 31 | assign n62 = ~x18 & n61 ; 32 | assign n67 = ( x11 & x16 ) | ( x11 & ~x18 ) | ( x16 & ~x18 ) ; 33 | assign n63 = ~x22 & n57 ; 34 | assign n64 = ( ~x22 & x23 ) | ( ~x22 & n63 ) | ( x23 & n63 ) ; 35 | assign n65 = ( x22 & x23 ) | ( x22 & n63 ) | ( x23 & n63 ) ; 36 | assign n66 = ( x22 & n64 ) | ( x22 & ~n65 ) | ( n64 & ~n65 ) ; 37 | assign n68 = ( x16 & x18 ) | ( x16 & ~n66 ) | ( x18 & ~n66 ) ; 38 | assign n69 = n67 & ~n68 ; 39 | assign n75 = ( x10 & x16 ) | ( x10 & ~x18 ) | ( x16 & ~x18 ) ; 40 | assign n70 = x22 | x23 ; 41 | assign n71 = n57 | n70 ; 42 | assign n72 = x24 & n71 ; 43 | assign n73 = x24 | n71 ; 44 | assign n74 = ~n72 & n73 ; 45 | assign n76 = ( x16 & x18 ) | ( x16 & ~n74 ) | ( x18 & ~n74 ) ; 46 | assign n77 = n75 & ~n76 ; 47 | assign n78 = x23 | n57 ; 48 | assign n79 = ( ~x22 & x24 ) | ( ~x22 & n78 ) | ( x24 & n78 ) ; 49 | assign n80 = x22 | n79 ; 50 | assign n81 = x25 & n80 ; 51 | assign n82 = ( x16 & x25 ) | ( x16 & n80 ) | ( x25 & n80 ) ; 52 | assign n83 = x9 & ~x16 ; 53 | assign n84 = ( ~n81 & n82 ) | ( ~n81 & n83 ) | ( n82 & n83 ) ; 54 | assign n85 = ~x18 & n84 ; 55 | assign n90 = ( x8 & x16 ) | ( x8 & ~x18 ) | ( x16 & ~x18 ) ; 56 | assign n86 = ~x25 & n80 ; 57 | assign n87 = ( ~x25 & x26 ) | ( ~x25 & n86 ) | ( x26 & n86 ) ; 58 | assign n88 = ( x25 & x26 ) | ( x25 & n86 ) | ( x26 & n86 ) ; 59 | assign n89 = ( x25 & n87 ) | ( x25 & ~n88 ) | ( n87 & ~n88 ) ; 60 | assign n91 = ( x16 & x18 ) | ( x16 & ~n89 ) | ( x18 & ~n89 ) ; 61 | assign n92 = n90 & ~n91 ; 62 | assign n98 = ( x7 & x16 ) | ( x7 & ~x18 ) | ( x16 & ~x18 ) ; 63 | assign n93 = x25 | x26 ; 64 | assign n94 = n80 | n93 ; 65 | assign n95 = x27 & n94 ; 66 | assign n96 = x27 | n94 ; 67 | assign n97 = ~n95 & n96 ; 68 | assign n99 = ( x16 & x18 ) | ( x16 & ~n97 ) | ( x18 & ~n97 ) ; 69 | assign n100 = n98 & ~n99 ; 70 | assign n101 = x26 | n80 ; 71 | assign n102 = ( ~x25 & x27 ) | ( ~x25 & n101 ) | ( x27 & n101 ) ; 72 | assign n103 = x25 | n102 ; 73 | assign n104 = x28 & n103 ; 74 | assign n105 = ( x16 & x28 ) | ( x16 & n103 ) | ( x28 & n103 ) ; 75 | assign n106 = x6 & ~x16 ; 76 | assign n107 = ( ~n104 & n105 ) | ( ~n104 & n106 ) | ( n105 & n106 ) ; 77 | assign n108 = ~x18 & n107 ; 78 | assign n113 = ( x5 & x16 ) | ( x5 & ~x18 ) | ( x16 & ~x18 ) ; 79 | assign n109 = ~x28 & n103 ; 80 | assign n110 = ( ~x28 & x29 ) | ( ~x28 & n109 ) | ( x29 & n109 ) ; 81 | assign n111 = ( x28 & x29 ) | ( x28 & n109 ) | ( x29 & n109 ) ; 82 | assign n112 = ( x28 & n110 ) | ( x28 & ~n111 ) | ( n110 & ~n111 ) ; 83 | assign n114 = ( x16 & x18 ) | ( x16 & ~n112 ) | ( x18 & ~n112 ) ; 84 | assign n115 = n113 & ~n114 ; 85 | assign n121 = ( x4 & x16 ) | ( x4 & ~x18 ) | ( x16 & ~x18 ) ; 86 | assign n116 = x28 | x29 ; 87 | assign n117 = n103 | n116 ; 88 | assign n118 = x30 & n117 ; 89 | assign n119 = x30 | n117 ; 90 | assign n120 = ~n118 & n119 ; 91 | assign n122 = ( x16 & x18 ) | ( x16 & ~n120 ) | ( x18 & ~n120 ) ; 92 | assign n123 = n121 & ~n122 ; 93 | assign n124 = x29 | n103 ; 94 | assign n125 = ( ~x28 & x30 ) | ( ~x28 & n124 ) | ( x30 & n124 ) ; 95 | assign n126 = x28 | n125 ; 96 | assign n127 = x31 & n126 ; 97 | assign n128 = ( x16 & x31 ) | ( x16 & n126 ) | ( x31 & n126 ) ; 98 | assign n129 = x3 & ~x16 ; 99 | assign n130 = ( ~n127 & n128 ) | ( ~n127 & n129 ) | ( n128 & n129 ) ; 100 | assign n131 = ~x18 & n130 ; 101 | assign n136 = ( x2 & x16 ) | ( x2 & ~x18 ) | ( x16 & ~x18 ) ; 102 | assign n132 = ~x31 & n126 ; 103 | assign n133 = ( ~x31 & x32 ) | ( ~x31 & n132 ) | ( x32 & n132 ) ; 104 | assign n134 = ( x31 & x32 ) | ( x31 & n132 ) | ( x32 & n132 ) ; 105 | assign n135 = ( x31 & n133 ) | ( x31 & ~n134 ) | ( n133 & ~n134 ) ; 106 | assign n137 = ( x16 & x18 ) | ( x16 & ~n135 ) | ( x18 & ~n135 ) ; 107 | assign n138 = n136 & ~n137 ; 108 | assign n144 = ( x1 & x16 ) | ( x1 & ~x18 ) | ( x16 & ~x18 ) ; 109 | assign n139 = x31 | x32 ; 110 | assign n140 = n126 | n139 ; 111 | assign n141 = x33 & n140 ; 112 | assign n142 = x33 | n140 ; 113 | assign n143 = ~n141 & n142 ; 114 | assign n145 = ( x16 & x18 ) | ( x16 & ~n143 ) | ( x18 & ~n143 ) ; 115 | assign n146 = n144 & ~n145 ; 116 | assign n147 = x32 | n126 ; 117 | assign n148 = ( ~x31 & x33 ) | ( ~x31 & n147 ) | ( x33 & n147 ) ; 118 | assign n149 = x31 | n148 ; 119 | assign n150 = x34 & n149 ; 120 | assign n151 = ( x16 & x34 ) | ( x16 & n149 ) | ( x34 & n149 ) ; 121 | assign n152 = x0 & ~x16 ; 122 | assign n153 = ( ~n150 & n151 ) | ( ~n150 & n152 ) | ( n151 & n152 ) ; 123 | assign n154 = ~x18 & n153 ; 124 | assign y0 = ~n40 ; 125 | assign y1 = ~n46 ; 126 | assign y2 = ~n54 ; 127 | assign y3 = ~n62 ; 128 | assign y4 = ~n69 ; 129 | assign y5 = ~n77 ; 130 | assign y6 = ~n85 ; 131 | assign y7 = ~n92 ; 132 | assign y8 = ~n100 ; 133 | assign y9 = ~n108 ; 134 | assign y10 = ~n115 ; 135 | assign y11 = ~n123 ; 136 | assign y12 = ~n131 ; 137 | assign y13 = ~n138 ; 138 | assign y14 = ~n146 ; 139 | assign y15 = ~n154 ; 140 | endmodule 141 | -------------------------------------------------------------------------------- /MCNC/original/sqr6.v: -------------------------------------------------------------------------------- 1 | module top( x0 , x1 , x2 , x3 , x4 , x5 , y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 , y10 , y11 ); 2 | input x0 , x1 , x2 , x3 , x4 , x5 ; 3 | output y0 , y1 , y2 , y3 , y4 , y5 , y6 , y7 , y8 , y9 , y10 , y11 ; 4 | wire n7 , n8 , n9 , n10 , n11 , n12 , n13 , n14 , n15 , n16 , n17 , n18 , n19 , n20 , n21 , n22 , n23 , n24 , n25 , n26 , n27 , n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 ; 5 | assign n7 = ( x1 & x2 ) | ( x1 & x3 ) | ( x2 & x3 ) ; 6 | assign n8 = x4 & ~n7 ; 7 | assign n9 = ( x1 & x4 ) | ( x1 & ~n8 ) | ( x4 & ~n8 ) ; 8 | assign n10 = x0 & n9 ; 9 | assign n11 = x1 & ~x2 ; 10 | assign n12 = x3 & ~x4 ; 11 | assign n13 = ( x2 & ~x3 ) | ( x2 & n12 ) | ( ~x3 & n12 ) ; 12 | assign n14 = ( ~x1 & x2 ) | ( ~x1 & n13 ) | ( x2 & n13 ) ; 13 | assign n15 = ( n11 & ~n13 ) | ( n11 & n14 ) | ( ~n13 & n14 ) ; 14 | assign n16 = x0 & ~n15 ; 15 | assign n17 = ( x0 & x3 ) | ( x0 & x4 ) | ( x3 & x4 ) ; 16 | assign n18 = ( x0 & x3 ) | ( x0 & ~x5 ) | ( x3 & ~x5 ) ; 17 | assign n19 = n17 & ~n18 ; 18 | assign n20 = x2 & ~x4 ; 19 | assign n21 = x3 & n20 ; 20 | assign n22 = x1 | x3 ; 21 | assign n23 = ( x0 & ~x2 ) | ( x0 & n22 ) | ( ~x2 & n22 ) ; 22 | assign n24 = ( x0 & x3 ) | ( x0 & ~n22 ) | ( x3 & ~n22 ) ; 23 | assign n25 = ( x1 & ~n23 ) | ( x1 & n24 ) | ( ~n23 & n24 ) ; 24 | assign n26 = ( x0 & ~x1 ) | ( x0 & n25 ) | ( ~x1 & n25 ) ; 25 | assign n27 = n21 & ~n26 ; 26 | assign n28 = ( n21 & n25 ) | ( n21 & ~n27 ) | ( n25 & ~n27 ) ; 27 | assign n29 = ( x1 & ~x2 ) | ( x1 & n28 ) | ( ~x2 & n28 ) ; 28 | assign n30 = n19 & ~n29 ; 29 | assign n31 = ( n19 & n28 ) | ( n19 & ~n30 ) | ( n28 & ~n30 ) ; 30 | assign n34 = ( x1 & ~x3 ) | ( x1 & x5 ) | ( ~x3 & x5 ) ; 31 | assign n35 = ( x2 & ~x5 ) | ( x2 & n34 ) | ( ~x5 & n34 ) ; 32 | assign n36 = ( x1 & x2 ) | ( x1 & ~n34 ) | ( x2 & ~n34 ) ; 33 | assign n37 = n35 & ~n36 ; 34 | assign n38 = x0 & ~n37 ; 35 | assign n32 = ~x2 & x3 ; 36 | assign n33 = ~x5 & n32 ; 37 | assign n39 = x1 & n33 ; 38 | assign n40 = x0 | n39 ; 39 | assign n41 = ~n38 & n40 ; 40 | assign n57 = ~x4 & n41 ; 41 | assign n42 = ( x0 & ~x2 ) | ( x0 & x3 ) | ( ~x2 & x3 ) ; 42 | assign n43 = ( ~x0 & x1 ) | ( ~x0 & n42 ) | ( x1 & n42 ) ; 43 | assign n44 = ( ~x2 & x3 ) | ( ~x2 & n43 ) | ( x3 & n43 ) ; 44 | assign n45 = ~n42 & n44 ; 45 | assign n46 = ( ~n43 & n44 ) | ( ~n43 & n45 ) | ( n44 & n45 ) ; 46 | assign n48 = ( x1 & ~x2 ) | ( x1 & x3 ) | ( ~x2 & x3 ) ; 47 | assign n49 = x1 & x4 ; 48 | assign n50 = ( x3 & ~n48 ) | ( x3 & n49 ) | ( ~n48 & n49 ) ; 49 | assign n51 = ( ~x4 & n48 ) | ( ~x4 & n50 ) | ( n48 & n50 ) ; 50 | assign n52 = ( ~x3 & n50 ) | ( ~x3 & n51 ) | ( n50 & n51 ) ; 51 | assign n53 = x0 & ~n52 ; 52 | assign n47 = ~x4 & n32 ; 53 | assign n54 = x1 & n47 ; 54 | assign n55 = x0 | n54 ; 55 | assign n56 = ~n53 & n55 ; 56 | assign n58 = n46 | n56 ; 57 | assign n59 = ( n41 & ~n57 ) | ( n41 & n58 ) | ( ~n57 & n58 ) ; 58 | assign n62 = ( x1 & x2 ) | ( x1 & ~x5 ) | ( x2 & ~x5 ) ; 59 | assign n63 = n7 | n62 ; 60 | assign n64 = x5 & n63 ; 61 | assign n65 = ( ~n7 & n63 ) | ( ~n7 & n64 ) | ( n63 & n64 ) ; 62 | assign n66 = x4 & ~n65 ; 63 | assign n60 = ~x3 & x5 ; 64 | assign n61 = ( x1 & x5 ) | ( x1 & n60 ) | ( x5 & n60 ) ; 65 | assign n67 = x2 & n61 ; 66 | assign n68 = x4 | n67 ; 67 | assign n69 = ~n66 & n68 ; 68 | assign n86 = ~x0 & n69 ; 69 | assign n72 = x4 & ~x5 ; 70 | assign n70 = ~x0 & x1 ; 71 | assign n71 = ~x2 & n70 ; 72 | assign n73 = x3 & n71 ; 73 | assign n74 = n72 & n73 ; 74 | assign n77 = ( x0 & ~x1 ) | ( x0 & x2 ) | ( ~x1 & x2 ) ; 75 | assign n78 = x2 | n77 ; 76 | assign n79 = ( x0 & ~x3 ) | ( x0 & n77 ) | ( ~x3 & n77 ) ; 77 | assign n80 = x2 & n79 ; 78 | assign n81 = n78 & ~n80 ; 79 | assign n82 = x4 & ~n81 ; 80 | assign n75 = x1 | x2 ; 81 | assign n76 = ( ~x1 & n11 ) | ( ~x1 & n75 ) | ( n11 & n75 ) ; 82 | assign n83 = x3 & n76 ; 83 | assign n84 = x4 | n83 ; 84 | assign n85 = ~n82 & n84 ; 85 | assign n87 = n74 | n85 ; 86 | assign n88 = ( n69 & ~n86 ) | ( n69 & n87 ) | ( ~n86 & n87 ) ; 87 | assign n89 = x2 | x3 ; 88 | assign n90 = ( x0 & ~x2 ) | ( x0 & n89 ) | ( ~x2 & n89 ) ; 89 | assign n91 = ( x0 & ~x1 ) | ( x0 & n89 ) | ( ~x1 & n89 ) ; 90 | assign n92 = ( n11 & ~n90 ) | ( n11 & n91 ) | ( ~n90 & n91 ) ; 91 | assign n126 = ~x4 & n92 ; 92 | assign n93 = x2 & ~x3 ; 93 | assign n94 = ( x0 & ~x4 ) | ( x0 & n93 ) | ( ~x4 & n93 ) ; 94 | assign n95 = ~x0 & n94 ; 95 | assign n96 = ( x0 & ~x3 ) | ( x0 & x5 ) | ( ~x3 & x5 ) ; 96 | assign n97 = ( ~x1 & x5 ) | ( ~x1 & n96 ) | ( x5 & n96 ) ; 97 | assign n98 = x5 & ~n97 ; 98 | assign n99 = n97 | n98 ; 99 | assign n100 = ( ~x5 & n98 ) | ( ~x5 & n99 ) | ( n98 & n99 ) ; 100 | assign n123 = ~x2 & n100 ; 101 | assign n101 = ~x2 & x5 ; 102 | assign n102 = ( x0 & x1 ) | ( x0 & n101 ) | ( x1 & n101 ) ; 103 | assign n103 = ~x1 & n102 ; 104 | assign n111 = ( x2 & x5 ) | ( x2 & n18 ) | ( x5 & n18 ) ; 105 | assign n112 = ( x0 & x3 ) | ( x0 & n111 ) | ( x3 & n111 ) ; 106 | assign n113 = n18 & ~n112 ; 107 | assign n114 = ( n111 & ~n112 ) | ( n111 & n113 ) | ( ~n112 & n113 ) ; 108 | assign n115 = x4 & ~n114 ; 109 | assign n107 = x2 | x5 ; 110 | assign n108 = x3 | x5 ; 111 | assign n109 = x2 & ~n108 ; 112 | assign n110 = ( ~x2 & n107 ) | ( ~x2 & n109 ) | ( n107 & n109 ) ; 113 | assign n116 = x0 & n110 ; 114 | assign n117 = x4 | n116 ; 115 | assign n118 = ~n115 & n117 ; 116 | assign n119 = x1 & ~n118 ; 117 | assign n104 = ( x2 & x4 ) | ( x2 & x5 ) | ( x4 & x5 ) ; 118 | assign n105 = ( ~x3 & x4 ) | ( ~x3 & x5 ) | ( x4 & x5 ) ; 119 | assign n106 = n104 & ~n105 ; 120 | assign n120 = x0 & n106 ; 121 | assign n121 = x1 | n120 ; 122 | assign n122 = ~n119 & n121 ; 123 | assign n124 = n103 | n122 ; 124 | assign n125 = ( n100 & ~n123 ) | ( n100 & n124 ) | ( ~n123 & n124 ) ; 125 | assign n127 = n95 | n125 ; 126 | assign n128 = ( n92 & ~n126 ) | ( n92 & n127 ) | ( ~n126 & n127 ) ; 127 | assign n130 = ( x2 & x3 ) | ( x2 & x4 ) | ( x3 & x4 ) ; 128 | assign n131 = x1 & ~n130 ; 129 | assign n132 = ~x1 & n130 ; 130 | assign n133 = n131 | n132 ; 131 | assign n134 = x5 & ~n133 ; 132 | assign n129 = ( ~x2 & n89 ) | ( ~x2 & n93 ) | ( n89 & n93 ) ; 133 | assign n135 = x4 & n129 ; 134 | assign n136 = x5 | n135 ; 135 | assign n137 = ~n134 & n136 ; 136 | assign n138 = ( x2 & x3 ) | ( x2 & x5 ) | ( x3 & x5 ) ; 137 | assign n139 = x3 & x4 ; 138 | assign n140 = ( x3 & x5 ) | ( x3 & n139 ) | ( x5 & n139 ) ; 139 | assign n141 = ( n32 & n138 ) | ( n32 & ~n140 ) | ( n138 & ~n140 ) ; 140 | assign n142 = ( x3 & x4 ) | ( x3 & x5 ) | ( x4 & x5 ) ; 141 | assign n143 = ~x4 & n142 ; 142 | assign n144 = ( ~x3 & n142 ) | ( ~x3 & n143 ) | ( n142 & n143 ) ; 143 | assign y0 = n10 ; 144 | assign y1 = n16 ; 145 | assign y2 = n31 ; 146 | assign y3 = n59 ; 147 | assign y4 = n88 ; 148 | assign y5 = n128 ; 149 | assign y6 = n137 ; 150 | assign y7 = n141 ; 151 | assign y8 = n144 ; 152 | assign y9 = n72 ; 153 | assign y10 = 1'b0 ; 154 | assign y11 = x5 ; 155 | endmodule 156 | -------------------------------------------------------------------------------- /MCNC/original/x1dn.v: -------------------------------------------------------------------------------- 1 | module top( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 , y0 , y1 , y2 , y3 , y4 , y5 ); 2 | input x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 , x13 , x14 , x15 , x16 , x17 , x18 , x19 , x20 , x21 , x22 , x23 , x24 , x25 , x26 ; 3 | output y0 , y1 , y2 , y3 , y4 , y5 ; 4 | wire n28 , n29 , n30 , n31 , n32 , n33 , n34 , n35 , n36 , n37 , n38 , n39 , n40 , n41 , n42 , n43 , n44 , n45 , n46 , n47 , n48 , n49 , n50 , n51 , n52 , n53 , n54 , n55 , n56 , n57 , n58 , n59 , n60 , n61 , n62 , n63 , n64 , n65 , n66 , n67 , n68 , n69 , n70 , n71 , n72 , n73 , n74 , n75 , n76 , n77 , n78 , n79 , n80 , n81 , n82 , n83 , n84 , n85 , n86 , n87 , n88 , n89 , n90 , n91 , n92 , n93 , n94 , n95 , n96 , n97 , n98 , n99 , n100 , n101 , n102 , n103 , n104 , n105 , n106 , n107 , n108 , n109 , n110 , n111 , n112 , n113 , n114 , n115 , n116 , n117 , n118 , n119 , n120 , n121 , n122 , n123 , n124 , n125 , n126 , n127 , n128 , n129 , n130 , n131 , n132 , n133 , n134 , n135 , n136 , n137 , n138 , n139 , n140 , n141 , n142 , n143 , n144 , n145 , n146 , n147 , n148 , n149 , n150 , n151 , n152 , n153 , n154 , n155 , n156 , n157 , n158 , n159 , n160 , n161 , n162 , n163 , n164 , n165 , n166 , n167 , n168 , n169 , n170 , n171 , n172 , n173 , n174 , n175 , n176 , n177 , n178 , n179 ; 5 | assign n28 = ( x1 & x2 ) | ( x1 & x3 ) | ( x2 & x3 ) ; 6 | assign n29 = x1 & ~x4 ; 7 | assign n30 = ( ~x2 & n28 ) | ( ~x2 & n29 ) | ( n28 & n29 ) ; 8 | assign n43 = ( ~x1 & x2 ) | ( ~x1 & x3 ) | ( x2 & x3 ) ; 9 | assign n44 = ~x1 & x4 ; 10 | assign n45 = ( ~x3 & n43 ) | ( ~x3 & n44 ) | ( n43 & n44 ) ; 11 | assign n46 = x7 & ~x8 ; 12 | assign n47 = ~x6 & x7 ; 13 | assign n48 = x8 & n47 ; 14 | assign n49 = ( x8 & n46 ) | ( x8 & ~n48 ) | ( n46 & ~n48 ) ; 15 | assign n55 = x5 | n49 ; 16 | assign n50 = x9 & ~x10 ; 17 | assign n51 = ( x6 & ~x11 ) | ( x6 & n50 ) | ( ~x11 & n50 ) ; 18 | assign n52 = ~x6 & n51 ; 19 | assign n36 = x7 | x8 ; 20 | assign n53 = x12 & n36 ; 21 | assign n54 = x6 & n53 ; 22 | assign n56 = n52 | n54 ; 23 | assign n57 = ( ~n49 & n55 ) | ( ~n49 & n56 ) | ( n55 & n56 ) ; 24 | assign n58 = x0 & n57 ; 25 | assign n59 = ( n45 & n57 ) | ( n45 & n58 ) | ( n57 & n58 ) ; 26 | assign n60 = ( x0 & n30 ) | ( x0 & ~n59 ) | ( n30 & ~n59 ) ; 27 | assign n31 = ~x10 & x14 ; 28 | assign n32 = ~x11 & n31 ; 29 | assign n33 = ( x7 & x8 ) | ( x7 & n32 ) | ( x8 & n32 ) ; 30 | assign n34 = x13 & ~n33 ; 31 | assign n35 = ( x13 & n32 ) | ( x13 & ~n34 ) | ( n32 & ~n34 ) ; 32 | assign n38 = ~x7 & x13 ; 33 | assign n39 = ~x8 & n38 ; 34 | assign n40 = ( ~x6 & n35 ) | ( ~x6 & n39 ) | ( n35 & n39 ) ; 35 | assign n37 = x15 & n36 ; 36 | assign n41 = ( x6 & n37 ) | ( x6 & n39 ) | ( n37 & n39 ) ; 37 | assign n42 = n40 | n41 ; 38 | assign n61 = n42 | n59 ; 39 | assign n62 = ( n30 & ~n60 ) | ( n30 & n61 ) | ( ~n60 & n61 ) ; 40 | assign n69 = ( ~x20 & x21 ) | ( ~x20 & x22 ) | ( x21 & x22 ) ; 41 | assign n70 = x19 & ~x20 ; 42 | assign n71 = ( ~x22 & n69 ) | ( ~x22 & n70 ) | ( n69 & n70 ) ; 43 | assign n72 = ( x16 & ~x17 ) | ( x16 & n71 ) | ( ~x17 & n71 ) ; 44 | assign n73 = ~x16 & x18 ; 45 | assign n74 = ( x17 & n72 ) | ( x17 & ~n73 ) | ( n72 & ~n73 ) ; 46 | assign n75 = n57 & n74 ; 47 | assign n63 = ( x20 & x21 ) | ( x20 & x22 ) | ( x21 & x22 ) ; 48 | assign n64 = ~x19 & x20 ; 49 | assign n65 = ( ~x21 & n63 ) | ( ~x21 & n64 ) | ( n63 & n64 ) ; 50 | assign n66 = ( x16 & x17 ) | ( x16 & n65 ) | ( x17 & n65 ) ; 51 | assign n67 = x16 & ~x18 ; 52 | assign n68 = ( ~n65 & n66 ) | ( ~n65 & n67 ) | ( n66 & n67 ) ; 53 | assign n76 = n68 & ~n75 ; 54 | assign n77 = ( n42 & n75 ) | ( n42 & ~n76 ) | ( n75 & ~n76 ) ; 55 | assign n78 = x1 & x3 ; 56 | assign n79 = ( ~x0 & x2 ) | ( ~x0 & n78 ) | ( x2 & n78 ) ; 57 | assign n80 = x0 & n79 ; 58 | assign n81 = x16 & x23 ; 59 | assign n82 = x13 & n81 ; 60 | assign n83 = ( x4 & ~n80 ) | ( x4 & n82 ) | ( ~n80 & n82 ) ; 61 | assign n84 = n80 & n83 ; 62 | assign n86 = x1 | x3 ; 63 | assign n87 = ( ~x0 & x2 ) | ( ~x0 & n86 ) | ( x2 & n86 ) ; 64 | assign n88 = x0 | n87 ; 65 | assign n85 = x16 | x23 ; 66 | assign n89 = x5 & ~n85 ; 67 | assign n90 = ( x4 & ~n88 ) | ( x4 & n89 ) | ( ~n88 & n89 ) ; 68 | assign n91 = ~x4 & n90 ; 69 | assign n100 = x15 & n81 ; 70 | assign n101 = x4 & n100 ; 71 | assign n105 = ( n36 & n80 ) | ( n36 & ~n101 ) | ( n80 & ~n101 ) ; 72 | assign n102 = x12 & ~n85 ; 73 | assign n103 = ( x4 & ~n88 ) | ( x4 & n102 ) | ( ~n88 & n102 ) ; 74 | assign n104 = ~x4 & n103 ; 75 | assign n106 = n36 & n104 ; 76 | assign n107 = ( n101 & n105 ) | ( n101 & n106 ) | ( n105 & n106 ) ; 77 | assign n108 = x6 & ~n107 ; 78 | assign n92 = x14 & n81 ; 79 | assign n93 = x4 & n92 ; 80 | assign n97 = ( x11 & ~n80 ) | ( x11 & n93 ) | ( ~n80 & n93 ) ; 81 | assign n94 = x9 & ~n85 ; 82 | assign n95 = ( x4 & ~n88 ) | ( x4 & n94 ) | ( ~n88 & n94 ) ; 83 | assign n96 = ~x4 & n95 ; 84 | assign n98 = ~x11 & n96 ; 85 | assign n99 = ( n93 & ~n97 ) | ( n93 & n98 ) | ( ~n97 & n98 ) ; 86 | assign n109 = ~x10 & n99 ; 87 | assign n110 = x6 | n109 ; 88 | assign n111 = ~n108 & n110 ; 89 | assign n112 = ( ~n84 & n91 ) | ( ~n84 & n111 ) | ( n91 & n111 ) ; 90 | assign n113 = n49 & ~n111 ; 91 | assign n114 = ( n84 & n112 ) | ( n84 & ~n113 ) | ( n112 & ~n113 ) ; 92 | assign n115 = x3 & x23 ; 93 | assign n116 = ( x4 & ~n42 ) | ( x4 & n115 ) | ( ~n42 & n115 ) ; 94 | assign n117 = n42 & n116 ; 95 | assign n118 = x0 & x2 ; 96 | assign n119 = ( x1 & ~n117 ) | ( x1 & n118 ) | ( ~n117 & n118 ) ; 97 | assign n120 = n117 & n119 ; 98 | assign n121 = x3 | x23 ; 99 | assign n122 = ( x4 & n57 ) | ( x4 & n121 ) | ( n57 & n121 ) ; 100 | assign n123 = n57 & ~n122 ; 101 | assign n124 = ~x1 & n123 ; 102 | assign n125 = ( x0 & ~x2 ) | ( x0 & n124 ) | ( ~x2 & n124 ) ; 103 | assign n126 = ~x0 & n125 ; 104 | assign n127 = x1 & n118 ; 105 | assign n128 = x3 & x4 ; 106 | assign n129 = x16 & n128 ; 107 | assign n130 = ( x13 & ~n127 ) | ( x13 & n129 ) | ( ~n127 & n129 ) ; 108 | assign n131 = n127 & n130 ; 109 | assign n132 = x18 & x20 ; 110 | assign n133 = ( ~x17 & x19 ) | ( ~x17 & n132 ) | ( x19 & n132 ) ; 111 | assign n134 = x17 & n133 ; 112 | assign n135 = x22 & x26 ; 113 | assign n136 = ( ~x21 & x23 ) | ( ~x21 & n135 ) | ( x23 & n135 ) ; 114 | assign n137 = x21 & n136 ; 115 | assign n138 = n134 & n137 ; 116 | assign n153 = ( n49 & n131 ) | ( n49 & ~n138 ) | ( n131 & ~n138 ) ; 117 | assign n142 = x18 | x20 ; 118 | assign n143 = ( ~x17 & x19 ) | ( ~x17 & n142 ) | ( x19 & n142 ) ; 119 | assign n144 = x17 | n143 ; 120 | assign n145 = x22 | x26 ; 121 | assign n146 = ( ~x21 & x23 ) | ( ~x21 & n145 ) | ( x23 & n145 ) ; 122 | assign n147 = x21 | n146 ; 123 | assign n148 = n144 | n147 ; 124 | assign n139 = x3 | x4 ; 125 | assign n140 = x16 | n139 ; 126 | assign n141 = x5 & ~n140 ; 127 | assign n149 = x0 | x2 ; 128 | assign n150 = x1 | n149 ; 129 | assign n151 = n141 & ~n150 ; 130 | assign n152 = ~n148 & n151 ; 131 | assign n154 = ~n49 & n152 ; 132 | assign n155 = ( n131 & ~n153 ) | ( n131 & n154 ) | ( ~n153 & n154 ) ; 133 | assign n166 = ( x14 & ~n127 ) | ( x14 & n129 ) | ( ~n127 & n129 ) ; 134 | assign n167 = n127 & n166 ; 135 | assign n168 = n138 & n167 ; 136 | assign n156 = n139 | n150 ; 137 | assign n164 = ( x9 & x16 ) | ( x9 & ~n156 ) | ( x16 & ~n156 ) ; 138 | assign n165 = ~x16 & n164 ; 139 | assign n169 = n165 | n168 ; 140 | assign n170 = ( ~n148 & n168 ) | ( ~n148 & n169 ) | ( n168 & n169 ) ; 141 | assign n171 = ~x11 & n170 ; 142 | assign n172 = ~x10 & n171 ; 143 | assign n173 = x6 | n172 ; 144 | assign n159 = ( x15 & ~n127 ) | ( x15 & n129 ) | ( ~n127 & n129 ) ; 145 | assign n160 = n127 & n159 ; 146 | assign n161 = n138 & n160 ; 147 | assign n157 = ( x12 & x16 ) | ( x12 & ~n156 ) | ( x16 & ~n156 ) ; 148 | assign n158 = ~x16 & n157 ; 149 | assign n162 = n158 | n161 ; 150 | assign n163 = ( ~n148 & n161 ) | ( ~n148 & n162 ) | ( n161 & n162 ) ; 151 | assign n174 = n36 & n163 ; 152 | assign n175 = x6 & ~n174 ; 153 | assign n176 = n173 & ~n175 ; 154 | assign n177 = n155 | n176 ; 155 | assign n178 = ~x25 & n177 ; 156 | assign n179 = ( ~x24 & n177 ) | ( ~x24 & n178 ) | ( n177 & n178 ) ; 157 | assign y0 = n62 ; 158 | assign y1 = n77 ; 159 | assign y2 = n114 ; 160 | assign y3 = n120 ; 161 | assign y4 = n126 ; 162 | assign y5 = n179 ; 163 | endmodule 164 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SCE-benchmarks 2 | This repository contains optimization results for superconducting electronic (SCE) circuits. SCE circuits are based on superconductive inductors and Josephson Junctions (JJs). 3 | 4 | ## Adiabatic quantum-flux-parametron (AQFP) 5 | Adiabatic Quantum-Flux-Parametron (AQFP) is a family of SCE circuits exhibiting high energy efficiency. In AQFP technology, logic gates require splitters to drive multiple fanouts and both the logic gates and the splitters are clocked, requiring path balancing using buffers to ensure all fanins of a gate arrive simultaneously. The commonly-used cost metric of AQFP circuits is the JJ count. 6 | 7 | **AQFP cell library** 8 | 9 | The following table shows the costs of AQFP library components in terms of the number of JJs. 10 | 11 | | AQFP cell | Number of JJs | Level | 12 | | ------------- | ------------- | ------------- | 13 | Buffer | 2 | 1 | 14 | Inverter | 2 | 1 | 15 | Constant | 2 | 1 | 16 | Splitter (1-to-2, 1-to-3, 1-to-4) | 2 | 1 | 17 | 3-input MAJ | 6 | 1 | 18 | 5-input MAJ | 10 | 1 | 19 | 2-input AND | 6 | 1 | 20 | 2-input OR | 6 | 1 | 21 | 22 | ## Technology assumptions 23 | PIs and POs are balanced, and splitters have a splitting capacity (maximum fanout) of 4. 24 | 25 | ## Benchmark suites 26 | Different benchmark suites and best optimization results under various technology assumptions are collected in this repository. 27 | 28 | ### MCNC benchmarks 29 | These benchmarks are used for experiments in [2,3,5,6]. The initial MIG circuits were obtained by first mapping into 4-LUT networks using ABC command `&if -a -K 4`, then rewriting each LUT with optimum MIGs looked up in a database, and finally restricting the fanout size of each node to at most 16. (See Section 3.1 of [2].) 30 | 31 | ### ISCAS'85 benchmarks 32 | These benchmarks are used for experiments in [1,4,7]. We obtained the original benchmarks from the authors of [4]. 33 | 34 | ## Types of best results 35 | There are two types of "best AQFP results" presented in this repository. 36 | 37 | **Buffer and splitter insertion without logic optimization** 38 | 39 | Without any logic optimization, i.e., without changing the interconnections of logic gates, buffers and splitters are inserted into the network to legalize them for AQFP. Heuristic optimization techniques, such as chunked movement and retiming, are applied after an initial insertion is obtained. 40 | 41 | The buffer insertion results can be verified using the [`buffer_verification`](https://github.com/lsils/mockturtle/blob/master/include/mockturtle/algorithms/aqfp/buffer_verification.hpp) algorithm in `mockturtle`. 42 | 43 | **Logic optimization results considering buffer and splitter costs** 44 | 45 | In this category, there is no restriction on the methods used as long as the resulting circuit is functionally equivalent to the original one and is legal with respect to the AQFP constraints. Various algorithms, including technology-independent or -dependent logic optimization, buffer insertion, and post-insertion optimization, can be applied and interleaved. 46 | 47 | ## References 48 | 1. "A Buffer and Splitter Insertion Framework for Adiabatic Quantum-Flux-Parametron Superconducting Circuits" by Ruizhe Cai, Olivia Chen, Ao Ren, Ning Liu, Nobuyuki Yoshikawa, and Yanzhi Wang (ICCD 2019). 49 | 2. "Algebraic and Boolean Optimization Methods for AQFP Superconducting Circuits" by Eleonora Testa, Siang-Yun Lee, Heinz Riener, and Giovanni De Micheli (ASP-DAC 2021). 50 | 3. "Irredundant Buffer and Splitter Insertion and Scheduling-Based Optimization for AQFP Circuits" by Siang-Yun Lee, Heinz Riener, and Giovanni De Micheli (IWLS 2021). 51 | 4. "An Optimal Algorithm for Splitter and Buffer Insertion in Adiabatic Quantum-Flux-Parametron Circuits" by Chao-Yuan Huang, Yi-Chen Chang, Ming-Jer Tsai, and Tsung-Yi Ho (ICCAD 2021). 52 | 5. "Optimizing Adiabatic Quantum-Flux-Parametron (AQFP) Circuits using an Exact Database" by Dewmini Sudara Marakkalage, Heinz Riener, and Giovanni De Micheli (NANOARCH 2021). 53 | 6. "Majority-based Design Flow for AQFP Superconducting Family" by Giulia Meuli, Vinicius Possani, Rajinder Singh, Siang-Yun Lee, Alessandro Tempia Calvino, Dewmini Sudara Marakkalage, Patrick Vuillod, Luca Amaru, Scott Chase, Jamil Kawa, and Giovanni De Micheli (DATE 2022). 54 | 7. "Beyond Local Optimality of Buffer and Splitter Insertion for AQFP Circuits" by Siang-Yun Lee, Heinz Riener, and Giovanni De Micheli (DAC 2022). 55 | 8. "Technology Legalization and Optimization for Adiabatic Quantum-Flux Parametron" by Siang-Yun Lee, Alessandro Tempia Calvino, Heinz Riener, and Giovanni De Micheli (under review). 56 | 57 | --------------------------------------------------------------------------------