glift: Add examples, including a number of benchmarks used in some academic works.

This commit is contained in:
Alberto Gonzalez 2020-04-24 08:23:08 +00:00
parent 72cebef279
commit ca3844d44e
No known key found for this signature in database
GPG Key ID: 8395A8BA109708B2
18 changed files with 7279 additions and 1 deletions

View File

@ -1,5 +1,5 @@
all: demo1 demo2 demo3 demo4 demo5 demo6 demo7 demo8 demo9
all: demo1 demo2 demo3 demo4 demo5 demo6 demo7 demo8 demo9 glift_mux
demo1: demo1.smt2
yosys-smtbmc --dump-vcd demo1.vcd demo1.smt2
@ -31,6 +31,9 @@ demo8: demo8.smt2
demo9: demo9.smt2
yosys-smtbmc -s z3 -t 1 -g demo9.smt2
glift_mux:
yosys -ql glift_mux.yslog glift/mux2.ys
demo1.smt2: demo1.v
yosys -ql demo1.yslog -p 'read_verilog -formal demo1.v; prep -top demo1 -nordff; write_smt2 -wires demo1.smt2'
@ -68,6 +71,7 @@ clean:
rm -f demo7.yslog demo7.smt2
rm -f demo8.yslog demo8.smt2
rm -f demo9.yslog demo9.smt2
rm -f glift_mux.ys
.PHONY: demo1 demo2 demo3 demo4 demo5 demo6 demo7 demo8 demo9 clean

4194
examples/smtbmc/glift/C7552.v Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
read_verilog C7552.v
techmap
flatten
select C7552_lev2
glift -optimize-precise
techmap
opt
rename C7552_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog C7552.v
techmap
flatten
select C7552_lev2
glift -create-precise
techmap
opt
rename C7552_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution C7552.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file C7552.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

451
examples/smtbmc/glift/C880.v Executable file
View File

@ -0,0 +1,451 @@
module C880_lev2(pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, pi24, pi25, pi26, pi27, pi28, pi29,
pi30, pi31, pi32, pi33, pi34, pi35, pi36, pi37, pi38, pi39,
pi40, pi41, pi42, pi43, pi44, pi45, pi46, pi47, pi48, pi49,
pi50, pi51, pi52, pi53, pi54, pi55, pi56, pi57, pi58, pi59,
po00, po01, po02, po03, po04, po05, po06, po07, po08, po09,
po10, po11, po12, po13, po14, po15, po16, po17, po18, po19,
po20, po21, po22, po23, po24, po25);
input pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, pi24, pi25, pi26, pi27, pi28, pi29,
pi30, pi31, pi32, pi33, pi34, pi35, pi36, pi37, pi38, pi39,
pi40, pi41, pi42, pi43, pi44, pi45, pi46, pi47, pi48, pi49,
pi50, pi51, pi52, pi53, pi54, pi55, pi56, pi57, pi58, pi59;
output po00, po01, po02, po03, po04, po05, po06, po07, po08, po09,
po10, po11, po12, po13, po14, po15, po16, po17, po18, po19,
po20, po21, po22, po23, po24, po25;
wire n137, n346, n364, n415, n295, n427, n351, n377, n454, n357,
n358, n359, n360, n361, n362, n363, n365, n366, n367, n368,
n369, n370, n371, n372, n373, n374, n375, n376, 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, n416, n417, n418, n419, n420,
n421, n422, n423, n424, n425, n426, 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, 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;
assign po22 = n137;
assign po19 = n346;
assign po16 = n364;
assign po17 = n415;
assign po18 = n295;
assign po00 = n427;
assign po09 = n351;
assign po04 = n377;
assign po06 = n454;
AN2 U371 ( .A(pi11), .B(pi08), .Z(n357));
AN2 U372 ( .A(pi28), .B(n357), .Z(n346));
AN2 U373 ( .A(pi41), .B(pi25), .Z(n369));
AN2 U374 ( .A(pi52), .B(n369), .Z(n361));
AN2 U375 ( .A(pi51), .B(pi54), .Z(n359));
AN2 U376 ( .A(pi28), .B(pi31), .Z(n604));
AN2 U377 ( .A(n604), .B(pi55), .Z(n358));
AN2 U378 ( .A(n359), .B(n358), .Z(n602));
AN2 U379 ( .A(pi53), .B(n602), .Z(n360));
AN2 U380 ( .A(n361), .B(n360), .Z(n577));
IV2 U381 ( .A(pi20), .Z(n607));
OR2 U382 ( .A(n607), .B(pi25), .Z(n362));
IV2 U383 ( .A(n362), .Z(n365));
AN2 U384 ( .A(pi25), .B(n607), .Z(n363));
OR2 U385 ( .A(n365), .B(n363), .Z(n367));
AN2 U386 ( .A(pi41), .B(pi24), .Z(n378));
AN2 U387 ( .A(n346), .B(n378), .Z(n366));
AN2 U388 ( .A(n367), .B(n366), .Z(n373));
AN2 U389 ( .A(pi28), .B(pi54), .Z(n368));
AN2 U390 ( .A(pi20), .B(n368), .Z(n603));
AN2 U391 ( .A(pi08), .B(n603), .Z(n371));
IV2 U392 ( .A(pi56), .Z(n694));
IV2 U393 ( .A(n369), .Z(n692));
OR2 U394 ( .A(n694), .B(n692), .Z(n370));
AN2 U395 ( .A(n371), .B(n370), .Z(n372));
OR2 U396 ( .A(n373), .B(n372), .Z(n424));
AN2 U397 ( .A(pi14), .B(n424), .Z(n384));
AN2 U398 ( .A(pi56), .B(pi48), .Z(n608));
AN2 U399 ( .A(n608), .B(n346), .Z(n374));
AN2 U400 ( .A(pi07), .B(n374), .Z(n376));
IV2 U401 ( .A(pi43), .Z(n375));
AN2 U402 ( .A(n376), .B(n375), .Z(n406));
AN2 U403 ( .A(pi20), .B(n406), .Z(n403));
IV2 U404 ( .A(n378), .Z(n379));
AN2 U405 ( .A(n346), .B(n379), .Z(n407));
AN2 U406 ( .A(pi55), .B(n407), .Z(n399));
AN2 U407 ( .A(pi44), .B(n399), .Z(n381));
AN2 U408 ( .A(pi37), .B(pi54), .Z(n380));
OR2 U409 ( .A(n381), .B(n380), .Z(n382));
OR2 U410 ( .A(n403), .B(n382), .Z(n383));
OR2 U411 ( .A(n384), .B(n383), .Z(n436));
AN2 U412 ( .A(pi26), .B(n436), .Z(n385));
OR2 U413 ( .A(n577), .B(n385), .Z(n386));
AN2 U414 ( .A(pi34), .B(n386), .Z(n448));
AN2 U415 ( .A(pi43), .B(pi05), .Z(n388));
AN2 U416 ( .A(pi32), .B(n436), .Z(n387));
OR2 U417 ( .A(n388), .B(n387), .Z(n446));
AN2 U418 ( .A(pi08), .B(pi37), .Z(n393));
AN2 U419 ( .A(pi50), .B(n399), .Z(n390));
AN2 U420 ( .A(pi18), .B(n424), .Z(n389));
OR2 U421 ( .A(n390), .B(n389), .Z(n391));
OR2 U422 ( .A(n403), .B(n391), .Z(n392));
OR2 U423 ( .A(n393), .B(n392), .Z(n494));
AN2 U424 ( .A(pi27), .B(n494), .Z(n497));
OR2 U425 ( .A(pi27), .B(n494), .Z(n499));
AN2 U426 ( .A(pi20), .B(pi37), .Z(n398));
AN2 U427 ( .A(pi45), .B(n399), .Z(n395));
AN2 U428 ( .A(pi22), .B(n424), .Z(n394));
OR2 U429 ( .A(n395), .B(n394), .Z(n396));
OR2 U430 ( .A(n403), .B(n396), .Z(n397));
OR2 U431 ( .A(n398), .B(n397), .Z(n536));
AN2 U432 ( .A(pi17), .B(n536), .Z(n539));
OR2 U433 ( .A(pi17), .B(n536), .Z(n541));
AN2 U434 ( .A(pi23), .B(n424), .Z(n405));
AN2 U435 ( .A(pi30), .B(pi37), .Z(n401));
AN2 U436 ( .A(pi29), .B(n399), .Z(n400));
OR2 U437 ( .A(n401), .B(n400), .Z(n402));
OR2 U438 ( .A(n403), .B(n402), .Z(n404));
OR2 U439 ( .A(n405), .B(n404), .Z(n579));
AN2 U440 ( .A(pi21), .B(n579), .Z(n582));
OR2 U441 ( .A(pi21), .B(n579), .Z(n584));
AN2 U442 ( .A(n406), .B(pi55), .Z(n429));
IV2 U443 ( .A(pi28), .Z(n409));
AN2 U444 ( .A(n407), .B(pi20), .Z(n408));
OR2 U445 ( .A(n409), .B(n408), .Z(n423));
AN2 U446 ( .A(pi50), .B(n423), .Z(n411));
AN2 U447 ( .A(pi42), .B(n424), .Z(n410));
OR2 U448 ( .A(n411), .B(n410), .Z(n412));
OR2 U449 ( .A(n429), .B(n412), .Z(n514));
AN2 U450 ( .A(pi15), .B(n514), .Z(n517));
OR2 U451 ( .A(pi15), .B(n514), .Z(n519));
AN2 U452 ( .A(pi45), .B(n423), .Z(n414));
AN2 U453 ( .A(pi40), .B(n424), .Z(n413));
OR2 U454 ( .A(n414), .B(n413), .Z(n416));
OR2 U455 ( .A(n429), .B(n416), .Z(n556));
AN2 U456 ( .A(pi03), .B(n556), .Z(n559));
OR2 U457 ( .A(pi03), .B(n556), .Z(n561));
AN2 U458 ( .A(pi29), .B(n423), .Z(n418));
AN2 U459 ( .A(pi04), .B(n424), .Z(n417));
OR2 U460 ( .A(n418), .B(n417), .Z(n419));
OR2 U461 ( .A(n429), .B(n419), .Z(n471));
AN2 U462 ( .A(pi10), .B(n471), .Z(n480));
OR2 U463 ( .A(pi10), .B(n471), .Z(n482));
AN2 U464 ( .A(pi46), .B(n482), .Z(n420));
OR2 U465 ( .A(n480), .B(n420), .Z(n562));
AN2 U466 ( .A(n561), .B(n562), .Z(n421));
OR2 U467 ( .A(n559), .B(n421), .Z(n520));
AN2 U468 ( .A(n519), .B(n520), .Z(n422));
OR2 U469 ( .A(n517), .B(n422), .Z(n449));
AN2 U470 ( .A(pi44), .B(n423), .Z(n426));
AN2 U471 ( .A(pi49), .B(n424), .Z(n425));
OR2 U472 ( .A(n426), .B(n425), .Z(n428));
OR2 U473 ( .A(n429), .B(n428), .Z(n464));
AN2 U474 ( .A(n449), .B(n464), .Z(n432));
OR2 U475 ( .A(n449), .B(n464), .Z(n430));
AN2 U476 ( .A(pi09), .B(n430), .Z(n431));
OR2 U477 ( .A(n432), .B(n431), .Z(n585));
AN2 U478 ( .A(n584), .B(n585), .Z(n433));
OR2 U479 ( .A(n582), .B(n433), .Z(n542));
AN2 U480 ( .A(n541), .B(n542), .Z(n434));
OR2 U481 ( .A(n539), .B(n434), .Z(n500));
AN2 U482 ( .A(n499), .B(n500), .Z(n435));
OR2 U483 ( .A(n497), .B(n435), .Z(n597));
OR2 U484 ( .A(pi34), .B(n436), .Z(n598));
AN2 U485 ( .A(n436), .B(pi34), .Z(n600));
IV2 U486 ( .A(n600), .Z(n437));
AN2 U487 ( .A(n598), .B(n437), .Z(n442));
OR2 U488 ( .A(n597), .B(n442), .Z(n440));
AN2 U489 ( .A(n597), .B(n442), .Z(n438));
IV2 U490 ( .A(n438), .Z(n439));
AN2 U491 ( .A(n440), .B(n439), .Z(n441));
AN2 U492 ( .A(pi12), .B(n441), .Z(n444));
AN2 U493 ( .A(n442), .B(pi19), .Z(n443));
OR2 U494 ( .A(n444), .B(n443), .Z(n445));
OR2 U495 ( .A(n446), .B(n445), .Z(n447));
OR2 U496 ( .A(n448), .B(n447), .Z(n137));
IV2 U497 ( .A(n464), .Z(n459));
AN2 U498 ( .A(pi12), .B(n449), .Z(n456));
AN2 U499 ( .A(n459), .B(n456), .Z(n453));
IV2 U500 ( .A(n449), .Z(n450));
AN2 U501 ( .A(n450), .B(pi12), .Z(n451));
OR2 U502 ( .A(pi19), .B(n451), .Z(n458));
AN2 U503 ( .A(n464), .B(n458), .Z(n452));
OR2 U504 ( .A(n453), .B(n452), .Z(n455));
IV2 U505 ( .A(pi09), .Z(n612));
AN2 U506 ( .A(n455), .B(n612), .Z(n470));
OR2 U507 ( .A(pi26), .B(n456), .Z(n457));
AN2 U508 ( .A(n464), .B(n457), .Z(n462));
AN2 U509 ( .A(n459), .B(n458), .Z(n460));
OR2 U510 ( .A(n577), .B(n460), .Z(n461));
OR2 U511 ( .A(n462), .B(n461), .Z(n463));
AN2 U512 ( .A(pi09), .B(n463), .Z(n468));
AN2 U513 ( .A(pi23), .B(pi05), .Z(n466));
AN2 U514 ( .A(pi32), .B(n464), .Z(n465));
OR2 U515 ( .A(n466), .B(n465), .Z(n467));
OR2 U516 ( .A(n468), .B(n467), .Z(n469));
OR2 U517 ( .A(n470), .B(n469), .Z(n295));
AN2 U518 ( .A(pi26), .B(n480), .Z(n479));
AN2 U519 ( .A(pi40), .B(pi05), .Z(n473));
AN2 U520 ( .A(pi32), .B(n471), .Z(n472));
OR2 U521 ( .A(n473), .B(n472), .Z(n477));
AN2 U522 ( .A(pi38), .B(pi36), .Z(n475));
AN2 U523 ( .A(pi10), .B(n577), .Z(n474));
OR2 U524 ( .A(n475), .B(n474), .Z(n476));
OR2 U525 ( .A(n477), .B(n476), .Z(n478));
OR2 U526 ( .A(n479), .B(n478), .Z(n491));
IV2 U527 ( .A(n480), .Z(n481));
AN2 U528 ( .A(n482), .B(n481), .Z(n487));
OR2 U529 ( .A(pi46), .B(n487), .Z(n485));
AN2 U530 ( .A(pi46), .B(n487), .Z(n483));
IV2 U531 ( .A(n483), .Z(n484));
AN2 U532 ( .A(n485), .B(n484), .Z(n486));
AN2 U533 ( .A(pi12), .B(n486), .Z(n489));
AN2 U534 ( .A(n487), .B(pi19), .Z(n488));
OR2 U535 ( .A(n489), .B(n488), .Z(n490));
OR2 U536 ( .A(n491), .B(n490), .Z(n351));
AN2 U537 ( .A(pi26), .B(n494), .Z(n492));
OR2 U538 ( .A(n577), .B(n492), .Z(n493));
AN2 U539 ( .A(pi27), .B(n493), .Z(n511));
AN2 U540 ( .A(pi14), .B(pi05), .Z(n496));
AN2 U541 ( .A(pi32), .B(n494), .Z(n495));
OR2 U542 ( .A(n496), .B(n495), .Z(n509));
IV2 U543 ( .A(n497), .Z(n498));
AN2 U544 ( .A(n499), .B(n498), .Z(n505));
OR2 U545 ( .A(n500), .B(n505), .Z(n503));
AN2 U546 ( .A(n500), .B(n505), .Z(n501));
IV2 U547 ( .A(n501), .Z(n502));
AN2 U548 ( .A(n503), .B(n502), .Z(n504));
AN2 U549 ( .A(pi12), .B(n504), .Z(n507));
AN2 U550 ( .A(n505), .B(pi19), .Z(n506));
OR2 U551 ( .A(n507), .B(n506), .Z(n508));
OR2 U552 ( .A(n509), .B(n508), .Z(n510));
OR2 U553 ( .A(n511), .B(n510), .Z(n364));
AN2 U554 ( .A(pi26), .B(n514), .Z(n512));
OR2 U555 ( .A(n577), .B(n512), .Z(n513));
AN2 U556 ( .A(pi15), .B(n513), .Z(n533));
AN2 U557 ( .A(pi49), .B(pi05), .Z(n531));
AN2 U558 ( .A(pi33), .B(pi36), .Z(n516));
AN2 U559 ( .A(pi32), .B(n514), .Z(n515));
OR2 U560 ( .A(n516), .B(n515), .Z(n529));
IV2 U561 ( .A(n517), .Z(n518));
AN2 U562 ( .A(n519), .B(n518), .Z(n525));
OR2 U563 ( .A(n520), .B(n525), .Z(n523));
AN2 U564 ( .A(n520), .B(n525), .Z(n521));
IV2 U565 ( .A(n521), .Z(n522));
AN2 U566 ( .A(n523), .B(n522), .Z(n524));
AN2 U567 ( .A(pi12), .B(n524), .Z(n527));
AN2 U568 ( .A(n525), .B(pi19), .Z(n526));
OR2 U569 ( .A(n527), .B(n526), .Z(n528));
OR2 U570 ( .A(n529), .B(n528), .Z(n530));
OR2 U571 ( .A(n531), .B(n530), .Z(n532));
OR2 U572 ( .A(n533), .B(n532), .Z(n377));
AN2 U573 ( .A(pi26), .B(n536), .Z(n534));
OR2 U574 ( .A(n577), .B(n534), .Z(n535));
AN2 U575 ( .A(pi17), .B(n535), .Z(n553));
AN2 U576 ( .A(pi18), .B(pi05), .Z(n538));
AN2 U577 ( .A(pi32), .B(n536), .Z(n537));
OR2 U578 ( .A(n538), .B(n537), .Z(n551));
IV2 U579 ( .A(n539), .Z(n540));
AN2 U580 ( .A(n541), .B(n540), .Z(n547));
OR2 U581 ( .A(n542), .B(n547), .Z(n545));
AN2 U582 ( .A(n542), .B(n547), .Z(n543));
IV2 U583 ( .A(n543), .Z(n544));
AN2 U584 ( .A(n545), .B(n544), .Z(n546));
AN2 U585 ( .A(pi12), .B(n546), .Z(n549));
AN2 U586 ( .A(n547), .B(pi19), .Z(n548));
OR2 U587 ( .A(n549), .B(n548), .Z(n550));
OR2 U588 ( .A(n551), .B(n550), .Z(n552));
OR2 U589 ( .A(n553), .B(n552), .Z(n415));
AN2 U590 ( .A(pi26), .B(n556), .Z(n554));
OR2 U591 ( .A(n577), .B(n554), .Z(n555));
AN2 U592 ( .A(pi03), .B(n555), .Z(n575));
AN2 U593 ( .A(pi42), .B(pi05), .Z(n573));
AN2 U594 ( .A(pi47), .B(pi36), .Z(n558));
AN2 U595 ( .A(pi32), .B(n556), .Z(n557));
OR2 U596 ( .A(n558), .B(n557), .Z(n571));
IV2 U597 ( .A(n559), .Z(n560));
AN2 U598 ( .A(n561), .B(n560), .Z(n567));
OR2 U599 ( .A(n562), .B(n567), .Z(n565));
AN2 U600 ( .A(n562), .B(n567), .Z(n563));
IV2 U601 ( .A(n563), .Z(n564));
AN2 U602 ( .A(n565), .B(n564), .Z(n566));
AN2 U603 ( .A(pi12), .B(n566), .Z(n569));
AN2 U604 ( .A(n567), .B(pi19), .Z(n568));
OR2 U605 ( .A(n569), .B(n568), .Z(n570));
OR2 U606 ( .A(n571), .B(n570), .Z(n572));
OR2 U607 ( .A(n573), .B(n572), .Z(n574));
OR2 U608 ( .A(n575), .B(n574), .Z(n427));
AN2 U609 ( .A(pi26), .B(n579), .Z(n576));
OR2 U610 ( .A(n577), .B(n576), .Z(n578));
AN2 U611 ( .A(pi21), .B(n578), .Z(n596));
AN2 U612 ( .A(pi22), .B(pi05), .Z(n581));
AN2 U613 ( .A(pi32), .B(n579), .Z(n580));
OR2 U614 ( .A(n581), .B(n580), .Z(n594));
IV2 U615 ( .A(n582), .Z(n583));
AN2 U616 ( .A(n584), .B(n583), .Z(n590));
OR2 U617 ( .A(n585), .B(n590), .Z(n588));
AN2 U618 ( .A(n585), .B(n590), .Z(n586));
IV2 U619 ( .A(n586), .Z(n587));
AN2 U620 ( .A(n588), .B(n587), .Z(n589));
AN2 U621 ( .A(pi12), .B(n589), .Z(n592));
AN2 U622 ( .A(n590), .B(pi19), .Z(n591));
OR2 U623 ( .A(n592), .B(n591), .Z(n593));
OR2 U624 ( .A(n594), .B(n593), .Z(n595));
OR2 U625 ( .A(n596), .B(n595), .Z(n454));
AN2 U626 ( .A(n598), .B(n597), .Z(n599));
OR2 U627 ( .A(n600), .B(n599), .Z(po07));
OR2 U628 ( .A(pi58), .B(pi00), .Z(n609));
AN2 U629 ( .A(pi59), .B(n609), .Z(po24));
AN2 U630 ( .A(n602), .B(pi57), .Z(n601));
AN2 U631 ( .A(pi41), .B(n601), .Z(po13));
AN2 U632 ( .A(pi48), .B(n602), .Z(po08));
AN2 U633 ( .A(n603), .B(pi31), .Z(po03));
AN2 U634 ( .A(pi48), .B(pi16), .Z(n610));
AN2 U635 ( .A(pi25), .B(n610), .Z(po25));
AN2 U636 ( .A(pi11), .B(n604), .Z(n605));
IV2 U637 ( .A(n605), .Z(n606));
OR2 U638 ( .A(n607), .B(n606), .Z(n691));
OR2 U639 ( .A(po25), .B(n691), .Z(po02));
AN2 U640 ( .A(n608), .B(pi25), .Z(po10));
AN2 U641 ( .A(pi13), .B(n609), .Z(po12));
AN2 U642 ( .A(pi07), .B(n610), .Z(po14));
IV2 U643 ( .A(pi15), .Z(n611));
AN2 U644 ( .A(pi09), .B(n611), .Z(n614));
AN2 U645 ( .A(pi15), .B(n612), .Z(n613));
OR2 U646 ( .A(n614), .B(n613), .Z(n618));
IV2 U647 ( .A(pi35), .Z(n654));
OR2 U648 ( .A(n654), .B(pi06), .Z(n617));
IV2 U649 ( .A(pi06), .Z(n615));
OR2 U650 ( .A(n615), .B(pi35), .Z(n616));
AN2 U651 ( .A(n617), .B(n616), .Z(n619));
OR2 U652 ( .A(n618), .B(n619), .Z(n622));
AN2 U653 ( .A(n619), .B(n618), .Z(n620));
IV2 U654 ( .A(n620), .Z(n621));
AN2 U655 ( .A(n622), .B(n621), .Z(n628));
IV2 U656 ( .A(pi10), .Z(n624));
OR2 U657 ( .A(n624), .B(pi03), .Z(n623));
IV2 U658 ( .A(n623), .Z(n626));
AN2 U659 ( .A(pi03), .B(n624), .Z(n625));
OR2 U660 ( .A(n626), .B(n625), .Z(n627));
OR2 U661 ( .A(n628), .B(n627), .Z(n631));
AN2 U662 ( .A(n628), .B(n627), .Z(n629));
IV2 U663 ( .A(n629), .Z(n630));
AN2 U664 ( .A(n631), .B(n630), .Z(n637));
IV2 U665 ( .A(pi34), .Z(n632));
AN2 U666 ( .A(pi27), .B(n632), .Z(n635));
OR2 U667 ( .A(n632), .B(pi27), .Z(n633));
IV2 U668 ( .A(n633), .Z(n634));
OR2 U669 ( .A(n635), .B(n634), .Z(n636));
OR2 U670 ( .A(n637), .B(n636), .Z(n640));
AN2 U671 ( .A(n637), .B(n636), .Z(n638));
IV2 U672 ( .A(n638), .Z(n639));
AN2 U673 ( .A(n640), .B(n639), .Z(n647));
IV2 U674 ( .A(pi21), .Z(n642));
OR2 U675 ( .A(n642), .B(pi17), .Z(n641));
IV2 U676 ( .A(n641), .Z(n644));
AN2 U677 ( .A(pi17), .B(n642), .Z(n643));
OR2 U678 ( .A(n644), .B(n643), .Z(n646));
OR2 U679 ( .A(n647), .B(n646), .Z(n645));
IV2 U680 ( .A(n645), .Z(n649));
AN2 U681 ( .A(n647), .B(n646), .Z(n648));
OR2 U682 ( .A(n649), .B(n648), .Z(po15));
IV2 U683 ( .A(pi42), .Z(n650));
AN2 U684 ( .A(pi49), .B(n650), .Z(n653));
IV2 U685 ( .A(pi49), .Z(n651));
AN2 U686 ( .A(pi42), .B(n651), .Z(n652));
OR2 U687 ( .A(n653), .B(n652), .Z(n658));
OR2 U688 ( .A(n654), .B(pi39), .Z(n657));
IV2 U689 ( .A(pi39), .Z(n655));
OR2 U690 ( .A(n655), .B(pi35), .Z(n656));
AN2 U691 ( .A(n657), .B(n656), .Z(n659));
OR2 U692 ( .A(n658), .B(n659), .Z(n662));
AN2 U693 ( .A(n659), .B(n658), .Z(n660));
IV2 U694 ( .A(n660), .Z(n661));
AN2 U695 ( .A(n662), .B(n661), .Z(n668));
IV2 U696 ( .A(pi04), .Z(n664));
OR2 U697 ( .A(n664), .B(pi18), .Z(n663));
IV2 U698 ( .A(n663), .Z(n666));
AN2 U699 ( .A(pi18), .B(n664), .Z(n665));
OR2 U700 ( .A(n666), .B(n665), .Z(n667));
OR2 U701 ( .A(n668), .B(n667), .Z(n671));
AN2 U702 ( .A(n668), .B(n667), .Z(n669));
IV2 U703 ( .A(n669), .Z(n670));
AN2 U704 ( .A(n671), .B(n670), .Z(n677));
IV2 U705 ( .A(pi22), .Z(n673));
OR2 U706 ( .A(n673), .B(pi14), .Z(n672));
IV2 U707 ( .A(n672), .Z(n675));
AN2 U708 ( .A(pi14), .B(n673), .Z(n674));
OR2 U709 ( .A(n675), .B(n674), .Z(n676));
OR2 U710 ( .A(n677), .B(n676), .Z(n680));
AN2 U711 ( .A(n677), .B(n676), .Z(n678));
IV2 U712 ( .A(n678), .Z(n679));
AN2 U713 ( .A(n680), .B(n679), .Z(n687));
IV2 U714 ( .A(pi40), .Z(n682));
OR2 U715 ( .A(n682), .B(pi23), .Z(n681));
IV2 U716 ( .A(n681), .Z(n684));
AN2 U717 ( .A(pi23), .B(n682), .Z(n683));
OR2 U718 ( .A(n684), .B(n683), .Z(n686));
OR2 U719 ( .A(n687), .B(n686), .Z(n685));
IV2 U720 ( .A(n685), .Z(n689));
AN2 U721 ( .A(n687), .B(n686), .Z(n688));
OR2 U722 ( .A(n689), .B(n688), .Z(po20));
AN2 U723 ( .A(pi01), .B(pi02), .Z(po21));
IV2 U724 ( .A(po25), .Z(n690));
OR2 U725 ( .A(n691), .B(n690), .Z(po23));
IV2 U726 ( .A(pi16), .Z(n696));
OR2 U727 ( .A(n692), .B(n696), .Z(po11));
AN2 U728 ( .A(pi07), .B(pi41), .Z(n693));
IV2 U729 ( .A(n693), .Z(n695));
OR2 U730 ( .A(n694), .B(n695), .Z(po01));
OR2 U731 ( .A(n696), .B(n695), .Z(po05));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog C880.v
techmap
flatten
select C880_lev2
glift -optimize-precise
techmap
opt
rename C880_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog C880.v
techmap
flatten
select C880_lev2
glift -create-precise
techmap
opt
rename C880_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution C880.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file C880.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

