Merge branch 'multimode_clb' of https://github.com/LNIS-Projects/OpenFPGA into multimode_clb

This commit is contained in:
giacomin 2019-05-20 16:47:07 -06:00
commit ceee28226e
158 changed files with 56308 additions and 2112 deletions

View File

@ -40,6 +40,7 @@ matrix:
- gdb
- git
- gperf
- iverilog
- libcairo2-dev
- libevent-dev
- libfontconfig1-dev
@ -82,6 +83,7 @@ install:
script:
- .travis/script.sh
#- .travis/regression.sh
after_failure:
- .travis/after_failure.sh

39
.travis/regression.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/bash
# Regression test version 1.0
# Set variables
benchmark="test_modes"
include_netlists="_include_netlists.v"
compiled_file="compiled_$benchmark"
tb_formal_postfix="_top_formal_verification_random_tb"
verilog_output_dirname="${benchmark}_Verilog"
log_file="${benchmark}_sim.log"
# Move to vpr folder
cd vpr7_x2p/vpr
# Remove former log file
rm -f $log_file
rm -f $compiled_file
# Start the script -> run the fpga generation -> run the simulation -> check the log file
source .regression_verilog.sh
iverilog -o $compiled_file $verilog_output_dirname/SRC/$benchmark$include_netlists -s $benchmark$tb_formal_postfix
vvp $compiled_file -j 16 >> $log_file
result=`grep "Succeed" $log_file`
if ["$result" = ""]; then
result=`grep "Failed" $log_file`
if ["$result" = ""]; then
echo "Unexpected error, Verification didn't run"
cd -
exit 1
else
echo "Verification failed"
cd -
exit 2
fi
else
echo "Verification succeed"
cd -
fi

View File

@ -23,3 +23,10 @@ fi
end_section "OpenFPGA.build"
$SPACER
cd -
source .travis/regression.sh
cd fpga_flow
./regression_fpga_flow.sh
cd -

View File