400
examples/smtbmc/glift/alu2.v Executable file
View File

@ -0,0 +1,400 @@
module alu2_lev2(pi0, pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9,
po0, po1, po2, po3, po4, po5);
input pi0, pi1, pi2, pi3, pi4, pi5, pi6, pi7, pi8, pi9;
output po0, po1, po2, po3, po4, po5;
wire 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;
AN2 U363 ( .A(n358), .B(po2), .Z(po5));
OR2 U364 ( .A(n359), .B(n360), .Z(n358));
AN2 U365 ( .A(n361), .B(n362), .Z(n359));
AN2 U366 ( .A(pi9), .B(n363), .Z(po4));
OR2 U367 ( .A(n364), .B(n365), .Z(n363));
OR2 U368 ( .A(n366), .B(n367), .Z(n365));
AN2 U369 ( .A(pi6), .B(n368), .Z(n367));
OR2 U370 ( .A(n369), .B(n370), .Z(n368));
OR2 U371 ( .A(n371), .B(n372), .Z(n370));
OR2 U372 ( .A(n373), .B(n374), .Z(n372));
AN2 U373 ( .A(n375), .B(n376), .Z(n374));
AN2 U374 ( .A(n377), .B(n378), .Z(n375));
OR2 U375 ( .A(n379), .B(n380), .Z(n377));
OR2 U376 ( .A(n381), .B(n382), .Z(n380));
OR2 U377 ( .A(n383), .B(n384), .Z(n379));
AN2 U378 ( .A(n385), .B(pi5), .Z(n384));
AN2 U379 ( .A(n386), .B(n387), .Z(n383));
AN2 U380 ( .A(pi4), .B(n361), .Z(n386));
AN2 U381 ( .A(n388), .B(n389), .Z(n373));
OR2 U382 ( .A(n390), .B(n391), .Z(n388));
AN2 U383 ( .A(pi1), .B(n392), .Z(n390));
OR2 U384 ( .A(n393), .B(n394), .Z(n392));
OR2 U385 ( .A(pi7), .B(n395), .Z(n394));
AN2 U386 ( .A(n381), .B(n396), .Z(n395));
OR2 U387 ( .A(n397), .B(n398), .Z(n369));
AN2 U388 ( .A(n399), .B(n400), .Z(n398));
AN2 U389 ( .A(n387), .B(n401), .Z(n399));
AN2 U390 ( .A(n402), .B(n403), .Z(n397));
AN2 U391 ( .A(pi0), .B(n404), .Z(n402));
OR2 U392 ( .A(pi1), .B(n389), .Z(n404));
AN2 U393 ( .A(n405), .B(n406), .Z(n366));
OR2 U394 ( .A(n407), .B(n408), .Z(n406));
AN2 U395 ( .A(n360), .B(n409), .Z(n408));
OR2 U396 ( .A(n410), .B(n411), .Z(n409));
OR2 U397 ( .A(n412), .B(n413), .Z(n411));
AN2 U398 ( .A(n414), .B(pi3), .Z(n413));
AN2 U399 ( .A(n389), .B(n415), .Z(n410));
AN2 U400 ( .A(po3), .B(n416), .Z(n407));
OR2 U401 ( .A(n417), .B(n414), .Z(n416));
OR2 U402 ( .A(n418), .B(n419), .Z(n364));
OR2 U403 ( .A(n420), .B(n421), .Z(n419));
AN2 U404 ( .A(n422), .B(n382), .Z(n421));
AN2 U405 ( .A(pi7), .B(n389), .Z(n422));
AN2 U406 ( .A(n423), .B(n424), .Z(n418));
AN2 U407 ( .A(n425), .B(n426), .Z(n423));
OR2 U408 ( .A(n427), .B(po3), .Z(po2));
AN2 U409 ( .A(n428), .B(n429), .Z(n427));
OR2 U410 ( .A(n430), .B(n431), .Z(po1));
AN2 U411 ( .A(pi9), .B(n432), .Z(n431));
OR2 U412 ( .A(n433), .B(n434), .Z(n432));
OR2 U413 ( .A(n435), .B(n436), .Z(n434));
AN2 U414 ( .A(n437), .B(n438), .Z(n436));
IV2 U415 ( .A(n425), .Z(n438));
AN2 U416 ( .A(n424), .B(n426), .Z(n437));
OR2 U417 ( .A(n439), .B(n440), .Z(n424));
OR2 U418 ( .A(n441), .B(n442), .Z(n440));
AN2 U419 ( .A(n381), .B(n443), .Z(n442));
OR2 U420 ( .A(n444), .B(n445), .Z(n443));
AN2 U421 ( .A(n446), .B(n447), .Z(n441));
AN2 U422 ( .A(n387), .B(n361), .Z(n446));
AN2 U423 ( .A(n448), .B(n425), .Z(n435));
OR2 U424 ( .A(n449), .B(n450), .Z(n425));
OR2 U425 ( .A(n420), .B(n451), .Z(n450));
OR2 U426 ( .A(n452), .B(n453), .Z(n451));
AN2 U427 ( .A(pi6), .B(n454), .Z(n453));
OR2 U428 ( .A(n371), .B(n455), .Z(n454));
AN2 U429 ( .A(n376), .B(n456), .Z(n455));
OR2 U430 ( .A(n457), .B(n458), .Z(n456));
OR2 U431 ( .A(n459), .B(n460), .Z(n458));
AN2 U432 ( .A(n461), .B(n378), .Z(n460));
OR2 U433 ( .A(n462), .B(n463), .Z(n461));
AN2 U434 ( .A(n385), .B(n464), .Z(n462));
OR2 U435 ( .A(n465), .B(pi5), .Z(n464));
AN2 U436 ( .A(pi7), .B(n466), .Z(n459));
OR2 U437 ( .A(n467), .B(n468), .Z(n466));
OR2 U438 ( .A(n469), .B(n470), .Z(n468));
AN2 U439 ( .A(n381), .B(pi1), .Z(n470));
AN2 U440 ( .A(n471), .B(n428), .Z(n469));
AN2 U441 ( .A(pi0), .B(n387), .Z(n471));
AN2 U442 ( .A(n412), .B(n361), .Z(n467));
AN2 U443 ( .A(n472), .B(n473), .Z(n457));
AN2 U444 ( .A(n360), .B(n428), .Z(n472));
AN2 U445 ( .A(n463), .B(n428), .Z(n371));
AN2 U446 ( .A(n474), .B(n475), .Z(n452));
OR2 U447 ( .A(n476), .B(n477), .Z(n474));
OR2 U448 ( .A(n478), .B(n479), .Z(n477));
AN2 U449 ( .A(n480), .B(n428), .Z(n479));
AN2 U450 ( .A(n481), .B(n482), .Z(n480));
OR2 U451 ( .A(n360), .B(n389), .Z(n482));
OR2 U452 ( .A(n401), .B(n483), .Z(n481));
AN2 U453 ( .A(pi7), .B(n484), .Z(n483));
OR2 U454 ( .A(n393), .B(n485), .Z(n484));
AN2 U455 ( .A(n376), .B(n415), .Z(n485));
AN2 U456 ( .A(n414), .B(n429), .Z(n393));
AN2 U457 ( .A(n486), .B(n378), .Z(n478));
OR2 U458 ( .A(n412), .B(n389), .Z(n486));
AN2 U459 ( .A(n487), .B(pi1), .Z(n412));
OR2 U460 ( .A(n488), .B(n489), .Z(n476));
AN2 U461 ( .A(n490), .B(n401), .Z(n488));
AN2 U462 ( .A(pi1), .B(n429), .Z(n490));
AN2 U463 ( .A(n385), .B(n491), .Z(n420));
IV2 U464 ( .A(n492), .Z(n491));
OR2 U465 ( .A(n493), .B(n487), .Z(n492));
AN2 U466 ( .A(n494), .B(n495), .Z(n493));
OR2 U467 ( .A(pi6), .B(n389), .Z(n495));
OR2 U468 ( .A(pi7), .B(pi1), .Z(n494));
OR2 U469 ( .A(n496), .B(n497), .Z(n449));
AN2 U470 ( .A(n498), .B(n376), .Z(n497));
AN2 U471 ( .A(n381), .B(n382), .Z(n498));
AN2 U472 ( .A(n499), .B(n389), .Z(n496));
OR2 U473 ( .A(n500), .B(n501), .Z(n499));
OR2 U474 ( .A(n502), .B(n503), .Z(n501));
AN2 U475 ( .A(n385), .B(n504), .Z(n503));
OR2 U476 ( .A(n505), .B(n506), .Z(n504));
AN2 U477 ( .A(po3), .B(n400), .Z(n506));
AN2 U478 ( .A(n507), .B(n428), .Z(n505));
AN2 U479 ( .A(n508), .B(n387), .Z(n502));
OR2 U480 ( .A(n509), .B(n510), .Z(n508));
OR2 U481 ( .A(n489), .B(n511), .Z(n510));
OR2 U482 ( .A(n465), .B(n512), .Z(n511));
AN2 U483 ( .A(n513), .B(pi1), .Z(n512));
AN2 U484 ( .A(pi0), .B(n514), .Z(n513));
OR2 U485 ( .A(n507), .B(n515), .Z(n514));
AN2 U486 ( .A(n361), .B(n428), .Z(n465));
AN2 U487 ( .A(po3), .B(n360), .Z(n489));
OR2 U488 ( .A(n516), .B(n517), .Z(n509));
OR2 U489 ( .A(n518), .B(n519), .Z(n517));
AN2 U490 ( .A(n391), .B(n362), .Z(n519));
AN2 U491 ( .A(n428), .B(n400), .Z(n391));
AN2 U492 ( .A(n520), .B(n521), .Z(n518));
OR2 U493 ( .A(n522), .B(n362), .Z(n521));
AN2 U494 ( .A(n429), .B(n523), .Z(n520));
AN2 U495 ( .A(n417), .B(n378), .Z(n516));
AN2 U496 ( .A(n522), .B(n382), .Z(n500));
AN2 U497 ( .A(pi1), .B(n396), .Z(n382));
AN2 U498 ( .A(n361), .B(n378), .Z(n522));
OR2 U499 ( .A(n524), .B(n525), .Z(n448));
OR2 U500 ( .A(n526), .B(n527), .Z(n525));
OR2 U501 ( .A(pi8), .B(n528), .Z(n524));
AN2 U502 ( .A(n529), .B(n530), .Z(n430));
OR2 U503 ( .A(n531), .B(n532), .Z(n529));
OR2 U504 ( .A(n533), .B(n534), .Z(n532));
OR2 U505 ( .A(n535), .B(n536), .Z(n534));
AN2 U506 ( .A(n537), .B(n376), .Z(n536));
IV2 U507 ( .A(n389), .Z(n376));
AN2 U508 ( .A(n538), .B(n389), .Z(n535));
OR2 U509 ( .A(n539), .B(n540), .Z(n389));
OR2 U510 ( .A(n541), .B(n542), .Z(n540));
OR2 U511 ( .A(n543), .B(n544), .Z(n542));
AN2 U512 ( .A(pi1), .B(n545), .Z(n544));
AN2 U513 ( .A(n546), .B(n428), .Z(n543));
AN2 U514 ( .A(n547), .B(n548), .Z(n546));
OR2 U515 ( .A(pi3), .B(n396), .Z(n548));
AN2 U516 ( .A(pi9), .B(n549), .Z(n541));
OR2 U517 ( .A(n550), .B(n551), .Z(n549));
OR2 U518 ( .A(n552), .B(n553), .Z(n551));
AN2 U519 ( .A(n554), .B(n507), .Z(n553));
AN2 U520 ( .A(n396), .B(pi0), .Z(n554));
AN2 U521 ( .A(n555), .B(n556), .Z(n552));
AN2 U522 ( .A(n557), .B(n415), .Z(n556));
AN2 U523 ( .A(po3), .B(n558), .Z(n555));
OR2 U524 ( .A(n559), .B(n560), .Z(n550));
AN2 U525 ( .A(n561), .B(n429), .Z(n560));
AN2 U526 ( .A(n417), .B(n562), .Z(n561));
OR2 U527 ( .A(n563), .B(n564), .Z(n562));
AN2 U528 ( .A(n558), .B(n428), .Z(n564));
AN2 U529 ( .A(pi1), .B(n565), .Z(n563));
AN2 U530 ( .A(pi3), .B(n566), .Z(n559));
OR2 U531 ( .A(n567), .B(n414), .Z(n566));
AN2 U532 ( .A(n568), .B(n569), .Z(n567));
AN2 U533 ( .A(n565), .B(n428), .Z(n568));
OR2 U534 ( .A(n570), .B(n571), .Z(n539));
AN2 U535 ( .A(n572), .B(n429), .Z(n571));
AN2 U536 ( .A(po3), .B(n573), .Z(n570));
OR2 U537 ( .A(n574), .B(n575), .Z(n538));
OR2 U538 ( .A(n445), .B(n576), .Z(n575));
AN2 U539 ( .A(n577), .B(pi3), .Z(n576));
AN2 U540 ( .A(n578), .B(pi1), .Z(n574));
AN2 U541 ( .A(n507), .B(pi1), .Z(n533));
OR2 U542 ( .A(n579), .B(n580), .Z(n531));
OR2 U543 ( .A(n581), .B(n582), .Z(n580));
AN2 U544 ( .A(n444), .B(po3), .Z(n582));
AN2 U545 ( .A(pi1), .B(pi3), .Z(po3));
AN2 U546 ( .A(n583), .B(n557), .Z(n581));
AN2 U547 ( .A(n584), .B(n429), .Z(n583));
OR2 U548 ( .A(n585), .B(n414), .Z(n584));
AN2 U549 ( .A(n417), .B(n428), .Z(n585));
AN2 U550 ( .A(n586), .B(pi7), .Z(n579));
AN2 U551 ( .A(n587), .B(n588), .Z(n586));
OR2 U552 ( .A(pi3), .B(n589), .Z(n588));
AN2 U553 ( .A(pi1), .B(n523), .Z(n589));
OR2 U554 ( .A(n429), .B(n590), .Z(n587));
OR2 U555 ( .A(n417), .B(n591), .Z(n590));
AN2 U556 ( .A(n592), .B(n428), .Z(n591));
IV2 U557 ( .A(pi1), .Z(n428));
IV2 U558 ( .A(pi3), .Z(n429));
OR2 U559 ( .A(n593), .B(n594), .Z(po0));
OR2 U560 ( .A(n595), .B(n596), .Z(n594));
AN2 U561 ( .A(n597), .B(pi8), .Z(n596));
AN2 U562 ( .A(n598), .B(n381), .Z(n597));
AN2 U563 ( .A(pi0), .B(n385), .Z(n381));
AN2 U564 ( .A(n507), .B(n487), .Z(n598));
AN2 U565 ( .A(n528), .B(n426), .Z(n595));
AN2 U566 ( .A(pi6), .B(n599), .Z(n528));
IV2 U567 ( .A(n600), .Z(n599));
OR2 U568 ( .A(n601), .B(n361), .Z(n600));
AN2 U569 ( .A(n602), .B(n603), .Z(n601));
AN2 U570 ( .A(n604), .B(n605), .Z(n603));
OR2 U571 ( .A(pi7), .B(n606), .Z(n605));
OR2 U572 ( .A(n607), .B(n387), .Z(n606));
OR2 U573 ( .A(n378), .B(n487), .Z(n604));
AN2 U574 ( .A(n608), .B(n609), .Z(n602));
OR2 U575 ( .A(pi2), .B(n415), .Z(n608));
OR2 U576 ( .A(n610), .B(n611), .Z(n593));
AN2 U577 ( .A(pi9), .B(n612), .Z(n611));
OR2 U578 ( .A(n613), .B(n614), .Z(n612));
OR2 U579 ( .A(n433), .B(n615), .Z(n614));
AN2 U580 ( .A(n527), .B(n426), .Z(n615));
OR2 U581 ( .A(n616), .B(n617), .Z(n527));
AN2 U582 ( .A(n618), .B(n361), .Z(n617));
OR2 U583 ( .A(n619), .B(n620), .Z(n618));
OR2 U584 ( .A(n621), .B(n622), .Z(n620));
AN2 U585 ( .A(n592), .B(n362), .Z(n622));
AN2 U586 ( .A(n385), .B(n623), .Z(n621));
OR2 U587 ( .A(n624), .B(n625), .Z(n623));
AN2 U588 ( .A(n626), .B(n415), .Z(n625));
AN2 U589 ( .A(n507), .B(n523), .Z(n624));
AN2 U590 ( .A(n473), .B(n557), .Z(n619));
AN2 U591 ( .A(n523), .B(n387), .Z(n473));
AN2 U592 ( .A(n569), .B(n387), .Z(n616));
AN2 U593 ( .A(n578), .B(n627), .Z(n433));
AN2 U594 ( .A(n378), .B(n475), .Z(n627));
OR2 U595 ( .A(n628), .B(n629), .Z(n613));
AN2 U596 ( .A(n526), .B(n426), .Z(n629));
IV2 U597 ( .A(pi8), .Z(n426));
AN2 U598 ( .A(n360), .B(n405), .Z(n526));
AN2 U599 ( .A(pi8), .B(n630), .Z(n628));
OR2 U600 ( .A(n631), .B(n439), .Z(n630));
OR2 U601 ( .A(n632), .B(n633), .Z(n439));
OR2 U602 ( .A(n634), .B(n635), .Z(n633));
AN2 U603 ( .A(n636), .B(n378), .Z(n635));
OR2 U604 ( .A(n637), .B(n360), .Z(n636));
AN2 U605 ( .A(n387), .B(n475), .Z(n637));
AN2 U606 ( .A(n638), .B(n475), .Z(n634));
OR2 U607 ( .A(n639), .B(n640), .Z(n638));
AN2 U608 ( .A(n558), .B(pi4), .Z(n639));
OR2 U609 ( .A(n463), .B(n641), .Z(n632));
AN2 U610 ( .A(n642), .B(n385), .Z(n641));
AN2 U611 ( .A(n557), .B(n361), .Z(n642));
AN2 U612 ( .A(n361), .B(n578), .Z(n463));
AN2 U613 ( .A(n403), .B(n361), .Z(n631));
IV2 U614 ( .A(n609), .Z(n403));
OR2 U615 ( .A(n385), .B(n378), .Z(n609));
AN2 U616 ( .A(n643), .B(n530), .Z(n610));
OR2 U617 ( .A(n644), .B(n645), .Z(n643));
OR2 U618 ( .A(n646), .B(n647), .Z(n645));
OR2 U619 ( .A(n648), .B(n649), .Z(n647));
AN2 U620 ( .A(n537), .B(n385), .Z(n649));
IV2 U621 ( .A(n387), .Z(n385));
OR2 U622 ( .A(n650), .B(n651), .Z(n537));
AN2 U623 ( .A(n396), .B(pi6), .Z(n651));
AN2 U624 ( .A(n400), .B(n475), .Z(n650));
AN2 U625 ( .A(n652), .B(n387), .Z(n648));
OR2 U626 ( .A(n653), .B(n654), .Z(n387));
OR2 U627 ( .A(n655), .B(n656), .Z(n654));
OR2 U628 ( .A(n657), .B(n658), .Z(n656));
AN2 U629 ( .A(n360), .B(n573), .Z(n658));
OR2 U630 ( .A(n659), .B(n660), .Z(n573));
AN2 U631 ( .A(n405), .B(n578), .Z(n660));
AN2 U632 ( .A(n396), .B(n661), .Z(n659));
OR2 U633 ( .A(n405), .B(n557), .Z(n661));
AN2 U634 ( .A(n475), .B(pi7), .Z(n405));
IV2 U635 ( .A(n607), .Z(n396));
OR2 U636 ( .A(pi5), .B(pi4), .Z(n607));
AN2 U637 ( .A(n640), .B(n417), .Z(n657));
AN2 U638 ( .A(n572), .B(n362), .Z(n655));
OR2 U639 ( .A(n662), .B(n663), .Z(n572));
OR2 U640 ( .A(n664), .B(n665), .Z(n663));
AN2 U641 ( .A(n578), .B(n557), .Z(n665));
AN2 U642 ( .A(n417), .B(n626), .Z(n664));
AN2 U643 ( .A(n507), .B(n530), .Z(n662));
OR2 U644 ( .A(n666), .B(n667), .Z(n653));
OR2 U645 ( .A(n668), .B(n669), .Z(n667));
AN2 U646 ( .A(n670), .B(n545), .Z(n669));
OR2 U647 ( .A(n400), .B(n671), .Z(n545));
AN2 U648 ( .A(pi9), .B(n414), .Z(n671));
AN2 U649 ( .A(n378), .B(n414), .Z(n400));
IV2 U650 ( .A(pi7), .Z(n378));
OR2 U651 ( .A(pi0), .B(pi2), .Z(n670));
AN2 U652 ( .A(n672), .B(n547), .Z(n668));
AN2 U653 ( .A(n475), .B(n530), .Z(n547));
IV2 U654 ( .A(pi9), .Z(n530));
AN2 U655 ( .A(n361), .B(n415), .Z(n672));
AN2 U656 ( .A(n558), .B(n569), .Z(n666));
AN2 U657 ( .A(n557), .B(n417), .Z(n569));
OR2 U658 ( .A(n673), .B(n674), .Z(n652));
OR2 U659 ( .A(n445), .B(n675), .Z(n674));
AN2 U660 ( .A(n577), .B(pi2), .Z(n675));
AN2 U661 ( .A(n523), .B(n447), .Z(n445));
OR2 U662 ( .A(n577), .B(n507), .Z(n447));
AN2 U663 ( .A(n475), .B(n415), .Z(n577));
AN2 U664 ( .A(n578), .B(pi0), .Z(n673));
IV2 U665 ( .A(n487), .Z(n578));
OR2 U666 ( .A(n415), .B(n523), .Z(n487));
AN2 U667 ( .A(n507), .B(pi0), .Z(n646));
AN2 U668 ( .A(pi6), .B(pi7), .Z(n507));
OR2 U669 ( .A(n676), .B(n677), .Z(n644));
OR2 U670 ( .A(n678), .B(n679), .Z(n677));
AN2 U671 ( .A(n444), .B(n360), .Z(n679));
IV2 U672 ( .A(n401), .Z(n360));
OR2 U673 ( .A(n362), .B(n361), .Z(n401));
AN2 U674 ( .A(pi6), .B(n417), .Z(n444));
AN2 U675 ( .A(n680), .B(n557), .Z(n678));
IV2 U676 ( .A(n626), .Z(n557));
OR2 U677 ( .A(pi7), .B(n475), .Z(n626));
AN2 U678 ( .A(n681), .B(n362), .Z(n680));
OR2 U679 ( .A(n682), .B(n414), .Z(n681));
AN2 U680 ( .A(n417), .B(n361), .Z(n682));
IV2 U681 ( .A(pi0), .Z(n361));
AN2 U682 ( .A(pi7), .B(n683), .Z(n676));
OR2 U683 ( .A(n684), .B(n685), .Z(n683));
OR2 U684 ( .A(n686), .B(n687), .Z(n685));
AN2 U685 ( .A(n592), .B(n558), .Z(n687));
IV2 U686 ( .A(n565), .Z(n558));
OR2 U687 ( .A(pi0), .B(n362), .Z(n565));
AN2 U688 ( .A(n475), .B(n414), .Z(n592));
IV2 U689 ( .A(n515), .Z(n414));
OR2 U690 ( .A(pi5), .B(n415), .Z(n515));
IV2 U691 ( .A(pi6), .Z(n475));
AN2 U692 ( .A(n640), .B(n523), .Z(n686));
IV2 U693 ( .A(pi5), .Z(n523));
AN2 U694 ( .A(n362), .B(pi0), .Z(n640));
IV2 U695 ( .A(pi2), .Z(n362));
AN2 U696 ( .A(n417), .B(pi2), .Z(n684));
AN2 U697 ( .A(n415), .B(pi5), .Z(n417));
IV2 U698 ( .A(pi4), .Z(n415));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog alu2.v
techmap
flatten
select alu2_lev2
glift -optimize-precise
techmap
opt
rename alu2_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog alu2.v
techmap
flatten
select alu2_lev2
glift -create-precise
techmap
opt
rename alu2_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution alu2.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file alu2.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

802
examples/smtbmc/glift/alu4.v Executable file
View File

@ -0,0 +1,802 @@
module alu4_lev2(pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, po0, po1, po2, po3, po4, po5, po6, po7);
input pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13;
output po0, po1, po2, po3, po4, po5, po6, po7;
wire 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, n870, n871, n872, n873, n874,
n875, n876, n877, n878, n879, n880, n881, n882, n883, n884,
n885, n886, n887, n888, n889, n890, n891, n892, n893, n894,
n895, n896, n897, n898, n899, n900, n901, n902, n903, n904,
n905, n906, n907, n908, n909, n910, n911, n912, n913, n914,
n915, n916, n917, n918, n919, n920, n921, n922, n923, n924,
n925, n926, n927, n928, n929, n930, n931, n932, n933, n934,
n935, n936, n937, n938, n939, n940, n941, n942, n943, n944,
n945, n946, n947, n948, n949, n950, n951, n952, n953, n954,
n955, n956, n957, n958, n959, n960, n961, n962, n963, n964,
n965, n966, n967, n968, n969, n970, n971, n972, n973, n974,
n975, n976, n977, n978, n979, n980, n981, n982, n983, n984,
n985, n986, n987, n988, n989, n990, n991, n992, n993, n994,
n995, n996, n997, n998, n999, n1000, n1001, n1002, n1003, n1004,
n1005, n1006, n1007, n1008, n1009, n1010, n1011, n1012, n1013, n1014,
n1015, n1016, n1017, n1018, n1019, n1020, n1021, n1022, n1023, n1024,
n1025, n1026, n1027, n1028, n1029, n1030, n1031, n1032, n1033, n1034,
n1035, n1036, n1037, n1038, n1039, n1040, n1041, n1042, n1043, n1044,
n1045, n1046, n1047, n1048, n1049, n1050, n1051, n1052, n1053, n1054,
n1055, n1056, n1057, n1058, n1059, n1060, n1061, n1062, n1063, n1064,
n1065, n1066, n1067, n1068, n1069, n1070, n1071, n1072, n1073, n1074,
n1075, n1076, n1077, n1078, n1079, n1080, n1081, n1082, n1083, n1084,
n1085, n1086, n1087, n1088, n1089, n1090, n1091, n1092, n1093, n1094,
n1095, n1096, n1097, n1098, n1099, n1100, n1101, n1102, n1103, n1104,
n1105, n1106, n1107, n1108, n1109, n1110, n1111, n1112, n1113, n1114,
n1115, n1116, n1117, n1118, n1119, n1120, n1121, n1122, n1123, n1124,
n1125, n1126, n1127, n1128, n1129, n1130, n1131, n1132, n1133, n1134,
n1135, n1136, n1137, n1138, n1139, n1140, n1141, n1142, n1143, n1144,
n1145, n1146, n1147, n1148, n1149, n1150, n1151, n1152, n1153, n1154,
n1155, n1156, n1157, n1158, n1159, n1160, n1161, n1162, n1163, n1164,
n1165, n1166, n1167, n1168, n1169, n1170, n1171, n1172, n1173, n1174,
n1175, n1176, n1177, n1178, n1179, n1180, n1181, n1182, n1183, n1184,
n1185, n1186, n1187, n1188, n1189, n1190, n1191, n1192, n1193, n1194,
n1195, n1196, n1197, n1198, n1199, n1200, n1201, n1202, n1203, n1204,
n1205, n1206, n1207, n1208, n1209, n1210, n1211, n1212, n1213, n1214,
n1215, n1216, n1217, n1218, n1219, n1220, n1221, n1222, n1223, n1224,
n1225, n1226, n1227, n1228, n1229, n1230, n1231, n1232, n1233, n1234,
n1235, n1236, n1237, n1238, n1239, n1240, n1241, n1242, n1243, n1244,
n1245, n1246, n1247, n1248, n1249, n1250, n1251, n1252, n1253, n1254,
n1255, n1256, n1257, n1258, n1259, n1260, n1261, n1262, n1263, n1264,
n1265, n1266, n1267, n1268, n1269, n1270, n1271, n1272, n1273, n1274,
n1275, n1276, n1277, n1278, n1279, n1280, n1281, n1282, n1283, n1284,
n1285, n1286, n1287, n1288, n1289, n1290, n1291, n1292, n1293, n1294,
n1295, n1296, n1297, n1298, n1299, n1300, n1301, n1302, n1303, n1304,
n1305, n1306, n1307, n1308, n1309, n1310, n1311, n1312, n1313, n1314,
n1315, n1316, n1317, n1318, n1319, n1320, n1321, n1322, n1323, n1324,
n1325, n1326, n1327, n1328, n1329, n1330, n1331, n1332, n1333, n1334,
n1335, n1336, n1337, n1338, n1339, n1340, n1341, n1342, n1343, n1344,
n1345, n1346, n1347, n1348, n1349, n1350, n1351, n1352, n1353, n1354,
n1355, n1356, n1357, n1358, n1359, n1360, n1361, n1362, n1363, n1364,
n1365, n1366, n1367, n1368, n1369, n1370, n1371, n1372, n1373, n1374,
n1375, n1376, n1377, n1378, n1379, n1380, n1381, n1382, n1383, n1384,
n1385, n1386, n1387, n1388, n1389, n1390, n1391, n1392, n1393, n1394,
n1395, n1396;
AN2 U712 ( .A(n705), .B(po4), .Z(po7));
OR2 U713 ( .A(n706), .B(n707), .Z(n705));
AN2 U714 ( .A(n708), .B(n709), .Z(n707));
OR2 U715 ( .A(n710), .B(n711), .Z(n708));
AN2 U716 ( .A(n712), .B(n713), .Z(n711));
AN2 U717 ( .A(n714), .B(n715), .Z(n710));
AN2 U718 ( .A(n716), .B(n717), .Z(n714));
AN2 U719 ( .A(n718), .B(n719), .Z(n706));
OR2 U720 ( .A(n720), .B(n712), .Z(n719));
OR2 U721 ( .A(n721), .B(n722), .Z(n712));
AN2 U722 ( .A(n723), .B(n724), .Z(n722));
AN2 U723 ( .A(n725), .B(n726), .Z(n721));
OR2 U724 ( .A(n724), .B(n727), .Z(n726));
AN2 U725 ( .A(n727), .B(n723), .Z(n720));
OR2 U726 ( .A(n728), .B(n729), .Z(po6));
AN2 U727 ( .A(pi13), .B(n730), .Z(n729));
OR2 U728 ( .A(n731), .B(n732), .Z(n730));
OR2 U729 ( .A(n733), .B(n734), .Z(n732));
OR2 U730 ( .A(n735), .B(n736), .Z(n734));
AN2 U731 ( .A(n737), .B(n738), .Z(n736));
OR2 U732 ( .A(n739), .B(n740), .Z(n737));
OR2 U733 ( .A(n741), .B(n742), .Z(n740));
AN2 U734 ( .A(n743), .B(n744), .Z(n742));
OR2 U735 ( .A(n745), .B(n746), .Z(n743));
AN2 U736 ( .A(pi03), .B(n747), .Z(n745));
AN2 U737 ( .A(n748), .B(n749), .Z(n741));
AN2 U738 ( .A(n750), .B(n751), .Z(n748));
AN2 U739 ( .A(pi11), .B(n752), .Z(n735));
OR2 U740 ( .A(n753), .B(n754), .Z(n752));
OR2 U741 ( .A(n755), .B(n756), .Z(n754));
AN2 U742 ( .A(n757), .B(n747), .Z(n756));
OR2 U743 ( .A(n758), .B(n759), .Z(n757));
IV2 U744 ( .A(n760), .Z(n755));
AN2 U745 ( .A(n761), .B(n762), .Z(n753));
OR2 U746 ( .A(n763), .B(po5), .Z(n762));
AN2 U747 ( .A(n764), .B(n765), .Z(n763));
AN2 U748 ( .A(n766), .B(n767), .Z(n733));
OR2 U749 ( .A(n768), .B(n769), .Z(n767));
AN2 U750 ( .A(n770), .B(n771), .Z(n768));
IV2 U751 ( .A(n772), .Z(n766));
OR2 U752 ( .A(n773), .B(n774), .Z(n731));
AN2 U753 ( .A(n775), .B(n776), .Z(n774));
AN2 U754 ( .A(n777), .B(n778), .Z(n775));
AN2 U755 ( .A(n779), .B(n780), .Z(n773));
AN2 U756 ( .A(n781), .B(n782), .Z(n779));
AN2 U757 ( .A(n783), .B(n781), .Z(n728));
AN2 U758 ( .A(n782), .B(n784), .Z(n783));
OR2 U759 ( .A(n785), .B(n786), .Z(po3));
OR2 U760 ( .A(n787), .B(n788), .Z(n786));
OR2 U761 ( .A(n789), .B(n790), .Z(n788));
OR2 U762 ( .A(n791), .B(n792), .Z(n790));
AN2 U763 ( .A(n793), .B(n782), .Z(n792));
AN2 U764 ( .A(n794), .B(n795), .Z(n791));
OR2 U765 ( .A(n796), .B(n797), .Z(n789));
IV2 U766 ( .A(n798), .Z(n797));
OR2 U767 ( .A(n799), .B(n778), .Z(n798));
AN2 U768 ( .A(n778), .B(n799), .Z(n796));
OR2 U769 ( .A(n800), .B(n801), .Z(n799));
IV2 U770 ( .A(n802), .Z(n778));
OR2 U771 ( .A(n803), .B(n804), .Z(n802));
AN2 U772 ( .A(n805), .B(n806), .Z(n803));
AN2 U773 ( .A(n807), .B(n808), .Z(n806));
AN2 U774 ( .A(n809), .B(n810), .Z(n808));
OR2 U775 ( .A(pi11), .B(n811), .Z(n810));
AN2 U776 ( .A(n812), .B(n813), .Z(n811));
AN2 U777 ( .A(n814), .B(n815), .Z(n813));
OR2 U778 ( .A(n782), .B(n816), .Z(n815));
OR2 U779 ( .A(n817), .B(n818), .Z(n814));
OR2 U780 ( .A(n819), .B(n820), .Z(n818));
AN2 U781 ( .A(n750), .B(n821), .Z(n820));
AN2 U782 ( .A(n749), .B(n747), .Z(n819));
IV2 U783 ( .A(n821), .Z(n749));
AN2 U784 ( .A(n822), .B(n823), .Z(n812));
OR2 U785 ( .A(n824), .B(n825), .Z(n823));
OR2 U786 ( .A(n826), .B(n827), .Z(n822));
AN2 U787 ( .A(pi10), .B(n828), .Z(n826));
OR2 U788 ( .A(n829), .B(n830), .Z(n828));
OR2 U789 ( .A(n831), .B(n738), .Z(n809));
AN2 U790 ( .A(n832), .B(n833), .Z(n831));
AN2 U791 ( .A(n834), .B(n760), .Z(n833));
OR2 U792 ( .A(n817), .B(n835), .Z(n760));
OR2 U793 ( .A(pi03), .B(n836), .Z(n835));
OR2 U794 ( .A(n817), .B(n837), .Z(n834));
OR2 U795 ( .A(n715), .B(n827), .Z(n837));
IV2 U796 ( .A(n836), .Z(n715));
AN2 U797 ( .A(n838), .B(n839), .Z(n832));
OR2 U798 ( .A(n765), .B(n840), .Z(n839));
OR2 U799 ( .A(n841), .B(n825), .Z(n840));
OR2 U800 ( .A(n816), .B(n842), .Z(n838));
OR2 U801 ( .A(n843), .B(n844), .Z(n842));
AN2 U802 ( .A(n845), .B(n846), .Z(n844));
OR2 U803 ( .A(n847), .B(n848), .Z(n845));
AN2 U804 ( .A(n758), .B(n747), .Z(n848));
IV2 U805 ( .A(n849), .Z(n758));
AN2 U806 ( .A(n750), .B(n849), .Z(n847));
AN2 U807 ( .A(n849), .B(n759), .Z(n843));
OR2 U808 ( .A(n850), .B(n851), .Z(n849));
AN2 U809 ( .A(n852), .B(n853), .Z(n850));
IV2 U810 ( .A(n854), .Z(n816));
AN2 U811 ( .A(n855), .B(n856), .Z(n807));
OR2 U812 ( .A(n857), .B(n858), .Z(n856));
OR2 U813 ( .A(n859), .B(n860), .Z(n858));
AN2 U814 ( .A(n861), .B(n739), .Z(n859));
OR2 U815 ( .A(n862), .B(n863), .Z(n739));
AN2 U816 ( .A(n759), .B(n795), .Z(n862));
OR2 U817 ( .A(n846), .B(n864), .Z(n861));
IV2 U818 ( .A(n865), .Z(n864));
AN2 U819 ( .A(n795), .B(n863), .Z(n865));
IV2 U820 ( .A(n759), .Z(n846));
OR2 U821 ( .A(n866), .B(n867), .Z(n759));
AN2 U822 ( .A(n868), .B(po5), .Z(n867));
AN2 U823 ( .A(n750), .B(n869), .Z(n866));
OR2 U824 ( .A(n825), .B(n870), .Z(n855));
OR2 U825 ( .A(n871), .B(n872), .Z(n870));
AN2 U826 ( .A(n764), .B(n873), .Z(n872));
IV2 U827 ( .A(po5), .Z(n873));
AN2 U828 ( .A(n841), .B(po4), .Z(n871));
OR2 U829 ( .A(n874), .B(po5), .Z(po4));
IV2 U830 ( .A(n764), .Z(n841));
OR2 U831 ( .A(n875), .B(n724), .Z(n764));
AN2 U832 ( .A(n876), .B(n877), .Z(n875));
AN2 U833 ( .A(n878), .B(n879), .Z(n805));
AN2 U834 ( .A(n880), .B(n881), .Z(n879));
OR2 U835 ( .A(n782), .B(n882), .Z(n881));
OR2 U836 ( .A(n781), .B(n883), .Z(n882));
IV2 U837 ( .A(n884), .Z(n781));
OR2 U838 ( .A(n795), .B(n885), .Z(n880));
AN2 U839 ( .A(n886), .B(n887), .Z(n878));
OR2 U840 ( .A(pi03), .B(n888), .Z(n887));
AN2 U841 ( .A(n889), .B(n890), .Z(n888));
IV2 U842 ( .A(n891), .Z(n890));
AN2 U843 ( .A(n830), .B(n892), .Z(n891));
OR2 U844 ( .A(n893), .B(n894), .Z(n830));
IV2 U845 ( .A(n895), .Z(n894));
OR2 U846 ( .A(n746), .B(n750), .Z(n895));
AN2 U847 ( .A(n750), .B(n746), .Z(n893));
OR2 U848 ( .A(n896), .B(n897), .Z(n746));
AN2 U849 ( .A(pi02), .B(n898), .Z(n896));
IV2 U850 ( .A(n747), .Z(n750));
OR2 U851 ( .A(n899), .B(n900), .Z(n747));
AN2 U852 ( .A(n901), .B(n771), .Z(n900));
OR2 U853 ( .A(pi03), .B(n795), .Z(n771));
AN2 U854 ( .A(n902), .B(n903), .Z(n899));
OR2 U855 ( .A(n904), .B(n905), .Z(n903));
OR2 U856 ( .A(n906), .B(n907), .Z(n905));
AN2 U857 ( .A(n782), .B(n892), .Z(n907));
AN2 U858 ( .A(n769), .B(n751), .Z(n906));
AN2 U859 ( .A(po5), .B(n908), .Z(n904));
OR2 U860 ( .A(n909), .B(n772), .Z(n889));
AN2 U861 ( .A(n910), .B(n911), .Z(n909));
OR2 U862 ( .A(n912), .B(n795), .Z(n911));
OR2 U863 ( .A(n782), .B(n770), .Z(n910));
OR2 U864 ( .A(n827), .B(n913), .Z(n886));
OR2 U865 ( .A(n914), .B(n772), .Z(n913));
OR2 U866 ( .A(n915), .B(n916), .Z(n914));
AN2 U867 ( .A(n912), .B(n795), .Z(n916));
IV2 U868 ( .A(n770), .Z(n912));
AN2 U869 ( .A(n782), .B(n770), .Z(n915));
OR2 U870 ( .A(n917), .B(n918), .Z(n770));
AN2 U871 ( .A(n919), .B(n920), .Z(n917));
IV2 U872 ( .A(n795), .Z(n782));
OR2 U873 ( .A(n921), .B(n922), .Z(n787));
AN2 U874 ( .A(n923), .B(n824), .Z(n922));
AN2 U875 ( .A(n924), .B(n925), .Z(n923));
OR2 U876 ( .A(n926), .B(n927), .Z(n925));
AN2 U877 ( .A(pi11), .B(pi03), .Z(n926));
AN2 U878 ( .A(pi07), .B(n928), .Z(n921));
OR2 U879 ( .A(n929), .B(n930), .Z(n928));
AN2 U880 ( .A(n931), .B(n804), .Z(n929));
OR2 U881 ( .A(n932), .B(n933), .Z(n931));
AN2 U882 ( .A(n854), .B(n795), .Z(n933));
AN2 U883 ( .A(n934), .B(n827), .Z(n932));
OR2 U884 ( .A(n935), .B(n936), .Z(n785));
OR2 U885 ( .A(n937), .B(n938), .Z(n936));
AN2 U886 ( .A(n939), .B(n940), .Z(n938));
OR2 U887 ( .A(n941), .B(n942), .Z(n940));
OR2 U888 ( .A(n769), .B(n943), .Z(n942));
AN2 U889 ( .A(n874), .B(n944), .Z(n943));
AN2 U890 ( .A(n795), .B(pi03), .Z(n769));
OR2 U891 ( .A(n945), .B(n946), .Z(n795));
OR2 U892 ( .A(n947), .B(n948), .Z(n946));
AN2 U893 ( .A(n949), .B(n824), .Z(n948));
AN2 U894 ( .A(n950), .B(n765), .Z(n947));
IV2 U895 ( .A(n874), .Z(n765));
OR2 U896 ( .A(n951), .B(n952), .Z(n945));
OR2 U897 ( .A(n953), .B(n954), .Z(n952));
AN2 U898 ( .A(n955), .B(n827), .Z(n954));
OR2 U899 ( .A(n956), .B(n957), .Z(n955));
AN2 U900 ( .A(n958), .B(n784), .Z(n956));
AN2 U901 ( .A(pi07), .B(n959), .Z(n958));
AN2 U902 ( .A(po5), .B(n960), .Z(n953));
OR2 U903 ( .A(n961), .B(n962), .Z(n960));
AN2 U904 ( .A(n892), .B(n963), .Z(n962));
AN2 U905 ( .A(n964), .B(n965), .Z(n961));
AN2 U906 ( .A(pi13), .B(n966), .Z(n951));
OR2 U907 ( .A(n967), .B(n968), .Z(n966));
OR2 U908 ( .A(n969), .B(n970), .Z(n968));
AN2 U909 ( .A(n971), .B(pi02), .Z(n970));
AN2 U910 ( .A(n972), .B(n973), .Z(n969));
AN2 U911 ( .A(n974), .B(n975), .Z(n972));
OR2 U912 ( .A(n874), .B(n959), .Z(n975));
AN2 U913 ( .A(n827), .B(n824), .Z(n874));
IV2 U914 ( .A(pi03), .Z(n827));
OR2 U915 ( .A(n964), .B(n976), .Z(n974));
AN2 U916 ( .A(pi03), .B(n824), .Z(n976));
IV2 U917 ( .A(pi07), .Z(n824));
IV2 U918 ( .A(n959), .Z(n964));
OR2 U919 ( .A(n977), .B(n978), .Z(n959));
AN2 U920 ( .A(n979), .B(pi02), .Z(n978));
AN2 U921 ( .A(n980), .B(n717), .Z(n977));
OR2 U922 ( .A(n979), .B(pi02), .Z(n980));
AN2 U923 ( .A(n981), .B(po5), .Z(n967));
AN2 U924 ( .A(po5), .B(n982), .Z(n941));
AN2 U925 ( .A(pi03), .B(pi07), .Z(po5));
AN2 U926 ( .A(n983), .B(pi03), .Z(n935));
OR2 U927 ( .A(n984), .B(n985), .Z(po2));
OR2 U928 ( .A(n986), .B(n987), .Z(n985));
OR2 U929 ( .A(n988), .B(n989), .Z(n987));
OR2 U930 ( .A(n990), .B(n991), .Z(n989));
AN2 U931 ( .A(n793), .B(n992), .Z(n991));
AN2 U932 ( .A(n794), .B(n993), .Z(n990));
OR2 U933 ( .A(n994), .B(n995), .Z(n988));
AN2 U934 ( .A(n777), .B(n801), .Z(n995));
IV2 U935 ( .A(n800), .Z(n777));
AN2 U936 ( .A(n776), .B(n800), .Z(n994));
OR2 U937 ( .A(n996), .B(n804), .Z(n800));
AN2 U938 ( .A(n997), .B(n998), .Z(n996));
AN2 U939 ( .A(n999), .B(n1000), .Z(n998));
AN2 U940 ( .A(n1001), .B(n1002), .Z(n1000));
OR2 U941 ( .A(n1003), .B(n817), .Z(n1002));
AN2 U942 ( .A(n1004), .B(n836), .Z(n1003));
OR2 U943 ( .A(pi00), .B(n1005), .Z(n836));
OR2 U944 ( .A(pi02), .B(pi01), .Z(n1005));
AN2 U945 ( .A(n1006), .B(n1007), .Z(n1004));
OR2 U946 ( .A(pi11), .B(n1008), .Z(n1007));
AN2 U947 ( .A(n1009), .B(n821), .Z(n1008));
OR2 U948 ( .A(n898), .B(n1010), .Z(n821));
OR2 U949 ( .A(n1011), .B(n851), .Z(n1009));
AN2 U950 ( .A(n1012), .B(n1013), .Z(n1011));
OR2 U951 ( .A(n738), .B(n1014), .Z(n1006));
OR2 U952 ( .A(n1015), .B(n1016), .Z(n1014));
AN2 U953 ( .A(n713), .B(n1017), .Z(n1015));
OR2 U954 ( .A(n1018), .B(n1019), .Z(n1001));
OR2 U955 ( .A(n744), .B(n1020), .Z(n1019));
OR2 U956 ( .A(n1021), .B(n1022), .Z(n1018));
AN2 U957 ( .A(n717), .B(n1023), .Z(n1022));
AN2 U958 ( .A(n863), .B(n1024), .Z(n1021));
OR2 U959 ( .A(n1025), .B(n1026), .Z(n1024));
OR2 U960 ( .A(n992), .B(n852), .Z(n1026));
IV2 U961 ( .A(n1027), .Z(n1025));
OR2 U962 ( .A(n1028), .B(n1027), .Z(n863));
OR2 U963 ( .A(n1029), .B(n1030), .Z(n1027));
AN2 U964 ( .A(n1031), .B(n1032), .Z(n1029));
AN2 U965 ( .A(n1033), .B(n993), .Z(n1028));
AN2 U966 ( .A(n885), .B(n1034), .Z(n999));
OR2 U967 ( .A(n825), .B(n1035), .Z(n1034));
OR2 U968 ( .A(n1036), .B(n1037), .Z(n1035));
AN2 U969 ( .A(n1038), .B(n1039), .Z(n1037));
IV2 U970 ( .A(n724), .Z(n1039));
OR2 U971 ( .A(n877), .B(n738), .Z(n1038));
IV2 U972 ( .A(n876), .Z(n1036));
OR2 U973 ( .A(n1040), .B(n884), .Z(n885));
OR2 U974 ( .A(n1041), .B(n1042), .Z(n884));
OR2 U975 ( .A(n993), .B(n1032), .Z(n1042));
AN2 U976 ( .A(n1043), .B(n1044), .Z(n997));
AN2 U977 ( .A(n1045), .B(n1046), .Z(n1044));
OR2 U978 ( .A(pi02), .B(n1047), .Z(n1046));
AN2 U979 ( .A(n1048), .B(n1049), .Z(n1047));
OR2 U980 ( .A(n876), .B(n1050), .Z(n1049));
OR2 U981 ( .A(n717), .B(n825), .Z(n1050));
AN2 U982 ( .A(n1051), .B(n1052), .Z(n1048));
OR2 U983 ( .A(n1053), .B(n1054), .Z(n1052));
OR2 U984 ( .A(n1055), .B(n772), .Z(n1051));
AN2 U985 ( .A(n1056), .B(n1057), .Z(n1055));
OR2 U986 ( .A(n1058), .B(n993), .Z(n1057));
OR2 U987 ( .A(n992), .B(n919), .Z(n1056));
OR2 U988 ( .A(n1059), .B(n1016), .Z(n1045));
AN2 U989 ( .A(n1060), .B(n1061), .Z(n1059));
AN2 U990 ( .A(n1062), .B(n1063), .Z(n1061));
OR2 U991 ( .A(n876), .B(n1064), .Z(n1062));
OR2 U992 ( .A(pi06), .B(n825), .Z(n1064));
OR2 U993 ( .A(n1065), .B(n725), .Z(n876));
AN2 U994 ( .A(n718), .B(n1066), .Z(n1065));
AN2 U995 ( .A(n1067), .B(n1068), .Z(n1060));
OR2 U996 ( .A(n772), .B(n1069), .Z(n1068));
OR2 U997 ( .A(n1070), .B(n1071), .Z(n1069));
AN2 U998 ( .A(n1058), .B(n993), .Z(n1071));
IV2 U999 ( .A(n919), .Z(n1058));
AN2 U1000 ( .A(n992), .B(n919), .Z(n1070));
OR2 U1001 ( .A(n1072), .B(n1073), .Z(n919));
AN2 U1002 ( .A(n1074), .B(n1075), .Z(n1072));
OR2 U1003 ( .A(n1054), .B(n1076), .Z(n1067));
IV2 U1004 ( .A(n1053), .Z(n1076));
AN2 U1005 ( .A(n1077), .B(n1078), .Z(n1053));
OR2 U1006 ( .A(n897), .B(n851), .Z(n1078));
IV2 U1007 ( .A(n1079), .Z(n1077));
AN2 U1008 ( .A(n851), .B(n897), .Z(n1079));
OR2 U1009 ( .A(n1080), .B(n1081), .Z(n897));
AN2 U1010 ( .A(pi01), .B(n1082), .Z(n1080));
AN2 U1011 ( .A(n1083), .B(n1084), .Z(n1043));
OR2 U1012 ( .A(pi10), .B(n1085), .Z(n1084));
OR2 U1013 ( .A(n1086), .B(n1087), .Z(n1085));
AN2 U1014 ( .A(n1088), .B(n1089), .Z(n1087));
AN2 U1015 ( .A(n852), .B(n898), .Z(n1088));
IV2 U1016 ( .A(n1033), .Z(n852));
AN2 U1017 ( .A(n1090), .B(n853), .Z(n1086));
IV2 U1018 ( .A(n1089), .Z(n853));
AN2 U1019 ( .A(n1091), .B(n1082), .Z(n1089));
OR2 U1020 ( .A(n1031), .B(n1092), .Z(n1091));
OR2 U1021 ( .A(n851), .B(n1033), .Z(n1090));
OR2 U1022 ( .A(n1093), .B(n1094), .Z(n1033));
AN2 U1023 ( .A(n868), .B(n724), .Z(n1094));
AN2 U1024 ( .A(n851), .B(n869), .Z(n1093));
IV2 U1025 ( .A(n898), .Z(n851));
OR2 U1026 ( .A(n1095), .B(n1096), .Z(n898));
AN2 U1027 ( .A(n901), .B(n920), .Z(n1096));
OR2 U1028 ( .A(pi02), .B(n993), .Z(n920));
AN2 U1029 ( .A(n902), .B(n1097), .Z(n1095));
OR2 U1030 ( .A(n1098), .B(n1099), .Z(n1097));
OR2 U1031 ( .A(n1100), .B(n1101), .Z(n1099));
AN2 U1032 ( .A(n992), .B(n892), .Z(n1101));
AN2 U1033 ( .A(n918), .B(n751), .Z(n1100));
AN2 U1034 ( .A(n908), .B(n724), .Z(n1098));
OR2 U1035 ( .A(n1102), .B(n992), .Z(n1083));
IV2 U1036 ( .A(n993), .Z(n992));
AN2 U1037 ( .A(n1103), .B(n1104), .Z(n1102));
OR2 U1038 ( .A(n883), .B(n1105), .Z(n1104));
IV2 U1039 ( .A(n1106), .Z(n883));
IV2 U1040 ( .A(n801), .Z(n776));
OR2 U1041 ( .A(n1107), .B(n1108), .Z(n801));
OR2 U1042 ( .A(pi12), .B(n1109), .Z(n1108));
OR2 U1043 ( .A(n1110), .B(n1111), .Z(n986));
AN2 U1044 ( .A(n1112), .B(n717), .Z(n1111));
AN2 U1045 ( .A(n924), .B(n1113), .Z(n1112));
OR2 U1046 ( .A(n1114), .B(n927), .Z(n1113));
AN2 U1047 ( .A(pi11), .B(pi02), .Z(n1114));
AN2 U1048 ( .A(pi06), .B(n1115), .Z(n1110));
OR2 U1049 ( .A(n1116), .B(n930), .Z(n1115));
AN2 U1050 ( .A(n1117), .B(n804), .Z(n1116));
OR2 U1051 ( .A(n1118), .B(n1119), .Z(n1117));
AN2 U1052 ( .A(n854), .B(n993), .Z(n1119));
AN2 U1053 ( .A(n934), .B(n1016), .Z(n1118));
OR2 U1054 ( .A(n1120), .B(n1121), .Z(n984));
OR2 U1055 ( .A(n937), .B(n1122), .Z(n1121));
AN2 U1056 ( .A(n939), .B(n1123), .Z(n1122));
OR2 U1057 ( .A(n1124), .B(n1125), .Z(n1123));
OR2 U1058 ( .A(n918), .B(n1126), .Z(n1125));
AN2 U1059 ( .A(n724), .B(n982), .Z(n1126));
AN2 U1060 ( .A(n993), .B(pi02), .Z(n918));
OR2 U1061 ( .A(n1127), .B(n1128), .Z(n993));
OR2 U1062 ( .A(n1129), .B(n1130), .Z(n1128));
AN2 U1063 ( .A(n949), .B(n717), .Z(n1130));
AN2 U1064 ( .A(n950), .B(n877), .Z(n1129));
IV2 U1065 ( .A(n727), .Z(n877));
OR2 U1066 ( .A(n1131), .B(n1132), .Z(n1127));
OR2 U1067 ( .A(n1133), .B(n1134), .Z(n1132));
AN2 U1068 ( .A(n1135), .B(n1016), .Z(n1134));
OR2 U1069 ( .A(n1136), .B(n957), .Z(n1135));
AN2 U1070 ( .A(n1137), .B(n979), .Z(n1136));
AN2 U1071 ( .A(n784), .B(pi06), .Z(n1137));
AN2 U1072 ( .A(n724), .B(n1138), .Z(n1133));
OR2 U1073 ( .A(n1139), .B(n1140), .Z(n1138));
AN2 U1074 ( .A(n965), .B(n1141), .Z(n1139));
AN2 U1075 ( .A(pi02), .B(pi06), .Z(n724));
AN2 U1076 ( .A(pi13), .B(n1142), .Z(n1131));
OR2 U1077 ( .A(n1143), .B(n1144), .Z(n1142));
AN2 U1078 ( .A(n971), .B(pi01), .Z(n1144));
AN2 U1079 ( .A(n1145), .B(n973), .Z(n1143));
AN2 U1080 ( .A(n1146), .B(n1147), .Z(n1145));
OR2 U1081 ( .A(n727), .B(n979), .Z(n1147));
IV2 U1082 ( .A(n1141), .Z(n979));
OR2 U1083 ( .A(n1148), .B(n1141), .Z(n1146));
OR2 U1084 ( .A(n1149), .B(n1150), .Z(n1141));
AN2 U1085 ( .A(n1151), .B(n1017), .Z(n1150));
AN2 U1086 ( .A(pi05), .B(n1152), .Z(n1149));
OR2 U1087 ( .A(n1151), .B(n1017), .Z(n1152));
AN2 U1088 ( .A(pi02), .B(n717), .Z(n1148));
AN2 U1089 ( .A(n944), .B(n727), .Z(n1124));
AN2 U1090 ( .A(n1016), .B(n717), .Z(n727));
IV2 U1091 ( .A(pi06), .Z(n717));
IV2 U1092 ( .A(pi02), .Z(n1016));
AN2 U1093 ( .A(n983), .B(pi02), .Z(n1120));
OR2 U1094 ( .A(n1153), .B(n1154), .Z(po1));
OR2 U1095 ( .A(n1155), .B(n1156), .Z(n1154));
OR2 U1096 ( .A(n1157), .B(n1158), .Z(n1156));
OR2 U1097 ( .A(n1159), .B(n1160), .Z(n1158));
AN2 U1098 ( .A(n793), .B(n1105), .Z(n1160));
AN2 U1099 ( .A(n794), .B(n1032), .Z(n1159));
OR2 U1100 ( .A(n1161), .B(n1162), .Z(n1157));
AN2 U1101 ( .A(n1163), .B(n1107), .Z(n1162));
IV2 U1102 ( .A(n1164), .Z(n1161));
OR2 U1103 ( .A(n1107), .B(n1163), .Z(n1164));
AN2 U1104 ( .A(n1165), .B(n1166), .Z(n1163));
OR2 U1105 ( .A(n1167), .B(n804), .Z(n1107));
AN2 U1106 ( .A(n1168), .B(n1169), .Z(n1167));
AN2 U1107 ( .A(n1170), .B(n1171), .Z(n1169));
OR2 U1108 ( .A(n817), .B(n1172), .Z(n1171));
OR2 U1109 ( .A(pi11), .B(n1173), .Z(n1172));
AN2 U1110 ( .A(n1010), .B(n1174), .Z(n1173));
OR2 U1111 ( .A(n1012), .B(n1013), .Z(n1174));
OR2 U1112 ( .A(n1175), .B(n1082), .Z(n1010));
AN2 U1113 ( .A(n1176), .B(n1177), .Z(n1170));
OR2 U1114 ( .A(pi10), .B(n1178), .Z(n1177));
OR2 U1115 ( .A(n1179), .B(n1180), .Z(n1178));
AN2 U1116 ( .A(n1181), .B(n1031), .Z(n1180));
IV2 U1117 ( .A(n1182), .Z(n1179));
OR2 U1118 ( .A(n1181), .B(n1031), .Z(n1182));
OR2 U1119 ( .A(n1183), .B(n1184), .Z(n1181));
AN2 U1120 ( .A(n1185), .B(n1082), .Z(n1184));
AN2 U1121 ( .A(n1012), .B(n1092), .Z(n1183));
OR2 U1122 ( .A(n825), .B(n1186), .Z(n1176));
OR2 U1123 ( .A(n1187), .B(n1188), .Z(n1186));
AN2 U1124 ( .A(n1189), .B(n1190), .Z(n1187));
IV2 U1125 ( .A(n725), .Z(n1190));
OR2 U1126 ( .A(n1066), .B(n738), .Z(n1189));
AN2 U1127 ( .A(n1191), .B(n1192), .Z(n1168));
AN2 U1128 ( .A(n1193), .B(n1194), .Z(n1192));
OR2 U1129 ( .A(n1195), .B(n1017), .Z(n1194));
AN2 U1130 ( .A(n1196), .B(n1197), .Z(n1195));
AN2 U1131 ( .A(n1198), .B(n1199), .Z(n1197));
OR2 U1132 ( .A(pi05), .B(n1200), .Z(n1199));
AN2 U1133 ( .A(n1201), .B(n1063), .Z(n1198));
OR2 U1134 ( .A(n1202), .B(n772), .Z(n1201));
AN2 U1135 ( .A(n1203), .B(n1204), .Z(n1202));
OR2 U1136 ( .A(n1074), .B(n1032), .Z(n1204));
OR2 U1137 ( .A(n1105), .B(n1205), .Z(n1203));
AN2 U1138 ( .A(n1206), .B(n1207), .Z(n1196));
OR2 U1139 ( .A(n1208), .B(n1054), .Z(n1207));
AN2 U1140 ( .A(n1209), .B(n1210), .Z(n1208));
OR2 U1141 ( .A(n1081), .B(n1082), .Z(n1210));
OR2 U1142 ( .A(n1012), .B(n1211), .Z(n1209));
IV2 U1143 ( .A(n1081), .Z(n1211));
OR2 U1144 ( .A(n817), .B(n1212), .Z(n1206));
OR2 U1145 ( .A(n713), .B(n738), .Z(n1212));
OR2 U1146 ( .A(pi01), .B(n1213), .Z(n1193));
AN2 U1147 ( .A(n1214), .B(n1215), .Z(n1213));
AN2 U1148 ( .A(n1216), .B(n1217), .Z(n1215));
OR2 U1149 ( .A(n1054), .B(n1218), .Z(n1216));
OR2 U1150 ( .A(n1012), .B(n1081), .Z(n1218));
AN2 U1151 ( .A(pi00), .B(n1175), .Z(n1081));
OR2 U1152 ( .A(pi08), .B(n1020), .Z(n1054));
AN2 U1153 ( .A(n1219), .B(n1220), .Z(n1214));
OR2 U1154 ( .A(n772), .B(n1221), .Z(n1220));
OR2 U1155 ( .A(n1222), .B(n1223), .Z(n1221));
AN2 U1156 ( .A(n1074), .B(n1032), .Z(n1223));
AN2 U1157 ( .A(n1105), .B(n1205), .Z(n1222));
OR2 U1158 ( .A(n1224), .B(n738), .Z(n772));
AN2 U1159 ( .A(n1225), .B(n829), .Z(n1224));
OR2 U1160 ( .A(n751), .B(n1023), .Z(n1225));
OR2 U1161 ( .A(n716), .B(n1200), .Z(n1219));
OR2 U1162 ( .A(n718), .B(n825), .Z(n1200));
IV2 U1163 ( .A(n761), .Z(n825));
AN2 U1164 ( .A(n1226), .B(n1227), .Z(n1191));
OR2 U1165 ( .A(n1228), .B(n1229), .Z(n1227));
OR2 U1166 ( .A(n1020), .B(n1230), .Z(n1229));
OR2 U1167 ( .A(n1231), .B(n1232), .Z(n1230));
AN2 U1168 ( .A(n1233), .B(n1234), .Z(n1232));
AN2 U1169 ( .A(n1235), .B(n1031), .Z(n1233));
OR2 U1170 ( .A(n1030), .B(n1032), .Z(n1235));
AN2 U1171 ( .A(n1092), .B(n1041), .Z(n1030));
IV2 U1172 ( .A(n1236), .Z(n1231));
OR2 U1173 ( .A(n1234), .B(n1031), .Z(n1236));
OR2 U1174 ( .A(n1237), .B(n1238), .Z(n1031));
AN2 U1175 ( .A(n868), .B(n725), .Z(n1238));
AN2 U1176 ( .A(n1012), .B(n869), .Z(n1237));
IV2 U1177 ( .A(n1082), .Z(n1012));
OR2 U1178 ( .A(n1239), .B(n1240), .Z(n1082));
AN2 U1179 ( .A(n901), .B(n1075), .Z(n1240));
OR2 U1180 ( .A(pi01), .B(n1032), .Z(n1075));
AN2 U1181 ( .A(n902), .B(n1241), .Z(n1239));
OR2 U1182 ( .A(n1242), .B(n1243), .Z(n1241));
OR2 U1183 ( .A(n1244), .B(n1245), .Z(n1243));
AN2 U1184 ( .A(n1105), .B(n892), .Z(n1245));
AN2 U1185 ( .A(n1073), .B(n751), .Z(n1244));
AN2 U1186 ( .A(n908), .B(n725), .Z(n1242));
OR2 U1187 ( .A(n1185), .B(n1246), .Z(n1234));
OR2 U1188 ( .A(n1247), .B(n1105), .Z(n1246));
IV2 U1189 ( .A(n1248), .Z(n1020));
OR2 U1190 ( .A(n1249), .B(n744), .Z(n1228));
AN2 U1191 ( .A(n716), .B(n1023), .Z(n1249));
AN2 U1192 ( .A(n1250), .B(n1251), .Z(n1226));
OR2 U1193 ( .A(n1105), .B(n1103), .Z(n1251));
IV2 U1194 ( .A(n1252), .Z(n1103));
OR2 U1195 ( .A(n1253), .B(n1254), .Z(n1252));
AN2 U1196 ( .A(n1106), .B(n1041), .Z(n1254));
OR2 U1197 ( .A(n1255), .B(n780), .Z(n1106));
AN2 U1198 ( .A(n973), .B(n738), .Z(n1255));
AN2 U1199 ( .A(n854), .B(n738), .Z(n1253));
IV2 U1200 ( .A(n1032), .Z(n1105));
OR2 U1201 ( .A(n1032), .B(n1256), .Z(n1250));
OR2 U1202 ( .A(n1040), .B(n1041), .Z(n1256));
IV2 U1203 ( .A(n1257), .Z(n1040));
OR2 U1204 ( .A(n1258), .B(n1259), .Z(n1155));
AN2 U1205 ( .A(n1260), .B(n716), .Z(n1259));
AN2 U1206 ( .A(n924), .B(n1261), .Z(n1260));
OR2 U1207 ( .A(n1262), .B(n927), .Z(n1261));
AN2 U1208 ( .A(pi11), .B(pi01), .Z(n1262));
AN2 U1209 ( .A(pi05), .B(n1263), .Z(n1258));
OR2 U1210 ( .A(n1264), .B(n930), .Z(n1263));
AN2 U1211 ( .A(n1265), .B(n804), .Z(n1264));
OR2 U1212 ( .A(n1266), .B(n1267), .Z(n1265));
AN2 U1213 ( .A(n854), .B(n1032), .Z(n1267));
AN2 U1214 ( .A(n934), .B(n1017), .Z(n1266));
AN2 U1215 ( .A(pi11), .B(n761), .Z(n934));
OR2 U1216 ( .A(n1268), .B(n1269), .Z(n1153));
OR2 U1217 ( .A(n937), .B(n1270), .Z(n1269));
AN2 U1218 ( .A(n939), .B(n1271), .Z(n1270));
OR2 U1219 ( .A(n1272), .B(n1273), .Z(n1271));
OR2 U1220 ( .A(n1073), .B(n1274), .Z(n1273));
AN2 U1221 ( .A(n725), .B(n982), .Z(n1274));
AN2 U1222 ( .A(n1032), .B(pi01), .Z(n1073));
OR2 U1223 ( .A(n1275), .B(n1276), .Z(n1032));
OR2 U1224 ( .A(n1277), .B(n1278), .Z(n1276));
AN2 U1225 ( .A(n949), .B(n716), .Z(n1278));
AN2 U1226 ( .A(n950), .B(n1066), .Z(n1277));
IV2 U1227 ( .A(n723), .Z(n1066));
OR2 U1228 ( .A(n1279), .B(n1280), .Z(n1275));
OR2 U1229 ( .A(n1281), .B(n1282), .Z(n1280));
AN2 U1230 ( .A(n1283), .B(n1017), .Z(n1282));
OR2 U1231 ( .A(n1284), .B(n957), .Z(n1283));
AN2 U1232 ( .A(n1285), .B(n784), .Z(n1284));
AN2 U1233 ( .A(pi05), .B(n1286), .Z(n1285));
AN2 U1234 ( .A(n725), .B(n1287), .Z(n1281));
OR2 U1235 ( .A(n1288), .B(n1140), .Z(n1287));
AN2 U1236 ( .A(n965), .B(n1151), .Z(n1288));
AN2 U1237 ( .A(n744), .B(n902), .Z(n965));
AN2 U1238 ( .A(pi01), .B(pi05), .Z(n725));
AN2 U1239 ( .A(pi13), .B(n1289), .Z(n1279));
OR2 U1240 ( .A(n1290), .B(n1291), .Z(n1289));
AN2 U1241 ( .A(n971), .B(pi00), .Z(n1291));
AN2 U1242 ( .A(n892), .B(n1292), .Z(n971));
AN2 U1243 ( .A(pi10), .B(pi11), .Z(n1292));
AN2 U1244 ( .A(n1293), .B(n973), .Z(n1290));
AN2 U1245 ( .A(n1294), .B(n1295), .Z(n1293));
OR2 U1246 ( .A(n723), .B(n1286), .Z(n1295));
IV2 U1247 ( .A(n1151), .Z(n1286));
OR2 U1248 ( .A(n1151), .B(n1296), .Z(n1294));
AN2 U1249 ( .A(pi01), .B(n716), .Z(n1296));
AN2 U1250 ( .A(n944), .B(n723), .Z(n1272));
AN2 U1251 ( .A(n1017), .B(n716), .Z(n723));
IV2 U1252 ( .A(pi05), .Z(n716));
IV2 U1253 ( .A(pi01), .Z(n1017));
AN2 U1254 ( .A(n983), .B(pi01), .Z(n1268));
AN2 U1255 ( .A(pi11), .B(n1297), .Z(n983));
OR2 U1256 ( .A(n1298), .B(n1299), .Z(po0));
OR2 U1257 ( .A(n1300), .B(n1301), .Z(n1299));
OR2 U1258 ( .A(n1302), .B(n1303), .Z(n1301));
OR2 U1259 ( .A(n1304), .B(n1305), .Z(n1303));
AN2 U1260 ( .A(n793), .B(n1247), .Z(n1305));
AN2 U1261 ( .A(n924), .B(n1306), .Z(n793));
IV2 U1262 ( .A(n1307), .Z(n1306));
OR2 U1263 ( .A(n854), .B(n1308), .Z(n1307));
AN2 U1264 ( .A(pi08), .B(n1063), .Z(n1308));
IV2 U1265 ( .A(n1309), .Z(n1063));
AN2 U1266 ( .A(n794), .B(n1041), .Z(n1304));
AN2 U1267 ( .A(n1310), .B(n924), .Z(n794));
OR2 U1268 ( .A(pi11), .B(n854), .Z(n1310));
AN2 U1269 ( .A(pi11), .B(n1311), .Z(n1302));
OR2 U1270 ( .A(n1312), .B(n1313), .Z(n1311));
OR2 U1271 ( .A(n1314), .B(n1315), .Z(n1313));
AN2 U1272 ( .A(n924), .B(n1316), .Z(n1315));
AN2 U1273 ( .A(n1317), .B(n761), .Z(n1314));
AN2 U1274 ( .A(n1023), .B(n908), .Z(n761));
AN2 U1275 ( .A(n1151), .B(n804), .Z(n1317));
AN2 U1276 ( .A(n1297), .B(pi00), .Z(n1312));
AN2 U1277 ( .A(n804), .B(n1318), .Z(n1297));
OR2 U1278 ( .A(pi10), .B(n892), .Z(n1318));
OR2 U1279 ( .A(n1319), .B(n1320), .Z(n1300));
AN2 U1280 ( .A(n1321), .B(n709), .Z(n1320));
AN2 U1281 ( .A(n927), .B(n924), .Z(n1321));
AN2 U1282 ( .A(pi04), .B(n1322), .Z(n1319));
OR2 U1283 ( .A(n1323), .B(n930), .Z(n1322));
AN2 U1284 ( .A(n939), .B(n1324), .Z(n930));
AN2 U1285 ( .A(n744), .B(pi11), .Z(n1324));
AN2 U1286 ( .A(n957), .B(n1041), .Z(n1323));
OR2 U1287 ( .A(n1325), .B(n1326), .Z(n1298));
OR2 U1288 ( .A(n937), .B(n1327), .Z(n1326));
AN2 U1289 ( .A(pi13), .B(n1328), .Z(n1327));
OR2 U1290 ( .A(n1329), .B(n1330), .Z(n1328));
AN2 U1291 ( .A(n1109), .B(n1166), .Z(n1330));
IV2 U1292 ( .A(pi12), .Z(n1166));
IV2 U1293 ( .A(n1165), .Z(n1109));
AN2 U1294 ( .A(pi12), .B(n1165), .Z(n1329));
OR2 U1295 ( .A(n1331), .B(n1332), .Z(n1165));
AN2 U1296 ( .A(pi13), .B(n1333), .Z(n1332));
OR2 U1297 ( .A(n1334), .B(n1335), .Z(n1333));
OR2 U1298 ( .A(n1336), .B(n1337), .Z(n1335));
AN2 U1299 ( .A(n1247), .B(n1257), .Z(n1337));
OR2 U1300 ( .A(n1338), .B(n780), .Z(n1257));
AN2 U1301 ( .A(n1023), .B(n751), .Z(n780));
AN2 U1302 ( .A(n944), .B(pi09), .Z(n1338));
AN2 U1303 ( .A(pi11), .B(n1339), .Z(n1336));
OR2 U1304 ( .A(n1340), .B(n1341), .Z(n1339));
OR2 U1305 ( .A(n1342), .B(n1343), .Z(n1341));
AN2 U1306 ( .A(n1344), .B(pi00), .Z(n1343));
AN2 U1307 ( .A(n1345), .B(n1247), .Z(n1344));
AN2 U1308 ( .A(pi10), .B(n1346), .Z(n1345));
AN2 U1309 ( .A(n1041), .B(n713), .Z(n1342));
IV2 U1310 ( .A(n1217), .Z(n1340));
OR2 U1311 ( .A(pi00), .B(n817), .Z(n1217));
OR2 U1312 ( .A(n1023), .B(n1346), .Z(n817));
OR2 U1313 ( .A(n1347), .B(n1348), .Z(n1334));
OR2 U1314 ( .A(n1349), .B(n1350), .Z(n1348));
AN2 U1315 ( .A(n1316), .B(n1023), .Z(n1350));
AN2 U1316 ( .A(n854), .B(n1351), .Z(n1349));
OR2 U1317 ( .A(n1352), .B(n1353), .Z(n1351));
AN2 U1318 ( .A(pi00), .B(n738), .Z(n1353));
AN2 U1319 ( .A(pi09), .B(n1041), .Z(n1352));
AN2 U1320 ( .A(n1248), .B(n1354), .Z(n1347));
OR2 U1321 ( .A(n1355), .B(n1356), .Z(n1354));
OR2 U1322 ( .A(n1357), .B(n1358), .Z(n1356));
AN2 U1323 ( .A(n1185), .B(n1041), .Z(n1358));
IV2 U1324 ( .A(n1092), .Z(n1185));
AN2 U1325 ( .A(n1247), .B(n1092), .Z(n1357));
OR2 U1326 ( .A(n1359), .B(n1360), .Z(n1092));
AN2 U1327 ( .A(n868), .B(n718), .Z(n1360));
AN2 U1328 ( .A(n1023), .B(n901), .Z(n868));
AN2 U1329 ( .A(n973), .B(pi11), .Z(n901));
AN2 U1330 ( .A(n869), .B(n1013), .Z(n1359));
AN2 U1331 ( .A(n1361), .B(n927), .Z(n869));
AN2 U1332 ( .A(n963), .B(pi08), .Z(n927));
IV2 U1333 ( .A(n1041), .Z(n1247));
AN2 U1334 ( .A(n1175), .B(n713), .Z(n1355));
IV2 U1335 ( .A(n1013), .Z(n1175));
AN2 U1336 ( .A(n1361), .B(n738), .Z(n1248));
AN2 U1337 ( .A(n1362), .B(n751), .Z(n1331));
AN2 U1338 ( .A(n902), .B(n1013), .Z(n1362));
OR2 U1339 ( .A(n1363), .B(n1364), .Z(n1013));
IV2 U1340 ( .A(n902), .Z(n1364));
AN2 U1341 ( .A(n1365), .B(n1366), .Z(n1363));
OR2 U1342 ( .A(n1188), .B(n857), .Z(n1366));
IV2 U1343 ( .A(n908), .Z(n857));
IV2 U1344 ( .A(n718), .Z(n1188));
AN2 U1345 ( .A(n1367), .B(n1368), .Z(n1365));
OR2 U1346 ( .A(n1346), .B(n1205), .Z(n1368));
IV2 U1347 ( .A(n1074), .Z(n1205));
IV2 U1348 ( .A(n751), .Z(n1346));
OR2 U1349 ( .A(n829), .B(n1041), .Z(n1367));
IV2 U1350 ( .A(n892), .Z(n829));
AN2 U1351 ( .A(n1309), .B(n1369), .Z(n937));
AN2 U1352 ( .A(pi13), .B(n751), .Z(n1369));
AN2 U1353 ( .A(n939), .B(n1370), .Z(n1325));
OR2 U1354 ( .A(n1371), .B(n1372), .Z(n1370));
OR2 U1355 ( .A(n1074), .B(n1373), .Z(n1372));
AN2 U1356 ( .A(n1374), .B(n944), .Z(n1373));
AN2 U1357 ( .A(n713), .B(n709), .Z(n1374));
AN2 U1358 ( .A(n1041), .B(pi00), .Z(n1074));
OR2 U1359 ( .A(n1375), .B(n1376), .Z(n1041));
OR2 U1360 ( .A(n1377), .B(n1378), .Z(n1376));
OR2 U1361 ( .A(n1379), .B(n1380), .Z(n1378));
AN2 U1362 ( .A(n949), .B(n709), .Z(n1380));
OR2 U1363 ( .A(n1381), .B(n1382), .Z(n949));
OR2 U1364 ( .A(n1383), .B(n1384), .Z(n1382));
AN2 U1365 ( .A(n751), .B(n963), .Z(n1384));
AN2 U1366 ( .A(n1385), .B(n860), .Z(n1383));
IV2 U1367 ( .A(n963), .Z(n860));
AN2 U1368 ( .A(n1386), .B(n924), .Z(n1381));
AN2 U1369 ( .A(n804), .B(n1361), .Z(n924));
AN2 U1370 ( .A(pi08), .B(pi10), .Z(n1386));
AN2 U1371 ( .A(n718), .B(n1140), .Z(n1379));
OR2 U1372 ( .A(n1387), .B(n981), .Z(n1140));
AN2 U1373 ( .A(pi11), .B(n1388), .Z(n981));
AN2 U1374 ( .A(n1023), .B(n1389), .Z(n1388));
OR2 U1375 ( .A(n751), .B(n892), .Z(n1389));
AN2 U1376 ( .A(n744), .B(n1361), .Z(n892));
AN2 U1377 ( .A(pi09), .B(pi08), .Z(n751));
AN2 U1378 ( .A(n944), .B(n1361), .Z(n1387));
AN2 U1379 ( .A(n744), .B(n963), .Z(n944));
AN2 U1380 ( .A(n784), .B(n1151), .Z(n1377));
AN2 U1381 ( .A(n713), .B(pi04), .Z(n1151));
AN2 U1382 ( .A(n973), .B(n902), .Z(n784));
AN2 U1383 ( .A(n963), .B(pi13), .Z(n902));
AN2 U1384 ( .A(n738), .B(pi10), .Z(n963));
OR2 U1385 ( .A(n1390), .B(n1391), .Z(n1375));
OR2 U1386 ( .A(n1392), .B(n1393), .Z(n1391));
AN2 U1387 ( .A(n950), .B(n1394), .Z(n1393));
OR2 U1388 ( .A(pi00), .B(pi04), .Z(n1394));
AN2 U1389 ( .A(n1395), .B(n908), .Z(n950));
AN2 U1390 ( .A(n1361), .B(pi08), .Z(n908));
IV2 U1391 ( .A(pi09), .Z(n1361));
OR2 U1392 ( .A(pi13), .B(n1309), .Z(n1395));
AN2 U1393 ( .A(n1023), .B(n738), .Z(n1309));
IV2 U1394 ( .A(pi11), .Z(n738));
AN2 U1395 ( .A(n1385), .B(n1316), .Z(n1392));
AN2 U1396 ( .A(n709), .B(pi00), .Z(n1316));
IV2 U1397 ( .A(pi04), .Z(n709));
AN2 U1398 ( .A(n973), .B(pi13), .Z(n1385));
AN2 U1399 ( .A(n744), .B(pi09), .Z(n973));
AN2 U1400 ( .A(n957), .B(n713), .Z(n1390));
IV2 U1401 ( .A(pi00), .Z(n713));
AN2 U1402 ( .A(n804), .B(n854), .Z(n957));
AN2 U1403 ( .A(n744), .B(n1023), .Z(n854));
IV2 U1404 ( .A(pi10), .Z(n1023));
AN2 U1405 ( .A(n718), .B(n982), .Z(n1371));
OR2 U1406 ( .A(n1396), .B(pi11), .Z(n982));
AN2 U1407 ( .A(pi10), .B(n744), .Z(n1396));
IV2 U1408 ( .A(pi08), .Z(n744));
AN2 U1409 ( .A(pi00), .B(pi04), .Z(n718));
AN2 U1410 ( .A(n804), .B(pi09), .Z(n939));
IV2 U1411 ( .A(pi13), .Z(n804));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog alu4.v
techmap
flatten
select alu4_lev2
glift -optimize-precise
techmap
opt
rename alu4_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog alu4.v
techmap
flatten
select alu4_lev2
glift -create-precise
techmap
opt
rename alu4_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution alu4.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file alu4.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