@ -125,6 +125,7 @@ enable_testing()
#
# Sub-projects
#
#add_subdirectory(iverilog)
add_subdirectory(yosys)
add_subdirectory(abc)
add_subdirectory(ace2)
@ -192,5 +193,12 @@ set_target_properties(libvpr vpr
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/vpr7_x2p/vpr"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/vpr7_x2p/vpr")
set_target_properties(libvpr vpr_shell
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/vpr7_x2p/vpr"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/vpr7_x2p/vpr"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/vpr7_x2p/vpr")

View File

@ -92,7 +92,7 @@
<port name="inpad"/>
</output_ports>
</model>
<!--model name="multiply">
<model name="multiply">
<input_ports>
<port name="a"/>
<port name="b"/>
@ -102,7 +102,7 @@
</output_ports>
</model>
<model name="single_port_ram">
<!--model name="single_port_ram">
<input_ports>
<port name="we"/--> <!-- control -->
<!--port name="addr"/--> <!-- address lines -->
@ -645,7 +645,7 @@
area associated with our DSP block is four times that of a logic tile, where the routing area of a logic tile was calculated above (at W = 300)
as 30481 MWTAs. Hence the (core, non-routing) area our DSP block is approximately 518,000 - 4 * 30,481 = 396,000 MWTUs.
-->
<!--pb_type name="mult_36" height="4" area="396000">
<pb_type name="mult_36" height="4" area="396000">
<input name="a" num_pins="36"/>
<input name="b" num_pins="36"/>
@ -655,18 +655,18 @@
<pb_type name="divisible_mult_18x18" num_pb="2">
<input name="a" num_pins="18"/>
<input name="b" num_pins="18"/>
<output name="out" num_pins="36"/-->
<output name="out" num_pins="36"/>
<!-- Model 9x9 delay and 18x18 delay as the same. 9x9 could be faster, but in Stratix IV
isn't, presumably because the multiplier layout is really optimized for 18x18.
-->
<!--mode name="two_mult_9x9">
<mode name="two_mult_9x9">
<pb_type name="mult_9x9_slice" num_pb="2">
<input name="A_cfg" num_pins="9"/>
<input name="B_cfg" num_pins="9"/>
<output name="OUT_cfg" num_pins="18"/>
<pb_type name="mult_9x9" blif_model=".subckt multiply" num_pb="1">
<pb_type name="mult_9x9" blif_model=".subckt multiply9" num_pb="1">
<input name="a" num_pins="9"/>
<input name="b" num_pins="9"/>
<output name="out" num_pins="18"/>
@ -705,7 +705,7 @@
<input name="B_cfg" num_pins="18"/>
<output name="OUT_cfg" num_pins="36"/>
<pb_type name="mult_18x18" blif_model=".subckt multiply" num_pb="1" >
<pb_type name="mult_18x18" blif_model=".subckt multiply18" num_pb="1" >
<input name="a" num_pins="18"/>
<input name="b" num_pins="18"/>
<output name="out" num_pins="36"/>
@ -739,11 +739,11 @@
<power method="sum-of-children"/>
</pb_type>
<interconnect-->
<interconnect>
<!-- Stratix IV input delay of 207ps is conservative for this architecture because this architecture does not have an input crossbar in the multiplier.
Subtract 72.5 ps delay, which is already in the connection block input mux, leading
-->
<!--direct name="a2a" input="mult_36.a" output="divisible_mult_18x18[1:0].a">
<direct name="a2a" input="mult_36.a" output="divisible_mult_18x18[1:0].a">
<delay_constant max="134e-12" in_port="mult_36.a" out_port="divisible_mult_18x18[1:0].a"/>
</direct>
<direct name="b2b" input="mult_36.b" output="divisible_mult_18x18[1:0].b">
@ -761,7 +761,7 @@
<input name="B_cfg" num_pins="36"/>
<output name="OUT_cfg" num_pins="72"/>
<pb_type name="mult_36x36" blif_model=".subckt multiply" num_pb="1">
<pb_type name="mult_36x36" blif_model=".subckt multiply36" num_pb="1">
<input name="a" num_pins="36"/>
<input name="b" num_pins="36"/>
<output name="out" num_pins="72"/>
@ -784,12 +784,12 @@
<static_power power_per_instance="0.0"/>
</power>
</pb_type>
<interconnect-->
<interconnect>
<!-- Stratix IV input delay of 207ps is conservative for this architecture because this architecture does not have an input crossbar in the multiplier.
Subtract 72.5 ps delay, which is already in the connection block input mux, leading
to a 134 ps delay.
-->
<!--direct name="a2a" input="mult_36.a" output="mult_36x36_slice.A_cfg">
<direct name="a2a" input="mult_36.a" output="mult_36x36_slice.A_cfg">
<delay_constant max="134e-12" in_port="mult_36.a" out_port="mult_36x36_slice.A_cfg"/>
</direct>
<direct name="b2b" input="mult_36.b" output="mult_36x36_slice.B_cfg">
@ -803,14 +803,14 @@
</mode>
<fc default_in_type="frac" default_in_val="0.15" default_out_type="frac" default_out_val="0.10"/>
<pinlocations pattern="spread"/-->
<pinlocations pattern="spread"/>
<!-- Place this multiplier block every 8 columns from (and including) the sixth column -->
<!--gridlocations>
<gridlocations>
<loc type="col" start="6" repeat="8" priority="2"/>
</gridlocations>
<power method="sum-of-children"/>
</pb_type-->
</pb_type>
<!-- Define fracturable multiplier end -->
<!-- Define fracturable memory begin -->

View File

@ -0,0 +1,22 @@
# Circuit Names, fixed routing channel width,
alu4/*.v, 300
apex2/*.v, 300
apex4/*.v, 300
bigkey/*.v, 300
clma/*.v, 300
des/*.v, 300
diffeq/*.v, 300
dsip/*.v, 300
elliptic/*.v, 300
ex1010/*.v, 300
ex5p/*.v, 300
frisc/*.v, 300
mcnc_big20.txt
misex3/*.v, 300
pdc/*.v, 300
s298/*.v, 30
s38417/*.v, 300
s38584.1/*.v, 300
seq/*.v, 300
spla/*.v, 300
tseng/*.v, 300

View File

@ -0,0 +1,22 @@
# Circuit Names, fixed routing channel width,
alu4.blif, 120
apex2.blif, 120
apex4.blif, 120
bigkey.blif, 120
clma.blif, 120
des.blif, 120
diffeq.blif, 120
dsip.blif, 120
elliptic.blif, 120
ex1010.blif, 120
ex5p.blif, 120
frisc.blif, 120
mcnc_big20.txt
misex3.blif, 120
pdc.blif, 120
s298.blif, 30
s38417.blif, 120
s38584.1.blif, 120
seq.blif, 120
spla.blif, 120
tseng.blif, 120

View File

@ -0,0 +1,802 @@
// Benchmark "TOP" written by ABC on Mon Feb 4 10:08:03 2019
module alu4 (
i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_, i_9_, i_10_,
i_11_, i_12_, i_13_,
o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_ );
input i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_, i_9_,
i_10_, i_11_, i_12_, i_13_;
output o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_;
wire 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, 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, n367, n368, n369, n370, n371, n372, n373, n374, n375,
n376, n377, n378, n379, n380, n381, n382, n383, n384, n385, n386, n387,
n388, n389, n390, n391, n392, n393, n394, n395, n396, n397, n398, n399,
n400, n401, n402, n403, n404, n405, n406, n407, n408, n409, n410, n411,
n412, n413, n414, n415, n416, n417, n418, n419, n420, n421, n422, n423,
n424, n425, n426, n427, n428, n429, n430, n431, n432, n433, n434, n435,
n436, n437, n438, n439, n440, n441, n442, n443, n444, n445, n446, n447,
n448, n449, n450, n451, n452, n453, n454, n455, n456, n457, n458, n459,
n460, n461, n462, n463, n464, n465, n466, n467, n468, n469, n470, n471,
n472, n473, n474, n475, n476, n477, n478, n479, n480, n481, n482, n483,
n484, n485, n486, n487, n488, n489, n490, n491, n492, n493, n494, n495,
n496, n497, n498, n499, n500, n501, n502, n503, n504, n505, n506, n507,
n508, n509, n510, n511, n512, n513, n514, n515, n516, n517, n518, n519,
n520, n521, n522, n523, n524, n525, n526, n527, n528, n529, n530, n531,
n532, n533, n534, n535, n536, n537, n538, n539, n540, n541, n542, n543,
n544, n545, n546, n547, n548, n549, n550, n551, n552, n553, n554, n555,
n556, n557, n558, n559, n560, n561, n562, n563, n564, n565, n566, n567,
n568, n569, n570, n571, n572, n573, n574, n575, n576, n577, n578, n579,
n580, n581, n582, n583, n584, n585, n586, n587, n588, n589, n590, n591,
n592, n593, n594, n595, n596, n597, n598, n599, n600, n601, n602, n603,
n604, n605, n606, n607, n608, n609, n610, n611, n612, n613, n614, n615,
n616, n617, n618, n619, n620, n621, n622, n623, n624, n625, n626, n627,
n628, n629, n630, n631, n632, n633, n634, n635, n636, n637, n638, n639,
n640, n641, n642, n643, n644, n645, n646, n647, n648, n649, n650, n651,
n652, n653, n654, n655, n656, n657, n658, n659, n660, n661, n662, n663,
n664, n665, n666, n667, n668, n669, n670, n671, n672, n673, n674, n675,
n676, n677, n678, n679, n680, n681, n682, n683, n684, n685, n686, n687,
n688, n689, n690, n691, n692, n693, n694, n695, n696, n697, n698, n699,
n700, n701, n702, n703, n704, n705, n706, n707, n708, n709, n710, n711,
n712, n713, n714, n715, n716, n717, n718, n719, n720, n721, n722, n723,
n724, n725, n726, n727, n728, n729, n730, n731, n732, n733, n734, n735,
n736, n737, n738, n739, n740, n741, n742, n743, n744, n745, n746, n747,
n748, n749, n750, n751;
assign o_0_ = ~n42;
assign o_1_ = ~n509;
assign o_2_ = ~n502;
assign o_3_ = ~n488;
assign o_4_ = ~n41;
assign o_5_ = ~n659 | ~n662 | n40 | ~n658 | n38 | n39 | n36 | n37;
assign o_6_ = ~n35;
assign o_7_ = ~n636 | ~n637 | n34 | ~n576 | n32 | n33 | n30 | n31;
assign n30 = ~i_9_ & (~n163 | n165 | n168);
assign n31 = i_9_ & n65 & n419;
assign n32 = ~i_5_ & (~n625 | (~n238 & n250));
assign n33 = i_9_ & (n66 | ~n621 | ~n622);
assign n34 = n244 | n246 | n240 | n242 | ~n630 | ~n632 | n248 | n249;
assign n35 = n278 & n279 & (~i_2_ | n277);
assign n36 = i_11_ & (~n650 | (~n266 & n360));
assign n37 = i_2_ & n361 & n272;
assign n38 = ~n71 & ~n532;
assign n39 = ~n562 & (~n648 | (~i_13_ & ~n532));
assign n40 = ~i_4_ & (~n647 | (~n59 & ~n281));
assign n41 = n473 & n472 & n471 & n470 & n469 & ~n465 & ~n459 & ~n461;
assign n42 = ~n46 & n510 & (~i_0_ | n511);
assign n43 = ~i_1_ | ~i_3_;
assign n44 = ~i_5_ | n43;
assign n45 = ~i_8_ & i_10_;
assign n46 = i_3_ & (n45 | ~n435);
assign n47 = ~n67 & (~i_6_ | ~i_10_);
assign n48 = (n521 | n52) & (n56 | n120);
assign n49 = i_1_ | n445;
assign n50 = i_11_ | n116;
assign n51 = n48 & (n49 | n50);
assign n52 = i_12_ | n116;
assign n53 = i_0_ | n225;
assign n54 = (i_11_ | n53) & (n49 | n52);
assign n55 = ~i_6_ | i_7_;
assign n56 = i_0_ | n212;
assign n57 = ~i_2_ | i_0_ | i_1_;
assign n58 = (i_6_ | n57) & (n55 | n56);
assign n59 = ~i_3_ | n225;
assign n60 = ~i_3_ | n445;
assign n61 = (~i_6_ | n60) & (~i_5_ | n59);
assign n62 = i_0_ | n63;
assign n63 = i_3_ | i_2_;
assign n64 = n62 & (~i_5_ | n63);
assign n65 = ~i_12_ & i_13_;
assign n66 = n65 & (~n613 | (i_8_ & ~n379));
assign n67 = i_6_ & n519;
assign n68 = ~n158 & (~n615 | (n67 & ~n400));
assign n69 = (i_7_ | n200) & (i_6_ | n62);
assign n70 = n69 & (i_8_ | n56);
assign n71 = ~i_12_ | n116;
assign n72 = (~i_1_ | n71) & (~i_6_ | ~n348);
assign n73 = ~i_1_ & i_6_;
assign n74 = (~i_0_ | n73) & (~i_1_ | i_5_);
assign n75 = ~n304 & ~i_9_ & ~n77;
assign n76 = i_3_ & (n75 | (~n71 & ~n98));
assign n77 = ~i_11_ | n116;
assign n78 = i_8_ | i_6_;
assign n79 = n77 | n78 | ~i_2_ | i_9_;
assign n80 = ~i_0_ | n63;
assign n81 = ~i_0_ | n195;
assign n82 = (i_7_ | n81) & (i_6_ | n80);
assign n83 = i_0_ & (n76 | ~n79 | ~n627);
assign n84 = i_3_ | ~i_11_ | n56 | ~n348;
assign n85 = n116 | n400 | ~i_3_ | i_9_;
assign n86 = n178 | ~i_5_ | n72;
assign n87 = n516 | n177 | ~n338;
assign n88 = i_9_ | n74 | n522 | n77;
assign n89 = n88 & n87 & n86 & n85 & ~n83 & n84;
assign n90 = (n99 | n157) & (n134 | n521);
assign n91 = ~i_6_ | n522;
assign n92 = n90 & (n91 | n49);
assign n93 = (~n102 | n521) & (~n67 | n157);
assign n94 = (n518 | n49) & (n520 | n400);
assign n95 = n93 & n94;
assign n96 = (~n103 | n134) & (n53 | n107);
assign n97 = n96 & (n57 | n91);
assign n98 = ~i_6_ | n272;
assign n99 = i_8_ | ~i_6_ | ~i_7_;
assign n100 = n98 & n97 & (n99 | n56);
assign n101 = i_5_ & n365;
assign n102 = ~i_6_ & n519;
assign n103 = ~i_2_ & ~i_0_ & i_1_;
assign n104 = n101 & (~n607 | (n102 & n103));
assign n105 = i_11_ | ~n166;
assign n106 = i_10_ | n304;
assign n107 = i_6_ | n522;
assign n108 = (n107 | n50) & (n105 | n106);
assign n109 = i_12_ | n113;
assign n110 = i_11_ | n113;
assign n111 = (~n67 | n109) & (n99 | n110);
assign n112 = i_11_ | i_12_;
assign n113 = i_9_ | i_13_;
assign n114 = i_3_ | i_10_ | n112 | n113;
assign n115 = i_5_ | n312;
assign n116 = i_10_ | i_13_;
assign n117 = (~i_10_ | n115) & (n116 | ~n164);
assign n118 = i_13_ & (~n600 | (~n547 & ~n548));
assign n119 = i_5_ | n515;
assign n120 = i_12_ | ~n338;
assign n121 = (n119 | n120) & (~n164 | ~n239);
assign n122 = n65 & (~n599 | (~i_3_ & ~i_11_));
assign n123 = n555 | n518 | n554;
assign n124 = n553 | n134 | n552;
assign n125 = n522 | n198 | ~n247;
assign n126 = ~n348 | ~n67 | ~n101;
assign n127 = n449 | n107 | ~n338;
assign n128 = n524 | n99 | ~n319;
assign n129 = (n544 | n546) & (n121 | n520);
assign n130 = n129 & n128 & n127 & n126 & n125 & n124 & ~n122 & n123;
assign n131 = (n107 | ~n419) & (n91 | ~n402);
assign n132 = (n171 | n151) & (n150 | n551);
assign n133 = n597 & n598 & (n545 | n550);
assign n134 = ~i_7_ | n78;
assign n135 = ~n101 | ~n239;
assign n136 = n132 & n133 & (n134 | n135);
assign n137 = i_4_ | ~i_0_ | ~i_1_;
assign n138 = i_4_ | n445;
assign n139 = (~i_6_ | n138) & (~i_7_ | n137);
assign n140 = ~n524 & ~n220 & i_2_ & ~i_8_;
assign n141 = n546 | n549;
assign n142 = n162 | n107 | n158;
assign n143 = n555 | ~n102 | n554;
assign n144 = n553 | n91 | n552;
assign n145 = (n194 | n151) & (n198 | n551);
assign n146 = (n134 | n543) & (n547 | n550);
assign n147 = n146 & n145 & n144 & n143 & n141 & n142;
assign n148 = (n171 | n551) & (n99 | n543);
assign n149 = n595 & n596 & (n545 | n549);
assign n150 = ~i_5_ | n201;
assign n151 = ~n65 | ~n264;
assign n152 = n148 & n149 & (n150 | n151);
assign n153 = (n99 | ~n402) & (n91 | ~n419);
assign n154 = (n544 | n547) & (n172 | n198);
assign n155 = n593 & n594 & (n542 | n546);
assign n156 = n154 & n155 & (n91 | n135);
assign n157 = ~i_0_ | n212;
assign n158 = ~i_5_ | n312;
assign n159 = n158 | n157 | n134;
assign n160 = n115 | n99 | ~n103;
assign n161 = i_2_ | n312;
assign n162 = ~i_10_ | ~n319;
assign n163 = n161 | n162 | ~i_5_ | n91;
assign n164 = ~i_5_ & i_3_ & i_4_;
assign n165 = n164 & ~n77 & i_1_ & ~i_7_;
assign n166 = ~i_12_ & ~i_13_;
assign n167 = i_10_ & i_11_;
assign n168 = n166 & n167 & (~n159 | ~n160);
assign n169 = (n542 | n545) & (n541 | n150);
assign n170 = (n107 | n135) & (~n446 | n544);
assign n171 = i_3_ | n539;
assign n172 = ~n65 | ~n437;
assign n173 = n169 & n170 & (n171 | n172);
assign n174 = (~n446 | n542) & (n171 | n541);
assign n175 = (n544 | n545) & (n91 | n543);
assign n176 = n174 & n175 & (n172 | n150);
assign n177 = i_10_ | n522;
assign n178 = ~i_8_ | n272;
assign n179 = n177 & n178;
assign n180 = (~n460 | n591) & (n179 | ~n463);
assign n181 = n592 & (n533 | n56);
assign n182 = n106 & n98;
assign n183 = n180 & n181 & (n182 | ~n385);
assign n184 = (~n340 | n535) & (n106 | n449);
assign n185 = i_8_ | n534;
assign n186 = ~i_4_ | n212;
assign n187 = n184 & (n185 | n186);
assign n188 = (~n536 | n537) & (n335 | n538);
assign n189 = (n186 | n474) & (n98 | ~n101);
assign n190 = ~i_5_ | n272;
assign n191 = n188 & n189 & (n190 | ~n340);
assign n192 = (n518 | n521) & (n520 | n157);
assign n193 = n192 & (n49 | ~n102);
assign n194 = i_3_ | n214;
assign n195 = i_1_ | i_3_;
assign n196 = n194 & (~i_5_ | n195);
assign n197 = ~i_6_ | i_0_ | i_3_;
assign n198 = i_3_ | n516;
assign n199 = n198 & (i_5_ | n195);
assign n200 = i_0_ | n195;
assign n201 = i_3_ | i_6_;
assign n202 = n200 & n199 & (i_0_ | n201);
assign n203 = ~i_6_ | ~i_0_ | ~i_3_;
assign n204 = i_1_ & ~i_6_;
assign n205 = (i_2_ | ~i_6_) & (~i_7_ | n204);
assign n206 = n517 | i_6_ | n749;
assign n207 = n517 | i_1_ | i_7_;
assign n208 = i_11_ | n435;
assign n209 = n206 & n207 & (n205 | n208);
assign n210 = i_5_ | n63;
assign n211 = i_2_ | n516;
assign n212 = i_1_ | i_2_;
assign n213 = n211 & (i_5_ | n212);
assign n214 = ~i_5_ | ~i_6_;
assign n215 = (~i_5_ | n212) & (i_2_ | n214);
assign n216 = (~i_5_ | n225) & (~i_2_ | n214);
assign n217 = ~i_6_ | n445;
assign n218 = n216 & n217;
assign n219 = ~i_7_ | ~i_1_ | ~i_5_;
assign n220 = ~i_1_ & ~i_6_;
assign n221 = n219 & (~i_0_ | ~i_7_ | n220);
assign n222 = i_10_ & ~n435 & (~n218 | ~n221);
assign n223 = ~i_2_ | n516;
assign n224 = i_6_ | n445;
assign n225 = ~i_1_ | ~i_2_;
assign n226 = n223 & n224 & (i_5_ | n225);
assign n227 = n226 & (i_7_ | n74);
assign n228 = (~i_0_ | i_6_) & (~i_1_ | i_5_);
assign n229 = (i_6_ | n138) & (i_7_ | n137);
assign n230 = n73 | n119 | ~i_2_ | ~i_8_;
assign n231 = n230 & (n229 | ~n475);
assign n232 = (n53 | ~n67) & (~n103 | n518);
assign n233 = n232 & (n57 | ~n102);
assign n234 = ~i_4_ | n225;
assign n235 = ~i_4_ | n557;
assign n236 = (i_6_ | n235) & (i_8_ | n234);
assign n237 = i_4_ & (~n623 | (~i_1_ & ~n177));
assign n238 = ~n237 & (i_6_ | i_10_ | ~n536);
assign n239 = ~i_9_ & n338;
assign n240 = n239 & n164 & ~n233;
assign n241 = n406 & ~i_10_ & ~i_13_;
assign n242 = ~n119 & (~n580 | (~n92 & n241));
assign n243 = ~i_3_ & ~i_8_;
assign n244 = ~n525 & (n140 | (~n139 & n243));
assign n245 = n383 & ~i_9_ & ~i_13_;
assign n246 = ~n524 & (~n582 | (~n193 & n245));
assign n247 = ~i_11_ & i_13_;
assign n248 = n247 & (~n584 | (~n223 & ~n528));
assign n249 = n65 & (~n586 | ~n588 | ~n590);
assign n250 = n338 & i_12_;
assign n251 = n250 & (~n183 | ~n187 | ~n191);
assign n252 = ~n71 & (~n609 | ~n610 | ~n611);
assign n253 = ~n247 & (i_4_ | ~i_8_ | ~n406);
assign n254 = (~i_3_ | n208) & (~n338 | n533);
assign n255 = n253 & n254 & (n120 | ~n475);
assign n256 = ~i_7_ | i_10_;
assign n257 = i_4_ | ~n383;
assign n258 = (~i_7_ | n257) & (n256 | ~n318);
assign n259 = i_7_ & n45;
assign n260 = (i_8_ | n258) & (~n259 | n559);
assign n261 = n260 & ~n731 & (i_7_ | n255);
assign n262 = ~i_7_ | ~i_9_;
assign n263 = n262 & (i_7_ | ~i_10_);
assign n264 = i_10_ & ~i_7_ & i_8_;
assign n265 = i_12_ & (n264 | ~n548);
assign n266 = ~i_10_ | n522;
assign n267 = i_8_ | n262;
assign n268 = ~n265 & (~i_11_ | (n266 & n267));
assign n269 = (n110 | ~n243) & (n109 | ~n475);
assign n270 = ~i_4_ | n116;
assign n271 = n270 & (~i_8_ | n52);
assign n272 = ~i_7_ | i_9_;
assign n273 = ~i_4_ | n272;
assign n274 = (i_7_ | n271) & (i_13_ | n273);
assign n275 = n282 & (i_4_ | n268);
assign n276 = n556 & n638 & (i_3_ | n274);
assign n277 = n275 & n276 & (~i_13_ | n263);
assign n278 = ~n750 & (n548 | n559);
assign n279 = n644 & n645 & (i_2_ | n261);
assign n280 = ~i_6_ | ~i_9_;
assign n281 = n280 & (i_6_ | ~i_10_);
assign n282 = n332 | n116;
assign n283 = (n523 & (~i_7_ | n733)) | (i_7_ & n733);
assign n284 = i_2_ | i_13_;
assign n285 = n282 & (n283 | n284);
assign n286 = i_10_ | i_7_;
assign n287 = i_11_ | n286;
assign n288 = i_11_ | i_13_;
assign n289 = (~n166 | n287) & (n177 | n288);
assign n290 = i_8_ | n272;
assign n291 = (n288 | n290) & (~n166 | n178);
assign n292 = (n289 & (~i_6_ | n291)) | (i_6_ & n291);
assign n293 = (n523 & (~i_8_ | n733)) | (i_8_ & n733);
assign n294 = n292 & (i_13_ | n293);
assign n295 = (~i_7_ & n566) | (n565 & (i_7_ | n566));
assign n296 = i_7_ | n435;
assign n297 = n295 & (~i_6_ | ~i_11_ | n296);
assign n298 = n287 & (i_12_ | n256);
assign n299 = ~i_2_ & ~n751 & (i_6_ | ~n298);
assign n300 = ~n299 & (~i_4_ | ~n578);
assign n301 = n591 | i_2_ | ~i_4_;
assign n302 = n300 & n301 & (n182 | ~n365);
assign n303 = ~i_7_ | n280;
assign n304 = i_6_ | i_7_;
assign n305 = n303 & (~i_10_ | (~i_9_ & n304));
assign n306 = (i_6_ & ~n540) | (~n266 & (~i_6_ | ~n540));
assign n307 = ~i_4_ & (~n577 | (i_11_ & n306));
assign n308 = (n294 & (~i_3_ | n297)) | (i_3_ & n297);
assign n309 = (~i_13_ & n302) | (n281 & (i_13_ | n302));
assign n310 = ~n307 & n656 & (~i_2_ | n305);
assign n311 = n310 & n309 & n308 & n285;
assign n312 = ~i_3_ | i_4_;
assign n313 = (n312 | ~n406) & (n284 | ~n383);
assign n314 = (~i_4_ | ~n338) & (i_3_ | n120);
assign n315 = ~n247 & (~i_3_ | ~n406 | n548);
assign n316 = (~i_2_ | n530) & (~i_7_ | n313);
assign n317 = n315 & n316 & (n314 | n178);
assign n318 = i_4_ & n348;
assign n319 = ~i_11_ & n348;
assign n320 = ~n177 & (n318 | (~i_3_ & n319));
assign n321 = ~n402 | ~i_2_ | i_7_;
assign n322 = ~n319 | n563;
assign n323 = ~n383 | ~i_3_ | n266;
assign n324 = n257 | ~i_2_ | i_8_;
assign n325 = ~n65 & (i_7_ | n312 | ~n383);
assign n326 = n325 & n324 & n323 & n322 & ~n320 & n321;
assign n327 = i_11_ | ~n496 | n558 | ~n563;
assign n328 = (n317 & (~i_6_ | n326)) | (i_6_ & n326);
assign n329 = n327 & n328 & (n91 | n257);
assign n330 = ~i_11_ | n514;
assign n331 = ~n166 | ~n475;
assign n332 = ~i_4_ | i_9_;
assign n333 = (n332 | n77) & (n330 | n331);
assign n334 = ~n517 & i_3_ & i_12_;
assign n335 = i_1_ | n63;
assign n336 = ~i_11_ | ~n166;
assign n337 = (n335 | n336) & (n186 | ~n239);
assign n338 = i_11_ & ~i_13_;
assign n339 = i_4_ & (~n652 | (~n335 & n338));
assign n340 = ~i_1_ & n365;
assign n341 = i_7_ & (n334 | (n340 & n239));
assign n342 = n734 & (~i_8_ | n337);
assign n343 = (n208 | n561) & (n404 | n356);
assign n344 = (n517 | n557) & (~n45 | n59);
assign n345 = n344 & n343 & n342 & ~n341 & n333 & ~n339;
assign n346 = ~i_2_ | i_12_;
assign n347 = (~i_8_ | n59) & (n346 | ~n391);
assign n348 = i_12_ & ~i_13_;
assign n349 = n348 & (~n654 | (i_4_ & ~n335));
assign n350 = n655 & (i_8_ | ~n402 | n561);
assign n351 = ~n349 & n350 & (~i_9_ | n347);
assign n352 = ~i_8_ | i_9_;
assign n353 = (~n263 | ~n340) & (n186 | n352);
assign n354 = i_10_ | n78;
assign n355 = ~i_6_ | n352;
assign n356 = ~i_1_ | n312;
assign n357 = (n303 | n356) & (~n259 | ~n360);
assign n358 = ~n573 & (~i_4_ | i_13_ | ~n496);
assign n359 = ~n512 & (i_6_ | i_11_);
assign n360 = i_3_ & n204;
assign n361 = ~i_6_ & n419;
assign n362 = ~i_9_ | ~i_11_;
assign n363 = ~i_12_ | n362;
assign n364 = ~i_4_ | n113;
assign n365 = ~i_3_ & i_4_;
assign n366 = ~i_9_ | ~i_12_;
assign n367 = n364 & (n365 | n366);
assign n368 = (~i_9_ & n572) | (~i_13_ & (i_9_ | n572));
assign n369 = i_3_ | n111;
assign n370 = ~n166 | i_2_ | n98;
assign n371 = (~i_1_ | n280) & (n363 | ~n391);
assign n372 = (~n67 | n367) & (i_4_ | n363);
assign n373 = ~n737 & n372 & n371 & n370 & n368 & n369;
assign n374 = ~i_4_ & (~n564 | (~n107 & n167));
assign n375 = ~n736 & (~i_10_ | (~i_13_ & ~n204));
assign n376 = ~n374 & n687 & (n107 | n270);
assign n377 = n375 & n376 & (i_3_ | n108);
assign n378 = i_7_ | n516;
assign n379 = ~i_7_ | n214;
assign n380 = (n113 | n379) & (n378 | n116);
assign n381 = ~i_2_ & (~n686 | (~n270 & ~n440));
assign n382 = ~n53 & i_3_ & ~i_8_;
assign n383 = i_11_ & ~i_12_;
assign n384 = n383 & i_10_ & ~i_0_ & i_2_;
assign n385 = ~i_0_ & n365;
assign n386 = ~i_6_ & (n384 | (~n71 & n385));
assign n387 = (n56 | ~n319) & (n53 | ~n402);
assign n388 = i_0_ | n43;
assign n389 = ~n386 & n387 & (n257 | n388);
assign n390 = (~i_7_ | n81) & (~i_6_ | n80);
assign n391 = i_8_ & i_3_;
assign n392 = ~n400 & (i_7_ | n391);
assign n393 = (i_3_ & n553) | (~n241 & (~i_3_ | n553));
assign n394 = n257 & n393 & (~i_4_ | n71);
assign n395 = ~i_12_ | n572;
assign n396 = ~n65 & (i_2_ | n106 | ~n319);
assign n397 = n395 & n396 & (n394 | n107);
assign n398 = ~i_7_ | n362;
assign n399 = (i_2_ | n355) & (n204 | n178);
assign n400 = ~i_1_ | n445;
assign n401 = (~i_8_ | n400) & (~i_6_ | n60);
assign n402 = i_10_ & ~i_12_;
assign n403 = n402 & (n382 | (~i_0_ & n204));
assign n404 = i_7_ | ~n167;
assign n405 = n167 & (~n718 | (~i_8_ & ~n400));
assign n406 = ~i_11_ & i_12_;
assign n407 = n406 & (~n674 | (i_8_ & ~n53));
assign n408 = ~i_0_ | n43;
assign n409 = ~n405 & ~n407 & (n404 | n408);
assign n410 = ~n247 & (~i_1_ | i_11_ | n280);
assign n411 = n672 & (~n67 | (~n423 & n673));
assign n412 = n410 & n411 & (~n73 | n336);
assign n413 = ~n385 | ~i_6_ | ~n239;
assign n414 = ~n166 | ~i_11_ | n56;
assign n415 = n413 & n414 & (n200 | ~n423);
assign n416 = n238 & (~i_4_ | i_6_ | n177);
assign n417 = ~i_7_ & n419;
assign n418 = n417 & i_2_ & i_12_;
assign n419 = i_10_ & ~i_11_;
assign n420 = n116 | ~i_4_ | i_8_;
assign n421 = n420 & (n50 | ~n243);
assign n422 = ~n53 & (~n530 | (i_3_ & ~n208));
assign n423 = i_4_ & n239;
assign n424 = i_6_ & (n418 | (~n62 & n423));
assign n425 = (n517 | n59) & (i_4_ | n409);
assign n426 = (~i_7_ | n415) & (i_0_ | n412);
assign n427 = (n82 | n271) & (~n338 | n416);
assign n428 = (~i_1_ | ~n361) & (~n423 | n671);
assign n429 = (n157 | n421) & (n400 | ~n670);
assign n430 = ~n422 & (n56 | n120 | ~n475);
assign n431 = n430 & n429 & n428 & n427 & n426 & n425 & n333 & ~n424;
assign n432 = n183 & (~i_4_ | i_10_ | n70);
assign n433 = i_7_ | i_9_ | i_11_;
assign n434 = n191 & (n215 | n433);
assign n435 = ~i_8_ | ~i_9_;
assign n436 = i_5_ & ~n558 & (~n540 | ~n568);
assign n437 = i_10_ & n519;
assign n438 = ~i_4_ & ~n539 & (n437 | ~n568);
assign n439 = ~i_8_ | n214;
assign n440 = i_8_ | n516;
assign n441 = (n366 | n439) & (~n167 | n440);
assign n442 = ~i_12_ & (~n158 | n417 | ~n530);
assign n443 = n435 | ~i_3_ | n112;
assign n444 = ~n442 & n443 & (i_11_ | n115);
assign n445 = ~i_0_ | ~i_2_;
assign n446 = ~i_6_ & i_3_ & i_5_;
assign n447 = n383 & (~n684 | (~i_7_ & n446));
assign n448 = n406 & (~n685 | (i_7_ & ~n545));
assign n449 = i_5_ | ~n365;
assign n450 = (~n338 | n449) & (~n101 | ~n348);
assign n451 = i_5_ | n522;
assign n452 = (n80 | n440) & (n81 | n451);
assign n453 = ~i_5_ | ~n519;
assign n454 = (n453 | n81) & (n439 | n80);
assign n455 = n137 & n408;
assign n456 = ~i_0_ | n312;
assign n457 = (n379 | n456) & (n455 | n453);
assign n458 = ~i_5_ & i_0_ & i_3_;
assign n459 = n167 & (~n663 | (~n107 & n458));
assign n460 = i_4_ & ~i_0_ & ~i_2_;
assign n461 = ~n569 & (~n664 | (n239 & n460));
assign n462 = ~i_5_ & n519;
assign n463 = i_4_ & ~i_0_ & ~i_1_;
assign n464 = n462 & (~n665 | (n239 & n463));
assign n465 = ~n570 & (~n666 | (~n71 & n463));
assign n466 = ~n571 & (~n667 | (~n71 & n460));
assign n467 = n406 & (n438 | (n259 & ~n545));
assign n468 = n383 & (n436 | (~n296 & n446));
assign n469 = (n450 | n56) & (n441 | n60);
assign n470 = ~n464 & (~i_9_ | n158 | n400);
assign n471 = n702 & n701 & (n452 | n50);
assign n472 = n699 & n698 & (n457 | n366);
assign n473 = ~n740 & ~n739 & n709 & n707 & n706 & n705 & n703 & n704;
assign n474 = ~i_5_ | n352;
assign n475 = ~i_3_ & i_8_;
assign n476 = ~n56 & (i_7_ | n475);
assign n477 = (i_1_ | n537) & (n589 | n178);
assign n478 = ~n476 & n715 & (n335 | n474);
assign n479 = n477 & n478 & (i_0_ | ~i_5_);
assign n480 = ~n56 & (~i_7_ | n243);
assign n481 = n300 & (i_1_ | n359);
assign n482 = n746 & (i_5_ | n416);
assign n483 = n187 & (i_3_ | n293);
assign n484 = (n56 | ~n365) & (i_12_ | n479);
assign n485 = (n213 | n298) & (n215 | n574);
assign n486 = n716 & (i_1_ | n359 | n534);
assign n487 = n717 & (i_11_ | (n714 & n711));
assign n488 = n487 & n486 & n485 & n484 & n483 & n482 & n432 & n434;
assign n489 = ~i_7_ | n366;
assign n490 = ~i_10_ | ~i_12_;
assign n491 = n489 & ~n496 & (i_7_ | n490);
assign n492 = (n747 & (~i_5_ | n748)) | (i_5_ & n748);
assign n493 = n492 & (~i_0_ | n281);
assign n494 = i_8_ | ~i_11_;
assign n495 = ~n496 & n494 & ~i_3_ & n263;
assign n496 = i_8_ & i_12_;
assign n497 = n496 & (~n221 | ~n379);
assign n498 = (n218 | n491) & (~i_1_ | n493);
assign n499 = n726 & (~i_12_ | (n61 & n723));
assign n500 = n725 & (~i_11_ | (n719 & n722));
assign n501 = n724 & (n494 | (n227 & n378));
assign n502 = n501 & n500 & n498 & n499;
assign n503 = i_12_ | ~n475;
assign n504 = ~n46 & n503 & (i_11_ | ~n243);
assign n505 = (~n243 | ~n338) & (n113 | ~n391);
assign n506 = (~n243 | ~n247) & (~n65 | ~n475);
assign n507 = (n504 & (~i_4_ | n505)) | (i_4_ & n505);
assign n508 = n727 & n728 & (~i_13_ | ~n46);
assign n509 = n508 & n506 & n507;
assign n510 = (~i_1_ | n281) & (~i_2_ | n263);
assign n511 = (~i_5_ & ~i_10_) | (~i_9_ & (i_5_ | ~i_10_));
assign n512 = i_6_ & ~i_12_;
assign n513 = i_9_ & (n392 | (n512 & i_1_));
assign n514 = i_9_ | i_10_;
assign n515 = i_3_ | i_4_;
assign n516 = i_5_ | i_6_;
assign n517 = i_8_ | ~n419;
assign n518 = ~i_8_ | n55;
assign n519 = i_8_ & i_7_;
assign n520 = ~i_8_ | n304;
assign n521 = i_2_ | ~i_0_ | ~i_1_;
assign n522 = i_8_ | i_7_;
assign n523 = i_11_ | n514;
assign n524 = ~i_5_ | n515;
assign n525 = ~n348 | n523;
assign n526 = ~i_9_ | ~i_10_;
assign n527 = i_7_ | n526;
assign n528 = ~i_3_ | n526;
assign n529 = ~i_7_ | n526;
assign n530 = i_11_ | n262;
assign n531 = ~i_5_ | ~i_3_ | ~i_4_;
assign n532 = ~i_6_ | n332;
assign n533 = ~i_8_ | n332;
assign n534 = i_5_ | i_10_;
assign n535 = i_7_ | n534;
assign n536 = ~i_2_ & n365;
assign n537 = i_9_ | n214;
assign n538 = ~i_5_ | n332;
assign n539 = i_5_ | ~i_6_;
assign n540 = ~i_9_ | n522;
assign n541 = ~n247 | n540;
assign n542 = ~n65 | ~n259;
assign n543 = ~n239 | n449;
assign n544 = ~n247 | n296;
assign n545 = ~i_3_ | n539;
assign n546 = ~i_3_ | n516;
assign n547 = ~i_3_ | n214;
assign n548 = ~i_7_ | n435;
assign n549 = ~n247 | n548;
assign n550 = ~n65 | n266;
assign n551 = ~n247 | n267;
assign n552 = i_13_ | n115;
assign n553 = ~i_11_ | ~n402;
assign n554 = i_13_ | n158;
assign n555 = ~i_9_ | ~n406;
assign n556 = n114 & n528;
assign n557 = ~i_2_ | ~i_3_;
assign n558 = i_4_ | i_6_;
assign n559 = ~i_3_ | i_12_;
assign n560 = i_4_ | n225;
assign n561 = i_1_ | n557;
assign n562 = ~i_1_ | n63;
assign n563 = i_7_ | i_2_;
assign n564 = ~i_11_ | n490;
assign n565 = ~i_9_ | n490;
assign n566 = ~i_9_ | ~n167;
assign n567 = ~i_8_ | n286;
assign n568 = i_0_ | n557;
assign n569 = ~i_8_ | n539;
assign n570 = ~i_5_ | n522;
assign n571 = ~i_5_ | n78;
assign n572 = ~n220 | n288;
assign n573 = n243 & n319;
assign n574 = i_12_ | n272;
assign n575 = (~i_5_ & n419) | (n402 & (i_5_ | n419));
assign n576 = (~i_4_ & n729) | (n89 & (i_4_ | n729));
assign n577 = (~i_6_ & n564) | (n363 & (i_6_ | n564));
assign n578 = (i_6_ & ~n178) | (~n177 & (~i_6_ | ~n178));
assign n579 = i_10_ | i_13_ | ~n383 | n520;
assign n580 = n579 & (n233 | ~n245);
assign n581 = i_9_ | i_13_ | n99 | ~n406;
assign n582 = n581 & (n97 | ~n241);
assign n583 = n527 | ~i_3_ | n228;
assign n584 = n583 & (i_8_ | n227 | n526);
assign n585 = (n213 | n517) & (n210 | ~n361);
assign n586 = ~n222 & n585 & (n208 | n215);
assign n587 = n547 & n408 & n44 & n203;
assign n588 = (n587 | n529) & (i_0_ | n209);
assign n589 = n196 & n200 & n197;
assign n590 = (n530 | n589) & (n202 | ~n417);
assign n591 = n355 & n354;
assign n592 = (n273 | n200) & (n62 | n532);
assign n593 = n541 | n194;
assign n594 = n113 | n153 | n158;
assign n595 = ~n402 | n107 | n158;
assign n596 = ~n446 | n550;
assign n597 = ~n446 | n549;
assign n598 = n113 | n131 | n158;
assign n599 = (~n259 | n547) & (n194 | ~n519);
assign n600 = n528 & (n546 | n266);
assign n601 = n531 | ~n67 | n113;
assign n602 = n601 & (n117 | n107);
assign n603 = (n99 | n135) & (n198 | n151);
assign n604 = n602 & n603 & (n194 | n551);
assign n605 = (n108 | n119) & (n111 | n524);
assign n606 = ~n118 & n605 & (i_4_ | n556);
assign n607 = (n518 | n57) & (n53 | n520);
assign n608 = (n95 | n449) & (n92 | ~n164);
assign n609 = ~n104 & n608 & (n100 | n531);
assign n610 = (n537 | n235) & (n474 | n234);
assign n611 = (n273 | n408) & (n538 | n59);
assign n612 = n64 | ~i_6_ | i_11_;
assign n613 = n612 & (~i_10_ | n61);
assign n614 = i_10_ | ~n103 | ~n319 | n520;
assign n615 = n614 & (n58 | n162);
assign n616 = i_10_ | n157 | ~n319 | n518;
assign n617 = n616 & (n47 | n57 | n120);
assign n618 = n617 & (n520 | n521 | n50);
assign n619 = (n54 | ~n67) & (n51 | ~n102);
assign n620 = n161 | n534 | ~n102 | n120;
assign n621 = n620 & (i_4_ | n59 | ~n575);
assign n622 = ~n68 & (n115 | (n618 & n619));
assign n623 = (i_2_ | n354) & (i_10_ | n335);
assign n624 = i_11_ | n266 | n59 | n558;
assign n625 = n624 & (i_9_ | n236 | n77);
assign n626 = n355 | ~i_2_ | n71;
assign n627 = n626 & (n220 | n71 | n178);
assign n628 = n332 | i_10_ | ~n250;
assign n629 = n628 & (~n166 | n231 | n330);
assign n630 = n629 & (~i_13_ | n378 | n517);
assign n631 = n531 | n193 | ~n239;
assign n632 = ~n251 & n631 & (~n103 | n176);
assign n633 = (n156 | n521) & (n173 | n157);
assign n634 = n633 & (n152 | n53);
assign n635 = (n136 | n49) & (n147 | n57);
assign n636 = n635 & n634 & (n130 | n56);
assign n637 = ~n252 & (n400 | (n604 & n606));
assign n638 = n730 & (~i_7_ | n269);
assign n639 = ~n435 | ~i_4_ | n77;
assign n640 = n639 & (i_8_ | i_13_ | n235);
assign n641 = (i_11_ | n161) & (~n338 | ~n536);
assign n642 = n235 | ~i_8_ | i_13_;
assign n643 = n642 & (~n348 | (n533 & ~n536));
assign n644 = n312 | ~i_2_ | n263;
assign n645 = ~n732 & (i_7_ | (n640 & n641));
assign n646 = ~n563 | ~n361 | ~n496;
assign n647 = n646 & (n359 | n561);
assign n648 = (n288 | n354) & (~n166 | n355);
assign n649 = ~i_8_ | i_3_ | i_6_ | n749 | i_10_ | ~n166;
assign n650 = n649 & (~n348 | n353);
assign n651 = i_10_ | i_13_ | n749 | n494;
assign n652 = n651 & (n116 | n562);
assign n653 = i_10_ | i_8_;
assign n654 = (n286 | ~n340) & (n186 | n653);
assign n655 = n335 | i_8_ | ~n319;
assign n656 = n365 | n548 | ~i_6_ | ~i_12_;
assign n657 = ~i_3_ | ~i_9_ | ~n383 | n518;
assign n658 = n657 & (n281 | ~n496 | n560);
assign n659 = (n358 | n98) & (n346 | n303);
assign n660 = (n345 & (~i_6_ | n351)) | (i_6_ & n351);
assign n661 = (~i_1_ & n329) | (n311 & (i_1_ | n329));
assign n662 = n660 & n661 & (~i_12_ | n357);
assign n663 = (n378 | n456) & (n455 | n451);
assign n664 = (n555 | n568) & (n62 | ~n245);
assign n665 = (n388 | n555) & (n200 | ~n245);
assign n666 = (n388 | n553) & (n200 | ~n241);
assign n667 = (n553 | n568) & (n62 | ~n241);
assign n668 = (n288 | n535) & (~n166 | n190);
assign n669 = (n116 | n449) & (~n101 | n113);
assign n670 = i_10_ & (~i_7_ | (i_3_ & ~i_8_));
assign n671 = ~i_8_ | n56;
assign n672 = n741 & (~i_2_ | n303 | ~n406);
assign n673 = (i_3_ & n555) | (~n245 & (~i_3_ | n555));
assign n674 = (~i_7_ | n388) & (i_0_ | ~n67);
assign n675 = ~n383 | i_8_ | n53;
assign n676 = n675 & (n401 | n366);
assign n677 = n157 | ~i_8_ | n113;
assign n678 = n677 & (~n348 | n399);
assign n679 = n346 | i_6_ | n398;
assign n680 = n679 & (n390 | n364);
assign n681 = (~n243 | n525) & (n157 | n269);
assign n682 = n680 & n681 & (n56 | ~n573);
assign n683 = (i_7_ | n389) & (i_0_ | n397);
assign n684 = (~i_2_ | n571) & (~i_1_ | n570);
assign n685 = (~i_2_ | n569) & (~i_1_ | ~n462);
assign n686 = (n364 | n439) & (n105 | n537);
assign n687 = n288 | i_2_ | n106;
assign n688 = (n451 | n270) & (n364 | n453);
assign n689 = n211 | i_10_ | n105;
assign n690 = n689 & (~i_9_ | n536 | n564);
assign n691 = ~n381 & n690 & (~n365 | n380);
assign n692 = i_3_ | i_13_ | n293;
assign n693 = n735 & (~i_6_ | ~i_12_ | n529);
assign n694 = n285 & n692 & (~i_3_ | n693);
assign n695 = (~i_5_ & n377) | (n373 & (i_5_ | n377));
assign n696 = n695 & ~n738 & (~i_1_ | n526);
assign n697 = n564 | i_8_ | ~n458;
assign n698 = n697 & (n213 | n256 | n336);
assign n699 = n400 | ~i_10_ | n115;
assign n700 = n567 | n199 | n120;
assign n701 = n700 & (n454 | n109);
assign n702 = ~n319 | n196 | n290;
assign n703 = ~n466 & (n157 | (n668 & n669));
assign n704 = (n444 | n53) & (n217 | n565);
assign n705 = ~n467 & ~n468 & (n138 | n441);
assign n706 = (~n348 | n434) & (~n250 | n432);
assign n707 = (n538 | n71) & (n566 | n224);
assign n708 = n445 | i_5_ | n512 | n404;
assign n709 = n708 & ~n745 & (i_5_ | n431);
assign n710 = (n589 | n290) & (n202 | n177);
assign n711 = ~n480 & n710 & (n62 | n354);
assign n712 = (n185 | n335) & (n210 | n354);
assign n713 = ~n220 | ~i_5_ | i_9_;
assign n714 = n713 & n712 & (i_0_ | i_5_);
assign n715 = (n202 | n567) & (n64 | n355);
assign n716 = i_10_ | n332;
assign n717 = (i_2_ | n283) & (i_0_ | n481);
assign n718 = i_6_ | n60;
assign n719 = ~i_12_ & n718 & (i_5_ | n59);
assign n720 = n228 | ~i_3_ | i_7_;
assign n721 = n720 & (i_7_ | n408);
assign n722 = n721 & (n546 | (~i_2_ & i_7_));
assign n723 = (~i_7_ | n587) & (~i_2_ | n547);
assign n724 = ~n497 & (n226 | (n398 & n404));
assign n725 = ~i_0_ | n511;
assign n726 = n495 | n400;
assign n727 = ~n435 | ~i_3_ | n270;
assign n728 = ~n365 | ~i_8_ | ~n348;
assign n729 = ~i_5_ | n59 | ~n512 | n548;
assign n730 = ~n243 | i_7_ | n50;
assign n731 = i_7_ & (n573 | n65);
assign n732 = i_7_ & (~n643 | (~i_12_ & ~n161));
assign n733 = i_12_ | n514;
assign n734 = n560 | i_8_ | ~n167;
assign n735 = n527 | i_6_ | ~i_11_;
assign n736 = ~i_10_ & (~n572 | (n73 & n166));
assign n737 = i_2_ & i_12_ & (~n303 | ~n398);
assign n738 = ~i_1_ & (~n688 | (n166 & ~n537));
assign n739 = ~i_0_ & ~i_4_ & (n447 | n448);
assign n740 = i_0_ & (~n691 | ~n694 | ~n696);
assign n741 = i_2_ | n98 | n120;
assign n742 = i_4_ & (~n678 | (~n70 & ~n71));
assign n743 = ~i_4_ & (~n676 | (~n408 & ~n489));
assign n744 = ~n682 | n403 | n513 | n743 | ~n683 | n742;
assign n745 = i_5_ & n744;
assign n746 = n399 | ~i_4_ | ~i_5_;
assign n747 = (i_6_ & n362) | (~n167 & (~i_6_ | n362));
assign n748 = (~i_6_ & n490) | (n366 & (i_6_ | n490));
assign n749 = i_2_ & i_7_;
assign n750 = n417 & n533 & i_3_;
assign n751 = i_6_ & n574 & n433;
endmodule

View File

@ -0,0 +1,802 @@
// Benchmark "TOP" written by ABC on Mon Feb 4 10:08:03 2019
module alu4 (
i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_, i_9_, i_10_,
i_11_, i_12_, i_13_,
o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_ );
input i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_, i_9_,
i_10_, i_11_, i_12_, i_13_;
output o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_;
wire 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, 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, n367, n368, n369, n370, n371, n372, n373, n374, n375,
n376, n377, n378, n379, n380, n381, n382, n383, n384, n385, n386, n387,
n388, n389, n390, n391, n392, n393, n394, n395, n396, n397, n398, n399,
n400, n401, n402, n403, n404, n405, n406, n407, n408, n409, n410, n411,
n412, n413, n414, n415, n416, n417, n418, n419, n420, n421, n422, n423,
n424, n425, n426, n427, n428, n429, n430, n431, n432, n433, n434, n435,
n436, n437, n438, n439, n440, n441, n442, n443, n444, n445, n446, n447,
n448, n449, n450, n451, n452, n453, n454, n455, n456, n457, n458, n459,
n460, n461, n462, n463, n464, n465, n466, n467, n468, n469, n470, n471,
n472, n473, n474, n475, n476, n477, n478, n479, n480, n481, n482, n483,
n484, n485, n486, n487, n488, n489, n490, n491, n492, n493, n494, n495,
n496, n497, n498, n499, n500, n501, n502, n503, n504, n505, n506, n507,
n508, n509, n510, n511, n512, n513, n514, n515, n516, n517, n518, n519,
n520, n521, n522, n523, n524, n525, n526, n527, n528, n529, n530, n531,
n532, n533, n534, n535, n536, n537, n538, n539, n540, n541, n542, n543,
n544, n545, n546, n547, n548, n549, n550, n551, n552, n553, n554, n555,
n556, n557, n558, n559, n560, n561, n562, n563, n564, n565, n566, n567,
n568, n569, n570, n571, n572, n573, n574, n575, n576, n577, n578, n579,
n580, n581, n582, n583, n584, n585, n586, n587, n588, n589, n590, n591,
n592, n593, n594, n595, n596, n597, n598, n599, n600, n601, n602, n603,
n604, n605, n606, n607, n608, n609, n610, n611, n612, n613, n614, n615,
n616, n617, n618, n619, n620, n621, n622, n623, n624, n625, n626, n627,
n628, n629, n630, n631, n632, n633, n634, n635, n636, n637, n638, n639,
n640, n641, n642, n643, n644, n645, n646, n647, n648, n649, n650, n651,
n652, n653, n654, n655, n656, n657, n658, n659, n660, n661, n662, n663,
n664, n665, n666, n667, n668, n669, n670, n671, n672, n673, n674, n675,
n676, n677, n678, n679, n680, n681, n682, n683, n684, n685, n686, n687,
n688, n689, n690, n691, n692, n693, n694, n695, n696, n697, n698, n699,
n700, n701, n702, n703, n704, n705, n706, n707, n708, n709, n710, n711,
n712, n713, n714, n715, n716, n717, n718, n719, n720, n721, n722, n723,
n724, n725, n726, n727, n728, n729, n730, n731, n732, n733, n734, n735,
n736, n737, n738, n739, n740, n741, n742, n743, n744, n745, n746, n747,
n748, n749, n750, n751;
assign o_0_ = ~n42;
assign o_1_ = ~n509;
assign o_2_ = ~n502;
assign o_3_ = ~n488;
assign o_4_ = ~n41;
assign o_5_ = ~n659 | ~n662 | n40 | ~n658 | n38 | n39 | n36 | n37;
assign o_6_ = ~n35;
assign o_7_ = ~n636 | ~n637 | n34 | ~n576 | n32 | n33 | n30 | n31;
assign n30 = ~i_9_ & (~n163 | n165 | n168);
assign n31 = i_9_ & n65 & n419;
assign n32 = ~i_5_ & (~n625 | (~n238 & n250));
assign n33 = i_9_ & (n66 | ~n621 | ~n622);
assign n34 = n244 | n246 | n240 | n242 | ~n630 | ~n632 | n248 | n249;
assign n35 = n278 & n279 & (~i_2_ | n277);
assign n36 = i_11_ & (~n650 | (~n266 & n360));
assign n37 = i_2_ & n361 & n272;
assign n38 = ~n71 & ~n532;
assign n39 = ~n562 & (~n648 | (~i_13_ & ~n532));
assign n40 = ~i_4_ & (~n647 | (~n59 & ~n281));
assign n41 = n473 & n472 & n471 & n470 & n469 & ~n465 & ~n459 & ~n461;
assign n42 = ~n46 & n510 & (~i_0_ | n511);
assign n43 = ~i_1_ | ~i_3_;
assign n44 = ~i_5_ | n43;
assign n45 = ~i_8_ & i_10_;
assign n46 = i_3_ & (n45 | ~n435);
assign n47 = ~n67 & (~i_6_ | ~i_10_);
assign n48 = (n521 | n52) & (n56 | n120);
assign n49 = i_1_ | n445;
assign n50 = i_11_ | n116;
assign n51 = n48 & (n49 | n50);
assign n52 = i_12_ | n116;
assign n53 = i_0_ | n225;
assign n54 = (i_11_ | n53) & (n49 | n52);
assign n55 = ~i_6_ | i_7_;
assign n56 = i_0_ | n212;
assign n57 = ~i_2_ | i_0_ | i_1_;
assign n58 = (i_6_ | n57) & (n55 | n56);
assign n59 = ~i_3_ | n225;
assign n60 = ~i_3_ | n445;
assign n61 = (~i_6_ | n60) & (~i_5_ | n59);
assign n62 = i_0_ | n63;
assign n63 = i_3_ | i_2_;
assign n64 = n62 & (~i_5_ | n63);
assign n65 = ~i_12_ & i_13_;
assign n66 = n65 & (~n613 | (i_8_ & ~n379));
assign n67 = i_6_ & n519;
assign n68 = ~n158 & (~n615 | (n67 & ~n400));
assign n69 = (i_7_ | n200) & (i_6_ | n62);
assign n70 = n69 & (i_8_ | n56);
assign n71 = ~i_12_ | n116;
assign n72 = (~i_1_ | n71) & (~i_6_ | ~n348);
assign n73 = ~i_1_ & i_6_;
assign n74 = (~i_0_ | n73) & (~i_1_ | i_5_);
assign n75 = ~n304 & ~i_9_ & ~n77;
assign n76 = i_3_ & (n75 | (~n71 & ~n98));
assign n77 = ~i_11_ | n116;
assign n78 = i_8_ | i_6_;
assign n79 = n77 | n78 | ~i_2_ | i_9_;
assign n80 = ~i_0_ | n63;
assign n81 = ~i_0_ | n195;
assign n82 = (i_7_ | n81) & (i_6_ | n80);
assign n83 = i_0_ & (n76 | ~n79 | ~n627);
assign n84 = i_3_ | ~i_11_ | n56 | ~n348;
assign n85 = n116 | n400 | ~i_3_ | i_9_;
assign n86 = n178 | ~i_5_ | n72;
assign n87 = n516 | n177 | ~n338;
assign n88 = i_9_ | n74 | n522 | n77;
assign n89 = n88 & n87 & n86 & n85 & ~n83 & n84;
assign n90 = (n99 | n157) & (n134 | n521);
assign n91 = ~i_6_ | n522;
assign n92 = n90 & (n91 | n49);
assign n93 = (~n102 | n521) & (~n67 | n157);
assign n94 = (n518 | n49) & (n520 | n400);
assign n95 = n93 & n94;
assign n96 = (~n103 | n134) & (n53 | n107);
assign n97 = n96 & (n57 | n91);
assign n98 = ~i_6_ | n272;
assign n99 = i_8_ | ~i_6_ | ~i_7_;
assign n100 = n98 & n97 & (n99 | n56);
assign n101 = i_5_ & n365;
assign n102 = ~i_6_ & n519;
assign n103 = ~i_2_ & ~i_0_ & i_1_;
assign n104 = n101 & (~n607 | (n102 & n103));
assign n105 = i_11_ | ~n166;
assign n106 = i_10_ | n304;
assign n107 = i_6_ | n522;
assign n108 = (n107 | n50) & (n105 | n106);
assign n109 = i_12_ | n113;
assign n110 = i_11_ | n113;
assign n111 = (~n67 | n109) & (n99 | n110);
assign n112 = i_11_ | i_12_;
assign n113 = i_9_ | i_13_;
assign n114 = i_3_ | i_10_ | n112 | n113;
assign n115 = i_5_ | n312;
assign n116 = i_10_ | i_13_;
assign n117 = (~i_10_ | n115) & (n116 | ~n164);
assign n118 = i_13_ & (~n600 | (~n547 & ~n548));
assign n119 = i_5_ | n515;
assign n120 = i_12_ | ~n338;
assign n121 = (n119 | n120) & (~n164 | ~n239);
assign n122 = n65 & (~n599 | (~i_3_ & ~i_11_));
assign n123 = n555 | n518 | n554;
assign n124 = n553 | n134 | n552;
assign n125 = n522 | n198 | ~n247;
assign n126 = ~n348 | ~n67 | ~n101;
assign n127 = n449 | n107 | ~n338;
assign n128 = n524 | n99 | ~n319;
assign n129 = (n544 | n546) & (n121 | n520);
assign n130 = n129 & n128 & n127 & n126 & n125 & n124 & ~n122 & n123;
assign n131 = (n107 | ~n419) & (n91 | ~n402);
assign n132 = (n171 | n151) & (n150 | n551);
assign n133 = n597 & n598 & (n545 | n550);
assign n134 = ~i_7_ | n78;
assign n135 = ~n101 | ~n239;
assign n136 = n132 & n133 & (n134 | n135);
assign n137 = i_4_ | ~i_0_ | ~i_1_;
assign n138 = i_4_ | n445;
assign n139 = (~i_6_ | n138) & (~i_7_ | n137);
assign n140 = ~n524 & ~n220 & i_2_ & ~i_8_;
assign n141 = n546 | n549;
assign n142 = n162 | n107 | n158;
assign n143 = n555 | ~n102 | n554;
assign n144 = n553 | n91 | n552;
assign n145 = (n194 | n151) & (n198 | n551);
assign n146 = (n134 | n543) & (n547 | n550);
assign n147 = n146 & n145 & n144 & n143 & n141 & n142;
assign n148 = (n171 | n551) & (n99 | n543);
assign n149 = n595 & n596 & (n545 | n549);
assign n150 = ~i_5_ | n201;
assign n151 = ~n65 | ~n264;
assign n152 = n148 & n149 & (n150 | n151);
assign n153 = (n99 | ~n402) & (n91 | ~n419);
assign n154 = (n544 | n547) & (n172 | n198);
assign n155 = n593 & n594 & (n542 | n546);
assign n156 = n154 & n155 & (n91 | n135);
assign n157 = ~i_0_ | n212;
assign n158 = ~i_5_ | n312;
assign n159 = n158 | n157 | n134;
assign n160 = n115 | n99 | ~n103;
assign n161 = i_2_ | n312;
assign n162 = ~i_10_ | ~n319;
assign n163 = n161 | n162 | ~i_5_ | n91;
assign n164 = ~i_5_ & i_3_ & i_4_;
assign n165 = n164 & ~n77 & i_1_ & ~i_7_;
assign n166 = ~i_12_ & ~i_13_;
assign n167 = i_10_ & i_11_;
assign n168 = n166 & n167 & (~n159 | ~n160);
assign n169 = (n542 | n545) & (n541 | n150);
assign n170 = (n107 | n135) & (~n446 | n544);
assign n171 = i_3_ | n539;
assign n172 = ~n65 | ~n437;
assign n173 = n169 & n170 & (n171 | n172);
assign n174 = (~n446 | n542) & (n171 | n541);
assign n175 = (n544 | n545) & (n91 | n543);
assign n176 = n174 & n175 & (n172 | n150);
assign n177 = i_10_ | n522;
assign n178 = ~i_8_ | n272;
assign n179 = n177 & n178;
assign n180 = (~n460 | n591) & (n179 | ~n463);
assign n181 = n592 & (n533 | n56);
assign n182 = n106 & n98;
assign n183 = n180 & n181 & (n182 | ~n385);
assign n184 = (~n340 | n535) & (n106 | n449);
assign n185 = i_8_ | n534;
assign n186 = ~i_4_ | n212;
assign n187 = n184 & (n185 | n186);
assign n188 = (~n536 | n537) & (n335 | n538);
assign n189 = (n186 | n474) & (n98 | ~n101);
assign n190 = ~i_5_ | n272;
assign n191 = n188 & n189 & (n190 | ~n340);
assign n192 = (n518 | n521) & (n520 | n157);
assign n193 = n192 & (n49 | ~n102);
assign n194 = i_3_ | n214;
assign n195 = i_1_ | i_3_;
assign n196 = n194 & (~i_5_ | n195);
assign n197 = ~i_6_ | i_0_ | i_3_;
assign n198 = i_3_ | n516;
assign n199 = n198 & (i_5_ | n195);
assign n200 = i_0_ | n195;
assign n201 = i_3_ | i_6_;
assign n202 = n200 & n199 & (i_0_ | n201);
assign n203 = ~i_6_ | ~i_0_ | ~i_3_;
assign n204 = i_1_ & ~i_6_;
assign n205 = (i_2_ | ~i_6_) & (~i_7_ | n204);
assign n206 = n517 | i_6_ | n749;
assign n207 = n517 | i_1_ | i_7_;
assign n208 = i_11_ | n435;
assign n209 = n206 & n207 & (n205 | n208);
assign n210 = i_5_ | n63;
assign n211 = i_2_ | n516;
assign n212 = i_1_ | i_2_;
assign n213 = n211 & (i_5_ | n212);
assign n214 = ~i_5_ | ~i_6_;
assign n215 = (~i_5_ | n212) & (i_2_ | n214);
assign n216 = (~i_5_ | n225) & (~i_2_ | n214);
assign n217 = ~i_6_ | n445;
assign n218 = n216 & n217;
assign n219 = ~i_7_ | ~i_1_ | ~i_5_;
assign n220 = ~i_1_ & ~i_6_;
assign n221 = n219 & (~i_0_ | ~i_7_ | n220);
assign n222 = i_10_ & ~n435 & (~n218 | ~n221);
assign n223 = ~i_2_ | n516;
assign n224 = i_6_ | n445;
assign n225 = ~i_1_ | ~i_2_;
assign n226 = n223 & n224 & (i_5_ | n225);
assign n227 = n226 & (i_7_ | n74);
assign n228 = (~i_0_ | i_6_) & (~i_1_ | i_5_);
assign n229 = (i_6_ | n138) & (i_7_ | n137);
assign n230 = n73 | n119 | ~i_2_ | ~i_8_;
assign n231 = n230 & (n229 | ~n475);
assign n232 = (n53 | ~n67) & (~n103 | n518);
assign n233 = n232 & (n57 | ~n102);
assign n234 = ~i_4_ | n225;
assign n235 = ~i_4_ | n557;
assign n236 = (i_6_ | n235) & (i_8_ | n234);
assign n237 = i_4_ & (~n623 | (~i_1_ & ~n177));
assign n238 = ~n237 & (i_6_ | i_10_ | ~n536);
assign n239 = ~i_9_ & n338;
assign n240 = n239 & n164 & ~n233;
assign n241 = n406 & ~i_10_ & ~i_13_;
assign n242 = ~n119 & (~n580 | (~n92 & n241));
assign n243 = ~i_3_ & ~i_8_;
assign n244 = ~n525 & (n140 | (~n139 & n243));
assign n245 = n383 & ~i_9_ & ~i_13_;
assign n246 = ~n524 & (~n582 | (~n193 & n245));
assign n247 = ~i_11_ & i_13_;
assign n248 = n247 & (~n584 | (~n223 & ~n528));
assign n249 = n65 & (~n586 | ~n588 | ~n590);
assign n250 = n338 & i_12_;
assign n251 = n250 & (~n183 | ~n187 | ~n191);
assign n252 = ~n71 & (~n609 | ~n610 | ~n611);
assign n253 = ~n247 & (i_4_ | ~i_8_ | ~n406);
assign n254 = (~i_3_ | n208) & (~n338 | n533);
assign n255 = n253 & n254 & (n120 | ~n475);
assign n256 = ~i_7_ | i_10_;
assign n257 = i_4_ | ~n383;
assign n258 = (~i_7_ | n257) & (n256 | ~n318);
assign n259 = i_7_ & n45;
assign n260 = (i_8_ | n258) & (~n259 | n559);
assign n261 = n260 & ~n731 & (i_7_ | n255);
assign n262 = ~i_7_ | ~i_9_;
assign n263 = n262 & (i_7_ | ~i_10_);
assign n264 = i_10_ & ~i_7_ & i_8_;
assign n265 = i_12_ & (n264 | ~n548);
assign n266 = ~i_10_ | n522;
assign n267 = i_8_ | n262;
assign n268 = ~n265 & (~i_11_ | (n266 & n267));
assign n269 = (n110 | ~n243) & (n109 | ~n475);
assign n270 = ~i_4_ | n116;
assign n271 = n270 & (~i_8_ | n52);
assign n272 = ~i_7_ | i_9_;
assign n273 = ~i_4_ | n272;
assign n274 = (i_7_ | n271) & (i_13_ | n273);
assign n275 = n282 & (i_4_ | n268);
assign n276 = n556 & n638 & (i_3_ | n274);
assign n277 = n275 & n276 & (~i_13_ | n263);
assign n278 = ~n750 & (n548 | n559);
assign n279 = n644 & n645 & (i_2_ | n261);
assign n280 = ~i_6_ | ~i_9_;
assign n281 = n280 & (i_6_ | ~i_10_);
assign n282 = n332 | n116;
assign n283 = (n523 & (~i_7_ | n733)) | (i_7_ & n733);
assign n284 = i_2_ | i_13_;
assign n285 = n282 & (n283 | n284);
assign n286 = i_10_ | i_7_;
assign n287 = i_11_ | n286;
assign n288 = i_11_ | i_13_;
assign n289 = (~n166 | n287) & (n177 | n288);
assign n290 = i_8_ | n272;
assign n291 = (n288 | n290) & (~n166 | n178);
assign n292 = (n289 & (~i_6_ | n291)) | (i_6_ & n291);
assign n293 = (n523 & (~i_8_ | n733)) | (i_8_ & n733);
assign n294 = n292 & (i_13_ | n293);
assign n295 = (~i_7_ & n566) | (n565 & (i_7_ | n566));
assign n296 = i_7_ | n435;
assign n297 = n295 & (~i_6_ | ~i_11_ | n296);
assign n298 = n287 & (i_12_ | n256);
assign n299 = ~i_2_ & ~n751 & (i_6_ | ~n298);
assign n300 = ~n299 & (~i_4_ | ~n578);
assign n301 = n591 | i_2_ | ~i_4_;
assign n302 = n300 & n301 & (n182 | ~n365);
assign n303 = ~i_7_ | n280;
assign n304 = i_6_ | i_7_;
assign n305 = n303 & (~i_10_ | (~i_9_ & n304));
assign n306 = (i_6_ & ~n540) | (~n266 & (~i_6_ | ~n540));
assign n307 = ~i_4_ & (~n577 | (i_11_ & n306));
assign n308 = (n294 & (~i_3_ | n297)) | (i_3_ & n297);
assign n309 = (~i_13_ & n302) | (n281 & (i_13_ | n302));
assign n310 = ~n307 & n656 & (~i_2_ | n305);
assign n311 = n310 & n309 & n308 & n285;
assign n312 = ~i_3_ | i_4_;
assign n313 = (n312 | ~n406) & (n284 | ~n383);
assign n314 = (~i_4_ | ~n338) & (i_3_ | n120);
assign n315 = ~n247 & (~i_3_ | ~n406 | n548);
assign n316 = (~i_2_ | n530) & (~i_7_ | n313);
assign n317 = n315 & n316 & (n314 | n178);
assign n318 = i_4_ & n348;
assign n319 = ~i_11_ & n348;
assign n320 = ~n177 & (n318 | (~i_3_ & n319));
assign n321 = ~n402 | ~i_2_ | i_7_;
assign n322 = ~n319 | n563;
assign n323 = ~n383 | ~i_3_ | n266;
assign n324 = n257 | ~i_2_ | i_8_;
assign n325 = ~n65 & (i_7_ | n312 | ~n383);
assign n326 = n325 & n324 & n323 & n322 & ~n320 & n321;
assign n327 = i_11_ | ~n496 | n558 | ~n563;
assign n328 = (n317 & (~i_6_ | n326)) | (i_6_ & n326);
assign n329 = n327 & n328 & (n91 | n257);
assign n330 = ~i_11_ | n514;
assign n331 = ~n166 | ~n475;
assign n332 = ~i_4_ | i_9_;
assign n333 = (n332 | n77) & (n330 | n331);
assign n334 = ~n517 & i_3_ & i_12_;
assign n335 = i_1_ | n63;
assign n336 = ~i_11_ | ~n166;
assign n337 = (n335 | n336) & (n186 | ~n239);
assign n338 = i_11_ & ~i_13_;
assign n339 = i_4_ & (~n652 | (~n335 & n338));
assign n340 = ~i_1_ & n365;
assign n341 = i_7_ & (n334 | (n340 & n239));
assign n342 = n734 & (~i_8_ | n337);
assign n343 = (n208 | n561) & (n404 | n356);
assign n344 = (n517 | n557) & (~n45 | n59);
assign n345 = n344 & n343 & n342 & ~n341 & n333 & ~n339;
assign n346 = ~i_2_ | i_12_;
assign n347 = (~i_8_ | n59) & (n346 | ~n391);
assign n348 = i_12_ & ~i_13_;
assign n349 = n348 & (~n654 | (i_4_ & ~n335));
assign n350 = n655 & (i_8_ | ~n402 | n561);
assign n351 = ~n349 & n350 & (~i_9_ | n347);
assign n352 = ~i_8_ | i_9_;
assign n353 = (~n263 | ~n340) & (n186 | n352);
assign n354 = i_10_ | n78;
assign n355 = ~i_6_ | n352;
assign n356 = ~i_1_ | n312;
assign n357 = (n303 | n356) & (~n259 | ~n360);
assign n358 = ~n573 & (~i_4_ | i_13_ | ~n496);
assign n359 = ~n512 & (i_6_ | i_11_);
assign n360 = i_3_ & n204;
assign n361 = ~i_6_ & n419;
assign n362 = ~i_9_ | ~i_11_;
assign n363 = ~i_12_ | n362;
assign n364 = ~i_4_ | n113;
assign n365 = ~i_3_ & i_4_;
assign n366 = ~i_9_ | ~i_12_;
assign n367 = n364 & (n365 | n366);
assign n368 = (~i_9_ & n572) | (~i_13_ & (i_9_ | n572));
assign n369 = i_3_ | n111;
assign n370 = ~n166 | i_2_ | n98;
assign n371 = (~i_1_ | n280) & (n363 | ~n391);
assign n372 = (~n67 | n367) & (i_4_ | n363);
assign n373 = ~n737 & n372 & n371 & n370 & n368 & n369;
assign n374 = ~i_4_ & (~n564 | (~n107 & n167));
assign n375 = ~n736 & (~i_10_ | (~i_13_ & ~n204));
assign n376 = ~n374 & n687 & (n107 | n270);
assign n377 = n375 & n376 & (i_3_ | n108);
assign n378 = i_7_ | n516;
assign n379 = ~i_7_ | n214;
assign n380 = (n113 | n379) & (n378 | n116);
assign n381 = ~i_2_ & (~n686 | (~n270 & ~n440));
assign n382 = ~n53 & i_3_ & ~i_8_;
assign n383 = i_11_ & ~i_12_;
assign n384 = n383 & i_10_ & ~i_0_ & i_2_;
assign n385 = ~i_0_ & n365;
assign n386 = ~i_6_ & (n384 | (~n71 & n385));
assign n387 = (n56 | ~n319) & (n53 | ~n402);
assign n388 = i_0_ | n43;
assign n389 = ~n386 & n387 & (n257 | n388);
assign n390 = (~i_7_ | n81) & (~i_6_ | n80);
assign n391 = i_8_ & i_3_;
assign n392 = ~n400 & (i_7_ | n391);
assign n393 = (i_3_ & n553) | (~n241 & (~i_3_ | n553));
assign n394 = n257 & n393 & (~i_4_ | n71);
assign n395 = ~i_12_ | n572;
assign n396 = ~n65 & (i_2_ | n106 | ~n319);
assign n397 = n395 & n396 & (n394 | n107);
assign n398 = ~i_7_ | n362;
assign n399 = (i_2_ | n355) & (n204 | n178);
assign n400 = ~i_1_ | n445;
assign n401 = (~i_8_ | n400) & (~i_6_ | n60);
assign n402 = i_10_ & ~i_12_;
assign n403 = n402 & (n382 | (~i_0_ & n204));
assign n404 = i_7_ | ~n167;
assign n405 = n167 & (~n718 | (~i_8_ & ~n400));
assign n406 = ~i_11_ & i_12_;
assign n407 = n406 & (~n674 | (i_8_ & ~n53));
assign n408 = ~i_0_ | n43;
assign n409 = ~n405 & ~n407 & (n404 | n408);
assign n410 = ~n247 & (~i_1_ | i_11_ | n280);
assign n411 = n672 & (~n67 | (~n423 & n673));
assign n412 = n410 & n411 & (~n73 | n336);
assign n413 = ~n385 | ~i_6_ | ~n239;
assign n414 = ~n166 | ~i_11_ | n56;
assign n415 = n413 & n414 & (n200 | ~n423);
assign n416 = n238 & (~i_4_ | i_6_ | n177);
assign n417 = ~i_7_ & n419;
assign n418 = n417 & i_2_ & i_12_;
assign n419 = i_10_ & ~i_11_;
assign n420 = n116 | ~i_4_ | i_8_;
assign n421 = n420 & (n50 | ~n243);
assign n422 = ~n53 & (~n530 | (i_3_ & ~n208));
assign n423 = i_4_ & n239;
assign n424 = i_6_ & (n418 | (~n62 & n423));
assign n425 = (n517 | n59) & (i_4_ | n409);
assign n426 = (~i_7_ | n415) & (i_0_ | n412);
assign n427 = (n82 | n271) & (~n338 | n416);
assign n428 = (~i_1_ | ~n361) & (~n423 | n671);
assign n429 = (n157 | n421) & (n400 | ~n670);
assign n430 = ~n422 & (n56 | n120 | ~n475);
assign n431 = n430 & n429 & n428 & n427 & n426 & n425 & n333 & ~n424;
assign n432 = n183 & (~i_4_ | i_10_ | n70);
assign n433 = i_7_ | i_9_ | i_11_;
assign n434 = n191 & (n215 | n433);
assign n435 = ~i_8_ | ~i_9_;
assign n436 = i_5_ & ~n558 & (~n540 | ~n568);
assign n437 = i_10_ & n519;
assign n438 = ~i_4_ & ~n539 & (n437 | ~n568);
assign n439 = ~i_8_ | n214;
assign n440 = i_8_ | n516;
assign n441 = (n366 | n439) & (~n167 | n440);
assign n442 = ~i_12_ & (~n158 | n417 | ~n530);
assign n443 = n435 | ~i_3_ | n112;
assign n444 = ~n442 & n443 & (i_11_ | n115);
assign n445 = ~i_0_ | ~i_2_;
assign n446 = ~i_6_ & i_3_ & i_5_;
assign n447 = n383 & (~n684 | (~i_7_ & n446));
assign n448 = n406 & (~n685 | (i_7_ & ~n545));
assign n449 = i_5_ | ~n365;
assign n450 = (~n338 | n449) & (~n101 | ~n348);
assign n451 = i_5_ | n522;
assign n452 = (n80 | n440) & (n81 | n451);
assign n453 = ~i_5_ | ~n519;
assign n454 = (n453 | n81) & (n439 | n80);
assign n455 = n137 & n408;
assign n456 = ~i_0_ | n312;
assign n457 = (n379 | n456) & (n455 | n453);
assign n458 = ~i_5_ & i_0_ & i_3_;
assign n459 = n167 & (~n663 | (~n107 & n458));
assign n460 = i_4_ & ~i_0_ & ~i_2_;
assign n461 = ~n569 & (~n664 | (n239 & n460));
assign n462 = ~i_5_ & n519;
assign n463 = i_4_ & ~i_0_ & ~i_1_;
assign n464 = n462 & (~n665 | (n239 & n463));
assign n465 = ~n570 & (~n666 | (~n71 & n463));
assign n466 = ~n571 & (~n667 | (~n71 & n460));
assign n467 = n406 & (n438 | (n259 & ~n545));
assign n468 = n383 & (n436 | (~n296 & n446));
assign n469 = (n450 | n56) & (n441 | n60);
assign n470 = ~n464 & (~i_9_ | n158 | n400);
assign n471 = n702 & n701 & (n452 | n50);
assign n472 = n699 & n698 & (n457 | n366);
assign n473 = ~n740 & ~n739 & n709 & n707 & n706 & n705 & n703 & n704;
assign n474 = ~i_5_ | n352;
assign n475 = ~i_3_ & i_8_;
assign n476 = ~n56 & (i_7_ | n475);
assign n477 = (i_1_ | n537) & (n589 | n178);
assign n478 = ~n476 & n715 & (n335 | n474);
assign n479 = n477 & n478 & (i_0_ | ~i_5_);
assign n480 = ~n56 & (~i_7_ | n243);
assign n481 = n300 & (i_1_ | n359);
assign n482 = n746 & (i_5_ | n416);
assign n483 = n187 & (i_3_ | n293);
assign n484 = (n56 | ~n365) & (i_12_ | n479);
assign n485 = (n213 | n298) & (n215 | n574);
assign n486 = n716 & (i_1_ | n359 | n534);
assign n487 = n717 & (i_11_ | (n714 & n711));
assign n488 = n487 & n486 & n485 & n484 & n483 & n482 & n432 & n434;
assign n489 = ~i_7_ | n366;
assign n490 = ~i_10_ | ~i_12_;
assign n491 = n489 & ~n496 & (i_7_ | n490);
assign n492 = (n747 & (~i_5_ | n748)) | (i_5_ & n748);
assign n493 = n492 & (~i_0_ | n281);
assign n494 = i_8_ | ~i_11_;
assign n495 = ~n496 & n494 & ~i_3_ & n263;
assign n496 = i_8_ & i_12_;
assign n497 = n496 & (~n221 | ~n379);
assign n498 = (n218 | n491) & (~i_1_ | n493);
assign n499 = n726 & (~i_12_ | (n61 & n723));
assign n500 = n725 & (~i_11_ | (n719 & n722));
assign n501 = n724 & (n494 | (n227 & n378));
assign n502 = n501 & n500 & n498 & n499;
assign n503 = i_12_ | ~n475;
assign n504 = ~n46 & n503 & (i_11_ | ~n243);
assign n505 = (~n243 | ~n338) & (n113 | ~n391);
assign n506 = (~n243 | ~n247) & (~n65 | ~n475);
assign n507 = (n504 & (~i_4_ | n505)) | (i_4_ & n505);
assign n508 = n727 & n728 & (~i_13_ | ~n46);
assign n509 = n508 & n506 & n507;
assign n510 = (~i_1_ | n281) & (~i_2_ | n263);
assign n511 = (~i_5_ & ~i_10_) | (~i_9_ & (i_5_ | ~i_10_));
assign n512 = i_6_ & ~i_12_;
assign n513 = i_9_ & (n392 | (n512 & i_1_));
assign n514 = i_9_ | i_10_;
assign n515 = i_3_ | i_4_;
assign n516 = i_5_ | i_6_;
assign n517 = i_8_ | ~n419;
assign n518 = ~i_8_ | n55;
assign n519 = i_8_ & i_7_;
assign n520 = ~i_8_ | n304;
assign n521 = i_2_ | ~i_0_ | ~i_1_;
assign n522 = i_8_ | i_7_;
assign n523 = i_11_ | n514;
assign n524 = ~i_5_ | n515;
assign n525 = ~n348 | n523;
assign n526 = ~i_9_ | ~i_10_;
assign n527 = i_7_ | n526;
assign n528 = ~i_3_ | n526;
assign n529 = ~i_7_ | n526;
assign n530 = i_11_ | n262;
assign n531 = ~i_5_ | ~i_3_ | ~i_4_;
assign n532 = ~i_6_ | n332;
assign n533 = ~i_8_ | n332;
assign n534 = i_5_ | i_10_;
assign n535 = i_7_ | n534;
assign n536 = ~i_2_ & n365;
assign n537 = i_9_ | n214;
assign n538 = ~i_5_ | n332;
assign n539 = i_5_ | ~i_6_;
assign n540 = ~i_9_ | n522;
assign n541 = ~n247 | n540;
assign n542 = ~n65 | ~n259;
assign n543 = ~n239 | n449;
assign n544 = ~n247 | n296;
assign n545 = ~i_3_ | n539;
assign n546 = ~i_3_ | n516;
assign n547 = ~i_3_ | n214;
assign n548 = ~i_7_ | n435;
assign n549 = ~n247 | n548;
assign n550 = ~n65 | n266;
assign n551 = ~n247 | n267;
assign n552 = i_13_ | n115;
assign n553 = ~i_11_ | ~n402;
assign n554 = i_13_ | n158;
assign n555 = ~i_9_ | ~n406;
assign n556 = n114 & n528;
assign n557 = ~i_2_ | ~i_3_;
assign n558 = i_4_ | i_6_;
assign n559 = ~i_3_ | i_12_;
assign n560 = i_4_ | n225;
assign n561 = i_1_ | n557;
assign n562 = ~i_1_ | n63;
assign n563 = i_7_ | i_2_;
assign n564 = ~i_11_ | n490;
assign n565 = ~i_9_ | n490;
assign n566 = ~i_9_ | ~n167;
assign n567 = ~i_8_ | n286;
assign n568 = i_0_ | n557;
assign n569 = ~i_8_ | n539;
assign n570 = ~i_5_ | n522;
assign n571 = ~i_5_ | n78;
assign n572 = ~n220 | n288;
assign n573 = n243 & n319;
assign n574 = i_12_ | n272;
assign n575 = (~i_5_ & n419) | (n402 & (i_5_ | n419));
assign n576 = (~i_4_ & n729) | (n89 & (i_4_ | n729));
assign n577 = (~i_6_ & n564) | (n363 & (i_6_ | n564));
assign n578 = (i_6_ & ~n178) | (~n177 & (~i_6_ | ~n178));
assign n579 = i_10_ | i_13_ | ~n383 | n520;
assign n580 = n579 & (n233 | ~n245);
assign n581 = i_9_ | i_13_ | n99 | ~n406;
assign n582 = n581 & (n97 | ~n241);
assign n583 = n527 | ~i_3_ | n228;
assign n584 = n583 & (i_8_ | n227 | n526);
assign n585 = (n213 | n517) & (n210 | ~n361);
assign n586 = ~n222 & n585 & (n208 | n215);
assign n587 = n547 & n408 & n44 & n203;
assign n588 = (n587 | n529) & (i_0_ | n209);
assign n589 = n196 & n200 & n197;
assign n590 = (n530 | n589) & (n202 | ~n417);
assign n591 = n355 & n354;
assign n592 = (n273 | n200) & (n62 | n532);
assign n593 = n541 | n194;
assign n594 = n113 | n153 | n158;
assign n595 = ~n402 | n107 | n158;
assign n596 = ~n446 | n550;
assign n597 = ~n446 | n549;
assign n598 = n113 | n131 | n158;
assign n599 = (~n259 | n547) & (n194 | ~n519);
assign n600 = n528 & (n546 | n266);
assign n601 = n531 | ~n67 | n113;
assign n602 = n601 & (n117 | n107);
assign n603 = (n99 | n135) & (n198 | n151);
assign n604 = n602 & n603 & (n194 | n551);
assign n605 = (n108 | n119) & (n111 | n524);
assign n606 = ~n118 & n605 & (i_4_ | n556);
assign n607 = (n518 | n57) & (n53 | n520);
assign n608 = (n95 | n449) & (n92 | ~n164);
assign n609 = ~n104 & n608 & (n100 | n531);
assign n610 = (n537 | n235) & (n474 | n234);
assign n611 = (n273 | n408) & (n538 | n59);
assign n612 = n64 | ~i_6_ | i_11_;
assign n613 = n612 & (~i_10_ | n61);
assign n614 = i_10_ | ~n103 | ~n319 | n520;
assign n615 = n614 & (n58 | n162);
assign n616 = i_10_ | n157 | ~n319 | n518;
assign n617 = n616 & (n47 | n57 | n120);
assign n618 = n617 & (n520 | n521 | n50);
assign n619 = (n54 | ~n67) & (n51 | ~n102);
assign n620 = n161 | n534 | ~n102 | n120;
assign n621 = n620 & (i_4_ | n59 | ~n575);
assign n622 = ~n68 & (n115 | (n618 & n619));
assign n623 = (i_2_ | n354) & (i_10_ | n335);
assign n624 = i_11_ | n266 | n59 | n558;
assign n625 = n624 & (i_9_ | n236 | n77);
assign n626 = n355 | ~i_2_ | n71;
assign n627 = n626 & (n220 | n71 | n178);
assign n628 = n332 | i_10_ | ~n250;
assign n629 = n628 & (~n166 | n231 | n330);
assign n630 = n629 & (~i_13_ | n378 | n517);
assign n631 = n531 | n193 | ~n239;
assign n632 = ~n251 & n631 & (~n103 | n176);
assign n633 = (n156 | n521) & (n173 | n157);
assign n634 = n633 & (n152 | n53);
assign n635 = (n136 | n49) & (n147 | n57);
assign n636 = n635 & n634 & (n130 | n56);
assign n637 = ~n252 & (n400 | (n604 & n606));
assign n638 = n730 & (~i_7_ | n269);
assign n639 = ~n435 | ~i_4_ | n77;
assign n640 = n639 & (i_8_ | i_13_ | n235);
assign n641 = (i_11_ | n161) & (~n338 | ~n536);
assign n642 = n235 | ~i_8_ | i_13_;
assign n643 = n642 & (~n348 | (n533 & ~n536));
assign n644 = n312 | ~i_2_ | n263;
assign n645 = ~n732 & (i_7_ | (n640 & n641));
assign n646 = ~n563 | ~n361 | ~n496;
assign n647 = n646 & (n359 | n561);
assign n648 = (n288 | n354) & (~n166 | n355);
assign n649 = ~i_8_ | i_3_ | i_6_ | n749 | i_10_ | ~n166;
assign n650 = n649 & (~n348 | n353);
assign n651 = i_10_ | i_13_ | n749 | n494;
assign n652 = n651 & (n116 | n562);
assign n653 = i_10_ | i_8_;
assign n654 = (n286 | ~n340) & (n186 | n653);
assign n655 = n335 | i_8_ | ~n319;
assign n656 = n365 | n548 | ~i_6_ | ~i_12_;
assign n657 = ~i_3_ | ~i_9_ | ~n383 | n518;
assign n658 = n657 & (n281 | ~n496 | n560);
assign n659 = (n358 | n98) & (n346 | n303);
assign n660 = (n345 & (~i_6_ | n351)) | (i_6_ & n351);
assign n661 = (~i_1_ & n329) | (n311 & (i_1_ | n329));
assign n662 = n660 & n661 & (~i_12_ | n357);
assign n663 = (n378 | n456) & (n455 | n451);
assign n664 = (n555 | n568) & (n62 | ~n245);
assign n665 = (n388 | n555) & (n200 | ~n245);
assign n666 = (n388 | n553) & (n200 | ~n241);
assign n667 = (n553 | n568) & (n62 | ~n241);
assign n668 = (n288 | n535) & (~n166 | n190);
assign n669 = (n116 | n449) & (~n101 | n113);
assign n670 = i_10_ & (~i_7_ | (i_3_ & ~i_8_));
assign n671 = ~i_8_ | n56;
assign n672 = n741 & (~i_2_ | n303 | ~n406);
assign n673 = (i_3_ & n555) | (~n245 & (~i_3_ | n555));
assign n674 = (~i_7_ | n388) & (i_0_ | ~n67);
assign n675 = ~n383 | i_8_ | n53;
assign n676 = n675 & (n401 | n366);
assign n677 = n157 | ~i_8_ | n113;
assign n678 = n677 & (~n348 | n399);
assign n679 = n346 | i_6_ | n398;
assign n680 = n679 & (n390 | n364);
assign n681 = (~n243 | n525) & (n157 | n269);
assign n682 = n680 & n681 & (n56 | ~n573);
assign n683 = (i_7_ | n389) & (i_0_ | n397);
assign n684 = (~i_2_ | n571) & (~i_1_ | n570);
assign n685 = (~i_2_ | n569) & (~i_1_ | ~n462);
assign n686 = (n364 | n439) & (n105 | n537);
assign n687 = n288 | i_2_ | n106;
assign n688 = (n451 | n270) & (n364 | n453);
assign n689 = n211 | i_10_ | n105;
assign n690 = n689 & (~i_9_ | n536 | n564);
assign n691 = ~n381 & n690 & (~n365 | n380);
assign n692 = i_3_ | i_13_ | n293;
assign n693 = n735 & (~i_6_ | ~i_12_ | n529);
assign n694 = n285 & n692 & (~i_3_ | n693);
assign n695 = (~i_5_ & n377) | (n373 & (i_5_ | n377));
assign n696 = n695 & ~n738 & (~i_1_ | n526);
assign n697 = n564 | i_8_ | ~n458;
assign n698 = n697 & (n213 | n256 | n336);
assign n699 = n400 | ~i_10_ | n115;
assign n700 = n567 | n199 | n120;
assign n701 = n700 & (n454 | n109);
assign n702 = ~n319 | n196 | n290;
assign n703 = ~n466 & (n157 | (n668 & n669));
assign n704 = (n444 | n53) & (n217 | n565);
assign n705 = ~n467 & ~n468 & (n138 | n441);
assign n706 = (~n348 | n434) & (~n250 | n432);
assign n707 = (n538 | n71) & (n566 | n224);
assign n708 = n445 | i_5_ | n512 | n404;
assign n709 = n708 & ~n745 & (i_5_ | n431);
assign n710 = (n589 | n290) & (n202 | n177);
assign n711 = ~n480 & n710 & (n62 | n354);
assign n712 = (n185 | n335) & (n210 | n354);
assign n713 = ~n220 | ~i_5_ | i_9_;
assign n714 = n713 & n712 & (i_0_ | i_5_);
assign n715 = (n202 | n567) & (n64 | n355);
assign n716 = i_10_ | n332;
assign n717 = (i_2_ | n283) & (i_0_ | n481);
assign n718 = i_6_ | n60;
assign n719 = ~i_12_ & n718 & (i_5_ | n59);
assign n720 = n228 | ~i_3_ | i_7_;
assign n721 = n720 & (i_7_ | n408);
assign n722 = n721 & (n546 | (~i_2_ & i_7_));
assign n723 = (~i_7_ | n587) & (~i_2_ | n547);
assign n724 = ~n497 & (n226 | (n398 & n404));
assign n725 = ~i_0_ | n511;
assign n726 = n495 | n400;
assign n727 = ~n435 | ~i_3_ | n270;
assign n728 = ~n365 | ~i_8_ | ~n348;
assign n729 = ~i_5_ | n59 | ~n512 | n548;
assign n730 = ~n243 | i_7_ | n50;
assign n731 = i_7_ & (n573 | n65);
assign n732 = i_7_ & (~n643 | (~i_12_ & ~n161));
assign n733 = i_12_ | n514;
assign n734 = n560 | i_8_ | ~n167;
assign n735 = n527 | i_6_ | ~i_11_;
assign n736 = ~i_10_ & (~n572 | (n73 & n166));
assign n737 = i_2_ & i_12_ & (~n303 | ~n398);
assign n738 = ~i_1_ & (~n688 | (n166 & ~n537));
assign n739 = ~i_0_ & ~i_4_ & (n447 | n448);
assign n740 = i_0_ & (~n691 | ~n694 | ~n696);
assign n741 = i_2_ | n98 | n120;
assign n742 = i_4_ & (~n678 | (~n70 & ~n71));
assign n743 = ~i_4_ & (~n676 | (~n408 & ~n489));
assign n744 = ~n682 | n403 | n513 | n743 | ~n683 | n742;
assign n745 = i_5_ & n744;
assign n746 = n399 | ~i_4_ | ~i_5_;
assign n747 = (i_6_ & n362) | (~n167 & (~i_6_ | n362));
assign n748 = (~i_6_ & n490) | (n366 & (i_6_ | n490));
assign n749 = i_2_ & i_7_;
assign n750 = n417 & n533 & i_3_;
assign n751 = i_6_ & n574 & n433;
endmodule

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,792 @@
// Benchmark "TOP" written by ABC on Mon Feb 4 17:25:42 2019
module apex4 (
i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_,
o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_, o_8_, o_9_, o_10_,
o_11_, o_12_, o_13_, o_14_, o_15_, o_16_, o_17_, o_18_ );
input i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_;
output o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_, o_8_, o_9_, o_10_,
o_11_, o_12_, o_13_, o_14_, o_15_, o_16_, o_17_, o_18_;
wire 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, 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, n367, n368, n369, n370, n371, n372, n373, n374, n375, n376, n377,
n378, n379, n380, n381, n382, n383, n384, n385, n386, n387, n388, n389,
n390, n391, n392, n393, n394, n395, n396, n397, n398, n399, n400, n401,
n402, n403, n404, n405, n406, n407, n408, n409, n410, n411, n412, n413,
n414, n415, n416, n417, n418, n419, n420, n421, n422, n423, n424, n425,
n426, n427, n428, n429, n430, n431, n432, n433, n434, n435, n436, n437,
n438, n439, n440, n441, n442, n443, n444, n445, n446, n447, n448, n449,
n450, n451, n452, n453, n454, n455, n456, n457, n458, n459, n460, n461,
n462, n463, n464, n465, n466, n467, n468, n469, n470, n471, n472, n473,
n474, n475, n476, n477, n478, n479, n480, n481, n482, n483, n484, n485,
n486, n487, n488, n489, n490, n491, n492, n493, n494, n495, n496, n497,
n498, n499, n500, n501, n502, n503, n504, n505, n506, n507, n508, n509,
n510, n511, n512, n513, n514, n515, n516, n517, n518, n519, n520, n521,
n522, n523, n524, n525, n526, n527, n528, n529, n530, n531, n532, n533,
n534, n535, n536, n537, n538, n539, n540, n541, n542, n543, n544, n545,
n546, n547, n548, n549, n550, n551, n552, n553, n554, n555, n556, n557,
n558, n559, n560, n561, n562, n563, n564, n565, n566, n567, n568, n569,
n570, n571, n572, n573, n574, n575, n576, n577, n578, n579, n580, n581,
n582, n583, n584, n585, n586, n587, n588, n589, n590, n591, n592, n593,
n594, n595, n596, n597, n598, n599, n600, n601, n602, n603, n604, n605,
n606, n607, n608, n609, n610, n611, n612, n613, n614, n615, n616, n617,
n618, n619, n620, n621, n622, n623, n624, n625, n626, n627, n628, n629,
n630, n631, n632, n633, n634, n635, n636, n637, n638, n639, n640, n641,
n642, n643, n644, n645, n646, n647, n648, n649, n650, n651, n652, n653,
n654, n655, n656, n657, n658, n659, n660, n661, n662, n663, n664, n665,
n666, n667, n668, n669, n670, n671, n672, n673, n674, n675, n676, n677,
n678, n679, n680, n681, n682, n683, n684, n685, n686, n687, n688, n689,
n690, n691, n692, n693, n694, n695, n696, n697, n698, n699, n700, n701,
n702, n703, n704, n705, n706, n707, n708, n709, n710, n711, n712, n713,
n714, n715, n716, n717, n718, n719, n720, n721, n722, n723, n724, n725,
n726, n727, n728, n729, n730, n731, n732, n733, n734, n735, n736, n737,
n738, n739, n740, n741, n742, n743, n744, n745, n746, n747, n748, n749;
assign o_0_ = 1'b0;
assign o_1_ = ~n134;
assign o_2_ = ~n492;
assign o_3_ = ~n129;
assign o_4_ = ~n128;
assign o_5_ = ~n119;
assign o_6_ = ~n110;
assign o_7_ = ~n101;
assign o_8_ = ~n313;
assign o_9_ = ~n100;
assign o_10_ = ~n526;
assign o_11_ = ~n91;
assign o_12_ = ~n87;
assign o_13_ = ~n80;
assign o_14_ = ~n72;
assign o_15_ = ~n64;
assign o_16_ = ~n63;
assign o_17_ = ~n61;
assign o_18_ = ~n53;
assign n47 = n440 | n512;
assign n48 = n539 | n454;
assign n49 = n425 | n540;
assign n50 = n305 | n557;
assign n51 = n643 & n644 & n409 & n616 & n645 & n646 & n642 & n647;
assign n52 = n65 & (n515 | n514);
assign n53 = n47 & n48 & n49 & n50 & n51 & n52;
assign n54 = n641 & n501 & n624 & n620 & n586;
assign n55 = n314 | n591;
assign n56 = n528 | n208;
assign n57 = n425 | n558;
assign n58 = n236 | n576;
assign n59 = n545 | ~i_6_ | n531;
assign n60 = n49 & n742;
assign n61 = n48 & n54 & n55 & n56 & n57 & n58 & n59 & n60;
assign n62 = n651 & n652 & n653 & n654 & n650 & n259 & n604 & n655;
assign n63 = n54 & n62 & n50 & n47;
assign n64 = n51 & n62 & n58 & n56;
assign n65 = n190 | n543 | n514;
assign n66 = n229 | n548;
assign n67 = n443 | ~i_0_ | n419;
assign n68 = n190 | n562;
assign n69 = n656 & n247 & n657 & n621 & n658 & n599 & n659;
assign n70 = n437 & n456 & n513 & n660 & n661 & n516 & n662 & n663;
assign n71 = n504 & n505 & n506 & n507 & n508 & n509 & n510 & n511;
assign n72 = n65 & n66 & n67 & n68 & n69 & n70 & n71;
assign n73 = n664 & n597 & n556 & n264 & n358 & n391 & n434 & ~n522;
assign n74 = n360 & n517 & n399 & n518 & n519 & n520 & n521;
assign n75 = n515 | n245;
assign n76 = n440 | n558;
assign n77 = ~i_0_ | n190 | n250 | n252;
assign n78 = n430 | n419;
assign n79 = ~n332 | n345;
assign n80 = n73 & n74 & n75 & n70 & n76 & n77 & n78 & n79;
assign n81 = n634 & n596 & n350 & n468 & n130 & n665 & n666 & n667;
assign n82 = n440 | n144;
assign n83 = i_3_ | n373 | n419;
assign n84 = n190 | n575;
assign n85 = n342 | n559;
assign n86 = n182 | n575;
assign n87 = n74 & n81 & n82 & n69 & n83 & n84 & n85 & n86;
assign n88 = n560 | n575;
assign n89 = ~i_3_ | i_5_ | n440 | ~n461;
assign n90 = n345 | ~i_0_ | n250;
assign n91 = n88 & n89 & n59 & n90 & n71 & n73 & n81;
assign n92 = n570 & n193 & n202 & n199 & n588 & n589;
assign n93 = n178 & n184 & n183 & n185 & n186 & n187 & n188 & n189;
assign n94 = n141 & n155 & n160 & n164 & n172 & n122 & n173 & n174;
assign n95 = n221 & n222 & (n223 | n224);
assign n96 = n213 & n214 & n215 & n216 & n217 & n218 & n219 & n220;
assign n97 = n210 & n206 & n583 & n212 & n584 & n585 & n586 & n587;
assign n98 = n582 & n580 & ~n255 & n123 & n238 & n249 & ~n254;
assign n99 = n660 & n685 & n615 & n686 & n687 & n325 & n253 & n684;
assign n100 = n92 & n93 & n94 & n95 & n96 & n97 & n98 & n99;
assign n101 = n102 & n348 & n349 & n347 & n350 & n351 & n352 & n353;
assign n102 = n325 & n326 & n152 & n327 & n328 & n329 & n330 & n331;
assign n103 = n371 & (i_5_ | n372);
assign n104 = n369 & (n190 | n223 | n370);
assign n105 = n630 & n366 & n368 & n149 & n216 & n631;
assign n106 = n151 & n358 & n359 & n360 & n361 & n362 & n363 & n364;
assign n107 = n580 & n379 & n210 & n267 & n285 & ~n377;
assign n108 = n90 & n417 & n712 & n148 & n568 & n713;
assign n109 = n646 & n66 & n75 & n86 & n374 & ~n376;
assign n110 = n102 & n103 & n104 & n105 & n106 & n107 & n108 & n109;
assign n111 = n414 & (n415 | n416);
assign n112 = n281 & n413 & (n224 | ~n332);
assign n113 = n407 & n79 & n408 & n409 & n49 & n410 & n411 & n412;
assign n114 = n399 & n400 & n401 & n402 & n403 & n404 & n405 & n406;
assign n115 = n391 & n392 & n393 & n394 & n395 & n396 & n397 & n398;
assign n116 = n349 & n424 & n420 & n431 & n94 & n307;
assign n117 = n638 & n656 & n713 & n694 & n57 & n651;
assign n118 = n427 & n428 & n429 & n614 & n86 & n696;
assign n119 = n111 & n112 & n113 & n114 & n115 & n116 & n117 & n118;
assign n120 = n262 & n266 & n267 & n268 & n269 & n270 & n271 & n272;
assign n121 = n315 & n202 & n613 & n614;
assign n122 = n168 & n169 & (n170 | n171);
assign n123 = n88 & n231 & (n232 | n233);
assign n124 = n240 | n415 | i_0_ | ~i_2_;
assign n125 = n443 | n190 | n444;
assign n126 = n500 & n719 & n720;
assign n127 = n435 & n457 & n442 & n437 & n386 & n111 & n348 & n106;
assign n128 = n120 & n121 & n122 & n123 & n124 & n125 & n126 & n127;
assign n129 = n447 & n456 & n455 & n457 & n115 & n347 & n458 & n459;
assign n130 = n382 & n496 & (n145 | n335);
assign n131 = n640 & n494 & n495 & n505 & n504 & n619;
assign n132 = n661 & n657 & n497;
assign n133 = n603 & n48 & n68 & n720 & n279 & n187 & n602 & n741;
assign n134 = ~n499 & n97 & n112 & n130 & n131 & n132 & n133 & ~n498;
assign n135 = n339 | n542;
assign n136 = n440 | n416;
assign n137 = n166 | n541;
assign n138 = n236 | n538;
assign n139 = (n440 | n237) & (n305 | n224);
assign n140 = n679 & (n301 | n226 | n515);
assign n141 = n135 & n136 & n137 & n138 & n139 & n140;
assign n142 = n301 | n354 | n474;
assign n143 = n166 | n341;
assign n144 = n430 | n158;
assign n145 = i_6_ | i_7_;
assign n146 = n142 & n143 & (n144 | n145);
assign n147 = n422 | n467;
assign n148 = n170 | n544;
assign n149 = n342 | n367;
assign n150 = n440 | n436;
assign n151 = n166 | n365;
assign n152 = ~i_6_ | ~i_8_ | n453;
assign n153 = n422 | n546;
assign n154 = n146 & (n440 | n232 | n430);
assign n155 = n147 & n148 & n149 & n150 & n151 & n152 & n153 & n154;
assign n156 = n425 | n448;
assign n157 = n229 | n252 | n226;
assign n158 = i_5_ | n533;
assign n159 = n182 | ~n332;
assign n160 = n156 & n157 & (n158 | n159);
assign n161 = n529 | n548;
assign n162 = n425 | n546;
assign n163 = (n440 | n534) & (n423 | n454);
assign n164 = n161 & n162 & n163;
assign n165 = n182 | n430;
assign n166 = i_5_ | n240;
assign n167 = n165 | n166;
assign n168 = n240 | n223 | n208;
assign n169 = n342 | n337;
assign n170 = ~i_5_ | n533;
assign n171 = n425 | n430;
assign n172 = n553 & n554 & n167 & n286 & n555 & n556;
assign n173 = n683 & n477 & (n425 | n195);
assign n174 = n633 & n482 & n637 & n609 & n681 & n682 & n621 & n680;
assign n175 = n454 | n463;
assign n176 = n236 | n209;
assign n177 = (n166 | n559) & (n158 | n341);
assign n178 = n175 & n176 & n177;
assign n179 = n560 | n441;
assign n180 = n531 | n224;
assign n181 = n166 | n305;
assign n182 = ~i_6_ | n529;
assign n183 = n179 & n180 & (n181 | n182);
assign n184 = n295 & n294 & n563;
assign n185 = n166 | n367;
assign n186 = n529 | n531 | n472;
assign n187 = n225 | n301 | ~n332;
assign n188 = n678 & (~i_8_ | n562);
assign n189 = n675 & n676 & n269 & n76 & n362 & n624 & n677 & n50;
assign n190 = i_7_ | i_8_;
assign n191 = ~i_6_ | n543;
assign n192 = ~i_0_ | ~n469;
assign n193 = n85 & (n190 | n191 | n192);
assign n194 = i_6_ | ~i_7_;
assign n195 = n166 | n223;
assign n196 = n194 | n195;
assign n197 = n416 | n454;
assign n198 = n232 | n223;
assign n199 = n197 & (n198 | n145);
assign n200 = n166 | n566;
assign n201 = n339 | n274;
assign n202 = n200 & n201 & (n182 | n144);
assign n203 = n166 | n337;
assign n204 = n425 | n209;
assign n205 = (n158 | n233) & (n198 | n454);
assign n206 = n203 & n204 & n205;
assign n207 = n145 | n170 | ~n461;
assign n208 = ~i_6_ | n229;
assign n209 = n241 | n545;
assign n210 = n207 & (n208 | n209);
assign n211 = n223 | n339;
assign n212 = n211 | n208;
assign n213 = n440 | n209;
assign n214 = n158 | n274;
assign n215 = n236 | n572;
assign n216 = n182 | n572;
assign n217 = n415 | n211;
assign n218 = n301 | n191 | n488;
assign n219 = n182 | n211;
assign n220 = (n166 | n573) & (n532 | n145);
assign n221 = n531 | n229 | n545;
assign n222 = n59 & (n232 | ~n332 | n574);
assign n223 = ~i_2_ | n321;
assign n224 = n425 | n339;
assign n225 = i_6_ | n487;
assign n226 = ~i_1_ | n443;
assign n227 = n226 | ~i_7_ | n225;
assign n228 = i_0_ | n191 | ~n469;
assign n229 = ~i_7_ | ~i_8_;
assign n230 = n228 | n229;
assign n231 = n422 | n195;
assign n232 = ~i_5_ | n240;
assign n233 = n182 | ~n461;
assign n234 = n190 | n515 | n488;
assign n235 = n342 | n372;
assign n236 = i_6_ | n529;
assign n237 = n531 | n158;
assign n238 = n234 & n235 & (n236 | n237);
assign n239 = n321 | n577;
assign n240 = ~i_3_ | i_4_;
assign n241 = ~i_2_ | n373;
assign n242 = ~i_6_ | i_8_;
assign n243 = n239 & (n240 | n241 | n242);
assign n244 = i_6_ | n323;
assign n245 = n190 | ~n461;
assign n246 = n244 | n245;
assign n247 = n339 | n573;
assign n248 = i_3_ | i_4_ | i_6_;
assign n249 = n247 & (n229 | n248 | ~n332);
assign n250 = i_2_ | ~i_3_;
assign n251 = n250 | ~i_0_ | n225;
assign n252 = i_6_ | ~i_4_ | i_5_;
assign n253 = ~i_1_ | ~i_7_ | n250 | n252;
assign n254 = i_8_ & (~n251 | (~n430 & ~n472));
assign n255 = ~i_5_ & (~n591 | (~n422 & ~n561));
assign n256 = n425 | n436;
assign n257 = n378 | ~n461;
assign n258 = n170 | n367;
assign n259 = n208 | n558;
assign n260 = n327 & (n166 | n229 | ~n461);
assign n261 = n301 | n144;
assign n262 = n256 & n257 & n258 & n259 & n260 & n261;
assign n263 = n415 | n538;
assign n264 = n181 | n208;
assign n265 = n578 & (n301 | n241 | n444);
assign n266 = n78 & n263 & n264 & n265;
assign n267 = n592 & n593;
assign n268 = n238 & n700 & (n537 | n191);
assign n269 = n339 | n440 | ~n461;
assign n270 = n342 | n365;
assign n271 = n232 | n241 | n242;
assign n272 = n669 & n699 & n656 & n410;
assign n273 = ~n415 & (~n237 | (~n305 & ~n533));
assign n274 = n208 | ~n332;
assign n275 = n274 | n170;
assign n276 = n444 | n565;
assign n277 = n365 | ~i_4_ | i_5_;
assign n278 = n276 & n277 & (n225 | n245);
assign n279 = n232 | n372;
assign n280 = n529 | n571;
assign n281 = n342 | n159;
assign n282 = n182 | n539;
assign n283 = n691 & (n527 | n544);
assign n284 = n689 & n466 & n690 & n658 & n452 & n648 & n138 & n402;
assign n285 = n279 & n280 & n281 & n282 & n183 & n146 & n283 & n284;
assign n286 = n545 | n274;
assign n287 = n158 | n542;
assign n288 = n532 | n425;
assign n289 = n425 | n453;
assign n290 = n170 | n302 | n430;
assign n291 = n182 | n423;
assign n292 = (n532 | n454) & (n528 | n145);
assign n293 = n286 & n136 & n287 & n288 & n289 & n290 & n291 & n292;
assign n294 = n208 | n546;
assign n295 = n440 | n493;
assign n296 = n236 | n564;
assign n297 = n158 | n591;
assign n298 = n688 & (n158 | n236 | ~n332);
assign n299 = n305 | n229 | n354;
assign n300 = n294 & n295 & n296 & n297 & n298 & n299;
assign n301 = ~i_7_ | i_8_;
assign n302 = i_6_ | ~i_8_;
assign n303 = n531 | n339;
assign n304 = (n301 | n228) & (n302 | n303);
assign n305 = i_2_ | n321;
assign n306 = i_3_ | i_5_;
assign n307 = n239 & (n305 | n236 | n306);
assign n308 = n602 & n603 & n604 & n519;
assign n309 = n702 & (~i_1_ | n182 | n342);
assign n310 = n351 & n285 & n120 & n300 & n304 & n293;
assign n311 = n673 & n84 & n640 & n675 & n701 & n67;
assign n312 = n76 & n404 & n219 & n636 & n649 & n79;
assign n313 = n308 & n95 & n307 & n309 & n160 & n310 & n311 & n312;
assign n314 = i_3_ | n487;
assign n315 = n159 | n314;
assign n316 = n165 | n232;
assign n317 = n440 | n423;
assign n318 = n190 | n248 | ~n332;
assign n319 = (n236 | n536) & (n415 | n575);
assign n320 = n317 & n318 & n319;
assign n321 = i_0_ | ~i_1_;
assign n322 = n191 | n301 | n321 | i_3_;
assign n323 = i_3_ | ~i_5_;
assign n324 = n208 | n223 | n323;
assign n325 = n537 | n252;
assign n326 = n415 | n467;
assign n327 = n342 | n573;
assign n328 = n706 & (i_0_ | n443 | n419);
assign n329 = i_3_ | n566;
assign n330 = n320 & n478 & n300 & n172 & n121 & n612 & n617;
assign n331 = n705 & n218 & n403 & n257 & n150 & n187 & n583 & n704;
assign n332 = ~i_2_ & ~n426;
assign n333 = ~n170 & (~n233 | (~n301 & n332));
assign n334 = ~n430 & (~n224 | (~n314 & ~n529));
assign n335 = n342 | n241;
assign n336 = n335 | n190;
assign n337 = ~n332 | n422;
assign n338 = n337 | n232;
assign n339 = i_5_ | n527;
assign n340 = n242 | n339 | ~n461;
assign n341 = n415 | ~n461;
assign n342 = ~i_5_ | n527;
assign n343 = n341 | n342;
assign n344 = n681 & n563 & n703;
assign n345 = n229 | n444;
assign n346 = i_1_ | ~n469;
assign n347 = n243 & n344 & (n345 | n346);
assign n348 = n621 & n622 & n623 & n624 & n496 & n625 & n626 & n627;
assign n349 = n340 & n343 & n58 & n620;
assign n350 = n618 & n405 & n619;
assign n351 = n605 & n178 & n606 & n607 & n278 & n596 & n601 & n608;
assign n352 = n582 & n193 & n266;
assign n353 = n399 & n258 & n695 & n708 & n506 & n186 & n654 & n707;
assign n354 = ~i_6_ | n487;
assign n355 = n301 | n354 | ~n461;
assign n356 = ~i_4_ | ~i_5_;
assign n357 = n356 | n165;
assign n358 = n182 | n448;
assign n359 = n241 | n224;
assign n360 = n232 | n182 | n241;
assign n361 = n166 | n159;
assign n362 = n170 | n341;
assign n363 = n47 & n501 & n147;
assign n364 = n408 & n396 & n676 & n197 & n710 & n388 & n711 & n709;
assign n365 = n430 | n208;
assign n366 = n365 | n232;
assign n367 = ~n332 | n425;
assign n368 = n367 | n158;
assign n369 = n531 | n208 | n547;
assign n370 = i_6_ | n547;
assign n371 = n534 | n449;
assign n372 = n425 | ~n461;
assign n373 = ~i_0_ | ~i_1_;
assign n374 = n373 | n301 | n339;
assign n375 = (i_1_ & (~i_5_ | ~n426)) | (i_5_ & ~n426);
assign n376 = ~n454 & ~i_4_ & n375;
assign n377 = ~n195 & (~n425 | ~n449);
assign n378 = n232 | n236;
assign n379 = ~n332 | n378;
assign n380 = n241 | n557;
assign n381 = n423 | n208;
assign n382 = n166 | n590;
assign n383 = n232 | n542;
assign n384 = (n170 | n541) & (n422 | n453);
assign n385 = n716 & (~i_1_ | i_2_ | n577);
assign n386 = n380 & n381 & n382 & n383 & n384 & n385;
assign n387 = n422 | n549;
assign n388 = n355 & n357 & n628 & n629;
assign n389 = n529 | n515;
assign n390 = n387 & n388 & (n389 | n346);
assign n391 = n236 | n549;
assign n392 = n170 | n590;
assign n393 = n415 | n441;
assign n394 = n182 | n564;
assign n395 = n425 | n538;
assign n396 = n208 | n441;
assign n397 = n425 | n441;
assign n398 = n390 & n320 & n386 & n308 & n278 & n718;
assign n399 = n166 | n430 | n454;
assign n400 = n170 | n159;
assign n401 = n314 | n559;
assign n402 = n425 | n564;
assign n403 = n144 | n454;
assign n404 = n314 | n274;
assign n405 = n538 | n208;
assign n406 = n326 & n607 & n282 & n697 & n714 & n715;
assign n407 = n474 | n438;
assign n408 = n314 | n449 | ~n461;
assign n409 = n449 | n564;
assign n410 = n182 | n467;
assign n411 = n708 & n625 & (n537 | n248);
assign n412 = n613 & n698 & n710;
assign n413 = n594 & n693 & n90;
assign n414 = n301 | n430 | n252;
assign n415 = i_6_ | n301;
assign n416 = n305 | n170;
assign n417 = n415 | n453;
assign n418 = n425 | n576;
assign n419 = n225 | n229;
assign n420 = n417 & n418 & (n192 | n419);
assign n421 = n574 | ~n332 | n545;
assign n422 = ~i_6_ | n301;
assign n423 = n166 | n241;
assign n424 = n421 & (n422 | n423);
assign n425 = ~i_6_ | n190;
assign n426 = ~i_0_ | i_1_;
assign n427 = n425 | n240 | n426;
assign n428 = n354 | i_7_ | n192;
assign n429 = n229 | n241 | n244;
assign n430 = i_2_ | n373;
assign n431 = n224 | n430;
assign n432 = ~n454 & ((~n223 & ~n306) | ~n534);
assign n433 = n372 | n158;
assign n434 = n415 | n546;
assign n435 = n434 & (n229 | ~n332 | n370);
assign n436 = n223 | n545;
assign n437 = n401 & (n236 | n436);
assign n438 = n229 | n515;
assign n439 = ~i_0_ | ~i_2_;
assign n440 = i_6_ | n190;
assign n441 = n223 | n170;
assign n442 = (n438 | n439) & (n440 | n441);
assign n443 = ~i_2_ | i_3_;
assign n444 = i_6_ | n356;
assign n445 = n208 | n493;
assign n446 = (n422 | n575) & (n529 | n441);
assign n447 = n445 & n361 & n446;
assign n448 = n430 | n545;
assign n449 = ~i_6_ | ~i_7_;
assign n450 = n448 | n449;
assign n451 = n232 | n367;
assign n452 = n305 | n422 | n533;
assign n453 = n342 | n223;
assign n454 = i_6_ | n229;
assign n455 = n451 & n452 & (n453 | n454);
assign n456 = n636 & n450 & n622 & n579;
assign n457 = n635 & n634 & n633 & n632 & n553 & n552 & ~n432 & n433;
assign n458 = n601 & n249 & n617;
assign n459 = n294 & n297 & n701 & n721 & n206 & n199 & n722 & n155;
assign n460 = ~n252 & ~n529;
assign n461 = i_2_ & ~n426;
assign n462 = n461 & ((~n194 & ~n314) | n460);
assign n463 = n305 | n339;
assign n464 = n463 | n415;
assign n465 = n182 | n534;
assign n466 = n314 | n365;
assign n467 = n241 | n158;
assign n468 = n465 & n466 & (n236 | n467);
assign n469 = i_3_ & i_2_;
assign n470 = n469 & ((~n229 & ~n252) | ~n389);
assign n471 = ~n470 & (i_2_ | n306 | n440);
assign n472 = ~i_6_ | n527;
assign n473 = (n229 | n472) & (i_7_ | n370);
assign n474 = i_3_ | n426;
assign n475 = (n321 | n158) & (i_4_ | n474);
assign n476 = n639 & n638 & n637 & n464 & n148 & ~n462;
assign n477 = n550 & n551 & n552;
assign n478 = n291 & n322 & n324;
assign n479 = n732 & n734 & (~i_1_ | n471);
assign n480 = n554 & n701 & n731 & n730 & n396 & n161 & n688 & n727;
assign n481 = n468 & n420 & n476 & n96 & n477 & n478 & n479 & n480;
assign n482 = n440 | n540;
assign n483 = n482 & (n198 | n415);
assign n484 = n302 | n158;
assign n485 = n166 | n236;
assign n486 = n484 & n485 & (~i_5_ | n440);
assign n487 = i_4_ | ~i_5_;
assign n488 = i_3_ | ~i_0_ | i_2_;
assign n489 = (n487 | n488) & (n373 | n170);
assign n490 = n262 & n92 & n612 & n738 & n739 & n737;
assign n491 = n621 & n649 & n644 & n643 & n289 & n162 & n393 & n736;
assign n492 = n483 & n447 & n481 & n114 & n103 & n442 & n490 & n491;
assign n493 = n241 | n314;
assign n494 = n493 | n422;
assign n495 = n209 | n182;
assign n496 = n425 | n493;
assign n497 = n356 | n182 | n346;
assign n498 = ~n170 & ~n449 & (~n430 | n461);
assign n499 = n332 & (~n378 | ~n485 | ~n740);
assign n500 = n545 | n145 | ~n332;
assign n501 = n531 | n557;
assign n502 = (n342 | n171) & (n449 | n335);
assign n503 = n500 & n501 & n502;
assign n504 = n166 | n274;
assign n505 = n158 | n566;
assign n506 = n422 | n576;
assign n507 = n719 & (n190 | n354 | n561);
assign n508 = n430 | n345;
assign n509 = n476 & n455 & n503 & n293 & n570 & n424;
assign n510 = n611 & n383 & n203 & n213 & n682 & n361;
assign n511 = n317 & n176 & n175 & n643 & n641 & n318;
assign n512 = n166 | n531;
assign n513 = n270 & (n425 | n512);
assign n514 = i_3_ | n530;
assign n515 = i_6_ | n543;
assign n516 = n514 | n515;
assign n517 = n145 | n575;
assign n518 = n166 | n233;
assign n519 = n170 | n566;
assign n520 = n669 & n387 & n217 & n693 & n200;
assign n521 = n404 & n692 & n359 & n744 & n650 & n642 & n483 & n105;
assign n522 = ~n232 & (~n544 | ~n591);
assign n523 = n390 & n104 & n113 & n93 & n141 & n304;
assign n524 = n745 & n746 & n747 & n77 & n381 & n605;
assign n525 = n689 & n271 & n705 & n360 & n47 & n618;
assign n526 = n481 & n435 & n131 & n513 & n503 & n523 & n524 & n525;
assign n527 = i_3_ | ~i_4_;
assign n528 = n305 | n342;
assign n529 = i_7_ | ~i_8_;
assign n530 = i_1_ | i_0_;
assign n531 = ~i_2_ | n530;
assign n532 = n342 | n531;
assign n533 = ~i_3_ | ~i_4_;
assign n534 = n170 | n241;
assign n535 = i_0_ | n443 | n225;
assign n536 = n339 | n430;
assign n537 = n223 | n229;
assign n538 = n531 | n170;
assign n539 = n305 | n158;
assign n540 = n305 | n314;
assign n541 = n422 | n430;
assign n542 = n208 | ~n461;
assign n543 = i_4_ | i_5_;
assign n544 = n415 | n430;
assign n545 = i_4_ | n306;
assign n546 = n305 | n545;
assign n547 = ~i_3_ | ~i_5_;
assign n548 = n430 | n370;
assign n549 = n223 | n158;
assign n550 = n232 | n341;
assign n551 = n170 | n372;
assign n552 = n208 | n540;
assign n553 = n182 | n549;
assign n554 = n208 | n463;
assign n555 = n540 | n454;
assign n556 = n425 | n467;
assign n557 = n422 | n339;
assign n558 = n531 | n314;
assign n559 = ~n332 | n454;
assign n560 = ~i_6_ | i_7_;
assign n561 = i_1_ | n443;
assign n562 = n426 | ~i_3_ | n252;
assign n563 = n236 | n211;
assign n564 = n305 | n232;
assign n565 = n529 | n474;
assign n566 = n422 | ~n461;
assign n567 = n236 | n463;
assign n568 = n536 | n560;
assign n569 = n339 | n341;
assign n570 = n567 & n196 & n568 & n569;
assign n571 = n223 | n314;
assign n572 = n241 | n339;
assign n573 = ~n332 | n415;
assign n574 = i_6_ | i_8_;
assign n575 = ~n461 | n545;
assign n576 = n232 | n531;
assign n577 = i_3_ | n190 | n444;
assign n578 = n49 & n394 & n421 & n387 & n445;
assign n579 = n440 | n564;
assign n580 = n246 & n578 & n243 & n410 & n579 & n418;
assign n581 = ~n461 | n485;
assign n582 = n227 & n230 & n451 & n581;
assign n583 = n422 | n441;
assign n584 = n422 | n571;
assign n585 = n182 | n546;
assign n586 = n425 | n416;
assign n587 = n182 | n436;
assign n588 = n672 & n673 & n606 & n674;
assign n589 = n668 & n626 & n669 & n670 & n671 & n287 & n645 & n296;
assign n590 = ~n332 | n440;
assign n591 = n182 | n531;
assign n592 = n407 & n135 & n692 & n392 & n137 & n693 & n694 & n55;
assign n593 = n695 & n696 & n685 & n687 & n585 & n697 & n698 & n681;
assign n594 = n339 | n559;
assign n595 = n181 | n425;
assign n596 = n418 & n393 & n594 & n595 & n550;
assign n597 = ~n332 | n557;
assign n598 = n425 | n144;
assign n599 = n440 | n571;
assign n600 = n314 | n541;
assign n601 = n600 & n599 & n598 & n597 & n518 & ~n273 & n275;
assign n602 = n182 | n493;
assign n603 = n232 | n274;
assign n604 = n422 | n558;
assign n605 = n170 | n236 | ~n461;
assign n606 = n430 | n485;
assign n607 = n208 | n416;
assign n608 = n551 & n686 & n639 & n637 & n671 & n569 & n57 & n653;
assign n609 = n339 | n159;
assign n610 = n422 | n237;
assign n611 = n237 | n454;
assign n612 = n609 & n395 & n316 & n610 & n611 & n391;
assign n613 = n236 | n416;
assign n614 = n539 | n242;
assign n615 = n181 | n302;
assign n616 = n454 | n564;
assign n617 = n615 & n256 & n269 & n234 & n214 & n270 & n50 & n616;
assign n618 = n529 | n535;
assign n619 = n223 | n557;
assign n620 = n532 | n208;
assign n621 = n422 | n538;
assign n622 = n182 | n571;
assign n623 = n181 | n440;
assign n624 = n182 | n463;
assign n625 = n182 | n195;
assign n626 = n565 | n191;
assign n627 = n397 & n338 & n336 & ~n334 & n82 & ~n333;
assign n628 = n425 | n571;
assign n629 = n342 | n274;
assign n630 = n236 | n342 | ~n461;
assign n631 = n534 | n415;
assign n632 = n232 | n171;
assign n633 = n236 | n539;
assign n634 = n342 | n233;
assign n635 = n672 & (n252 | ~n332 | n529);
assign n636 = n546 | n454;
assign n637 = n232 | n159;
assign n638 = n182 | n416;
assign n639 = n430 | n557;
assign n640 = n422 | n540;
assign n641 = i_2_ | n530;
assign n642 = n402 & n623 & n641 & n394;
assign n643 = n425 | n237;
assign n644 = n237 | n208;
assign n645 = n415 | n564;
assign n646 = n415 | n576;
assign n647 = n138 & n263 & n694 & n610 & n501 & n677 & n297;
assign n648 = n440 | n576;
assign n649 = n440 | n303;
assign n650 = n59 & n57 & n648 & n649 & n587;
assign n651 = n339 | n591;
assign n652 = i_5_ | n236 | n514;
assign n653 = n528 | n422;
assign n654 = n303 | n194;
assign n655 = n742 & n55 & n180;
assign n656 = n181 | n454;
assign n657 = n236 | n448;
assign n658 = n198 | n182;
assign n659 = n214 & n235 & n671 & n58 & n652 & n137;
assign n660 = n528 | n425;
assign n661 = n440 | n572;
assign n662 = n725 & n632 & n581 & n231 & n400 & n699 & n584;
assign n663 = n147 & n143 & n644 & n410 & n296 & n201 & n362 & n743;
assign n664 = n651 & n445 & n628;
assign n665 = n670 & n713 & n668 & n633 & n598 & n600;
assign n666 = n180 & n257 & n151 & n49 & n694 & n742;
assign n667 = n403 & n219 & n555 & n392 & n371 & n629;
assign n668 = n415 | n448;
assign n669 = n208 | n549;
assign n670 = n454 | n441;
assign n671 = n440 | n467;
assign n672 = n440 | n195;
assign n673 = n422 | n209;
assign n674 = n236 | n453;
assign n675 = n198 | n425;
assign n676 = n236 | n493;
assign n677 = n440 | n538;
assign n678 = n301 | n561 | n444;
assign n679 = n208 | n303;
assign n680 = n263 & n610 & n56;
assign n681 = n208 | n467;
assign n682 = n539 | n449;
assign n683 = ~n461 | ~i_3_ | n454;
assign n684 = n658 & n288 & n623 & n653 & n631 & n630 & n595;
assign n685 = n301 | n423;
assign n686 = n301 | n535;
assign n687 = n536 | n229;
assign n688 = n208 | n575;
assign n689 = n422 | n531 | n356;
assign n690 = n241 | n378;
assign n691 = n301 | n241 | n472;
assign n692 = n538 | n454;
assign n693 = n314 | n544;
assign n694 = n440 | n539;
assign n695 = n190 | n548;
assign n696 = n192 | n389;
assign n697 = n208 | n448;
assign n698 = n236 | n335;
assign n699 = n342 | n590;
assign n700 = n153 & (n440 | n223 | n306);
assign n701 = n440 | n549;
assign n702 = n305 | ~i_7_ | n244;
assign n703 = n527 | n182 | n373;
assign n704 = n638 & n235 & n136 & n677 & n669 & n567 & n217;
assign n705 = n540 | n574;
assign n706 = n425 | n241 | n547;
assign n707 = n164 & (n321 | n415 | n543);
assign n708 = n181 | n301;
assign n709 = n674 & (~i_7_ | n223 | n248);
assign n710 = n342 | n541;
assign n711 = n158 | n337;
assign n712 = ~i_3_ | i_5_ | n305 | n415;
assign n713 = n422 | n198;
assign n714 = n712 & (n354 | ~n461 | n529);
assign n715 = n171 | n323;
assign n716 = i_7_ | n244 | ~n461;
assign n717 = n301 | n225 | n226;
assign n718 = n717 & (n419 | n346);
assign n719 = n182 | n453;
assign n720 = n529 | n225 | n488;
assign n721 = n679 & (n226 | n438);
assign n722 = (n449 | n195) & (n223 | n224);
assign n723 = (n527 | n194) & (n301 | n232);
assign n724 = (n529 | n444) & (n190 | n166);
assign n725 = n339 | n233;
assign n726 = n549 | n194;
assign n727 = n517 & n149 & n725 & n726;
assign n728 = i_8_ | n252 | n488;
assign n729 = n728 & (n240 | n373 | n415);
assign n730 = n729 & (i_3_ | n454 | ~n461);
assign n731 = n533 | n236 | ~n332;
assign n732 = (n475 | n425) & (n473 | n241);
assign n733 = (n194 | n512) & (n529 | n540);
assign n734 = n733 & (n430 | (n724 & n723));
assign n735 = ~i_0_ | ~i_2_ | ~i_7_ | n342;
assign n736 = n280 & n89 & n735 & n380 & n169 & n83;
assign n737 = (~n332 | n486) & (n232 | n591);
assign n738 = n489 | n190;
assign n739 = n373 | n208 | n547;
assign n740 = (n533 | n415) & (n422 | n232);
assign n741 = n383 & n295 & n675;
assign n742 = i_4_ | i_6_ | n514;
assign n743 = n215 & n204 & n690 & n162 & n726 & n258;
assign n744 = n184 & (n534 | n236);
assign n745 = ~i_2_ | ~i_5_ | n748 | n749;
assign n746 = i_3_ | n430 | n574;
assign n747 = n487 | n565;
assign n748 = i_1_ & (i_4_ | n229);
assign n749 = ~i_1_ & (~i_4_ | n208);
endmodule

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,930 @@
// Benchmark "TOP" written by ABC on Mon Feb 4 17:31:22 2019
module ex1010 (
i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_, i_9_,
o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_, o_8_, o_9_ );
input i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_, i_8_, i_9_;
output o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_, o_8_, o_9_;
wire 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, 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, n367, n368, n369, n370, n371, n372, n373, n374, n375,
n376, n377, n378, n379, n380, n381, n382, n383, n384, n385, n386, n387,
n388, n389, n390, n391, n392, n393, n394, n395, n396, n397, n398, n399,
n400, n401, n402, n403, n404, n405, n406, n407, n408, n409, n410, n411,
n412, n413, n414, n415, n416, n417, n418, n419, n420, n421, n422, n423,
n424, n425, n426, n427, n428, n429, n430, n431, n432, n433, n434, n435,
n436, n437, n438, n439, n440, n441, n442, n443, n444, n445, n446, n447,
n448, n449, n450, n451, n452, n453, n454, n455, n456, n457, n458, n459,
n460, n461, n462, n463, n464, n465, n466, n467, n468, n469, n470, n471,
n472, n473, n474, n475, n476, n477, n478, n479, n480, n481, n482, n483,
n484, n485, n486, n487, n488, n489, n490, n491, n492, n493, n494, n495,
n496, n497, n498, n499, n500, n501, n502, n503, n504, n505, n506, n507,
n508, n509, n510, n511, n512, n513, n514, n515, n516, n517, n518, n519,
n520, n521, n522, n523, n524, n525, n526, n527, n528, n529, n530, n531,
n532, n533, n534, n535, n536, n537, n538, n539, n540, n541, n542, n543,
n544, n545, n546, n547, n548, n549, n550, n551, n552, n553, n554, n555,
n556, n557, n558, n559, n560, n561, n562, n563, n564, n565, n566, n567,
n568, n569, n570, n571, n572, n573, n574, n575, n576, n577, n578, n579,
n580, n581, n582, n583, n584, n585, n586, n587, n588, n589, n590, n591,
n592, n593, n594, n595, n596, n597, n598, n599, n600, n601, n602, n603,
n604, n605, n606, n607, n608, n609, n610, n611, n612, n613, n614, n615,
n616, n617, n618, n619, n620, n621, n622, n623, n624, n625, n626, n627,
n628, n629, n630, n631, n632, n633, n634, n635, n636, n637, n638, n639,
n640, n641, n642, n643, n644, n645, n646, n647, n648, n649, n650, n651,
n652, n653, n654, n655, n656, n657, n658, n659, n660, n661, n662, n663,
n664, n665, n666, n667, n668, n669, n670, n671, n672, n673, n674, n675,
n676, n677, n678, n679, n680, n681, n682, n683, n684, n685, n686, n687,
n688, n689, n690, n691, n692, n693, n694, n695, n696, n697, n698, n699,
n700, n701, n702, n703, n704, n705, n706, n707, n708, n709, n710, n711,
n712, n713, n714, n715, n716, n717, n718, n719, n720, n721, n722, n723,
n724, n725, n726, n727, n728, n729, n730, n731, n732, n733, n734, n735,
n736, n737, n738, n739, n740, n741, n742, n743, n744, n745, n746, n747,
n748, n749, n750, n751, n752, n753, n754, n755, n756, n757, n758, n759,
n760, n761, n762, n763, n764, n765, n766, n767, n768, n769, n770, n771,
n772, n773, n774, n775, n776, n777, n778, n779, n780, n781, n782, n783,
n784, n785, n786, n787, n788, n789, n790, n791, n792, n793, n794, n795,
n796, n797, n798, n799, n800, n801, n802, n803, n804, n805, n806, n807,
n808, n809, n810, n811, n812, n813, n814, n815, n816, n817, n818, n819,
n820, n821, n822, n823, n824, n825, n826, n827, n828, n829, n830, n831,
n832, n833, n834, n835, n836, n837, n838, n839, n840, n841, n842, n843,
n844, n845, n846, n847, n848, n849, n850, n851, n852, n853, n854, n855,
n856, n857, n858, n859, n860, n861, n862, n863, n864, n865, n866, n867,
n868, n869;
assign o_0_ = ~n418;
assign o_1_ = ~n31;
assign o_2_ = ~n403;
assign o_3_ = ~n378;
assign o_4_ = ~n349;
assign o_5_ = ~n30;
assign o_6_ = ~n270;
assign o_7_ = ~n216;
assign o_8_ = ~n170;
assign o_9_ = ~n109;
assign n30 = n155 & n50 & n301 & n302 & n303 & n304 & n305 & n306;
assign n31 = n97 & n404 & n151 & n405 & n406 & n407 & n408 & n409;
assign n32 = (n436 | n458) & (n219 | n479);
assign n33 = ~i_9_ | n429;
assign n34 = n423 | n446;
assign n35 = n32 & (n33 | n34);
assign n36 = (n222 | n481) & (n43 | n480);
assign n37 = ~i_9_ | n419;
assign n38 = n423 | n457;
assign n39 = n36 & (n37 | n38);
assign n40 = i_9_ | n440;
assign n41 = n420 | n441;
assign n42 = n419 | n450;
assign n43 = i_9_ | n421;
assign n44 = (n42 | n43) & (n40 | n41);
assign n45 = n219 | n103;
assign n46 = n439 | n290;
assign n47 = n565 & n320 & n566;
assign n48 = n563 & n564 & (n272 | n476);
assign n49 = n561 & n562 & n125 & n556 & n560 & n557;
assign n50 = n45 & n46 & n44 & n35 & n39 & n47 & n48 & n49;
assign n51 = n40 | n456;
assign n52 = n436 | n203;
assign n53 = ~i_9_ | n427;
assign n54 = n426 | n446;
assign n55 = n51 & n52 & (n53 | n54);
assign n56 = n37 | n262;
assign n57 = n272 | n487;
assign n58 = n319 & (n219 | n488);
assign n59 = n555 & n55 & (n91 | n489);
assign n60 = n53 | n92;
assign n61 = n219 | n485;
assign n62 = n33 | n486;
assign n63 = n388 & n554 & (n53 | n483);
assign n64 = n56 & n57 & n58 & n59 & n60 & n61 & n62 & n63;
assign n65 = n552 & (n37 | n490);
assign n66 = n436 | n491;
assign n67 = (n33 | n469) & (n96 | n43);
assign n68 = n219 | n339;
assign n69 = (n37 | n478) & (n439 | n494);
assign n70 = n553 & n328 & (n309 | n481);
assign n71 = n65 & n66 & n67 & n68 & n69 & n70;
assign n72 = n91 | n496;
assign n73 = n100 | n41;
assign n74 = (n309 | n463) & (n222 | n495);
assign n75 = (n222 | n463) & (n43 | n255);
assign n76 = (n422 | n462) & (n43 | n223);
assign n77 = n72 & n73 & n74 & n75 & n76;
assign n78 = n219 | n498;
assign n79 = n436 | n480;
assign n80 = (n436 | n447) & (n222 | n497);
assign n81 = (n86 | n475) & (n258 | n499);
assign n82 = (n309 | n480) & (n40 | n493);
assign n83 = n78 & n79 & n80 & n81 & n82;
assign n84 = (n443 | n86) & (n462 | n502);
assign n85 = n225 & n551 & (n258 | n500);
assign n86 = i_9_ | n460;
assign n87 = n433 | n466;
assign n88 = n84 & n85 & (n86 | n87);
assign n89 = (n222 | n203) & (n33 | n150);
assign n90 = n549 & n550 & (n219 | n199);
assign n91 = ~i_9_ | n466;
assign n92 = n435 | n442;
assign n93 = n89 & n90 & (n91 | n92);
assign n94 = n462 | n507;
assign n95 = n548 & n124 & (n100 | n506);
assign n96 = n441 | n442;
assign n97 = n94 & n95 & (n96 | n86);
assign n98 = (n219 | n92) & (n53 | n469);
assign n99 = n431 | n432;
assign n100 = i_9_ | n457;
assign n101 = n98 & (n99 | n100);
assign n102 = (n100 | n508) & (n33 | n489);
assign n103 = n423 | n460;
assign n104 = n102 & (n37 | n103);
assign n105 = (n86 | n465) & (n464 | n219);
assign n106 = n64 & n71 & n50 & n83 & n88 & n77;
assign n107 = n589 & n593 & n592 & n586 & n585 & n588;
assign n108 = n580 & n584 & n583 & n579 & n577 & n575;
assign n109 = n97 & n101 & n93 & n105 & n104 & n106 & n107 & n108;
assign n110 = n623 & (n100 | n514);
assign n111 = n37 | n507;
assign n112 = n86 | (n468 & n492);
assign n113 = n622 & (n462 | n498);
assign n114 = n620 & n621 & (n43 | n310);
assign n115 = n619 & n285 & n561 & n209 & n56 & n618 & n299 & n616;
assign n116 = n110 & n111 & n112 & n113 & n114 & n115;
assign n117 = (n37 | n471) & (n33 | n520);
assign n118 = n53 | n34;
assign n119 = (n91 | n523) & (n462 | n488);
assign n120 = n609 & n608 & (n100 | n475);
assign n121 = n312 & n613 & (n309 | n458);
assign n122 = n611 & n610 & (n447 | n43);
assign n123 = n117 & n118 & n119 & n120 & n121 & n122;
assign n124 = n462 | n505;
assign n125 = n43 | n468;
assign n126 = n73 & (n222 | n518);
assign n127 = (n86 | n525) & (n272 | n465);
assign n128 = n606 & (n309 | n524);
assign n129 = n603 & (n462 | n526);
assign n130 = n601 & n602 & (n439 | n498);
assign n131 = n605 & n604 & (n37 | n461);
assign n132 = n124 & n125 & n126 & n127 & n128 & n129 & n130 & n131;
assign n133 = (n272 | n495) & (n91 | n103);
assign n134 = n454 | n100;
assign n135 = n600 & (n309 | n484);
assign n136 = n462 | n477;
assign n137 = n598 & n599 & (n219 | n500);
assign n138 = n596 & n597 & (n222 | n42);
assign n139 = n133 & n134 & n135 & n136 & n137 & n138;
assign n140 = (n91 | n511) & (n272 | n528);
assign n141 = n594 & n595 & (n91 | n34);
assign n142 = n420 | n432;
assign n143 = n140 & n141 & (n86 | n142);
assign n144 = (n272 | n529) & (n258 | n503);
assign n145 = n86 | n530;
assign n146 = (n53 | n103) & (n424 | n462);
assign n147 = n144 & n145 & n146 & n61;
assign n148 = (n309 | n531) & (n436 | n456);
assign n149 = (n86 | n532) & (n100 | n472);
assign n150 = n421 | n442;
assign n151 = n148 & n149 & (n91 | n150);
assign n152 = (n40 & n436) | n533;
assign n153 = n380 & (n53 | n496);
assign n154 = n423 | n435;
assign n155 = n152 & n153 & (n91 | n154);
assign n156 = (n100 | n531) & (n91 | n534);
assign n157 = n426 | n466;
assign n158 = n156 & (n86 | n157);
assign n159 = (n33 | n505) & (n91 | n38);
assign n160 = n433 | n460;
assign n161 = n159 & (n33 | n160);
assign n162 = (n436 | n513) & (n33 | n92);
assign n163 = (n53 | n509) & (n222 | n512);
assign n164 = (n222 | n513) & (n37 | n467);
assign n165 = (n258 | n467) & (n43 | n501);
assign n166 = n626 & n625 & (n309 | n42);
assign n167 = n633 & n634 & n631 & n630 & n629 & n387 & n628 & n627;
assign n168 = n139 & n143 & n147 & n151 & n123 & n132 & n116 & n644;
assign n169 = n640 & n641 & n639 & n638 & n637 & n642 & n636 & n635;
assign n170 = n162 & n163 & n164 & n165 & n166 & n167 & n168 & n169;
assign n171 = (n37 | n92) & (n43 | n484);
assign n172 = n648 & n649 & (n458 | n86);
assign n173 = n647 & (n100 | n294);
assign n174 = n645 & n646 & (n219 | n540);
assign n175 = n171 & n172 & n173 & n174;
assign n176 = n33 | n477;
assign n177 = n272 | n255;
assign n178 = (n91 | n538) & (n452 | n43);
assign n179 = n91 | n504;
assign n180 = (n100 | n492) & (n258 | n504);
assign n181 = n559 & (n53 | n290);
assign n182 = n176 & n177 & n178 & n179 & n180 & n181;
assign n183 = n428 | n100;
assign n184 = n219 | n34;
assign n185 = (n436 | n472) & (n43 | n474);
assign n186 = n40 | n542;
assign n187 = (n91 | n339) & (n445 | n219);
assign n188 = (n40 | n525) & (n219 | n505);
assign n189 = n183 & n184 & n185 & n186 & n187 & n188;
assign n190 = n436 | n525;
assign n191 = n86 | n512;
assign n192 = (n86 | n480) & (n436 | n544);
assign n193 = n53 | n486;
assign n194 = n309 | n543;
assign n195 = (n258 | n251) & (n222 | n294);
assign n196 = n190 & n191 & n192 & n193 & n194 & n195;
assign n197 = (n96 | n100) & (n272 | n532);
assign n198 = n350 & n351 & (n40 | n513);
assign n199 = n450 | n457;
assign n200 = n197 & n198 & (n53 | n199);
assign n201 = (n462 | n496) & (n37 | n522);
assign n202 = (n309 | n517) & (n439 | n539);
assign n203 = n423 | n432;
assign n204 = n201 & n202 & (n86 | n203);
assign n205 = (n222 | n142) & (n272 | n521);
assign n206 = (n439 | n496) & (n33 | n470);
assign n207 = n205 & n206;
assign n208 = (n86 | n519) & (n100 | n537);
assign n209 = n53 | n150;
assign n210 = n674 & n673 & (n272 | n514);
assign n211 = n566 & n563 & n234 & n605 & n672 & n671;
assign n212 = n64 & n139 & (n461 | n91);
assign n213 = n676 & n675 & (n53 | n539);
assign n214 = n196 & n200 & n204 & n207 & n182 & n189 & n175;
assign n215 = n670 & n227 & n668 & n667 & n663 & n662 & n666 & n661;
assign n216 = n208 & n209 & n210 & n211 & n212 & n213 & n214 & n215;
assign n217 = n258 | n92;
assign n218 = (n309 | n542) & (n40 | n518);
assign n219 = ~i_9_ | n451;
assign n220 = n217 & n218 & (n219 | n38);
assign n221 = (n86 | n513) & (n462 | n545);
assign n222 = i_9_ | n425;
assign n223 = n442 | n466;
assign n224 = n221 & (n222 | n223);
assign n225 = n272 | n501;
assign n226 = n438 | n439;
assign n227 = n456 | n100;
assign n228 = n45 & n72 & (n43 | n525);
assign n229 = n686 & n685 & (n309 | n294);
assign n230 = n276 & n652 & n684 & n277;
assign n231 = n224 & n158 & n220 & n44 & n404 & n693 & n692 & n690;
assign n232 = n225 & n226 & n227 & n176 & n228 & n229 & n230 & n231;
assign n233 = n434 | n33;
assign n234 = n462 | n478;
assign n235 = n674 & (n40 | n536);
assign n236 = (n258 | n527) & (n222 | n510);
assign n237 = n33 | n523;
assign n238 = (n40 | n519) & (n37 | n259);
assign n239 = n439 | (n339 & n516);
assign n240 = n682 & n683 & (n100 | n541);
assign n241 = n233 & n234 & n235 & n236 & n237 & n238 & n239 & n240;
assign n242 = (n53 | n534) & (n462 | n54);
assign n243 = n96 | n272;
assign n244 = n681 & (n86 | n501);
assign n245 = n43 | n491;
assign n246 = n46 & n615 & (n91 | n479);
assign n247 = n679 & n680 & (n436 | n508);
assign n248 = n242 & n243 & n244 & n245 & n246 & n247;
assign n249 = n392 & (n40 | n492);
assign n250 = n678 & n677 & (n33 | n546);
assign n251 = n442 | n446;
assign n252 = n249 & n250 & (n53 | n251);
assign n253 = n272 | n536;
assign n254 = (n258 | n540) & (n86 | n515);
assign n255 = n431 | n441;
assign n256 = n253 & n254 & (n40 | n255);
assign n257 = (n91 | n520) & (n456 | n43);
assign n258 = ~i_9_ | n441;
assign n259 = n420 | n440;
assign n260 = n257 & (n258 | n259);
assign n261 = (n222 | n468) & (n258 | n339);
assign n262 = n420 | n449;
assign n263 = n261 & (n53 | n262);
assign n264 = (n37 | n290) & (n454 | n86);
assign n265 = (n219 | n511) & (n33 | n494);
assign n266 = n710 & n709 & (n309 | n506);
assign n267 = n713 & n712 & (n33 | n479);
assign n268 = n252 & n256 & n260 & n263 & n241 & n248 & n232 & n717;
assign n269 = n700 & n177 & n699 & n698 & n695 & n694 & n697 & n708;
assign n270 = n264 & n265 & n266 & n267 & n268 & n269;
assign n271 = (n100 | n535) & (n439 | n251);
assign n272 = i_9_ | n449;
assign n273 = n271 & (n272 | n42);
assign n274 = n91 | n546;
assign n275 = n439 | n546;
assign n276 = n436 | n476;
assign n277 = n219 | n150;
assign n278 = n253 & n719 & (n309 | n528);
assign n279 = n714 & (n91 | n526);
assign n280 = n321 & (n37 | n438);
assign n281 = n721 & n720 & (n86 | n41);
assign n282 = n274 & n275 & n276 & n277 & n278 & n279 & n280 & n281;
assign n283 = n219 | n478;
assign n284 = n428 | n436;
assign n285 = n100 | n521;
assign n286 = n665 & (n455 | n219);
assign n287 = n161 & n283 & n263 & n284 & n285 & n286;
assign n288 = (n40 | n497) & (n37 | n539);
assign n289 = n718 & (n219 | n486);
assign n290 = n453 | n460;
assign n291 = n288 & n289 & (n290 | n91);
assign n292 = n43 | (n476 & n506);
assign n293 = n686 & (n53 | n473);
assign n294 = n423 | n466;
assign n295 = n292 & n293 & (n272 | n294);
assign n296 = n219 | n469;
assign n297 = n100 | n533;
assign n298 = (n272 | n543) & (n462 | n486);
assign n299 = n455 | n53;
assign n300 = n296 & n297 & n298 & n299;
assign n301 = (n436 | n529) & (n219 | n547);
assign n302 = n749 & n748 & (n91 | n516);
assign n303 = n282 & n287 & n291 & n295 & n300 & n252 & n224 & n196;
assign n304 = n747 & n746 & n745 & n744 & n743 & n742 & n741 & n740;
assign n305 = n738 & n739 & n730 & n732 & n731 & n737 & n736 & n735;
assign n306 = n729 & n728 & n727 & n726 & n725 & n724 & n723 & n722;
assign n307 = n678 & (n219 | n490);
assign n308 = (n219 | n507) & (n459 | n462);
assign n309 = i_9_ | n446;
assign n310 = n419 | n433;
assign n311 = n307 & n308 & (n309 | n310);
assign n312 = n53 | n503;
assign n313 = n710 & n632 & (n309 | n501);
assign n314 = n753 & n590 & n190 & n78 & n79 & n51;
assign n315 = n469 | n91;
assign n316 = n669 & n649 & (n37 | n477);
assign n317 = n751 & n752 & (n439 | n92);
assign n318 = n311 & n312 & n313 & n314 & n315 & n234 & n316 & n317;
assign n319 = n447 | n100;
assign n320 = n219 | n477;
assign n321 = n219 | n154;
assign n322 = (n439 | n461) & (n100 | n530);
assign n323 = n222 | n472;
assign n324 = n654 & (n91 | n259);
assign n325 = (n222 | n537) & (n37 | n482);
assign n326 = n750 & n738 & (n272 | n484);
assign n327 = n319 & n320 & n321 & n322 & n323 & n324 & n325 & n326;
assign n328 = n436 | n492;
assign n329 = n53 | n489;
assign n330 = n452 | n100;
assign n331 = (n465 | n43) & (n272 | n512);
assign n332 = (n439 | n538) & (n37 | n527);
assign n333 = n462 | n538;
assign n334 = (n462 | n520) & (n424 | n219);
assign n335 = n258 | n490;
assign n336 = n328 & n329 & n330 & n331 & n332 & n333 & n334 & n335;
assign n337 = n53 | n520;
assign n338 = n43 | n203;
assign n339 = n420 | n425;
assign n340 = n337 & n338 & (n53 | n339);
assign n341 = n759 & n758 & (n462 | n527);
assign n342 = n602 & n757 & (n258 | n479);
assign n343 = n614 & n756 & (n43 | n497);
assign n344 = n755 & n754 & (n43 | n294);
assign n345 = n599 & n274 & n761 & n763 & n762 & n765 & n764 & n766;
assign n346 = n773 & n621 & n772 & n771;
assign n347 = n769 & n770 & n552 & n562 & n768 & n767;
assign n348 = n340 & n300 & n248 & n220 & n327 & n336 & n318 & n777;
assign n349 = n341 & n342 & n343 & n344 & n345 & n346 & n347 & n348;
assign n350 = n99 | n272;
assign n351 = n462 | n103;
assign n352 = n340 & (n459 | n219);
assign n353 = (n436 | n468) & (n33 | n467);
assign n354 = n94 & n582 & (n43 | n541);
assign n355 = n315 & n782 & (n258 | n511);
assign n356 = n739 & n780 & (n222 | n491);
assign n357 = n297 & n350 & n351 & n352 & n353 & n354 & n355 & n356;
assign n358 = (n436 | n532) & (n91 | n470);
assign n359 = n40 | n528;
assign n360 = (n43 | n515) & (n424 | n53);
assign n361 = n222 | n536;
assign n362 = n779 & n676 & (n100 | n142);
assign n363 = n778 & n760 & (n91 | n477);
assign n364 = n358 & n359 & n360 & n361 & n362 & n363;
assign n365 = (n222 | n524) & (n436 | n537);
assign n366 = n100 | n532;
assign n367 = (n91 | n498) & (n40 | n541);
assign n368 = (n33 | n154) & (n222 | n541);
assign n369 = n53 | n502;
assign n370 = n569 & (n436 | n157);
assign n371 = n365 & n366 & n367 & n368 & n369 & n370;
assign n372 = n801 & n800 & (n455 | n462);
assign n373 = n798 & n797 & (n272 | n530);
assign n374 = n364 & n371 & n357 & n804 & n88 & n55 & n116 & n803;
assign n375 = n795 & n794 & (n290 | n219);
assign n376 = n792 & n791 & (n100 | n493);
assign n377 = n788 & n789 & n787 & n786 & n785 & n217 & n784 & n783;
assign n378 = n372 & n373 & n374 & n375 & n376 & n377;
assign n379 = n462 | (n444 & n534);
assign n380 = n258 | n507;
assign n381 = n808 & (n53 | n471);
assign n382 = n809 & n810 & (n100 | n501);
assign n383 = n806 & n807 & (n53 | n461);
assign n384 = n759 & n805 & (n40 | n484);
assign n385 = n379 & n380 & n381 & n382 & n383 & n384;
assign n386 = n86 | n514;
assign n387 = n219 | n496;
assign n388 = n91 | n482;
assign n389 = n101 & (n272 | n519);
assign n390 = n40 | n514;
assign n391 = n37 | n154;
assign n392 = n430 | n100;
assign n393 = n596 & n597 & (n439 | n520);
assign n394 = n386 & n387 & n388 & n389 & n390 & n391 & n392 & n393;
assign n395 = (n222 | n447) & (n37 | n339);
assign n396 = n43 | (n454 & n510);
assign n397 = n811 & (n37 | n434);
assign n398 = n813 & (n462 | n546);
assign n399 = n812 & (n53 | n498);
assign n400 = n817 & n818 & (n439 | n103);
assign n401 = n816 & n815 & (n272 | n508);
assign n402 = n182 & n143 & n260 & n827 & n93 & n828 & n826 & n822;
assign n403 = n395 & n396 & n397 & n398 & n399 & n400 & n401 & n402;
assign n404 = n33 | n534;
assign n405 = (n37 | n502) & (n86 | n524);
assign n406 = (n100 | n518) & (n222 | n454);
assign n407 = n318 & n287 & n256 & n200 & n394 & n364 & n273;
assign n408 = n111 & n606 & n808 & n849 & n848 & n847 & n846 & n845;
assign n409 = n843 & n564 & n842 & n840 & n832 & n831 & n830 & n836;
assign n410 = (n86 | n533) & (n439 | n199);
assign n411 = n438 | n91;
assign n412 = n858 & n555 & (n43 | n533);
assign n413 = n721 & n857 & (n100 | n517);
assign n414 = n781 & n856 & (n462 | n499);
assign n415 = n855 & n854 & (n309 | n468);
assign n416 = n852 & n851 & (n33 | n444);
assign n417 = n132 & n83 & n175 & n868 & n867 & n869 & n866 & n862;
assign n418 = n410 & n411 & n412 & n413 & n414 & n415 & n416 & n417;
assign n419 = i_8_ | i_6_ | ~i_7_;
assign n420 = ~i_5_ | ~i_3_ | i_4_;
assign n421 = ~i_0_ | ~i_1_ | ~i_2_;
assign n422 = n420 | n421;
assign n423 = i_5_ | i_3_ | ~i_4_;
assign n424 = n421 | n423;
assign n425 = ~i_0_ | ~i_1_ | i_2_;
assign n426 = ~i_3_ | ~i_4_ | i_5_;
assign n427 = ~i_6_ | ~i_7_ | i_8_;
assign n428 = n426 | n427;
assign n429 = ~i_6_ | ~i_7_ | ~i_8_;
assign n430 = n420 | n429;
assign n431 = ~i_5_ | i_3_ | i_4_;
assign n432 = i_8_ | i_6_ | i_7_;
assign n433 = i_5_ | i_3_ | i_4_;
assign n434 = n425 | n433;
assign n435 = ~i_2_ | ~i_0_ | i_1_;
assign n436 = i_9_ | n435;
assign n437 = i_8_ | ~i_6_ | i_7_;
assign n438 = n433 | n435;
assign n439 = ~i_9_ | n437;
assign n440 = i_2_ | ~i_0_ | i_1_;
assign n441 = ~i_8_ | ~i_6_ | i_7_;
assign n442 = ~i_3_ | ~i_4_ | ~i_5_;
assign n443 = n419 | n442;
assign n444 = n431 | n440;
assign n445 = n433 | n440;
assign n446 = ~i_2_ | i_0_ | ~i_1_;
assign n447 = n419 | n420;
assign n448 = n431 | n437;
assign n449 = i_2_ | i_0_ | ~i_1_;
assign n450 = i_5_ | ~i_3_ | i_4_;
assign n451 = ~i_8_ | i_6_ | ~i_7_;
assign n452 = n450 | n451;
assign n453 = ~i_5_ | i_3_ | ~i_4_;
assign n454 = n429 | n453;
assign n455 = n423 | n449;
assign n456 = n423 | n441;
assign n457 = ~i_2_ | i_0_ | i_1_;
assign n458 = n429 | n431;
assign n459 = n433 | n457;
assign n460 = i_2_ | i_0_ | i_1_;
assign n461 = n450 | n460;
assign n462 = ~i_9_ | n432;
assign n463 = n423 | n429;
assign n464 = n431 | n460;
assign n465 = n427 | n433;
assign n466 = ~i_8_ | i_6_ | i_7_;
assign n467 = n421 | n450;
assign n468 = n423 | n437;
assign n469 = n421 | n431;
assign n470 = n425 | n426;
assign n471 = n425 | n453;
assign n472 = n433 | n441;
assign n473 = n426 | n440;
assign n474 = n453 | n466;
assign n475 = n423 | n451;
assign n476 = n432 | n450;
assign n477 = n426 | n457;
assign n478 = n420 | n460;
assign n479 = n420 | n435;
assign n480 = n432 | n453;
assign n481 = n426 | n429;
assign n482 = n421 | n426;
assign n483 = n421 | n453;
assign n484 = n427 | n453;
assign n485 = n425 | n431;
assign n486 = n431 | n446;
assign n487 = n420 | n427;
assign n488 = n431 | n449;
assign n489 = n453 | n457;
assign n490 = n425 | n450;
assign n491 = n420 | n466;
assign n492 = n429 | n450;
assign n493 = n441 | n453;
assign n494 = n442 | n449;
assign n495 = n429 | n433;
assign n496 = n426 | n460;
assign n497 = n431 | n466;
assign n498 = n431 | n435;
assign n499 = n449 | n453;
assign n500 = n440 | n450;
assign n501 = n442 | n451;
assign n502 = n431 | n457;
assign n503 = n423 | n440;
assign n504 = n426 | n449;
assign n505 = n435 | n453;
assign n506 = n420 | n437;
assign n507 = n442 | n460;
assign n508 = n419 | n423;
assign n509 = n423 | n425;
assign n510 = n437 | n453;
assign n511 = n420 | n457;
assign n512 = n441 | n450;
assign n513 = n419 | n426;
assign n514 = n432 | n433;
assign n515 = n433 | n451;
assign n516 = n435 | n450;
assign n517 = n426 | n451;
assign n518 = n433 | n437;
assign n519 = n451 | n453;
assign n520 = n421 | n433;
assign n521 = n437 | n442;
assign n522 = n426 | n435;
assign n523 = n442 | n457;
assign n524 = n429 | n442;
assign n525 = n427 | n442;
assign n526 = n420 | n446;
assign n527 = n440 | n442;
assign n528 = n431 | n451;
assign n529 = n426 | n441;
assign n530 = n420 | n451;
assign n531 = n437 | n450;
assign n532 = n427 | n431;
assign n533 = n427 | n450;
assign n534 = n433 | n446;
assign n535 = n419 | n453;
assign n536 = n432 | n442;
assign n537 = n423 | n427;
assign n538 = n446 | n453;
assign n539 = n449 | n450;
assign n540 = n433 | n449;
assign n541 = n426 | n432;
assign n542 = n419 | n431;
assign n543 = n426 | n437;
assign n544 = n450 | n466;
assign n545 = n446 | n450;
assign n546 = n440 | n453;
assign n547 = n425 | n442;
assign n548 = n462 | n259;
assign n549 = n439 | n504;
assign n550 = n91 | n503;
assign n551 = (n222 | n493) & (n424 | n33);
assign n552 = n53 | n479;
assign n553 = n436 | n493;
assign n554 = (n222 | n484) & (n33 | n339);
assign n555 = n456 | n86;
assign n556 = n315 & n338 & (n462 | n470);
assign n557 = n323 & n411 & (n33 | n471);
assign n558 = n40 | n157;
assign n559 = n91 | n473;
assign n560 = n558 & n559 & (n309 | n474);
assign n561 = n53 | n467;
assign n562 = n157 | n43;
assign n563 = n309 | n475;
assign n564 = n272 | n203;
assign n565 = n428 | n86;
assign n566 = n33 | n478;
assign n567 = (n219 | n467) & (n422 | n37);
assign n568 = (n37 | n424) & (n91 | n483);
assign n569 = n222 | n430;
assign n570 = n569 & (n428 | n222);
assign n571 = (n222 | n99) & (n258 | n485);
assign n572 = (n436 | n510) & (n434 | n439);
assign n573 = n99 | n436;
assign n574 = n33 | n509;
assign n575 = n572 & n573 & n571 & n233 & n570 & n574 & n568 & n567;
assign n576 = n96 | n40;
assign n577 = n576 & n226 & (n40 | n443);
assign n578 = (n33 | n445) & (n37 | n444);
assign n579 = n578 & (n439 | n54);
assign n580 = n309 | (n447 & n448);
assign n581 = n272 | n454;
assign n582 = n272 | n452;
assign n583 = n581 & n582 & (n272 | n493);
assign n584 = n443 | n272;
assign n585 = (n33 & n258) | n455;
assign n586 = (n33 | n511) & (n272 | n456);
assign n587 = n100 | n42;
assign n588 = n587 & n330 & (n100 | n203);
assign n589 = (n459 | n53) & (n100 | n458);
assign n590 = n463 | n86;
assign n591 = n290 | n462;
assign n592 = n590 & n591 & (n448 | n86);
assign n593 = n258 | n461;
assign n594 = n40 | n476;
assign n595 = n91 | n527;
assign n596 = n458 | n43;
assign n597 = n439 | n505;
assign n598 = n40 | n524;
assign n599 = n40 | n465;
assign n600 = n91 | n262;
assign n601 = n258 | n498;
assign n602 = n436 | n223;
assign n603 = n40 | n521;
assign n604 = (n258 | n477) & (n309 | n510);
assign n605 = n439 | n38;
assign n606 = n430 | n436;
assign n607 = n100 | n481;
assign n608 = n607 & (n100 | n484);
assign n609 = n100 | n463;
assign n610 = n549 & n584 & (n43 | n521);
assign n611 = n422 | n258;
assign n612 = n222 | n456;
assign n613 = n612 & (n439 | n485);
assign n614 = n219 | n520;
assign n615 = n436 | n518;
assign n616 = n614 & n615 & (n219 | n470);
assign n617 = n40 | n508;
assign n618 = n617 & (n219 | n503);
assign n619 = n86 | n472;
assign n620 = n222 | n443;
assign n621 = n462 | n339;
assign n622 = (n436 | n42) & (n439 | n522);
assign n623 = n219 | n259;
assign n624 = n40 | (n491 & n529);
assign n625 = n391 & n624 & (n436 | n514);
assign n626 = (n40 | n458) & (n33 | n500);
assign n627 = (n272 | n497) & (n258 | n262);
assign n628 = (n33 | n38) & (n272 | n87);
assign n629 = (n33 | n502) & (n100 | n468);
assign n630 = (n33 | n461) & (n91 | n478);
assign n631 = (n219 | n482) & (n86 | n294);
assign n632 = n462 | n467;
assign n633 = n632 & (n43 | n495);
assign n634 = n222 | n501;
assign n635 = (n436 | n443) & (n222 | n515);
assign n636 = (n37 | n479) & (n462 | n92);
assign n637 = (n40 | n517) & (n37 | n516);
assign n638 = n309 | (n491 & n497);
assign n639 = (n272 | n518) & (n37 | n499);
assign n640 = (n100 | n519) & (n219 | n489);
assign n641 = n100 | n87;
assign n642 = n91 | n251;
assign n643 = (n258 | n464) & (n86 | n535);
assign n644 = n158 & n161 & n155 & n71 & n35 & n643;
assign n645 = n436 | n454;
assign n646 = n43 | n87;
assign n647 = n272 | n310;
assign n648 = n86 | n541;
assign n649 = n439 | n502;
assign n650 = n43 | (n493 & n513);
assign n651 = (n258 | n520) & (n43 | n475);
assign n652 = n53 | n470;
assign n653 = n652 & (n439 | n470);
assign n654 = n222 | n532;
assign n655 = n654 & (n91 | n509);
assign n656 = (n434 | n91) & (n222 | n528);
assign n657 = (n436 | n536) & (n222 | n87);
assign n658 = n436 | n484;
assign n659 = n658 & (n462 | n516);
assign n660 = n462 | n154;
assign n661 = n659 & n660 & n657 & n656 & n655 & n653 & n651 & n650;
assign n662 = (n40 | n42) & (n436 | n465);
assign n663 = n40 | (n510 & n537);
assign n664 = (n37 | n445) & (n40 | n448);
assign n665 = n258 | n54;
assign n666 = n665 & n664 & (n309 | n536);
assign n667 = (n272 | n517) & (n37 | n34);
assign n668 = (n100 | n529) & (n53 | n523);
assign n669 = n462 | n199;
assign n670 = n669 & (n100 | n513);
assign n671 = (n37 | n503) & (n33 | n527);
assign n672 = (n219 | n538) & (n444 | n91);
assign n673 = (n272 | n524) & (n258 | n34);
assign n674 = n272 | n463;
assign n675 = (n219 | n526) & (n309 | n157);
assign n676 = n439 | n507;
assign n677 = (n439 | n479) & (n258 | n150);
assign n678 = n309 | n537;
assign n679 = n436 | n531;
assign n680 = n430 | n43;
assign n681 = n309 | n530;
assign n682 = n272 | n492;
assign n683 = n309 | n508;
assign n684 = n219 | n483;
assign n685 = (n33 | n545) & (n439 | n473);
assign n686 = n33 | n488;
assign n687 = n43 | n528;
assign n688 = n687 & (n33 | n490);
assign n689 = n53 | n494;
assign n690 = n689 & n688 & (n53 | n527);
assign n691 = n462 | n540;
assign n692 = n691 & n623 & (n272 | n535);
assign n693 = (n219 | n509) & (n37 | n523);
assign n694 = (n462 | n509) & (n43 | n518);
assign n695 = (n40 | n487) & (n53 | n505);
assign n696 = (n444 | n53) & (n40 | n544);
assign n697 = n390 & n696 & (n428 | n309);
assign n698 = (n37 | n538) & (n258 | n545);
assign n699 = n179 & (n91 | n494);
assign n700 = (n439 | n262) & (n272 | n41);
assign n701 = (n91 | n199) & (n258 | n523);
assign n702 = (n258 | n38) & (n100 | n476);
assign n703 = n619 & (n86 | n518);
assign n704 = (n222 | n448) & (n43 | n142);
assign n705 = (n436 | n530) & (n462 | n522);
assign n706 = (n436 | n515) & (n219 | n516);
assign n707 = n706 & (n436 | n310);
assign n708 = n550 & n60 & n703 & n702 & n701 & n705 & n704 & n707;
assign n709 = (n309 | n512) & (n53 | n545);
assign n710 = n40 | n515;
assign n711 = n351 & (n99 | n86);
assign n712 = n620 & n711 & (n43 | n543);
assign n713 = (n272 | n472) & (n91 | n54);
assign n714 = n309 | n535;
assign n715 = n714 & (n430 | n40);
assign n716 = (n219 | n494) & (n33 | n540);
assign n717 = n207 & n123 & n104 & n39 & n716 & n715;
assign n718 = (n40 | n506) & (n258 | n470);
assign n719 = (n272 | n542) & (n53 | n499);
assign n720 = (n436 | n517) & (n43 | n544);
assign n721 = n53 | n477;
assign n722 = (n53 | n482) & (n439 | n150);
assign n723 = (n439 | n483) & (n422 | n219);
assign n724 = (n43 | n508) & (n424 | n258);
assign n725 = (n33 & n258) | n547;
assign n726 = n222 | (n487 & n543);
assign n727 = (n33 | n516) & (n439 | n490);
assign n728 = n598 & (n436 | n528);
assign n729 = n595 & (n462 | n500);
assign n730 = (n40 | n535) & (n37 | n546);
assign n731 = n186 & (n309 | n142);
assign n732 = n309 | (n255 & n519);
assign n733 = (n430 | n272) & (n309 | n514);
assign n734 = n100 | n524;
assign n735 = n734 & n733 & (n272 | n475);
assign n736 = (n258 | n489) & (n100 | n536);
assign n737 = (n258 | n103) & (n462 | n38);
assign n738 = n444 | n219;
assign n739 = n462 | n503;
assign n740 = n386 & (n258 | n160);
assign n741 = (n422 | n33) & (n43 | n524);
assign n742 = (n222 | n521) & (n448 | n43);
assign n743 = n436 | (n495 & n512);
assign n744 = n681 & (n37 | n494);
assign n745 = (n219 | n523) & (n272 | n541);
assign n746 = (n37 | n496) & (n258 | n199);
assign n747 = n612 & (n434 | n258);
assign n748 = (n219 | n502) & (n272 | n537);
assign n749 = n219 | n522;
assign n750 = n219 | n262;
assign n751 = (n222 | n506) & (n43 | n472);
assign n752 = n595 & n194 & (n436 | n448);
assign n753 = n462 | n471;
assign n754 = (n258 | n483) & (n43 | n531);
assign n755 = n424 | n91;
assign n756 = n222 | (n529 & n530);
assign n757 = (n434 | n219) & (n222 | n542);
assign n758 = (n37 | n498) & (n436 | n294);
assign n759 = n258 | n546;
assign n760 = n40 | n472;
assign n761 = n760 & (n445 | n258);
assign n762 = (n309 | n525) & (n439 | n445);
assign n763 = (n309 | n493) & (n462 | n251);
assign n764 = n118 & (n219 | n534);
assign n765 = n272 | (n157 & n506);
assign n766 = n600 & n607 & (n33 | n539);
assign n767 = (n86 | n536) & (n37 | n511);
assign n768 = (n219 | n160) & (n86 | n517);
assign n769 = n222 | n519;
assign n770 = n222 | n525;
assign n771 = n40 | (n468 & n543);
assign n772 = (n91 | n486) & (n33 | n526);
assign n773 = n100 | (n495 & n544);
assign n774 = (n436 | n542) & (n222 | n517);
assign n775 = (n439 | n34) & (n40 | n463);
assign n776 = n258 | n534;
assign n777 = n189 & n147 & n77 & n776 & n775 & n774;
assign n778 = n309 | n476;
assign n779 = n436 | n519;
assign n780 = n680 & n652 & (n33 | n483);
assign n781 = n439 | n499;
assign n782 = n781 & n734 & (n37 | n486);
assign n783 = (n422 | n53) & (n43 | n517);
assign n784 = (n222 | n452) & (n258 | n469);
assign n785 = (n222 | n535) & (n462 | n490);
assign n786 = (n436 | n475) & (n91 | n522);
assign n787 = (n438 | n219) & (n33 | n498);
assign n788 = (n219 | n546) & (n37 | n500);
assign n789 = n445 | n91;
assign n790 = (n447 | n272) & (n37 | n504);
assign n791 = n184 & n790 & (n40 | n87);
assign n792 = (n53 & n258) | n488;
assign n793 = (n100 | n310) & (n91 | n502);
assign n794 = n793 & (n86 | n223);
assign n795 = n86 | (n491 & n529);
assign n796 = n558 & (n86 | n537);
assign n797 = n769 & n796 & (n43 | n542);
assign n798 = n753 & (n258 | n516);
assign n799 = (n258 | n526) & (n100 | n512);
assign n800 = n691 & n799 & (n272 | n531);
assign n801 = (n272 | n491) & (n33 | n504);
assign n802 = (n86 | n310) & (n37 | n199);
assign n803 = n44 & n802 & (n439 | n477);
assign n804 = n241 & n204 & n282;
assign n805 = n658 & n755 & (n91 | n500);
assign n806 = (n459 | n91) & (n53 | n504);
assign n807 = n57 & (n219 | n471);
assign n808 = n422 | n439;
assign n809 = n749 & (n222 | n465);
assign n810 = (n428 | n43) & (n462 | n150);
assign n811 = (n37 | n485) & (n222 | n533);
assign n812 = n436 | (n463 & n524);
assign n813 = n40 | (n142 & n530);
assign n814 = (n445 | n462) & (n444 | n258);
assign n815 = n814 & (n443 | n309);
assign n816 = (n272 | n481) & (n309 | n529);
assign n817 = (n258 | n478) & (n53 | n511);
assign n818 = n68 & n62 & (n439 | n160);
assign n819 = (n467 | n91) & (n462 | n482);
assign n820 = n687 & n819 & (n439 | n509);
assign n821 = (n33 | n473) & (n53 | n516);
assign n822 = n821 & n820 & (n40 | n531);
assign n823 = n91 | n499;
assign n824 = n823 & n689 & (n53 | n540);
assign n825 = (n436 | n543) & (n86 | n495);
assign n826 = n825 & n824 & (n258 | n505);
assign n827 = (n42 | n86) & (n428 | n272);
assign n828 = n394 & n357 & n385 & n311 & n295 & n336;
assign n829 = (n43 | n514) & (n462 | n483);
assign n830 = n684 & n829 & (n443 | n43);
assign n831 = (n91 | n490) & (n222 | n41);
assign n832 = (n436 | n501) & (n462 | n485);
assign n833 = (n436 | n41) & (n33 | n522);
assign n834 = n645 & n833 & (n438 | n258);
assign n835 = n603 & (n40 | n474);
assign n836 = n835 & n834 & (n309 | n521);
assign n837 = (n219 | n499) & (n272 | n142);
assign n838 = n683 & n837 & (n462 | n262);
assign n839 = (n272 | n458) & (n455 | n91);
assign n840 = n839 & n838 & (n439 | n488);
assign n841 = n647 & (n100 | n223);
assign n842 = n609 & n841 & (n439 | n511);
assign n843 = n33 | (n459 & n464);
assign n844 = (n436 | n506) & (n53 | n490);
assign n845 = n565 & n844 & (n43 | n41);
assign n846 = (n219 | n251) & (n91 | n505);
assign n847 = n37 | (n54 & n251);
assign n848 = (n439 | n540) & (n430 | n309);
assign n849 = n611 & (n462 | n464);
assign n850 = (n436 | n535) & (n43 | n487);
assign n851 = n275 & n850 & (n40 | n452);
assign n852 = n617 & (n40 | n475);
assign n853 = (n96 | n309) & (n40 | n310);
assign n854 = n853 & (n309 | n492);
assign n855 = (n258 | n538) & (n309 | n544);
assign n856 = (n219 | n504) & (n462 | n494);
assign n857 = n37 | n455;
assign n858 = n43 | n536;
assign n859 = (n37 & n53) | n547;
assign n860 = n779 & n859 & (n222 | n508);
assign n861 = n53 | (n154 & n259);
assign n862 = n861 & n860 & (n40 | n512);
assign n863 = (n53 | n538) & (n439 | n500);
assign n864 = n863 & (n100 | n543);
assign n865 = (n462 | n489) & (n100 | n510);
assign n866 = n865 & n864 & (n448 | n100);
assign n867 = (n436 | n481) & (n462 | n34);
assign n868 = (n436 | n474) & (n258 | n494);
assign n869 = n385 & n371 & n273 & n291 & n232 & n327;
endmodule

View File

@ -0,0 +1,588 @@
// Benchmark "TOP" written by ABC on Mon Feb 4 17:31:57 2019
module ex5p (
i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_,
o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_, o_8_, o_9_, o_10_,
o_11_, o_12_, o_13_, o_14_, o_15_, o_16_, o_17_, o_18_, o_19_, o_20_,
o_21_, o_22_, o_23_, o_24_, o_25_, o_26_, o_27_, o_28_, o_29_, o_30_,
o_31_, o_32_, o_33_, o_34_, o_35_, o_36_, o_37_, o_38_, o_39_, o_40_,
o_41_, o_42_, o_43_, o_44_, o_45_, o_46_, o_47_, o_48_, o_49_, o_50_,
o_51_, o_52_, o_53_, o_54_, o_55_, o_56_, o_57_, o_58_, o_59_, o_60_,
o_61_, o_62_ );
input i_0_, i_1_, i_2_, i_3_, i_4_, i_5_, i_6_, i_7_;
output o_0_, o_1_, o_2_, o_3_, o_4_, o_5_, o_6_, o_7_, o_8_, o_9_, o_10_,
o_11_, o_12_, o_13_, o_14_, o_15_, o_16_, o_17_, o_18_, o_19_, o_20_,
o_21_, o_22_, o_23_, o_24_, o_25_, o_26_, o_27_, o_28_, o_29_, o_30_,
o_31_, o_32_, o_33_, o_34_, o_35_, o_36_, o_37_, o_38_, o_39_, o_40_,
o_41_, o_42_, o_43_, o_44_, o_45_, o_46_, o_47_, o_48_, o_49_, o_50_,
o_51_, o_52_, o_53_, o_54_, o_55_, o_56_, o_57_, o_58_, o_59_, o_60_,
o_61_, o_62_;
wire 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, n367, n368, n369, n370, n371, n372,
n373, n374, n375, n376, n377, n378, n379, n380, n381, n382, n383, n384,
n385, n386, n387, n388, n389, n390, n391, n392, n393, n394, n395, n396,
n397, n398, n399, n400, n401, n402, n403, n404, n405, n406, n407, n408,
n409, n410, n411, n412, n413, n414, n415, n416, n417, n418, n419, n420,
n421, n422, n423, n424, n425, n426, n427, n428, n429, n430, n431, n432,
n433, n434, n435, n436, n437, n438, n439, n440, n441, n442, n443, n444,
n445, n446, n447, n448, n449, n450, n451, n452, n453, n454, n455, n456,
n457, n458, n459, n460, n461, n462, n463, n464, n465, n466, n467, n468,
n469, n470, n471, n472, n473, n474, n475, n476, n477, n478, n479, n480,
n481, n482, n483, n484, n485, n486, n487, n488, n489, n490, n491, n492,
n493, n494, n495, n496, n497, n498, n499, n500, n501, n502, n503, n504,
n505, n506, n507, n508, n509, n510, n511, n512, n513, n514, n515, n516,
n517, n518, n519, n520, n521, n522, n523, n524, n525, n526, n527, n528,
n529, n530, n531, n532, n533, n534, n535, n536, n537, n538, n539, n540,
n541, n542, n543, n544, n545, n546, n547, n548, n549, n550, n551, n552,
n553, n554, n555, n556, n557, n558, n559, n560, n561, n562, n563, n564,
n565, n566, n567, n568, n569, n570, n571, n572, n573, n574, n575, n576,
n577, n578, n579, n580, n581, n582, n583, n584, n585, n586, n587, n588,
n589, n590, n591, n592, n593, n594, n595, n596, n597;
assign o_0_ = ~n365;
assign o_1_ = ~n361;
assign o_2_ = ~n403;
assign o_3_ = ~n370;
assign o_4_ = ~n450;
assign o_5_ = ~n357;
assign o_6_ = ~n136;
assign o_7_ = ~n180;
assign o_8_ = ~n452;
assign o_9_ = ~n491;
assign o_10_ = ~n139;
assign o_11_ = ~n179;
assign o_12_ = ~n385;
assign o_13_ = ~n471;
assign o_14_ = ~n507;
assign o_15_ = ~n138;
assign o_16_ = ~n407;
assign o_17_ = ~n354;
assign o_18_ = ~n421;
assign o_19_ = ~n420;
assign o_20_ = ~n142;
assign o_21_ = ~n145;
assign o_22_ = ~n148;
assign o_23_ = ~n352;
assign o_24_ = ~n504;
assign o_25_ = ~n200;
assign o_26_ = ~n151;
assign o_27_ = ~n260;
assign o_28_ = ~n556;
assign o_29_ = ~n506;
assign o_30_ = ~n150;
assign o_31_ = ~n347;
assign o_32_ = ~n344;
assign o_33_ = ~n340;
assign o_34_ = ~n336;
assign o_35_ = ~n332;
assign o_36_ = ~n328;
assign o_37_ = ~n321;
assign o_38_ = ~n314;
assign o_39_ = ~n308;
assign o_40_ = ~n303;
assign o_41_ = ~n296;
assign o_42_ = ~n291;
assign o_43_ = ~n284;
assign o_44_ = ~n276;
assign o_45_ = ~n274;
assign o_46_ = ~n268;
assign o_47_ = ~n264;
assign o_48_ = ~n259;
assign o_49_ = ~n257;
assign o_50_ = ~n252;
assign o_51_ = ~n245;
assign o_52_ = ~n238;
assign o_53_ = ~n232;
assign o_54_ = ~n226;
assign o_55_ = ~n220;
assign o_56_ = ~n214;
assign o_57_ = ~n205;
assign o_58_ = ~n197;
assign o_59_ = ~n189;
assign o_60_ = ~n182;
assign o_61_ = ~n173;
assign o_62_ = ~n164;
assign n134 = n155 | n439;
assign n135 = n155 | n441;
assign n136 = n134 & n135;
assign n137 = n436 | n339;
assign n138 = n445 | n339;
assign n139 = n137 & n138;
assign n140 = n462 | n152;
assign n141 = n463 | n152;
assign n142 = n140 & n141;
assign n143 = n439 | n152;
assign n144 = n441 | n152;
assign n145 = n143 & n144;
assign n146 = n434 | n152;
assign n147 = n446 | n152;
assign n148 = n146 & n147;
assign n149 = n434 | n373;
assign n150 = n434 | n369;
assign n151 = n149 & n150;
assign n152 = i_2_ | ~i_0_ | i_1_;
assign n153 = n152 | ~n381;
assign n154 = ~i_3_ | ~i_4_ | ~i_5_;
assign n155 = i_0_ | i_1_ | ~i_2_;
assign n156 = n154 | n155;
assign n157 = i_0_ | i_1_ | i_2_;
assign n158 = n157 | ~n366;
assign n159 = n373 & n338;
assign n160 = n514 & n505 & n363;
assign n161 = n515 & n339 & n269 & n195 & n496;
assign n162 = n179 & n458 & n408 & n461 & n374;
assign n163 = n150 & n516 & n517 & n176 & n454;
assign n164 = n159 & n160 & n161 & n162 & n163;
assign n165 = n398 & n533 & n535;
assign n166 = n523 & n524;
assign n167 = n412 & n503;
assign n168 = n504 & n363;
assign n169 = n450 & n556;
assign n170 = n372 & n555 & n180;
assign n171 = n254 & n243 & n400;
assign n172 = n518 & n192 & n554;
assign n173 = n165 & n166 & n167 & n168 & n169 & n170 & n171 & n172;
assign n174 = n208 & n309 & n563 & n421 & n254 & n518;
assign n175 = n410 & n560 & n192 & n165 & n457 & n461 & n150 & n516;
assign n176 = n452 & n451;
assign n177 = n362 & n552 & n454;
assign n178 = n369 | n462;
assign n179 = n436 | n409;
assign n180 = n436 | n270;
assign n181 = n369 | n463;
assign n182 = n174 & n175 & n176 & n177 & n178 & n179 & n180 & n181;
assign n183 = n411 & (n157 | ~n382) & n412;
assign n184 = n548 & n298;
assign n185 = n418 & (n239 | n409);
assign n186 = n569 & n570 & n310 & n345 & n169 & n334 & n255 & n163;
assign n187 = n265 & n573 & n170 & n203;
assign n188 = n594 & n493 & n487 & n483 & n408 & n397 & ~n383 & n387;
assign n189 = n183 & n184 & n185 & n186 & n187 & n188;
assign n190 = n576 & n575 & n532 & n451 & n414 & n140 & n297 & ~n367;
assign n191 = n493 & ~n383 & n492;
assign n192 = n405 & n550 & n404 & n145 & n551 & n549;
assign n193 = n563 & n272;
assign n194 = n421 & n485 & n487;
assign n195 = n478 & n481 & n475 & n477;
assign n196 = n351 & n158 & (n154 | n157);
assign n197 = n190 & n191 & n192 & n193 & n194 & n195 & n138 & n196;
assign n198 = n470 & n468;
assign n199 = n150 & n536;
assign n200 = n270 | n443;
assign n201 = n261 & n471 & n394;
assign n202 = n228 & n414 & (n339 | ~n382);
assign n203 = n179 & n572;
assign n204 = n221 & n215 & n422 & n185 & n423 & n300;
assign n205 = n198 & n199 & n200 & n201 & n166 & n202 & n203 & n204;
assign n206 = n578 & n579 & n554 & n169;
assign n207 = n310 & n577;
assign n208 = n496 & n562;
assign n209 = n580 & ~n395 & n491;
assign n210 = n149 & n378 & n370 & n419 & n306;
assign n211 = n501 & n563;
assign n212 = n180 & n518;
assign n213 = n228 & n171 & n467 & n196 & n594 & n376 & n534 & n471;
assign n214 = n206 & n207 & n208 & n209 & n210 & n211 & n212 & n213;
assign n215 = n563 & n183;
assign n216 = n537 & ~n367 & n451;
assign n217 = n534 & n275 & n139 & n142;
assign n218 = n570 & n571 & n184 & n581 & n337 & n582;
assign n219 = n156 & n171 & n427 & n200;
assign n220 = n215 & n216 & n180 & n166 & n217 & n218 & n219;
assign n221 = n396 & n180 & n159;
assign n222 = n474 & n247;
assign n223 = n519 & n348 & n494;
assign n224 = n472 & n470;
assign n225 = n572 & n575 & n478 & n538 & n158 & n458 & n534 & n468;
assign n226 = n209 & n219 & n193 & n221 & n222 & n223 & n224 & n225;
assign n227 = n449 & n452;
assign n228 = n525 & n526;
assign n229 = n146 & n527 & n528 & n529 & n530;
assign n230 = n391 & n392 & (n393 | n339);
assign n231 = n476 & n583 & n537 & n137 & n141 & n534;
assign n232 = n174 & n218 & n227 & n228 & n229 & n230 & n231;
assign n233 = n351 & n215;
assign n234 = n254 & n494 & n559 & n509 & n262 & n292 & n426;
assign n235 = n387 & n491;
assign n236 = n384 & n385 & (n373 | n386);
assign n237 = n510 & n548;
assign n238 = n233 & n234 & n224 & n235 & n236 & n186 & n162 & n237;
assign n239 = ~n381 & ~n382;
assign n240 = n155 | n239;
assign n241 = n255 & n240 & n389 & n387 & n584 & n491;
assign n242 = n488 & n489;
assign n243 = n421 & n482;
assign n244 = n254 & n494 & n453;
assign n245 = n175 & n212 & n227 & n233 & n241 & n242 & n243 & n244;
assign n246 = n560 & n203;
assign n247 = n408 & ((~n381 & ~n382) | n409);
assign n248 = n200 & n483 & n486;
assign n249 = n540 & n539;
assign n250 = n524 & n192 & n412 & n501 & n168 & n288 & n293;
assign n251 = n535 & n543 & n546 & n477 & n380 & n533;
assign n252 = n246 & n247 & n248 & n249 & n250 & n251;
assign n253 = n288 & n248 & n342 & n586 & n266;
assign n254 = n155 | n446;
assign n255 = n155 | n443;
assign n256 = n350 & n158 & n351 & n520;
assign n257 = n193 & n235 & n253 & n254 & n255 & n256;
assign n258 = n254 & n241 & n135 & n134;
assign n259 = n258 & n253 & n242 & n160;
assign n260 = n443 | n339;
assign n261 = n434 | n339;
assign n262 = n429 & n281 & n248;
assign n263 = n417 & n224 & (n393 | n270);
assign n264 = n260 & n190 & n139 & n261 & n262 & n250 & n263;
assign n265 = n421 & n156 & n468 & n200;
assign n266 = n210 & n585 & n345 & n207;
assign n267 = n196 & n496 & n160 & n396 & n180 & n515;
assign n268 = n265 & n191 & n206 & n263 & n266 & n267;
assign n269 = n493 & n492 & n194 & n196 & ~n383;
assign n270 = i_2_ | i_0_ | ~i_1_;
assign n271 = n260 & n261;
assign n272 = n500 & n330 & n420 & n411 & n497 & n498;
assign n273 = n577 & n206 & n210;
assign n274 = n269 & n168 & n270 & n271 & n272 & n217 & n273;
assign n275 = n530 & n568 & n146 & n529;
assign n276 = n211 & n273 & n161 & n275;
assign n277 = n567 & n530 & n482 & ~n415 & n137 & n228 & ~n395;
assign n278 = n196 & n330 & n451 & n431 & n254 & n491 & n588 & n589;
assign n279 = n484 & n363 & n486 & n502;
assign n280 = n180 & (n270 | n355);
assign n281 = n476 & n583 & n468 & n396;
assign n282 = n298 & n417 & n222;
assign n283 = n511 & n405 & n499 & n508 & n374 & n377 & n179 & n595;
assign n284 = n277 & n278 & n249 & n279 & n280 & n281 & n282 & n283;
assign n285 = n477 & n394 & n471 & n378;
assign n286 = n413 & n423 & n590 & n138 & n144 & n228;
assign n287 = n179 & n553;
assign n288 = n422 & n243;
assign n289 = n419 & n420 & n579;
assign n290 = n549 & n406 & n410 & n563 & n569 & n411 & n380 & n596;
assign n291 = n285 & n286 & n248 & n278 & n287 & n288 & n289 & n290;
assign n292 = n288 & n404 & (n152 | ~n366);
assign n293 = n326 & n426 & n258;
assign n294 = n585 & n586 & n345 & n248;
assign n295 = n547 & n405 & n560 & n542 & n543 & n546;
assign n296 = n292 & n293 & n294 & n193 & n207 & n223 & n295;
assign n297 = n458 & n246 & n247;
assign n298 = n402 & n547;
assign n299 = n356 & n550 & n564;
assign n300 = n254 & n400 & n543;
assign n301 = n405 & n318 & n473 & n536 & n476 & n469 & n474 & n409;
assign n302 = n482 & n411 & n153 & n339 & n380 & n330 & n523;
assign n303 = n275 & n297 & n298 & n299 & n300 & n279 & n301 & n302;
assign n304 = n573 & n185 & n581 & n587 & n315 & n167 & n203 & n591;
assign n305 = n153 & n531;
assign n306 = n356 & n564 & n184;
assign n307 = n470 & n142 & n145 & n194 & n261 & ~n382;
assign n308 = n277 & n285 & n304 & n305 & n306 & n258 & n307;
assign n309 = n196 & n492 & n561;
assign n310 = n142 & n275 & ~n415;
assign n311 = n149 & n298 & n419;
assign n312 = n147 & n370 & n508;
assign n313 = n327 & n503 & n363;
assign n314 = n309 & n310 & n206 & n294 & n311 & n312 & n208 & n313;
assign n315 = n575 & n576 & n457 & n454;
assign n316 = n448 & n513 & n459;
assign n317 = n447 & n512 & n136 & n145 & n526 & n495 & n460;
assign n318 = n525 & n478 & n481;
assign n319 = n405 & n562 & n578 & n230 & n532 & n371;
assign n320 = n541 & n556 & n147 & n449 & n510 & n551 & n565 & n597;
assign n321 = n315 & n316 & n317 & n211 & n234 & n318 & n319 & n320;
assign n322 = n477 & n550 & n342 & n318 & n311 & n471 & n470 & n592;
assign n323 = n146 & n590;
assign n324 = n561 & n548 & n531 & n491 & ~n382 & n387;
assign n325 = n356 & n507;
assign n326 = n242 & n256;
assign n327 = n482 & n254;
assign n328 = n322 & n323 & n193 & n324 & n325 & n326 & n327 & n194;
assign n329 = n325 & n353 & (n152 | ~n381);
assign n330 = n515 & n495;
assign n331 = n531 & n486 & n485;
assign n332 = n243 & n293 & n322 & n323 & n329 & n330 & n211 & n331;
assign n333 = n143 & (n152 | ~n382);
assign n334 = n416 & (n270 | ~n366) & n417;
assign n335 = n518 & n398 & n243 & n180 & n254 & n508;
assign n336 = n286 & n304 & n324 & n298 & n333 & n334 & n335;
assign n337 = n572 & n578 & n287;
assign n338 = n152 & n511 & n312 & n402 & n512 & n513;
assign n339 = ~i_2_ | i_0_ | ~i_1_;
assign n340 = n216 & n301 & n211 & n337 & n338 & n208 & n339 & n269;
assign n341 = n550 & n311 & n329;
assign n342 = n206 & n223;
assign n343 = n180 & n482;
assign n344 = n279 & n341 & n258 & n342 & n326 & n272 & n165 & n343;
assign n345 = n202 & n413 & n567;
assign n346 = n523 & n505 & n229 & n305 & n330 & n363 & ~n415;
assign n347 = n345 & n206 & n171 & n334 & n224 & n262 & n341 & n346;
assign n348 = n157 | n370;
assign n349 = n519 & n520;
assign n350 = n154 | n157;
assign n351 = n445 | n157;
assign n352 = n348 & n349 & n350 & n351;
assign n353 = n152 | ~n366;
assign n354 = n153 & n353;
assign n355 = n435 | n442;
assign n356 = n442 | n444;
assign n357 = n355 & n356;
assign n358 = n157 | n462;
assign n359 = n488 & n515 & n178 & n552 & n316 & n396 & n486 & n593;
assign n360 = (~n366 & ~n381) | n438;
assign n361 = n143 & n358 & n134 & n140 & n359 & n360;
assign n362 = n409 | n463;
assign n363 = n358 & n506;
assign n364 = n468 & n483 & n489 & n142 & n509 & n465;
assign n365 = n181 & n362 & n363 & n317 & n359 & n364;
assign n366 = i_3_ & i_4_ & ~i_5_;
assign n367 = ~n369 & (~n154 | n366);
assign n368 = n369 | (n356 & n378);
assign n369 = ~i_0_ | ~i_1_ | ~i_2_;
assign n370 = n438 | n444;
assign n371 = n368 & (n369 | n370);
assign n372 = n445 | n373;
assign n373 = ~i_2_ | ~i_0_ | i_1_;
assign n374 = n372 & ((n154 & ~n366) | n373);
assign n375 = n339 | n239;
assign n376 = n464 & n465;
assign n377 = n376 & (n270 | n154);
assign n378 = n440 | n444;
assign n379 = n270 | (n356 & n378);
assign n380 = n180 & (n270 | ~n381);
assign n381 = ~i_5_ & ~i_3_ & i_4_;
assign n382 = i_5_ & ~i_3_ & i_4_;
assign n383 = ~n155 & (n381 | n382);
assign n384 = n373 | n355;
assign n385 = n436 | n373;
assign n386 = n435 | n440;
assign n387 = n155 | n436;
assign n388 = n387 & (n155 | ~n381);
assign n389 = n155 | (n355 & n386);
assign n390 = ~n157 & (~n154 | n366);
assign n391 = n378 | n339;
assign n392 = n140 & n138 & n566;
assign n393 = n154 & ~n366;
assign n394 = n260 & n376 & (n393 | n270);
assign n395 = ~n339 & (n381 | n382);
assign n396 = n270 | n439;
assign n397 = n396 & (n270 | ~n382);
assign n398 = n198 & n397 & (n270 | ~n381);
assign n399 = n155 | ~n382;
assign n400 = n136 & (n239 | n155);
assign n401 = n369 | (n355 & n386);
assign n402 = n443 | n373;
assign n403 = n435 | n438;
assign n404 = n149 & n402 & (n373 | n403);
assign n405 = n236 & (n239 | n373);
assign n406 = n372 & (n393 | n373);
assign n407 = n409 | n445;
assign n408 = n459 & n460;
assign n409 = ~i_0_ | ~i_1_ | i_2_;
assign n410 = n407 & n408 & (n393 | n409);
assign n411 = n436 | n157;
assign n412 = n157 | ~n381;
assign n413 = n137 & (n339 | ~n381);
assign n414 = n391 & n565 & n534;
assign n415 = ~n339 & (~n154 | n366);
assign n416 = n271 & n377;
assign n417 = n471 & n379;
assign n418 = n407 & n455 & n456;
assign n419 = n385 & (n373 | ~n381);
assign n420 = n412 & (n157 | ~n382);
assign n421 = n155 | ~n366;
assign n422 = n421 & (n155 | n154);
assign n423 = n339 | (n239 & n393);
assign n424 = n373 | n393;
assign n425 = n155 | (n356 & n378);
assign n426 = n425 & (n155 | n370);
assign n427 = n434 | n270;
assign n428 = n270 | (n386 & n403);
assign n429 = n280 & n427 & n428;
assign n430 = n409 | (n434 & n443);
assign n431 = n386 & n355 & n430;
assign n432 = i_3_ | i_4_ | i_5_;
assign n433 = ~i_6_ | ~i_7_;
assign n434 = n432 | n433;
assign n435 = i_3_ | i_4_ | ~i_5_;
assign n436 = n433 | n435;
assign n437 = i_5_ | ~i_3_ | i_4_;
assign n438 = i_6_ | i_7_;
assign n439 = n437 | n438;
assign n440 = i_6_ | ~i_7_;
assign n441 = n437 | n440;
assign n442 = ~i_6_ | i_7_;
assign n443 = n432 | n442;
assign n444 = ~i_5_ | ~i_3_ | i_4_;
assign n445 = n433 | n444;
assign n446 = n433 | n437;
assign n447 = n369 | n441;
assign n448 = n369 | n439;
assign n449 = n369 | n446;
assign n450 = n437 | n442;
assign n451 = n447 & n448 & n449 & n450;
assign n452 = n436 | n369;
assign n453 = n369 | n445;
assign n454 = ~n367 & n453;
assign n455 = n409 | n356;
assign n456 = n409 | n378;
assign n457 = n409 | n446;
assign n458 = n457 & n418;
assign n459 = n439 | n409;
assign n460 = n441 | n409;
assign n461 = n403 & n431;
assign n462 = n432 | n438;
assign n463 = n432 | n440;
assign n464 = n339 | n462;
assign n465 = n339 | n463;
assign n466 = n403 | n339;
assign n467 = n466 & n271;
assign n468 = n270 | n441;
assign n469 = n468 & n396;
assign n470 = n270 | n446;
assign n471 = n270 | n445;
assign n472 = n270 | n370;
assign n473 = n470 & n379 & n471 & n472;
assign n474 = n270 | ~n366;
assign n475 = n474 & n473;
assign n476 = n270 | ~n382;
assign n477 = n476 & n469;
assign n478 = n377 & n467;
assign n479 = n386 | n339;
assign n480 = n355 | n339;
assign n481 = n479 & n375 & n137 & n480;
assign n482 = n155 | n445;
assign n483 = n270 | n463;
assign n484 = n427 & n200 & n483;
assign n485 = n484 & n380;
assign n486 = n270 | n462;
assign n487 = n486 & n156;
assign n488 = n155 | n462;
assign n489 = n155 | n463;
assign n490 = n255 & n242;
assign n491 = n434 | n155;
assign n492 = n387 & n491 & n490;
assign n493 = n136 & n327;
assign n494 = n446 | n157;
assign n495 = n441 | n157;
assign n496 = n494 & n495;
assign n497 = n355 | n157;
assign n498 = n386 | n157;
assign n499 = n411 & n497 & n498;
assign n500 = n403 | n157;
assign n501 = n500 & n499;
assign n502 = n434 | n157;
assign n503 = n502 & n501;
assign n504 = n443 | n157;
assign n505 = n412 & n504 & n503;
assign n506 = n157 | n463;
assign n507 = n445 | n152;
assign n508 = n378 & n325;
assign n509 = n441 | n373;
assign n510 = n439 | n373;
assign n511 = n509 & n510;
assign n512 = n373 | n463;
assign n513 = n373 | n462;
assign n514 = n157 | ~n382;
assign n515 = n439 | n157;
assign n516 = n369 | n443;
assign n517 = n393 | n409;
assign n518 = n486 & n156 & n484;
assign n519 = n378 | n157;
assign n520 = n356 | n157;
assign n521 = n584 & n491 & n255;
assign n522 = n521 & n489 & n488 & n349 & n351 & n388 & n389 & ~n390;
assign n523 = n494 & n522;
assign n524 = n514 & n330;
assign n525 = n439 | n339;
assign n526 = n441 | n339;
assign n527 = n355 | n152;
assign n528 = n386 | n152;
assign n529 = n403 | n152;
assign n530 = n443 | n152;
assign n531 = n436 | n152;
assign n532 = n141 & n229 & n305;
assign n533 = n137 & n201 & ~n395;
assign n534 = n446 | n339;
assign n535 = n230 & n532 & n534 & n228;
assign n536 = n516 & n181 & n178;
assign n537 = n239 | n369;
assign n538 = n537 & n451 & n454 & n401 & n371;
assign n539 = n407 & n455;
assign n540 = ~n366 | n409;
assign n541 = n409 | n370;
assign n542 = n540 & n408 & n539 & n456 & n541 & n457;
assign n543 = n452 & n538;
assign n544 = n369 | n403;
assign n545 = n154 | n409;
assign n546 = n544 & n545 & n199;
assign n547 = n513 & n512;
assign n548 = n154 | n152;
assign n549 = n325 & n547 & n353 & n548;
assign n550 = n147 & n378 & n370;
assign n551 = n152 | ~n382;
assign n552 = n409 | n462;
assign n553 = n239 | n409;
assign n554 = n543 & n546 & n461 & n542 & n552 & n553 & n179 & n362;
assign n555 = n373 | ~n382;
assign n556 = n446 | n373;
assign n557 = n356 | n373;
assign n558 = n378 | n373;
assign n559 = n373 | n370;
assign n560 = n511 & n169 & n406 & n557 & n558 & n559;
assign n561 = n136 & ~n383;
assign n562 = n515 & n514 & n412;
assign n563 = n502 & n168;
assign n564 = n507 & n353;
assign n565 = n339 | n370;
assign n566 = n356 | n339;
assign n567 = n138 & n566;
assign n568 = n531 & n527 & n528;
assign n569 = n153 & n333;
assign n570 = n144 & n299;
assign n571 = n149 & n419;
assign n572 = n362 & n552 & n461;
assign n573 = n326 & n571 & n524 & n168;
assign n574 = n452 & n537 & n401;
assign n575 = n517 & n199;
assign n576 = n544 & n574;
assign n577 = n153 & n333 & n144 & n147;
assign n578 = n558 & n424 & n372 & n557;
assign n579 = n509 & n510 & n555;
assign n580 = n350 & n490;
assign n581 = n169 & n579;
assign n582 = n473 & n536 & n569 & n150 & n458 & n271;
assign n583 = n270 | ~n381;
assign n584 = n155 | n403;
assign n585 = n466 & n416 & n480 & n479;
assign n586 = n429 & n281 & n263;
assign n587 = n534 & n494;
assign n588 = n457 & n261 & n470;
assign n589 = n580 & n587 & n568 & n574 & n536 & n177 & n388 & n400;
assign n590 = n142 & n530;
assign n591 = n451 & n408 & n374;
assign n592 = n145 & n339 & n474;
assign n593 = n510 & n525 & n464;
assign n594 = n239 | n270;
assign n595 = n545 & n260;
assign n596 = n151 & n402 & n427;
assign n597 = n418 & n475 & n522 & n534 & n348 & n399;
endmodule

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,805 @@
// Benchmark "TOP" written by ABC on Mon Feb 4 17:32:57 2019
module misex3 (
a, b, c, d, e, f, g, h, i, j, k, l, m, n,
r2, s2, t2, u2, n2, o2, p2, q2, h2, i2, j2, k2, m2, l2 );
input a, b, c, d, e, f, g, h, i, j, k, l, m, n;
output r2, s2, t2, u2, n2, o2, p2, q2, h2, i2, j2, k2, m2, l2;
wire 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, 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, n367, n368, n369, n370, n371, n372, n373,
n374, n375, n376, n377, n378, n379, n380, n381, n382, n383, n384, n385,
n386, n387, n388, n389, n390, n391, n392, n393, n394, n395, n396, n397,
n398, n399, n400, n401, n402, n403, n404, n405, n406, n407, n408, n409,
n410, n411, n412, n413, n414, n415, n416, n417, n418, n419, n420, n421,
n422, n423, n424, n425, n426, n427, n428, n429, n430, n431, n432, n433,
n434, n435, n436, n437, n438, n439, n440, n441, n442, n443, n444, n445,
n446, n447, n448, n449, n450, n451, n452, n453, n454, n455, n456, n457,
n458, n459, n460, n461, n462, n463, n464, n465, n466, n467, n468, n469,
n470, n471, n472, n473, n474, n475, n476, n477, n478, n479, n480, n481,
n482, n483, n484, n485, n486, n487, n488, n489, n490, n491, n492, n493,
n494, n495, n496, n497, n498, n499, n500, n501, n502, n503, n504, n505,
n506, n507, n508, n509, n510, n511, n512, n513, n514, n515, n516, n517,
n518, n519, n520, n521, n522, n523, n524, n525, n526, n527, n528, n529,
n530, n531, n532, n533, n534, n535, n536, n537, n538, n539, n540, n541,
n542, n543, n544, n545, n546, n547, n548, n549, n550, n551, n552, n553,
n554, n555, n556, n557, n558, n559, n560, n561, n562, n563, n564, n565,
n566, n567, n568, n569, n570, n571, n572, n573, n574, n575, n576, n577,
n578, n579, n580, n581, n582, n583, n584, n585, n586, n587, n588, n589,
n590, n591, n592, n593, n594, n595, n596, n597, n598, n599, n600, n601,
n602, n603, n604, n605, n606, n607, n608, n609, n610, n611, n612, n613,
n614, n615, n616, n617, n618, n619, n620, n621, n622, n623, n624, n625,
n626, n627, n628, n629, n630, n631, n632, n633, n634, n635, n636, n637,
n638, n639, n640, n641, n642, n643, n644, n645, n646, n647, n648, n649,
n650, n651, n652, n653, n654, n655, n656, n657, n658, n659, n660, n661,
n662, n663, n664, n665, n666, n667, n668, n669, n670, n671, n672, n673,
n674, n675, n676, n677, n678, n679, n680, n681, n682, n683, n684, n685,
n686, n687, n688, n689, n690, n691, n692, n693, n694, n695, n696, n697,
n698, n699, n700, n701, n702, n703, n704, n705, n706, n707, n708, n709,
n710, n711, n712, n713, n714, n715, n716, n717, n718, n719, n720, n721,
n722, n723, n724, n725, n726, n727, n728, n729, n730, n731, n732, n733,
n734, n735, n736, n737, n738, n739, n740, n741, n742, n743, n744, n745,
n746, n747, n748, n749, n750, n751, n752, n753, n754, n755, n756, n757,
n758, n759, n760, n761, n762;
assign r2 = ~n293;
assign s2 = ~n74;
assign t2 = ~n217;
assign u2 = ~n148;
assign n2 = ~n68;
assign o2 = ~n62;
assign p2 = ~n388;
assign q2 = ~n349;
assign h2 = ~n56;
assign i2 = ~n569;
assign j2 = ~n55;
assign k2 = ~n50;
assign m2 = ~n456;
assign l2 = ~n757 | ~n759 | n46 | ~n747 | n44 | n45 | n42 | n43;
assign n42 = f & (~n680 | ~n739 | ~n740);
assign n43 = ~f & (n475 | n476 | ~n735);
assign n44 = ~n & (~n722 | ~n724 | ~n728);
assign n45 = n & (~n518 | ~n730 | ~n731);
assign n46 = n548 | ~n744 | n544 | n547 | n542 | ~n543 | ~n540 | n541;
assign n47 = n675 | n676 | n372 | i | l;
assign n48 = n438 | n549 | n189;
assign n49 = n434 & n662 & n661 & n51 & n437 & n439;
assign n50 = n49 & n47 & n48;
assign n51 = n657 & n573 & n656 & n431 & n425 & n428;
assign n52 = n443 & n442 & n440 & n441;
assign n53 = n675 | n189 | n438;
assign n54 = n179 | n480 | n550 | n551;
assign n55 = n54 & n53 & n51 & n52;
assign n56 = n579 & n578 & n577 & n576 & n575 & n574 & n572 & n573;
assign n57 = (n95 | n408) & (n409 | n88);
assign n58 = n96 | n121;
assign n59 = n648 & ~n404 & n361 & n402;
assign n60 = n83 | n317;
assign n61 = (n362 | n300) & (n363 | n426);
assign n62 = ~n416 & ~n415 & ~n414 & n61 & n60 & n59 & n57 & n58;
assign n63 = j | n243 | n119 | n591;
assign n64 = (n177 | n362) & (n684 | n409);
assign n65 = ~n297 & (n95 | n253 | n298);
assign n66 = n620 & n619 & n572 & n618 & n617 & n69 & n574 & n211;
assign n67 = ~n422 & (n591 | (n710 & n711));
assign n68 = ~n420 & ~n419 & n67 & n66 & n65 & n64 & n59 & n63;
assign n69 = n92 | n407 | n91;
assign n70 = n595 | n92;
assign n71 = n264 | ~d | n248;
assign n72 = n701 & (n236 | n79);
assign n73 = n232 & (n152 | n632);
assign n74 = ~n267 & ~n266 & ~n265 & n73 & n72 & n71 & n69 & n70;
assign n75 = ~h | ~k;
assign n76 = n75 | l;
assign n77 = n623 | ~n658;
assign n78 = ~n167 & (n77 | ~n586);
assign n79 = ~c | n459;
assign n80 = e | n521;
assign n81 = n612 & n302;
assign n82 = n81 & n79 & n80;
assign n83 = ~k | n199;
assign n84 = m | j | ~l;
assign n85 = n83 & (~n | n84);
assign n86 = n684 | n83;
assign n87 = (n192 | n605) & (n206 | n604);
assign n88 = ~g | n603;
assign n89 = n86 & n87 & (n85 | n88);
assign n90 = (n110 | n156) & (n113 | n275);
assign n91 = ~i | n538;
assign n92 = ~a | n521;
assign n93 = n90 & (n91 | n92);
assign n94 = ~g | n600;
assign n95 = n285 & n397;
assign n96 = ~k | n167;
assign n97 = n96 | n94 | n95;
assign n98 = n601 | n199;
assign n99 = ~i | n368;
assign n100 = n98 & (~n | n99);
assign n101 = ~h | n538;
assign n102 = ~n | n129;
assign n103 = h | n538;
assign n104 = (n100 | n103) & (n101 | n102);
assign n105 = ~g | n249;
assign n106 = h | n197;
assign n107 = (n100 | n106) & (n102 | n105);
assign n108 = ~k | n179;
assign n109 = n108 & (n | n84);
assign n110 = n608 & n287 & n607;
assign n111 = (n101 | n92) & (n110 | n105);
assign n112 = n135 | n119;
assign n113 = n218 & n295;
assign n114 = ~g | n393;
assign n115 = n112 & n111 & (n113 | n114);
assign n116 = (n110 | n164) & (n113 | n189);
assign n117 = e | n609;
assign n118 = n116 & (n92 | n117);
assign n119 = ~a | n271;
assign n120 = ~e | n609;
assign n121 = n118 & (n119 | n120);
assign n122 = (n110 | n106) & (n113 | n202);
assign n123 = n122 & (n92 | n103);
assign n124 = n153 | n399;
assign n125 = ~n610 | ~g | n237;
assign n126 = j | n154;
assign n127 = ~i | n609;
assign n128 = n124 & n125 & (n126 | n127);
assign n129 = n401 & n512 & n527 & n760;
assign n130 = (n106 | n99) & (n129 | n105);
assign n131 = n519 | ~i | n121;
assign n132 = (n123 | n588) & (n95 | n128);
assign n133 = ~e | n271;
assign n134 = n131 & n132 & (n130 | n133);
assign n135 = ~h | n243;
assign n136 = h | n243;
assign n137 = (n100 | n136) & (n135 | n102);
assign n138 = ~n137 & (~n625 | (b & ~n479));
assign n139 = ~n89 & (~n325 | ~n606);
assign n140 = ~n167 & (~n683 | (~n121 & ~n601));
assign n141 = ~n95 & (~n687 | (~n96 & ~n127));
assign n142 = n133 | n601 | n179 | n106;
assign n143 = n590 | n591;
assign n144 = n136 | n587 | n588;
assign n145 = ~n139 & ~n140 & (n | n134);
assign n146 = (n93 | n591) & (n104 | n616);
assign n147 = n688 & (n107 | n269);
assign n148 = n147 & n146 & n145 & n144 & n143 & n142 & n66 & ~n138;
assign n149 = n689 | n108;
assign n150 = (n372 | n193) & (n613 | n624);
assign n151 = ~f | n603;
assign n152 = n149 & n150 & (n109 | n151);
assign n153 = ~m | n611;
assign n154 = ~l | ~m;
assign n155 = n153 & (i | n154);
assign n156 = ~i | n197;
assign n157 = j | n197;
assign n158 = n156 & n157;
assign n159 = (n155 | n105) & (n158 | n589);
assign n160 = n690 & (n164 | n126);
assign n161 = n644 & n647;
assign n162 = i | n197;
assign n163 = n159 & n160 & (n161 | n162);
assign n164 = g | n249;
assign n165 = (n164 | n96) & (n | n163);
assign n166 = n75 | ~m | n;
assign n167 = ~m | n;
assign n168 = ~l | ~h | j;
assign n169 = n166 & (n167 | n168);
assign n170 = ~f | n243;
assign n171 = ~e | n196;
assign n172 = (n169 | n171) & (~n78 | n170);
assign n173 = n196 | d | n169;
assign n174 = d | n197;
assign n175 = n173 & (~n78 | n174);
assign n176 = j | n75;
assign n177 = n176 & (i | n75);
assign n178 = n299 & n300 & n76 & n177;
assign n179 = m | n;
assign n180 = j | n603;
assign n181 = ~l | n179;
assign n182 = (n180 | n181) & (n178 | n179);
assign n183 = ~e | n615;
assign n184 = ~n | n183;
assign n185 = (n99 | n184) & (n98 | n183);
assign n186 = ~n184 & ~n761 & (~n114 | ~n189);
assign n187 = ~n186 & (n185 | (n202 & n676));
assign n188 = n183 | n391;
assign n189 = g | n393;
assign n190 = n187 & (n188 | (n114 & n189));
assign n191 = (n206 | n624) & (n689 | n83);
assign n192 = k | n199;
assign n193 = ~j | n249;
assign n194 = n191 & (n192 | n193);
assign n195 = n194 & (n85 | n151);
assign n196 = ~f | g;
assign n197 = ~f | ~g;
assign n198 = (n169 | n196) & (~n78 | n197);
assign n199 = m | ~n;
assign n200 = ~l | n199;
assign n201 = (n180 | n200) & (n178 | n199);
assign n202 = h | n570;
assign n203 = (n100 | n202) & (n102 | n114);
assign n204 = n203 & (n201 | (n170 & n171));
assign n205 = n691 & n692 & (n85 | n314);
assign n206 = l | n199;
assign n207 = ~k | n393;
assign n208 = n89 & n205 & (n206 | n207);
assign n209 = ~n152 & (~n133 | ~n430);
assign n210 = n595 | n599;
assign n211 = n595 | n353;
assign n212 = n693 & (~e | n195 | n324);
assign n213 = ~n209 & (n285 | (n165 & n595));
assign n214 = n208 | n315;
assign n215 = (n172 | n119) & (n175 | n287);
assign n216 = n694 & (n182 | n302);
assign n217 = n216 & n190 & n215 & n214 & n213 & n212 & n210 & n211;
assign n218 = ~a | n560;
assign n219 = n167 | n218;
assign n220 = (n168 | n219) & (n218 | n166);
assign n221 = ~n658 | ~n586 | n623;
assign n222 = ~f & ~n538;
assign n223 = ~n219 & n221 & (n222 | ~n261);
assign n224 = e | n488;
assign n225 = e | n196;
assign n226 = ~n223 & (n220 | (n224 & n225));
assign n227 = n393 | ~j | n372;
assign n228 = (n613 | n207) & (n109 | n314);
assign n229 = n640 & n643;
assign n230 = n227 & n228 & (n229 | n108);
assign n231 = ~e | n626;
assign n232 = n190 & n226 & (n230 | n231);
assign n233 = ~n83 & (~n252 | ~n639);
assign n234 = (n192 | n322) & (n256 | n206);
assign n235 = g | n603;
assign n236 = ~n233 & n234 & (n85 | n235);
assign n237 = k | n154;
assign n238 = (i | n161) & (~j | n237);
assign n239 = ~n591 & (~n91 | (~j & ~n538));
assign n240 = ~n239 & (n | (n699 & n700));
assign n241 = n165 & n240 & (n96 | n117);
assign n242 = ~i | n243;
assign n243 = ~e | ~g;
assign n244 = n242 & (j | n243);
assign n245 = n96 | n120;
assign n246 = n697 & (n120 | n126);
assign n247 = n696 & n695 & (n244 | n589);
assign n248 = n245 & (n | (n246 & n247));
assign n249 = ~f | ~h;
assign n250 = n249 | n102 | e;
assign n251 = n629 & n88;
assign n252 = j | n609;
assign n253 = i | n602;
assign n254 = ~g | n360;
assign n255 = n254 & n253 & n251 & n252;
assign n256 = g | n75;
assign n257 = n698 & (n376 | (n628 & n649));
assign n258 = (n94 | n96) & (n629 | n630);
assign n259 = ~l | n167;
assign n260 = n257 & n258 & (n255 | n259);
assign n261 = ~f | n538;
assign n262 = (n169 | n225) & (~n78 | n261);
assign n263 = ~n260 & (~n655 | (d & ~n524));
assign n264 = a | ~b;
assign n265 = ~n201 & (~n325 | (~n261 & ~n616));
assign n266 = ~n352 & (~n262 | n263);
assign n267 = ~n526 & (~n250 | (~n100 & ~n631));
assign n268 = n344 & (n83 | n633);
assign n269 = ~b | n598;
assign n270 = n268 & (n194 | n269);
assign n271 = ~c | d;
assign n272 = n79 & (~f | n271);
assign n273 = (n100 | n634) & (n164 | n102);
assign n274 = n273 & n107;
assign n275 = ~i | n570;
assign n276 = j | n570;
assign n277 = n275 & n276;
assign n278 = (n155 | n114) & (n277 | n589);
assign n279 = n749 & (n189 | n126);
assign n280 = i | n570;
assign n281 = n278 & n279 & (n161 | n280);
assign n282 = (n96 | n189) & (n | n281);
assign n283 = n286 | g | n169;
assign n284 = n283 & (d | ~n78 | n243);
assign n285 = ~e | n264;
assign n286 = d | ~e;
assign n287 = c | ~a | ~b;
assign n288 = n285 & (n286 | n287);
assign n289 = (n236 | n635) & (n104 | n616);
assign n290 = (n260 | n288) & (n284 | ~n545);
assign n291 = n107 | n315;
assign n292 = (n182 | n272) & (n274 | n625);
assign n293 = n292 & n291 & n290 & n289 & n270 & n232;
assign n294 = n123 & (n119 | n136);
assign n295 = n596 & n594;
assign n296 = n112 & n111 & (n295 | n114);
assign n297 = ~n636 & (~n355 | (~n167 & ~n296));
assign n298 = n | n126;
assign n299 = ~h | n360;
assign n300 = ~k | n603;
assign n301 = n180 & n300 & n299 & n176;
assign n302 = ~c | n524;
assign n303 = n302 & (~c | n196);
assign n304 = (n113 | n646) & (~j | n645);
assign n305 = ~j | n197;
assign n306 = n304 & (n110 | n305);
assign n307 = n121 & (n95 | n94);
assign n308 = ~n95 & ~n644 & (~n88 | ~n660);
assign n309 = ~n308 & (n329 | n339 | n435);
assign n310 = (n118 | n126) & (n306 | n237);
assign n311 = ~l | n519;
assign n312 = n309 & n310 & (n307 | n311);
assign n313 = n183 & n390;
assign n314 = f | n603;
assign n315 = ~b | n286;
assign n316 = (n314 | n315) & (n313 | n235);
assign n317 = n633 & n316;
assign n318 = (n80 & (~n | n371)) | (n & n371);
assign n319 = (n88 | n318) & (~n | n317);
assign n320 = n393 | ~j | n315;
assign n321 = n269 | n193;
assign n322 = ~j | n609;
assign n323 = n320 & n321 & (n313 | n322);
assign n324 = b | ~c;
assign n325 = ~f | n324;
assign n326 = (n315 | n643) & (n313 | n252);
assign n327 = j | n249;
assign n328 = n326 & (n269 | n327);
assign n329 = ~h | n621;
assign n330 = n328 & (n325 | n329);
assign n331 = (n316 | n84) & (n330 | n435);
assign n332 = m | k | ~l;
assign n333 = n331 & (n323 | n332);
assign n334 = (n315 | n640) & (n313 | n639);
assign n335 = i | n249;
assign n336 = n334 & (n269 | n335);
assign n337 = ~n199 & (~n336 | (~n253 & ~n371));
assign n338 = ~n337 & (n80 | n179 | n253);
assign n339 = n303 & n637;
assign n340 = (n339 | n181) & (n325 | n200);
assign n341 = ~n318 & (~n704 | (~n332 & ~n605));
assign n342 = n243 | n490 | ~j | n119;
assign n343 = n298 | n119 | n120;
assign n344 = n633 | ~n | n84;
assign n345 = n705 & (n301 | n340);
assign n346 = n65 & (n319 | n435);
assign n347 = (n312 & (~n | n333)) | (n & n333);
assign n348 = (n682 | n641) & (n338 | n433);
assign n349 = n348 & n347 & n346 & n345 & n344 & n343 & ~n341 & n342;
assign n350 = (n113 | n280) & (i | n645);
assign n351 = n350 & (n110 | n162);
assign n352 = ~a | n324;
assign n353 = ~b | n597;
assign n354 = n353 & n287 & n352;
assign n355 = n114 | n219;
assign n356 = (n599 | n105) & (n295 | n114);
assign n357 = n112 & (n92 | (n105 & n101));
assign n358 = n355 & (n167 | (n356 & n357));
assign n359 = n707 & (n285 | n630 | n605);
assign n360 = ~j | k;
assign n361 = n359 & (n358 | n360);
assign n362 = (n339 | n179) & (n325 | n199);
assign n363 = (n339 | n108) & (n325 | n83);
assign n364 = ~n88 & (~n706 | (~n167 & ~n433));
assign n365 = ~n364 & (n629 | (n259 & n630));
assign n366 = n365 & (n96 | n322);
assign n367 = n519 | n | n121;
assign n368 = ~k | m;
assign n369 = (n253 | n318) & (~n | n336);
assign n370 = n367 & (n368 | (n369 & n319));
assign n371 = n395 & n315 & n606;
assign n372 = k | n179;
assign n373 = (n372 | n80) & (n371 | n192);
assign n374 = ~i | k | ~l | n167;
assign n375 = ~k | ~n610;
assign n376 = l | n167;
assign n377 = n374 & (n375 | (n376 & n259));
assign n378 = ~j | n603;
assign n379 = n378 & n329;
assign n380 = n644 | n587 | n627;
assign n381 = n647 | n587 | n627;
assign n382 = n351 | n | n161;
assign n383 = (n294 | n377) & (n363 | n379);
assign n384 = n373 | n605;
assign n385 = (n95 | n366) & (~j | n370);
assign n386 = n362 | n299;
assign n387 = n361 & (n323 | n192);
assign n388 = n387 & n386 & n385 & n384 & n383 & n382 & n380 & n381;
assign n389 = ~n372 & (~n303 | ~n637);
assign n390 = n635 & n638;
assign n391 = ~n | n401;
assign n392 = n188 & (n390 | n391);
assign n393 = f | ~h;
assign n394 = (n393 | n315) & (n249 | n269);
assign n395 = n616 & n625;
assign n396 = e | n324;
assign n397 = ~b | n524;
assign n398 = n397 & n396 & n395 & n315;
assign n399 = ~i | n602;
assign n400 = (n398 | n399) & (~i | n394);
assign n401 = m | n360;
assign n402 = n399 | n | n80 | n401;
assign n403 = h & n610;
assign n404 = n403 & (n389 | (~n192 & ~n325));
assign n405 = n253 | n641;
assign n406 = (n256 | n167) & (n376 | n176);
assign n407 = n | n592;
assign n408 = n405 & n406 & (n407 | n399);
assign n409 = (n108 | n80) & (n371 | n83);
assign n410 = i & ~n394;
assign n411 = n & (n410 | (~n127 & ~n313));
assign n412 = j | i;
assign n413 = n412 | ~k | n259;
assign n414 = ~n115 & (~n413 | (n77 & ~n167));
assign n415 = ~n527 & (n411 | (~n318 & ~n399));
assign n416 = ~n591 & (~n709 | (~n110 & ~n327));
assign n417 = ~n433 & (~n351 | (~n119 & ~n627));
assign n418 = ~n311 & ~n & ~n251;
assign n419 = ~n95 & (n418 | (~n376 & ~n649));
assign n420 = ~n83 & (~n328 | ~n336);
assign n421 = i & k;
assign n422 = ~n167 & (n417 | (~n294 & n421));
assign n423 = n654 | ~f | n598;
assign n424 = j | k;
assign n425 = n259 | n399 | n423 | n424;
assign n426 = ~h | n600;
assign n427 = n651 | ~n | n557;
assign n428 = n427 | n426 | n332;
assign n429 = n650 | n114 | n181;
assign n430 = ~e | n521;
assign n431 = n429 | n430;
assign n432 = ~n545 | n655;
assign n433 = ~l | ~j | ~k;
assign n434 = n399 | n167 | n432 | n433;
assign n435 = ~l | n368;
assign n436 = n170 | n526;
assign n437 = n436 | ~n403 | n435;
assign n438 = n181 | n375;
assign n439 = n438 | n231 | n105;
assign n440 = n652 | n202 | n632;
assign n441 = ~n653 | n435 | n445;
assign n442 = n181 | n202 | n430 | ~n473;
assign n443 = n712 & (n332 | n427 | n378);
assign n444 = n106 | n613 | n231 | n658;
assign n445 = h | n621;
assign n446 = m | k | l;
assign n447 = n444 & (n436 | n445 | n446);
assign n448 = n551 | n | n446;
assign n449 = n448 & (n179 | n127 | n433);
assign n450 = k | n189 | n181 | n632;
assign n451 = n332 | n651 | ~h | n224;
assign n452 = n450 & n451;
assign n453 = n641 | n654 | n660 | n477;
assign n454 = n105 | n181 | n549 | n650;
assign n455 = (n449 | n480) & (n452 | n412);
assign n456 = n455 & n454 & n453 & n49 & n52 & n447;
assign n457 = i | n179;
assign n458 = (~k | n457) & (n179 | ~n412);
assign n459 = e | ~f;
assign n460 = a | n526;
assign n461 = j & ~n630 & (n459 | n460);
assign n462 = ~n758 & (~h | n438 | ~n479);
assign n463 = f | ~c | e;
assign n464 = ~n461 & n462 & (n458 | n463);
assign n465 = b | n199;
assign n466 = n200 & n83 & n465 & n298;
assign n467 = (b | n200) & (c | n181);
assign n468 = ~n167 & (~n737 | (~b & ~n479));
assign n469 = h | j | n199;
assign n470 = (j | n83) & (~i | n663);
assign n471 = ~j | n199;
assign n472 = n469 & n470 & (~h | n471);
assign n473 = ~k & n610;
assign n474 = n473 & b & ~n199;
assign n475 = ~h & (n474 | (~i & ~n206));
assign n476 = ~n673 & (~n521 | (~e & n324));
assign n477 = f | n659;
assign n478 = n477 & (f | a | e);
assign n479 = c | d;
assign n480 = f | n479;
assign n481 = n669 | c | e;
assign n482 = b | e | ~n | n669;
assign n483 = n375 | ~n615 | ~h | n259;
assign n484 = (d | n734) & (n457 | n480);
assign n485 = n199 | n675;
assign n486 = ~n762 & n485 & n484 & n483 & n481 & n482;
assign n487 = c & ~n655;
assign n488 = f | g;
assign n489 = b | n488;
assign n490 = n | n237;
assign n491 = (j | n490) & (n199 | ~n626);
assign n492 = ~n199 & (~n741 | (~j & ~n525));
assign n493 = n742 & (n670 | n671);
assign n494 = ~n492 & ~n756 & (i | n491);
assign n495 = n493 & n494 & (n457 | n271);
assign n496 = c | n488;
assign n497 = n664 & n463;
assign n498 = (n106 | n231) & (~j | n497);
assign n499 = (n716 | n167) & (n498 | n179);
assign n500 = n496 | n372;
assign n501 = (n527 | n671) & (n719 | n613);
assign n502 = n718 & (n436 | (n206 & n192));
assign n503 = n502 & n501 & n499 & n500;
assign n504 = ~j & ~n372 & (~n271 | ~n302);
assign n505 = (b | n199) & (c | n179);
assign n506 = ~b | ~e | ~n | n666;
assign n507 = e | n505 | n650;
assign n508 = (n525 | n471) & (n457 | n479);
assign n509 = n478 | n167;
assign n510 = ~n626 | j | n192;
assign n511 = n510 & n509 & n508 & n507 & ~n504 & n506;
assign n512 = i | n368;
assign n513 = m | n603;
assign n514 = i | m;
assign n515 = n512 & n513 & (~l | n514);
assign n516 = n253 & n127;
assign n517 = (n426 | n446) & (n516 | n666);
assign n518 = n517 & (n401 | n151);
assign n519 = ~k | ~m;
assign n520 = n519 & (j | ~m);
assign n521 = c | ~d;
assign n522 = n81 & (g | n521);
assign n523 = ~n311 & n403 & (~n174 | ~n261);
assign n524 = ~e | f;
assign n525 = b | n524;
assign n526 = ~d | n615;
assign n527 = j | n368;
assign n528 = n99 & n527;
assign n529 = n717 & (h | n524 | n636);
assign n530 = (n521 | n525) & (~j | n716);
assign n531 = (i | n432) & (n254 | n665);
assign n532 = n634 & n550 & (n135 | n650);
assign n533 = n532 & n531 & n529 & n530;
assign n534 = ~c & ~n524;
assign n535 = (~n180 | ~n628) & (~n463 | n534);
assign n536 = ~j & (~n660 | (~n156 & ~n231));
assign n537 = n396 & (a | c | e);
assign n538 = e | ~g;
assign n539 = ~n162 & (~n108 | ~n181);
assign n540 = n375 | n259 | n114;
assign n541 = ~n489 & (~n206 | ~n663);
assign n542 = ~n613 & (~n497 | (~c & ~n660));
assign n543 = n438 | n101;
assign n544 = ~n231 & (n539 | (~n156 & ~n613));
assign n545 = a & ~n615;
assign n546 = n545 & ~n655 & (~n630 | ~n672);
assign n547 = ~n457 & (~n631 | (~n105 & ~n231));
assign n548 = ~n179 & (n535 | n536 | ~n715);
assign n549 = ~e | n479;
assign n550 = l | n424;
assign n551 = i | g | h;
assign n552 = n112 | n155 | n;
assign n553 = n119 | n245;
assign n554 = f | n167;
assign n555 = (n168 | n554) & (f | n166);
assign n556 = n555 | ~e | g;
assign n557 = f | n243;
assign n558 = n556 & (~n78 | n557);
assign n559 = ~n99 & ~g & n;
assign n560 = ~b | ~d;
assign n561 = (n203 | n560) & (n526 | ~n748);
assign n562 = (n175 | n287) & (n282 | n594);
assign n563 = n236 | n638;
assign n564 = (n352 | n558) & (~e | n561);
assign n565 = n608 | n172;
assign n566 = n677 & n553 & n552 & n342 & n143 & n63;
assign n567 = n226 & n270 & (n89 | n625);
assign n568 = n750 & n752 & n656 & n661 & n441 & n657 & n440 & n662;
assign n569 = n568 & n567 & n447 & n566 & n565 & n564 & n562 & n563;
assign n570 = f | ~g;
assign n571 = (g | n555) & (~n78 | n570);
assign n572 = n595 | n352;
assign n573 = n652 | n106 | n549;
assign n574 = n593 | n596;
assign n575 = n626 | ~a | n262;
assign n576 = n571 | ~d | ~n545;
assign n577 = n753 & (n654 | (n175 & n248));
assign n578 = n282 | n596;
assign n579 = n566 & (n165 | n352);
assign n580 = l | ~n421;
assign n581 = ~l | ~h | i;
assign n582 = (~l & n622) | (n603 & (l | n622));
assign n583 = ~h | n611;
assign n584 = ~l | n360;
assign n585 = ~l | n621;
assign n586 = n585 & n584 & n583 & n582 & n580 & n581;
assign n587 = n | n119;
assign n588 = ~i | n154;
assign n589 = l | n519;
assign n590 = n119 | n242;
assign n591 = n | n589;
assign n592 = j | n519;
assign n593 = n407 | n275;
assign n594 = ~a | n286;
assign n595 = n156 | n407;
assign n596 = ~e | ~a | ~c;
assign n597 = d | a;
assign n598 = ~d | e;
assign n599 = ~a | n598;
assign n600 = ~i | j;
assign n601 = ~l | n600;
assign n602 = ~g | ~h;
assign n603 = h | ~i;
assign n604 = ~g | n75;
assign n605 = ~j | n602;
assign n606 = n396 & n397;
assign n607 = n599 & n353;
assign n608 = n92 & n352;
assign n609 = g | ~h;
assign n610 = i & j;
assign n611 = ~j | l;
assign n612 = ~f | n521;
assign n613 = l | n179;
assign n614 = ~g | ~n421;
assign n615 = ~b | ~c;
assign n616 = d | n615;
assign n617 = n590 | n407;
assign n618 = n593 | n594;
assign n619 = n97 & n70 & n210;
assign n620 = (n595 | n287) & (n593 | n218);
assign n621 = i | ~j;
assign n622 = j | ~k;
assign n623 = k & ~n600;
assign n624 = ~k | n249;
assign n625 = ~b | n521;
assign n626 = ~c | ~d;
assign n627 = i | n243;
assign n628 = n614 & n605;
assign n629 = ~g | n621;
assign n630 = k | n167;
assign n631 = h | n459;
assign n632 = e | n626;
assign n633 = n269 | n151;
assign n634 = h | n196;
assign n635 = ~b | n459;
assign n636 = ~l | n412;
assign n637 = n612 & n272;
assign n638 = ~f | n560;
assign n639 = i | n609;
assign n640 = i | n393;
assign n641 = n622 | ~l | n167;
assign n642 = j | n602;
assign n643 = j | n393;
assign n644 = ~j | n154;
assign n645 = n538 | n92;
assign n646 = ~j | n570;
assign n647 = ~m | n360;
assign n648 = (n392 | n127) & (n400 | n391);
assign n649 = ~g | n622;
assign n650 = k | n600;
assign n651 = b | n626;
assign n652 = n621 | ~k | n181;
assign n653 = n222 & ~n526;
assign n654 = a | n615;
assign n655 = ~f | ~d | ~e;
assign n656 = ~n653 | n332 | n426;
assign n657 = n632 | n429;
assign n658 = k | n621;
assign n659 = d | e;
assign n660 = i | ~g | h;
assign n661 = n445 | n435 | n427;
assign n662 = n430 | n202 | n652;
assign n663 = n83 & n471;
assign n664 = ~g | n479;
assign n665 = a | n598;
assign n666 = m | n424;
assign n667 = ~h | n514;
assign n668 = k | n514;
assign n669 = h | n514;
assign n670 = m | n600;
assign n671 = n | n479;
assign n672 = h | n167;
assign n673 = g | n199;
assign n674 = h & ~n650;
assign n675 = e | n479;
assign n676 = h | n488;
assign n677 = n343 & n144 & n454 & n617 & n381 & n380;
assign n678 = (e & ~n119) | (~n92 & (~e | ~n119));
assign n679 = (n479 & n674) | (~g & (~n479 | n674));
assign n680 = n755 & (i | n466 | h);
assign n681 = ~n610 | l | n115;
assign n682 = n590 & n93;
assign n683 = n681 & (n682 | n584);
assign n684 = n642 & n253;
assign n685 = (n684 | n108) & (n109 | n88);
assign n686 = (n605 | n372) & (n604 | n613);
assign n687 = (n614 | n376) & (n88 | n259);
assign n688 = ~n141 & (n82 | (n685 & n686));
assign n689 = n335 & n327;
assign n690 = (n588 | n106) & (n237 | n305);
assign n691 = n229 | n83;
assign n692 = n393 | ~j | n192;
assign n693 = ~a | b | ~d | n198;
assign n694 = (n607 | n165) & (n204 | n625);
assign n695 = (n161 | n627) & (n155 | n135);
assign n696 = n243 | ~j | n237;
assign n697 = (n588 | n136) & (n242 | n592);
assign n698 = n256 | n167;
assign n699 = (n155 | n101) & (n238 | n538);
assign n700 = (n588 | n103) & (n117 | n126);
assign n701 = (n182 | n612) & (n241 | n92);
assign n702 = ~n294 & (~n585 | (l & n610));
assign n703 = ~n95 & (~n252 | ~n254 | ~n256);
assign n704 = (n84 | n88) & (n642 | n435);
assign n705 = (n167 | ~n702) & (n259 | ~n703);
assign n706 = n490 & (n96 | n611);
assign n707 = n354 | n360 | n167 | n105;
assign n708 = ~h | j;
assign n709 = (n113 | n643) & (~n678 | n708);
assign n710 = (n95 | n88) & (j | n645);
assign n711 = (n110 | n157) & (n113 | n276);
assign n712 = n167 | n127 | n584 | n423;
assign n713 = (d | n525) & (j | n436);
assign n714 = (b | c) & (n127 | n433);
assign n715 = (n253 | n463) & (n103 | ~n473);
assign n716 = n676 & n478;
assign n717 = a | b;
assign n718 = n433 | n487 | ~h | n199;
assign n719 = n496 & ~n534;
assign n720 = n478 & n665 & n432;
assign n721 = ~n523 & (g | n520 | n720);
assign n722 = n721 & (n670 | (n496 & n480));
assign n723 = (n522 | n669) & (n164 | n666);
assign n724 = n723 & (n668 | (n202 & n664));
assign n725 = n231 | n156 | n401;
assign n726 = n592 | n432;
assign n727 = n725 & n726 & (n719 | n667);
assign n728 = n518 & n727 & (n496 | n515);
assign n729 = (n436 | n667) & (n525 | n528);
assign n730 = n729 & (n515 | n436);
assign n731 = (n669 | n397) & (n525 | n668);
assign n732 = n526 | e | n472;
assign n733 = n672 | ~n597 | n636;
assign n734 = n754 & (~h | n438);
assign n735 = n732 & n733 & (~c | n734);
assign n736 = n | a | ~g;
assign n737 = (i | n665) & (~n545 | n659);
assign n738 = ~n468 & (n311 | ~n403 | n736);
assign n739 = n738 & (n665 | (n672 & n96));
assign n740 = (n549 | n673) & (n179 | ~n679);
assign n741 = n489 & (e | n254);
assign n742 = ~n629 | k | n206;
assign n743 = ~n546 & (n537 | n554);
assign n744 = n743 & (n199 | (n714 & n713));
assign n745 = (n720 | n376) & (n533 | n167);
assign n746 = (n192 | n327) & (~i | n503);
assign n747 = n745 & n746 & (n591 | n445);
assign n748 = ~h & (n559 | (~n601 & ~n673));
assign n749 = (n588 | n202) & (n237 | n646);
assign n750 = n53 & n47 & n618;
assign n751 = n526 | n102 | n120;
assign n752 = n751 & (n651 | (n104 & n195));
assign n753 = n449 | n480;
assign n754 = ~n473 | h | n179;
assign n755 = n467 | ~h | n375;
assign n756 = i & ~k & (~n376 | ~n613);
assign n757 = (n495 & (~h | n511)) | (h & n511);
assign n758 = ~h & (~n96 | (c & ~n457));
assign n759 = (n464 & (~g | n486)) | (g & n486);
assign n760 = l | n368;
assign n761 = n760 & n512 & n527;
assign n762 = n674 & ~n167 & n460;
endmodule

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
// Benchmark "s298.bench" written by ABC on Tue Mar 5 10:03:54 2019
module s298 ( clock,
G0, G1, G2,
G117, G132, G66, G118, G133, G67 );
input G0, G1, G2, clock;
output G117, G132, G66, G118, G133, G67;
reg G10, G11, G12, G13, G14, G15, G16, G17, G18, G19, G20, G21, G22, G23;
wire n57, n59, n64, n66, n21_1, n26_1, n31_1, n36_1, n41_1, n46_1, n51_1,
n56_1, n61_1, n66_2, n71_1, n76_1, n81_1, n86_1;
assign n21_1 = ~G0 & ~G10;
assign n26_1 = ~G0 & (G10 ? (~G11 & (G12 | ~G13)) : G11);
assign n31_1 = ~G0 & ((G12 & (~G10 | ~G11)) | (G10 & G11 & ~G12));
assign n36_1 = ~G0 & ((G11 & ((~G12 & G13) | (G10 & G12 & ~G13))) | (G13 & (~G10 | (~G11 & G12))));
assign n41_1 = ~G0 & (G14 ^ (G23 | (G10 & G13 & n57)));
assign n57 = ~G11 & ~G12;
assign n46_1 = ~G0 & ~n59;
assign n59 = (G11 & (~G15 | (~G12 & G13 & ~G14 & ~G22))) | (~G15 & (G12 | ~G13 | G14 | ~G22));
assign n51_1 = n59 & ((G13 & (~G14 | G16)) | (G12 & G14 & G16));
assign n56_1 = n59 & ((~G13 & (G11 ? ~G12 : ~G14)) | (G14 & G17 & (G12 | G13)));
assign n61_1 = n59 & ((G14 & G18 & (G12 | G13)) | (~G13 & (~G14 | (G11 & ~G12))));
assign n66_2 = n59 ? n64 : ~G10;
assign n64 = (G13 & (~G14 | G19)) | (G14 & ((~G11 & ~G12 & ~G13) | (G12 & G19)));
assign n71_1 = n59 ? (n66 & (G20 | (~G12 & ~G13))) : ~G10;
assign n66 = G14 & (~G11 | G12 | G13);
assign n76_1 = n59 & ((G12 & ((G11 & ~G13 & ~G14) | (G14 & G21))) | (G13 & G14 & G21));
assign n81_1 = ~G0 & (G2 ^ G22);
assign n86_1 = ~G0 & (G1 ^ G23);
assign G117 = G18;
assign G132 = G20;
assign G66 = G16;
assign G118 = G19;
assign G133 = G21;
assign G67 = G17;
always @ (posedge clock) begin
G10 <= n21_1;
G11 <= n26_1;
G12 <= n31_1;
G13 <= n36_1;
G14 <= n41_1;
G15 <= n46_1;
G16 <= n51_1;
G17 <= n56_1;
G18 <= n61_1;
G19 <= n66_2;
G20 <= n71_1;
G21 <= n76_1;
G22 <= n81_1;
G23 <= n86_1;
end
initial begin
G10 <= 1'b0;
G11 <= 1'b0;
G12 <= 1'b0;
G13 <= 1'b0;
G14 <= 1'b0;
G15 <= 1'b0;
G16 <= 1'b0;
G17 <= 1'b0;
G18 <= 1'b0;
G19 <= 1'b0;
G20 <= 1'b0;
G21 <= 1'b0;
G22 <= 1'b0;
G23 <= 1'b0;
end
endmodule

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
# Circuit Names, fixed routing channel width,
#alu4.blif, 120
#apex2.blif, 120
#apex4.blif, 120
#bigkey.blif, 120
#clma.blif, 120
#des.blif, 120
#diffeq.blif, 120
#dsip.blif, 120
#elliptic.blif, 120
#ex1010.blif, 120
#ex5p.blif, 120
#frisc.blif, 120
#mcnc_big20.txt
#misex3.blif, 120
#pdc.blif, 120
s298.blif, 30
#s38417.blif, 120
#s38584.1.blif, 120
#seq.blif, 120
#spla.blif, 120
#tseng.blif, 120

View File

@ -0,0 +1,31 @@
# Standard Configuration Example
[dir_path]
script_base = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/scripts/
benchmark_dir = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/benchmarks/Verilog/MCNC
yosys_path = /home/travis/build/LNIS-Projects/OpenFPGA/yosys/yosys
odin2_path = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/not_used_atm/odin2.exe
cirkit_path = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/not_used_atm/cirkit
abc_path = /home/travis/build/LNIS-Projects/OpenFPGA/yosys/yosys-abc
abc_mccl_path = /home/travis/build/LNIS-Projects/OpenFPGA/abc_with_bb_support/abc
abc_with_bb_support_path = /home/travis/build/LNIS-Projects/OpenFPGA/abc_with_bb_support/abc
mpack1_path = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/not_used_atm/mpack1
m2net_path = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/not_used_atm/m2net
mpack2_path = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/not_used_atm/mpack2
vpr_path = /home/travis/build/LNIS-Projects/OpenFPGA/vpr7_x2p/vpr/vpr
rpt_dir = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/results
ace_path = /home/travis/build/LNIS-Projects/OpenFPGA/ace2/ace
[flow_conf]
flow_type = yosys_vpr #standard|mpack2|mpack1|vtr_standard|vtr|yosys_vpr
vpr_arch = /home/travis/build/LNIS-Projects/OpenFPGA/vpr7_x2p/vpr/ARCH/.travis_k6_N10_sram_chain_HC.xml # temporary path to the architecture
#vpr_arch = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/arch/fpga_spice/.travis_k6_N10_sram_chain_HC.xml # Path when Architecture will move
mpack1_abc_stdlib = DRLC7T_SiNWFET.genlib # Use relative path under ABC folder is OK
m2net_conf = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/m2net_conf/m2x2_SiNWFET.conf
mpack2_arch = K6_pattern7_I24.arch
power_tech_xml = /home/travis/build/LNIS-Projects/OpenFPGA/fpga_flow/tech/PTM_45nm/45nm.xml # Use relative path under VPR folder is OK
[csv_tags]
mpack1_tags = Global mapping efficiency:|efficiency:|occupancy wo buf:|efficiency wo buf:
mpack2_tags = BLE Number:|BLE Fill Rate:
vpr_tags = Netlist clb blocks:|Final critical path:|Total logic delay:|total net delay:|Total routing area:|Total used logic block area:|Total wirelength:|Packing took|Placement took|Routing took|Average net density:|Median net density:|Recommend no. of clock cycles:
vpr_power_tags = PB Types|Routing|Switch Box|Connection Box|Primitives|Interc Structures|lut6|ff

View File

@ -0,0 +1,27 @@
#! /bin/bash
# Exit if error occurs
set -e
# Make sure a clear start
pwd_path="$PWD"
task_name="k6_N10_regression_TT"
config_file="$PWD/configs/regression/${task_name}.conf"
bench_txt="$PWD/benchmarks/List/mcnc_benchmark.txt"
rpt_file="$PWD/csv_rpts/fpga_spice/${task_name}.csv"
task_file="$PWD/vpr_fpga_spice_task_lists/${task_name}"
verilog_path="${PWD}/regression_MCNC"
# FPGA-SPICE
rm -rf ${pwd_path}/results
cd ${pwd_path}/scripts
# SRAM FPGA
# TT case
perl fpga_flow.pl -conf ${config_file} -benchmark ${bench_txt} -rpt ${rpt_file} -N 10 -K 6 -ace_d 0.5 -power -remove_designs -multi_thread 1 -vpr_fpga_x2p_rename_illegal_port -vpr_fpga_verilog -vpr_fpga_verilog_dir $verilog_path -vpr_fpga_bitstream_generator -vpr_fpga_verilog_print_autocheck_top_testbench -vpr_fpga_verilog_include_timing -vpr_fpga_verilog_include_signal_init -vpr_fpga_verilog_formal_verification_top_netlist -fix_route_chan_width-vpr_fpga_verilog_include_icarus_simulator
rm -rf ${pwd_path}/results
rm -rf $verilog_path
cd ${pwd_path}
echo "Netlists successfully generated"
exit 0

View File

@ -34,6 +34,7 @@ my $rpt_ptr = \%rpt_h;
my @benchmark_names;
my %benchmarks;
my $benchmarks_ptr = \%benchmarks;
my $verilog_benchmark;
# Supported flows
my @supported_flows = ("standard",
@ -154,11 +155,12 @@ sub print_usage()
print " \t-vpr_route_breadthfirst : use the breadth-first routing algorithm of VPR.\n";
print " \t-min_route_chan_width <float> : turn on routing with <float>* min_route_chan_width.\n";
print " \t-fix_route_chan_width : turn on routing with a fixed route_chan_width, defined in benchmark configuration file.\n";
print " [ VPR - FPGA-X2P Extension ] \n";
print " \t-vpr_fpga_x2p_rename_illegal_port : turn on renaming illegal ports option of VPR FPGA SPICE\n";
print " \t-vpr_fpga_x2p_signal_density_weight <float>: specify the option signal_density_weight of VPR FPGA SPICE\n";
print " \t-vpr_fpga_x2p_sim_window_size <float>: specify the option sim_window_size of VPR FPGA SPICE\n";
print " [ VPR - FPGA-SPICE Extension ] \n";
print " \t-vpr_fpga_spice <task_file> : turn on SPICE netlists print-out in VPR, specify a task file\n";
print " \t-vpr_fpga_spice_rename_illegal_port : turn on renaming illegal ports option of VPR FPGA SPICE\n";
print " \t-vpr_fpga_spice_signal_density_weight <float>: specify the option signal_density_weight of VPR FPGA SPICE\n";
print " \t-vpr_fpga_spice_sim_window_size <float>: specify the option sim_window_size of VPR FPGA SPICE\n";
print " \t-vpr_fpga_spice_sim_mt_num <int>: specify the option sim_mt_num of VPR FPGA SPICE\n";
print " \t-vpr_fpga_spice_print_component_tb : print component-level testbenches in VPR FPGA SPICE\n";
print " \t-vpr_fpga_spice_print_grid_tb : print Grid-level testbenches in VPR FPGA SPICE\n";
@ -168,19 +170,41 @@ sub print_usage()
print " \t-vpr_fpga_spice_testbench_load_extraction_off : turn off testbench_load_extraction in VPR FPGA SPICE\n";
print " [ VPR - FPGA-Verilog Extension ] \n";
print " \t-vpr_fpga_verilog : turn on Verilog Generator of VPR FPGA SPICE\n";
print " \t-vpr_fpga_verilog_dir <verilog_path>: provide the path where generated verilog files will be written\n";
print " \t-vpr_fpga_verilog_include_timing : turn on printing delay specification in Verilog files\n";
print " \t-vpr_fpga_verilog_include_signal_init : turn on printing signal initialization in Verilog files\n";
print " \t-vpr_fpga_verilog_print_autocheck_top_testbench: turn on printing autochecked top-level testbench for Verilog Generator of VPR FPGA SPICE\n";
print " \t-vpr_fpga_verilog_formal_verification_top_netlist : turn on printing formal top Verilog files\n";
print " \t-vpr_fpga_verilog_include_icarus_simulator : Add syntax and definition required to use Icarus Verilog simulator\n";
print " \t-vpr_fpga_verilog_print_user_defined_template : \n";
print " \t-vpr_fpga_verilog_print_report_timing_tcl : Generate tcl script useful for timing report generation\n";
print " \t-vpr_fpga_verilog_report_timing_rpt_path <path_to_generate_reports> : Specify path for report timing\n";
print " \t-vpr_fpga_verilog_print_sdc_pnr : Generate sdc file to constraint Hardware P&R\n";
print " \t-vpr_fpga_verilog_print_sdc_analysis : Generate sdc file to do STA\n";
print " \t-vpr_fpga_verilog_print_top_tb : turn on printing top-level testbench for Verilog Generator of VPR FPGA SPICE\n";
print " \t-vpr_fpga_verilog_print_input_blif_tb : turn on printing testbench for input blif file in Verilog Generator of VPR FPGA SPICE\n";
print " \t-vpr_fpga_verilog_print_modelsim_autodeck <modelsim.ini_path>: turn on printing modelsim simulation script\n";
print " [ VPR - FPGA-Bitstream Extension ] \n";
print " \t-vpr_fpga_bitstream_generator: turn on FPGA-SPICE bitstream generator\n";
exit(1);
return 1;
}
sub spot_option($ $) {
sub spot_option($ $)
{
my ($start,$target) = @_;
my ($arg_no,$flag) = (-1,"unfound");
for (my $iarg = $start; $iarg < $#ARGV+1; $iarg++) {
if ($ARGV[$iarg] eq $target) {
if ("found" eq $flag) {
for (my $iarg = $start; $iarg < $#ARGV+1; $iarg++)
{
if ($ARGV[$iarg] eq $target)
{
if ("found" eq $flag)
{
print "Error: Repeated Arguments!(IndexA: $arg_no,IndexB: $iarg)\n";
&print_usage();
} else {
}
else
{
$flag = "found";
$arg_no = $iarg;
}
@ -195,35 +219,49 @@ sub spot_option($ $) {
# 1. Option Name
# 2. Whether Option with value. if yes, choose "on"
# 3. Whether Option is mandatory. If yes, choose "on"
sub read_opt_into_hash($ $ $) {
sub read_opt_into_hash($ $ $)
{
my ($opt_name,$opt_with_val,$mandatory) = @_;
# Check the -$opt_name
my ($opt_fact) = ("-".$opt_name);
my ($cur_arg) = (0);
my ($argfd) = (&spot_option($cur_arg,"$opt_fact"));
if ($opt_with_val eq "on") {
if (-1 != $argfd) {
if ($ARGV[$argfd+1] =~ m/^-/) {
if ($opt_with_val eq "on")
{
if (-1 != $argfd)
{
if ($ARGV[$argfd+1] =~ m/^-/)
{
print "The next argument cannot start with '-'!\n";
print "it implies an option!\n";
} else {
}
else
{
$opt_ptr->{"$opt_name\_val"} = $ARGV[$argfd+1];
$opt_ptr->{"$opt_name"} = "on";
}
} else {
}
else
{
$opt_ptr->{"$opt_name"} = "off";
if ($mandatory eq "on") {
if ($mandatory eq "on")
{
print "Mandatory option: $opt_fact is missing!\n";
&print_usage();
}
}
} else {
if (-1 != $argfd) {
}
else
{
if (-1 != $argfd)
{
$opt_ptr->{"$opt_name"} = "on";
}
else {
else
{
$opt_ptr->{"$opt_name"} = "off";
if ($mandatory eq "on") {
if ($mandatory eq "on")
{
print "Mandatory option: $opt_fact is missing!\n";
&print_usage();
}
@ -233,9 +271,11 @@ sub read_opt_into_hash($ $ $) {
}
# Read options
sub opts_read() {
sub opts_read()
{
# if no arguments detected, print the usage.
if (-1 == $#ARGV) {
if (-1 == $#ARGV)
{
print "Error : No input arguments!\n";
print "Help desk:\n";
&print_usage();
@ -249,16 +289,19 @@ sub opts_read() {
my $argfd;
# Check help fist
$argfd = &spot_option($cur_arg,"-help");
if (-1 != $argfd) {
if (-1 != $argfd)
{
print "Help desk:\n";
&print_usage();
}
# Then Check the debug with highest priority
$argfd = &spot_option($cur_arg,"-debug");
if (-1 != $argfd) {
if (-1 != $argfd)
{
$opt_ptr->{"debug"} = "on";
}
else {
else
{
$opt_ptr->{"debug"} = "off";
}
# Check mandatory options
@ -297,9 +340,9 @@ sub opts_read() {
# FPGA-SPICE options
# Read Opt into Hash(opt_ptr) : "opt_name","with_val","mandatory"
&read_opt_into_hash("vpr_fpga_spice","on","off");
&read_opt_into_hash("vpr_fpga_spice_rename_illegal_port","off","off");
&read_opt_into_hash("vpr_fpga_spice_signal_density_weight","on","off");
&read_opt_into_hash("vpr_fpga_spice_sim_window_size","on","off");
&read_opt_into_hash("vpr_fpga_x2p_rename_illegal_port","off","off");
&read_opt_into_hash("vpr_fpga_x2p_signal_density_weight","on","off");
&read_opt_into_hash("vpr_fpga_x2p_sim_window_size","on","off");
&read_opt_into_hash("vpr_fpga_spice_sim_mt_num","on","off");
&read_opt_into_hash("vpr_fpga_spice_print_component_tb","off","off");
&read_opt_into_hash("vpr_fpga_spice_print_grid_tb","off","off");
@ -308,6 +351,22 @@ sub opts_read() {
&read_opt_into_hash("vpr_fpga_spice_parasitic_net_estimation_off","off","off");
&read_opt_into_hash("vpr_fpga_spice_testbench_load_extraction_off","off","off");
&read_opt_into_hash("vpr_fpga_verilog","off","off");
&read_opt_into_hash("vpr_fpga_verilog_print_top_tb","off","off");
&read_opt_into_hash("vpr_fpga_verilog_print_input_blif_tb","off","off");
&read_opt_into_hash("vpr_fpga_bitstream_generator","off","off");
# AA add for update
&read_opt_into_hash("vpr_fpga_verilog_print_autocheck_top_testbench","off","off");
&read_opt_into_hash("vpr_fpga_verilog_dir","on","off");
&read_opt_into_hash("vpr_fpga_verilog_print_modelsim_autodeck","on","off");
&read_opt_into_hash("vpr_fpga_verilog_include_timing","off","off");
&read_opt_into_hash("vpr_fpga_verilog_include_signal_init","off","off");
&read_opt_into_hash("vpr_fpga_verilog_formal_verification_top_netlist","off","off");
&read_opt_into_hash("vpr_fpga_verilog_include_icarus_simulator","off","off");
&read_opt_into_hash("vpr_fpga_verilog_print_report_timing_tcl","off","off");
&read_opt_into_hash("vpr_fpga_verilog_report_timing_rpt_path","on","off");
&read_opt_into_hash("vpr_fpga_verilog_print_sdc_pnr","off","off");
&read_opt_into_hash("vpr_fpga_verilog_print_sdc_analysis","off","off");
&read_opt_into_hash("vpr_fpga_verilog_print_user_defined_template","off","off");
&print_opts();
@ -315,12 +374,12 @@ sub opts_read() {
}
# List the options
sub print_opts() {
sub print_opts()
{
print "List your options\n";
while(my ($key,$value) = each(%opt_h)) {
print "$key : $value\n";
}
while(my ($key,$value) = each(%opt_h))
{print "$key : $value\n";}
return 1;
}
@ -526,10 +585,52 @@ sub run_abc_libmap($ $ $)
($abc_seq_optimize) = ("scl -l;");
}
# !!! For standard library, we cannot use sweep ???
system("/bin/csh -cx './$abc_name -c \"read_blif $bm; resyn2; read_library $mpack1_stdlib; $abc_seq_optimize map -v; write_blif $blif_out; quit;\" > $log'");
system("./$abc_name -c \"read_blif $bm; resyn2; read_library $mpack1_stdlib; $abc_seq_optimize map -v; write_blif $blif_out; quit;\" > $log");
chdir $cwd;
}
# Rewrite the verilog after optimization
sub run_rewrite_verilog($ $ $ $ $) {
my ($blif, $path, $benchmark, $bm, $log) = @_;
my ($new_verilog) = "$path/$benchmark".".v";
my ($cmd_log) = ($log);
$cmd_log =~ s/\.log$/rewrite_verilog\.ys/;
# Get Yosys path
my ($yosys_dir,$yosys_name) = &split_prog_path($conf_ptr->{dir_path}->{yosys_path}->{val});
print "Entering $yosys_dir\n";
chdir $yosys_dir;
my ($lut_num) = $opt_ptr->{K_val};
# Create yosys synthesize script
my ($YOSYS_CMD_FH) = (FileHandle->new);
if ($YOSYS_CMD_FH->open("> $cmd_log")) {
print "INFO: auto generating cmds for Yosys ($cmd_log) ...\n";
} else {
die "ERROR: fail to auto generating cmds for Yosys ($cmd_log) ...\n";
}
# Output the standard format (refer to VTR_flow script)
print $YOSYS_CMD_FH "# Yosys rewriting verilog script for $bm\n";
print $YOSYS_CMD_FH "read_blif $blif\n";
print $YOSYS_CMD_FH "write_verilog $new_verilog\n";
close($YOSYS_CMD_FH);
#
# Create a local copy for the commands
system("./$yosys_name $cmd_log > $log");
if (!(-e $new_verilog)) {
die "ERROR: Yosys fail at rewriting benchmark $bm.\n";
}
print "Leaving $yosys_dir\n";
chdir $cwd;
return ($new_verilog);
}
# Run yosys synthesis with ABC LUT mapping
sub run_yosys_fpgamap($ $ $ $) {
my ($bm, $bm_path, $blif_out, $log) = @_;
@ -583,7 +684,7 @@ sub run_yosys_fpgamap($ $ $ $) {
#
# Create a local copy for the commands
system("/bin/tcsh -cx './$yosys_name $cmd_log > $log'");
system("./$yosys_name $cmd_log > $log");
if (!(-e $blif_out)) {
die "ERROR: Fail Yosys for benchmark $bm.\n";
@ -593,7 +694,6 @@ sub run_yosys_fpgamap($ $ $ $) {
chdir $cwd;
}
# Run ABC by FPGA-oriented synthesis
sub run_abc_fpgamap($ $ $)
{
@ -632,7 +732,7 @@ sub run_abc_fpgamap($ $ $)
#
# Create a local copy for the commands
system("/bin/tcsh -cx './$abc_name -F $cmd_log > $log'");
system("./$abc_name -F $cmd_log > $log");
if (!(-e $blif_out)) {
die "ERROR: Fail ABC for benchmark $bm.\n";
@ -667,7 +767,7 @@ sub run_abc_bb_fpgamap($ $ $) {
chdir $abc_dir;
# Run FPGA ABC
system("/bin/csh -cx './$abc_name -c \"read $bm; resyn; resyn2; $fpga_synthesis_method -K $lut_num; $abc_seq_optimize sweep; write_hie $bm $blif_out; $dump_verilog; quit;\" > $log'");
system("./$abc_name -c \"read $bm; resyn; resyn2; $fpga_synthesis_method -K $lut_num; $abc_seq_optimize sweep; write_hie $bm $blif_out; $dump_verilog; quit;\" > $log");
if (!(-e $blif_out)) {
die "ERROR: Fail ABC_with_bb_support for benchmark $bm.\n";
@ -709,19 +809,19 @@ sub run_abc_mccl_fpgamap($ $ $)
# Run ABC three times:
# 1st time: run abc_with_mccl: read the $bm and do carry-chain detection
system("/bin/csh -cx './$abc_mccl_name -c \"read $bm; strash; &get; &fadds -nv -N $min_chain_length; \&getspec; \&put; wfadds $fadds_blif; quit;\" > $log.ccdetect'");
system("./$abc_mccl_name -c \"read $bm; strash; &get; &fadds -nv -N $min_chain_length; \&getspec; \&put; wfadds $fadds_blif; quit;\" > $log.ccdetect");
# Repeat chdir for multi-thread supporting!
chdir $abc_mccl_dir;
print "INFO: entering abc_mccl directory: $abc_mccl_dir \n";
# 2nd time: run abc_with_mccl: read the $fadds_blif and do carry-chain LUT premapping
system("/bin/csh -cx './$abc_mccl_name -c \"read $fadds_blif; resyn; resyn2; mccl -A $mccl_opt_A -B $mccl_opt_B -S $mccl_opt_S -K $lut_num -O 1 -r -o $interm_blif; quit;\" > $log.mccl'");
system("./$abc_mccl_name -c \"read $fadds_blif; resyn; resyn2; mccl -A $mccl_opt_A -B $mccl_opt_B -S $mccl_opt_S -K $lut_num -O 1 -r -o $interm_blif; quit;\" > $log.mccl");
chdir $abc_bb_dir;
print "INFO: entering abc_with_bb_support directory: $abc_bb_dir \n";
# 3rd time: run abc_with_bb_support: read the pre-processed blif and do cleanup and recover
system("/bin/csh -cx './$abc_bb_name -c \"read $interm_blif; $abc_seq_optimize sweep; write_hie $interm_blif $blif_out; quit;\" > $log'");
system("./$abc_bb_name -c \"read $interm_blif; $abc_seq_optimize sweep; write_hie $interm_blif $blif_out; quit;\" > $log");
if (!(-e $blif_out)) {
die "ERROR: Fail ABC_mccl_FPGA_mapping for benchmark $bm.\n";
@ -761,19 +861,19 @@ sub run_abc_mig_mccl_fpgamap($ $ $)
# Run ABC three times:
# 1st time: run abc_with_mig_mccl: read the $bm and do carry-chain detection
# TODO: unfinished!!!!
system("/bin/csh -cx './$abc_mig_mccl_name -c \"readv $bm; chains -C ; quit;\" > $log.ccdetect'");
system("./$abc_mig_mccl_name -c \"readv $bm; chains -C ; quit;\" > $log.ccdetect");
# Repeat chdir for multi-thread supporting!
chdir $abc_mccl_dir;
print "INFO: entering abc_mccl directory: $abc_mccl_dir \n";
# 2nd time: run abc_with_mccl: read the $fadds_blif and do carry-chain LUT premapping
system("/bin/csh -cx './$abc_mccl_name -c \"read $fadds_blif; resyn; resyn2; mccl -A $mccl_opt_A -B $mccl_opt_B -S $mccl_opt_S -K $lut_num -O 1 -r -o $interm_blif; quit;\" > $log.mccl'");
system("./$abc_mccl_name -c \"read $fadds_blif; resyn; resyn2; mccl -A $mccl_opt_A -B $mccl_opt_B -S $mccl_opt_S -K $lut_num -O 1 -r -o $interm_blif; quit;\" > $log.mccl");
chdir $abc_bb_dir;
print "INFO: entering abc_with_bb_support directory: $abc_bb_dir \n";
# 3rd time: run abc_with_bb_support: read the pre-processed blif and do cleanup and recover
system("/bin/csh -cx './$abc_bb_name -c \"read $interm_blif; $abc_seq_optimize sweep; write_hie $interm_blif $blif_out; quit;\" > $log'");
system("./$abc_bb_name -c \"read $interm_blif; $abc_seq_optimize sweep; write_hie $interm_blif $blif_out; quit;\" > $log");
if (!(-e $blif_out)) {
die "ERROR: Fail ABC_mccl_FPGA_mapping for benchmark $bm.\n";
@ -789,7 +889,7 @@ sub run_mpack1p5($ $ $ $ $)
my ($mpack1_dir,$mpack1_name) = &split_prog_path($conf_ptr->{dir_path}->{mpack1_path}->{val});
chdir $mpack1_dir;
# Run MPACK
system("/bin/csh -cx './$mpack1_name $blif_in $blif_prefix -matrix_depth $matrix_size -matrix_width $matrix_size -cell_size $cell_size > $log'");
system("./$mpack1_name $blif_in $blif_prefix -matrix_depth $matrix_size -matrix_width $matrix_size -cell_size $cell_size > $log");
chdir $cwd;
}
@ -802,7 +902,7 @@ sub run_mpack2($ $ $ $ $ $ $)
chdir $mpack2_dir;
#my ($ble_arch) = ($conf_ptr->{flow_conf}->{mpack_ble_arch}->{val});
# Run MPACK
system("/bin/csh -cx './$mpack2_name -blif $blif_in -mpack_blif $blif_out -net $net -ble_arch $mpack2_arch -stats $stats -vpr_arch $vpr_arch > $log'");
system("./$mpack2_name -blif $blif_in -mpack_blif $blif_out -net $net -ble_arch $mpack2_arch -stats $stats -vpr_arch $vpr_arch > $log");
chdir $cwd;
}
@ -926,7 +1026,6 @@ sub extract_vpr_power_esti($ $ $ $)
if ($line =~ m/$tmp\s*([0-9E\-+.]+)/i) {
$rpt_h{$tag}->{$bm}->{$opt_ptr->{N_val}}->{$type}->{power}->{$tmpkw} = $1;
my @tempdata = split /\./,$rpt_ptr->{$tag}->{$bm}->{$opt_ptr->{N_val}}->{$type}->{power}->{$tmpkw};
#print "$tmpkw\n";
$rpt_h{$tag}->{$bm}->{$opt_ptr->{N_val}}->{$type}->{power}->{$tmpkw} = join('.',$tempdata[0],$tempdata[1]);
$rpt_h{$tag}->{$bm}->{$opt_ptr->{N_val}}->{$type}->{power}->{$tmpkw} =~ s/0$//;
}
@ -1071,7 +1170,7 @@ sub run_odin2($ $ $) {
}
chdir $odin2_dir;
system("/bin/csh -cx './$odin2_name -c $config_xml $options > $log'");
system("./$odin2_name -c $config_xml $options > $log");
chdir $cwd;
}
@ -1106,7 +1205,8 @@ sub run_ace($ $ $ $) {
print "Entering $ace_dir\n";
chdir $ace_dir;
system("/bin/csh -cx './$ace_name -b $mpack_vpr_blif -o $act_file -n $ace_new_blif $ace_customized_opts > $log'");
print "./$ace_name -b $mpack_vpr_blif -o $act_file -n $ace_new_blif $ace_customized_opts >> $log";
system("./$ace_name -b $mpack_vpr_blif -o $act_file -n $ace_new_blif $ace_customized_opts >> $log");
if (!(-e $ace_new_blif)) {
die "ERROR: Fail ACE for benchmark $mpack_vpr_blif.\n";
@ -1121,10 +1221,8 @@ sub run_std_vpr($ $ $ $ $ $ $ $ $)
{
my ($blif,$bm,$arch,$net,$place,$route,$fix_chan_width,$log,$act_file) = @_;
my ($vpr_dir,$vpr_name) = &split_prog_path($conf_ptr->{dir_path}->{vpr_path}->{val});
print "Entering $vpr_dir\n";
chdir $vpr_dir;
my ($power_opts);
if ("on" eq $opt_ptr->{power}) {
$power_opts = "--power --activity_file $act_file --tech_properties $conf_ptr->{flow_conf}->{power_tech_xml}->{val}";
@ -1146,11 +1244,11 @@ sub run_std_vpr($ $ $ $ $ $ $ $ $)
if (("on" eq $opt_ptr->{power})&&("on" eq $opt_ptr->{vpr_fpga_spice})) {
$vpr_spice_opts = "--fpga_spice";
if ("on" eq $opt_ptr->{vpr_fpga_spice_signal_density_weight}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_spice_signal_density_weight $opt_ptr->{vpr_fpga_spice_signal_density_weight_val}";
if ("on" eq $opt_ptr->{vpr_fpga_x2p_signal_density_weight}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_x2p_signal_density_weight $opt_ptr->{vpr_fpga_x2p_signal_density_weight_val}";
}
if ("on" eq $opt_ptr->{vpr_fpga_spice_sim_window_size}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_spice_sim_window_size $opt_ptr->{vpr_fpga_spice_sim_window_size_val}";
if ("on" eq $opt_ptr->{vpr_fpga_x2p_sim_window_size}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_x2p_sim_window_size $opt_ptr->{vpr_fpga_x2p_sim_window_size_val}";
}
if ("on" eq $opt_ptr->{vpr_fpga_spice_sim_mt_num}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_spice_sim_mt_num $opt_ptr->{vpr_fpga_spice_sim_mt_num_val}";
@ -1184,12 +1282,64 @@ sub run_std_vpr($ $ $ $ $ $ $ $ $)
# FPGA Verilog options
if (("on" eq $opt_ptr->{power})&&("on" eq $opt_ptr->{vpr_fpga_verilog})) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog";
if ("on" eq $opt_ptr->{vpr_fpga_verilog_dir}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_dir $opt_ptr->{vpr_fpga_verilog_dir_val}";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_top_tb}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_top_testbench";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_input_blif_tb}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_input_blif_testbench";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_autocheck_top_testbench}) {
if($verilog_benchmark eq undef){
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_autocheck_top_testbench $conf_ptr->{dir_path}->{benchmark_dir}->{val}"."/$bm/$bm.v";
} else {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_autocheck_top_testbench $verilog_benchmark";
}
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_include_timing}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_include_timing";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_include_signal_init}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_include_signal_init";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_formal_verification_top_netlist}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_formal_verification_top_netlist";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_modelsim_autodeck}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_modelsim_autodeck $opt_ptr->{vpr_fpga_verilog_print_modelsim_autodeck_val}";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_include_icarus_simulator}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_include_icarus_simulator";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_report_timing_tcl}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_report_timing_tcl";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_report_timing_rpt_path}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_report_timing_rpt_path $opt_ptr->{vpr_fpga_verilog_report_timing_rpt_path_val}";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_sdc_pnr}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_sdc_pnr";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_user_defined_template}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_user_defined_template";
}
if ("on" eq $opt_ptr->{vpr_fpga_verilog_print_sdc_analysis}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog_print_sdc_analysis";
}
}
if (("on" eq $opt_ptr->{vpr_fpga_spice_rename_illegal_port})
# FPGA Bitstream Generator Options
if ("on" eq $opt_ptr->{vpr_fpga_bitstream_generator}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_bitstream_generator";
}
if (("on" eq $opt_ptr->{vpr_fpga_x2p_rename_illegal_port})
|| ("on" eq $opt_ptr->{vpr_fpga_spice})
|| ("on" eq $opt_ptr->{vpr_fpga_verilog})) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_spice_rename_illegal_port";
$vpr_spice_opts = $vpr_spice_opts." --fpga_x2p_rename_illegal_port";
}
my ($other_opt) = ("");
@ -1203,10 +1353,9 @@ sub run_std_vpr($ $ $ $ $ $ $ $ $)
$other_opt .= "--max_router_iterations $opt_ptr->{vpr_max_router_iteration_val} ";
}
system("/bin/csh -cx './$vpr_name $arch $blif --net_file $net --place_file $place --route_file $route --full_stats --nodisp $power_opts $packer_opts $chan_width_opt $vpr_spice_opts $other_opt > $log'");
system("./$vpr_name $arch $blif --net_file $net --place_file $place --route_file $route --full_stats --nodisp $power_opts $packer_opts $chan_width_opt $vpr_spice_opts $other_opt > $log");
chdir $cwd;
print "Leaving $vpr_dir\n";
}
sub run_vpr_route($ $ $ $ $ $ $ $ $)
@ -1252,10 +1401,10 @@ sub run_vpr_route($ $ $ $ $ $ $ $ $)
$vpr_spice_opts = $vpr_spice_opts." --fpga_spice_parasitic_net_estimation_off";
}
}
if ("on" eq $opt_ptr->{vpr_fpga_spice_verilog_generator}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_syn_verilog";
if ("on" eq $opt_ptr->{vpr_fpga_spice_rename_illegal_port}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_spice_rename_illegal_port";
if ("on" eq $opt_ptr->{vpr_fpga_verilog}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_verilog";
if ("on" eq $opt_ptr->{vpr_fpga_x2p_rename_illegal_port}) {
$vpr_spice_opts = $vpr_spice_opts." --fpga_x2p_rename_illegal_port";
}
}
@ -1267,7 +1416,7 @@ sub run_vpr_route($ $ $ $ $ $ $ $ $)
$other_opt .= "--router_algorithm breadth_first ";
}
system("/bin/csh -cx './$vpr_name $arch $blif --route --blif_file $blif --net_file $net --place_file $place --route_file $route --full_stats --nodisp $power_opts $chan_width_opt $vpr_spice_opts $other_opt > $log'");
system("./$vpr_name $arch $blif --route --blif_file $blif --net_file $net --place_file $place --route_file $route --full_stats --nodisp $power_opts $chan_width_opt $vpr_spice_opts $other_opt > $log");
chdir $cwd;
}
@ -1281,7 +1430,7 @@ sub run_mpack1_vpr($ $ $ $ $ $ $)
$power_opts = "--power --activity_file $act_file --tech_properties $conf_ptr->{flow_conf}->{power_tech_xml}->{val}";
}
chdir $vpr_dir;
system("/bin/csh -cx './$vpr_name $arch $blif --net_file $net --place_file $place --route_file $route --place --route --full_stats --nodisp $power_opts > $log'");
system("./$vpr_name $arch $blif --net_file $net --place_file $place --route_file $route --place --route --full_stats --nodisp $power_opts > $log");
chdir $cwd;
}
@ -1304,7 +1453,7 @@ sub run_mpack2_vpr($ $ $ $ $ $ $)
}
chdir $vpr_dir;
system("/bin/csh -cx './$vpr_name $arch $blif --net_file $net --place_file $place --route_file $route --place --route --full_stats --nodisp $power_opts $chan_width_opt > $log'");
system("./$vpr_name $arch $blif --net_file $net --place_file $place --route_file $route --place --route --full_stats --nodisp $power_opts $chan_width_opt > $log");
chdir $cwd;
}
@ -1316,7 +1465,7 @@ sub run_aapack($ $ $ $)
chdir $vpr_dir;
system("/bin/csh -cx './$vpr_name $arch $blif --net_file $net --pack --timing_analysis off --nodisp > $aapack_log'");
system("./$vpr_name $arch $blif --net_file $net --pack --timing_analysis off --nodisp > $aapack_log");
chdir $cwd;
}
@ -1328,7 +1477,7 @@ sub run_m2net_pack_arch($ $ $ $ $ $)
chdir $m2net_dir;
system("/bin/csh -cx 'perl $m2net_name -conf $m2net_conf -mpack1_rpt $mpack1_rpt -mode pack_arch -N $N -I $I -arch_file_pack $pack_arch > $m2net_pack_arch_log'");
system("perl $m2net_name -conf $m2net_conf -mpack1_rpt $mpack1_rpt -mode pack_arch -N $N -I $I -arch_file_pack $pack_arch > $m2net_pack_arch_log");
chdir $cwd;
}
@ -1346,7 +1495,7 @@ sub run_m2net_m2net($ $ $ $ $)
$power_opt = "-power";
}
system("/bin/csh -cx 'perl $m2net_name -conf $m2net_conf -mpack1_rpt $mpack1_rpt -mode m2net -N $N -I $I -net_file_in $aapack_net -net_file_out $vpr_net -arch_file_vpr $vpr_arch $power_opt > $m2net_m2net_log'");
system("perl $m2net_name -conf $m2net_conf -mpack1_rpt $mpack1_rpt -mode m2net -N $N -I $I -net_file_in $aapack_net -net_file_out $vpr_net -arch_file_vpr $vpr_arch $power_opt > $m2net_m2net_log");
chdir $cwd;
}
@ -1388,7 +1537,7 @@ sub run_cirkit_mig_mccl_map($ $ $) {
# Run ABC to rewrite blif to AIG in verilog format
chdir $abc_dir;
system("/bin/csh -cx './$abc_name -F $abc_cmd_log > $log'");
system("./$abc_name -F $abc_cmd_log > $log");
if (!(-e $bm_aig)) {
die "ERROR: Fail ABC for benchmark $bm.\n";
}
@ -1405,7 +1554,7 @@ sub run_cirkit_mig_mccl_map($ $ $) {
chdir $cirkit_dir;
# Run FPGA ABC
system("/bin/csh -cx './$cirkit_name -f $cirkit_cmd_log >> $log'");
system("./$cirkit_name -f $cirkit_cmd_log >> $log");
if (!(-e $blif_out)) {
die "ERROR: Fail Cirkit for benchmark $bm.\n";
@ -1420,8 +1569,6 @@ sub init_fpga_spice_task($) {
&generate_path($task_dir_path);
print "INFO: writting FPGA SPICE task list $task_file\n";
# Open the task file handler
my ($TASKFH) = (FileHandle->new);
if ($TASKFH->open("> $task_file")) {
@ -1436,7 +1583,6 @@ sub init_fpga_spice_task($) {
# Close the file handler
close($TASKFH);
}
# Print a line into task file which contains task info of FPGA SPICE.
@ -1633,7 +1779,7 @@ sub run_yosys_vpr_flow($ $ $ $ $)
&run_yosys_fpgamap($benchmark, $yosys_bm, $yosys_blif_out, $yosys_log);
# Files for ace
my ($act_file,$ace_new_blif,$ace_log) = ("$prefix"."ace.act","$prefix"."ace.blif","$prefix"."ace.log");
my ($act_file,$ace_new_blif,$ace_log) = ("$rpt_dir/$benchmark".".act","$rpt_dir/$benchmark".".blif","$prefix"."ace.log");
&run_ace_in_flow($prefix, $yosys_blif_out, $act_file, $ace_new_blif, $ace_log);
# Files for VPR
@ -1645,7 +1791,10 @@ sub run_yosys_vpr_flow($ $ $ $ $)
$vpr_log = "$prefix"."vpr.log";
$vpr_reroute_log = "$prefix"."vpr_reroute.log";
&run_vpr_in_flow($tag, $benchmark, $benchmark_file, $yosys_blif_out, $vpr_arch, $act_file, $vpr_net, $vpr_place, $vpr_route, $vpr_log, $vpr_reroute_log, $parse_results);
# Need to add a regenation of the verilog from the optimized blif -> write verilog from blif + correct the name of the verilog for the testbench
$verilog_benchmark = &run_rewrite_verilog($ace_new_blif, $rpt_dir, $benchmark, $benchmark, $yosys_log);
&run_vpr_in_flow($tag, $benchmark, $benchmark_file, $ace_new_blif, $vpr_arch, $act_file, $vpr_net, $vpr_place, $vpr_route, $vpr_log, $vpr_reroute_log, $parse_results);
return;
}
@ -1668,7 +1817,7 @@ sub parse_yosys_vpr_flow_results($ $ $ $)
# Run Yosys flow
$yosys_bm = "$conf_ptr->{dir_path}->{benchmark_dir}->{val}"."/$benchmark_file";
$prefix = "$rpt_dir/$benchmark\_"."K$opt_ptr->{K_val}\_"."N$opt_ptr->{N_val}\_";
$yosys_blif_out = "$prefix"."yosys.blif";
$yosys_blif_out = "$rpt_dir/$benchmark".".blif";
$yosys_log = "$prefix"."yosys.log";
# Files for ace
@ -1716,13 +1865,13 @@ sub parse_yosys_vpr_flow_results($ $ $ $)
}
sub run_standard_flow($ $ $ $ $)
{
my ($tag,$benchmark_file,$vpr_arch,$flow_enhance, $parse_results) = @_;
my ($benchmark, $rpt_dir,$prefix);
my ($abc_bm,$abc_blif_out,$abc_log,$abc_blif_out_bak);
my ($mpack_blif_out,$mpack_stats,$mpack_log);
my ($vpr_net,$vpr_place,$vpr_route,$vpr_reroute_log,$vpr_log);
$benchmark = $benchmark_file;
$benchmark =~ s/\.blif$//g;
@ -1738,8 +1887,6 @@ sub run_standard_flow($ $ $ $ $)
my ($act_file,$ace_new_blif,$ace_log) = ("$prefix"."ace.act","$prefix"."ace.blif","$prefix"."ace.log");
my ($vpr_net,$vpr_place,$vpr_route,$vpr_reroute_log,$vpr_log);
$vpr_net = "$prefix"."vpr.net";
$vpr_place = "$prefix"."vpr.place";
$vpr_route = "$prefix"."vpr.route";
@ -2543,7 +2690,7 @@ sub multithread_run_flows($) {
die "ERROR: cannot use threads package in Perl! Please check the installation of package...\n";
}
# Launch threads up to the limited number of threads number
# Lauch threads up to the limited number of threads number
if ($num_threads < 2) {
$num_threads = 2;
}
@ -2590,7 +2737,7 @@ sub multithread_run_flows($) {
my $thr_new = threads->create(\&run_benchmark_selected_flow,$flow_to_run,$benchmark, 0);
# We have a valid thread...
if ($thr_new) {
print "INFO: a new thread is launched!\n";
print "INFO: a new thread is lauched!\n";
print "FLOW RUNNING: $flow_to_run, Benchmark: $benchmark\n";
# Check if it is running...
if ($thr_new->is_running()) {

View File

@ -0,0 +1,43 @@
#!/bin/bash
# Example of how to run vpr
# Set variables
# For FPGA-Verilog ONLY
benchmark="test_modes"
verilog_output_dirname="${benchmark}_Verilog"
verilog_output_dirpath="$PWD"
modelsim_ini_file="/uusoc/facility/cad_tools/Mentor/modelsim10.7b/modeltech/modelsim.ini"
# VPR critical inputs
#set arch_xml_file=ARCH/k6_N10_MD_tsmc40nm_chain_TT.xml
#set arch_xml_file=ARCH/k8_N10_SC_tsmc40nm_chain_TT_stratixIV_lookalike.xml
arch_xml_file="ARCH/.travis_k6_N10_sram_chain_HC.xml"
#set arch_xml_file=ARCH/ed_stdcell.xml
#set arch_xml_file=ARCH/k6_N10_sram_chain_FC_tsmc40.xml
#set arch_xml_file=ARCH/k6_N10_SC_tsmc40nm_chain_TT.xml
#set arch_xml_file=ARCH/k6_N10_SC_tsmc40nm_chain_TT_yosys.xml
#set arch_xml_file=ARCH/k6_N10_sram_chain_SC_gf130_2x2.xml
#set verilog_reference=${PWD}/Circuits/alu4_K6_N10_ace.v
#set blif_file=Circuits/shiftReg.blif
#set act_file=Circuits/shiftReg.act
blif_file="Circuits/$benchmark.blif"
act_file="Circuits/$benchmark.act "
verilog_reference="${PWD}/Circuits/$benchmark.v"
#set blif_file=Circuits/frisc.blif
#set act_file=Circuits/frisc.act
#set blif_file=Circuits/elliptic.blif
#set act_file=Circuits/elliptic.act
vpr_route_chan_width="200"
# Step A: Make sure a clean start
# Recompile if needed
#make clean
#make -j32
# Remove previous designs
rm -rf $verilog_output_dirpath/$verilog_output_dirname
# Run VPR
#valgrind
./vpr $arch_xml_file $blif_file --full_stats --nodisp --activity_file $act_file --fpga_verilog --fpga_verilog_dir $verilog_output_dirpath/$verilog_output_dirname --fpga_x2p_rename_illegal_port --fpga_bitstream_generator --fpga_verilog_print_top_testbench --fpga_verilog_print_input_blif_testbench --fpga_verilog_include_timing --fpga_verilog_include_signal_init --fpga_verilog_print_modelsim_autodeck $modelsim_ini_file --fpga_verilog_print_formal_verification_top_netlist --fpga_verilog_print_autocheck_top_testbench $verilog_reference --fpga_verilog_print_user_defined_template --route_chan_width $vpr_route_chan_width --fpga_verilog_include_icarus_simulator --fpga_verilog_print_sdc_pnr --fpga_verilog_print_report_timing_tcl #--fpga_verilog_print_sdc_analysis

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -19,11 +19,12 @@ if (ENABLE_VPR_GRAPHICS)
if (NOT X11_FOUND)
message(WARNING "Failed to find required X11 library (on debian/ubuntu try 'sudo apt-get install libx11-dev' to install)")
else ()
#Disable
else ()
set(ENABLE_VPR_GRAPHICS false)
endif()
endif()
set(ENABLE_VPR_GRAPHICS false)
# We need readline to compile
find_package(Readline REQUIRED)
@ -31,7 +32,7 @@ find_package(Readline REQUIRED)
#Collect the source files
file(GLOB_RECURSE EXEC_SOURCES SRC/main.c)
file(GLOB_RECURSE EXEC_SOURCES_SHELL SRC/shell_main.c)
file(GLOB_RECURSE LIB_SOURCES SRC/*/*.c SRC/*/*/*.c)
file(GLOB_RECURSE LIB_SOURCES SRC/*/*.c SRC/*/*/*.c SRC/*/*.cpp SRC/*/*/*.cpp)
file(GLOB_RECURSE LIB_HEADERS SRC/*/*.h SRC/*/*/*.h)
files_to_dirs(LIB_HEADERS LIB_INCLUDE_DIRS)

View File

@ -0,0 +1,67 @@
cint01 0.485400 0.188600
n01 0.489000 0.213200
cint02 0.502400 0.203200
n02 0.509200 0.195200
cint03 0.507200 0.192200
n03 0.502400 0.201600
cint04 0.463200 0.199400
n04 0.522000 0.191000
n05 0.486800 0.204800
reg0 0.463000 0.195400
reg1 0.487400 0.196600
reg2 0.506200 0.195000
reg3 0.492200 0.208200
reg4 0.507200 0.204800
reg5 0.500400 0.200600
reg6 0.500800 0.203400
reg7 0.509600 0.198800
reg8 0.492200 0.188000
reg9 0.504800 0.204400
reg10 0.507600 0.203200
reg11 0.494200 0.203600
clk 0.534600 0.203800
a_0 0.478200 0.203800
a_1 0.514800 0.208600
a_2 0.505800 0.204600
a_3 0.500000 0.195200
b_0 0.530800 0.192800
b_1 0.495800 0.195400
b_2 0.496600 0.201200
b_3 0.492000 0.200200
cin 0.502600 0.202200
e 0.495200 0.201000
f 0.504000 0.203400
g 0.498200 0.202000
reg_a_0 0.478200 0.203800
reg_a_1 0.514800 0.208600
reg_a_2 0.505800 0.204600
reg_a_3 0.500000 0.195200
reg_b_0 0.530800 0.192800
reg_b_1 0.495800 0.195400
reg_b_2 0.496600 0.201200
reg_b_3 0.492000 0.200200
reg_cin 0.502600 0.202200
sum_0 0.489000 0.213200
sum_1 0.509200 0.195200
sum_2 0.502400 0.201600
sum_3 0.522000 0.191000
cout 0.486800 0.204800
ref0 0.000000 0.000000
n57 0.478200 0.097457
n62 0.514800 0.107387
n67 0.505800 0.103487
n72 0.500000 0.097600
n77 0.530800 0.102338
n82 0.495800 0.096879
n87 0.496600 0.099916
n92 0.492000 0.098498
n97 0.502600 0.101626
d0 0.617800 0.046719
x 0.492200 0.102476
y 0.509600 0.101308
z 0.494200 0.100619
n102 0.489000 0.104255
n106 0.509200 0.099396
n110 0.502400 0.101284
n114 0.522000 0.099702
n118 0.486800 0.099697

View File

@ -0,0 +1,93 @@
# Benchmark "test" written by ABC on Tue Apr 30 17:17:10 2019
.model test_modes
.inputs clk a_0 a_1 a_2 a_3 b_0 b_1 b_2 b_3 cin e f g
.outputs sum_0 sum_1 sum_2 sum_3 cout x y z
.latch n57 reg_a_0 re clk 0
.latch n62 reg_a_1 re clk 0
.latch n67 reg_a_2 re clk 0
.latch n72 reg_a_3 re clk 0
.latch n77 reg_b_0 re clk 0
.latch n82 reg_b_1 re clk 0
.latch n87 reg_b_2 re clk 0
.latch n92 reg_b_3 re clk 0
.latch n97 reg_cin re clk 0
.latch n102 sum_0 re clk 0
.latch n106 sum_1 re clk 0
.latch n110 sum_2 re clk 0
.latch n114 sum_3 re clk 0
.latch n118 cout re clk 0
.subckt adder a=reg_a_0 b=reg_b_0 cin=reg_cin cout=cint01 sumout=n01
.subckt adder a=reg_a_1 b=reg_b_1 cin=cint01 cout=cint02 sumout=n02
.subckt adder a=reg_a_2 b=reg_b_2 cin=cint02 cout=cint03 sumout=n03
.subckt adder a=reg_a_3 b=reg_b_3 cin=cint03 cout=cint04 sumout=n04
.subckt adder a=ref0 b=ref0 cin=cint04 cout=unconn sumout=n05
.subckt shift D=d0 clk=clk Q=reg0
.subckt shift D=reg0 clk=clk Q=reg1
.subckt shift D=reg1 clk=clk Q=reg2
.subckt shift D=reg2 clk=clk Q=reg3
.subckt shift D=reg3 clk=clk Q=reg4
.subckt shift D=reg4 clk=clk Q=reg5
.subckt shift D=reg5 clk=clk Q=reg6
.subckt shift D=reg6 clk=clk Q=reg7
.subckt shift D=reg7 clk=clk Q=reg8
.subckt shift D=reg8 clk=clk Q=reg9
.subckt shift D=reg9 clk=clk Q=reg10
.subckt shift D=reg10 clk=clk Q=reg11
.names ref0
0
.names a_0 n57
1 1
.names a_1 n62
1 1
.names a_2 n67
1 1
.names a_3 n72
1 1
.names b_0 n77
1 1
.names b_1 n82
1 1
.names b_2 n87
1 1
.names b_3 n92
1 1
.names cin n97
1 1
.names e f g d0
1-1 1
-0- 1
.names reg3 x
1 1
.names reg7 y
1 1
.names reg11 z
1 1
.names n01 n102
1 1
.names n02 n106
1 1
.names n03 n110
1 1
.names n04 n114
1 1
.names n05 n118
1 1
.end
.model adder
.inputs a b cin
.outputs cout sumout
.blackbox
.end
.model shift
.inputs D clk
.outputs Q
.blackbox
.end

View File

@ -0,0 +1,78 @@
////////////////////////////////////////////////////////
// //
// Benchmark using all modes of k8 architecture //
// //
////////////////////////////////////////////////////////
`timescale 1 ns/ 1 ps
module test_modes(
clk,
a_0,
a_1,
a_2,
a_3,
b_0,
b_1,
b_2,
b_3,
cin,
e,
f,
g,
sum_0,
sum_1,
sum_2,
sum_3,
cout,
x,
y,
z );
input wire clk, a_0, a_1, a_2, a_3, b_0, b_1, b_2, b_3, cin, e, f, g;
output reg sum_0, sum_1, sum_2, sum_3, cout;
output wire x, y, z;
wire d0;
wire [4:0] n0;
wire [3:0] a, b;
reg reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7, reg8, reg9, reg10, reg11, reg_a_0, reg_a_1, reg_a_2, reg_a_3, reg_b_0, reg_b_1, reg_b_2, reg_b_3, reg_cin;
assign a = {reg_a_3, reg_a_2, reg_a_1, reg_a_0};
assign b = {reg_b_3, reg_b_2, reg_b_1, reg_b_0};
assign d0 = (e && g) || !f;
assign n0 = a + b + reg_cin;
assign x = reg3;
assign y = reg7;
assign z = reg11;
always @(posedge clk) begin
reg0 <= d0;
reg1 <= reg0;
reg2 <= reg1;
reg3 <= reg2;
reg4 <= reg3;
reg5 <= reg4;
reg6 <= reg5;
reg7 <= reg6;
reg8 <= reg7;
reg9 <= reg8;
reg10 <= reg9;
reg11 <= reg10;
reg_a_0 <= a_0;
reg_a_1 <= a_1;
reg_a_2 <= a_2;
reg_a_3 <= a_3;
reg_b_0 <= b_0;
reg_b_1 <= b_1;
reg_b_2 <= b_2;
reg_b_3 <= b_3;
reg_cin <= cin;
sum_0 <= n0[0];
sum_1 <= n0[1];
sum_2 <= n0[2];
sum_3 <= n0[3];
cout <= n0[4];
end
endmodule

View File

@ -61,6 +61,7 @@ struct s_TokenPair OptionBaseTokenList[] = {
{ "fpga_x2p_rename_illegal_port", OT_FPGA_X2P_RENAME_ILLEGAL_PORT }, /* Xifan TANG: rename illegal port names */
{ "fpga_x2p_signal_density_weight", OT_FPGA_X2P_SIGNAL_DENSITY_WEIGHT }, /* The weight of signal density */
{ "fpga_x2p_sim_window_size", OT_FPGA_X2P_SIM_WINDOW_SIZE }, /* Window size in determining number of clock cycles in simulation */
{ "fpga_x2p_compact_routing_hierarchy", OT_FPGA_X2P_COMPACT_ROUTING_HIERARCHY }, /* use a compact routing hierarchy in SPICE/Verilog generation */
/* Xifan TANG: FPGA SPICE Support */
{ "fpga_spice", OT_FPGA_SPICE },/* Xifan TANG: SPICE Model Support, turn on the functionality*/
{ "fpga_spice_dir", OT_FPGA_SPICE_DIR },/* Xifan TANG: SPICE Model Support, directory of spice netlists*/

View File

@ -78,6 +78,7 @@ enum e_OptionBaseToken {
OT_FPGA_X2P_RENAME_ILLEGAL_PORT,
OT_FPGA_X2P_SIGNAL_DENSITY_WEIGHT, /* The weight of signal density in determining number of clock cycles in simulation */
OT_FPGA_X2P_SIM_WINDOW_SIZE, /* Window size in determining number of clock cycles in simulation */
OT_FPGA_X2P_COMPACT_ROUTING_HIERARCHY, /* use a compact routing hierarchy in SPICE/Verilog generation */
/* Xifan TANG: FPGA SPICE Support */
OT_FPGA_SPICE, /* Xifan TANG: FPGA SPICE Model Support */
OT_FPGA_SPICE_DIR, /* Xifan TANG: FPGA SPICE Model Support */

View File

@ -481,6 +481,9 @@ ProcessOption(INP char **Args, INOUTP t_options * Options) {
return ReadFloat(Args, &Options->fpga_spice_signal_density_weight);
case OT_FPGA_X2P_SIM_WINDOW_SIZE:
return ReadFloat(Args, &Options->fpga_spice_sim_window_size);
case OT_FPGA_X2P_COMPACT_ROUTING_HIERARCHY:
/* use a compact routing hierarchy in SPICE/Verilog generation */
return Args;
/* Xifan TANG: FPGA SPICE Model Options*/
case OT_FPGA_SPICE:
return Args;

View File

@ -1235,6 +1235,12 @@ static void SetupFpgaSpiceOpts(t_options Options,
fpga_spice_opts->sim_window_size = Options.fpga_spice_sim_window_size;
}
/* Check if user wants to use a compact routing hierarchy */
fpga_spice_opts->compact_routing_hierarchy = FALSE;
if (Options.Count[OT_FPGA_X2P_COMPACT_ROUTING_HIERARCHY]) {
fpga_spice_opts->compact_routing_hierarchy = TRUE;
}
/* Decide if we need to do FPGA-SPICE */
fpga_spice_opts->do_fpga_spice = FALSE;
if (( TRUE == fpga_spice_opts->SpiceOpts.do_spice)

View File

@ -2039,8 +2039,8 @@ static void draw_pin_to_chan_edge(int pin_node, int chan_node) {
static void draw_pin_to_pin(int opin_node, int ipin_node) {
/* This routine draws an edge from the opin rr node to the ipin rr node */
int opin_grid_x, opin_grid_y, opin_pin_num, opin;
int ipin_grid_x, ipin_grid_y, ipin_pin_num, ipin;
int opin_grid_x, opin_grid_y, opin;
int ipin_grid_x, ipin_grid_y, ipin;
int ofs, pin_ofs;
boolean found;
float x1, x2, y1, y2;
@ -2060,7 +2060,6 @@ static void draw_pin_to_pin(int opin_node, int ipin_node) {
opin_grid_y = rr_node[opin_node].ylow;
opin_grid_y = opin_grid_y - grid[opin_grid_x][opin_grid_y].offset;
opin = rr_node[opin_node].ptc_num;
opin_pin_num = rr_node[opin_node].ptc_num;
type = grid[opin_grid_x][opin_grid_y].type;
found = FALSE;
@ -2083,7 +2082,6 @@ static void draw_pin_to_pin(int opin_node, int ipin_node) {
ipin_grid_y = rr_node[ipin_node].ylow;
ipin_grid_y = ipin_grid_y - grid[ipin_grid_x][ipin_grid_y].offset;
ipin = rr_node[ipin_node].ptc_num;
ipin_pin_num = rr_node[ipin_node].ptc_num;
type = grid[ipin_grid_x][ipin_grid_y].type;
found = FALSE;

View File

@ -170,6 +170,7 @@ void vpr_print_usage(void) {
vpr_printf(TIO_MESSAGE_INFO, "\t--fpga_x2p_rename_illegal_port\n");
vpr_printf(TIO_MESSAGE_INFO, "\t--fpga_x2p_signal_density_weight <float>\n");
vpr_printf(TIO_MESSAGE_INFO, "\t--fpga_x2p_sim_window_size <float>\n");
vpr_printf(TIO_MESSAGE_INFO, "\t--fpga_x2p_compact_routing_hierarchy\n");
vpr_printf(TIO_MESSAGE_INFO, "SPICE Support Options:\n");
vpr_printf(TIO_MESSAGE_INFO, "\t--fpga_spice\n");
vpr_printf(TIO_MESSAGE_INFO, "\t--fpga_spice_dir <directory_path_output_spice_netlists>\n");
@ -563,9 +564,10 @@ void vpr_place_and_route(INP t_vpr_setup vpr_setup, INP t_arch arch) {
fflush(stdout);
/* Close down X Display */
/* TODO: DANGEROUS way of coding, clean up */
if (vpr_setup.ShowGraphics)
close_graphics();
free_draw_structs();
free_draw_structs();
}
/* Free architecture data structures */

View File

@ -1153,6 +1153,18 @@ struct s_sb {
int num_reserved_conf_bits; /* number of reserved configuration bits */
int conf_bits_lsb; /* LSB of configuration bits */
int conf_bits_msb; /* MSB of configuration bits */
/* For identical SBs */
t_sb* mirror; /* an exact mirror of this switch block, with same connection & switches */
/* an rotatable mirror of this switch block,
* the two switch blocks will be same in terms of connection & switches
* by applying an offset to the connection & switches
*/
t_sb* rotatable;
/* Offset to be applied for each side of nodes */
int* offset_ipin; /* [0, ..., num_sides-1]*/
int* offset_opin; /* [0, ..., num_sides-1]*/
int* offset_chan; /* [0, ..., num_sides-1]*/
};
/* Information for each conneciton block */
@ -1188,6 +1200,18 @@ struct s_cb {
int num_reserved_conf_bits; /* number of reserved configuration bits */
int conf_bits_lsb; /* LSB of configuration bits */
int conf_bits_msb; /* MSB of configuration bits */
/* For identical SBs */
t_cb* mirror; /* an exact mirror of this connection block, with same connection & switches */
/* an rotatable mirror of this connection block,
* the two connection blocks will be same in terms of connection & switches
* by applying an offset to the connection & switches
*/
t_cb* rotatable;
/* Offset to be applied for each side of nodes */
int* offset_ipin; /* [0, ..., num_sides-1]*/
int* offset_opin; /* [0, ..., num_sides-1]*/
int* offset_chan; /* [0, ..., num_sides-1]*/
};
/* Xifan TANG: SPICE Support*/
@ -1255,6 +1279,8 @@ struct s_fpga_spice_opts {
t_syn_verilog_opts SynVerilogOpts; /* Xifan TANG: Synthesizable verilog dumping*/
t_bitstream_gen_opts BitstreamGenOpts; /* Xifan Bitsteam Generator */
boolean compact_routing_hierarchy; /* use compact routing hierarchy */
/* Signal Density */
float signal_density_weight;
float sim_window_size;

View File

@ -206,6 +206,12 @@ void init_one_sb_info(t_sb* cur_sb) {
cur_sb->conf_bits_lsb = 0;
cur_sb->conf_bits_msb = 0;
cur_sb->mirror = NULL;
cur_sb->rotatable = NULL;
cur_sb->offset_ipin = NULL;
cur_sb->offset_opin = NULL;
cur_sb->offset_chan = NULL;
return;
}
@ -237,6 +243,10 @@ void free_one_sb_info(t_sb* cur_sb) {
my_free(cur_sb->opin_rr_node);
my_free(cur_sb->opin_rr_node_grid_side);
my_free(cur_sb->offset_ipin);
my_free(cur_sb->offset_opin);
my_free(cur_sb->offset_chan);
return;
}
@ -299,6 +309,12 @@ void init_one_cb_info(t_cb* cur_cb) {
cur_cb->conf_bits_lsb = 0;
cur_cb->conf_bits_msb = 0;
cur_cb->mirror = NULL;
cur_cb->rotatable = NULL;
cur_cb->offset_ipin = NULL;
cur_cb->offset_opin = NULL;
cur_cb->offset_chan = NULL;
return;
}
@ -330,6 +346,10 @@ void free_one_cb_info(t_cb* cur_cb) {
my_free(cur_cb->opin_rr_node);
my_free(cur_cb->opin_rr_node_grid_side);
my_free(cur_cb->offset_ipin);
my_free(cur_cb->offset_opin);
my_free(cur_cb->offset_chan);
return;
}

View File

@ -1147,7 +1147,7 @@ add_sram_scff_conf_bits_to_llist(t_sram_orgz_info* cur_sram_orgz_info,
void add_sram_membank_conf_bits_to_llist(t_sram_orgz_info* cur_sram_orgz_info, int mem_index,
int num_bls, int num_wls,
int* bl_conf_bits, int* wl_conf_bits) {
int ibit, cur_bl, cur_wl, cur_mem_bit;
int ibit, cur_bl, cur_wl;
t_spice_model* cur_sram_spice_model = NULL;
t_conf_bit* bl_bit = NULL;
t_conf_bit* wl_bit = NULL;
@ -1157,7 +1157,6 @@ void add_sram_membank_conf_bits_to_llist(t_sram_orgz_info* cur_sram_orgz_info, i
assert(NULL != cur_sram_orgz_info);
/* Get current counter of sram_spice_model */
cur_mem_bit = get_sram_orgz_info_num_mem_bit(cur_sram_orgz_info);
get_sram_orgz_info_num_blwl(cur_sram_orgz_info, &cur_bl, &cur_wl);
/* Get memory model */
@ -1423,13 +1422,11 @@ void determine_blwl_decoder_size(INP t_sram_orgz_info* cur_sram_orgz_info,
OUTP int* num_array_bl, OUTP int* num_array_wl,
OUTP int* bl_decoder_size, OUTP int* wl_decoder_size) {
t_spice_model* mem_model = NULL;
int num_mem_bit;
int num_reserved_bl, num_reserved_wl;
/* Check */
assert(SPICE_SRAM_MEMORY_BANK == cur_sram_orgz_info->type);
num_mem_bit = get_sram_orgz_info_num_mem_bit(cur_sram_orgz_info);
get_sram_orgz_info_num_blwl(cur_sram_orgz_info, num_array_bl, num_array_wl);
get_sram_orgz_info_reserved_blwl(cur_sram_orgz_info, &num_reserved_bl, &num_reserved_wl);

Some files were not shown because too many files have changed in this diff Show More