View File

@ -0,0 +1,39 @@
logger -expect log "SAT proof finished - no model found: SUCCESS!" 1
logger -expect log "Number of cells:.*[\t ]12" 1
logger -expect log "Number of cells:.*[\t ]20" 1
logger -expect log "Problem is satisfiable with \\gate.__glift_weight = 11." 1
logger -expect log "Problem is NOT satisfiable with \\gate.__glift_weight <= 10." 1
logger -expect log "Wire \\gate.__glift_weight is minimized at 11." 1
logger -expect log "Specializing .* from file with .* = 1." 2
logger -expect log "Specializing .* from file with .* = 0." 4
read_verilog <<EOT
module mux2(a, b, s, y);
input a, b, s;
output y;
wire s_n = ~s;
wire t0 = s & a;
wire t1 = s_n & b;
assign y = t0 | t1;
endmodule
EOT
techmap
copy mux2 uut
copy mux2 spec
delete mux2
glift -optimize-precise uut
glift -create-precise spec
design -push-copy
miter -equiv spec uut qbfmiter
flatten
delete spec uut
qbfsat -assume-outputs -assume-negative-polarity -write-solution mux2.soln qbfmiter
design -pop
copy uut solved
qbfsat -specialize-from-file mux2.soln solved
opt
miter -equiv spec solved proofmiter
flatten proofmiter
sat -prove trigger 0 proofmiter
delete proofmiter
stat solved spec

83
examples/smtbmc/glift/t481.v Executable file
View File

@ -0,0 +1,83 @@
module t481_lev2(pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, po0);
input pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15;
output po0;
wire 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;
OR2 U47 ( .A(n46), .B(n47), .Z(po0));
OR2 U48 ( .A(n48), .B(n49), .Z(n47));
AN2 U49 ( .A(n50), .B(n51), .Z(n49));
OR2 U50 ( .A(n52), .B(n53), .Z(n51));
AN2 U51 ( .A(n54), .B(n55), .Z(n53));
AN2 U52 ( .A(n56), .B(n57), .Z(n54));
AN2 U53 ( .A(n58), .B(n59), .Z(n52));
AN2 U54 ( .A(n60), .B(n61), .Z(n48));
IV2 U55 ( .A(n50), .Z(n61));
AN2 U56 ( .A(n62), .B(pi15), .Z(n50));
IV2 U57 ( .A(pi14), .Z(n62));
OR2 U58 ( .A(n63), .B(n64), .Z(n60));
AN2 U59 ( .A(n65), .B(n55), .Z(n64));
IV2 U60 ( .A(n59), .Z(n55));
AN2 U61 ( .A(n57), .B(n58), .Z(n65));
IV2 U62 ( .A(n56), .Z(n58));
AN2 U63 ( .A(n56), .B(n59), .Z(n63));
AN2 U64 ( .A(n66), .B(pi00), .Z(n56));
IV2 U65 ( .A(pi01), .Z(n66));
AN2 U66 ( .A(n67), .B(n59), .Z(n46));
OR2 U67 ( .A(n68), .B(n69), .Z(n59));
OR2 U68 ( .A(n70), .B(n71), .Z(n69));
AN2 U69 ( .A(n72), .B(n73), .Z(n71));
IV2 U70 ( .A(n74), .Z(n70));
OR2 U71 ( .A(n73), .B(n72), .Z(n74));
AN2 U72 ( .A(n75), .B(pi12), .Z(n72));
IV2 U73 ( .A(pi13), .Z(n75));
OR2 U74 ( .A(pi10), .B(n76), .Z(n73));
IV2 U75 ( .A(pi11), .Z(n76));
AN2 U76 ( .A(n77), .B(n78), .Z(n68));
OR2 U77 ( .A(n79), .B(n80), .Z(n78));
IV2 U78 ( .A(n81), .Z(n77));
AN2 U79 ( .A(n80), .B(n79), .Z(n81));
AN2 U80 ( .A(n82), .B(pi08), .Z(n79));
IV2 U81 ( .A(pi09), .Z(n82));
OR2 U82 ( .A(pi06), .B(n83), .Z(n80));
IV2 U83 ( .A(pi07), .Z(n83));
IV2 U84 ( .A(n57), .Z(n67));
OR2 U85 ( .A(n84), .B(n85), .Z(n57));
AN2 U86 ( .A(n86), .B(n87), .Z(n85));
IV2 U87 ( .A(n88), .Z(n84));
OR2 U88 ( .A(n87), .B(n86), .Z(n88));
AN2 U89 ( .A(n89), .B(pi04), .Z(n86));
IV2 U90 ( .A(pi05), .Z(n89));
OR2 U91 ( .A(pi02), .B(n90), .Z(n87));
IV2 U92 ( .A(pi03), .Z(n90));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog t481.v
techmap
flatten
select t481_lev2
glift -optimize-precise
techmap
opt
rename t481_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog t481.v
techmap
flatten
select t481_lev2
glift -create-precise
techmap
opt
rename t481_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution t481.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file t481.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

345
examples/smtbmc/glift/too_large.v Executable file
View File

@ -0,0 +1,345 @@
module too_large_lev2(pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, pi24, pi25, pi26, pi27, pi28, pi29,
pi30, pi31, pi32, pi33, pi34, pi35, pi36, pi37, po0, po1,
po2);
input pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, pi24, pi25, pi26, pi27, pi28, pi29,
pi30, pi31, pi32, pi33, pi34, pi35, pi36, pi37;
output po0, po1, po2;
wire 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;
AN2 U283 ( .A(n280), .B(n281), .Z(po2));
OR2 U284 ( .A(n282), .B(n283), .Z(n280));
OR2 U285 ( .A(n284), .B(n285), .Z(n283));
AN2 U286 ( .A(n286), .B(n287), .Z(n285));
OR2 U287 ( .A(n288), .B(n289), .Z(n287));
OR2 U288 ( .A(n290), .B(n291), .Z(n289));
AN2 U289 ( .A(pi29), .B(n292), .Z(n291));
AN2 U290 ( .A(n293), .B(pi35), .Z(n290));
AN2 U291 ( .A(n294), .B(n295), .Z(n293));
OR2 U292 ( .A(pi29), .B(n296), .Z(n294));
AN2 U293 ( .A(n297), .B(pi18), .Z(n284));
AN2 U294 ( .A(n298), .B(n299), .Z(n297));
IV2 U295 ( .A(n300), .Z(n299));
OR2 U296 ( .A(n301), .B(n302), .Z(n298));
AN2 U297 ( .A(n303), .B(n304), .Z(n302));
OR2 U298 ( .A(n305), .B(n306), .Z(n304));
AN2 U299 ( .A(n307), .B(n308), .Z(n306));
AN2 U300 ( .A(n309), .B(n310), .Z(n305));
OR2 U301 ( .A(n311), .B(n312), .Z(n310));
AN2 U302 ( .A(n308), .B(n313), .Z(n312));
OR2 U303 ( .A(n314), .B(n315), .Z(n308));
AN2 U304 ( .A(n316), .B(n317), .Z(n311));
AN2 U305 ( .A(n318), .B(n319), .Z(n317));
AN2 U306 ( .A(pi15), .B(n315), .Z(n316));
OR2 U307 ( .A(n320), .B(n321), .Z(n315));
AN2 U308 ( .A(n322), .B(n323), .Z(n309));
OR2 U309 ( .A(n324), .B(n325), .Z(n322));
AN2 U310 ( .A(n326), .B(n327), .Z(n301));
OR2 U311 ( .A(n328), .B(n307), .Z(n327));
AN2 U312 ( .A(n329), .B(n323), .Z(n328));
OR2 U313 ( .A(n330), .B(n331), .Z(n329));
AN2 U314 ( .A(n332), .B(n313), .Z(n331));
OR2 U315 ( .A(n333), .B(n325), .Z(n332));
AN2 U316 ( .A(n324), .B(n334), .Z(n333));
IV2 U317 ( .A(n335), .Z(n334));
AN2 U318 ( .A(n336), .B(pi08), .Z(n335));
OR2 U319 ( .A(n320), .B(n314), .Z(n336));
AN2 U320 ( .A(n337), .B(n338), .Z(n314));
OR2 U321 ( .A(pi20), .B(n339), .Z(n337));
AN2 U322 ( .A(n340), .B(n341), .Z(n330));
AN2 U323 ( .A(n342), .B(n319), .Z(n341));
OR2 U324 ( .A(n343), .B(n325), .Z(n342));
AN2 U325 ( .A(n324), .B(n344), .Z(n343));
IV2 U326 ( .A(n345), .Z(n344));
AN2 U327 ( .A(n346), .B(n295), .Z(n324));
AN2 U328 ( .A(pi15), .B(n318), .Z(n340));
OR2 U329 ( .A(n347), .B(n348), .Z(n318));
AN2 U330 ( .A(n349), .B(n350), .Z(n347));
AN2 U331 ( .A(n351), .B(n352), .Z(n326));
OR2 U332 ( .A(n353), .B(n354), .Z(n282));
AN2 U333 ( .A(n355), .B(n356), .Z(n354));
AN2 U334 ( .A(n357), .B(n358), .Z(n355));
OR2 U335 ( .A(pi26), .B(pi27), .Z(n357));
AN2 U336 ( .A(n359), .B(n360), .Z(n353));
OR2 U337 ( .A(n361), .B(n362), .Z(n360));
AN2 U338 ( .A(n288), .B(n363), .Z(n362));
OR2 U339 ( .A(n364), .B(n365), .Z(n288));
AN2 U340 ( .A(n292), .B(n296), .Z(n364));
OR2 U341 ( .A(n366), .B(n367), .Z(n296));
IV2 U342 ( .A(n368), .Z(n367));
AN2 U343 ( .A(n369), .B(n370), .Z(n368));
OR2 U344 ( .A(pi33), .B(pi22), .Z(n366));
AN2 U345 ( .A(pi29), .B(n371), .Z(n361));
OR2 U346 ( .A(n372), .B(n373), .Z(n371));
AN2 U347 ( .A(n374), .B(n292), .Z(n372));
IV2 U348 ( .A(n356), .Z(n359));
AN2 U349 ( .A(n295), .B(pi35), .Z(n356));
IV2 U350 ( .A(pi28), .Z(n295));
OR2 U351 ( .A(n375), .B(n376), .Z(po1));
OR2 U352 ( .A(n377), .B(n378), .Z(n376));
AN2 U353 ( .A(n379), .B(n380), .Z(n378));
AN2 U354 ( .A(n381), .B(n382), .Z(n380));
IV2 U355 ( .A(n365), .Z(n382));
AN2 U356 ( .A(n383), .B(pi05), .Z(n379));
AN2 U357 ( .A(n384), .B(n385), .Z(n377));
OR2 U358 ( .A(n386), .B(n387), .Z(n385));
AN2 U359 ( .A(n388), .B(n369), .Z(n387));
OR2 U360 ( .A(n389), .B(n390), .Z(n388));
AN2 U361 ( .A(n391), .B(n370), .Z(n390));
OR2 U362 ( .A(n392), .B(n393), .Z(n391));
OR2 U363 ( .A(n394), .B(n395), .Z(n393));
AN2 U364 ( .A(n396), .B(pi35), .Z(n395));
AN2 U365 ( .A(n397), .B(n358), .Z(n396));
AN2 U366 ( .A(n398), .B(n399), .Z(n394));
IV2 U367 ( .A(n400), .Z(n399));
AN2 U368 ( .A(n286), .B(pi08), .Z(n398));
AN2 U369 ( .A(n401), .B(n402), .Z(n392));
OR2 U370 ( .A(n403), .B(n286), .Z(n402));
AN2 U371 ( .A(n400), .B(n363), .Z(n403));
OR2 U372 ( .A(n404), .B(n300), .Z(n401));
AN2 U373 ( .A(pi37), .B(pi13), .Z(n404));
AN2 U374 ( .A(n405), .B(n406), .Z(n389));
AN2 U375 ( .A(n407), .B(n352), .Z(n406));
AN2 U376 ( .A(pi05), .B(n408), .Z(n405));
OR2 U377 ( .A(n409), .B(n410), .Z(n408));
AN2 U378 ( .A(n411), .B(n351), .Z(n410));
AN2 U379 ( .A(n412), .B(n413), .Z(n409));
OR2 U380 ( .A(n414), .B(n415), .Z(n412));
AN2 U381 ( .A(n416), .B(n351), .Z(n415));
OR2 U382 ( .A(n417), .B(n418), .Z(n416));
AN2 U383 ( .A(n286), .B(n319), .Z(n417));
AN2 U384 ( .A(n419), .B(n420), .Z(n414));
AN2 U385 ( .A(pi02), .B(n421), .Z(n419));
AN2 U386 ( .A(n422), .B(n423), .Z(n386));
AN2 U387 ( .A(n424), .B(n425), .Z(n423));
OR2 U388 ( .A(n426), .B(n427), .Z(n425));
AN2 U389 ( .A(n428), .B(n429), .Z(n427));
AN2 U390 ( .A(n430), .B(n407), .Z(n426));
IV2 U391 ( .A(n431), .Z(n407));
AN2 U392 ( .A(n432), .B(pi21), .Z(n431));
OR2 U393 ( .A(pi01), .B(pi20), .Z(n432));
OR2 U394 ( .A(n433), .B(n434), .Z(n430));
AN2 U395 ( .A(n429), .B(n339), .Z(n433));
OR2 U396 ( .A(n435), .B(n411), .Z(n424));
AN2 U397 ( .A(n436), .B(n437), .Z(n411));
AN2 U398 ( .A(n438), .B(n286), .Z(n437));
IV2 U399 ( .A(n439), .Z(n436));
OR2 U400 ( .A(pi26), .B(pi06), .Z(n439));
AN2 U401 ( .A(pi05), .B(n303), .Z(n422));
AN2 U402 ( .A(n440), .B(n441), .Z(n375));
OR2 U403 ( .A(n442), .B(n443), .Z(n441));
AN2 U404 ( .A(pi35), .B(n397), .Z(n443));
OR2 U405 ( .A(pi27), .B(pi28), .Z(n397));
AN2 U406 ( .A(n300), .B(n400), .Z(n442));
OR2 U407 ( .A(pi26), .B(n413), .Z(n400));
OR2 U408 ( .A(n444), .B(n445), .Z(po0));
OR2 U409 ( .A(n446), .B(n447), .Z(n445));
AN2 U410 ( .A(n448), .B(pi04), .Z(n447));
AN2 U411 ( .A(n383), .B(n381), .Z(n448));
OR2 U412 ( .A(n449), .B(n450), .Z(n381));
AN2 U413 ( .A(n420), .B(n451), .Z(n450));
AN2 U414 ( .A(n452), .B(n453), .Z(n449));
OR2 U415 ( .A(n454), .B(n374), .Z(n452));
AN2 U416 ( .A(n373), .B(n455), .Z(n454));
AN2 U417 ( .A(n456), .B(n457), .Z(n383));
AN2 U418 ( .A(n413), .B(n281), .Z(n457));
AN2 U419 ( .A(n384), .B(n458), .Z(n446));
OR2 U420 ( .A(n459), .B(n460), .Z(n458));
OR2 U421 ( .A(n461), .B(n462), .Z(n460));
AN2 U422 ( .A(n463), .B(n369), .Z(n462));
OR2 U423 ( .A(n464), .B(n465), .Z(n463));
AN2 U424 ( .A(n466), .B(n467), .Z(n465));
OR2 U425 ( .A(n468), .B(n469), .Z(n467));
OR2 U426 ( .A(n470), .B(n471), .Z(n469));
AN2 U427 ( .A(n365), .B(n350), .Z(n471));
AN2 U428 ( .A(n472), .B(pi37), .Z(n470));
AN2 U429 ( .A(pi13), .B(n473), .Z(n472));
OR2 U430 ( .A(n474), .B(n475), .Z(n473));
AN2 U431 ( .A(n370), .B(n338), .Z(n475));
AN2 U432 ( .A(pi16), .B(n476), .Z(n474));
OR2 U433 ( .A(n477), .B(n428), .Z(n476));
AN2 U434 ( .A(n478), .B(n350), .Z(n477));
AN2 U435 ( .A(n300), .B(n479), .Z(n468));
OR2 U436 ( .A(n480), .B(n286), .Z(n466));
AN2 U437 ( .A(n481), .B(n363), .Z(n480));
AN2 U438 ( .A(n482), .B(n483), .Z(n464));
AN2 U439 ( .A(n370), .B(n358), .Z(n482));
AN2 U440 ( .A(n484), .B(n485), .Z(n461));
AN2 U441 ( .A(n286), .B(n486), .Z(n484));
OR2 U442 ( .A(n487), .B(n488), .Z(n486));
AN2 U443 ( .A(n489), .B(n370), .Z(n488));
OR2 U444 ( .A(n490), .B(n345), .Z(n489));
AN2 U445 ( .A(n320), .B(pi08), .Z(n345));
AN2 U446 ( .A(pi06), .B(n369), .Z(n490));
AN2 U447 ( .A(n491), .B(n429), .Z(n487));
AN2 U448 ( .A(pi08), .B(n492), .Z(n491));
AN2 U449 ( .A(pi04), .B(n493), .Z(n459));
OR2 U450 ( .A(n494), .B(n495), .Z(n493));
AN2 U451 ( .A(n303), .B(n496), .Z(n495));
OR2 U452 ( .A(n497), .B(n498), .Z(n496));
AN2 U453 ( .A(n499), .B(n500), .Z(n498));
OR2 U454 ( .A(n501), .B(n307), .Z(n500));
AN2 U455 ( .A(n374), .B(n502), .Z(n307));
AN2 U456 ( .A(n413), .B(n453), .Z(n502));
AN2 U457 ( .A(n503), .B(n313), .Z(n501));
OR2 U458 ( .A(n504), .B(n505), .Z(n503));
AN2 U459 ( .A(n325), .B(n323), .Z(n504));
AN2 U460 ( .A(n413), .B(n506), .Z(n325));
AN2 U461 ( .A(n434), .B(n370), .Z(n499));
OR2 U462 ( .A(n507), .B(n320), .Z(n434));
AN2 U463 ( .A(n321), .B(n508), .Z(n507));
IV2 U464 ( .A(pi07), .Z(n321));
AN2 U465 ( .A(n509), .B(n429), .Z(n497));
AN2 U466 ( .A(n508), .B(n338), .Z(n429));
IV2 U467 ( .A(pi15), .Z(n338));
AN2 U468 ( .A(n510), .B(n492), .Z(n509));
OR2 U469 ( .A(n511), .B(n428), .Z(n492));
AN2 U470 ( .A(n479), .B(pi20), .Z(n428));
AN2 U471 ( .A(n339), .B(n350), .Z(n511));
OR2 U472 ( .A(n478), .B(n348), .Z(n339));
IV2 U473 ( .A(pi16), .Z(n348));
IV2 U474 ( .A(n349), .Z(n478));
AN2 U475 ( .A(n512), .B(n513), .Z(n349));
OR2 U476 ( .A(pi25), .B(pi17), .Z(n513));
OR2 U477 ( .A(n514), .B(pi24), .Z(n512));
IV2 U478 ( .A(pi09), .Z(n514));
OR2 U479 ( .A(n515), .B(n435), .Z(n510));
AN2 U480 ( .A(n516), .B(n413), .Z(n435));
OR2 U481 ( .A(n517), .B(n418), .Z(n516));
AN2 U482 ( .A(n363), .B(n453), .Z(n418));
OR2 U483 ( .A(n373), .B(n374), .Z(n363));
AN2 U484 ( .A(n323), .B(pi02), .Z(n373));
AN2 U485 ( .A(n505), .B(n438), .Z(n515));
OR2 U486 ( .A(n453), .B(n319), .Z(n438));
IV2 U487 ( .A(n518), .Z(n303));
OR2 U488 ( .A(n519), .B(n520), .Z(n518));
OR2 U489 ( .A(pi08), .B(n521), .Z(n520));
OR2 U490 ( .A(pi10), .B(n522), .Z(n519));
OR2 U491 ( .A(pi12), .B(pi11), .Z(n522));
AN2 U492 ( .A(n523), .B(n524), .Z(n494));
OR2 U493 ( .A(n525), .B(n526), .Z(n524));
AN2 U494 ( .A(n527), .B(n528), .Z(n526));
OR2 U495 ( .A(n529), .B(n530), .Z(n528));
AN2 U496 ( .A(n531), .B(n351), .Z(n530));
AN2 U497 ( .A(n358), .B(n453), .Z(n531));
OR2 U498 ( .A(n532), .B(n374), .Z(n358));
AN2 U499 ( .A(n506), .B(n323), .Z(n532));
AN2 U500 ( .A(n517), .B(n533), .Z(n529));
AN2 U501 ( .A(n421), .B(n534), .Z(n533));
IV2 U502 ( .A(pi14), .Z(n421));
AN2 U503 ( .A(n420), .B(n506), .Z(n517));
OR2 U504 ( .A(pi02), .B(n346), .Z(n506));
AN2 U505 ( .A(n323), .B(n319), .Z(n420));
AN2 U506 ( .A(n369), .B(n413), .Z(n527));
OR2 U507 ( .A(n320), .B(n508), .Z(n369));
AN2 U508 ( .A(n535), .B(n536), .Z(n525));
AN2 U509 ( .A(n313), .B(n351), .Z(n536));
IV2 U510 ( .A(n521), .Z(n351));
AN2 U511 ( .A(pi00), .B(pi14), .Z(n521));
OR2 U512 ( .A(n537), .B(n453), .Z(n313));
IV2 U513 ( .A(pi13), .Z(n453));
AN2 U514 ( .A(n319), .B(n534), .Z(n537));
IV2 U515 ( .A(pi37), .Z(n534));
IV2 U516 ( .A(pi03), .Z(n319));
AN2 U517 ( .A(n505), .B(n538), .Z(n535));
OR2 U518 ( .A(n539), .B(n320), .Z(n538));
IV2 U519 ( .A(pi19), .Z(n320));
AN2 U520 ( .A(n540), .B(n508), .Z(n539));
IV2 U521 ( .A(pi23), .Z(n508));
IV2 U522 ( .A(pi08), .Z(n540));
AN2 U523 ( .A(n541), .B(n286), .Z(n505));
AN2 U524 ( .A(n346), .B(n323), .Z(n286));
IV2 U525 ( .A(pi27), .Z(n541));
AN2 U526 ( .A(n370), .B(n352), .Z(n523));
IV2 U527 ( .A(pi36), .Z(n352));
OR2 U528 ( .A(n350), .B(n479), .Z(n370));
IV2 U529 ( .A(pi21), .Z(n479));
IV2 U530 ( .A(pi20), .Z(n350));
IV2 U531 ( .A(n542), .Z(n384));
OR2 U532 ( .A(n543), .B(n544), .Z(n542));
OR2 U533 ( .A(pi29), .B(pi22), .Z(n544));
OR2 U534 ( .A(pi34), .B(pi33), .Z(n543));
AN2 U535 ( .A(n440), .B(n545), .Z(n444));
OR2 U536 ( .A(n546), .B(n483), .Z(n545));
OR2 U537 ( .A(n547), .B(n548), .Z(n483));
AN2 U538 ( .A(pi28), .B(pi35), .Z(n548));
AN2 U539 ( .A(pi26), .B(n485), .Z(n547));
IV2 U540 ( .A(n481), .Z(n485));
AN2 U541 ( .A(n549), .B(n481), .Z(n546));
OR2 U542 ( .A(pi27), .B(n413), .Z(n481));
IV2 U543 ( .A(pi35), .Z(n413));
OR2 U544 ( .A(n365), .B(n300), .Z(n549));
AN2 U545 ( .A(pi01), .B(pi31), .Z(n300));
AN2 U546 ( .A(pi01), .B(pi21), .Z(n365));
AN2 U547 ( .A(n456), .B(n550), .Z(n440));
AN2 U548 ( .A(n281), .B(n551), .Z(n550));
OR2 U549 ( .A(n374), .B(n552), .Z(n551));
AN2 U550 ( .A(n323), .B(n451), .Z(n552));
OR2 U551 ( .A(n553), .B(n554), .Z(n451));
AN2 U552 ( .A(n555), .B(n346), .Z(n554));
IV2 U553 ( .A(pi32), .Z(n346));
AN2 U554 ( .A(pi02), .B(n455), .Z(n553));
IV2 U555 ( .A(pi29), .Z(n455));
IV2 U556 ( .A(pi30), .Z(n323));
AN2 U557 ( .A(n555), .B(pi03), .Z(n374));
IV2 U558 ( .A(pi02), .Z(n555));
IV2 U559 ( .A(pi34), .Z(n281));
IV2 U560 ( .A(n292), .Z(n456));
OR2 U561 ( .A(pi00), .B(n556), .Z(n292));
OR2 U562 ( .A(pi37), .B(pi36), .Z(n556));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog too_large.v
techmap
flatten
select too_large_lev2
glift -optimize-precise
techmap
opt
rename too_large_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog too_large.v
techmap
flatten
select too_large_lev2
glift -create-precise
techmap
opt
rename too_large_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution too_large.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file too_large.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

220
examples/smtbmc/glift/ttt2.v Executable file
View File

@ -0,0 +1,220 @@
module ttt2_lev2(pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, po00, po01, po02, po03, po04, po05,
po06, po07, po08, po09, po10, po11, po12, po13, po14, po15,
po16, po17, po18, po19, po20);
input pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23;
output po00, po01, po02, po03, po04, po05, po06, po07, po08, po09,
po10, po11, po12, po13, po14, po15, po16, po17, po18, po19,
po20;
wire 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;
AN2 U168 ( .A(n148), .B(n149), .Z(po20));
OR2 U169 ( .A(n150), .B(n151), .Z(n148));
AN2 U170 ( .A(pi02), .B(n152), .Z(n151));
IV2 U171 ( .A(n153), .Z(n150));
OR2 U172 ( .A(n152), .B(pi02), .Z(n153));
IV2 U173 ( .A(pi23), .Z(n152));
AN2 U174 ( .A(n154), .B(n149), .Z(po19));
OR2 U175 ( .A(n155), .B(n156), .Z(n154));
AN2 U176 ( .A(pi01), .B(n157), .Z(n156));
AN2 U177 ( .A(pi22), .B(n158), .Z(n155));
IV2 U178 ( .A(pi01), .Z(n158));
AN2 U179 ( .A(n159), .B(n149), .Z(po18));
OR2 U180 ( .A(n160), .B(n161), .Z(po17));
AN2 U181 ( .A(pi20), .B(n162), .Z(n161));
OR2 U182 ( .A(n163), .B(n164), .Z(n162));
OR2 U183 ( .A(n165), .B(n166), .Z(n164));
AN2 U184 ( .A(n167), .B(pi18), .Z(n166));
AN2 U185 ( .A(n149), .B(n168), .Z(n167));
AN2 U186 ( .A(n169), .B(n170), .Z(n160));
AN2 U187 ( .A(n171), .B(n172), .Z(n169));
OR2 U188 ( .A(n165), .B(n173), .Z(po16));
OR2 U189 ( .A(n174), .B(n175), .Z(n173));
AN2 U190 ( .A(n176), .B(n168), .Z(n175));
AN2 U191 ( .A(n170), .B(n171), .Z(n176));
AN2 U192 ( .A(pi19), .B(n163), .Z(n174));
AN2 U193 ( .A(pi19), .B(n177), .Z(n165));
AN2 U194 ( .A(n178), .B(n149), .Z(n177));
OR2 U195 ( .A(n179), .B(n180), .Z(po15));
AN2 U196 ( .A(n181), .B(n178), .Z(n180));
AN2 U197 ( .A(n182), .B(n170), .Z(n181));
AN2 U198 ( .A(pi17), .B(n183), .Z(n182));
OR2 U199 ( .A(pi19), .B(n184), .Z(n183));
AN2 U200 ( .A(pi18), .B(n163), .Z(n179));
OR2 U201 ( .A(n185), .B(n186), .Z(n163));
AN2 U202 ( .A(n149), .B(n187), .Z(n185));
OR2 U203 ( .A(n188), .B(n189), .Z(po14));
AN2 U204 ( .A(pi17), .B(n186), .Z(n189));
OR2 U205 ( .A(n190), .B(n191), .Z(n186));
AN2 U206 ( .A(n192), .B(n149), .Z(n190));
OR2 U207 ( .A(pi14), .B(n193), .Z(n192));
AN2 U208 ( .A(n170), .B(n187), .Z(n188));
AN2 U209 ( .A(n194), .B(n195), .Z(n170));
AN2 U210 ( .A(n196), .B(n197), .Z(n195));
OR2 U211 ( .A(n198), .B(n199), .Z(po13));
AN2 U212 ( .A(pi16), .B(n200), .Z(n199));
OR2 U213 ( .A(n201), .B(n191), .Z(n200));
AN2 U214 ( .A(n202), .B(pi14), .Z(n198));
AN2 U215 ( .A(n203), .B(n149), .Z(n202));
OR2 U216 ( .A(n204), .B(n197), .Z(n203));
IV2 U217 ( .A(n193), .Z(n197));
AN2 U218 ( .A(n205), .B(n206), .Z(n204));
AN2 U219 ( .A(n207), .B(n208), .Z(n206));
AN2 U220 ( .A(pi15), .B(pi13), .Z(n205));
OR2 U221 ( .A(n201), .B(n209), .Z(po12));
OR2 U222 ( .A(n210), .B(n211), .Z(n209));
AN2 U223 ( .A(n212), .B(n213), .Z(n211));
AN2 U224 ( .A(pi14), .B(n194), .Z(n212));
AN2 U225 ( .A(pi15), .B(n191), .Z(n210));
AN2 U226 ( .A(pi15), .B(n214), .Z(n201));
AN2 U227 ( .A(n196), .B(n149), .Z(n214));
OR2 U228 ( .A(n215), .B(n216), .Z(po11));
AN2 U229 ( .A(n217), .B(n196), .Z(n216));
IV2 U230 ( .A(pi14), .Z(n196));
AN2 U231 ( .A(n194), .B(n193), .Z(n217));
OR2 U232 ( .A(pi15), .B(n208), .Z(n193));
IV2 U233 ( .A(pi16), .Z(n208));
AN2 U234 ( .A(pi13), .B(n218), .Z(n194));
AN2 U235 ( .A(pi14), .B(n191), .Z(n215));
OR2 U236 ( .A(n219), .B(n220), .Z(n191));
AN2 U237 ( .A(n149), .B(n221), .Z(n220));
OR2 U238 ( .A(n222), .B(n223), .Z(po10));
AN2 U239 ( .A(n219), .B(pi13), .Z(n223));
AN2 U240 ( .A(n224), .B(n157), .Z(n219));
IV2 U241 ( .A(pi22), .Z(n157));
OR2 U242 ( .A(n225), .B(n226), .Z(n224));
OR2 U243 ( .A(po06), .B(n227), .Z(n226));
AN2 U244 ( .A(n218), .B(n221), .Z(n222));
IV2 U245 ( .A(pi13), .Z(n221));
AN2 U246 ( .A(n207), .B(n149), .Z(n218));
OR2 U247 ( .A(n228), .B(pi22), .Z(n207));
AN2 U248 ( .A(n229), .B(pi09), .Z(n228));
AN2 U249 ( .A(n230), .B(n231), .Z(n229));
OR2 U250 ( .A(n232), .B(n233), .Z(po09));
AN2 U251 ( .A(pi12), .B(n234), .Z(n233));
OR2 U252 ( .A(n235), .B(po06), .Z(n234));
AN2 U253 ( .A(n227), .B(n236), .Z(n232));
OR2 U254 ( .A(n237), .B(n230), .Z(n236));
AN2 U255 ( .A(n238), .B(pi11), .Z(n237));
AN2 U256 ( .A(pi09), .B(n239), .Z(n238));
IV2 U257 ( .A(pi12), .Z(n239));
OR2 U258 ( .A(n235), .B(n240), .Z(po08));
OR2 U259 ( .A(n241), .B(n242), .Z(n240));
AN2 U260 ( .A(po06), .B(pi11), .Z(n242));
AN2 U261 ( .A(n243), .B(n244), .Z(n241));
AN2 U262 ( .A(n227), .B(pi09), .Z(n243));
AN2 U263 ( .A(n149), .B(pi10), .Z(n227));
AN2 U264 ( .A(pi11), .B(n245), .Z(n235));
AN2 U265 ( .A(n231), .B(n149), .Z(n245));
OR2 U266 ( .A(n246), .B(n247), .Z(po07));
AN2 U267 ( .A(po06), .B(pi10), .Z(n247));
AN2 U268 ( .A(n248), .B(n231), .Z(n246));
IV2 U269 ( .A(pi10), .Z(n231));
AN2 U270 ( .A(n225), .B(pi09), .Z(n248));
AN2 U271 ( .A(n249), .B(n149), .Z(n225));
IV2 U272 ( .A(n230), .Z(n249));
AN2 U273 ( .A(n244), .B(pi12), .Z(n230));
IV2 U274 ( .A(pi11), .Z(n244));
AN2 U275 ( .A(n250), .B(n149), .Z(po06));
IV2 U276 ( .A(pi00), .Z(n149));
IV2 U277 ( .A(pi09), .Z(n250));
AN2 U278 ( .A(n251), .B(n252), .Z(po05));
OR2 U279 ( .A(n253), .B(n254), .Z(n251));
OR2 U280 ( .A(n255), .B(n256), .Z(n254));
AN2 U281 ( .A(n257), .B(n187), .Z(n255));
AN2 U282 ( .A(pi08), .B(n258), .Z(n253));
OR2 U283 ( .A(n259), .B(n260), .Z(po04));
AN2 U284 ( .A(pi07), .B(n261), .Z(n260));
AN2 U285 ( .A(n262), .B(n257), .Z(n259));
AN2 U286 ( .A(n171), .B(n252), .Z(n262));
AN2 U287 ( .A(pi17), .B(pi18), .Z(n171));
OR2 U288 ( .A(n263), .B(n264), .Z(po03));
OR2 U289 ( .A(n265), .B(n266), .Z(n264));
AN2 U290 ( .A(pi06), .B(n261), .Z(n266));
AN2 U291 ( .A(n267), .B(n213), .Z(n265));
OR2 U292 ( .A(n172), .B(pi21), .Z(n267));
OR2 U293 ( .A(n268), .B(n269), .Z(n263));
OR2 U294 ( .A(n270), .B(n269), .Z(po02));
IV2 U295 ( .A(n271), .Z(n269));
OR2 U296 ( .A(n272), .B(n273), .Z(n271));
AN2 U297 ( .A(n274), .B(n275), .Z(n272));
OR2 U298 ( .A(n187), .B(n276), .Z(n275));
OR2 U299 ( .A(pi21), .B(n277), .Z(n274));
AN2 U300 ( .A(pi05), .B(n261), .Z(n270));
OR2 U301 ( .A(n278), .B(n279), .Z(po01));
OR2 U302 ( .A(n268), .B(n280), .Z(n279));
AN2 U303 ( .A(pi04), .B(n261), .Z(n280));
AN2 U304 ( .A(n252), .B(n258), .Z(n261));
IV2 U305 ( .A(n281), .Z(n268));
OR2 U306 ( .A(n282), .B(n283), .Z(n281));
OR2 U307 ( .A(n184), .B(n284), .Z(n283));
OR2 U308 ( .A(pi21), .B(pi17), .Z(n282));
AN2 U309 ( .A(n159), .B(n213), .Z(n278));
IV2 U310 ( .A(pi15), .Z(n213));
OR2 U311 ( .A(n285), .B(n286), .Z(n159));
AN2 U312 ( .A(pi21), .B(n287), .Z(n286));
OR2 U313 ( .A(n276), .B(n288), .Z(n287));
OR2 U314 ( .A(n273), .B(n187), .Z(n288));
OR2 U315 ( .A(pi23), .B(pi18), .Z(n276));
AN2 U316 ( .A(n172), .B(n277), .Z(n285));
AN2 U317 ( .A(pi23), .B(n289), .Z(n277));
AN2 U318 ( .A(n178), .B(n187), .Z(n289));
IV2 U319 ( .A(pi17), .Z(n187));
IV2 U320 ( .A(pi18), .Z(n178));
IV2 U321 ( .A(n273), .Z(n172));
OR2 U322 ( .A(pi20), .B(n168), .Z(n273));
AN2 U323 ( .A(n290), .B(n252), .Z(po00));
IV2 U324 ( .A(pi21), .Z(n252));
OR2 U325 ( .A(n256), .B(n291), .Z(n290));
OR2 U326 ( .A(n257), .B(n292), .Z(n291));
AN2 U327 ( .A(pi03), .B(n258), .Z(n292));
AN2 U328 ( .A(n284), .B(pi20), .Z(n258));
AN2 U329 ( .A(n184), .B(n168), .Z(n257));
IV2 U330 ( .A(pi19), .Z(n168));
IV2 U331 ( .A(pi20), .Z(n184));
AN2 U332 ( .A(n293), .B(pi17), .Z(n256));
IV2 U333 ( .A(n284), .Z(n293));
OR2 U334 ( .A(pi18), .B(pi19), .Z(n284));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog ttt2.v
techmap
flatten
select ttt2_lev2
glift -optimize-precise
techmap
opt
rename ttt2_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog ttt2.v
techmap
flatten
select ttt2_lev2
glift -create-precise
techmap
opt
rename ttt2_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution ttt2.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file ttt2.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell

380
examples/smtbmc/glift/x1.v Executable file
View File

@ -0,0 +1,380 @@
module x1_lev2(pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, pi24, pi25, pi26, pi27, pi28, pi29,
pi30, pi31, pi32, pi33, pi34, pi35, pi36, pi37, pi38, pi39,
pi40, pi41, pi42, pi43, pi44, pi45, pi46, pi47, pi48, pi49,
pi50, po00, po01, po02, po03, po04, po05, po06, po07, po08,
po09, po10, po11, po12, po13, po14, po15, po16, po17, po18,
po19, po20, po21, po22, po23, po24, po25, po26, po27, po28,
po29, po30, po31, po32, po33, po34);
input pi00, pi01, pi02, pi03, pi04, pi05, pi06, pi07, pi08, pi09,
pi10, pi11, pi12, pi13, pi14, pi15, pi16, pi17, pi18, pi19,
pi20, pi21, pi22, pi23, pi24, pi25, pi26, pi27, pi28, pi29,
pi30, pi31, pi32, pi33, pi34, pi35, pi36, pi37, pi38, pi39,
pi40, pi41, pi42, pi43, pi44, pi45, pi46, pi47, pi48, pi49,
pi50;
output po00, po01, po02, po03, po04, po05, po06, po07, po08, po09,
po10, po11, po12, po13, po14, po15, po16, po17, po18, po19,
po20, po21, po22, po23, po24, po25, po26, po27, po28, po29,
po30, po31, po32, po33, po34;
wire po05, po16, po18, po24, po25, po28, po29, 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;
assign po05 = pi32;
assign po16 = pi37;
assign po18 = pi38;
assign po24 = pi23;
assign po25 = pi24;
assign po28 = pi48;
assign po29 = pi49;
IV2 U294 ( .A(po32), .Z(po33));
OR2 U295 ( .A(n270), .B(n271), .Z(po32));
OR2 U296 ( .A(po25), .B(po05), .Z(n271));
AN2 U297 ( .A(n272), .B(n273), .Z(n270));
OR2 U298 ( .A(pi31), .B(po01), .Z(n273));
AN2 U299 ( .A(n274), .B(pi18), .Z(po31));
AN2 U300 ( .A(pi17), .B(n275), .Z(n274));
AN2 U301 ( .A(n276), .B(n272), .Z(po30));
OR2 U302 ( .A(n277), .B(n278), .Z(n276));
AN2 U303 ( .A(n279), .B(n280), .Z(n278));
OR2 U304 ( .A(n281), .B(pi31), .Z(n280));
AN2 U305 ( .A(pi35), .B(n282), .Z(n281));
AN2 U306 ( .A(n283), .B(n284), .Z(n277));
OR2 U307 ( .A(n285), .B(n286), .Z(n284));
AN2 U308 ( .A(pi31), .B(n287), .Z(n286));
IV2 U309 ( .A(pi05), .Z(n287));
AN2 U310 ( .A(n288), .B(pi35), .Z(n285));
AN2 U311 ( .A(pi21), .B(pi13), .Z(n288));
AN2 U312 ( .A(pi07), .B(n289), .Z(po27));
OR2 U313 ( .A(n290), .B(n291), .Z(po26));
OR2 U314 ( .A(n292), .B(n293), .Z(n291));
AN2 U315 ( .A(n294), .B(n295), .Z(n293));
AN2 U316 ( .A(n296), .B(n297), .Z(n295));
AN2 U317 ( .A(pi33), .B(n298), .Z(n294));
IV2 U318 ( .A(n299), .Z(n298));
AN2 U319 ( .A(pi19), .B(pi00), .Z(n299));
AN2 U320 ( .A(n300), .B(n301), .Z(n292));
AN2 U321 ( .A(n302), .B(n303), .Z(n301));
OR2 U322 ( .A(n304), .B(pi35), .Z(n303));
AN2 U323 ( .A(n305), .B(pi25), .Z(n304));
AN2 U324 ( .A(pi11), .B(n306), .Z(n305));
AN2 U325 ( .A(n272), .B(n307), .Z(n302));
AN2 U326 ( .A(n308), .B(pi01), .Z(n300));
AN2 U327 ( .A(n279), .B(pi17), .Z(n308));
AN2 U328 ( .A(pi34), .B(n309), .Z(n290));
OR2 U329 ( .A(n310), .B(n311), .Z(po23));
AN2 U330 ( .A(n312), .B(n313), .Z(n310));
OR2 U331 ( .A(n314), .B(n315), .Z(po22));
AN2 U332 ( .A(n316), .B(n317), .Z(n315));
AN2 U333 ( .A(n318), .B(n319), .Z(n317));
OR2 U334 ( .A(n320), .B(n272), .Z(n319));
AN2 U335 ( .A(n321), .B(n322), .Z(n320));
IV2 U336 ( .A(pi02), .Z(n322));
AN2 U337 ( .A(n296), .B(n323), .Z(n321));
OR2 U338 ( .A(pi09), .B(n324), .Z(n318));
AN2 U339 ( .A(pi05), .B(pi21), .Z(n324));
AN2 U340 ( .A(pi31), .B(n309), .Z(n316));
AN2 U341 ( .A(n325), .B(n326), .Z(n314));
AN2 U342 ( .A(n283), .B(n327), .Z(n325));
OR2 U343 ( .A(n328), .B(n329), .Z(n327));
OR2 U344 ( .A(n330), .B(n331), .Z(n329));
OR2 U345 ( .A(n332), .B(n333), .Z(n331));
AN2 U346 ( .A(po05), .B(n272), .Z(n333));
AN2 U347 ( .A(pi43), .B(n296), .Z(n332));
AN2 U348 ( .A(pi47), .B(pi39), .Z(n330));
OR2 U349 ( .A(n334), .B(n335), .Z(n328));
OR2 U350 ( .A(n336), .B(n337), .Z(n335));
AN2 U351 ( .A(n338), .B(pi40), .Z(n337));
AN2 U352 ( .A(n339), .B(n340), .Z(n338));
AN2 U353 ( .A(n341), .B(n342), .Z(n336));
AN2 U354 ( .A(n343), .B(n344), .Z(n342));
AN2 U355 ( .A(n345), .B(pi41), .Z(n341));
AN2 U356 ( .A(pi29), .B(n346), .Z(n334));
OR2 U357 ( .A(n347), .B(n348), .Z(po21));
AN2 U358 ( .A(pi09), .B(po05), .Z(n348));
AN2 U359 ( .A(n349), .B(n350), .Z(n347));
AN2 U360 ( .A(n346), .B(n279), .Z(n350));
AN2 U361 ( .A(n351), .B(n326), .Z(n349));
OR2 U362 ( .A(n352), .B(n353), .Z(po20));
OR2 U363 ( .A(n354), .B(n355), .Z(n353));
AN2 U364 ( .A(pi22), .B(po05), .Z(n355));
AN2 U365 ( .A(n356), .B(n357), .Z(n354));
OR2 U366 ( .A(n358), .B(n359), .Z(n356));
OR2 U367 ( .A(po05), .B(n360), .Z(n359));
AN2 U368 ( .A(n361), .B(n362), .Z(n360));
OR2 U369 ( .A(n363), .B(n364), .Z(n362));
AN2 U370 ( .A(n346), .B(n365), .Z(n364));
AN2 U371 ( .A(n366), .B(pi14), .Z(n346));
AN2 U372 ( .A(n367), .B(n343), .Z(n363));
OR2 U373 ( .A(n368), .B(n365), .Z(n367));
OR2 U374 ( .A(n351), .B(pi29), .Z(n365));
AN2 U375 ( .A(pi28), .B(n345), .Z(n368));
AN2 U376 ( .A(n309), .B(n369), .Z(n361));
AN2 U377 ( .A(pi07), .B(n370), .Z(n358));
OR2 U378 ( .A(pi28), .B(pi29), .Z(n370));
OR2 U379 ( .A(n371), .B(n372), .Z(n352));
AN2 U380 ( .A(pi01), .B(n373), .Z(n372));
OR2 U381 ( .A(n374), .B(pi30), .Z(n373));
AN2 U382 ( .A(pi10), .B(pi25), .Z(n374));
AN2 U383 ( .A(n375), .B(n376), .Z(n371));
OR2 U384 ( .A(pi40), .B(pi41), .Z(n376));
OR2 U385 ( .A(n377), .B(n378), .Z(po19));
OR2 U386 ( .A(n379), .B(n380), .Z(n378));
AN2 U387 ( .A(pi42), .B(pi01), .Z(n380));
AN2 U388 ( .A(pi12), .B(n381), .Z(n379));
OR2 U389 ( .A(n382), .B(n383), .Z(n381));
OR2 U390 ( .A(n384), .B(n385), .Z(n383));
AN2 U391 ( .A(n386), .B(n369), .Z(n384));
OR2 U392 ( .A(po34), .B(n387), .Z(n386));
OR2 U393 ( .A(pi40), .B(pi26), .Z(n387));
OR2 U394 ( .A(pi27), .B(pi28), .Z(po34));
OR2 U395 ( .A(pi31), .B(pi29), .Z(n382));
OR2 U396 ( .A(n388), .B(n389), .Z(n377));
OR2 U397 ( .A(n390), .B(n391), .Z(n389));
AN2 U398 ( .A(n392), .B(pi18), .Z(n391));
AN2 U399 ( .A(pi17), .B(n393), .Z(n392));
OR2 U400 ( .A(pi36), .B(pi40), .Z(n393));
AN2 U401 ( .A(n394), .B(pi22), .Z(n390));
AN2 U402 ( .A(n351), .B(n369), .Z(n394));
AN2 U403 ( .A(pi00), .B(n395), .Z(n388));
OR2 U404 ( .A(n396), .B(n397), .Z(n395));
OR2 U405 ( .A(n385), .B(n398), .Z(n397));
OR2 U406 ( .A(n399), .B(n400), .Z(n398));
AN2 U407 ( .A(pi31), .B(n272), .Z(n399));
OR2 U408 ( .A(n401), .B(n402), .Z(n385));
OR2 U409 ( .A(pi41), .B(pi35), .Z(n402));
OR2 U410 ( .A(po05), .B(pi43), .Z(n401));
OR2 U411 ( .A(n403), .B(n404), .Z(n396));
OR2 U412 ( .A(pi25), .B(n289), .Z(n404));
OR2 U413 ( .A(pi34), .B(pi28), .Z(n403));
IV2 U414 ( .A(po17), .Z(po15));
OR2 U415 ( .A(n405), .B(n406), .Z(po17));
OR2 U416 ( .A(n407), .B(n408), .Z(n406));
OR2 U417 ( .A(n409), .B(n410), .Z(n408));
AN2 U418 ( .A(pi28), .B(n411), .Z(n410));
OR2 U419 ( .A(pi03), .B(n296), .Z(n411));
AN2 U420 ( .A(n412), .B(n413), .Z(n409));
OR2 U421 ( .A(n414), .B(n415), .Z(n413));
AN2 U422 ( .A(pi02), .B(pi31), .Z(n415));
AN2 U423 ( .A(n416), .B(n417), .Z(n414));
AN2 U424 ( .A(n418), .B(n309), .Z(n416));
OR2 U425 ( .A(pi25), .B(n272), .Z(n418));
OR2 U426 ( .A(pi09), .B(n419), .Z(n412));
AN2 U427 ( .A(n420), .B(n421), .Z(n419));
AN2 U428 ( .A(n275), .B(n309), .Z(n421));
OR2 U429 ( .A(pi25), .B(pi35), .Z(n275));
AN2 U430 ( .A(n417), .B(pi21), .Z(n420));
OR2 U431 ( .A(pi26), .B(n313), .Z(n407));
AN2 U432 ( .A(pi33), .B(pi08), .Z(n313));
OR2 U433 ( .A(n422), .B(n423), .Z(n405));
OR2 U434 ( .A(po05), .B(pi27), .Z(n423));
AN2 U435 ( .A(n424), .B(n425), .Z(po14));
AN2 U436 ( .A(n426), .B(n309), .Z(n425));
OR2 U437 ( .A(n427), .B(n428), .Z(n426));
OR2 U438 ( .A(n429), .B(n430), .Z(n428));
AN2 U439 ( .A(pi29), .B(n431), .Z(n430));
OR2 U440 ( .A(pi43), .B(pi40), .Z(n427));
AN2 U441 ( .A(n326), .B(pi07), .Z(n424));
OR2 U442 ( .A(n432), .B(n433), .Z(po12));
OR2 U443 ( .A(n434), .B(n435), .Z(n433));
AN2 U444 ( .A(pi28), .B(n436), .Z(n435));
OR2 U445 ( .A(n437), .B(pi21), .Z(n436));
AN2 U446 ( .A(n438), .B(pi14), .Z(n437));
AN2 U447 ( .A(n439), .B(n323), .Z(n438));
OR2 U448 ( .A(n440), .B(n441), .Z(n439));
IV2 U449 ( .A(n442), .Z(n441));
AN2 U450 ( .A(n443), .B(pi15), .Z(n440));
AN2 U451 ( .A(n444), .B(n445), .Z(n434));
AN2 U452 ( .A(n446), .B(n312), .Z(n445));
AN2 U453 ( .A(n447), .B(n448), .Z(n446));
OR2 U454 ( .A(n282), .B(n307), .Z(n447));
IV2 U455 ( .A(pi18), .Z(n307));
AN2 U456 ( .A(n449), .B(pi40), .Z(n444));
AN2 U457 ( .A(n450), .B(n451), .Z(n449));
OR2 U458 ( .A(n339), .B(n297), .Z(n451));
IV2 U459 ( .A(n452), .Z(n450));
AN2 U460 ( .A(n453), .B(n339), .Z(n452));
OR2 U461 ( .A(n340), .B(pi12), .Z(n453));
AN2 U462 ( .A(pi02), .B(pi03), .Z(n340));
AN2 U463 ( .A(pi46), .B(pi39), .Z(n432));
IV2 U464 ( .A(po13), .Z(po11));
OR2 U465 ( .A(n454), .B(n455), .Z(po13));
OR2 U466 ( .A(n456), .B(n457), .Z(n455));
AN2 U467 ( .A(pi25), .B(n458), .Z(n457));
OR2 U468 ( .A(n459), .B(n460), .Z(n458));
OR2 U469 ( .A(n461), .B(n462), .Z(n460));
AN2 U470 ( .A(n463), .B(n464), .Z(n461));
OR2 U471 ( .A(n282), .B(n465), .Z(n464));
OR2 U472 ( .A(pi12), .B(pi09), .Z(n465));
IV2 U473 ( .A(pi50), .Z(n463));
AN2 U474 ( .A(pi07), .B(n466), .Z(n456));
OR2 U475 ( .A(n467), .B(n468), .Z(n466));
OR2 U476 ( .A(n469), .B(n429), .Z(n468));
AN2 U477 ( .A(pi28), .B(n470), .Z(n429));
AN2 U478 ( .A(n400), .B(n471), .Z(n469));
OR2 U479 ( .A(pi40), .B(n431), .Z(n471));
OR2 U480 ( .A(pi43), .B(n289), .Z(n467));
AN2 U481 ( .A(pi19), .B(pi33), .Z(n289));
OR2 U482 ( .A(po01), .B(n472), .Z(n454));
OR2 U483 ( .A(po28), .B(po16), .Z(n472));
OR2 U484 ( .A(n473), .B(n474), .Z(po10));
AN2 U485 ( .A(n475), .B(pi41), .Z(n474));
AN2 U486 ( .A(n476), .B(n477), .Z(n475));
OR2 U487 ( .A(n297), .B(n343), .Z(n476));
AN2 U488 ( .A(n478), .B(n479), .Z(n473));
AN2 U489 ( .A(n283), .B(n296), .Z(n479));
AN2 U490 ( .A(pi29), .B(n345), .Z(n478));
IV2 U491 ( .A(n480), .Z(n345));
IV2 U492 ( .A(po07), .Z(po09));
OR2 U493 ( .A(n481), .B(n482), .Z(po08));
AN2 U494 ( .A(pi45), .B(pi39), .Z(n482));
AN2 U495 ( .A(n483), .B(n484), .Z(n481));
OR2 U496 ( .A(n485), .B(n486), .Z(n484));
AN2 U497 ( .A(pi29), .B(n312), .Z(n486));
AN2 U498 ( .A(n296), .B(n309), .Z(n312));
AN2 U499 ( .A(n351), .B(n487), .Z(n485));
OR2 U500 ( .A(n488), .B(n326), .Z(n487));
AN2 U501 ( .A(pi06), .B(n357), .Z(n488));
AN2 U502 ( .A(pi03), .B(pi28), .Z(n351));
AN2 U503 ( .A(n323), .B(n431), .Z(n483));
OR2 U504 ( .A(n489), .B(n490), .Z(po07));
OR2 U505 ( .A(pi33), .B(n311), .Z(n490));
IV2 U506 ( .A(n491), .Z(n311));
OR2 U507 ( .A(n492), .B(n493), .Z(n491));
OR2 U508 ( .A(n494), .B(n297), .Z(n493));
IV2 U509 ( .A(pi08), .Z(n297));
AN2 U510 ( .A(n375), .B(n369), .Z(n494));
IV2 U511 ( .A(n448), .Z(n375));
OR2 U512 ( .A(n477), .B(n366), .Z(n448));
OR2 U513 ( .A(n431), .B(n344), .Z(n477));
IV2 U514 ( .A(pi16), .Z(n344));
OR2 U515 ( .A(n495), .B(n496), .Z(n492));
OR2 U516 ( .A(pi00), .B(n339), .Z(n496));
AN2 U517 ( .A(n369), .B(n343), .Z(n339));
IV2 U518 ( .A(n497), .Z(n495));
OR2 U519 ( .A(n498), .B(pi40), .Z(n497));
AN2 U520 ( .A(n369), .B(pi41), .Z(n498));
OR2 U521 ( .A(po05), .B(n422), .Z(n489));
OR2 U522 ( .A(po25), .B(po24), .Z(n422));
OR2 U523 ( .A(n499), .B(n500), .Z(po06));
AN2 U524 ( .A(pi27), .B(n501), .Z(n500));
AN2 U525 ( .A(n502), .B(n503), .Z(n499));
AN2 U526 ( .A(n504), .B(n480), .Z(n503));
OR2 U527 ( .A(n431), .B(n366), .Z(n480));
IV2 U528 ( .A(pi14), .Z(n431));
AN2 U529 ( .A(n470), .B(n296), .Z(n504));
IV2 U530 ( .A(pi07), .Z(n296));
IV2 U531 ( .A(pi03), .Z(n470));
AN2 U532 ( .A(pi28), .B(n279), .Z(n502));
AN2 U533 ( .A(pi26), .B(n501), .Z(po04));
OR2 U534 ( .A(pi21), .B(n323), .Z(n501));
AN2 U535 ( .A(n505), .B(n506), .Z(po03));
AN2 U536 ( .A(n507), .B(n279), .Z(n506));
AN2 U537 ( .A(n369), .B(n283), .Z(n279));
IV2 U538 ( .A(pi21), .Z(n369));
AN2 U539 ( .A(n442), .B(n400), .Z(n507));
OR2 U540 ( .A(pi29), .B(pi40), .Z(n400));
OR2 U541 ( .A(n366), .B(n343), .Z(n442));
IV2 U542 ( .A(pi06), .Z(n343));
IV2 U543 ( .A(pi15), .Z(n366));
AN2 U544 ( .A(n326), .B(pi14), .Z(n505));
AN2 U545 ( .A(n508), .B(n443), .Z(n326));
IV2 U546 ( .A(n357), .Z(n443));
OR2 U547 ( .A(pi04), .B(pi20), .Z(n357));
OR2 U548 ( .A(n509), .B(n510), .Z(po02));
OR2 U549 ( .A(n511), .B(n512), .Z(n510));
AN2 U550 ( .A(pi44), .B(pi39), .Z(n512));
AN2 U551 ( .A(n513), .B(n514), .Z(n511));
AN2 U552 ( .A(n515), .B(n516), .Z(n514));
AN2 U553 ( .A(n309), .B(n306), .Z(n515));
IV2 U554 ( .A(pi10), .Z(n306));
AN2 U555 ( .A(n417), .B(pi25), .Z(n513));
IV2 U556 ( .A(n517), .Z(n417));
OR2 U557 ( .A(n518), .B(n519), .Z(n509));
AN2 U558 ( .A(n520), .B(pi09), .Z(n519));
AN2 U559 ( .A(n521), .B(pi02), .Z(n520));
AN2 U560 ( .A(pi31), .B(n508), .Z(n521));
IV2 U561 ( .A(pi22), .Z(n508));
AN2 U562 ( .A(n522), .B(n272), .Z(n518));
IV2 U563 ( .A(pi09), .Z(n272));
AN2 U564 ( .A(n523), .B(n524), .Z(n522));
AN2 U565 ( .A(n525), .B(pi35), .Z(n524));
AN2 U566 ( .A(pi21), .B(n526), .Z(n525));
IV2 U567 ( .A(pi13), .Z(n526));
AN2 U568 ( .A(pi01), .B(n283), .Z(n523));
AN2 U569 ( .A(n323), .B(n309), .Z(n283));
IV2 U570 ( .A(pi00), .Z(n309));
IV2 U571 ( .A(pi12), .Z(n323));
OR2 U572 ( .A(n527), .B(n528), .Z(po00));
AN2 U573 ( .A(po01), .B(n459), .Z(n528));
OR2 U574 ( .A(pi30), .B(pi42), .Z(po01));
AN2 U575 ( .A(pi25), .B(n529), .Z(n527));
OR2 U576 ( .A(n530), .B(n517), .Z(n529));
OR2 U577 ( .A(n531), .B(n532), .Z(n517));
OR2 U578 ( .A(n462), .B(n459), .Z(n532));
IV2 U579 ( .A(pi01), .Z(n459));
IV2 U580 ( .A(pi11), .Z(n462));
OR2 U581 ( .A(pi13), .B(pi12), .Z(n531));
AN2 U582 ( .A(n533), .B(n282), .Z(n530));
IV2 U583 ( .A(pi17), .Z(n282));
IV2 U584 ( .A(n516), .Z(n533));
OR2 U585 ( .A(pi09), .B(pi21), .Z(n516));
endmodule
module IV2(A, Z);
input A;
output Z;
assign Z = ~A;
endmodule
module AN2(A, B, Z);
input A, B;
output Z;
assign Z = A & B;
endmodule
module OR2(A, B, Z);
input A, B;
output Z;
assign Z = A | B;
endmodule

View File

@ -0,0 +1,45 @@
read_verilog x1.v
techmap
flatten
select x1_lev2
glift -optimize-precise
techmap
opt
rename x1_lev2 uut
cd ..
delete [AIONX][NVXR]2
read_verilog x1.v
techmap
flatten
select x1_lev2
glift -create-precise
techmap
opt
rename x1_lev2 spec
cd ..
delete [AIONX][NVXR]2
design -push-copy
miter -equiv spec uut miter
flatten
delete uut spec
techmap
opt
stat miter
abc -script +print_stats;strash;print_stats;drwsat;print_stats;print_stats;fraig;print_stats;dc2,-l,-b;print_stats;irw,-l,-z;print_stats;refactor,-N,15,-z;print_stats;dch,-S,50000,-C,10000;print_stats;dc2,-l;print_stats;fraig,-C,10000;print_stats miter
techmap
opt
stat
qbfsat -dump-final-smt2 /tmp/test.smt2 -write-solution x1.soln -show-smtbmc -solver yices -timeout 3600 -nocleanup -assume-outputs -assume-negative-polarity -specialize miter
design -pop
stat
copy uut solved
qbfsat -specialize-from-file x1.soln solved
opt solved
miter -equiv spec solved satmiter
flatten
sat -prove trigger 0 satmiter
delete satmiter
stat
shell