diff --git a/benchmarks/c17/c17.v b/benchmarks/c17/c17.v new file mode 100644 index 0000000..5bee83f --- /dev/null +++ b/benchmarks/c17/c17.v @@ -0,0 +1,19 @@ +module c17 (N1,N2,N3,N6,N7,N22,N23); + +input N1,N2,N3,N6,N7; + +output N22,N23; + +wire N10,N11,N16,N19; + +nand NAND2_1 (N10, N1, N3); +nand NAND2_2 (N11, N3, N6); +nand NAND2_3 (N16, N2, N11); +nand NAND2_4 (N19, N11, N7); +nand NAND2_5 (N22, N10, N16); +nand NAND2_6 (N23, N16, N19); + +endmodule + + + diff --git a/benchmarks/c17/c17_aor_8bit.v b/benchmarks/c17/c17_aor_8bit.v new file mode 100644 index 0000000..d904e81 --- /dev/null +++ b/benchmarks/c17/c17_aor_8bit.v @@ -0,0 +1,44 @@ +// Verilog File +module c17_aor_8bit.bench (N1,N2,N3,N6,N7,keyinput0,keyinput1,keyinput2,keyinput3, +keyinput4,keyinput5,keyinput6,keyinput7,N22,N23); + +input N1,N2,N3,N6,N7,keyinput0,keyinput1,keyinput2,keyinput3, +keyinput4,keyinput5,keyinput6,keyinput7; + + +output N22, N23; + +wire n14, xenc3, xenc5, iw_1, iw_2, iw_3, n12, iw_4, iw_5, +n13, iw_6, xenc2, xenc0, n15, iw_9, n16, n17, n18, n19, +n20, xenc1, iw_0, xenc7, xenc6, iw_7, iw_8, xenc4; + +not g0(xenc3, n14); +and g1(N23, xenc5, iw_1); +and g2(n12, iw_2, iw_3); +and g3(n13, iw_4, iw_5); +and g4(n14, iw_6, xenc2); +and g5(n15, xenc5, xenc0); +and g6(n16, iw_2, iw_9); +not g7(n17, N3); +not g8(n18, N1); +not g9(n19, N2); +not g10(n20, N6); +not g11(iw_0, xenc1); +not g12(iw_1, xenc7); +not g13(iw_2, xenc6); +not g14(iw_3, n20); +not g15(iw_4, N2); +not g16(iw_5, N7); +not g17(iw_6, n15); +not g18(iw_7, n16); +not g19(iw_8, n19); +not g20(iw_9, xenc4); +and g21(xenc0, iw_8, keyinput0); +or g22(xenc1, n12, keyinput1); +or g23(xenc2, iw_7, keyinput2); +and g24(N22, xenc3, keyinput3); +or g25(xenc4, n18, keyinput4); +or g26(xenc5, iw_0, keyinput5); +or g27(xenc6, n17, keyinput6); +and g28(xenc7, n13, keyinput7); +endmodule diff --git a/benchmarks/c17/c17_lut_8bit.v b/benchmarks/c17/c17_lut_8bit.v new file mode 100644 index 0000000..50628b2 --- /dev/null +++ b/benchmarks/c17/c17_lut_8bit.v @@ -0,0 +1,48 @@ +// Verilog File +module c17_lut_8bit.bench (N1,N2,N3,N6,N7,keyinput0_1,keyinput0_0,keyinput1_0,keyinput2_0, +keyinput3_0,keyinput1_1,keyinput2_1,keyinput3_1,N22,N23); + +input N1,N2,N3,N6,N7,keyinput0_1,keyinput0_0,keyinput1_0,keyinput2_0, +keyinput3_0,keyinput1_1,keyinput2_1,keyinput3_1; + + +output N22, N23; + +wire n14, iw_0, iw_1, iw_2, iw_3, n12, iw_4, iw_5, n13, +iw_8, n15, n17, n18, n19, n20, iw_6, iw_9, iw_7, in0not_0, +in1not_0, T0_0, T1_0, T2_0, T3_0, in0not_1, in1not_1, T0_1, T1_1, T2_1, +T3_1; + +not g0(N22, n14); +and g1(N23, iw_0, iw_1); +and g2(n12, iw_2, iw_3); +and g3(n13, iw_4, iw_5); +and g4(n15, iw_0, iw_8); +not g5(n17, N3); +not g6(n18, N1); +not g7(n19, N2); +not g8(n20, N6); +not g9(iw_0, n12); +not g10(iw_1, n13); +not g11(iw_2, n17); +not g12(iw_3, n20); +not g13(iw_4, N2); +not g14(iw_5, N7); +not g15(iw_6, n15); +not g16(iw_8, n19); +not g17(iw_9, n18); +not g18(in0not_0, iw_7); +not g19(in1not_0, iw_6); +and g20(T0_0, keyinput0_0, in0not_0, in1not_0); +and g21(T1_0, keyinput1_0, iw_7, in1not_0); +and g22(T2_0, keyinput2_0, in0not_0, iw_6); +and g23(T3_0, keyinput3_0, iw_7, iw_6); +or g24(n14, T0_0, T1_0, T2_0, T3_0); +not g25(in0not_1, iw_9); +not g26(in1not_1, iw_2); +and g27(T0_1, keyinput0_1, in0not_1, in1not_1); +and g28(T1_1, keyinput1_1, iw_9, in1not_1); +and g29(T2_1, keyinput2_1, in0not_1, iw_2); +and g30(T3_1, keyinput3_1, iw_9, iw_2); +or g31(iw_7, T0_1, T1_1, T2_1, T3_1); +endmodule diff --git a/benchmarks/c17/c17_xor_8bit.v b/benchmarks/c17/c17_xor_8bit.v new file mode 100644 index 0000000..298538e --- /dev/null +++ b/benchmarks/c17/c17_xor_8bit.v @@ -0,0 +1,44 @@ +// Verilog File +module c17_xor_8bit.bench (N1,N2,N3,N6,N7,keyinput0,keyinput1,keyinput2,keyinput3, +keyinput4,keyinput5,keyinput6,keyinput7,N22,N23); + +input N1,N2,N3,N6,N7,keyinput0,keyinput1,keyinput2,keyinput3, +keyinput4,keyinput5,keyinput6,keyinput7; + + +output N22, N23; + +wire n14, xenc4, iw_0, xenc6, iw_2, iw_3, n12, xenc5, iw_5, +n13, xenc2, xenc7, xenc3, n15, iw_9, n16, n17, n18, n19, +n20, iw_1, xenc0, iw_4, xenc1, iw_6, iw_7, iw_8; + +not g0(xenc4, n14); +and g1(N23, iw_0, xenc6); +and g2(n12, iw_2, iw_3); +and g3(n13, xenc5, iw_5); +and g4(n14, xenc2, xenc7); +and g5(n15, iw_0, xenc3); +and g6(n16, iw_2, iw_9); +not g7(n17, N3); +not g8(n18, N1); +not g9(n19, N2); +not g10(n20, N6); +not g11(iw_0, n12); +not g12(iw_1, n13); +not g13(iw_2, xenc0); +not g14(iw_3, n20); +not g15(iw_4, N2); +not g16(iw_5, N7); +not g17(iw_6, xenc1); +not g18(iw_7, n16); +not g19(iw_8, n19); +not g20(iw_9, n18); +xor g21(xenc0, n17, keyinput0); +xor g22(xenc1, n15, keyinput1); +xor g23(xenc2, iw_6, keyinput2); +xnor g24(xenc3, iw_8, keyinput3); +xnor g25(N22, xenc4, keyinput4); +xnor g26(xenc5, iw_4, keyinput5); +xor g27(xenc6, iw_1, keyinput6); +xnor g28(xenc7, iw_7, keyinput7); +endmodule diff --git a/benchmarks/c1908/c1908.v b/benchmarks/c1908/c1908.v new file mode 100644 index 0000000..0a5e6ea --- /dev/null +++ b/benchmarks/c1908/c1908.v @@ -0,0 +1,986 @@ +// Verilog File +module c1908.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,G3,G6,G9,G12,G30,G45, +G48,G15,G18,G21,G24,G27,G33,G36,G39,G42, +G75,G51,G54,G60,G63,G66,G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +G1520, G1528, G1536, G1544, G1552, G1560, G1568, G1576, G1584, G1592, +G1600, G1608, G1616, G1624, G1632, G50, G52, G56, G58, G62, +G64, G251, G254, G288, G291, G299, G302, G318, G321, G327, +G330, G352, G355, G369, G382, G385, G853, G856, G893, G954, +G955, G1050, G1053, G1176, G1179, G1197, G1207, G1222, G1244, G1278, +G1290, G1300, G1312, G1332, G1335, G1442, G1450, G1458, G1466, G1474, +G1482, G1490, G1498, G1634, G1644, G1657, G1665, G1697, G1705, G1713, +G1721, G1745, G1753, G1785, G1793, G1814, G1817, G1830, G1833, G1841, +G1849, G1854, G1857, G1870, G1873, G1878, G1881, G1642, G1652, G1056, +G1057, G1182, G1183, G1211, G1298, G1320, G1338, G1339, G457, G459, +G482, G487, G492, G505, G1456, G1448, G1472, G1464, G1488, G1480, +G1504, G1496, G956, G967, G978, G979, G980, G1661, G990, G1669, +G1030, G1701, G1040, G1709, G1058, G1717, G1068, G1725, G1078, G1090, +G1100, G1749, G1112, G1757, G1154, G1789, G1166, G1797, G1194, G1201, +G1204, G1820, G1821, G1230, G1836, G1837, G1252, G1256, G1845, G1268, +G1853, G1860, G1861, G1286, G1876, G1877, G1308, G1884, G1885, G1654, +G1662, G1694, G1702, G1710, G1718, G1726, G1734, G1742, G1750, G1782, +G1790, G1838, G1846, G297, G298, G361, G362, G404, G405, G1225, +G1226, G1247, G1248, G1281, G1282, G1303, G1304, G1315, G1316, G998, +G988, G268, G1038, G1048, G1076, G1066, G1098, G1120, G1174, G363, +G1210, G373, G1276, G406, G565, G566, G614, G615, G958, G969, +G1660, G984, G1668, G994, G1700, G1034, G1708, G1044, G1716, G1062, +G1724, G1072, G1732, G1086, G1740, G1748, G1104, G1108, G1756, G1116, +G1788, G1158, G1162, G1796, G1170, G1200, G1203, G1227, G1249, G1844, +G1260, G1264, G1852, G1272, G1283, G1305, G1317, G1410, G1418, G1426, +G1434, G269, G372, G983, G993, G1033, G1043, G1061, G1071, G1103, +G1115, G1157, G1169, G1184, G1202, G1259, G1271, G1322, G374, G396, +G1321, G1424, G1416, G1440, G1432, G985, G995, G1035, G1045, G1063, +G1073, G1105, G1117, G1159, G1171, G1212, G1231, G1232, G1253, G1254, +G1261, G1273, G1287, G1288, G1309, G1310, G1192, G397, G1330, G1000, +G1010, G1233, G1255, G1289, G1311, G1381, G257, G999, G260, G989, +G272, G1039, G294, G1049, G305, G1077, G308, G1067, G333, G1121, +G358, G1175, G1220, G388, G1277, G398, G1109, G1110, G1163, G1164, +G1234, G1265, G1266, G1822, G1862, G1865, G258, G261, G273, G1018, +G1008, G295, G306, G309, G334, G359, G389, G1385, G1111, G1165, +G1267, G1886, G259, G262, G274, G296, G307, G310, G335, G360, +G1242, G390, G1828, G1868, G1869, G1373, G1798, G1825, G265, G314, +G336, G407, G1293, G1294, G1892, G1777, G1889, G410, G1377, G1804, +G1237, G1829, G1295, G1670, G1678, G1729, G1737, G1761, G1769, G340, +G343, G1781, G1238, G1325, G1893, G1340, G1352, G1673, G1681, G1801, +G1897, G1905, G391, G1299, G1676, G1684, G1081, G1733, G1093, G1741, +G1765, G1773, G1239, G1326, G1894, G1902, G392, G1360, G1003, G1677, +G1013, G1685, G1082, G1094, G1122, G1134, G1187, G1805, G1327, G1901, +G1348, G1909, G1758, G1766, G377, G1243, G393, G1004, G1014, G1083, +G1095, G1188, G1900, G1344, G1908, G1356, G1142, G378, G399, G1331, +G1005, G1015, G1764, G1126, G1130, G1772, G1138, G1189, G1343, G1355, +G324, G1099, G379, G400, G449, G1087, G1088, G1125, G1137, G1345, +G1357, G1397, G277, G1019, G280, G1009, G325, G364, G1193, G401, +G1089, G1127, G1139, G278, G281, G326, G365, G413, G1361, G1401, +G445, G1349, G1350, G1389, G1493, G1501, G1689, G279, G282, G346, +G1143, G366, G414, G453, G1131, G1132, G1351, G1365, G1405, G285, +G347, G367, G415, G1393, G556, G1505, G559, G1497, G1693, G1133, +G1477, G1485, G1809, G348, G1369, G1409, G557, G560, G1362, G1378, +G1429, G1437, G1686, G1774, G1910, G1918, G544, G1489, G547, G1481, +G558, G561, G1813, G1370, G1368, G417, G1384, G424, G508, G1441, +G511, G1433, G545, G548, G564, G1692, G1024, G1780, G1148, G1916, +G1924, G416, G1376, G421, G423, G509, G512, G546, G549, G719, +G722, G1023, G1147, G418, G420, G425, G510, G513, G552, G1025, +G1149, G419, G422, G441, G516, G725, G728, G1029, G1153, G433, +G437, G663, G666, G731, G746, G756, G770, G1461, G1469, G1413, +G1421, G1445, G1453, G532, G1473, G535, G1465, G495, G1425, G498, +G1417, G520, G1457, G523, G1449, G533, G536, G496, G499, G521, +G524, G534, G537, G497, G500, G522, G525, G540, G503, G528, +G669, G672, G569, G588, G618, G639, G867, G588a, G588b, G639a, +G639b, G675, G688, G696, G710, G73, G572, G573, G621, G622, +G776, G780, G784, G788, G812, G832, G836, G1509, G1517, G1525, +G1533, G1581, G1621, G1629, G792, G796, G800, G804, G808, G816, +G820, G824, G828, G871, G873, G875, G877, G879, G881, G883, +G885, G1541, G1549, G1557, G1565, G1573, G1589, G1597, G1605, G1613, +G1, G1513, G4, G1521, G7, G1529, G10, G1537, G28, G1585, +G43, G1625, G46, G1633, G886, G2, G5, G8, G11, G13, +G1545, G16, G1553, G19, G1561, G22, G1569, G25, G1577, G29, +G31, G1593, G34, G1601, G37, G1609, G40, G1617, G44, G47, +G857, G860, G863, G865, G14, G17, G20, G23, G26, G32, +G35, G38, G41, G1913, G1921, G887, G462, G74, G1637, G1917, +G1647, G1925, G1020, G1144, G1386, G1394, G1402, G1638, G1648, G1806, +G1639, G1649, G287, G350, G427, G429, G431, G1028, G1152, G1392, +G1400, G1408, G1812, G1216, G286, G349, G426, G428, G430, G67, +G1643, G70, G1653, G1215, G49, G53, G59, G61, G65, G68, +G71, G1217, G375, G1221, G376, G55; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, G1514); +not g60(G1528, G1522); +not g61(G1536, G1530); +not g62(G1544, G1538); +not g63(G1552, G1546); +not g64(G1560, G1554); +not g65(G1568, G1562); +not g66(G1576, G1570); +not g67(G1584, G1578); +not g68(G1592, G1586); +not g69(G1600, G1594); +not g70(G1608, G1602); +not g71(G1616, G1610); +not g72(G1624, G1618); +not g73(G1632, G1626); +nand g74(G50, G930, G947); +nand g75(G52, G930, G947); +nand g76(G56, G930, G947); +nand g77(G58, G930, G947); +nand g78(G62, G930, G947); +nand g79(G64, G930, G947); +assign G251 = G149; +assign G254 = G153; +assign G288 = G165; +assign G291 = G168; +assign G299 = G184; +assign G302 = G202; +and g86(G318, G224, G938); +assign G321 = G179; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, G938); +assign G355 = G198; +and g92(G369, G210, G241, G938); +assign G382 = G206; +assign G385 = G198; +nand g95(G853, G943, G907); +nand g96(G856, G943, G909); +nand g97(G893, G248, G237); +nand g98(G954, G248, G922); +nand g99(G955, G244, G922); +assign G1050 = G160; +assign G1053 = G175; +assign G1176 = G179; +assign G1179 = G198; +assign G1197 = G149; +assign G1207 = G149; +assign G1222 = G153; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, G245, G938); +assign G1300 = G191; +assign G1312 = G160; +assign G1332 = G194; +and g113(G1335, G221, G245, G938); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = G553; +assign G1498 = G553; +and g122(G1634, G231, G934); +and g123(G1644, G233, G934); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = G171; +assign G1705 = G171; +assign G1713 = G206; +assign G1721 = G206; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = G160; +assign G1793 = G160; +assign G1814 = G165; +assign G1817 = G175; +and g136(G1830, G214, G241, G938); +assign G1833 = G202; +assign G1841 = G179; +assign G1849 = G179; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = G202; +assign G1878 = G171; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, G1050); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, G1179); +not g152(G1211, G1207); +not g153(G1298, G1290); +not g154(G1320, G1312); +not g155(G1338, G1332); +not g156(G1339, G1335); +and g157(G457, G210, G955); +and g158(G459, G217, G954); +nand g159(G482, G214, G955); +nand g160(G487, G221, G954); +nand g161(G492, G210, G955); +nand g162(G505, G217, G954); +not g163(G1456, G1450); +not g164(G1448, G1442); +not g165(G1472, G1466); +not g166(G1464, G1458); +not g167(G1488, G1482); +not g168(G1480, G1474); +not g169(G1504, G1498); +not g170(G1496, G1490); +nand g171(G956, G907, G919, G943, G893); +nand g172(G967, G909, G919, G943, G893); +nand g173(G978, G926, G949, G893); +and g174(G979, G926, G949, G893); +assign G980 = G251; +not g176(G1661, G1657); +assign G990 = G251; +not g178(G1669, G1665); +assign G1030 = G288; +not g180(G1701, G1697); +assign G1040 = G288; +not g182(G1709, G1705); +assign G1058 = G299; +not g184(G1717, G1713); +assign G1068 = G299; +not g186(G1725, G1721); +assign G1078 = G318; +assign G1090 = G318; +assign G1100 = G327; +not g190(G1749, G1745); +assign G1112 = G327; +not g192(G1757, G1753); +assign G1154 = G352; +not g194(G1789, G1785); +assign G1166 = G352; +not g196(G1797, G1793); +assign G1194 = G369; +not g198(G1201, G1197); +assign G1204 = G369; +not g200(G1820, G1814); +not g201(G1821, G1817); +not g202(G1230, G1222); +not g203(G1836, G1830); +not g204(G1837, G1833); +not g205(G1252, G1244); +assign G1256 = G382; +not g207(G1845, G1841); +assign G1268 = G382; +not g209(G1853, G1849); +not g210(G1860, G1854); +not g211(G1861, G1857); +not g212(G1286, G1278); +not g213(G1876, G1870); +not g214(G1877, G1873); +not g215(G1308, G1300); +not g216(G1884, G1878); +not g217(G1885, G1881); +assign G1654 = G254; +assign G1662 = G254; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = G302; +assign G1718 = G302; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = G355; +assign G1790 = G355; +assign G1838 = G385; +assign G1846 = G385; +nand g232(G297, G1053, G1056); +nand g233(G298, G1050, G1057); +nand g234(G361, G1179, G1182); +nand g235(G362, G1176, G1183); +nand g236(G404, G1335, G1338); +nand g237(G405, G1332, G1339); +nand g238(G1225, G1817, G1820); +nand g239(G1226, G1814, G1821); +nand g240(G1247, G1833, G1836); +nand g241(G1248, G1830, G1837); +nand g242(G1281, G1857, G1860); +nand g243(G1282, G1854, G1861); +nand g244(G1303, G1873, G1876); +nand g245(G1304, G1870, G1877); +nand g246(G1315, G1881, G1884); +nand g247(G1316, G1878, G1885); +not g248(G998, G990); +not g249(G988, G980); +nand g250(G268, G297, G298); +not g251(G1038, G1030); +not g252(G1048, G1040); +not g253(G1076, G1068); +not g254(G1066, G1058); +not g255(G1098, G1090); +not g256(G1120, G1112); +not g257(G1174, G1166); +nand g258(G363, G361, G362); +not g259(G1210, G1204); +nand g260(G373, G1204, G1211); +not g261(G1276, G1268); +nand g262(G406, G404, G405); +not g263(G565, G482); +assign G566 = G482; +not g265(G614, G487); +assign G615 = G487; +nand g267(G958, G956, G978); +nand g268(G969, G967, G978); +not g269(G1660, G1654); +nand g270(G984, G1654, G1661); +not g271(G1668, G1662); +nand g272(G994, G1662, G1669); +not g273(G1700, G1694); +nand g274(G1034, G1694, G1701); +not g275(G1708, G1702); +nand g276(G1044, G1702, G1709); +not g277(G1716, G1710); +nand g278(G1062, G1710, G1717); +not g279(G1724, G1718); +nand g280(G1072, G1718, G1725); +not g281(G1732, G1726); +not g282(G1086, G1078); +not g283(G1740, G1734); +not g284(G1748, G1742); +nand g285(G1104, G1742, G1749); +not g286(G1108, G1100); +not g287(G1756, G1750); +nand g288(G1116, G1750, G1757); +not g289(G1788, G1782); +nand g290(G1158, G1782, G1789); +not g291(G1162, G1154); +not g292(G1796, G1790); +nand g293(G1170, G1790, G1797); +not g294(G1200, G1194); +nand g295(G1203, G1194, G1201); +nand g296(G1227, G1225, G1226); +nand g297(G1249, G1247, G1248); +not g298(G1844, G1838); +nand g299(G1260, G1838, G1845); +not g300(G1264, G1256); +not g301(G1852, G1846); +nand g302(G1272, G1846, G1853); +nand g303(G1283, G1281, G1282); +nand g304(G1305, G1303, G1304); +nand g305(G1317, G1315, G1316); +assign G1410 = G492; +assign G1418 = G492; +assign G1426 = G505; +assign G1434 = G505; +not g310(G269, G268); +nand g311(G372, G1207, G1210); +nand g312(G983, G1657, G1660); +nand g313(G993, G1665, G1668); +nand g314(G1033, G1697, G1700); +nand g315(G1043, G1705, G1708); +nand g316(G1061, G1713, G1716); +nand g317(G1071, G1721, G1724); +nand g318(G1103, G1745, G1748); +nand g319(G1115, G1753, G1756); +nand g320(G1157, G1785, G1788); +nand g321(G1169, G1793, G1796); +not g322(G1184, G363); +nand g323(G1202, G1197, G1200); +nand g324(G1259, G1841, G1844); +nand g325(G1271, G1849, G1852); +not g326(G1322, G406); +nand g327(G374, G372, G373); +nand g328(G396, G1317, G1320); +not g329(G1321, G1317); +not g330(G1424, G1418); +not g331(G1416, G1410); +not g332(G1440, G1434); +not g333(G1432, G1426); +nand g334(G985, G983, G984); +nand g335(G995, G993, G994); +nand g336(G1035, G1033, G1034); +nand g337(G1045, G1043, G1044); +nand g338(G1063, G1061, G1062); +nand g339(G1073, G1071, G1072); +nand g340(G1105, G1103, G1104); +nand g341(G1117, G1115, G1116); +nand g342(G1159, G1157, G1158); +nand g343(G1171, G1169, G1170); +nand g344(G1212, G1202, G1203); +not g345(G1231, G1227); +nand g346(G1232, G1227, G1230); +not g347(G1253, G1249); +nand g348(G1254, G1249, G1252); +nand g349(G1261, G1259, G1260); +nand g350(G1273, G1271, G1272); +not g351(G1287, G1283); +nand g352(G1288, G1283, G1286); +not g353(G1309, G1305); +nand g354(G1310, G1305, G1308); +not g355(G1192, G1184); +nand g356(G397, G1312, G1321); +not g357(G1330, G1322); +assign G1000 = G269; +assign G1010 = G269; +nand g360(G1233, G1222, G1231); +nand g361(G1255, G1244, G1253); +nand g362(G1289, G1278, G1287); +nand g363(G1311, G1300, G1309); +not g364(G1381, G374); +nand g365(G257, G995, G998); +not g366(G999, G995); +nand g367(G260, G985, G988); +not g368(G989, G985); +nand g369(G272, G1035, G1038); +not g370(G1039, G1035); +nand g371(G294, G1045, G1048); +not g372(G1049, G1045); +nand g373(G305, G1073, G1076); +not g374(G1077, G1073); +nand g375(G308, G1063, G1066); +not g376(G1067, G1063); +nand g377(G333, G1117, G1120); +not g378(G1121, G1117); +nand g379(G358, G1171, G1174); +not g380(G1175, G1171); +not g381(G1220, G1212); +nand g382(G388, G1273, G1276); +not g383(G1277, G1273); +nand g384(G398, G396, G397); +not g385(G1109, G1105); +nand g386(G1110, G1105, G1108); +not g387(G1163, G1159); +nand g388(G1164, G1159, G1162); +nand g389(G1234, G1232, G1233); +not g390(G1265, G1261); +nand g391(G1266, G1261, G1264); +nand g392(G1822, G1254, G1255); +nand g393(G1862, G1310, G1311); +nand g394(G1865, G1288, G1289); +nand g395(G258, G990, G999); +nand g396(G261, G980, G989); +nand g397(G273, G1030, G1039); +not g398(G1018, G1010); +not g399(G1008, G1000); +nand g400(G295, G1040, G1049); +nand g401(G306, G1068, G1077); +nand g402(G309, G1058, G1067); +nand g403(G334, G1112, G1121); +nand g404(G359, G1166, G1175); +nand g405(G389, G1268, G1277); +not g406(G1385, G1381); +nand g407(G1111, G1100, G1109); +nand g408(G1165, G1154, G1163); +nand g409(G1267, G1256, G1265); +not g410(G1886, G398); +nand g411(G259, G257, G258); +nand g412(G262, G260, G261); +nand g413(G274, G272, G273); +nand g414(G296, G294, G295); +nand g415(G307, G305, G306); +nand g416(G310, G308, G309); +nand g417(G335, G333, G334); +nand g418(G360, G358, G359); +not g419(G1242, G1234); +nand g420(G390, G388, G389); +not g421(G1828, G1822); +not g422(G1868, G1862); +not g423(G1869, G1865); +nand g424(G1373, G1164, G1165); +nand g425(G1798, G1110, G1111); +nand g426(G1825, G1266, G1267); +not g427(G265, G259); +not g428(G314, G307); +not g429(G336, G335); +not g430(G407, G296); +nand g431(G1293, G1865, G1868); +nand g432(G1294, G1862, G1869); +not g433(G1892, G1886); +not g434(G1777, G360); +not g435(G1889, G390); +assign G410 = G310; +not g437(G1377, G1373); +not g438(G1804, G1798); +nand g439(G1237, G1825, G1828); +not g440(G1829, G1825); +nand g441(G1295, G1293, G1294); +assign G1670 = G274; +assign G1678 = G274; +assign G1729 = G310; +assign G1737 = G310; +assign G1761 = G262; +assign G1769 = G262; +assign G340 = G336; +assign G343 = G314; +not g450(G1781, G1777); +nand g451(G1238, G1822, G1829); +nand g452(G1325, G1889, G1892); +not g453(G1893, G1889); +assign G1340 = G407; +assign G1352 = G407; +assign G1673 = G265; +assign G1681 = G265; +assign G1801 = G314; +assign G1897 = G336; +assign G1905 = G336; +nand g461(G391, G1295, G1298); +not g462(G1299, G1295); +not g463(G1676, G1670); +not g464(G1684, G1678); +nand g465(G1081, G1729, G1732); +not g466(G1733, G1729); +nand g467(G1093, G1737, G1740); +not g468(G1741, G1737); +not g469(G1765, G1761); +not g470(G1773, G1769); +nand g471(G1239, G1237, G1238); +nand g472(G1326, G1886, G1893); +assign G1894 = G410; +assign G1902 = G410; +nand g475(G392, G1290, G1299); +not g476(G1360, G1352); +nand g477(G1003, G1673, G1676); +not g478(G1677, G1673); +nand g479(G1013, G1681, G1684); +not g480(G1685, G1681); +nand g481(G1082, G1726, G1733); +nand g482(G1094, G1734, G1741); +assign G1122 = G340; +assign G1134 = G340; +nand g485(G1187, G1801, G1804); +not g486(G1805, G1801); +nand g487(G1327, G1325, G1326); +not g488(G1901, G1897); +not g489(G1348, G1340); +not g490(G1909, G1905); +assign G1758 = G343; +assign G1766 = G343; +nand g493(G377, G1239, G1242); +not g494(G1243, G1239); +nand g495(G393, G391, G392); +nand g496(G1004, G1670, G1677); +nand g497(G1014, G1678, G1685); +nand g498(G1083, G1081, G1082); +nand g499(G1095, G1093, G1094); +nand g500(G1188, G1798, G1805); +not g501(G1900, G1894); +nand g502(G1344, G1894, G1901); +not g503(G1908, G1902); +nand g504(G1356, G1902, G1909); +not g505(G1142, G1134); +nand g506(G378, G1234, G1243); +nand g507(G399, G1327, G1330); +not g508(G1331, G1327); +nand g509(G1005, G1003, G1004); +nand g510(G1015, G1013, G1014); +not g511(G1764, G1758); +nand g512(G1126, G1758, G1765); +not g513(G1130, G1122); +not g514(G1772, G1766); +nand g515(G1138, G1766, G1773); +nand g516(G1189, G1187, G1188); +nand g517(G1343, G1897, G1900); +nand g518(G1355, G1905, G1908); +nand g519(G324, G1095, G1098); +not g520(G1099, G1095); +nand g521(G379, G377, G378); +nand g522(G400, G1322, G1331); +nand g523(G449, G393, G918); +not g524(G1087, G1083); +nand g525(G1088, G1083, G1086); +nand g526(G1125, G1761, G1764); +nand g527(G1137, G1769, G1772); +nand g528(G1345, G1343, G1344); +nand g529(G1357, G1355, G1356); +assign G1397 = G393; +nand g531(G277, G1015, G1018); +not g532(G1019, G1015); +nand g533(G280, G1005, G1008); +not g534(G1009, G1005); +nand g535(G325, G1090, G1099); +nand g536(G364, G1189, G1192); +not g537(G1193, G1189); +nand g538(G401, G399, G400); +nand g539(G1089, G1078, G1087); +nand g540(G1127, G1125, G1126); +nand g541(G1139, G1137, G1138); +nand g542(G278, G1010, G1019); +nand g543(G281, G1000, G1009); +nand g544(G326, G324, G325); +nand g545(G365, G1184, G1193); +nand g546(G413, G1357, G1360); +not g547(G1361, G1357); +not g548(G1401, G1397); +nand g549(G445, G379, G918); +not g550(G1349, G1345); +nand g551(G1350, G1345, G1348); +assign G1389 = G379; +assign G1493 = G449; +assign G1501 = G449; +nand g555(G1689, G1088, G1089); +nand g556(G279, G277, G278); +nand g557(G282, G280, G281); +nand g558(G346, G1139, G1142); +not g559(G1143, G1139); +nand g560(G366, G364, G365); +nand g561(G414, G1352, G1361); +nand g562(G453, G401, G918); +not g563(G1131, G1127); +nand g564(G1132, G1127, G1130); +nand g565(G1351, G1340, G1349); +not g566(G1365, G326); +assign G1405 = G401; +not g568(G285, G279); +nand g569(G347, G1134, G1143); +not g570(G367, G366); +nand g571(G415, G413, G414); +not g572(G1393, G1389); +nand g573(G556, G1501, G1504); +not g574(G1505, G1501); +nand g575(G559, G1493, G1496); +not g576(G1497, G1493); +not g577(G1693, G1689); +nand g578(G1133, G1122, G1131); +assign G1477 = G445; +assign G1485 = G445; +nand g581(G1809, G1350, G1351); +nand g582(G348, G346, G347); +not g583(G1369, G1365); +not g584(G1409, G1405); +nand g585(G557, G1498, G1505); +nand g586(G560, G1490, G1497); +assign G1362 = G282; +not g588(G1378, G415); +assign G1429 = G453; +assign G1437 = G453; +assign G1686 = G282; +nand g592(G1774, G1132, G1133); +and g593(G1910, G285, G853); +and g594(G1918, G856, G367); +nand g595(G544, G1485, G1488); +not g596(G1489, G1485); +nand g597(G547, G1477, G1480); +not g598(G1481, G1477); +nand g599(G558, G556, G557); +nand g600(G561, G559, G560); +not g601(G1813, G1809); +not g602(G1370, G348); +not g603(G1368, G1362); +nand g604(G417, G1362, G1369); +not g605(G1384, G1378); +nand g606(G424, G1378, G1385); +nand g607(G508, G1437, G1440); +not g608(G1441, G1437); +nand g609(G511, G1429, G1432); +not g610(G1433, G1429); +nand g611(G545, G1482, G1489); +nand g612(G548, G1474, G1481); +not g613(G564, G558); +not g614(G1692, G1686); +nand g615(G1024, G1686, G1693); +not g616(G1780, G1774); +nand g617(G1148, G1774, G1781); +not g618(G1916, G1910); +not g619(G1924, G1918); +nand g620(G416, G1365, G1368); +not g621(G1376, G1370); +nand g622(G421, G1370, G1377); +nand g623(G423, G1381, G1384); +nand g624(G509, G1434, G1441); +nand g625(G512, G1426, G1433); +nand g626(G546, G544, G545); +nand g627(G549, G547, G548); +not g628(G719, G561); +assign G722 = G561; +nand g630(G1023, G1689, G1692); +nand g631(G1147, G1777, G1780); +nand g632(G418, G416, G417); +nand g633(G420, G1373, G1376); +nand g634(G425, G423, G424); +nand g635(G510, G508, G509); +nand g636(G513, G511, G512); +not g637(G552, G546); +nand g638(G1025, G1023, G1024); +nand g639(G1149, G1147, G1148); +not g640(G419, G418); +nand g641(G422, G420, G421); +nand g642(G441, G425, G918); +not g643(G516, G510); +not g644(G725, G549); +assign G728 = G549; +not g646(G1029, G1025); +not g647(G1153, G1149); +nand g648(G433, G419, G918); +nand g649(G437, G422, G918); +not g650(G663, G513); +assign G666 = G513; +and g652(G731, G719, G725); +and g653(G746, G722, G725); +and g654(G756, G719, G728); +and g655(G770, G722, G728); +assign G1461 = G441; +assign G1469 = G441; +assign G1413 = G433; +assign G1421 = G433; +assign G1445 = G437; +assign G1453 = G437; +nand g662(G532, G1469, G1472); +not g663(G1473, G1469); +nand g664(G535, G1461, G1464); +not g665(G1465, G1461); +nand g666(G495, G1421, G1424); +not g667(G1425, G1421); +nand g668(G498, G1413, G1416); +not g669(G1417, G1413); +nand g670(G520, G1453, G1456); +not g671(G1457, G1453); +nand g672(G523, G1445, G1448); +not g673(G1449, G1445); +nand g674(G533, G1466, G1473); +nand g675(G536, G1458, G1465); +nand g676(G496, G1418, G1425); +nand g677(G499, G1410, G1417); +nand g678(G521, G1450, G1457); +nand g679(G524, G1442, G1449); +nand g680(G534, G532, G533); +nand g681(G537, G535, G536); +nand g682(G497, G495, G496); +nand g683(G500, G498, G499); +nand g684(G522, G520, G521); +nand g685(G525, G523, G524); +not g686(G540, G534); +not g687(G503, G497); +not g688(G528, G522); +not g689(G669, G537); +assign G672 = G537; +not g691(G569, G500); +and g692(G588, G566, G500); +not g693(G618, G525); +and g694(G639, G615, G525); +nand g695(G867, G516, G564, G552, G540, G482, G528, G503, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g700(G675, G663, G669); +and g701(G688, G666, G669); +and g702(G696, G663, G672); +and g703(G710, G666, G672); +and g704(G73, G949, G867, G932, G932); +and g705(G572, G565, G569); +and g706(G573, G566, G569); +and g707(G621, G614, G618); +and g708(G622, G615, G618); +nand g709(G776, G588a, G639a, G696, G731, G958); +nand g710(G780, G588a, G639a, G675, G756, G958); +nand g711(G784, G588a, G639a, G675, G746, G958); +nand g712(G788, G588a, G639a, G688, G731, G958); +nand g713(G812, G588b, G639a, G710, G746, G969); +nand g714(G832, G588b, G639b, G696, G770, G969); +nand g715(G836, G588b, G639b, G710, G756, G969); +and g716(G1509, G588a, G639a, G696, G731, G958); +and g717(G1517, G588a, G639a, G675, G756, G958); +and g718(G1525, G588a, G639a, G675, G746, G958); +and g719(G1533, G588a, G639a, G688, G731, G958); +and g720(G1581, G588b, G639a, G710, G746, G969); +and g721(G1621, G588b, G639b, G696, G770, G969); +and g722(G1629, G588b, G639b, G710, G756, G969); +nand g723(G792, G588a, G622, G696, G756, G958); +nand g724(G796, G588b, G622, G696, G746, G958); +nand g725(G800, G588b, G622, G710, G731, G958); +nand g726(G804, G588b, G622, G675, G770, G958); +nand g727(G808, G588b, G622, G688, G756, G969); +nand g728(G816, G573, G639b, G696, G756, G969); +nand g729(G820, G573, G639b, G696, G746, G969); +nand g730(G824, G573, G639b, G710, G731, G969); +nand g731(G828, G573, G639b, G688, G756, G969); +nand g732(G871, G588b, G622, G675, G731, G979); +nand g733(G873, G573, G639b, G675, G731, G979); +nand g734(G875, G573, G622, G696, G731, G979); +nand g735(G877, G573, G622, G675, G756, G979); +nand g736(G879, G573, G622, G675, G746, G979); +nand g737(G881, G573, G622, G688, G731, G979); +nand g738(G883, G573, G621, G675, G731, G979); +nand g739(G885, G572, G622, G675, G731, G979); +and g740(G1541, G588a, G622, G696, G756, G958); +and g741(G1549, G588b, G622, G696, G746, G958); +and g742(G1557, G588b, G622, G710, G731, G958); +and g743(G1565, G588b, G622, G675, G770, G958); +and g744(G1573, G588b, G622, G688, G756, G969); +and g745(G1589, G573, G639b, G696, G756, G969); +and g746(G1597, G573, G639b, G696, G746, G969); +and g747(G1605, G573, G639b, G710, G731, G969); +and g748(G1613, G573, G639b, G688, G756, G969); +nand g749(G1, G1509, G1512); +not g750(G1513, G1509); +nand g751(G4, G1517, G1520); +not g752(G1521, G1517); +nand g753(G7, G1525, G1528); +not g754(G1529, G1525); +nand g755(G10, G1533, G1536); +not g756(G1537, G1533); +nand g757(G28, G1581, G1584); +not g758(G1585, G1581); +nand g759(G43, G1621, G1624); +not g760(G1625, G1621); +nand g761(G46, G1629, G1632); +not g762(G1633, G1629); +and g763(G886, G871, G873, G875, G877, G879, G881, G883, G885); +nand g764(G2, G1506, G1513); +nand g765(G5, G1514, G1521); +nand g766(G8, G1522, G1529); +nand g767(G11, G1530, G1537); +nand g768(G13, G1541, G1544); +not g769(G1545, G1541); +nand g770(G16, G1549, G1552); +not g771(G1553, G1549); +nand g772(G19, G1557, G1560); +not g773(G1561, G1557); +nand g774(G22, G1565, G1568); +not g775(G1569, G1565); +nand g776(G25, G1573, G1576); +not g777(G1577, G1573); +nand g778(G29, G1578, G1585); +nand g779(G31, G1589, G1592); +not g780(G1593, G1589); +nand g781(G34, G1597, G1600); +not g782(G1601, G1597); +nand g783(G37, G1605, G1608); +not g784(G1609, G1605); +nand g785(G40, G1613, G1616); +not g786(G1617, G1613); +nand g787(G44, G1618, G1625); +nand g788(G47, G1626, G1633); +nand g789(G857, G776, G780, G784, G788, G792, G796, G800, G804); +nand g790(G860, G808, G812, G816, G820, G824, G828, G832, G836); +and g791(G863, G776, G780, G784, G788, G792, G796, G800, G804); +and g792(G865, G808, G812, G816, G820, G824, G828, G832, G836); +nand g793(G3, G1, G2); +nand g794(G6, G4, G5); +nand g795(G9, G7, G8); +nand g796(G12, G10, G11); +nand g797(G14, G1538, G1545); +nand g798(G17, G1546, G1553); +nand g799(G20, G1554, G1561); +nand g800(G23, G1562, G1569); +nand g801(G26, G1570, G1577); +nand g802(G30, G28, G29); +nand g803(G32, G1586, G1593); +nand g804(G35, G1594, G1601); +nand g805(G38, G1602, G1609); +nand g806(G41, G1610, G1617); +nand g807(G45, G43, G44); +nand g808(G48, G46, G47); +and g809(G1913, G857, G859); +and g810(G1921, G860, G862); +nand g811(G15, G13, G14); +nand g812(G18, G16, G17); +nand g813(G21, G19, G20); +nand g814(G24, G22, G23); +nand g815(G27, G25, G26); +nand g816(G33, G31, G32); +nand g817(G36, G34, G35); +nand g818(G39, G37, G38); +nand g819(G42, G40, G41); +and g820(G887, G863, G865, G886); +nand g821(G462, G863, G865); +and g822(G74, G949, G867, G952, G887); +nand g823(G1637, G1913, G1916); +not g824(G1917, G1913); +nand g825(G1647, G1921, G1924); +not g826(G1925, G1921); +nor g827(G75, G73, G74); +and g828(G1020, G457, G911, G462); +and g829(G1144, G469, G911, G462); +and g830(G1386, G475, G911, G462); +and g831(G1394, G478, G911, G462); +and g832(G1402, G459, G911, G462); +nand g833(G1638, G1910, G1917); +nand g834(G1648, G1918, G1925); +and g835(G1806, G472, G911, G462); +nand g836(G1639, G1637, G1638); +nand g837(G1649, G1647, G1648); +nand g838(G287, G1020, G1029); +nand g839(G350, G1144, G1153); +nand g840(G427, G1386, G1393); +nand g841(G429, G1394, G1401); +nand g842(G431, G1402, G1409); +not g843(G1028, G1020); +not g844(G1152, G1144); +not g845(G1392, G1386); +not g846(G1400, G1394); +not g847(G1408, G1402); +not g848(G1812, G1806); +nand g849(G1216, G1806, G1813); +nand g850(G286, G1025, G1028); +nand g851(G349, G1149, G1152); +nand g852(G426, G1389, G1392); +nand g853(G428, G1397, G1400); +nand g854(G430, G1405, G1408); +nand g855(G67, G1639, G1642); +not g856(G1643, G1639); +nand g857(G70, G1649, G1652); +not g858(G1653, G1649); +nand g859(G1215, G1809, G1812); +nand g860(G49, G286, G287); +nand g861(G53, G349, G350); +nand g862(G59, G426, G427); +nand g863(G61, G428, G429); +nand g864(G65, G430, G431); +nand g865(G68, G1634, G1643); +nand g866(G71, G1644, G1653); +nand g867(G1217, G1215, G1216); +and g868(G51, G49, G50); +and g869(G54, G52, G53); +and g870(G60, G58, G59); +and g871(G63, G61, G62); +and g872(G66, G64, G65); +nand g873(G69, G67, G68); +nand g874(G72, G70, G71); +nand g875(G375, G1217, G1220); +not g876(G1221, G1217); +nand g877(G376, G1212, G1221); +nand g878(G55, G375, G376); +and g879(G57, G55, G56); +endmodule diff --git a/benchmarks/c1908/c1908_aor_256bit.v b/benchmarks/c1908/c1908_aor_256bit.v new file mode 100644 index 0000000..c13dfd5 --- /dev/null +++ b/benchmarks/c1908/c1908_aor_256bit.v @@ -0,0 +1,1319 @@ +// Verilog File +module c1908_aor_256bit.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63,keyinput64,keyinput65, +keyinput66,keyinput67,keyinput68,keyinput69,keyinput70,keyinput71,keyinput72,keyinput73,keyinput74,keyinput75, +keyinput76,keyinput77,keyinput78,keyinput79,keyinput80,keyinput81,keyinput82,keyinput83,keyinput84,keyinput85, +keyinput86,keyinput87,keyinput88,keyinput89,keyinput90,keyinput91,keyinput92,keyinput93,keyinput94,keyinput95, +keyinput96,keyinput97,keyinput98,keyinput99,keyinput100,keyinput101,keyinput102,keyinput103,keyinput104,keyinput105, +keyinput106,keyinput107,keyinput108,keyinput109,keyinput110,keyinput111,keyinput112,keyinput113,keyinput114,keyinput115, +keyinput116,keyinput117,keyinput118,keyinput119,keyinput120,keyinput121,keyinput122,keyinput123,keyinput124,keyinput125, +keyinput126,keyinput127,keyinput128,keyinput129,keyinput130,keyinput131,keyinput132,keyinput133,keyinput134,keyinput135, +keyinput136,keyinput137,keyinput138,keyinput139,keyinput140,keyinput141,keyinput142,keyinput143,keyinput144,keyinput145, +keyinput146,keyinput147,keyinput148,keyinput149,keyinput150,keyinput151,keyinput152,keyinput153,keyinput154,keyinput155, +keyinput156,keyinput157,keyinput158,keyinput159,keyinput160,keyinput161,keyinput162,keyinput163,keyinput164,keyinput165, +keyinput166,keyinput167,keyinput168,keyinput169,keyinput170,keyinput171,keyinput172,keyinput173,keyinput174,keyinput175, +keyinput176,keyinput177,keyinput178,keyinput179,keyinput180,keyinput181,keyinput182,keyinput183,keyinput184,keyinput185, +keyinput186,keyinput187,keyinput188,keyinput189,keyinput190,keyinput191,keyinput192,keyinput193,keyinput194,keyinput195, +keyinput196,keyinput197,keyinput198,keyinput199,keyinput200,keyinput201,keyinput202,keyinput203,keyinput204,keyinput205, +keyinput206,keyinput207,keyinput208,keyinput209,keyinput210,keyinput211,keyinput212,keyinput213,keyinput214,keyinput215, +keyinput216,keyinput217,keyinput218,keyinput219,keyinput220,keyinput221,keyinput222,keyinput223,keyinput224,keyinput225, +keyinput226,keyinput227,keyinput228,keyinput229,keyinput230,keyinput231,keyinput232,keyinput233,keyinput234,keyinput235, +keyinput236,keyinput237,keyinput238,keyinput239,keyinput240,keyinput241,keyinput242,keyinput243,keyinput244,keyinput245, +keyinput246,keyinput247,keyinput248,keyinput249,keyinput250,keyinput251,keyinput252,keyinput253,keyinput254,keyinput255, +G3,G6,G9,G12,G30,G45,G48,G15,G18,G21, +G24,G27,G33,G36,G39,G42,G75,G51,G54,G60, +G63,G66,G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63,keyinput64,keyinput65, +keyinput66,keyinput67,keyinput68,keyinput69,keyinput70,keyinput71,keyinput72,keyinput73,keyinput74,keyinput75, +keyinput76,keyinput77,keyinput78,keyinput79,keyinput80,keyinput81,keyinput82,keyinput83,keyinput84,keyinput85, +keyinput86,keyinput87,keyinput88,keyinput89,keyinput90,keyinput91,keyinput92,keyinput93,keyinput94,keyinput95, +keyinput96,keyinput97,keyinput98,keyinput99,keyinput100,keyinput101,keyinput102,keyinput103,keyinput104,keyinput105, +keyinput106,keyinput107,keyinput108,keyinput109,keyinput110,keyinput111,keyinput112,keyinput113,keyinput114,keyinput115, +keyinput116,keyinput117,keyinput118,keyinput119,keyinput120,keyinput121,keyinput122,keyinput123,keyinput124,keyinput125, +keyinput126,keyinput127,keyinput128,keyinput129,keyinput130,keyinput131,keyinput132,keyinput133,keyinput134,keyinput135, +keyinput136,keyinput137,keyinput138,keyinput139,keyinput140,keyinput141,keyinput142,keyinput143,keyinput144,keyinput145, +keyinput146,keyinput147,keyinput148,keyinput149,keyinput150,keyinput151,keyinput152,keyinput153,keyinput154,keyinput155, +keyinput156,keyinput157,keyinput158,keyinput159,keyinput160,keyinput161,keyinput162,keyinput163,keyinput164,keyinput165, +keyinput166,keyinput167,keyinput168,keyinput169,keyinput170,keyinput171,keyinput172,keyinput173,keyinput174,keyinput175, +keyinput176,keyinput177,keyinput178,keyinput179,keyinput180,keyinput181,keyinput182,keyinput183,keyinput184,keyinput185, +keyinput186,keyinput187,keyinput188,keyinput189,keyinput190,keyinput191,keyinput192,keyinput193,keyinput194,keyinput195, +keyinput196,keyinput197,keyinput198,keyinput199,keyinput200,keyinput201,keyinput202,keyinput203,keyinput204,keyinput205, +keyinput206,keyinput207,keyinput208,keyinput209,keyinput210,keyinput211,keyinput212,keyinput213,keyinput214,keyinput215, +keyinput216,keyinput217,keyinput218,keyinput219,keyinput220,keyinput221,keyinput222,keyinput223,keyinput224,keyinput225, +keyinput226,keyinput227,keyinput228,keyinput229,keyinput230,keyinput231,keyinput232,keyinput233,keyinput234,keyinput235, +keyinput236,keyinput237,keyinput238,keyinput239,keyinput240,keyinput241,keyinput242,keyinput243,keyinput244,keyinput245, +keyinput246,keyinput247,keyinput248,keyinput249,keyinput250,keyinput251,keyinput252,keyinput253,keyinput254,keyinput255; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +xenc222, G1520, G1528, G1536, xenc87, G1544, G1552, xenc139, G1560, G1568, +G1576, xenc63, G1584, xenc47, G1592, G1600, G1608, G1616, G1624, G1632, +G50, G52, G56, G58, G62, G64, G251, G254, G288, G291, +G299, xenc72, G302, G318, xenc147, G321, G327, G330, G352, xenc6, +G355, xenc212, G369, G382, G385, xenc70, xenc223, G853, G856, G893, +G954, G955, G1050, G1053, G1176, G1179, G1197, G1207, G1222, G1244, +G1278, xenc81, G1290, G1300, G1312, G1332, G1335, G1442, G1450, G1458, +G1466, G1474, G1482, xenc101, G1490, G1498, xenc71, G1634, G1644, G1657, +G1665, G1697, G1705, G1713, G1721, G1745, G1753, G1785, G1793, G1814, +G1817, G1830, G1833, G1841, G1849, G1854, G1857, G1870, G1873, G1878, +G1881, G1642, G1652, xenc225, G1056, G1057, G1182, G1183, xenc239, G1211, +G1298, xenc107, G1320, G1338, xenc118, G1339, G457, xenc10, G459, G482, +G487, G492, G505, xenc203, G1456, xenc121, G1448, G1472, xenc111, G1464, +G1488, G1480, G1504, xenc157, G1496, G956, G967, G978, G979, G980, +xenc149, G1661, G990, xenc208, G1669, G1030, xenc85, G1701, G1040, G1709, +G1058, G1717, G1068, xenc230, G1725, xenc128, G1078, G1090, G1100, G1749, +G1112, G1757, xenc35, G1154, xenc115, G1789, G1166, xenc66, G1797, G1194, +G1201, G1204, G1820, G1821, xenc98, G1230, xenc237, G1836, xenc159, G1837, +xenc189, G1252, G1256, xenc52, G1845, G1268, G1853, xenc26, G1860, G1861, +G1286, G1876, G1877, G1308, G1884, G1885, G1654, G1662, G1694, G1702, +xenc61, G1710, G1718, G1726, G1734, G1742, G1750, xenc169, G1782, G1790, +xenc136, G1838, G1846, G297, G298, G361, xenc144, G362, xenc160, G404, +xenc214, G405, G1225, G1226, G1247, G1248, xenc127, G1281, G1282, xenc243, +G1303, G1304, G1315, xenc46, G1316, xenc96, G998, G988, xenc20, G268, +G1038, G1048, G1076, G1066, xenc97, G1098, G1120, xenc134, G1174, G363, +G1210, xenc3, G373, G1276, xenc56, G406, G565, G566, G614, G615, +xenc40, G958, G969, G1660, G984, xenc22, G1668, xenc91, G994, G1700, +G1034, G1708, G1044, xenc248, G1716, xenc205, G1062, xenc58, G1724, G1072, +xenc108, G1732, G1086, G1740, G1748, G1104, G1108, xenc95, G1756, G1116, +xenc93, G1788, G1158, G1162, G1796, xenc23, G1170, G1200, G1203, xenc0, +G1227, G1249, G1844, G1260, G1264, G1852, G1272, xenc195, G1283, xenc180, +G1305, xenc199, G1317, xenc186, G1410, G1418, G1426, G1434, G269, G372, +G983, G993, xenc33, G1033, xenc210, G1043, G1061, xenc124, G1071, G1103, +G1115, G1157, xenc43, G1169, G1184, G1202, xenc11, G1259, G1271, G1322, +G374, G396, G1321, G1424, G1416, G1440, xenc64, G1432, G985, G995, +G1035, xenc39, G1045, xenc67, G1063, xenc62, G1073, G1105, G1117, G1159, +xenc86, G1171, G1212, G1231, xenc228, G1232, xenc156, G1253, G1254, xenc44, +xenc25, G1261, G1273, xenc88, G1287, G1288, G1309, G1310, G1192, G397, +G1330, G1000, G1010, G1233, G1255, G1289, xenc123, G1311, G1381, G257, +G999, xenc233, G260, G989, xenc146, G272, G1039, G294, G1049, G305, +G1077, G308, G1067, xenc166, G333, G1121, xenc129, xenc119, G358, G1175, +xenc182, G1220, xenc90, G388, G1277, xenc80, G398, G1109, G1110, G1163, +xenc15, G1164, G1234, G1265, G1266, G1822, G1862, xenc238, G1865, xenc14, +G258, G261, G273, G1018, G1008, G295, G306, G309, xenc172, G334, +G359, G389, G1385, G1111, G1165, G1267, xenc209, G1886, xenc191, G259, +xenc37, G262, xenc19, G274, G296, xenc110, G307, G310, G335, xenc103, +xenc78, G360, G1242, xenc207, G390, xenc5, G1828, xenc236, G1868, G1869, +xenc216, xenc143, G1373, xenc229, G1798, G1825, G265, G314, xenc185, G336, +xenc82, G407, G1293, xenc9, G1294, G1892, xenc188, G1777, xenc249, G1889, +xenc155, G410, xenc7, G1377, G1804, xenc99, G1237, G1829, xenc246, xenc21, +G1295, xenc213, G1670, G1678, G1729, G1737, xenc161, G1761, G1769, G340, +G343, G1781, G1238, xenc31, G1325, G1893, xenc51, G1340, G1352, G1673, +G1681, G1801, G1897, G1905, G391, G1299, G1676, G1684, xenc60, xenc12, +G1081, G1733, xenc200, G1093, G1741, G1765, xenc202, G1773, xenc8, G1239, +xenc24, G1326, G1894, G1902, G392, xenc178, G1360, xenc18, xenc75, G1003, +G1677, G1013, G1685, G1082, xenc28, G1094, xenc41, G1122, G1134, xenc132, +G1187, G1805, xenc133, xenc42, G1327, xenc227, G1901, G1348, G1909, G1758, +G1766, xenc190, G377, G1243, xenc253, G393, xenc240, G1004, xenc57, G1014, +G1083, G1095, G1188, G1900, xenc250, G1344, G1908, xenc36, G1356, G1142, +G378, G399, G1331, xenc141, G1005, xenc247, G1015, G1764, G1126, G1130, +G1772, xenc241, G1138, G1189, xenc181, G1343, G1355, xenc193, G324, G1099, +G379, G400, G449, xenc105, G1087, G1088, G1125, G1137, G1345, G1357, +G1397, xenc251, G277, G1019, G280, G1009, G325, xenc92, G364, G1193, +G401, G1089, xenc69, G1127, G1139, G278, G281, xenc114, G326, G365, +G413, G1361, xenc32, G1401, xenc131, G445, G1349, G1350, G1389, G1493, +G1501, xenc100, G1689, G279, G282, xenc151, G346, G1143, xenc2, G366, +xenc59, G414, G453, G1131, G1132, G1351, G1365, G1405, G285, G347, +xenc89, G367, G415, xenc145, G1393, G556, G1505, xenc217, G559, G1497, +G1693, G1133, G1477, G1485, G1809, G348, G1369, G1409, G557, G560, +xenc220, G1362, G1378, xenc140, G1429, G1437, G1686, G1774, xenc55, G1910, +G1918, G544, G1489, xenc126, G547, G1481, G558, G561, G1813, G1370, +G1368, G417, G1384, G424, xenc175, xenc252, G508, G1441, G511, G1433, +G545, xenc167, G548, G564, G1692, G1024, G1780, xenc50, G1148, xenc254, +G1916, G1924, G416, G1376, G421, xenc168, G423, G509, G512, G546, +G549, G719, G722, xenc226, G1023, G1147, xenc34, G418, G420, G425, +G510, xenc215, xenc106, G513, G552, xenc232, G1025, G1149, xenc113, G419, +xenc102, xenc192, G422, G441, xenc173, G516, xenc117, G725, G728, G1029, +G1153, G433, G437, xenc104, G663, G666, xenc122, G731, G746, G756, +G770, xenc234, G1461, G1469, G1413, G1421, G1445, G1453, G532, G1473, +G535, G1465, G495, G1425, G498, G1417, G520, G1457, xenc162, G523, +G1449, G533, G536, G496, G499, xenc83, G521, xenc154, G524, xenc184, +G534, xenc187, G537, xenc4, G497, xenc54, G500, G522, G525, G540, +xenc125, G503, xenc218, G528, G669, G672, G569, G588, G618, G639, +xenc231, xenc79, xenc48, xenc244, G867, G588a, G588b, G639a, G639b, G675, +xenc158, G688, G696, G710, G73, G572, G573, G621, G622, xenc206, +G776, xenc196, xenc27, G780, G784, G788, xenc13, G812, G832, G836, +G1509, G1517, G1525, G1533, G1581, G1621, G1629, G792, G796, G800, +G804, G808, G816, G820, G824, G828, xenc245, G871, G873, G875, +G877, G879, G881, G883, G885, G1541, G1549, G1557, G1565, G1573, +G1589, G1597, G1605, G1613, G1, G1513, G4, G1521, xenc138, G7, +G1529, G10, G1537, G28, G1585, G43, G1625, G46, G1633, xenc142, +xenc109, G886, G2, G5, G8, xenc194, G11, xenc16, G13, G1545, +xenc94, G16, G1553, xenc165, G19, G1561, G22, G1569, G25, G1577, +G29, xenc1, G31, G1593, G34, G1601, G37, G1609, xenc30, G40, +G1617, G44, G47, xenc135, xenc177, xenc29, xenc164, G857, xenc17, xenc73, +xenc45, G860, G863, G865, xenc112, xenc77, xenc170, G14, xenc120, G17, +G20, G23, G26, G32, G35, G38, G41, xenc198, xenc211, G1913, +G1921, xenc153, xenc174, xenc224, xenc183, xenc49, xenc68, G887, G462, G74, +G1637, G1917, G1647, G1925, xenc201, xenc221, xenc84, G1020, G1144, G1386, +G1394, G1402, G1638, G1648, G1806, xenc148, G1639, xenc53, G1649, xenc116, +G287, xenc65, G350, G427, xenc38, G429, G431, G1028, G1152, G1392, +G1400, G1408, xenc204, G1812, G1216, G286, G349, G426, G428, G430, +xenc163, G67, G1643, xenc197, G70, G1653, G1215, G49, G53, xenc219, +G59, G61, G65, G68, G71, xenc179, xenc176, G1217, xenc130, xenc152, +xenc255, xenc242, xenc171, xenc76, xenc74, xenc150, G375, G1221, G376, xenc137, +G55, xenc235; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, xenc222); +not g60(G1528, G1522); +not g61(G1536, G1530); +not g62(G1544, xenc87); +not g63(G1552, G1546); +not g64(G1560, xenc139); +not g65(G1568, G1562); +not g66(G1576, G1570); +not g67(G1584, xenc63); +not g68(G1592, xenc47); +not g69(G1600, G1594); +not g70(G1608, G1602); +not g71(G1616, G1610); +not g72(G1624, G1618); +not g73(G1632, G1626); +nand g74(G50, G930, G947); +nand g75(G52, G930, G947); +nand g76(G56, G930, G947); +nand g77(G58, G930, G947); +nand g78(G62, G930, G947); +nand g79(G64, G930, G947); +assign G251 = G149; +assign G254 = G153; +assign G288 = G165; +assign G291 = G168; +assign G299 = G184; +assign G302 = xenc72; +and g86(G318, G224, G938); +assign G321 = xenc147; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, G938); +assign G355 = xenc6; +and g92(G369, G210, xenc212, G938); +assign G382 = G206; +assign G385 = xenc6; +nand g95(G853, xenc70, xenc223); +nand g96(G856, xenc70, G909); +nand g97(G893, G248, G237); +nand g98(G954, G248, G922); +nand g99(G955, G244, G922); +assign G1050 = G160; +assign G1053 = G175; +assign G1176 = xenc147; +assign G1179 = xenc6; +assign G1197 = G149; +assign G1207 = G149; +assign G1222 = G153; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, xenc81, G938); +assign G1300 = G191; +assign G1312 = G160; +assign G1332 = G194; +and g113(G1335, G221, xenc81, G938); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = xenc101; +assign G1498 = xenc101; +and g122(G1634, G231, xenc71); +and g123(G1644, G233, xenc71); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = G171; +assign G1705 = G171; +assign G1713 = G206; +assign G1721 = G206; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = G160; +assign G1793 = G160; +assign G1814 = G165; +assign G1817 = G175; +and g136(G1830, G214, xenc212, G938); +assign G1833 = xenc72; +assign G1841 = xenc147; +assign G1849 = xenc147; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = xenc72; +assign G1878 = G171; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, xenc225); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, G1179); +not g152(G1211, xenc239); +not g153(G1298, G1290); +not g154(G1320, xenc107); +not g155(G1338, G1332); +not g156(G1339, xenc118); +and g157(G457, G210, G955); +and g158(G459, G217, xenc10); +nand g159(G482, G214, G955); +nand g160(G487, G221, xenc10); +nand g161(G492, G210, G955); +nand g162(G505, G217, xenc10); +not g163(G1456, xenc203); +not g164(G1448, xenc121); +not g165(G1472, G1466); +not g166(G1464, xenc111); +not g167(G1488, G1482); +not g168(G1480, G1474); +not g169(G1504, G1498); +not g170(G1496, xenc157); +nand g171(G956, xenc223, G919, xenc70, G893); +nand g172(G967, G909, G919, xenc70, G893); +nand g173(G978, G926, G949, G893); +and g174(G979, G926, G949, G893); +assign G980 = G251; +not g176(G1661, xenc149); +assign G990 = G251; +not g178(G1669, xenc208); +assign G1030 = G288; +not g180(G1701, xenc85); +assign G1040 = G288; +not g182(G1709, G1705); +assign G1058 = G299; +not g184(G1717, G1713); +assign G1068 = G299; +not g186(G1725, xenc230); +assign G1078 = xenc128; +assign G1090 = xenc128; +assign G1100 = G327; +not g190(G1749, G1745); +assign G1112 = G327; +not g192(G1757, G1753); +assign G1154 = xenc35; +not g194(G1789, xenc115); +assign G1166 = xenc35; +not g196(G1797, xenc66); +assign G1194 = G369; +not g198(G1201, G1197); +assign G1204 = G369; +not g200(G1820, G1814); +not g201(G1821, G1817); +not g202(G1230, xenc98); +not g203(G1836, xenc237); +not g204(G1837, xenc159); +not g205(G1252, xenc189); +assign G1256 = G382; +not g207(G1845, xenc52); +assign G1268 = G382; +not g209(G1853, G1849); +not g210(G1860, xenc26); +not g211(G1861, G1857); +not g212(G1286, G1278); +not g213(G1876, G1870); +not g214(G1877, G1873); +not g215(G1308, G1300); +not g216(G1884, G1878); +not g217(G1885, G1881); +assign G1654 = G254; +assign G1662 = G254; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = xenc61; +assign G1718 = xenc61; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = xenc169; +assign G1790 = xenc169; +assign G1838 = xenc136; +assign G1846 = xenc136; +nand g232(G297, G1053, G1056); +nand g233(G298, xenc225, G1057); +nand g234(G361, G1179, G1182); +nand g235(G362, G1176, xenc144); +nand g236(G404, xenc118, xenc160); +nand g237(G405, G1332, xenc214); +nand g238(G1225, G1817, G1820); +nand g239(G1226, G1814, G1821); +nand g240(G1247, xenc159, G1836); +nand g241(G1248, xenc237, G1837); +nand g242(G1281, G1857, xenc127); +nand g243(G1282, xenc26, G1861); +nand g244(G1303, G1873, xenc243); +nand g245(G1304, G1870, G1877); +nand g246(G1315, G1881, G1884); +nand g247(G1316, G1878, xenc46); +not g248(G998, xenc96); +not g249(G988, G980); +nand g250(G268, xenc20, G298); +not g251(G1038, G1030); +not g252(G1048, G1040); +not g253(G1076, G1068); +not g254(G1066, G1058); +not g255(G1098, xenc97); +not g256(G1120, G1112); +not g257(G1174, xenc134); +nand g258(G363, G361, G362); +not g259(G1210, G1204); +nand g260(G373, G1204, xenc3); +not g261(G1276, G1268); +nand g262(G406, xenc56, G405); +not g263(G565, G482); +assign G566 = G482; +not g265(G614, G487); +assign G615 = G487; +nand g267(G958, xenc40, G978); +nand g268(G969, G967, G978); +not g269(G1660, G1654); +nand g270(G984, G1654, G1661); +not g271(G1668, xenc22); +nand g272(G994, xenc22, xenc91); +not g273(G1700, G1694); +nand g274(G1034, G1694, G1701); +not g275(G1708, G1702); +nand g276(G1044, G1702, G1709); +not g277(G1716, xenc248); +nand g278(G1062, xenc248, xenc205); +not g279(G1724, xenc58); +nand g280(G1072, xenc58, G1725); +not g281(G1732, xenc108); +not g282(G1086, G1078); +not g283(G1740, G1734); +not g284(G1748, G1742); +nand g285(G1104, G1742, G1749); +not g286(G1108, G1100); +not g287(G1756, xenc95); +nand g288(G1116, xenc95, G1757); +not g289(G1788, xenc93); +nand g290(G1158, xenc93, G1789); +not g291(G1162, G1154); +not g292(G1796, G1790); +nand g293(G1170, G1790, xenc23); +not g294(G1200, G1194); +nand g295(G1203, G1194, G1201); +nand g296(G1227, G1225, xenc0); +nand g297(G1249, G1247, G1248); +not g298(G1844, G1838); +nand g299(G1260, G1838, G1845); +not g300(G1264, G1256); +not g301(G1852, G1846); +nand g302(G1272, G1846, G1853); +nand g303(G1283, xenc195, G1282); +nand g304(G1305, xenc180, G1304); +nand g305(G1317, G1315, xenc199); +assign G1410 = xenc186; +assign G1418 = xenc186; +assign G1426 = G505; +assign G1434 = G505; +not g310(G269, G268); +nand g311(G372, xenc239, G1210); +nand g312(G983, xenc149, G1660); +nand g313(G993, xenc208, G1668); +nand g314(G1033, xenc85, xenc33); +nand g315(G1043, G1705, xenc210); +nand g316(G1061, G1713, G1716); +nand g317(G1071, xenc230, xenc124); +nand g318(G1103, G1745, G1748); +nand g319(G1115, G1753, G1756); +nand g320(G1157, xenc115, G1788); +nand g321(G1169, xenc66, xenc43); +not g322(G1184, G363); +nand g323(G1202, G1197, G1200); +nand g324(G1259, xenc52, xenc11); +nand g325(G1271, G1849, G1852); +not g326(G1322, G406); +nand g327(G374, G372, G373); +nand g328(G396, G1317, G1320); +not g329(G1321, G1317); +not g330(G1424, G1418); +not g331(G1416, G1410); +not g332(G1440, G1434); +not g333(G1432, xenc64); +nand g334(G985, G983, G984); +nand g335(G995, G993, G994); +nand g336(G1035, G1033, G1034); +nand g337(G1045, xenc39, G1044); +nand g338(G1063, xenc67, G1062); +nand g339(G1073, xenc62, G1072); +nand g340(G1105, G1103, G1104); +nand g341(G1117, G1115, G1116); +nand g342(G1159, G1157, G1158); +nand g343(G1171, G1169, xenc86); +nand g344(G1212, G1202, G1203); +not g345(G1231, G1227); +nand g346(G1232, G1227, xenc228); +not g347(G1253, xenc156); +nand g348(G1254, xenc156, G1252); +nand g349(G1261, xenc44, xenc25); +nand g350(G1273, G1271, G1272); +not g351(G1287, xenc88); +nand g352(G1288, xenc88, G1286); +not g353(G1309, G1305); +nand g354(G1310, G1305, G1308); +not g355(G1192, G1184); +nand g356(G397, xenc107, G1321); +not g357(G1330, G1322); +assign G1000 = G269; +assign G1010 = G269; +nand g360(G1233, xenc98, G1231); +nand g361(G1255, xenc189, G1253); +nand g362(G1289, G1278, G1287); +nand g363(G1311, G1300, xenc123); +not g364(G1381, G374); +nand g365(G257, G995, G998); +not g366(G999, G995); +nand g367(G260, G985, xenc233); +not g368(G989, G985); +nand g369(G272, G1035, xenc146); +not g370(G1039, G1035); +nand g371(G294, G1045, G1048); +not g372(G1049, G1045); +nand g373(G305, G1073, G1076); +not g374(G1077, G1073); +nand g375(G308, G1063, G1066); +not g376(G1067, G1063); +nand g377(G333, xenc166, G1120); +not g378(G1121, xenc166); +nand g379(G358, xenc129, xenc119); +not g380(G1175, xenc129); +not g381(G1220, xenc182); +nand g382(G388, xenc90, G1276); +not g383(G1277, xenc90); +nand g384(G398, G396, xenc80); +not g385(G1109, G1105); +nand g386(G1110, G1105, G1108); +not g387(G1163, G1159); +nand g388(G1164, G1159, xenc15); +nand g389(G1234, G1232, G1233); +not g390(G1265, G1261); +nand g391(G1266, G1261, G1264); +nand g392(G1822, G1254, G1255); +nand g393(G1862, G1310, G1311); +nand g394(G1865, G1288, xenc238); +nand g395(G258, xenc96, xenc14); +nand g396(G261, G980, G989); +nand g397(G273, G1030, G1039); +not g398(G1018, G1010); +not g399(G1008, G1000); +nand g400(G295, G1040, G1049); +nand g401(G306, G1068, G1077); +nand g402(G309, G1058, G1067); +nand g403(G334, G1112, xenc172); +nand g404(G359, xenc134, G1175); +nand g405(G389, G1268, G1277); +not g406(G1385, G1381); +nand g407(G1111, G1100, G1109); +nand g408(G1165, G1154, G1163); +nand g409(G1267, G1256, G1265); +not g410(G1886, xenc209); +nand g411(G259, xenc191, G258); +nand g412(G262, G260, xenc37); +nand g413(G274, xenc19, G273); +nand g414(G296, G294, G295); +nand g415(G307, xenc110, G306); +nand g416(G310, G308, G309); +nand g417(G335, G333, G334); +nand g418(G360, xenc103, xenc78); +not g419(G1242, G1234); +nand g420(G390, xenc207, G389); +not g421(G1828, xenc5); +not g422(G1868, xenc236); +not g423(G1869, G1865); +nand g424(G1373, xenc216, xenc143); +nand g425(G1798, xenc229, G1111); +nand g426(G1825, G1266, G1267); +not g427(G265, G259); +not g428(G314, G307); +not g429(G336, xenc185); +not g430(G407, xenc82); +nand g431(G1293, G1865, G1868); +nand g432(G1294, xenc236, xenc9); +not g433(G1892, G1886); +not g434(G1777, xenc188); +not g435(G1889, xenc249); +assign G410 = xenc155; +not g437(G1377, xenc7); +not g438(G1804, G1798); +nand g439(G1237, G1825, xenc99); +not g440(G1829, G1825); +nand g441(G1295, xenc246, xenc21); +assign G1670 = xenc213; +assign G1678 = xenc213; +assign G1729 = xenc155; +assign G1737 = xenc155; +assign G1761 = xenc161; +assign G1769 = xenc161; +assign G340 = G336; +assign G343 = G314; +not g450(G1781, G1777); +nand g451(G1238, xenc5, G1829); +nand g452(G1325, G1889, xenc31); +not g453(G1893, G1889); +assign G1340 = xenc51; +assign G1352 = xenc51; +assign G1673 = G265; +assign G1681 = G265; +assign G1801 = G314; +assign G1897 = G336; +assign G1905 = G336; +nand g461(G391, G1295, G1298); +not g462(G1299, G1295); +not g463(G1676, G1670); +not g464(G1684, G1678); +nand g465(G1081, xenc60, xenc12); +not g466(G1733, xenc60); +nand g467(G1093, G1737, xenc200); +not g468(G1741, G1737); +not g469(G1765, G1761); +not g470(G1773, xenc202); +nand g471(G1239, xenc8, G1238); +nand g472(G1326, G1886, xenc24); +assign G1894 = G410; +assign G1902 = G410; +nand g475(G392, G1290, G1299); +not g476(G1360, xenc178); +nand g477(G1003, xenc18, xenc75); +not g478(G1677, xenc18); +nand g479(G1013, G1681, G1684); +not g480(G1685, G1681); +nand g481(G1082, xenc108, G1733); +nand g482(G1094, G1734, xenc28); +assign G1122 = xenc41; +assign G1134 = xenc41; +nand g485(G1187, G1801, xenc132); +not g486(G1805, G1801); +nand g487(G1327, xenc133, xenc42); +not g488(G1901, xenc227); +not g489(G1348, G1340); +not g490(G1909, G1905); +assign G1758 = G343; +assign G1766 = G343; +nand g493(G377, xenc190, G1242); +not g494(G1243, xenc190); +nand g495(G393, G391, xenc253); +nand g496(G1004, G1670, xenc240); +nand g497(G1014, G1678, xenc57); +nand g498(G1083, G1081, G1082); +nand g499(G1095, G1093, G1094); +nand g500(G1188, G1798, G1805); +not g501(G1900, G1894); +nand g502(G1344, G1894, xenc250); +not g503(G1908, G1902); +nand g504(G1356, G1902, xenc36); +not g505(G1142, G1134); +nand g506(G378, G1234, G1243); +nand g507(G399, G1327, G1330); +not g508(G1331, G1327); +nand g509(G1005, xenc141, G1004); +nand g510(G1015, xenc247, G1014); +not g511(G1764, G1758); +nand g512(G1126, G1758, G1765); +not g513(G1130, G1122); +not g514(G1772, G1766); +nand g515(G1138, G1766, xenc241); +nand g516(G1189, G1187, G1188); +nand g517(G1343, xenc227, xenc181); +nand g518(G1355, G1905, G1908); +nand g519(G324, xenc193, G1098); +not g520(G1099, xenc193); +nand g521(G379, G377, G378); +nand g522(G400, G1322, G1331); +nand g523(G449, G393, G918); +not g524(G1087, xenc105); +nand g525(G1088, xenc105, G1086); +nand g526(G1125, G1761, G1764); +nand g527(G1137, xenc202, G1772); +nand g528(G1345, G1343, G1344); +nand g529(G1357, G1355, G1356); +assign G1397 = G393; +nand g531(G277, G1015, xenc251); +not g532(G1019, G1015); +nand g533(G280, G1005, G1008); +not g534(G1009, G1005); +nand g535(G325, xenc97, G1099); +nand g536(G364, xenc92, G1192); +not g537(G1193, xenc92); +nand g538(G401, G399, G400); +nand g539(G1089, G1078, G1087); +nand g540(G1127, xenc69, G1126); +nand g541(G1139, G1137, G1138); +nand g542(G278, G1010, G1019); +nand g543(G281, G1000, G1009); +nand g544(G326, xenc114, G325); +nand g545(G365, G1184, G1193); +nand g546(G413, G1357, G1360); +not g547(G1361, G1357); +not g548(G1401, xenc32); +nand g549(G445, xenc131, G918); +not g550(G1349, G1345); +nand g551(G1350, G1345, G1348); +assign G1389 = xenc131; +assign G1493 = G449; +assign G1501 = G449; +nand g555(G1689, G1088, xenc100); +nand g556(G279, G277, G278); +nand g557(G282, G280, G281); +nand g558(G346, G1139, xenc151); +not g559(G1143, G1139); +nand g560(G366, G364, xenc2); +nand g561(G414, xenc178, xenc59); +nand g562(G453, G401, G918); +not g563(G1131, G1127); +nand g564(G1132, G1127, G1130); +nand g565(G1351, G1340, G1349); +not g566(G1365, G326); +assign G1405 = G401; +not g568(G285, G279); +nand g569(G347, G1134, G1143); +not g570(G367, xenc89); +nand g571(G415, G413, G414); +not g572(G1393, xenc145); +nand g573(G556, G1501, G1504); +not g574(G1505, G1501); +nand g575(G559, G1493, xenc217); +not g576(G1497, G1493); +not g577(G1693, G1689); +nand g578(G1133, G1122, G1131); +assign G1477 = G445; +assign G1485 = G445; +nand g581(G1809, G1350, G1351); +nand g582(G348, G346, G347); +not g583(G1369, G1365); +not g584(G1409, G1405); +nand g585(G557, G1498, G1505); +nand g586(G560, xenc157, G1497); +assign G1362 = xenc220; +not g588(G1378, G415); +assign G1429 = xenc140; +assign G1437 = xenc140; +assign G1686 = xenc220; +nand g592(G1774, G1132, G1133); +and g593(G1910, xenc55, G853); +and g594(G1918, G856, G367); +nand g595(G544, G1485, G1488); +not g596(G1489, G1485); +nand g597(G547, G1477, xenc126); +not g598(G1481, G1477); +nand g599(G558, G556, G557); +nand g600(G561, G559, G560); +not g601(G1813, G1809); +not g602(G1370, G348); +not g603(G1368, G1362); +nand g604(G417, G1362, G1369); +not g605(G1384, G1378); +nand g606(G424, G1378, G1385); +nand g607(G508, xenc175, xenc252); +not g608(G1441, xenc175); +nand g609(G511, G1429, G1432); +not g610(G1433, G1429); +nand g611(G545, G1482, G1489); +nand g612(G548, G1474, xenc167); +not g613(G564, G558); +not g614(G1692, G1686); +nand g615(G1024, G1686, G1693); +not g616(G1780, G1774); +nand g617(G1148, G1774, xenc50); +not g618(G1916, xenc254); +not g619(G1924, G1918); +nand g620(G416, G1365, G1368); +not g621(G1376, G1370); +nand g622(G421, G1370, G1377); +nand g623(G423, G1381, xenc168); +nand g624(G509, G1434, G1441); +nand g625(G512, xenc64, G1433); +nand g626(G546, G544, G545); +nand g627(G549, G547, G548); +not g628(G719, G561); +assign G722 = G561; +nand g630(G1023, G1689, xenc226); +nand g631(G1147, G1777, G1780); +nand g632(G418, G416, xenc34); +nand g633(G420, xenc7, G1376); +nand g634(G425, G423, G424); +nand g635(G510, G508, G509); +nand g636(G513, xenc215, xenc106); +not g637(G552, G546); +nand g638(G1025, G1023, xenc232); +nand g639(G1149, G1147, G1148); +not g640(G419, xenc113); +nand g641(G422, xenc102, xenc192); +nand g642(G441, G425, G918); +not g643(G516, xenc173); +not g644(G725, xenc117); +assign G728 = xenc117; +not g646(G1029, G1025); +not g647(G1153, G1149); +nand g648(G433, G419, G918); +nand g649(G437, G422, G918); +not g650(G663, xenc104); +assign G666 = xenc104; +and g652(G731, xenc122, G725); +and g653(G746, G722, G725); +and g654(G756, xenc122, G728); +and g655(G770, G722, G728); +assign G1461 = xenc234; +assign G1469 = xenc234; +assign G1413 = G433; +assign G1421 = G433; +assign G1445 = G437; +assign G1453 = G437; +nand g662(G532, G1469, G1472); +not g663(G1473, G1469); +nand g664(G535, G1461, G1464); +not g665(G1465, G1461); +nand g666(G495, G1421, G1424); +not g667(G1425, G1421); +nand g668(G498, G1413, G1416); +not g669(G1417, G1413); +nand g670(G520, G1453, G1456); +not g671(G1457, G1453); +nand g672(G523, xenc162, G1448); +not g673(G1449, xenc162); +nand g674(G533, G1466, G1473); +nand g675(G536, xenc111, G1465); +nand g676(G496, G1418, G1425); +nand g677(G499, G1410, G1417); +nand g678(G521, xenc203, xenc83); +nand g679(G524, xenc121, xenc154); +nand g680(G534, G532, xenc184); +nand g681(G537, G535, xenc187); +nand g682(G497, xenc4, G496); +nand g683(G500, xenc54, G499); +nand g684(G522, G520, G521); +nand g685(G525, G523, G524); +not g686(G540, G534); +not g687(G503, xenc125); +not g688(G528, xenc218); +not g689(G669, G537); +assign G672 = G537; +not g691(G569, G500); +and g692(G588, G566, G500); +not g693(G618, G525); +and g694(G639, G615, G525); +nand g695(G867, xenc231, xenc79, xenc48, G540, G482, xenc244, G503, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g700(G675, G663, G669); +and g701(G688, xenc158, G669); +and g702(G696, G663, G672); +and g703(G710, xenc158, G672); +and g704(G73, G949, G867, G932, G932); +and g705(G572, G565, G569); +and g706(G573, G566, G569); +and g707(G621, G614, G618); +and g708(G622, G615, G618); +nand g709(G776, G588a, xenc206, G696, G731, G958); +nand g710(G780, G588a, xenc206, xenc196, xenc27, G958); +nand g711(G784, G588a, xenc206, xenc196, G746, G958); +nand g712(G788, G588a, xenc206, G688, G731, G958); +nand g713(G812, G588b, xenc206, G710, G746, xenc13); +nand g714(G832, G588b, G639b, G696, G770, xenc13); +nand g715(G836, G588b, G639b, G710, xenc27, xenc13); +and g716(G1509, G588a, xenc206, G696, G731, G958); +and g717(G1517, G588a, xenc206, xenc196, xenc27, G958); +and g718(G1525, G588a, xenc206, xenc196, G746, G958); +and g719(G1533, G588a, xenc206, G688, G731, G958); +and g720(G1581, G588b, xenc206, G710, G746, xenc13); +and g721(G1621, G588b, G639b, G696, G770, xenc13); +and g722(G1629, G588b, G639b, G710, xenc27, xenc13); +nand g723(G792, G588a, G622, G696, xenc27, G958); +nand g724(G796, G588b, G622, G696, G746, G958); +nand g725(G800, G588b, G622, G710, G731, G958); +nand g726(G804, G588b, G622, xenc196, G770, G958); +nand g727(G808, G588b, G622, G688, xenc27, xenc13); +nand g728(G816, G573, G639b, G696, xenc27, xenc13); +nand g729(G820, G573, G639b, G696, G746, xenc13); +nand g730(G824, G573, G639b, G710, G731, xenc13); +nand g731(G828, G573, G639b, G688, xenc27, xenc13); +nand g732(G871, G588b, G622, xenc196, G731, xenc245); +nand g733(G873, G573, G639b, xenc196, G731, xenc245); +nand g734(G875, G573, G622, G696, G731, xenc245); +nand g735(G877, G573, G622, xenc196, xenc27, xenc245); +nand g736(G879, G573, G622, xenc196, G746, xenc245); +nand g737(G881, G573, G622, G688, G731, xenc245); +nand g738(G883, G573, G621, xenc196, G731, xenc245); +nand g739(G885, G572, G622, xenc196, G731, xenc245); +and g740(G1541, G588a, G622, G696, xenc27, G958); +and g741(G1549, G588b, G622, G696, G746, G958); +and g742(G1557, G588b, G622, G710, G731, G958); +and g743(G1565, G588b, G622, xenc196, G770, G958); +and g744(G1573, G588b, G622, G688, xenc27, xenc13); +and g745(G1589, G573, G639b, G696, xenc27, xenc13); +and g746(G1597, G573, G639b, G696, G746, xenc13); +and g747(G1605, G573, G639b, G710, G731, xenc13); +and g748(G1613, G573, G639b, G688, xenc27, xenc13); +nand g749(G1, G1509, G1512); +not g750(G1513, G1509); +nand g751(G4, G1517, G1520); +not g752(G1521, G1517); +nand g753(G7, xenc138, G1528); +not g754(G1529, xenc138); +nand g755(G10, G1533, G1536); +not g756(G1537, G1533); +nand g757(G28, G1581, G1584); +not g758(G1585, G1581); +nand g759(G43, G1621, G1624); +not g760(G1625, G1621); +nand g761(G46, G1629, G1632); +not g762(G1633, G1629); +and g763(G886, G871, G873, xenc142, G877, G879, G881, xenc109, G885); +nand g764(G2, G1506, G1513); +nand g765(G5, xenc222, G1521); +nand g766(G8, G1522, G1529); +nand g767(G11, G1530, xenc194); +nand g768(G13, xenc16, G1544); +not g769(G1545, xenc16); +nand g770(G16, xenc94, G1552); +not g771(G1553, xenc94); +nand g772(G19, G1557, xenc165); +not g773(G1561, G1557); +nand g774(G22, G1565, G1568); +not g775(G1569, G1565); +nand g776(G25, G1573, G1576); +not g777(G1577, G1573); +nand g778(G29, xenc63, G1585); +nand g779(G31, G1589, xenc1); +not g780(G1593, G1589); +nand g781(G34, G1597, G1600); +not g782(G1601, G1597); +nand g783(G37, G1605, G1608); +not g784(G1609, G1605); +nand g785(G40, G1613, xenc30); +not g786(G1617, G1613); +nand g787(G44, G1618, G1625); +nand g788(G47, G1626, G1633); +nand g789(G857, xenc135, G780, G784, xenc177, G792, G796, xenc29, xenc164); +nand g790(G860, G808, xenc17, G816, G820, xenc73, xenc45, G832, G836); +and g791(G863, xenc135, G780, G784, xenc177, G792, G796, xenc29, xenc164); +and g792(G865, G808, xenc17, G816, G820, xenc73, xenc45, G832, G836); +nand g793(xenc112, G1, G2); +nand g794(xenc77, G4, G5); +nand g795(G9, G7, G8); +nand g796(G12, G10, G11); +nand g797(G14, xenc87, xenc170); +nand g798(G17, G1546, xenc120); +nand g799(G20, xenc139, G1561); +nand g800(G23, G1562, G1569); +nand g801(G26, G1570, G1577); +nand g802(G30, G28, G29); +nand g803(G32, xenc47, G1593); +nand g804(G35, G1594, G1601); +nand g805(G38, G1602, G1609); +nand g806(G41, G1610, G1617); +nand g807(G45, G43, G44); +nand g808(G48, xenc198, G47); +and g809(G1913, xenc211, G859); +and g810(G1921, G860, G862); +nand g811(G15, xenc153, G14); +nand g812(G18, G16, G17); +nand g813(G21, G19, G20); +nand g814(xenc174, G22, G23); +nand g815(G27, G25, xenc224); +nand g816(G33, G31, G32); +nand g817(G36, G34, G35); +nand g818(xenc49, G37, xenc183); +nand g819(xenc68, G40, G41); +and g820(G887, G863, G865, G886); +nand g821(G462, G863, G865); +and g822(G74, G949, G867, G952, G887); +nand g823(G1637, G1913, G1916); +not g824(G1917, G1913); +nand g825(G1647, G1921, G1924); +not g826(G1925, G1921); +nor g827(G75, xenc201, xenc221); +and g828(G1020, xenc84, G911, G462); +and g829(G1144, G469, G911, G462); +and g830(G1386, G475, G911, G462); +and g831(G1394, G478, G911, G462); +and g832(G1402, G459, G911, G462); +nand g833(G1638, xenc254, G1917); +nand g834(G1648, G1918, G1925); +and g835(G1806, G472, G911, G462); +nand g836(G1639, xenc148, G1638); +nand g837(G1649, G1647, xenc53); +nand g838(G287, G1020, xenc116); +nand g839(G350, G1144, xenc65); +nand g840(G427, G1386, G1393); +nand g841(G429, xenc38, G1401); +nand g842(G431, G1402, G1409); +not g843(G1028, G1020); +not g844(G1152, G1144); +not g845(G1392, G1386); +not g846(G1400, xenc38); +not g847(G1408, G1402); +not g848(G1812, xenc204); +nand g849(G1216, xenc204, G1813); +nand g850(G286, G1025, G1028); +nand g851(G349, G1149, G1152); +nand g852(G426, xenc145, G1392); +nand g853(G428, xenc32, G1400); +nand g854(G430, G1405, G1408); +nand g855(G67, G1639, xenc163); +not g856(G1643, G1639); +nand g857(G70, xenc197, G1652); +not g858(G1653, xenc197); +nand g859(G1215, G1809, G1812); +nand g860(G49, G286, G287); +nand g861(G53, G349, G350); +nand g862(G59, G426, xenc219); +nand g863(G61, G428, G429); +nand g864(G65, G430, G431); +nand g865(G68, G1634, G1643); +nand g866(G71, G1644, G1653); +nand g867(G1217, xenc179, xenc176); +and g868(G51, G49, G50); +and g869(G54, G52, G53); +and g870(xenc152, xenc130, G59); +and g871(G63, G61, G62); +and g872(xenc171, xenc255, xenc242); +nand g873(G69, G67, G68); +nand g874(G72, xenc76, G71); +nand g875(G375, xenc74, xenc150); +not g876(G1221, xenc74); +nand g877(G376, xenc182, G1221); +nand g878(G55, G375, xenc137); +and g879(xenc235, G55, G56); +or g880(xenc0, G1226, keyinput0); +or g881(xenc1, G1592, keyinput1); +and g882(xenc2, G365, keyinput2); +or g883(xenc3, G1211, keyinput3); +or g884(xenc4, G495, keyinput4); +or g885(xenc5, G1822, keyinput5); +and g886(xenc6, G198, keyinput6); +or g887(xenc7, G1373, keyinput7); +or g888(xenc8, G1237, keyinput8); +and g889(xenc9, G1869, keyinput9); +or g890(xenc10, G954, keyinput10); +and g891(xenc11, G1844, keyinput11); +and g892(xenc12, G1732, keyinput12); +and g893(xenc13, G969, keyinput13); +or g894(xenc14, G999, keyinput14); +and g895(xenc15, G1162, keyinput15); +or g896(xenc16, G1541, keyinput16); +and g897(xenc17, G812, keyinput17); +or g898(xenc18, G1673, keyinput18); +or g899(xenc19, G272, keyinput19); +or g900(xenc20, G297, keyinput20); +and g901(xenc21, G1294, keyinput21); +and g902(xenc22, G1662, keyinput22); +or g903(xenc23, G1797, keyinput23); +or g904(xenc24, G1893, keyinput24); +or g905(xenc25, G1260, keyinput25); +or g906(xenc26, G1854, keyinput26); +or g907(xenc27, G756, keyinput27); +and g908(xenc28, G1741, keyinput28); +and g909(xenc29, G800, keyinput29); +or g910(xenc30, G1616, keyinput30); +and g911(xenc31, G1892, keyinput31); +or g912(xenc32, G1397, keyinput32); +or g913(xenc33, G1700, keyinput33); +or g914(xenc34, G417, keyinput34); +and g915(xenc35, G352, keyinput35); +or g916(xenc36, G1909, keyinput36); +or g917(xenc37, G261, keyinput37); +or g918(xenc38, G1394, keyinput38); +and g919(xenc39, G1043, keyinput39); +or g920(xenc40, G956, keyinput40); +or g921(xenc41, G340, keyinput41); +and g922(xenc42, G1326, keyinput42); +or g923(xenc43, G1796, keyinput43); +or g924(xenc44, G1259, keyinput44); +and g925(xenc45, G828, keyinput45); +and g926(xenc46, G1885, keyinput46); +or g927(xenc47, G1586, keyinput47); +and g928(xenc48, G552, keyinput48); +or g929(G39, xenc49, keyinput49); +and g930(xenc50, G1781, keyinput50); +and g931(xenc51, G407, keyinput51); +or g932(xenc52, G1841, keyinput52); +and g933(xenc53, G1648, keyinput53); +or g934(xenc54, G498, keyinput54); +and g935(xenc55, G285, keyinput55); +and g936(xenc56, G404, keyinput56); +and g937(xenc57, G1685, keyinput57); +or g938(xenc58, G1718, keyinput58); +and g939(xenc59, G1361, keyinput59); +and g940(xenc60, G1729, keyinput60); +and g941(xenc61, G302, keyinput61); +and g942(xenc62, G1071, keyinput62); +or g943(xenc63, G1578, keyinput63); +and g944(xenc64, G1426, keyinput64); +or g945(xenc65, G1153, keyinput65); +or g946(xenc66, G1793, keyinput66); +or g947(xenc67, G1061, keyinput67); +and g948(G42, xenc68, keyinput68); +or g949(xenc69, G1125, keyinput69); +or g950(xenc70, G943, keyinput70); +or g951(xenc71, G934, keyinput71); +and g952(xenc72, G202, keyinput72); +or g953(xenc73, G824, keyinput73); +or g954(xenc74, G1217, keyinput74); +or g955(xenc75, G1676, keyinput75); +or g956(xenc76, G70, keyinput76); +or g957(G6, xenc77, keyinput77); +and g958(xenc78, G359, keyinput78); +and g959(xenc79, G564, keyinput79); +and g960(xenc80, G397, keyinput80); +or g961(xenc81, G245, keyinput81); +and g962(xenc82, G296, keyinput82); +or g963(xenc83, G1457, keyinput83); +or g964(xenc84, G457, keyinput84); +or g965(xenc85, G1697, keyinput85); +or g966(xenc86, G1170, keyinput86); +or g967(xenc87, G1538, keyinput87); +or g968(xenc88, G1283, keyinput88); +and g969(xenc89, G366, keyinput89); +and g970(xenc90, G1273, keyinput90); +and g971(xenc91, G1669, keyinput91); +or g972(xenc92, G1189, keyinput92); +and g973(xenc93, G1782, keyinput93); +or g974(xenc94, G1549, keyinput94); +or g975(xenc95, G1750, keyinput95); +and g976(xenc96, G990, keyinput96); +or g977(xenc97, G1090, keyinput97); +and g978(xenc98, G1222, keyinput98); +and g979(xenc99, G1828, keyinput99); +and g980(xenc100, G1089, keyinput100); +or g981(xenc101, G553, keyinput101); +and g982(xenc102, G420, keyinput102); +and g983(xenc103, G358, keyinput103); +and g984(xenc104, G513, keyinput104); +or g985(xenc105, G1083, keyinput105); +or g986(xenc106, G512, keyinput106); +and g987(xenc107, G1312, keyinput107); +and g988(xenc108, G1726, keyinput108); +and g989(xenc109, G883, keyinput109); +and g990(xenc110, G305, keyinput110); +and g991(xenc111, G1458, keyinput111); +or g992(G3, xenc112, keyinput112); +and g993(xenc113, G418, keyinput113); +or g994(xenc114, G324, keyinput114); +and g995(xenc115, G1785, keyinput115); +or g996(xenc116, G1029, keyinput116); +and g997(xenc117, G549, keyinput117); +and g998(xenc118, G1335, keyinput118); +and g999(xenc119, G1174, keyinput119); +and g1000(xenc120, G1553, keyinput120); +and g1001(xenc121, G1442, keyinput121); +and g1002(xenc122, G719, keyinput122); +or g1003(xenc123, G1309, keyinput123); +and g1004(xenc124, G1724, keyinput124); +and g1005(xenc125, G497, keyinput125); +and g1006(xenc126, G1480, keyinput126); +and g1007(xenc127, G1860, keyinput127); +or g1008(xenc128, G318, keyinput128); +and g1009(xenc129, G1171, keyinput129); +or g1010(xenc130, G58, keyinput130); +or g1011(xenc131, G379, keyinput131); +or g1012(xenc132, G1804, keyinput132); +or g1013(xenc133, G1325, keyinput133); +or g1014(xenc134, G1166, keyinput134); +and g1015(xenc135, G776, keyinput135); +and g1016(xenc136, G385, keyinput136); +and g1017(xenc137, G376, keyinput137); +and g1018(xenc138, G1525, keyinput138); +and g1019(xenc139, G1554, keyinput139); +and g1020(xenc140, G453, keyinput140); +and g1021(xenc141, G1003, keyinput141); +and g1022(xenc142, G875, keyinput142); +or g1023(xenc143, G1165, keyinput143); +and g1024(xenc144, G1183, keyinput144); +or g1025(xenc145, G1389, keyinput145); +and g1026(xenc146, G1038, keyinput146); +or g1027(xenc147, G179, keyinput147); +or g1028(xenc148, G1637, keyinput148); +and g1029(xenc149, G1657, keyinput149); +or g1030(xenc150, G1220, keyinput150); +or g1031(xenc151, G1142, keyinput151); +and g1032(G60, xenc152, keyinput152); +and g1033(xenc153, G13, keyinput153); +or g1034(xenc154, G1449, keyinput154); +and g1035(xenc155, G310, keyinput155); +and g1036(xenc156, G1249, keyinput156); +or g1037(xenc157, G1490, keyinput157); +or g1038(xenc158, G666, keyinput158); +or g1039(xenc159, G1833, keyinput159); +and g1040(xenc160, G1338, keyinput160); +and g1041(xenc161, G262, keyinput161); +and g1042(xenc162, G1445, keyinput162); +or g1043(xenc163, G1642, keyinput163); +or g1044(xenc164, G804, keyinput164); +or g1045(xenc165, G1560, keyinput165); +or g1046(xenc166, G1117, keyinput166); +or g1047(xenc167, G1481, keyinput167); +or g1048(xenc168, G1384, keyinput168); +or g1049(xenc169, G355, keyinput169); +or g1050(xenc170, G1545, keyinput170); +and g1051(G66, xenc171, keyinput171); +or g1052(xenc172, G1121, keyinput172); +or g1053(xenc173, G510, keyinput173); +or g1054(G24, xenc174, keyinput174); +or g1055(xenc175, G1437, keyinput175); +and g1056(xenc176, G1216, keyinput176); +or g1057(xenc177, G788, keyinput177); +and g1058(xenc178, G1352, keyinput178); +or g1059(xenc179, G1215, keyinput179); +or g1060(xenc180, G1303, keyinput180); +and g1061(xenc181, G1900, keyinput181); +and g1062(xenc182, G1212, keyinput182); +or g1063(xenc183, G38, keyinput183); +and g1064(xenc184, G533, keyinput184); +or g1065(xenc185, G335, keyinput185); +and g1066(xenc186, G492, keyinput186); +and g1067(xenc187, G536, keyinput187); +or g1068(xenc188, G360, keyinput188); +or g1069(xenc189, G1244, keyinput189); +or g1070(xenc190, G1239, keyinput190); +or g1071(xenc191, G257, keyinput191); +or g1072(xenc192, G421, keyinput192); +or g1073(xenc193, G1095, keyinput193); +and g1074(xenc194, G1537, keyinput194); +and g1075(xenc195, G1281, keyinput195); +and g1076(xenc196, G675, keyinput196); +and g1077(xenc197, G1649, keyinput197); +or g1078(xenc198, G46, keyinput198); +or g1079(xenc199, G1316, keyinput199); +or g1080(xenc200, G1740, keyinput200); +and g1081(xenc201, G73, keyinput201); +or g1082(xenc202, G1769, keyinput202); +or g1083(xenc203, G1450, keyinput203); +or g1084(xenc204, G1806, keyinput204); +or g1085(xenc205, G1717, keyinput205); +and g1086(xenc206, G639a, keyinput206); +or g1087(xenc207, G388, keyinput207); +and g1088(xenc208, G1665, keyinput208); +or g1089(xenc209, G398, keyinput209); +and g1090(xenc210, G1708, keyinput210); +and g1091(xenc211, G857, keyinput211); +or g1092(xenc212, G241, keyinput212); +and g1093(xenc213, G274, keyinput213); +or g1094(xenc214, G1339, keyinput214); +or g1095(xenc215, G511, keyinput215); +and g1096(xenc216, G1164, keyinput216); +or g1097(xenc217, G1496, keyinput217); +or g1098(xenc218, G522, keyinput218); +or g1099(xenc219, G427, keyinput219); +and g1100(xenc220, G282, keyinput220); +and g1101(xenc221, G74, keyinput221); +and g1102(xenc222, G1514, keyinput222); +or g1103(xenc223, G907, keyinput223); +or g1104(xenc224, G26, keyinput224); +and g1105(xenc225, G1050, keyinput225); +or g1106(xenc226, G1692, keyinput226); +or g1107(xenc227, G1897, keyinput227); +and g1108(xenc228, G1230, keyinput228); +and g1109(xenc229, G1110, keyinput229); +and g1110(xenc230, G1721, keyinput230); +and g1111(xenc231, G516, keyinput231); +and g1112(xenc232, G1024, keyinput232); +and g1113(xenc233, G988, keyinput233); +or g1114(xenc234, G441, keyinput234); +or g1115(G57, xenc235, keyinput235); +or g1116(xenc236, G1862, keyinput236); +or g1117(xenc237, G1830, keyinput237); +and g1118(xenc238, G1289, keyinput238); +or g1119(xenc239, G1207, keyinput239); +and g1120(xenc240, G1677, keyinput240); +and g1121(xenc241, G1773, keyinput241); +or g1122(xenc242, G65, keyinput242); +or g1123(xenc243, G1876, keyinput243); +or g1124(xenc244, G528, keyinput244); +or g1125(xenc245, G979, keyinput245); +and g1126(xenc246, G1293, keyinput246); +or g1127(xenc247, G1013, keyinput247); +and g1128(xenc248, G1710, keyinput248); +or g1129(xenc249, G390, keyinput249); +and g1130(xenc250, G1901, keyinput250); +or g1131(xenc251, G1018, keyinput251); +or g1132(xenc252, G1440, keyinput252); +and g1133(xenc253, G392, keyinput253); +and g1134(xenc254, G1910, keyinput254); +and g1135(xenc255, G64, keyinput255); +endmodule diff --git a/benchmarks/c1908/c1908_aor_64bit.v b/benchmarks/c1908/c1908_aor_64bit.v new file mode 100644 index 0000000..8aa6cb6 --- /dev/null +++ b/benchmarks/c1908/c1908_aor_64bit.v @@ -0,0 +1,1069 @@ +// Verilog File +module c1908_aor_64bit.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63,G3,G6, +G9,G12,G30,G45,G48,G15,G18,G21,G24,G27, +G33,G36,G39,G42,G75,G51,G54,G60,G63,G66, +G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +G1520, G1528, G1536, G1544, G1552, G1560, G1568, G1576, G1584, G1592, +xenc36, G1600, G1608, xenc8, G1616, G1624, G1632, xenc44, G50, G52, +G56, G58, G62, G64, xenc46, G251, G254, G288, G291, G299, +G302, G318, G321, G327, G330, G352, G355, G369, G382, G385, +G853, G856, G893, G954, G955, G1050, G1053, G1176, G1179, G1197, +G1207, G1222, G1244, G1278, G1290, G1300, G1312, G1332, G1335, G1442, +G1450, G1458, G1466, G1474, G1482, G1490, G1498, G1634, G1644, G1657, +G1665, G1697, G1705, G1713, G1721, G1745, G1753, G1785, G1793, G1814, +G1817, G1830, G1833, G1841, G1849, G1854, G1857, G1870, G1873, G1878, +G1881, G1642, G1652, G1056, G1057, G1182, xenc4, G1183, G1211, G1298, +G1320, G1338, G1339, G457, G459, G482, G487, G492, G505, G1456, +G1448, G1472, G1464, G1488, G1480, xenc51, G1504, G1496, G956, G967, +G978, G979, G980, G1661, G990, G1669, G1030, G1701, G1040, G1709, +G1058, G1717, G1068, G1725, G1078, G1090, G1100, G1749, G1112, G1757, +G1154, G1789, G1166, G1797, G1194, G1201, G1204, G1820, G1821, G1230, +G1836, G1837, G1252, G1256, G1845, G1268, G1853, xenc14, G1860, G1861, +G1286, G1876, G1877, G1308, G1884, xenc32, G1885, xenc12, G1654, G1662, +G1694, G1702, G1710, G1718, G1726, G1734, G1742, G1750, G1782, G1790, +G1838, G1846, G297, G298, G361, G362, G404, G405, G1225, G1226, +G1247, G1248, G1281, G1282, G1303, G1304, G1315, G1316, G998, G988, +G268, G1038, G1048, G1076, G1066, G1098, G1120, G1174, xenc23, G363, +xenc49, G1210, G373, G1276, xenc41, G406, G565, G566, G614, G615, +G958, G969, G1660, G984, G1668, G994, G1700, G1034, G1708, G1044, +G1716, G1062, G1724, G1072, G1732, G1086, G1740, G1748, G1104, G1108, +G1756, G1116, G1788, G1158, G1162, G1796, G1170, G1200, G1203, G1227, +G1249, G1844, G1260, G1264, G1852, G1272, G1283, G1305, G1317, G1410, +G1418, G1426, G1434, G269, G372, G983, G993, G1033, G1043, G1061, +G1071, G1103, G1115, G1157, G1169, G1184, G1202, G1259, G1271, G1322, +G374, G396, G1321, G1424, G1416, G1440, G1432, G985, G995, G1035, +G1045, G1063, G1073, G1105, xenc15, G1117, G1159, G1171, G1212, G1231, +G1232, G1253, G1254, G1261, G1273, G1287, G1288, G1309, G1310, G1192, +G397, xenc30, G1330, G1000, G1010, G1233, G1255, G1289, G1311, G1381, +G257, G999, G260, G989, G272, G1039, G294, G1049, G305, G1077, +G308, G1067, G333, G1121, G358, G1175, G1220, G388, G1277, G398, +G1109, G1110, G1163, G1164, G1234, G1265, G1266, G1822, G1862, G1865, +G258, G261, G273, G1018, G1008, G295, G306, G309, G334, G359, +G389, G1385, G1111, G1165, G1267, G1886, G259, xenc26, G262, G274, +G296, G307, G310, xenc5, G335, xenc10, G360, G1242, G390, G1828, +G1868, G1869, G1373, G1798, G1825, G265, G314, G336, G407, G1293, +G1294, G1892, G1777, G1889, G410, G1377, G1804, xenc55, G1237, G1829, +G1295, xenc31, G1670, G1678, G1729, G1737, xenc58, G1761, G1769, G340, +G343, G1781, G1238, G1325, G1893, G1340, G1352, G1673, G1681, G1801, +G1897, G1905, G391, G1299, G1676, G1684, G1081, G1733, G1093, G1741, +G1765, G1773, xenc60, G1239, G1326, G1894, G1902, G392, G1360, G1003, +G1677, G1013, G1685, G1082, G1094, G1122, G1134, G1187, G1805, G1327, +G1901, G1348, G1909, xenc50, G1758, G1766, G377, G1243, G393, G1004, +G1014, G1083, G1095, G1188, xenc0, G1900, xenc53, G1344, xenc3, G1908, +G1356, G1142, G378, G399, G1331, G1005, G1015, G1764, G1126, G1130, +G1772, G1138, G1189, G1343, G1355, xenc52, G324, G1099, G379, G400, +G449, G1087, G1088, G1125, G1137, G1345, G1357, G1397, G277, G1019, +G280, G1009, G325, G364, G1193, G401, G1089, G1127, G1139, G278, +G281, xenc21, G326, G365, G413, G1361, G1401, G445, G1349, G1350, +G1389, G1493, G1501, xenc16, G1689, G279, G282, G346, G1143, G366, +G414, G453, G1131, G1132, G1351, G1365, G1405, G285, G347, G367, +xenc33, G415, G1393, G556, G1505, G559, G1497, G1693, xenc25, G1133, +G1477, G1485, G1809, G348, G1369, G1409, G557, G560, G1362, xenc43, +G1378, G1429, G1437, G1686, G1774, G1910, G1918, G544, G1489, G547, +G1481, G558, G561, G1813, G1370, G1368, G417, G1384, G424, G508, +G1441, G511, G1433, G545, G548, G564, G1692, G1024, G1780, G1148, +G1916, G1924, xenc47, G416, G1376, G421, G423, G509, G512, G546, +G549, G719, G722, G1023, G1147, G418, G420, G425, G510, G513, +G552, G1025, xenc37, G1149, G419, xenc54, G422, G441, G516, G725, +G728, xenc42, G1029, G1153, G433, G437, G663, G666, G731, xenc63, +G746, G756, G770, G1461, G1469, G1413, G1421, G1445, G1453, G532, +G1473, xenc35, G535, G1465, G495, G1425, G498, G1417, G520, G1457, +G523, G1449, G533, G536, xenc7, G496, G499, G521, xenc9, G524, +G534, G537, G497, G500, G522, G525, xenc56, G540, G503, G528, +G669, G672, G569, G588, G618, xenc48, G639, xenc57, xenc6, G867, +G588a, G588b, G639a, G639b, G675, G688, G696, G710, G73, xenc39, +G572, G573, G621, G622, xenc24, G776, G780, G784, G788, G812, +G832, G836, G1509, G1517, G1525, G1533, G1581, G1621, G1629, G792, +G796, G800, G804, G808, G816, G820, G824, G828, G871, G873, +G875, G877, G879, G881, xenc61, G883, xenc45, G885, G1541, G1549, +G1557, G1565, G1573, G1589, G1597, G1605, G1613, G1, G1513, G4, +G1521, G7, G1529, G10, G1537, G28, G1585, G43, G1625, xenc13, +G46, G1633, G886, G2, G5, G8, G11, G13, G1545, G16, +G1553, G19, G1561, G22, G1569, G25, G1577, xenc38, G29, G31, +G1593, xenc28, G34, G1601, G37, G1609, G40, G1617, G44, xenc34, +G47, G857, xenc29, xenc59, xenc17, G860, G863, G865, xenc2, G14, +G17, G20, G23, G26, G32, xenc18, G35, G38, G41, G1913, +G1921, xenc22, xenc11, G887, G462, G74, xenc1, G1637, G1917, G1647, +G1925, G1020, G1144, G1386, G1394, G1402, xenc20, G1638, G1648, G1806, +G1639, G1649, G287, G350, G427, G429, G431, G1028, G1152, G1392, +G1400, G1408, G1812, G1216, G286, G349, G426, G428, G430, G67, +G1643, G70, G1653, G1215, G49, G53, G59, G61, G65, G68, +G71, G1217, xenc62, xenc27, xenc19, xenc40, G375, G1221, G376, G55; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, G1514); +not g60(G1528, G1522); +not g61(G1536, G1530); +not g62(G1544, G1538); +not g63(G1552, G1546); +not g64(G1560, G1554); +not g65(G1568, G1562); +not g66(G1576, G1570); +not g67(G1584, G1578); +not g68(G1592, G1586); +not g69(G1600, xenc36); +not g70(G1608, G1602); +not g71(G1616, xenc8); +not g72(G1624, G1618); +not g73(G1632, G1626); +nand g74(G50, xenc44, G947); +nand g75(G52, xenc44, G947); +nand g76(G56, xenc44, G947); +nand g77(G58, xenc44, G947); +nand g78(G62, xenc44, G947); +nand g79(G64, xenc44, G947); +assign G251 = xenc46; +assign G254 = G153; +assign G288 = G165; +assign G291 = G168; +assign G299 = G184; +assign G302 = G202; +and g86(G318, G224, G938); +assign G321 = G179; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, G938); +assign G355 = G198; +and g92(G369, G210, G241, G938); +assign G382 = G206; +assign G385 = G198; +nand g95(G853, G943, G907); +nand g96(G856, G943, G909); +nand g97(G893, G248, G237); +nand g98(G954, G248, G922); +nand g99(G955, G244, G922); +assign G1050 = G160; +assign G1053 = G175; +assign G1176 = G179; +assign G1179 = G198; +assign G1197 = xenc46; +assign G1207 = xenc46; +assign G1222 = G153; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, G245, G938); +assign G1300 = G191; +assign G1312 = G160; +assign G1332 = G194; +and g113(G1335, G221, G245, G938); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = G553; +assign G1498 = G553; +and g122(G1634, G231, G934); +and g123(G1644, G233, G934); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = G171; +assign G1705 = G171; +assign G1713 = G206; +assign G1721 = G206; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = G160; +assign G1793 = G160; +assign G1814 = G165; +assign G1817 = G175; +and g136(G1830, G214, G241, G938); +assign G1833 = G202; +assign G1841 = G179; +assign G1849 = G179; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = G202; +assign G1878 = G171; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, G1050); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, xenc4); +not g152(G1211, G1207); +not g153(G1298, G1290); +not g154(G1320, G1312); +not g155(G1338, G1332); +not g156(G1339, G1335); +and g157(G457, G210, G955); +and g158(G459, G217, G954); +nand g159(G482, G214, G955); +nand g160(G487, G221, G954); +nand g161(G492, G210, G955); +nand g162(G505, G217, G954); +not g163(G1456, G1450); +not g164(G1448, G1442); +not g165(G1472, G1466); +not g166(G1464, G1458); +not g167(G1488, G1482); +not g168(G1480, G1474); +not g169(G1504, xenc51); +not g170(G1496, G1490); +nand g171(G956, G907, G919, G943, G893); +nand g172(G967, G909, G919, G943, G893); +nand g173(G978, G926, G949, G893); +and g174(G979, G926, G949, G893); +assign G980 = G251; +not g176(G1661, G1657); +assign G990 = G251; +not g178(G1669, G1665); +assign G1030 = G288; +not g180(G1701, G1697); +assign G1040 = G288; +not g182(G1709, G1705); +assign G1058 = G299; +not g184(G1717, G1713); +assign G1068 = G299; +not g186(G1725, G1721); +assign G1078 = G318; +assign G1090 = G318; +assign G1100 = G327; +not g190(G1749, G1745); +assign G1112 = G327; +not g192(G1757, G1753); +assign G1154 = G352; +not g194(G1789, G1785); +assign G1166 = G352; +not g196(G1797, G1793); +assign G1194 = G369; +not g198(G1201, G1197); +assign G1204 = G369; +not g200(G1820, G1814); +not g201(G1821, G1817); +not g202(G1230, G1222); +not g203(G1836, G1830); +not g204(G1837, G1833); +not g205(G1252, G1244); +assign G1256 = G382; +not g207(G1845, G1841); +assign G1268 = G382; +not g209(G1853, G1849); +not g210(G1860, xenc14); +not g211(G1861, G1857); +not g212(G1286, G1278); +not g213(G1876, G1870); +not g214(G1877, G1873); +not g215(G1308, G1300); +not g216(G1884, G1878); +not g217(G1885, xenc32); +assign G1654 = xenc12; +assign G1662 = xenc12; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = G302; +assign G1718 = G302; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = G355; +assign G1790 = G355; +assign G1838 = G385; +assign G1846 = G385; +nand g232(G297, G1053, G1056); +nand g233(G298, G1050, G1057); +nand g234(G361, xenc4, G1182); +nand g235(G362, G1176, G1183); +nand g236(G404, G1335, G1338); +nand g237(G405, G1332, G1339); +nand g238(G1225, G1817, G1820); +nand g239(G1226, G1814, G1821); +nand g240(G1247, G1833, G1836); +nand g241(G1248, G1830, G1837); +nand g242(G1281, G1857, G1860); +nand g243(G1282, xenc14, G1861); +nand g244(G1303, G1873, G1876); +nand g245(G1304, G1870, G1877); +nand g246(G1315, xenc32, G1884); +nand g247(G1316, G1878, G1885); +not g248(G998, G990); +not g249(G988, G980); +nand g250(G268, G297, G298); +not g251(G1038, G1030); +not g252(G1048, G1040); +not g253(G1076, G1068); +not g254(G1066, G1058); +not g255(G1098, G1090); +not g256(G1120, G1112); +not g257(G1174, G1166); +nand g258(G363, xenc23, G362); +not g259(G1210, xenc49); +nand g260(G373, xenc49, G1211); +not g261(G1276, G1268); +nand g262(G406, xenc41, G405); +not g263(G565, G482); +assign G566 = G482; +not g265(G614, G487); +assign G615 = G487; +nand g267(G958, G956, G978); +nand g268(G969, G967, G978); +not g269(G1660, G1654); +nand g270(G984, G1654, G1661); +not g271(G1668, G1662); +nand g272(G994, G1662, G1669); +not g273(G1700, G1694); +nand g274(G1034, G1694, G1701); +not g275(G1708, G1702); +nand g276(G1044, G1702, G1709); +not g277(G1716, G1710); +nand g278(G1062, G1710, G1717); +not g279(G1724, G1718); +nand g280(G1072, G1718, G1725); +not g281(G1732, G1726); +not g282(G1086, G1078); +not g283(G1740, G1734); +not g284(G1748, G1742); +nand g285(G1104, G1742, G1749); +not g286(G1108, G1100); +not g287(G1756, G1750); +nand g288(G1116, G1750, G1757); +not g289(G1788, G1782); +nand g290(G1158, G1782, G1789); +not g291(G1162, G1154); +not g292(G1796, G1790); +nand g293(G1170, G1790, G1797); +not g294(G1200, G1194); +nand g295(G1203, G1194, G1201); +nand g296(G1227, G1225, G1226); +nand g297(G1249, G1247, G1248); +not g298(G1844, G1838); +nand g299(G1260, G1838, G1845); +not g300(G1264, G1256); +not g301(G1852, G1846); +nand g302(G1272, G1846, G1853); +nand g303(G1283, G1281, G1282); +nand g304(G1305, G1303, G1304); +nand g305(G1317, G1315, G1316); +assign G1410 = G492; +assign G1418 = G492; +assign G1426 = G505; +assign G1434 = G505; +not g310(G269, G268); +nand g311(G372, G1207, G1210); +nand g312(G983, G1657, G1660); +nand g313(G993, G1665, G1668); +nand g314(G1033, G1697, G1700); +nand g315(G1043, G1705, G1708); +nand g316(G1061, G1713, G1716); +nand g317(G1071, G1721, G1724); +nand g318(G1103, G1745, G1748); +nand g319(G1115, G1753, G1756); +nand g320(G1157, G1785, G1788); +nand g321(G1169, G1793, G1796); +not g322(G1184, G363); +nand g323(G1202, G1197, G1200); +nand g324(G1259, G1841, G1844); +nand g325(G1271, G1849, G1852); +not g326(G1322, G406); +nand g327(G374, G372, G373); +nand g328(G396, G1317, G1320); +not g329(G1321, G1317); +not g330(G1424, G1418); +not g331(G1416, G1410); +not g332(G1440, G1434); +not g333(G1432, G1426); +nand g334(G985, G983, G984); +nand g335(G995, G993, G994); +nand g336(G1035, G1033, G1034); +nand g337(G1045, G1043, G1044); +nand g338(G1063, G1061, G1062); +nand g339(G1073, G1071, G1072); +nand g340(G1105, G1103, G1104); +nand g341(G1117, xenc15, G1116); +nand g342(G1159, G1157, G1158); +nand g343(G1171, G1169, G1170); +nand g344(G1212, G1202, G1203); +not g345(G1231, G1227); +nand g346(G1232, G1227, G1230); +not g347(G1253, G1249); +nand g348(G1254, G1249, G1252); +nand g349(G1261, G1259, G1260); +nand g350(G1273, G1271, G1272); +not g351(G1287, G1283); +nand g352(G1288, G1283, G1286); +not g353(G1309, G1305); +nand g354(G1310, G1305, G1308); +not g355(G1192, G1184); +nand g356(G397, G1312, G1321); +not g357(G1330, xenc30); +assign G1000 = G269; +assign G1010 = G269; +nand g360(G1233, G1222, G1231); +nand g361(G1255, G1244, G1253); +nand g362(G1289, G1278, G1287); +nand g363(G1311, G1300, G1309); +not g364(G1381, G374); +nand g365(G257, G995, G998); +not g366(G999, G995); +nand g367(G260, G985, G988); +not g368(G989, G985); +nand g369(G272, G1035, G1038); +not g370(G1039, G1035); +nand g371(G294, G1045, G1048); +not g372(G1049, G1045); +nand g373(G305, G1073, G1076); +not g374(G1077, G1073); +nand g375(G308, G1063, G1066); +not g376(G1067, G1063); +nand g377(G333, G1117, G1120); +not g378(G1121, G1117); +nand g379(G358, G1171, G1174); +not g380(G1175, G1171); +not g381(G1220, G1212); +nand g382(G388, G1273, G1276); +not g383(G1277, G1273); +nand g384(G398, G396, G397); +not g385(G1109, G1105); +nand g386(G1110, G1105, G1108); +not g387(G1163, G1159); +nand g388(G1164, G1159, G1162); +nand g389(G1234, G1232, G1233); +not g390(G1265, G1261); +nand g391(G1266, G1261, G1264); +nand g392(G1822, G1254, G1255); +nand g393(G1862, G1310, G1311); +nand g394(G1865, G1288, G1289); +nand g395(G258, G990, G999); +nand g396(G261, G980, G989); +nand g397(G273, G1030, G1039); +not g398(G1018, G1010); +not g399(G1008, G1000); +nand g400(G295, G1040, G1049); +nand g401(G306, G1068, G1077); +nand g402(G309, G1058, G1067); +nand g403(G334, G1112, G1121); +nand g404(G359, G1166, G1175); +nand g405(G389, G1268, G1277); +not g406(G1385, G1381); +nand g407(G1111, G1100, G1109); +nand g408(G1165, G1154, G1163); +nand g409(G1267, G1256, G1265); +not g410(G1886, G398); +nand g411(G259, G257, G258); +nand g412(G262, xenc26, G261); +nand g413(G274, G272, G273); +nand g414(G296, G294, G295); +nand g415(G307, G305, G306); +nand g416(G310, G308, G309); +nand g417(G335, G333, xenc5); +nand g418(G360, xenc10, G359); +not g419(G1242, G1234); +nand g420(G390, G388, G389); +not g421(G1828, G1822); +not g422(G1868, G1862); +not g423(G1869, G1865); +nand g424(G1373, G1164, G1165); +nand g425(G1798, G1110, G1111); +nand g426(G1825, G1266, G1267); +not g427(G265, G259); +not g428(G314, G307); +not g429(G336, G335); +not g430(G407, G296); +nand g431(G1293, G1865, G1868); +nand g432(G1294, G1862, G1869); +not g433(G1892, G1886); +not g434(G1777, G360); +not g435(G1889, G390); +assign G410 = G310; +not g437(G1377, G1373); +not g438(G1804, G1798); +nand g439(G1237, G1825, xenc55); +not g440(G1829, G1825); +nand g441(G1295, G1293, G1294); +assign G1670 = xenc31; +assign G1678 = xenc31; +assign G1729 = G310; +assign G1737 = G310; +assign G1761 = xenc58; +assign G1769 = xenc58; +assign G340 = G336; +assign G343 = G314; +not g450(G1781, G1777); +nand g451(G1238, G1822, G1829); +nand g452(G1325, G1889, G1892); +not g453(G1893, G1889); +assign G1340 = G407; +assign G1352 = G407; +assign G1673 = G265; +assign G1681 = G265; +assign G1801 = G314; +assign G1897 = G336; +assign G1905 = G336; +nand g461(G391, G1295, G1298); +not g462(G1299, G1295); +not g463(G1676, G1670); +not g464(G1684, G1678); +nand g465(G1081, G1729, G1732); +not g466(G1733, G1729); +nand g467(G1093, G1737, G1740); +not g468(G1741, G1737); +not g469(G1765, G1761); +not g470(G1773, G1769); +nand g471(G1239, xenc60, G1238); +nand g472(G1326, G1886, G1893); +assign G1894 = G410; +assign G1902 = G410; +nand g475(G392, G1290, G1299); +not g476(G1360, G1352); +nand g477(G1003, G1673, G1676); +not g478(G1677, G1673); +nand g479(G1013, G1681, G1684); +not g480(G1685, G1681); +nand g481(G1082, G1726, G1733); +nand g482(G1094, G1734, G1741); +assign G1122 = G340; +assign G1134 = G340; +nand g485(G1187, G1801, G1804); +not g486(G1805, G1801); +nand g487(G1327, G1325, G1326); +not g488(G1901, G1897); +not g489(G1348, G1340); +not g490(G1909, G1905); +assign G1758 = xenc50; +assign G1766 = xenc50; +nand g493(G377, G1239, G1242); +not g494(G1243, G1239); +nand g495(G393, G391, G392); +nand g496(G1004, G1670, G1677); +nand g497(G1014, G1678, G1685); +nand g498(G1083, G1081, G1082); +nand g499(G1095, G1093, G1094); +nand g500(G1188, G1798, G1805); +not g501(G1900, xenc0); +nand g502(G1344, xenc0, xenc53); +not g503(G1908, xenc3); +nand g504(G1356, xenc3, G1909); +not g505(G1142, G1134); +nand g506(G378, G1234, G1243); +nand g507(G399, G1327, G1330); +not g508(G1331, G1327); +nand g509(G1005, G1003, G1004); +nand g510(G1015, G1013, G1014); +not g511(G1764, G1758); +nand g512(G1126, G1758, G1765); +not g513(G1130, G1122); +not g514(G1772, G1766); +nand g515(G1138, G1766, G1773); +nand g516(G1189, G1187, G1188); +nand g517(G1343, G1897, G1900); +nand g518(G1355, G1905, G1908); +nand g519(G324, G1095, xenc52); +not g520(G1099, G1095); +nand g521(G379, G377, G378); +nand g522(G400, xenc30, G1331); +nand g523(G449, G393, G918); +not g524(G1087, G1083); +nand g525(G1088, G1083, G1086); +nand g526(G1125, G1761, G1764); +nand g527(G1137, G1769, G1772); +nand g528(G1345, G1343, G1344); +nand g529(G1357, G1355, G1356); +assign G1397 = G393; +nand g531(G277, G1015, G1018); +not g532(G1019, G1015); +nand g533(G280, G1005, G1008); +not g534(G1009, G1005); +nand g535(G325, G1090, G1099); +nand g536(G364, G1189, G1192); +not g537(G1193, G1189); +nand g538(G401, G399, G400); +nand g539(G1089, G1078, G1087); +nand g540(G1127, G1125, G1126); +nand g541(G1139, G1137, G1138); +nand g542(G278, G1010, G1019); +nand g543(G281, G1000, G1009); +nand g544(G326, xenc21, G325); +nand g545(G365, G1184, G1193); +nand g546(G413, G1357, G1360); +not g547(G1361, G1357); +not g548(G1401, G1397); +nand g549(G445, G379, G918); +not g550(G1349, G1345); +nand g551(G1350, G1345, G1348); +assign G1389 = G379; +assign G1493 = G449; +assign G1501 = G449; +nand g555(G1689, xenc16, G1089); +nand g556(G279, G277, G278); +nand g557(G282, G280, G281); +nand g558(G346, G1139, G1142); +not g559(G1143, G1139); +nand g560(G366, G364, G365); +nand g561(G414, G1352, G1361); +nand g562(G453, G401, G918); +not g563(G1131, G1127); +nand g564(G1132, G1127, G1130); +nand g565(G1351, G1340, G1349); +not g566(G1365, G326); +assign G1405 = G401; +not g568(G285, G279); +nand g569(G347, G1134, G1143); +not g570(G367, G366); +nand g571(G415, G413, xenc33); +not g572(G1393, G1389); +nand g573(G556, G1501, G1504); +not g574(G1505, G1501); +nand g575(G559, G1493, G1496); +not g576(G1497, G1493); +not g577(G1693, G1689); +nand g578(G1133, G1122, xenc25); +assign G1477 = G445; +assign G1485 = G445; +nand g581(G1809, G1350, G1351); +nand g582(G348, G346, G347); +not g583(G1369, G1365); +not g584(G1409, G1405); +nand g585(G557, xenc51, G1505); +nand g586(G560, G1490, G1497); +assign G1362 = G282; +not g588(G1378, xenc43); +assign G1429 = G453; +assign G1437 = G453; +assign G1686 = G282; +nand g592(G1774, G1132, G1133); +and g593(G1910, G285, G853); +and g594(G1918, G856, G367); +nand g595(G544, G1485, G1488); +not g596(G1489, G1485); +nand g597(G547, G1477, G1480); +not g598(G1481, G1477); +nand g599(G558, G556, G557); +nand g600(G561, G559, G560); +not g601(G1813, G1809); +not g602(G1370, G348); +not g603(G1368, G1362); +nand g604(G417, G1362, G1369); +not g605(G1384, G1378); +nand g606(G424, G1378, G1385); +nand g607(G508, G1437, G1440); +not g608(G1441, G1437); +nand g609(G511, G1429, G1432); +not g610(G1433, G1429); +nand g611(G545, G1482, G1489); +nand g612(G548, G1474, G1481); +not g613(G564, G558); +not g614(G1692, G1686); +nand g615(G1024, G1686, G1693); +not g616(G1780, G1774); +nand g617(G1148, G1774, G1781); +not g618(G1916, G1910); +not g619(G1924, G1918); +nand g620(G416, G1365, xenc47); +not g621(G1376, G1370); +nand g622(G421, G1370, G1377); +nand g623(G423, G1381, G1384); +nand g624(G509, G1434, G1441); +nand g625(G512, G1426, G1433); +nand g626(G546, G544, G545); +nand g627(G549, G547, G548); +not g628(G719, G561); +assign G722 = G561; +nand g630(G1023, G1689, G1692); +nand g631(G1147, G1777, G1780); +nand g632(G418, G416, G417); +nand g633(G420, G1373, G1376); +nand g634(G425, G423, G424); +nand g635(G510, G508, G509); +nand g636(G513, G511, G512); +not g637(G552, G546); +nand g638(G1025, G1023, G1024); +nand g639(G1149, xenc37, G1148); +not g640(G419, G418); +nand g641(G422, G420, xenc54); +nand g642(G441, G425, G918); +not g643(G516, G510); +not g644(G725, G549); +assign G728 = G549; +not g646(G1029, xenc42); +not g647(G1153, G1149); +nand g648(G433, G419, G918); +nand g649(G437, G422, G918); +not g650(G663, G513); +assign G666 = G513; +and g652(G731, G719, G725); +and g653(G746, xenc63, G725); +and g654(G756, G719, G728); +and g655(G770, xenc63, G728); +assign G1461 = G441; +assign G1469 = G441; +assign G1413 = G433; +assign G1421 = G433; +assign G1445 = G437; +assign G1453 = G437; +nand g662(G532, G1469, G1472); +not g663(G1473, G1469); +nand g664(G535, xenc35, G1464); +not g665(G1465, xenc35); +nand g666(G495, G1421, G1424); +not g667(G1425, G1421); +nand g668(G498, G1413, G1416); +not g669(G1417, G1413); +nand g670(G520, G1453, G1456); +not g671(G1457, G1453); +nand g672(G523, G1445, G1448); +not g673(G1449, G1445); +nand g674(G533, G1466, G1473); +nand g675(G536, G1458, G1465); +nand g676(G496, G1418, xenc7); +nand g677(G499, G1410, G1417); +nand g678(G521, G1450, G1457); +nand g679(G524, G1442, xenc9); +nand g680(G534, G532, G533); +nand g681(G537, G535, G536); +nand g682(G497, G495, G496); +nand g683(G500, G498, G499); +nand g684(G522, G520, G521); +nand g685(G525, G523, G524); +not g686(G540, xenc56); +not g687(G503, G497); +not g688(G528, G522); +not g689(G669, G537); +assign G672 = G537; +not g691(G569, G500); +and g692(G588, G566, G500); +not g693(G618, G525); +and g694(G639, xenc48, G525); +nand g695(G867, G516, xenc57, G552, G540, G482, G528, xenc6, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g700(G675, G663, G669); +and g701(G688, G666, G669); +and g702(G696, G663, G672); +and g703(G710, G666, G672); +and g704(G73, G949, G867, G932, G932); +and g705(G572, G565, xenc39); +and g706(G573, G566, xenc39); +and g707(G621, G614, G618); +and g708(G622, xenc48, G618); +nand g709(G776, G588a, G639a, G696, xenc24, G958); +nand g710(G780, G588a, G639a, G675, G756, G958); +nand g711(G784, G588a, G639a, G675, G746, G958); +nand g712(G788, G588a, G639a, G688, xenc24, G958); +nand g713(G812, G588b, G639a, G710, G746, G969); +nand g714(G832, G588b, G639b, G696, G770, G969); +nand g715(G836, G588b, G639b, G710, G756, G969); +and g716(G1509, G588a, G639a, G696, xenc24, G958); +and g717(G1517, G588a, G639a, G675, G756, G958); +and g718(G1525, G588a, G639a, G675, G746, G958); +and g719(G1533, G588a, G639a, G688, xenc24, G958); +and g720(G1581, G588b, G639a, G710, G746, G969); +and g721(G1621, G588b, G639b, G696, G770, G969); +and g722(G1629, G588b, G639b, G710, G756, G969); +nand g723(G792, G588a, G622, G696, G756, G958); +nand g724(G796, G588b, G622, G696, G746, G958); +nand g725(G800, G588b, G622, G710, xenc24, G958); +nand g726(G804, G588b, G622, G675, G770, G958); +nand g727(G808, G588b, G622, G688, G756, G969); +nand g728(G816, G573, G639b, G696, G756, G969); +nand g729(G820, G573, G639b, G696, G746, G969); +nand g730(G824, G573, G639b, G710, xenc24, G969); +nand g731(G828, G573, G639b, G688, G756, G969); +nand g732(G871, G588b, G622, G675, xenc24, G979); +nand g733(G873, G573, G639b, G675, xenc24, G979); +nand g734(G875, G573, G622, G696, xenc24, G979); +nand g735(G877, G573, G622, G675, G756, G979); +nand g736(G879, G573, G622, G675, G746, G979); +nand g737(G881, G573, G622, G688, xenc24, G979); +nand g738(G883, G573, xenc61, G675, xenc24, G979); +nand g739(G885, xenc45, G622, G675, xenc24, G979); +and g740(G1541, G588a, G622, G696, G756, G958); +and g741(G1549, G588b, G622, G696, G746, G958); +and g742(G1557, G588b, G622, G710, xenc24, G958); +and g743(G1565, G588b, G622, G675, G770, G958); +and g744(G1573, G588b, G622, G688, G756, G969); +and g745(G1589, G573, G639b, G696, G756, G969); +and g746(G1597, G573, G639b, G696, G746, G969); +and g747(G1605, G573, G639b, G710, xenc24, G969); +and g748(G1613, G573, G639b, G688, G756, G969); +nand g749(G1, G1509, G1512); +not g750(G1513, G1509); +nand g751(G4, G1517, G1520); +not g752(G1521, G1517); +nand g753(G7, G1525, G1528); +not g754(G1529, G1525); +nand g755(G10, G1533, G1536); +not g756(G1537, G1533); +nand g757(G28, G1581, G1584); +not g758(G1585, G1581); +nand g759(G43, G1621, G1624); +not g760(G1625, G1621); +nand g761(G46, G1629, xenc13); +not g762(G1633, G1629); +and g763(G886, G871, G873, G875, G877, G879, G881, G883, G885); +nand g764(G2, G1506, G1513); +nand g765(G5, G1514, G1521); +nand g766(G8, G1522, G1529); +nand g767(G11, G1530, G1537); +nand g768(G13, G1541, G1544); +not g769(G1545, G1541); +nand g770(G16, G1549, G1552); +not g771(G1553, G1549); +nand g772(G19, G1557, G1560); +not g773(G1561, G1557); +nand g774(G22, G1565, G1568); +not g775(G1569, G1565); +nand g776(G25, G1573, G1576); +not g777(G1577, G1573); +nand g778(G29, G1578, xenc38); +nand g779(G31, G1589, G1592); +not g780(G1593, G1589); +nand g781(G34, xenc28, G1600); +not g782(G1601, xenc28); +nand g783(G37, G1605, G1608); +not g784(G1609, G1605); +nand g785(G40, G1613, G1616); +not g786(G1617, G1613); +nand g787(G44, G1618, G1625); +nand g788(G47, G1626, xenc34); +nand g789(G857, G776, G780, G784, G788, G792, G796, G800, G804); +nand g790(G860, G808, G812, xenc29, xenc59, G824, G828, G832, xenc17); +and g791(G863, G776, G780, G784, G788, G792, G796, G800, G804); +and g792(G865, G808, G812, xenc29, xenc59, G824, G828, G832, xenc17); +nand g793(G3, G1, G2); +nand g794(G6, G4, G5); +nand g795(G9, G7, G8); +nand g796(G12, xenc2, G11); +nand g797(G14, G1538, G1545); +nand g798(G17, G1546, G1553); +nand g799(G20, G1554, G1561); +nand g800(G23, G1562, G1569); +nand g801(G26, G1570, G1577); +nand g802(G30, G28, G29); +nand g803(G32, G1586, G1593); +nand g804(G35, xenc36, xenc18); +nand g805(G38, G1602, G1609); +nand g806(G41, xenc8, G1617); +nand g807(G45, G43, G44); +nand g808(G48, G46, G47); +and g809(G1913, G857, G859); +and g810(G1921, G860, G862); +nand g811(G15, G13, G14); +nand g812(G18, xenc22, G17); +nand g813(G21, G19, G20); +nand g814(G24, G22, xenc11); +nand g815(G27, G25, G26); +nand g816(G33, G31, G32); +nand g817(G36, G34, G35); +nand g818(G39, G37, G38); +nand g819(G42, G40, G41); +and g820(G887, G863, G865, G886); +nand g821(G462, G863, G865); +and g822(G74, G949, G867, G952, G887); +nand g823(G1637, G1913, xenc1); +not g824(G1917, G1913); +nand g825(G1647, G1921, G1924); +not g826(G1925, G1921); +nor g827(G75, G73, G74); +and g828(G1020, G457, G911, G462); +and g829(G1144, G469, G911, G462); +and g830(G1386, G475, G911, G462); +and g831(G1394, G478, G911, G462); +and g832(G1402, G459, G911, G462); +nand g833(G1638, G1910, xenc20); +nand g834(G1648, G1918, G1925); +and g835(G1806, G472, G911, G462); +nand g836(G1639, G1637, G1638); +nand g837(G1649, G1647, G1648); +nand g838(G287, G1020, G1029); +nand g839(G350, G1144, G1153); +nand g840(G427, G1386, G1393); +nand g841(G429, G1394, G1401); +nand g842(G431, G1402, G1409); +not g843(G1028, G1020); +not g844(G1152, G1144); +not g845(G1392, G1386); +not g846(G1400, G1394); +not g847(G1408, G1402); +not g848(G1812, G1806); +nand g849(G1216, G1806, G1813); +nand g850(G286, xenc42, G1028); +nand g851(G349, G1149, G1152); +nand g852(G426, G1389, G1392); +nand g853(G428, G1397, G1400); +nand g854(G430, G1405, G1408); +nand g855(G67, G1639, G1642); +not g856(G1643, G1639); +nand g857(G70, G1649, G1652); +not g858(G1653, G1649); +nand g859(G1215, G1809, G1812); +nand g860(G49, G286, G287); +nand g861(G53, G349, G350); +nand g862(G59, G426, G427); +nand g863(G61, G428, G429); +nand g864(G65, G430, G431); +nand g865(G68, G1634, G1643); +nand g866(G71, G1644, G1653); +nand g867(G1217, G1215, G1216); +and g868(G51, G49, G50); +and g869(G54, xenc62, G53); +and g870(G60, G58, G59); +and g871(G63, G61, G62); +and g872(G66, G64, G65); +nand g873(G69, xenc27, G68); +nand g874(xenc19, G70, G71); +nand g875(G375, xenc40, G1220); +not g876(G1221, xenc40); +nand g877(G376, G1212, G1221); +nand g878(G55, G375, G376); +and g879(G57, G55, G56); +and g880(xenc0, G1894, keyinput0); +and g881(xenc1, G1916, keyinput1); +or g882(xenc2, G10, keyinput2); +and g883(xenc3, G1902, keyinput3); +or g884(xenc4, G1179, keyinput4); +or g885(xenc5, G334, keyinput5); +or g886(xenc6, G503, keyinput6); +or g887(xenc7, G1425, keyinput7); +or g888(xenc8, G1610, keyinput8); +and g889(xenc9, G1449, keyinput9); +and g890(xenc10, G358, keyinput10); +or g891(xenc11, G23, keyinput11); +and g892(xenc12, G254, keyinput12); +and g893(xenc13, G1632, keyinput13); +or g894(xenc14, G1854, keyinput14); +or g895(xenc15, G1115, keyinput15); +and g896(xenc16, G1088, keyinput16); +and g897(xenc17, G836, keyinput17); +or g898(xenc18, G1601, keyinput18); +and g899(G72, xenc19, keyinput19); +and g900(xenc20, G1917, keyinput20); +or g901(xenc21, G324, keyinput21); +and g902(xenc22, G16, keyinput22); +and g903(xenc23, G361, keyinput23); +and g904(xenc24, G731, keyinput24); +or g905(xenc25, G1131, keyinput25); +or g906(xenc26, G260, keyinput26); +and g907(xenc27, G67, keyinput27); +and g908(xenc28, G1597, keyinput28); +or g909(xenc29, G816, keyinput29); +and g910(xenc30, G1322, keyinput30); +and g911(xenc31, G274, keyinput31); +or g912(xenc32, G1881, keyinput32); +and g913(xenc33, G414, keyinput33); +and g914(xenc34, G1633, keyinput34); +and g915(xenc35, G1461, keyinput35); +or g916(xenc36, G1594, keyinput36); +and g917(xenc37, G1147, keyinput37); +or g918(xenc38, G1585, keyinput38); +and g919(xenc39, G569, keyinput39); +and g920(xenc40, G1217, keyinput40); +and g921(xenc41, G404, keyinput41); +and g922(xenc42, G1025, keyinput42); +and g923(xenc43, G415, keyinput43); +and g924(xenc44, G930, keyinput44); +or g925(xenc45, G572, keyinput45); +or g926(xenc46, G149, keyinput46); +and g927(xenc47, G1368, keyinput47); +or g928(xenc48, G615, keyinput48); +and g929(xenc49, G1204, keyinput49); +and g930(xenc50, G343, keyinput50); +and g931(xenc51, G1498, keyinput51); +and g932(xenc52, G1098, keyinput52); +or g933(xenc53, G1901, keyinput53); +and g934(xenc54, G421, keyinput54); +and g935(xenc55, G1828, keyinput55); +and g936(xenc56, G534, keyinput56); +and g937(xenc57, G564, keyinput57); +or g938(xenc58, G262, keyinput58); +and g939(xenc59, G820, keyinput59); +or g940(xenc60, G1237, keyinput60); +or g941(xenc61, G621, keyinput61); +or g942(xenc62, G52, keyinput62); +and g943(xenc63, G722, keyinput63); +endmodule diff --git a/benchmarks/c1908/c1908_lut_128bit.v b/benchmarks/c1908/c1908_lut_128bit.v new file mode 100644 index 0000000..b1cef16 --- /dev/null +++ b/benchmarks/c1908/c1908_lut_128bit.v @@ -0,0 +1,1172 @@ +// Verilog File +module c1908_lut_128bit.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput1_7,keyinput0_7,keyinput0_2,keyinput0_4,keyinput0_3,keyinput0_1, +keyinput0_5,keyinput0_0,keyinput1_0,keyinput2_0,keyinput3_0,keyinput4_0,keyinput5_0,keyinput6_0,keyinput7_0,keyinput8_0, +keyinput9_0,keyinput10_0,keyinput11_0,keyinput12_0,keyinput13_0,keyinput14_0,keyinput15_0,keyinput1_1,keyinput2_1,keyinput3_1, +keyinput4_1,keyinput5_1,keyinput6_1,keyinput7_1,keyinput8_1,keyinput9_1,keyinput10_1,keyinput11_1,keyinput12_1,keyinput13_1, +keyinput14_1,keyinput15_1,keyinput1_2,keyinput2_2,keyinput3_2,keyinput4_2,keyinput5_2,keyinput6_2,keyinput7_2,keyinput8_2, +keyinput9_2,keyinput10_2,keyinput11_2,keyinput12_2,keyinput13_2,keyinput14_2,keyinput15_2,keyinput1_3,keyinput2_3,keyinput3_3, +keyinput4_3,keyinput5_3,keyinput6_3,keyinput7_3,keyinput8_3,keyinput9_3,keyinput10_3,keyinput11_3,keyinput12_3,keyinput13_3, +keyinput14_3,keyinput15_3,keyinput1_4,keyinput2_4,keyinput3_4,keyinput4_4,keyinput5_4,keyinput6_4,keyinput7_4,keyinput8_4, +keyinput9_4,keyinput10_4,keyinput11_4,keyinput12_4,keyinput13_4,keyinput14_4,keyinput15_4,keyinput1_5,keyinput2_5,keyinput3_5, +keyinput4_5,keyinput5_5,keyinput6_5,keyinput7_5,keyinput8_5,keyinput9_5,keyinput10_5,keyinput11_5,keyinput12_5,keyinput13_5, +keyinput14_5,keyinput15_5,keyinput0_6,keyinput1_6,keyinput2_6,keyinput3_6,keyinput4_6,keyinput5_6,keyinput6_6,keyinput7_6, +keyinput8_6,keyinput9_6,keyinput10_6,keyinput11_6,keyinput12_6,keyinput13_6,keyinput14_6,keyinput15_6,keyinput2_7,keyinput3_7, +keyinput4_7,keyinput5_7,keyinput6_7,keyinput7_7,keyinput8_7,keyinput9_7,keyinput10_7,keyinput11_7,keyinput12_7,keyinput13_7, +keyinput14_7,keyinput15_7,G3,G6,G9,G12,G30,G45,G48,G15, +G18,G21,G24,G27,G33,G36,G39,G42,G75,G51, +G54,G60,G63,G66,G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput1_7,keyinput0_7,keyinput0_2,keyinput0_4,keyinput0_3,keyinput0_1, +keyinput0_5,keyinput0_0,keyinput1_0,keyinput2_0,keyinput3_0,keyinput4_0,keyinput5_0,keyinput6_0,keyinput7_0,keyinput8_0, +keyinput9_0,keyinput10_0,keyinput11_0,keyinput12_0,keyinput13_0,keyinput14_0,keyinput15_0,keyinput1_1,keyinput2_1,keyinput3_1, +keyinput4_1,keyinput5_1,keyinput6_1,keyinput7_1,keyinput8_1,keyinput9_1,keyinput10_1,keyinput11_1,keyinput12_1,keyinput13_1, +keyinput14_1,keyinput15_1,keyinput1_2,keyinput2_2,keyinput3_2,keyinput4_2,keyinput5_2,keyinput6_2,keyinput7_2,keyinput8_2, +keyinput9_2,keyinput10_2,keyinput11_2,keyinput12_2,keyinput13_2,keyinput14_2,keyinput15_2,keyinput1_3,keyinput2_3,keyinput3_3, +keyinput4_3,keyinput5_3,keyinput6_3,keyinput7_3,keyinput8_3,keyinput9_3,keyinput10_3,keyinput11_3,keyinput12_3,keyinput13_3, +keyinput14_3,keyinput15_3,keyinput1_4,keyinput2_4,keyinput3_4,keyinput4_4,keyinput5_4,keyinput6_4,keyinput7_4,keyinput8_4, +keyinput9_4,keyinput10_4,keyinput11_4,keyinput12_4,keyinput13_4,keyinput14_4,keyinput15_4,keyinput1_5,keyinput2_5,keyinput3_5, +keyinput4_5,keyinput5_5,keyinput6_5,keyinput7_5,keyinput8_5,keyinput9_5,keyinput10_5,keyinput11_5,keyinput12_5,keyinput13_5, +keyinput14_5,keyinput15_5,keyinput0_6,keyinput1_6,keyinput2_6,keyinput3_6,keyinput4_6,keyinput5_6,keyinput6_6,keyinput7_6, +keyinput8_6,keyinput9_6,keyinput10_6,keyinput11_6,keyinput12_6,keyinput13_6,keyinput14_6,keyinput15_6,keyinput2_7,keyinput3_7, +keyinput4_7,keyinput5_7,keyinput6_7,keyinput7_7,keyinput8_7,keyinput9_7,keyinput10_7,keyinput11_7,keyinput12_7,keyinput13_7, +keyinput14_7,keyinput15_7; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +G1520, G1528, G1536, G1544, G1552, G1560, G1568, G1576, G1584, G1592, +G1600, G1608, G1616, G1624, G1632, G50, G52, G56, G58, G62, +G64, G251, G254, G288, G291, G299, G302, G318, G321, G327, +G330, G352, G355, G369, G382, G385, G853, G856, G893, G954, +G955, G1050, G1053, G1176, G1179, G1197, G1207, G1222, G1244, G1278, +G1290, G1300, G1312, G1332, G1335, G1442, G1450, G1458, G1466, G1474, +G1482, G1490, G1498, G1634, G1644, G1657, G1665, G1697, G1705, G1713, +G1721, G1745, G1753, G1785, G1793, G1814, G1817, G1830, G1833, G1841, +G1849, G1854, G1857, G1870, G1873, G1878, G1881, G1642, G1652, G1056, +G1057, G1182, G1183, G1211, G1298, G1320, G1338, G1339, G457, G459, +G482, G487, G492, G505, G1456, G1448, G1472, G1464, G1488, G1480, +G1504, G1496, G967, G978, G979, G980, G1661, G990, G1669, G1030, +G1701, G1040, G1709, G1058, G1717, G1068, G1725, G1078, G1090, G1100, +G1749, G1112, G1757, G1154, G1789, G1166, G1797, G1194, G1201, G1204, +G1820, G1821, G1230, G1836, G1837, G1252, G1256, G1845, G1268, G1853, +G1860, G1861, G1286, G1876, G1877, G1308, G1884, G1885, G1654, G1662, +G1694, G1702, G1710, G1718, G1726, G1734, G1742, G1750, G1782, G1790, +G1838, G1846, G297, G298, G361, G362, G404, G405, G1225, G1226, +G1247, G1248, G1281, G1282, G1303, G1304, G998, G988, G268, G1038, +G1048, G1076, G1066, G1098, G1120, G1174, G363, G1210, G373, G1276, +G406, G565, G566, G614, G615, G956, G958, G969, G1660, G984, +G1668, G994, G1700, G1034, G1708, G1044, G1716, G1062, G1724, G1072, +G1732, G1086, G1740, G1748, G1104, G1108, G1756, G1116, G1788, G1158, +G1162, G1796, G1170, G1200, G1203, G1227, G1249, G1844, G1260, G1264, +G1852, G1272, G1283, G1305, G1410, G1418, G1426, G1434, G269, G372, +G983, G993, G1033, G1043, G1061, G1071, G1103, G1115, G1157, G1169, +G1184, G1202, G1259, G1271, G1322, G374, G1317, G396, G1321, G1424, +G1416, G1440, G1432, G985, G995, G1035, G1045, G1063, G1073, G1105, +G1117, G1159, G1171, G1212, G1231, G1232, G1253, G1254, G1261, G1273, +G1287, G1288, G1309, G1310, G1192, G397, G1330, G1000, G1010, G1233, +G1255, G1289, G1311, G1381, G257, G999, G989, G272, G1039, G294, +G1049, G305, G1077, G308, G1067, G1121, G358, G1175, G1220, G388, +G1277, G398, G1109, G1110, G1163, G1164, G1234, G1265, G1266, G1822, +G1862, G1865, G258, G273, G1018, G1008, G295, G306, G309, G359, +G389, G1385, G1111, G1165, G1267, G1886, G259, G274, G296, G307, +G310, G360, G1242, G390, G1828, G1868, G1869, G1373, G1798, G1825, +G265, G314, G407, G1293, G1294, G1892, G1777, G1889, G410, G1377, +G1804, G1237, G1829, G1295, G1670, G1678, G1729, G1737, G262, G1761, +G1769, G336, G340, G343, G1781, G1238, G1325, G1893, G1340, G1352, +G1673, G1681, G1801, G1897, G1905, G391, G1299, G1676, G1684, G1081, +G1733, G1093, G1741, G1765, G1773, G1239, G1326, G1894, G1902, G392, +G1360, G1003, G1677, G1013, G1685, G1082, G1094, G1122, G1134, G1187, +G1805, G1327, G1901, G1348, G1909, G1758, G1766, G377, G1243, G393, +G1004, G1014, G1083, G1095, G1188, G1900, G1344, G1908, G1356, G1142, +G378, G399, G1331, G1005, G1015, G1764, G1130, G1772, G1138, G1189, +G1343, G1355, G324, G1099, G379, G400, G449, G1087, G1088, G1137, +G1345, G1357, G1397, G277, G1019, G280, G1009, G325, G364, G1193, +G401, G1089, G1139, G278, G281, G326, G365, G413, G1361, G1401, +G445, G1349, G1350, G1389, G1493, G1501, G1689, G279, G282, G1143, +G366, G414, G453, G1127, G1131, G1132, G1351, G1365, G1405, G285, +G367, G415, G1393, G556, G1505, G559, G1497, G1693, G1133, G1477, +G1485, G1809, G1369, G1409, G557, G560, G1362, G1378, G1429, G1437, +G1686, G1774, G1910, G1918, G544, G1489, G547, G1481, G558, G561, +G1813, G348, G1370, G1368, G1384, G424, G508, G1441, G511, G1433, +G545, G548, G564, G1692, G1024, G1780, G1148, G1916, G1924, G1376, +G421, G423, G509, G512, G546, G549, G719, G722, G1023, G1147, +G420, G425, G510, G513, G552, G1025, G1149, G418, G419, G422, +G441, G516, G725, G728, G1029, G1153, G433, G437, G663, G666, +G731, G746, G756, G770, G1461, G1469, G1413, G1421, G1445, G1453, +G532, G1473, G535, G1465, G495, G1425, G498, G1417, G1457, G523, +G1449, G533, G536, G496, G499, G524, G534, G537, G497, G500, +G525, G540, G503, G522, G528, G669, G672, G569, G588, G618, +G639, G867, G588a, G588b, G639a, G639b, G675, G688, G696, G710, +G73, G572, G573, G621, G622, G776, G780, G784, G788, G812, +G832, G836, G1509, G1517, G1525, G1533, G1581, G1621, G1629, G792, +G796, G800, G804, G808, G816, G820, G824, G828, G871, G873, +G875, G877, G879, G881, G883, G885, G1541, G1549, G1557, G1565, +G1573, G1589, G1597, G1605, G1613, G1, G1513, G4, G1521, G7, +G1529, G10, G1537, G28, G1585, G43, G1625, G46, G1633, G886, +G2, G5, G8, G11, G13, G1545, G16, G1553, G19, G1561, +G22, G1569, G25, G1577, G29, G31, G1593, G34, G1601, G37, +G1609, G40, G1617, G44, G47, G857, G860, G863, G865, G14, +G17, G20, G23, G26, G32, G35, G38, G41, G1913, G1921, +G887, G462, G74, G1637, G1917, G1647, G1925, G1020, G1144, G1386, +G1394, G1402, G1638, G1648, G1806, G1639, G1649, G287, G350, G427, +G429, G431, G1028, G1152, G1392, G1400, G1408, G1812, G1216, G286, +G349, G426, G428, G430, G67, G1643, G70, G1653, G1215, G49, +G53, G59, G61, G65, G68, G71, G1217, G375, G1221, G376, +G55, in0not_0, in1not_0, in2not_0, in3not_0, T0_0, T1_0, T2_0, T3_0, T4_0, +T5_0, T6_0, T7_0, T8_0, T9_0, T10_0, T11_0, T12_0, T13_0, T14_0, +T15_0, in0not_1, in1not_1, in2not_1, in3not_1, T0_1, T1_1, T2_1, T3_1, T4_1, +T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1, T12_1, T13_1, T14_1, +T15_1, in0not_2, in1not_2, in2not_2, in3not_2, T0_2, T1_2, T2_2, T3_2, T4_2, +T5_2, T6_2, T7_2, T8_2, T9_2, T10_2, T11_2, T12_2, T13_2, T14_2, +T15_2, in0not_3, in1not_3, in2not_3, in3not_3, T0_3, T1_3, T2_3, T3_3, T4_3, +T5_3, T6_3, T7_3, T8_3, T9_3, T10_3, T11_3, T12_3, T13_3, T14_3, +T15_3, in0not_4, in1not_4, in2not_4, in3not_4, T0_4, T1_4, T2_4, T3_4, T4_4, +T5_4, T6_4, T7_4, T8_4, T9_4, T10_4, T11_4, T12_4, T13_4, T14_4, +T15_4, in0not_5, in1not_5, in2not_5, in3not_5, T0_5, T1_5, T2_5, T3_5, T4_5, +T5_5, T6_5, T7_5, T8_5, T9_5, T10_5, T11_5, T12_5, T13_5, T14_5, +T15_5, in0not_6, in1not_6, in2not_6, in3not_6, T0_6, T1_6, T2_6, T3_6, T4_6, +T5_6, T6_6, T7_6, T8_6, T9_6, T10_6, T11_6, T12_6, T13_6, T14_6, +T15_6, in0not_7, in1not_7, in2not_7, in3not_7, T0_7, T1_7, T2_7, T3_7, T4_7, +T5_7, T6_7, T7_7, T8_7, T9_7, T10_7, T11_7, T12_7, T13_7, T14_7, +T15_7; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, G1514); +not g60(G1528, G1522); +not g61(G1536, G1530); +not g62(G1544, G1538); +not g63(G1552, G1546); +not g64(G1560, G1554); +not g65(G1568, G1562); +not g66(G1576, G1570); +not g67(G1584, G1578); +not g68(G1592, G1586); +not g69(G1600, G1594); +not g70(G1608, G1602); +not g71(G1616, G1610); +not g72(G1624, G1618); +not g73(G1632, G1626); +nand g74(G50, G930, G947); +nand g75(G52, G930, G947); +nand g76(G56, G930, G947); +nand g77(G58, G930, G947); +nand g78(G62, G930, G947); +nand g79(G64, G930, G947); +assign G251 = G149; +assign G254 = G153; +assign G288 = G165; +assign G291 = G168; +assign G299 = G184; +assign G302 = G202; +and g86(G318, G224, G938); +assign G321 = G179; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, G938); +assign G355 = G198; +and g92(G369, G210, G241, G938); +assign G382 = G206; +assign G385 = G198; +nand g95(G853, G943, G907); +nand g96(G856, G943, G909); +nand g97(G893, G248, G237); +nand g98(G954, G248, G922); +nand g99(G955, G244, G922); +assign G1050 = G160; +assign G1053 = G175; +assign G1176 = G179; +assign G1179 = G198; +assign G1197 = G149; +assign G1207 = G149; +assign G1222 = G153; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, G245, G938); +assign G1300 = G191; +assign G1312 = G160; +assign G1332 = G194; +and g113(G1335, G221, G245, G938); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = G553; +assign G1498 = G553; +and g122(G1634, G231, G934); +and g123(G1644, G233, G934); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = G171; +assign G1705 = G171; +assign G1713 = G206; +assign G1721 = G206; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = G160; +assign G1793 = G160; +assign G1814 = G165; +assign G1817 = G175; +and g136(G1830, G214, G241, G938); +assign G1833 = G202; +assign G1841 = G179; +assign G1849 = G179; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = G202; +assign G1878 = G171; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, G1050); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, G1179); +not g152(G1211, G1207); +not g153(G1298, G1290); +not g154(G1320, G1312); +not g155(G1338, G1332); +not g156(G1339, G1335); +and g157(G457, G210, G955); +and g158(G459, G217, G954); +nand g159(G482, G214, G955); +nand g160(G487, G221, G954); +nand g161(G492, G210, G955); +nand g162(G505, G217, G954); +not g163(G1456, G1450); +not g164(G1448, G1442); +not g165(G1472, G1466); +not g166(G1464, G1458); +not g167(G1488, G1482); +not g168(G1480, G1474); +not g169(G1504, G1498); +not g170(G1496, G1490); +nand g171(G967, G909, G919, G943, G893); +nand g172(G978, G926, G949, G893); +and g173(G979, G926, G949, G893); +assign G980 = G251; +not g175(G1661, G1657); +assign G990 = G251; +not g177(G1669, G1665); +assign G1030 = G288; +not g179(G1701, G1697); +assign G1040 = G288; +not g181(G1709, G1705); +assign G1058 = G299; +not g183(G1717, G1713); +assign G1068 = G299; +not g185(G1725, G1721); +assign G1078 = G318; +assign G1090 = G318; +assign G1100 = G327; +not g189(G1749, G1745); +assign G1112 = G327; +not g191(G1757, G1753); +assign G1154 = G352; +not g193(G1789, G1785); +assign G1166 = G352; +not g195(G1797, G1793); +assign G1194 = G369; +not g197(G1201, G1197); +assign G1204 = G369; +not g199(G1820, G1814); +not g200(G1821, G1817); +not g201(G1230, G1222); +not g202(G1836, G1830); +not g203(G1837, G1833); +not g204(G1252, G1244); +assign G1256 = G382; +not g206(G1845, G1841); +assign G1268 = G382; +not g208(G1853, G1849); +not g209(G1860, G1854); +not g210(G1861, G1857); +not g211(G1286, G1278); +not g212(G1876, G1870); +not g213(G1877, G1873); +not g214(G1308, G1300); +not g215(G1884, G1878); +not g216(G1885, G1881); +assign G1654 = G254; +assign G1662 = G254; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = G302; +assign G1718 = G302; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = G355; +assign G1790 = G355; +assign G1838 = G385; +assign G1846 = G385; +nand g231(G297, G1053, G1056); +nand g232(G298, G1050, G1057); +nand g233(G361, G1179, G1182); +nand g234(G362, G1176, G1183); +nand g235(G404, G1335, G1338); +nand g236(G405, G1332, G1339); +nand g237(G1225, G1817, G1820); +nand g238(G1226, G1814, G1821); +nand g239(G1247, G1833, G1836); +nand g240(G1248, G1830, G1837); +nand g241(G1281, G1857, G1860); +nand g242(G1282, G1854, G1861); +nand g243(G1303, G1873, G1876); +nand g244(G1304, G1870, G1877); +not g245(G998, G990); +not g246(G988, G980); +nand g247(G268, G297, G298); +not g248(G1038, G1030); +not g249(G1048, G1040); +not g250(G1076, G1068); +not g251(G1066, G1058); +not g252(G1098, G1090); +not g253(G1120, G1112); +not g254(G1174, G1166); +nand g255(G363, G361, G362); +not g256(G1210, G1204); +nand g257(G373, G1204, G1211); +not g258(G1276, G1268); +nand g259(G406, G404, G405); +not g260(G565, G482); +assign G566 = G482; +not g262(G614, G487); +assign G615 = G487; +nand g264(G958, G956, G978); +nand g265(G969, G967, G978); +not g266(G1660, G1654); +nand g267(G984, G1654, G1661); +not g268(G1668, G1662); +nand g269(G994, G1662, G1669); +not g270(G1700, G1694); +nand g271(G1034, G1694, G1701); +not g272(G1708, G1702); +nand g273(G1044, G1702, G1709); +not g274(G1716, G1710); +nand g275(G1062, G1710, G1717); +not g276(G1724, G1718); +nand g277(G1072, G1718, G1725); +not g278(G1732, G1726); +not g279(G1086, G1078); +not g280(G1740, G1734); +not g281(G1748, G1742); +nand g282(G1104, G1742, G1749); +not g283(G1108, G1100); +not g284(G1756, G1750); +nand g285(G1116, G1750, G1757); +not g286(G1788, G1782); +nand g287(G1158, G1782, G1789); +not g288(G1162, G1154); +not g289(G1796, G1790); +nand g290(G1170, G1790, G1797); +not g291(G1200, G1194); +nand g292(G1203, G1194, G1201); +nand g293(G1227, G1225, G1226); +nand g294(G1249, G1247, G1248); +not g295(G1844, G1838); +nand g296(G1260, G1838, G1845); +not g297(G1264, G1256); +not g298(G1852, G1846); +nand g299(G1272, G1846, G1853); +nand g300(G1283, G1281, G1282); +nand g301(G1305, G1303, G1304); +assign G1410 = G492; +assign G1418 = G492; +assign G1426 = G505; +assign G1434 = G505; +not g306(G269, G268); +nand g307(G372, G1207, G1210); +nand g308(G983, G1657, G1660); +nand g309(G993, G1665, G1668); +nand g310(G1033, G1697, G1700); +nand g311(G1043, G1705, G1708); +nand g312(G1061, G1713, G1716); +nand g313(G1071, G1721, G1724); +nand g314(G1103, G1745, G1748); +nand g315(G1115, G1753, G1756); +nand g316(G1157, G1785, G1788); +nand g317(G1169, G1793, G1796); +not g318(G1184, G363); +nand g319(G1202, G1197, G1200); +nand g320(G1259, G1841, G1844); +nand g321(G1271, G1849, G1852); +not g322(G1322, G406); +nand g323(G374, G372, G373); +nand g324(G396, G1317, G1320); +not g325(G1321, G1317); +not g326(G1424, G1418); +not g327(G1416, G1410); +not g328(G1440, G1434); +not g329(G1432, G1426); +nand g330(G985, G983, G984); +nand g331(G995, G993, G994); +nand g332(G1035, G1033, G1034); +nand g333(G1045, G1043, G1044); +nand g334(G1063, G1061, G1062); +nand g335(G1073, G1071, G1072); +nand g336(G1105, G1103, G1104); +nand g337(G1117, G1115, G1116); +nand g338(G1159, G1157, G1158); +nand g339(G1171, G1169, G1170); +nand g340(G1212, G1202, G1203); +not g341(G1231, G1227); +nand g342(G1232, G1227, G1230); +not g343(G1253, G1249); +nand g344(G1254, G1249, G1252); +nand g345(G1261, G1259, G1260); +nand g346(G1273, G1271, G1272); +not g347(G1287, G1283); +nand g348(G1288, G1283, G1286); +not g349(G1309, G1305); +nand g350(G1310, G1305, G1308); +not g351(G1192, G1184); +nand g352(G397, G1312, G1321); +not g353(G1330, G1322); +assign G1000 = G269; +assign G1010 = G269; +nand g356(G1233, G1222, G1231); +nand g357(G1255, G1244, G1253); +nand g358(G1289, G1278, G1287); +nand g359(G1311, G1300, G1309); +not g360(G1381, G374); +nand g361(G257, G995, G998); +not g362(G999, G995); +not g363(G989, G985); +nand g364(G272, G1035, G1038); +not g365(G1039, G1035); +nand g366(G294, G1045, G1048); +not g367(G1049, G1045); +nand g368(G305, G1073, G1076); +not g369(G1077, G1073); +nand g370(G308, G1063, G1066); +not g371(G1067, G1063); +not g372(G1121, G1117); +nand g373(G358, G1171, G1174); +not g374(G1175, G1171); +not g375(G1220, G1212); +nand g376(G388, G1273, G1276); +not g377(G1277, G1273); +nand g378(G398, G396, G397); +not g379(G1109, G1105); +nand g380(G1110, G1105, G1108); +not g381(G1163, G1159); +nand g382(G1164, G1159, G1162); +nand g383(G1234, G1232, G1233); +not g384(G1265, G1261); +nand g385(G1266, G1261, G1264); +nand g386(G1822, G1254, G1255); +nand g387(G1862, G1310, G1311); +nand g388(G1865, G1288, G1289); +nand g389(G258, G990, G999); +nand g390(G273, G1030, G1039); +not g391(G1018, G1010); +not g392(G1008, G1000); +nand g393(G295, G1040, G1049); +nand g394(G306, G1068, G1077); +nand g395(G309, G1058, G1067); +nand g396(G359, G1166, G1175); +nand g397(G389, G1268, G1277); +not g398(G1385, G1381); +nand g399(G1111, G1100, G1109); +nand g400(G1165, G1154, G1163); +nand g401(G1267, G1256, G1265); +not g402(G1886, G398); +nand g403(G259, G257, G258); +nand g404(G274, G272, G273); +nand g405(G296, G294, G295); +nand g406(G307, G305, G306); +nand g407(G310, G308, G309); +nand g408(G360, G358, G359); +not g409(G1242, G1234); +nand g410(G390, G388, G389); +not g411(G1828, G1822); +not g412(G1868, G1862); +not g413(G1869, G1865); +nand g414(G1373, G1164, G1165); +nand g415(G1798, G1110, G1111); +nand g416(G1825, G1266, G1267); +not g417(G265, G259); +not g418(G314, G307); +not g419(G407, G296); +nand g420(G1293, G1865, G1868); +nand g421(G1294, G1862, G1869); +not g422(G1892, G1886); +not g423(G1777, G360); +not g424(G1889, G390); +assign G410 = G310; +not g426(G1377, G1373); +not g427(G1804, G1798); +nand g428(G1237, G1825, G1828); +not g429(G1829, G1825); +nand g430(G1295, G1293, G1294); +assign G1670 = G274; +assign G1678 = G274; +assign G1729 = G310; +assign G1737 = G310; +assign G1761 = G262; +assign G1769 = G262; +assign G340 = G336; +assign G343 = G314; +not g439(G1781, G1777); +nand g440(G1238, G1822, G1829); +nand g441(G1325, G1889, G1892); +not g442(G1893, G1889); +assign G1340 = G407; +assign G1352 = G407; +assign G1673 = G265; +assign G1681 = G265; +assign G1801 = G314; +assign G1897 = G336; +assign G1905 = G336; +nand g450(G391, G1295, G1298); +not g451(G1299, G1295); +not g452(G1676, G1670); +not g453(G1684, G1678); +nand g454(G1081, G1729, G1732); +not g455(G1733, G1729); +nand g456(G1093, G1737, G1740); +not g457(G1741, G1737); +not g458(G1765, G1761); +not g459(G1773, G1769); +nand g460(G1239, G1237, G1238); +nand g461(G1326, G1886, G1893); +assign G1894 = G410; +assign G1902 = G410; +nand g464(G392, G1290, G1299); +not g465(G1360, G1352); +nand g466(G1003, G1673, G1676); +not g467(G1677, G1673); +nand g468(G1013, G1681, G1684); +not g469(G1685, G1681); +nand g470(G1082, G1726, G1733); +nand g471(G1094, G1734, G1741); +assign G1122 = G340; +assign G1134 = G340; +nand g474(G1187, G1801, G1804); +not g475(G1805, G1801); +nand g476(G1327, G1325, G1326); +not g477(G1901, G1897); +not g478(G1348, G1340); +not g479(G1909, G1905); +assign G1758 = G343; +assign G1766 = G343; +nand g482(G377, G1239, G1242); +not g483(G1243, G1239); +nand g484(G393, G391, G392); +nand g485(G1004, G1670, G1677); +nand g486(G1014, G1678, G1685); +nand g487(G1083, G1081, G1082); +nand g488(G1095, G1093, G1094); +nand g489(G1188, G1798, G1805); +not g490(G1900, G1894); +nand g491(G1344, G1894, G1901); +not g492(G1908, G1902); +nand g493(G1356, G1902, G1909); +not g494(G1142, G1134); +nand g495(G378, G1234, G1243); +nand g496(G399, G1327, G1330); +not g497(G1331, G1327); +nand g498(G1005, G1003, G1004); +nand g499(G1015, G1013, G1014); +not g500(G1764, G1758); +not g501(G1130, G1122); +not g502(G1772, G1766); +nand g503(G1138, G1766, G1773); +nand g504(G1189, G1187, G1188); +nand g505(G1343, G1897, G1900); +nand g506(G1355, G1905, G1908); +nand g507(G324, G1095, G1098); +not g508(G1099, G1095); +nand g509(G379, G377, G378); +nand g510(G400, G1322, G1331); +nand g511(G449, G393, G918); +not g512(G1087, G1083); +nand g513(G1088, G1083, G1086); +nand g514(G1137, G1769, G1772); +nand g515(G1345, G1343, G1344); +nand g516(G1357, G1355, G1356); +assign G1397 = G393; +nand g518(G277, G1015, G1018); +not g519(G1019, G1015); +nand g520(G280, G1005, G1008); +not g521(G1009, G1005); +nand g522(G325, G1090, G1099); +nand g523(G364, G1189, G1192); +not g524(G1193, G1189); +nand g525(G401, G399, G400); +nand g526(G1089, G1078, G1087); +nand g527(G1139, G1137, G1138); +nand g528(G278, G1010, G1019); +nand g529(G281, G1000, G1009); +nand g530(G326, G324, G325); +nand g531(G365, G1184, G1193); +nand g532(G413, G1357, G1360); +not g533(G1361, G1357); +not g534(G1401, G1397); +nand g535(G445, G379, G918); +not g536(G1349, G1345); +nand g537(G1350, G1345, G1348); +assign G1389 = G379; +assign G1493 = G449; +assign G1501 = G449; +nand g541(G1689, G1088, G1089); +nand g542(G279, G277, G278); +nand g543(G282, G280, G281); +not g544(G1143, G1139); +nand g545(G366, G364, G365); +nand g546(G414, G1352, G1361); +nand g547(G453, G401, G918); +not g548(G1131, G1127); +nand g549(G1132, G1127, G1130); +nand g550(G1351, G1340, G1349); +not g551(G1365, G326); +assign G1405 = G401; +not g553(G285, G279); +not g554(G367, G366); +nand g555(G415, G413, G414); +not g556(G1393, G1389); +nand g557(G556, G1501, G1504); +not g558(G1505, G1501); +nand g559(G559, G1493, G1496); +not g560(G1497, G1493); +not g561(G1693, G1689); +nand g562(G1133, G1122, G1131); +assign G1477 = G445; +assign G1485 = G445; +nand g565(G1809, G1350, G1351); +not g566(G1369, G1365); +not g567(G1409, G1405); +nand g568(G557, G1498, G1505); +nand g569(G560, G1490, G1497); +assign G1362 = G282; +not g571(G1378, G415); +assign G1429 = G453; +assign G1437 = G453; +assign G1686 = G282; +nand g575(G1774, G1132, G1133); +and g576(G1910, G285, G853); +and g577(G1918, G856, G367); +nand g578(G544, G1485, G1488); +not g579(G1489, G1485); +nand g580(G547, G1477, G1480); +not g581(G1481, G1477); +nand g582(G558, G556, G557); +nand g583(G561, G559, G560); +not g584(G1813, G1809); +not g585(G1370, G348); +not g586(G1368, G1362); +not g587(G1384, G1378); +nand g588(G424, G1378, G1385); +nand g589(G508, G1437, G1440); +not g590(G1441, G1437); +nand g591(G511, G1429, G1432); +not g592(G1433, G1429); +nand g593(G545, G1482, G1489); +nand g594(G548, G1474, G1481); +not g595(G564, G558); +not g596(G1692, G1686); +nand g597(G1024, G1686, G1693); +not g598(G1780, G1774); +nand g599(G1148, G1774, G1781); +not g600(G1916, G1910); +not g601(G1924, G1918); +not g602(G1376, G1370); +nand g603(G421, G1370, G1377); +nand g604(G423, G1381, G1384); +nand g605(G509, G1434, G1441); +nand g606(G512, G1426, G1433); +nand g607(G546, G544, G545); +nand g608(G549, G547, G548); +not g609(G719, G561); +assign G722 = G561; +nand g611(G1023, G1689, G1692); +nand g612(G1147, G1777, G1780); +nand g613(G420, G1373, G1376); +nand g614(G425, G423, G424); +nand g615(G510, G508, G509); +nand g616(G513, G511, G512); +not g617(G552, G546); +nand g618(G1025, G1023, G1024); +nand g619(G1149, G1147, G1148); +not g620(G419, G418); +nand g621(G422, G420, G421); +nand g622(G441, G425, G918); +not g623(G516, G510); +not g624(G725, G549); +assign G728 = G549; +not g626(G1029, G1025); +not g627(G1153, G1149); +nand g628(G433, G419, G918); +nand g629(G437, G422, G918); +not g630(G663, G513); +assign G666 = G513; +and g632(G731, G719, G725); +and g633(G746, G722, G725); +and g634(G756, G719, G728); +and g635(G770, G722, G728); +assign G1461 = G441; +assign G1469 = G441; +assign G1413 = G433; +assign G1421 = G433; +assign G1445 = G437; +assign G1453 = G437; +nand g642(G532, G1469, G1472); +not g643(G1473, G1469); +nand g644(G535, G1461, G1464); +not g645(G1465, G1461); +nand g646(G495, G1421, G1424); +not g647(G1425, G1421); +nand g648(G498, G1413, G1416); +not g649(G1417, G1413); +not g650(G1457, G1453); +nand g651(G523, G1445, G1448); +not g652(G1449, G1445); +nand g653(G533, G1466, G1473); +nand g654(G536, G1458, G1465); +nand g655(G496, G1418, G1425); +nand g656(G499, G1410, G1417); +nand g657(G524, G1442, G1449); +nand g658(G534, G532, G533); +nand g659(G537, G535, G536); +nand g660(G497, G495, G496); +nand g661(G500, G498, G499); +nand g662(G525, G523, G524); +not g663(G540, G534); +not g664(G503, G497); +not g665(G528, G522); +not g666(G669, G537); +assign G672 = G537; +not g668(G569, G500); +and g669(G588, G566, G500); +not g670(G618, G525); +and g671(G639, G615, G525); +nand g672(G867, G516, G564, G552, G540, G482, G528, G503, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g677(G675, G663, G669); +and g678(G688, G666, G669); +and g679(G696, G663, G672); +and g680(G710, G666, G672); +and g681(G73, G949, G867, G932, G932); +and g682(G572, G565, G569); +and g683(G573, G566, G569); +and g684(G621, G614, G618); +and g685(G622, G615, G618); +nand g686(G776, G588a, G639a, G696, G731, G958); +nand g687(G780, G588a, G639a, G675, G756, G958); +nand g688(G784, G588a, G639a, G675, G746, G958); +nand g689(G788, G588a, G639a, G688, G731, G958); +nand g690(G812, G588b, G639a, G710, G746, G969); +nand g691(G832, G588b, G639b, G696, G770, G969); +nand g692(G836, G588b, G639b, G710, G756, G969); +and g693(G1509, G588a, G639a, G696, G731, G958); +and g694(G1517, G588a, G639a, G675, G756, G958); +and g695(G1525, G588a, G639a, G675, G746, G958); +and g696(G1533, G588a, G639a, G688, G731, G958); +and g697(G1581, G588b, G639a, G710, G746, G969); +and g698(G1621, G588b, G639b, G696, G770, G969); +and g699(G1629, G588b, G639b, G710, G756, G969); +nand g700(G792, G588a, G622, G696, G756, G958); +nand g701(G796, G588b, G622, G696, G746, G958); +nand g702(G800, G588b, G622, G710, G731, G958); +nand g703(G804, G588b, G622, G675, G770, G958); +nand g704(G808, G588b, G622, G688, G756, G969); +nand g705(G816, G573, G639b, G696, G756, G969); +nand g706(G820, G573, G639b, G696, G746, G969); +nand g707(G824, G573, G639b, G710, G731, G969); +nand g708(G828, G573, G639b, G688, G756, G969); +nand g709(G871, G588b, G622, G675, G731, G979); +nand g710(G873, G573, G639b, G675, G731, G979); +nand g711(G875, G573, G622, G696, G731, G979); +nand g712(G877, G573, G622, G675, G756, G979); +nand g713(G879, G573, G622, G675, G746, G979); +nand g714(G881, G573, G622, G688, G731, G979); +nand g715(G883, G573, G621, G675, G731, G979); +nand g716(G885, G572, G622, G675, G731, G979); +and g717(G1541, G588a, G622, G696, G756, G958); +and g718(G1549, G588b, G622, G696, G746, G958); +and g719(G1557, G588b, G622, G710, G731, G958); +and g720(G1565, G588b, G622, G675, G770, G958); +and g721(G1573, G588b, G622, G688, G756, G969); +and g722(G1589, G573, G639b, G696, G756, G969); +and g723(G1597, G573, G639b, G696, G746, G969); +and g724(G1605, G573, G639b, G710, G731, G969); +and g725(G1613, G573, G639b, G688, G756, G969); +nand g726(G1, G1509, G1512); +not g727(G1513, G1509); +nand g728(G4, G1517, G1520); +not g729(G1521, G1517); +nand g730(G7, G1525, G1528); +not g731(G1529, G1525); +nand g732(G10, G1533, G1536); +not g733(G1537, G1533); +nand g734(G28, G1581, G1584); +not g735(G1585, G1581); +nand g736(G43, G1621, G1624); +not g737(G1625, G1621); +nand g738(G46, G1629, G1632); +not g739(G1633, G1629); +and g740(G886, G871, G873, G875, G877, G879, G881, G883, G885); +nand g741(G2, G1506, G1513); +nand g742(G5, G1514, G1521); +nand g743(G8, G1522, G1529); +nand g744(G11, G1530, G1537); +nand g745(G13, G1541, G1544); +not g746(G1545, G1541); +nand g747(G16, G1549, G1552); +not g748(G1553, G1549); +nand g749(G19, G1557, G1560); +not g750(G1561, G1557); +nand g751(G22, G1565, G1568); +not g752(G1569, G1565); +nand g753(G25, G1573, G1576); +not g754(G1577, G1573); +nand g755(G29, G1578, G1585); +nand g756(G31, G1589, G1592); +not g757(G1593, G1589); +nand g758(G34, G1597, G1600); +not g759(G1601, G1597); +nand g760(G37, G1605, G1608); +not g761(G1609, G1605); +nand g762(G40, G1613, G1616); +not g763(G1617, G1613); +nand g764(G44, G1618, G1625); +nand g765(G47, G1626, G1633); +nand g766(G857, G776, G780, G784, G788, G792, G796, G800, G804); +nand g767(G860, G808, G812, G816, G820, G824, G828, G832, G836); +and g768(G863, G776, G780, G784, G788, G792, G796, G800, G804); +and g769(G865, G808, G812, G816, G820, G824, G828, G832, G836); +nand g770(G3, G1, G2); +nand g771(G6, G4, G5); +nand g772(G9, G7, G8); +nand g773(G12, G10, G11); +nand g774(G14, G1538, G1545); +nand g775(G17, G1546, G1553); +nand g776(G20, G1554, G1561); +nand g777(G23, G1562, G1569); +nand g778(G26, G1570, G1577); +nand g779(G30, G28, G29); +nand g780(G32, G1586, G1593); +nand g781(G35, G1594, G1601); +nand g782(G38, G1602, G1609); +nand g783(G41, G1610, G1617); +nand g784(G45, G43, G44); +nand g785(G48, G46, G47); +and g786(G1913, G857, G859); +and g787(G1921, G860, G862); +nand g788(G15, G13, G14); +nand g789(G18, G16, G17); +nand g790(G21, G19, G20); +nand g791(G24, G22, G23); +nand g792(G27, G25, G26); +nand g793(G33, G31, G32); +nand g794(G36, G34, G35); +nand g795(G39, G37, G38); +nand g796(G42, G40, G41); +and g797(G887, G863, G865, G886); +nand g798(G462, G863, G865); +and g799(G74, G949, G867, G952, G887); +nand g800(G1637, G1913, G1916); +not g801(G1917, G1913); +nand g802(G1647, G1921, G1924); +not g803(G1925, G1921); +nor g804(G75, G73, G74); +and g805(G1020, G457, G911, G462); +and g806(G1144, G469, G911, G462); +and g807(G1386, G475, G911, G462); +and g808(G1394, G478, G911, G462); +and g809(G1402, G459, G911, G462); +nand g810(G1638, G1910, G1917); +nand g811(G1648, G1918, G1925); +and g812(G1806, G472, G911, G462); +nand g813(G1639, G1637, G1638); +nand g814(G1649, G1647, G1648); +nand g815(G287, G1020, G1029); +nand g816(G350, G1144, G1153); +nand g817(G427, G1386, G1393); +nand g818(G429, G1394, G1401); +nand g819(G431, G1402, G1409); +not g820(G1028, G1020); +not g821(G1152, G1144); +not g822(G1392, G1386); +not g823(G1400, G1394); +not g824(G1408, G1402); +not g825(G1812, G1806); +nand g826(G1216, G1806, G1813); +nand g827(G286, G1025, G1028); +nand g828(G349, G1149, G1152); +nand g829(G426, G1389, G1392); +nand g830(G428, G1397, G1400); +nand g831(G430, G1405, G1408); +nand g832(G67, G1639, G1642); +not g833(G1643, G1639); +nand g834(G70, G1649, G1652); +not g835(G1653, G1649); +nand g836(G1215, G1809, G1812); +nand g837(G49, G286, G287); +nand g838(G53, G349, G350); +nand g839(G59, G426, G427); +nand g840(G61, G428, G429); +nand g841(G65, G430, G431); +nand g842(G68, G1634, G1643); +nand g843(G71, G1644, G1653); +nand g844(G1217, G1215, G1216); +and g845(G51, G49, G50); +and g846(G54, G52, G53); +and g847(G60, G58, G59); +and g848(G63, G61, G62); +and g849(G66, G64, G65); +nand g850(G69, G67, G68); +nand g851(G72, G70, G71); +nand g852(G375, G1217, G1220); +not g853(G1221, G1217); +nand g854(G376, G1212, G1221); +nand g855(G55, G375, G376); +and g856(G57, G55, G56); +not g857(in0not_0, G1362); +not g858(in1not_0, G1368); +not g859(in2not_0, G1369); +not g860(in3not_0, G1365); +and g861(T0_0, keyinput0_0, in0not_0, in1not_0, in2not_0, in3not_0); +and g862(T1_0, keyinput1_0, G1362, in1not_0, in2not_0, in3not_0); +and g863(T2_0, keyinput2_0, in0not_0, G1368, in2not_0, in3not_0); +and g864(T3_0, keyinput3_0, G1362, G1368, in2not_0, in3not_0); +and g865(T4_0, keyinput4_0, in0not_0, in1not_0, G1369, in3not_0); +and g866(T5_0, keyinput5_0, G1362, in1not_0, G1369, in3not_0); +and g867(T6_0, keyinput6_0, in0not_0, G1368, G1369, in3not_0); +and g868(T7_0, keyinput7_0, G1362, G1368, G1369, in3not_0); +and g869(T8_0, keyinput8_0, in0not_0, in1not_0, in2not_0, G1365); +and g870(T9_0, keyinput9_0, G1362, in1not_0, in2not_0, G1365); +and g871(T10_0, keyinput10_0, in0not_0, G1368, in2not_0, G1365); +and g872(T11_0, keyinput11_0, G1362, G1368, in2not_0, G1365); +and g873(T12_0, keyinput12_0, in0not_0, in1not_0, G1369, G1365); +and g874(T13_0, keyinput13_0, G1362, in1not_0, G1369, G1365); +and g875(T14_0, keyinput14_0, in0not_0, G1368, G1369, G1365); +and g876(T15_0, keyinput15_0, G1362, G1368, G1369, G1365); +or g877(G418, T0_0, T1_0, T2_0, T3_0, T4_0, T5_0, T6_0, T7_0, T8_0, T9_0, T10_0, T11_0, T12_0, T13_0, T14_0, T15_0); +not g878(in0not_1, G989); +not g879(in1not_1, G985); +not g880(in2not_1, G988); +not g881(in3not_1, G980); +and g882(T0_1, keyinput0_1, in0not_1, in1not_1, in2not_1, in3not_1); +and g883(T1_1, keyinput1_1, G989, in1not_1, in2not_1, in3not_1); +and g884(T2_1, keyinput2_1, in0not_1, G985, in2not_1, in3not_1); +and g885(T3_1, keyinput3_1, G989, G985, in2not_1, in3not_1); +and g886(T4_1, keyinput4_1, in0not_1, in1not_1, G988, in3not_1); +and g887(T5_1, keyinput5_1, G989, in1not_1, G988, in3not_1); +and g888(T6_1, keyinput6_1, in0not_1, G985, G988, in3not_1); +and g889(T7_1, keyinput7_1, G989, G985, G988, in3not_1); +and g890(T8_1, keyinput8_1, in0not_1, in1not_1, in2not_1, G980); +and g891(T9_1, keyinput9_1, G989, in1not_1, in2not_1, G980); +and g892(T10_1, keyinput10_1, in0not_1, G985, in2not_1, G980); +and g893(T11_1, keyinput11_1, G989, G985, in2not_1, G980); +and g894(T12_1, keyinput12_1, in0not_1, in1not_1, G988, G980); +and g895(T13_1, keyinput13_1, G989, in1not_1, G988, G980); +and g896(T14_1, keyinput14_1, in0not_1, G985, G988, G980); +and g897(T15_1, keyinput15_1, G989, G985, G988, G980); +or g898(G262, T0_1, T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1, T12_1, T13_1, T14_1, T15_1); +not g899(in0not_2, G1139); +not g900(in1not_2, G1142); +not g901(in2not_2, G1143); +not g902(in3not_2, G1134); +and g903(T0_2, keyinput0_2, in0not_2, in1not_2, in2not_2, in3not_2); +and g904(T1_2, keyinput1_2, G1139, in1not_2, in2not_2, in3not_2); +and g905(T2_2, keyinput2_2, in0not_2, G1142, in2not_2, in3not_2); +and g906(T3_2, keyinput3_2, G1139, G1142, in2not_2, in3not_2); +and g907(T4_2, keyinput4_2, in0not_2, in1not_2, G1143, in3not_2); +and g908(T5_2, keyinput5_2, G1139, in1not_2, G1143, in3not_2); +and g909(T6_2, keyinput6_2, in0not_2, G1142, G1143, in3not_2); +and g910(T7_2, keyinput7_2, G1139, G1142, G1143, in3not_2); +and g911(T8_2, keyinput8_2, in0not_2, in1not_2, in2not_2, G1134); +and g912(T9_2, keyinput9_2, G1139, in1not_2, in2not_2, G1134); +and g913(T10_2, keyinput10_2, in0not_2, G1142, in2not_2, G1134); +and g914(T11_2, keyinput11_2, G1139, G1142, in2not_2, G1134); +and g915(T12_2, keyinput12_2, in0not_2, in1not_2, G1143, G1134); +and g916(T13_2, keyinput13_2, G1139, in1not_2, G1143, G1134); +and g917(T14_2, keyinput14_2, in0not_2, G1142, G1143, G1134); +and g918(T15_2, keyinput15_2, G1139, G1142, G1143, G1134); +or g919(G348, T0_2, T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, T8_2, T9_2, T10_2, T11_2, T12_2, T13_2, T14_2, T15_2); +not g920(in0not_3, G1765); +not g921(in1not_3, G1764); +not g922(in2not_3, G1758); +not g923(in3not_3, G1761); +and g924(T0_3, keyinput0_3, in0not_3, in1not_3, in2not_3, in3not_3); +and g925(T1_3, keyinput1_3, G1765, in1not_3, in2not_3, in3not_3); +and g926(T2_3, keyinput2_3, in0not_3, G1764, in2not_3, in3not_3); +and g927(T3_3, keyinput3_3, G1765, G1764, in2not_3, in3not_3); +and g928(T4_3, keyinput4_3, in0not_3, in1not_3, G1758, in3not_3); +and g929(T5_3, keyinput5_3, G1765, in1not_3, G1758, in3not_3); +and g930(T6_3, keyinput6_3, in0not_3, G1764, G1758, in3not_3); +and g931(T7_3, keyinput7_3, G1765, G1764, G1758, in3not_3); +and g932(T8_3, keyinput8_3, in0not_3, in1not_3, in2not_3, G1761); +and g933(T9_3, keyinput9_3, G1765, in1not_3, in2not_3, G1761); +and g934(T10_3, keyinput10_3, in0not_3, G1764, in2not_3, G1761); +and g935(T11_3, keyinput11_3, G1765, G1764, in2not_3, G1761); +and g936(T12_3, keyinput12_3, in0not_3, in1not_3, G1758, G1761); +and g937(T13_3, keyinput13_3, G1765, in1not_3, G1758, G1761); +and g938(T14_3, keyinput14_3, in0not_3, G1764, G1758, G1761); +and g939(T15_3, keyinput15_3, G1765, G1764, G1758, G1761); +or g940(G1127, T0_3, T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, T8_3, T9_3, T10_3, T11_3, T12_3, T13_3, T14_3, T15_3); +not g941(in0not_4, G1457); +not g942(in1not_4, G1453); +not g943(in2not_4, G1456); +not g944(in3not_4, G1450); +and g945(T0_4, keyinput0_4, in0not_4, in1not_4, in2not_4, in3not_4); +and g946(T1_4, keyinput1_4, G1457, in1not_4, in2not_4, in3not_4); +and g947(T2_4, keyinput2_4, in0not_4, G1453, in2not_4, in3not_4); +and g948(T3_4, keyinput3_4, G1457, G1453, in2not_4, in3not_4); +and g949(T4_4, keyinput4_4, in0not_4, in1not_4, G1456, in3not_4); +and g950(T5_4, keyinput5_4, G1457, in1not_4, G1456, in3not_4); +and g951(T6_4, keyinput6_4, in0not_4, G1453, G1456, in3not_4); +and g952(T7_4, keyinput7_4, G1457, G1453, G1456, in3not_4); +and g953(T8_4, keyinput8_4, in0not_4, in1not_4, in2not_4, G1450); +and g954(T9_4, keyinput9_4, G1457, in1not_4, in2not_4, G1450); +and g955(T10_4, keyinput10_4, in0not_4, G1453, in2not_4, G1450); +and g956(T11_4, keyinput11_4, G1457, G1453, in2not_4, G1450); +and g957(T12_4, keyinput12_4, in0not_4, in1not_4, G1456, G1450); +and g958(T13_4, keyinput13_4, G1457, in1not_4, G1456, G1450); +and g959(T14_4, keyinput14_4, in0not_4, G1453, G1456, G1450); +and g960(T15_4, keyinput15_4, G1457, G1453, G1456, G1450); +or g961(G522, T0_4, T1_4, T2_4, T3_4, T4_4, T5_4, T6_4, T7_4, T8_4, T9_4, T10_4, T11_4, T12_4, T13_4, T14_4, T15_4); +not g962(in0not_5, G1885); +not g963(in1not_5, G1884); +not g964(in2not_5, G1881); +not g965(in3not_5, G1878); +and g966(T0_5, keyinput0_5, in0not_5, in1not_5, in2not_5, in3not_5); +and g967(T1_5, keyinput1_5, G1885, in1not_5, in2not_5, in3not_5); +and g968(T2_5, keyinput2_5, in0not_5, G1884, in2not_5, in3not_5); +and g969(T3_5, keyinput3_5, G1885, G1884, in2not_5, in3not_5); +and g970(T4_5, keyinput4_5, in0not_5, in1not_5, G1881, in3not_5); +and g971(T5_5, keyinput5_5, G1885, in1not_5, G1881, in3not_5); +and g972(T6_5, keyinput6_5, in0not_5, G1884, G1881, in3not_5); +and g973(T7_5, keyinput7_5, G1885, G1884, G1881, in3not_5); +and g974(T8_5, keyinput8_5, in0not_5, in1not_5, in2not_5, G1878); +and g975(T9_5, keyinput9_5, G1885, in1not_5, in2not_5, G1878); +and g976(T10_5, keyinput10_5, in0not_5, G1884, in2not_5, G1878); +and g977(T11_5, keyinput11_5, G1885, G1884, in2not_5, G1878); +and g978(T12_5, keyinput12_5, in0not_5, in1not_5, G1881, G1878); +and g979(T13_5, keyinput13_5, G1885, in1not_5, G1881, G1878); +and g980(T14_5, keyinput14_5, in0not_5, G1884, G1881, G1878); +and g981(T15_5, keyinput15_5, G1885, G1884, G1881, G1878); +or g982(G1317, T0_5, T1_5, T2_5, T3_5, T4_5, T5_5, T6_5, T7_5, T8_5, T9_5, T10_5, T11_5, T12_5, T13_5, T14_5, T15_5); +not g983(in0not_6, G943); +not g984(in1not_6, G893); +not g985(in2not_6, G919); +not g986(in3not_6, G907); +and g987(T0_6, keyinput0_6, in0not_6, in1not_6, in2not_6, in3not_6); +and g988(T1_6, keyinput1_6, G943, in1not_6, in2not_6, in3not_6); +and g989(T2_6, keyinput2_6, in0not_6, G893, in2not_6, in3not_6); +and g990(T3_6, keyinput3_6, G943, G893, in2not_6, in3not_6); +and g991(T4_6, keyinput4_6, in0not_6, in1not_6, G919, in3not_6); +and g992(T5_6, keyinput5_6, G943, in1not_6, G919, in3not_6); +and g993(T6_6, keyinput6_6, in0not_6, G893, G919, in3not_6); +and g994(T7_6, keyinput7_6, G943, G893, G919, in3not_6); +and g995(T8_6, keyinput8_6, in0not_6, in1not_6, in2not_6, G907); +and g996(T9_6, keyinput9_6, G943, in1not_6, in2not_6, G907); +and g997(T10_6, keyinput10_6, in0not_6, G893, in2not_6, G907); +and g998(T11_6, keyinput11_6, G943, G893, in2not_6, G907); +and g999(T12_6, keyinput12_6, in0not_6, in1not_6, G919, G907); +and g1000(T13_6, keyinput13_6, G943, in1not_6, G919, G907); +and g1001(T14_6, keyinput14_6, in0not_6, G893, G919, G907); +and g1002(T15_6, keyinput15_6, G943, G893, G919, G907); +or g1003(G956, T0_6, T1_6, T2_6, T3_6, T4_6, T5_6, T6_6, T7_6, T8_6, T9_6, T10_6, T11_6, T12_6, T13_6, T14_6, T15_6); +not g1004(in0not_7, G1121); +not g1005(in1not_7, G1117); +not g1006(in2not_7, G1120); +not g1007(in3not_7, G1112); +and g1008(T0_7, keyinput0_7, in0not_7, in1not_7, in2not_7, in3not_7); +and g1009(T1_7, keyinput1_7, G1121, in1not_7, in2not_7, in3not_7); +and g1010(T2_7, keyinput2_7, in0not_7, G1117, in2not_7, in3not_7); +and g1011(T3_7, keyinput3_7, G1121, G1117, in2not_7, in3not_7); +and g1012(T4_7, keyinput4_7, in0not_7, in1not_7, G1120, in3not_7); +and g1013(T5_7, keyinput5_7, G1121, in1not_7, G1120, in3not_7); +and g1014(T6_7, keyinput6_7, in0not_7, G1117, G1120, in3not_7); +and g1015(T7_7, keyinput7_7, G1121, G1117, G1120, in3not_7); +and g1016(T8_7, keyinput8_7, in0not_7, in1not_7, in2not_7, G1112); +and g1017(T9_7, keyinput9_7, G1121, in1not_7, in2not_7, G1112); +and g1018(T10_7, keyinput10_7, in0not_7, G1117, in2not_7, G1112); +and g1019(T11_7, keyinput11_7, G1121, G1117, in2not_7, G1112); +and g1020(T12_7, keyinput12_7, in0not_7, in1not_7, G1120, G1112); +and g1021(T13_7, keyinput13_7, G1121, in1not_7, G1120, G1112); +and g1022(T14_7, keyinput14_7, in0not_7, G1117, G1120, G1112); +and g1023(T15_7, keyinput15_7, G1121, G1117, G1120, G1112); +or g1024(G336, T0_7, T1_7, T2_7, T3_7, T4_7, T5_7, T6_7, T7_7, T8_7, T9_7, T10_7, T11_7, T12_7, T13_7, T14_7, T15_7); +endmodule diff --git a/benchmarks/c1908/c1908_lut_64bit.v b/benchmarks/c1908/c1908_lut_64bit.v new file mode 100644 index 0000000..fb4661b --- /dev/null +++ b/benchmarks/c1908/c1908_lut_64bit.v @@ -0,0 +1,1078 @@ +// Verilog File +module c1908_lut_64bit.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0_2,keyinput0_1,keyinput0_3,keyinput0_0,keyinput1_0,keyinput2_0, +keyinput3_0,keyinput4_0,keyinput5_0,keyinput6_0,keyinput7_0,keyinput8_0,keyinput9_0,keyinput10_0,keyinput11_0,keyinput12_0, +keyinput13_0,keyinput14_0,keyinput15_0,keyinput1_1,keyinput2_1,keyinput3_1,keyinput4_1,keyinput5_1,keyinput6_1,keyinput7_1, +keyinput8_1,keyinput9_1,keyinput10_1,keyinput11_1,keyinput12_1,keyinput13_1,keyinput14_1,keyinput15_1,keyinput1_2,keyinput2_2, +keyinput3_2,keyinput4_2,keyinput5_2,keyinput6_2,keyinput7_2,keyinput8_2,keyinput9_2,keyinput10_2,keyinput11_2,keyinput12_2, +keyinput13_2,keyinput14_2,keyinput15_2,keyinput1_3,keyinput2_3,keyinput3_3,keyinput4_3,keyinput5_3,keyinput6_3,keyinput7_3, +keyinput8_3,keyinput9_3,keyinput10_3,keyinput11_3,keyinput12_3,keyinput13_3,keyinput14_3,keyinput15_3,G3,G6, +G9,G12,G30,G45,G48,G15,G18,G21,G24,G27, +G33,G36,G39,G42,G75,G51,G54,G60,G63,G66, +G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0_2,keyinput0_1,keyinput0_3,keyinput0_0,keyinput1_0,keyinput2_0, +keyinput3_0,keyinput4_0,keyinput5_0,keyinput6_0,keyinput7_0,keyinput8_0,keyinput9_0,keyinput10_0,keyinput11_0,keyinput12_0, +keyinput13_0,keyinput14_0,keyinput15_0,keyinput1_1,keyinput2_1,keyinput3_1,keyinput4_1,keyinput5_1,keyinput6_1,keyinput7_1, +keyinput8_1,keyinput9_1,keyinput10_1,keyinput11_1,keyinput12_1,keyinput13_1,keyinput14_1,keyinput15_1,keyinput1_2,keyinput2_2, +keyinput3_2,keyinput4_2,keyinput5_2,keyinput6_2,keyinput7_2,keyinput8_2,keyinput9_2,keyinput10_2,keyinput11_2,keyinput12_2, +keyinput13_2,keyinput14_2,keyinput15_2,keyinput1_3,keyinput2_3,keyinput3_3,keyinput4_3,keyinput5_3,keyinput6_3,keyinput7_3, +keyinput8_3,keyinput9_3,keyinput10_3,keyinput11_3,keyinput12_3,keyinput13_3,keyinput14_3,keyinput15_3; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +G1520, G1528, G1536, G1544, G1552, G1560, G1568, G1576, G1584, G1592, +G1600, G1608, G1616, G1624, G1632, G50, G52, G56, G58, G62, +G64, G251, G254, G288, G291, G299, G302, G318, G321, G327, +G330, G352, G355, G369, G382, G385, G853, G856, G893, G954, +G955, G1050, G1053, G1176, G1179, G1197, G1207, G1222, G1244, G1278, +G1290, G1300, G1312, G1332, G1335, G1442, G1450, G1458, G1466, G1474, +G1482, G1490, G1498, G1634, G1644, G1657, G1665, G1697, G1705, G1713, +G1721, G1745, G1753, G1785, G1793, G1814, G1817, G1830, G1833, G1841, +G1849, G1854, G1857, G1870, G1873, G1878, G1881, G1642, G1652, G1056, +G1057, G1182, G1183, G1211, G1298, G1320, G1338, G1339, G457, G459, +G482, G487, G492, G505, G1456, G1448, G1472, G1464, G1488, G1480, +G1504, G1496, G956, G967, G978, G979, G980, G1661, G990, G1669, +G1030, G1701, G1040, G1709, G1058, G1717, G1068, G1725, G1078, G1090, +G1100, G1749, G1112, G1757, G1154, G1789, G1166, G1797, G1194, G1201, +G1204, G1820, G1821, G1230, G1836, G1837, G1252, G1256, G1845, G1268, +G1853, G1860, G1861, G1286, G1876, G1877, G1308, G1884, G1885, G1654, +G1662, G1694, G1702, G1710, G1718, G1726, G1734, G1742, G1750, G1782, +G1790, G1838, G1846, G297, G298, G361, G362, G404, G405, G1225, +G1226, G1247, G1248, G1281, G1282, G1303, G1304, G1315, G1316, G998, +G988, G268, G1038, G1048, G1076, G1066, G1098, G1120, G1174, G363, +G1210, G373, G1276, G406, G565, G566, G614, G615, G958, G969, +G1660, G984, G1668, G994, G1700, G1034, G1708, G1044, G1716, G1062, +G1724, G1072, G1732, G1086, G1740, G1748, G1104, G1108, G1756, G1116, +G1788, G1158, G1162, G1796, G1170, G1200, G1203, G1227, G1249, G1844, +G1264, G1852, G1272, G1283, G1305, G1317, G1410, G1418, G1426, G1434, +G269, G372, G983, G993, G1033, G1043, G1061, G1071, G1103, G1115, +G1157, G1169, G1184, G1202, G1271, G1322, G374, G396, G1321, G1424, +G1416, G1440, G1432, G985, G995, G1035, G1045, G1063, G1073, G1105, +G1117, G1159, G1171, G1212, G1231, G1232, G1253, G1254, G1273, G1287, +G1288, G1309, G1310, G1192, G397, G1330, G1000, G1010, G1233, G1255, +G1289, G1311, G1381, G257, G999, G260, G989, G272, G1039, G294, +G1049, G305, G1077, G308, G1067, G333, G1121, G358, G1175, G1220, +G388, G1277, G398, G1109, G1110, G1163, G1164, G1234, G1261, G1265, +G1266, G1822, G1862, G1865, G258, G261, G273, G1018, G1008, G295, +G306, G309, G334, G359, G389, G1385, G1111, G1165, G1267, G1886, +G259, G262, G274, G296, G307, G310, G335, G360, G1242, G390, +G1828, G1868, G1869, G1373, G1798, G1825, G265, G314, G336, G407, +G1293, G1294, G1892, G1777, G1889, G410, G1377, G1804, G1237, G1829, +G1295, G1670, G1678, G1729, G1737, G1761, G1769, G340, G343, G1781, +G1238, G1325, G1893, G1340, G1352, G1673, G1681, G1801, G1897, G1905, +G391, G1299, G1676, G1684, G1081, G1733, G1093, G1741, G1765, G1773, +G1239, G1326, G1894, G1902, G392, G1360, G1003, G1677, G1013, G1685, +G1082, G1094, G1122, G1134, G1187, G1805, G1327, G1901, G1348, G1909, +G1758, G1766, G377, G1243, G393, G1004, G1014, G1083, G1095, G1188, +G1900, G1344, G1908, G1356, G1142, G378, G399, G1331, G1005, G1015, +G1764, G1126, G1130, G1772, G1138, G1189, G1343, G1355, G324, G1099, +G379, G400, G449, G1087, G1088, G1125, G1137, G1345, G1357, G1397, +G277, G1019, G280, G1009, G325, G364, G1193, G401, G1089, G1127, +G1139, G278, G281, G326, G365, G413, G1361, G1401, G445, G1349, +G1350, G1389, G1493, G1501, G1689, G279, G282, G346, G1143, G366, +G414, G453, G1131, G1132, G1351, G1365, G1405, G285, G347, G367, +G415, G1393, G556, G1505, G559, G1497, G1693, G1133, G1477, G1485, +G1809, G348, G1369, G1409, G557, G560, G1362, G1378, G1429, G1437, +G1686, G1774, G1910, G1918, G544, G1489, G547, G1481, G558, G561, +G1813, G1370, G1368, G417, G1384, G424, G508, G1441, G511, G1433, +G545, G548, G564, G1692, G1024, G1780, G1148, G1916, G1924, G416, +G1376, G421, G423, G509, G512, G546, G549, G719, G722, G1023, +G1147, G418, G420, G425, G510, G513, G552, G1025, G1149, G419, +G422, G441, G516, G725, G728, G1029, G1153, G433, G437, G663, +G666, G731, G746, G756, G770, G1461, G1469, G1413, G1421, G1445, +G1453, G532, G1473, G1465, G495, G1425, G498, G1417, G520, G1457, +G523, G1449, G533, G496, G499, G521, G524, G534, G497, G500, +G522, G525, G540, G503, G528, G537, G669, G672, G569, G588, +G618, G639, G867, G588a, G588b, G639a, G639b, G675, G688, G696, +G710, G73, G572, G573, G621, G622, G776, G780, G784, G788, +G812, G832, G836, G1509, G1517, G1525, G1533, G1581, G1621, G1629, +G792, G796, G800, G804, G808, G816, G820, G824, G828, G871, +G873, G875, G877, G879, G881, G883, G885, G1541, G1549, G1557, +G1565, G1573, G1589, G1597, G1605, G1613, G1, G1513, G4, G1521, +G7, G1529, G10, G1537, G28, G1585, G43, G1625, G46, G1633, +G886, G2, G5, G8, G11, G13, G1545, G16, G1553, G19, +G1561, G22, G1569, G25, G1577, G29, G31, G1593, G34, G1601, +G37, G1609, G40, G1617, G44, G47, G857, G860, G863, G865, +G14, G17, G20, G23, G26, G32, G35, G38, G41, G1913, +G1921, G887, G462, G74, G1637, G1917, G1647, G1925, G1020, G1144, +G1386, G1394, G1402, G1638, G1648, G1806, G1639, G1649, G287, G350, +G429, G1028, G1152, G1392, G1400, G1408, G1812, G1216, G286, G349, +G428, G67, G1643, G70, G1653, G1215, G49, G53, G61, G68, +G71, G1217, G59, G65, G375, G1221, G376, G55, in0not_0, in1not_0, +in2not_0, in3not_0, T0_0, T1_0, T2_0, T3_0, T4_0, T5_0, T6_0, T7_0, +T8_0, T9_0, T10_0, T11_0, T12_0, T13_0, T14_0, T15_0, in0not_1, in1not_1, +in2not_1, in3not_1, T0_1, T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, +T8_1, T9_1, T10_1, T11_1, T12_1, T13_1, T14_1, T15_1, in0not_2, in1not_2, +in2not_2, in3not_2, T0_2, T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, +T8_2, T9_2, T10_2, T11_2, T12_2, T13_2, T14_2, T15_2, in0not_3, in1not_3, +in2not_3, in3not_3, T0_3, T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, +T8_3, T9_3, T10_3, T11_3, T12_3, T13_3, T14_3, T15_3; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, G1514); +not g60(G1528, G1522); +not g61(G1536, G1530); +not g62(G1544, G1538); +not g63(G1552, G1546); +not g64(G1560, G1554); +not g65(G1568, G1562); +not g66(G1576, G1570); +not g67(G1584, G1578); +not g68(G1592, G1586); +not g69(G1600, G1594); +not g70(G1608, G1602); +not g71(G1616, G1610); +not g72(G1624, G1618); +not g73(G1632, G1626); +nand g74(G50, G930, G947); +nand g75(G52, G930, G947); +nand g76(G56, G930, G947); +nand g77(G58, G930, G947); +nand g78(G62, G930, G947); +nand g79(G64, G930, G947); +assign G251 = G149; +assign G254 = G153; +assign G288 = G165; +assign G291 = G168; +assign G299 = G184; +assign G302 = G202; +and g86(G318, G224, G938); +assign G321 = G179; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, G938); +assign G355 = G198; +and g92(G369, G210, G241, G938); +assign G382 = G206; +assign G385 = G198; +nand g95(G853, G943, G907); +nand g96(G856, G943, G909); +nand g97(G893, G248, G237); +nand g98(G954, G248, G922); +nand g99(G955, G244, G922); +assign G1050 = G160; +assign G1053 = G175; +assign G1176 = G179; +assign G1179 = G198; +assign G1197 = G149; +assign G1207 = G149; +assign G1222 = G153; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, G245, G938); +assign G1300 = G191; +assign G1312 = G160; +assign G1332 = G194; +and g113(G1335, G221, G245, G938); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = G553; +assign G1498 = G553; +and g122(G1634, G231, G934); +and g123(G1644, G233, G934); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = G171; +assign G1705 = G171; +assign G1713 = G206; +assign G1721 = G206; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = G160; +assign G1793 = G160; +assign G1814 = G165; +assign G1817 = G175; +and g136(G1830, G214, G241, G938); +assign G1833 = G202; +assign G1841 = G179; +assign G1849 = G179; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = G202; +assign G1878 = G171; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, G1050); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, G1179); +not g152(G1211, G1207); +not g153(G1298, G1290); +not g154(G1320, G1312); +not g155(G1338, G1332); +not g156(G1339, G1335); +and g157(G457, G210, G955); +and g158(G459, G217, G954); +nand g159(G482, G214, G955); +nand g160(G487, G221, G954); +nand g161(G492, G210, G955); +nand g162(G505, G217, G954); +not g163(G1456, G1450); +not g164(G1448, G1442); +not g165(G1472, G1466); +not g166(G1464, G1458); +not g167(G1488, G1482); +not g168(G1480, G1474); +not g169(G1504, G1498); +not g170(G1496, G1490); +nand g171(G956, G907, G919, G943, G893); +nand g172(G967, G909, G919, G943, G893); +nand g173(G978, G926, G949, G893); +and g174(G979, G926, G949, G893); +assign G980 = G251; +not g176(G1661, G1657); +assign G990 = G251; +not g178(G1669, G1665); +assign G1030 = G288; +not g180(G1701, G1697); +assign G1040 = G288; +not g182(G1709, G1705); +assign G1058 = G299; +not g184(G1717, G1713); +assign G1068 = G299; +not g186(G1725, G1721); +assign G1078 = G318; +assign G1090 = G318; +assign G1100 = G327; +not g190(G1749, G1745); +assign G1112 = G327; +not g192(G1757, G1753); +assign G1154 = G352; +not g194(G1789, G1785); +assign G1166 = G352; +not g196(G1797, G1793); +assign G1194 = G369; +not g198(G1201, G1197); +assign G1204 = G369; +not g200(G1820, G1814); +not g201(G1821, G1817); +not g202(G1230, G1222); +not g203(G1836, G1830); +not g204(G1837, G1833); +not g205(G1252, G1244); +assign G1256 = G382; +not g207(G1845, G1841); +assign G1268 = G382; +not g209(G1853, G1849); +not g210(G1860, G1854); +not g211(G1861, G1857); +not g212(G1286, G1278); +not g213(G1876, G1870); +not g214(G1877, G1873); +not g215(G1308, G1300); +not g216(G1884, G1878); +not g217(G1885, G1881); +assign G1654 = G254; +assign G1662 = G254; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = G302; +assign G1718 = G302; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = G355; +assign G1790 = G355; +assign G1838 = G385; +assign G1846 = G385; +nand g232(G297, G1053, G1056); +nand g233(G298, G1050, G1057); +nand g234(G361, G1179, G1182); +nand g235(G362, G1176, G1183); +nand g236(G404, G1335, G1338); +nand g237(G405, G1332, G1339); +nand g238(G1225, G1817, G1820); +nand g239(G1226, G1814, G1821); +nand g240(G1247, G1833, G1836); +nand g241(G1248, G1830, G1837); +nand g242(G1281, G1857, G1860); +nand g243(G1282, G1854, G1861); +nand g244(G1303, G1873, G1876); +nand g245(G1304, G1870, G1877); +nand g246(G1315, G1881, G1884); +nand g247(G1316, G1878, G1885); +not g248(G998, G990); +not g249(G988, G980); +nand g250(G268, G297, G298); +not g251(G1038, G1030); +not g252(G1048, G1040); +not g253(G1076, G1068); +not g254(G1066, G1058); +not g255(G1098, G1090); +not g256(G1120, G1112); +not g257(G1174, G1166); +nand g258(G363, G361, G362); +not g259(G1210, G1204); +nand g260(G373, G1204, G1211); +not g261(G1276, G1268); +nand g262(G406, G404, G405); +not g263(G565, G482); +assign G566 = G482; +not g265(G614, G487); +assign G615 = G487; +nand g267(G958, G956, G978); +nand g268(G969, G967, G978); +not g269(G1660, G1654); +nand g270(G984, G1654, G1661); +not g271(G1668, G1662); +nand g272(G994, G1662, G1669); +not g273(G1700, G1694); +nand g274(G1034, G1694, G1701); +not g275(G1708, G1702); +nand g276(G1044, G1702, G1709); +not g277(G1716, G1710); +nand g278(G1062, G1710, G1717); +not g279(G1724, G1718); +nand g280(G1072, G1718, G1725); +not g281(G1732, G1726); +not g282(G1086, G1078); +not g283(G1740, G1734); +not g284(G1748, G1742); +nand g285(G1104, G1742, G1749); +not g286(G1108, G1100); +not g287(G1756, G1750); +nand g288(G1116, G1750, G1757); +not g289(G1788, G1782); +nand g290(G1158, G1782, G1789); +not g291(G1162, G1154); +not g292(G1796, G1790); +nand g293(G1170, G1790, G1797); +not g294(G1200, G1194); +nand g295(G1203, G1194, G1201); +nand g296(G1227, G1225, G1226); +nand g297(G1249, G1247, G1248); +not g298(G1844, G1838); +not g299(G1264, G1256); +not g300(G1852, G1846); +nand g301(G1272, G1846, G1853); +nand g302(G1283, G1281, G1282); +nand g303(G1305, G1303, G1304); +nand g304(G1317, G1315, G1316); +assign G1410 = G492; +assign G1418 = G492; +assign G1426 = G505; +assign G1434 = G505; +not g309(G269, G268); +nand g310(G372, G1207, G1210); +nand g311(G983, G1657, G1660); +nand g312(G993, G1665, G1668); +nand g313(G1033, G1697, G1700); +nand g314(G1043, G1705, G1708); +nand g315(G1061, G1713, G1716); +nand g316(G1071, G1721, G1724); +nand g317(G1103, G1745, G1748); +nand g318(G1115, G1753, G1756); +nand g319(G1157, G1785, G1788); +nand g320(G1169, G1793, G1796); +not g321(G1184, G363); +nand g322(G1202, G1197, G1200); +nand g323(G1271, G1849, G1852); +not g324(G1322, G406); +nand g325(G374, G372, G373); +nand g326(G396, G1317, G1320); +not g327(G1321, G1317); +not g328(G1424, G1418); +not g329(G1416, G1410); +not g330(G1440, G1434); +not g331(G1432, G1426); +nand g332(G985, G983, G984); +nand g333(G995, G993, G994); +nand g334(G1035, G1033, G1034); +nand g335(G1045, G1043, G1044); +nand g336(G1063, G1061, G1062); +nand g337(G1073, G1071, G1072); +nand g338(G1105, G1103, G1104); +nand g339(G1117, G1115, G1116); +nand g340(G1159, G1157, G1158); +nand g341(G1171, G1169, G1170); +nand g342(G1212, G1202, G1203); +not g343(G1231, G1227); +nand g344(G1232, G1227, G1230); +not g345(G1253, G1249); +nand g346(G1254, G1249, G1252); +nand g347(G1273, G1271, G1272); +not g348(G1287, G1283); +nand g349(G1288, G1283, G1286); +not g350(G1309, G1305); +nand g351(G1310, G1305, G1308); +not g352(G1192, G1184); +nand g353(G397, G1312, G1321); +not g354(G1330, G1322); +assign G1000 = G269; +assign G1010 = G269; +nand g357(G1233, G1222, G1231); +nand g358(G1255, G1244, G1253); +nand g359(G1289, G1278, G1287); +nand g360(G1311, G1300, G1309); +not g361(G1381, G374); +nand g362(G257, G995, G998); +not g363(G999, G995); +nand g364(G260, G985, G988); +not g365(G989, G985); +nand g366(G272, G1035, G1038); +not g367(G1039, G1035); +nand g368(G294, G1045, G1048); +not g369(G1049, G1045); +nand g370(G305, G1073, G1076); +not g371(G1077, G1073); +nand g372(G308, G1063, G1066); +not g373(G1067, G1063); +nand g374(G333, G1117, G1120); +not g375(G1121, G1117); +nand g376(G358, G1171, G1174); +not g377(G1175, G1171); +not g378(G1220, G1212); +nand g379(G388, G1273, G1276); +not g380(G1277, G1273); +nand g381(G398, G396, G397); +not g382(G1109, G1105); +nand g383(G1110, G1105, G1108); +not g384(G1163, G1159); +nand g385(G1164, G1159, G1162); +nand g386(G1234, G1232, G1233); +not g387(G1265, G1261); +nand g388(G1266, G1261, G1264); +nand g389(G1822, G1254, G1255); +nand g390(G1862, G1310, G1311); +nand g391(G1865, G1288, G1289); +nand g392(G258, G990, G999); +nand g393(G261, G980, G989); +nand g394(G273, G1030, G1039); +not g395(G1018, G1010); +not g396(G1008, G1000); +nand g397(G295, G1040, G1049); +nand g398(G306, G1068, G1077); +nand g399(G309, G1058, G1067); +nand g400(G334, G1112, G1121); +nand g401(G359, G1166, G1175); +nand g402(G389, G1268, G1277); +not g403(G1385, G1381); +nand g404(G1111, G1100, G1109); +nand g405(G1165, G1154, G1163); +nand g406(G1267, G1256, G1265); +not g407(G1886, G398); +nand g408(G259, G257, G258); +nand g409(G262, G260, G261); +nand g410(G274, G272, G273); +nand g411(G296, G294, G295); +nand g412(G307, G305, G306); +nand g413(G310, G308, G309); +nand g414(G335, G333, G334); +nand g415(G360, G358, G359); +not g416(G1242, G1234); +nand g417(G390, G388, G389); +not g418(G1828, G1822); +not g419(G1868, G1862); +not g420(G1869, G1865); +nand g421(G1373, G1164, G1165); +nand g422(G1798, G1110, G1111); +nand g423(G1825, G1266, G1267); +not g424(G265, G259); +not g425(G314, G307); +not g426(G336, G335); +not g427(G407, G296); +nand g428(G1293, G1865, G1868); +nand g429(G1294, G1862, G1869); +not g430(G1892, G1886); +not g431(G1777, G360); +not g432(G1889, G390); +assign G410 = G310; +not g434(G1377, G1373); +not g435(G1804, G1798); +nand g436(G1237, G1825, G1828); +not g437(G1829, G1825); +nand g438(G1295, G1293, G1294); +assign G1670 = G274; +assign G1678 = G274; +assign G1729 = G310; +assign G1737 = G310; +assign G1761 = G262; +assign G1769 = G262; +assign G340 = G336; +assign G343 = G314; +not g447(G1781, G1777); +nand g448(G1238, G1822, G1829); +nand g449(G1325, G1889, G1892); +not g450(G1893, G1889); +assign G1340 = G407; +assign G1352 = G407; +assign G1673 = G265; +assign G1681 = G265; +assign G1801 = G314; +assign G1897 = G336; +assign G1905 = G336; +nand g458(G391, G1295, G1298); +not g459(G1299, G1295); +not g460(G1676, G1670); +not g461(G1684, G1678); +nand g462(G1081, G1729, G1732); +not g463(G1733, G1729); +nand g464(G1093, G1737, G1740); +not g465(G1741, G1737); +not g466(G1765, G1761); +not g467(G1773, G1769); +nand g468(G1239, G1237, G1238); +nand g469(G1326, G1886, G1893); +assign G1894 = G410; +assign G1902 = G410; +nand g472(G392, G1290, G1299); +not g473(G1360, G1352); +nand g474(G1003, G1673, G1676); +not g475(G1677, G1673); +nand g476(G1013, G1681, G1684); +not g477(G1685, G1681); +nand g478(G1082, G1726, G1733); +nand g479(G1094, G1734, G1741); +assign G1122 = G340; +assign G1134 = G340; +nand g482(G1187, G1801, G1804); +not g483(G1805, G1801); +nand g484(G1327, G1325, G1326); +not g485(G1901, G1897); +not g486(G1348, G1340); +not g487(G1909, G1905); +assign G1758 = G343; +assign G1766 = G343; +nand g490(G377, G1239, G1242); +not g491(G1243, G1239); +nand g492(G393, G391, G392); +nand g493(G1004, G1670, G1677); +nand g494(G1014, G1678, G1685); +nand g495(G1083, G1081, G1082); +nand g496(G1095, G1093, G1094); +nand g497(G1188, G1798, G1805); +not g498(G1900, G1894); +nand g499(G1344, G1894, G1901); +not g500(G1908, G1902); +nand g501(G1356, G1902, G1909); +not g502(G1142, G1134); +nand g503(G378, G1234, G1243); +nand g504(G399, G1327, G1330); +not g505(G1331, G1327); +nand g506(G1005, G1003, G1004); +nand g507(G1015, G1013, G1014); +not g508(G1764, G1758); +nand g509(G1126, G1758, G1765); +not g510(G1130, G1122); +not g511(G1772, G1766); +nand g512(G1138, G1766, G1773); +nand g513(G1189, G1187, G1188); +nand g514(G1343, G1897, G1900); +nand g515(G1355, G1905, G1908); +nand g516(G324, G1095, G1098); +not g517(G1099, G1095); +nand g518(G379, G377, G378); +nand g519(G400, G1322, G1331); +nand g520(G449, G393, G918); +not g521(G1087, G1083); +nand g522(G1088, G1083, G1086); +nand g523(G1125, G1761, G1764); +nand g524(G1137, G1769, G1772); +nand g525(G1345, G1343, G1344); +nand g526(G1357, G1355, G1356); +assign G1397 = G393; +nand g528(G277, G1015, G1018); +not g529(G1019, G1015); +nand g530(G280, G1005, G1008); +not g531(G1009, G1005); +nand g532(G325, G1090, G1099); +nand g533(G364, G1189, G1192); +not g534(G1193, G1189); +nand g535(G401, G399, G400); +nand g536(G1089, G1078, G1087); +nand g537(G1127, G1125, G1126); +nand g538(G1139, G1137, G1138); +nand g539(G278, G1010, G1019); +nand g540(G281, G1000, G1009); +nand g541(G326, G324, G325); +nand g542(G365, G1184, G1193); +nand g543(G413, G1357, G1360); +not g544(G1361, G1357); +not g545(G1401, G1397); +nand g546(G445, G379, G918); +not g547(G1349, G1345); +nand g548(G1350, G1345, G1348); +assign G1389 = G379; +assign G1493 = G449; +assign G1501 = G449; +nand g552(G1689, G1088, G1089); +nand g553(G279, G277, G278); +nand g554(G282, G280, G281); +nand g555(G346, G1139, G1142); +not g556(G1143, G1139); +nand g557(G366, G364, G365); +nand g558(G414, G1352, G1361); +nand g559(G453, G401, G918); +not g560(G1131, G1127); +nand g561(G1132, G1127, G1130); +nand g562(G1351, G1340, G1349); +not g563(G1365, G326); +assign G1405 = G401; +not g565(G285, G279); +nand g566(G347, G1134, G1143); +not g567(G367, G366); +nand g568(G415, G413, G414); +not g569(G1393, G1389); +nand g570(G556, G1501, G1504); +not g571(G1505, G1501); +nand g572(G559, G1493, G1496); +not g573(G1497, G1493); +not g574(G1693, G1689); +nand g575(G1133, G1122, G1131); +assign G1477 = G445; +assign G1485 = G445; +nand g578(G1809, G1350, G1351); +nand g579(G348, G346, G347); +not g580(G1369, G1365); +not g581(G1409, G1405); +nand g582(G557, G1498, G1505); +nand g583(G560, G1490, G1497); +assign G1362 = G282; +not g585(G1378, G415); +assign G1429 = G453; +assign G1437 = G453; +assign G1686 = G282; +nand g589(G1774, G1132, G1133); +and g590(G1910, G285, G853); +and g591(G1918, G856, G367); +nand g592(G544, G1485, G1488); +not g593(G1489, G1485); +nand g594(G547, G1477, G1480); +not g595(G1481, G1477); +nand g596(G558, G556, G557); +nand g597(G561, G559, G560); +not g598(G1813, G1809); +not g599(G1370, G348); +not g600(G1368, G1362); +nand g601(G417, G1362, G1369); +not g602(G1384, G1378); +nand g603(G424, G1378, G1385); +nand g604(G508, G1437, G1440); +not g605(G1441, G1437); +nand g606(G511, G1429, G1432); +not g607(G1433, G1429); +nand g608(G545, G1482, G1489); +nand g609(G548, G1474, G1481); +not g610(G564, G558); +not g611(G1692, G1686); +nand g612(G1024, G1686, G1693); +not g613(G1780, G1774); +nand g614(G1148, G1774, G1781); +not g615(G1916, G1910); +not g616(G1924, G1918); +nand g617(G416, G1365, G1368); +not g618(G1376, G1370); +nand g619(G421, G1370, G1377); +nand g620(G423, G1381, G1384); +nand g621(G509, G1434, G1441); +nand g622(G512, G1426, G1433); +nand g623(G546, G544, G545); +nand g624(G549, G547, G548); +not g625(G719, G561); +assign G722 = G561; +nand g627(G1023, G1689, G1692); +nand g628(G1147, G1777, G1780); +nand g629(G418, G416, G417); +nand g630(G420, G1373, G1376); +nand g631(G425, G423, G424); +nand g632(G510, G508, G509); +nand g633(G513, G511, G512); +not g634(G552, G546); +nand g635(G1025, G1023, G1024); +nand g636(G1149, G1147, G1148); +not g637(G419, G418); +nand g638(G422, G420, G421); +nand g639(G441, G425, G918); +not g640(G516, G510); +not g641(G725, G549); +assign G728 = G549; +not g643(G1029, G1025); +not g644(G1153, G1149); +nand g645(G433, G419, G918); +nand g646(G437, G422, G918); +not g647(G663, G513); +assign G666 = G513; +and g649(G731, G719, G725); +and g650(G746, G722, G725); +and g651(G756, G719, G728); +and g652(G770, G722, G728); +assign G1461 = G441; +assign G1469 = G441; +assign G1413 = G433; +assign G1421 = G433; +assign G1445 = G437; +assign G1453 = G437; +nand g659(G532, G1469, G1472); +not g660(G1473, G1469); +not g661(G1465, G1461); +nand g662(G495, G1421, G1424); +not g663(G1425, G1421); +nand g664(G498, G1413, G1416); +not g665(G1417, G1413); +nand g666(G520, G1453, G1456); +not g667(G1457, G1453); +nand g668(G523, G1445, G1448); +not g669(G1449, G1445); +nand g670(G533, G1466, G1473); +nand g671(G496, G1418, G1425); +nand g672(G499, G1410, G1417); +nand g673(G521, G1450, G1457); +nand g674(G524, G1442, G1449); +nand g675(G534, G532, G533); +nand g676(G497, G495, G496); +nand g677(G500, G498, G499); +nand g678(G522, G520, G521); +nand g679(G525, G523, G524); +not g680(G540, G534); +not g681(G503, G497); +not g682(G528, G522); +not g683(G669, G537); +assign G672 = G537; +not g685(G569, G500); +and g686(G588, G566, G500); +not g687(G618, G525); +and g688(G639, G615, G525); +nand g689(G867, G516, G564, G552, G540, G482, G528, G503, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g694(G675, G663, G669); +and g695(G688, G666, G669); +and g696(G696, G663, G672); +and g697(G710, G666, G672); +and g698(G73, G949, G867, G932, G932); +and g699(G572, G565, G569); +and g700(G573, G566, G569); +and g701(G621, G614, G618); +and g702(G622, G615, G618); +nand g703(G776, G588a, G639a, G696, G731, G958); +nand g704(G780, G588a, G639a, G675, G756, G958); +nand g705(G784, G588a, G639a, G675, G746, G958); +nand g706(G788, G588a, G639a, G688, G731, G958); +nand g707(G812, G588b, G639a, G710, G746, G969); +nand g708(G832, G588b, G639b, G696, G770, G969); +nand g709(G836, G588b, G639b, G710, G756, G969); +and g710(G1509, G588a, G639a, G696, G731, G958); +and g711(G1517, G588a, G639a, G675, G756, G958); +and g712(G1525, G588a, G639a, G675, G746, G958); +and g713(G1533, G588a, G639a, G688, G731, G958); +and g714(G1581, G588b, G639a, G710, G746, G969); +and g715(G1621, G588b, G639b, G696, G770, G969); +and g716(G1629, G588b, G639b, G710, G756, G969); +nand g717(G792, G588a, G622, G696, G756, G958); +nand g718(G796, G588b, G622, G696, G746, G958); +nand g719(G800, G588b, G622, G710, G731, G958); +nand g720(G804, G588b, G622, G675, G770, G958); +nand g721(G808, G588b, G622, G688, G756, G969); +nand g722(G816, G573, G639b, G696, G756, G969); +nand g723(G820, G573, G639b, G696, G746, G969); +nand g724(G824, G573, G639b, G710, G731, G969); +nand g725(G828, G573, G639b, G688, G756, G969); +nand g726(G871, G588b, G622, G675, G731, G979); +nand g727(G873, G573, G639b, G675, G731, G979); +nand g728(G875, G573, G622, G696, G731, G979); +nand g729(G877, G573, G622, G675, G756, G979); +nand g730(G879, G573, G622, G675, G746, G979); +nand g731(G881, G573, G622, G688, G731, G979); +nand g732(G883, G573, G621, G675, G731, G979); +nand g733(G885, G572, G622, G675, G731, G979); +and g734(G1541, G588a, G622, G696, G756, G958); +and g735(G1549, G588b, G622, G696, G746, G958); +and g736(G1557, G588b, G622, G710, G731, G958); +and g737(G1565, G588b, G622, G675, G770, G958); +and g738(G1573, G588b, G622, G688, G756, G969); +and g739(G1589, G573, G639b, G696, G756, G969); +and g740(G1597, G573, G639b, G696, G746, G969); +and g741(G1605, G573, G639b, G710, G731, G969); +and g742(G1613, G573, G639b, G688, G756, G969); +nand g743(G1, G1509, G1512); +not g744(G1513, G1509); +nand g745(G4, G1517, G1520); +not g746(G1521, G1517); +nand g747(G7, G1525, G1528); +not g748(G1529, G1525); +nand g749(G10, G1533, G1536); +not g750(G1537, G1533); +nand g751(G28, G1581, G1584); +not g752(G1585, G1581); +nand g753(G43, G1621, G1624); +not g754(G1625, G1621); +nand g755(G46, G1629, G1632); +not g756(G1633, G1629); +and g757(G886, G871, G873, G875, G877, G879, G881, G883, G885); +nand g758(G2, G1506, G1513); +nand g759(G5, G1514, G1521); +nand g760(G8, G1522, G1529); +nand g761(G11, G1530, G1537); +nand g762(G13, G1541, G1544); +not g763(G1545, G1541); +nand g764(G16, G1549, G1552); +not g765(G1553, G1549); +nand g766(G19, G1557, G1560); +not g767(G1561, G1557); +nand g768(G22, G1565, G1568); +not g769(G1569, G1565); +nand g770(G25, G1573, G1576); +not g771(G1577, G1573); +nand g772(G29, G1578, G1585); +nand g773(G31, G1589, G1592); +not g774(G1593, G1589); +nand g775(G34, G1597, G1600); +not g776(G1601, G1597); +nand g777(G37, G1605, G1608); +not g778(G1609, G1605); +nand g779(G40, G1613, G1616); +not g780(G1617, G1613); +nand g781(G44, G1618, G1625); +nand g782(G47, G1626, G1633); +nand g783(G857, G776, G780, G784, G788, G792, G796, G800, G804); +nand g784(G860, G808, G812, G816, G820, G824, G828, G832, G836); +and g785(G863, G776, G780, G784, G788, G792, G796, G800, G804); +and g786(G865, G808, G812, G816, G820, G824, G828, G832, G836); +nand g787(G3, G1, G2); +nand g788(G6, G4, G5); +nand g789(G9, G7, G8); +nand g790(G12, G10, G11); +nand g791(G14, G1538, G1545); +nand g792(G17, G1546, G1553); +nand g793(G20, G1554, G1561); +nand g794(G23, G1562, G1569); +nand g795(G26, G1570, G1577); +nand g796(G30, G28, G29); +nand g797(G32, G1586, G1593); +nand g798(G35, G1594, G1601); +nand g799(G38, G1602, G1609); +nand g800(G41, G1610, G1617); +nand g801(G45, G43, G44); +nand g802(G48, G46, G47); +and g803(G1913, G857, G859); +and g804(G1921, G860, G862); +nand g805(G15, G13, G14); +nand g806(G18, G16, G17); +nand g807(G21, G19, G20); +nand g808(G24, G22, G23); +nand g809(G27, G25, G26); +nand g810(G33, G31, G32); +nand g811(G36, G34, G35); +nand g812(G39, G37, G38); +nand g813(G42, G40, G41); +and g814(G887, G863, G865, G886); +nand g815(G462, G863, G865); +and g816(G74, G949, G867, G952, G887); +nand g817(G1637, G1913, G1916); +not g818(G1917, G1913); +nand g819(G1647, G1921, G1924); +not g820(G1925, G1921); +nor g821(G75, G73, G74); +and g822(G1020, G457, G911, G462); +and g823(G1144, G469, G911, G462); +and g824(G1386, G475, G911, G462); +and g825(G1394, G478, G911, G462); +and g826(G1402, G459, G911, G462); +nand g827(G1638, G1910, G1917); +nand g828(G1648, G1918, G1925); +and g829(G1806, G472, G911, G462); +nand g830(G1639, G1637, G1638); +nand g831(G1649, G1647, G1648); +nand g832(G287, G1020, G1029); +nand g833(G350, G1144, G1153); +nand g834(G429, G1394, G1401); +not g835(G1028, G1020); +not g836(G1152, G1144); +not g837(G1392, G1386); +not g838(G1400, G1394); +not g839(G1408, G1402); +not g840(G1812, G1806); +nand g841(G1216, G1806, G1813); +nand g842(G286, G1025, G1028); +nand g843(G349, G1149, G1152); +nand g844(G428, G1397, G1400); +nand g845(G67, G1639, G1642); +not g846(G1643, G1639); +nand g847(G70, G1649, G1652); +not g848(G1653, G1649); +nand g849(G1215, G1809, G1812); +nand g850(G49, G286, G287); +nand g851(G53, G349, G350); +nand g852(G61, G428, G429); +nand g853(G68, G1634, G1643); +nand g854(G71, G1644, G1653); +nand g855(G1217, G1215, G1216); +and g856(G51, G49, G50); +and g857(G54, G52, G53); +and g858(G60, G58, G59); +and g859(G63, G61, G62); +and g860(G66, G64, G65); +nand g861(G69, G67, G68); +nand g862(G72, G70, G71); +nand g863(G375, G1217, G1220); +not g864(G1221, G1217); +nand g865(G376, G1212, G1221); +nand g866(G55, G375, G376); +and g867(G57, G55, G56); +not g868(in0not_0, G1465); +not g869(in1not_0, G1461); +not g870(in2not_0, G1464); +not g871(in3not_0, G1458); +and g872(T0_0, keyinput0_0, in0not_0, in1not_0, in2not_0, in3not_0); +and g873(T1_0, keyinput1_0, G1465, in1not_0, in2not_0, in3not_0); +and g874(T2_0, keyinput2_0, in0not_0, G1461, in2not_0, in3not_0); +and g875(T3_0, keyinput3_0, G1465, G1461, in2not_0, in3not_0); +and g876(T4_0, keyinput4_0, in0not_0, in1not_0, G1464, in3not_0); +and g877(T5_0, keyinput5_0, G1465, in1not_0, G1464, in3not_0); +and g878(T6_0, keyinput6_0, in0not_0, G1461, G1464, in3not_0); +and g879(T7_0, keyinput7_0, G1465, G1461, G1464, in3not_0); +and g880(T8_0, keyinput8_0, in0not_0, in1not_0, in2not_0, G1458); +and g881(T9_0, keyinput9_0, G1465, in1not_0, in2not_0, G1458); +and g882(T10_0, keyinput10_0, in0not_0, G1461, in2not_0, G1458); +and g883(T11_0, keyinput11_0, G1465, G1461, in2not_0, G1458); +and g884(T12_0, keyinput12_0, in0not_0, in1not_0, G1464, G1458); +and g885(T13_0, keyinput13_0, G1465, in1not_0, G1464, G1458); +and g886(T14_0, keyinput14_0, in0not_0, G1461, G1464, G1458); +and g887(T15_0, keyinput15_0, G1465, G1461, G1464, G1458); +or g888(G537, T0_0, T1_0, T2_0, T3_0, T4_0, T5_0, T6_0, T7_0, T8_0, T9_0, T10_0, T11_0, T12_0, T13_0, T14_0, T15_0); +not g889(in0not_1, G1838); +not g890(in1not_1, G1845); +not g891(in2not_1, G1844); +not g892(in3not_1, G1841); +and g893(T0_1, keyinput0_1, in0not_1, in1not_1, in2not_1, in3not_1); +and g894(T1_1, keyinput1_1, G1838, in1not_1, in2not_1, in3not_1); +and g895(T2_1, keyinput2_1, in0not_1, G1845, in2not_1, in3not_1); +and g896(T3_1, keyinput3_1, G1838, G1845, in2not_1, in3not_1); +and g897(T4_1, keyinput4_1, in0not_1, in1not_1, G1844, in3not_1); +and g898(T5_1, keyinput5_1, G1838, in1not_1, G1844, in3not_1); +and g899(T6_1, keyinput6_1, in0not_1, G1845, G1844, in3not_1); +and g900(T7_1, keyinput7_1, G1838, G1845, G1844, in3not_1); +and g901(T8_1, keyinput8_1, in0not_1, in1not_1, in2not_1, G1841); +and g902(T9_1, keyinput9_1, G1838, in1not_1, in2not_1, G1841); +and g903(T10_1, keyinput10_1, in0not_1, G1845, in2not_1, G1841); +and g904(T11_1, keyinput11_1, G1838, G1845, in2not_1, G1841); +and g905(T12_1, keyinput12_1, in0not_1, in1not_1, G1844, G1841); +and g906(T13_1, keyinput13_1, G1838, in1not_1, G1844, G1841); +and g907(T14_1, keyinput14_1, in0not_1, G1845, G1844, G1841); +and g908(T15_1, keyinput15_1, G1838, G1845, G1844, G1841); +or g909(G1261, T0_1, T1_1, T2_1, T3_1, T4_1, T5_1, T6_1, T7_1, T8_1, T9_1, T10_1, T11_1, T12_1, T13_1, T14_1, T15_1); +not g910(in0not_2, G1392); +not g911(in1not_2, G1386); +not g912(in2not_2, G1393); +not g913(in3not_2, G1389); +and g914(T0_2, keyinput0_2, in0not_2, in1not_2, in2not_2, in3not_2); +and g915(T1_2, keyinput1_2, G1392, in1not_2, in2not_2, in3not_2); +and g916(T2_2, keyinput2_2, in0not_2, G1386, in2not_2, in3not_2); +and g917(T3_2, keyinput3_2, G1392, G1386, in2not_2, in3not_2); +and g918(T4_2, keyinput4_2, in0not_2, in1not_2, G1393, in3not_2); +and g919(T5_2, keyinput5_2, G1392, in1not_2, G1393, in3not_2); +and g920(T6_2, keyinput6_2, in0not_2, G1386, G1393, in3not_2); +and g921(T7_2, keyinput7_2, G1392, G1386, G1393, in3not_2); +and g922(T8_2, keyinput8_2, in0not_2, in1not_2, in2not_2, G1389); +and g923(T9_2, keyinput9_2, G1392, in1not_2, in2not_2, G1389); +and g924(T10_2, keyinput10_2, in0not_2, G1386, in2not_2, G1389); +and g925(T11_2, keyinput11_2, G1392, G1386, in2not_2, G1389); +and g926(T12_2, keyinput12_2, in0not_2, in1not_2, G1393, G1389); +and g927(T13_2, keyinput13_2, G1392, in1not_2, G1393, G1389); +and g928(T14_2, keyinput14_2, in0not_2, G1386, G1393, G1389); +and g929(T15_2, keyinput15_2, G1392, G1386, G1393, G1389); +or g930(G59, T0_2, T1_2, T2_2, T3_2, T4_2, T5_2, T6_2, T7_2, T8_2, T9_2, T10_2, T11_2, T12_2, T13_2, T14_2, T15_2); +not g931(in0not_3, G1408); +not g932(in1not_3, G1402); +not g933(in2not_3, G1409); +not g934(in3not_3, G1405); +and g935(T0_3, keyinput0_3, in0not_3, in1not_3, in2not_3, in3not_3); +and g936(T1_3, keyinput1_3, G1408, in1not_3, in2not_3, in3not_3); +and g937(T2_3, keyinput2_3, in0not_3, G1402, in2not_3, in3not_3); +and g938(T3_3, keyinput3_3, G1408, G1402, in2not_3, in3not_3); +and g939(T4_3, keyinput4_3, in0not_3, in1not_3, G1409, in3not_3); +and g940(T5_3, keyinput5_3, G1408, in1not_3, G1409, in3not_3); +and g941(T6_3, keyinput6_3, in0not_3, G1402, G1409, in3not_3); +and g942(T7_3, keyinput7_3, G1408, G1402, G1409, in3not_3); +and g943(T8_3, keyinput8_3, in0not_3, in1not_3, in2not_3, G1405); +and g944(T9_3, keyinput9_3, G1408, in1not_3, in2not_3, G1405); +and g945(T10_3, keyinput10_3, in0not_3, G1402, in2not_3, G1405); +and g946(T11_3, keyinput11_3, G1408, G1402, in2not_3, G1405); +and g947(T12_3, keyinput12_3, in0not_3, in1not_3, G1409, G1405); +and g948(T13_3, keyinput13_3, G1408, in1not_3, G1409, G1405); +and g949(T14_3, keyinput14_3, in0not_3, G1402, G1409, G1405); +and g950(T15_3, keyinput15_3, G1408, G1402, G1409, G1405); +or g951(G65, T0_3, T1_3, T2_3, T3_3, T4_3, T5_3, T6_3, T7_3, T8_3, T9_3, T10_3, T11_3, T12_3, T13_3, T14_3, T15_3); +endmodule diff --git a/benchmarks/c1908/c1908_xor_256bit.v b/benchmarks/c1908/c1908_xor_256bit.v new file mode 100644 index 0000000..64cd371 --- /dev/null +++ b/benchmarks/c1908/c1908_xor_256bit.v @@ -0,0 +1,1319 @@ +// Verilog File +module c1908_xor_256bit.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63,keyinput64,keyinput65, +keyinput66,keyinput67,keyinput68,keyinput69,keyinput70,keyinput71,keyinput72,keyinput73,keyinput74,keyinput75, +keyinput76,keyinput77,keyinput78,keyinput79,keyinput80,keyinput81,keyinput82,keyinput83,keyinput84,keyinput85, +keyinput86,keyinput87,keyinput88,keyinput89,keyinput90,keyinput91,keyinput92,keyinput93,keyinput94,keyinput95, +keyinput96,keyinput97,keyinput98,keyinput99,keyinput100,keyinput101,keyinput102,keyinput103,keyinput104,keyinput105, +keyinput106,keyinput107,keyinput108,keyinput109,keyinput110,keyinput111,keyinput112,keyinput113,keyinput114,keyinput115, +keyinput116,keyinput117,keyinput118,keyinput119,keyinput120,keyinput121,keyinput122,keyinput123,keyinput124,keyinput125, +keyinput126,keyinput127,keyinput128,keyinput129,keyinput130,keyinput131,keyinput132,keyinput133,keyinput134,keyinput135, +keyinput136,keyinput137,keyinput138,keyinput139,keyinput140,keyinput141,keyinput142,keyinput143,keyinput144,keyinput145, +keyinput146,keyinput147,keyinput148,keyinput149,keyinput150,keyinput151,keyinput152,keyinput153,keyinput154,keyinput155, +keyinput156,keyinput157,keyinput158,keyinput159,keyinput160,keyinput161,keyinput162,keyinput163,keyinput164,keyinput165, +keyinput166,keyinput167,keyinput168,keyinput169,keyinput170,keyinput171,keyinput172,keyinput173,keyinput174,keyinput175, +keyinput176,keyinput177,keyinput178,keyinput179,keyinput180,keyinput181,keyinput182,keyinput183,keyinput184,keyinput185, +keyinput186,keyinput187,keyinput188,keyinput189,keyinput190,keyinput191,keyinput192,keyinput193,keyinput194,keyinput195, +keyinput196,keyinput197,keyinput198,keyinput199,keyinput200,keyinput201,keyinput202,keyinput203,keyinput204,keyinput205, +keyinput206,keyinput207,keyinput208,keyinput209,keyinput210,keyinput211,keyinput212,keyinput213,keyinput214,keyinput215, +keyinput216,keyinput217,keyinput218,keyinput219,keyinput220,keyinput221,keyinput222,keyinput223,keyinput224,keyinput225, +keyinput226,keyinput227,keyinput228,keyinput229,keyinput230,keyinput231,keyinput232,keyinput233,keyinput234,keyinput235, +keyinput236,keyinput237,keyinput238,keyinput239,keyinput240,keyinput241,keyinput242,keyinput243,keyinput244,keyinput245, +keyinput246,keyinput247,keyinput248,keyinput249,keyinput250,keyinput251,keyinput252,keyinput253,keyinput254,keyinput255, +G3,G6,G9,G12,G30,G45,G48,G15,G18,G21, +G24,G27,G33,G36,G39,G42,G75,G51,G54,G60, +G63,G66,G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63,keyinput64,keyinput65, +keyinput66,keyinput67,keyinput68,keyinput69,keyinput70,keyinput71,keyinput72,keyinput73,keyinput74,keyinput75, +keyinput76,keyinput77,keyinput78,keyinput79,keyinput80,keyinput81,keyinput82,keyinput83,keyinput84,keyinput85, +keyinput86,keyinput87,keyinput88,keyinput89,keyinput90,keyinput91,keyinput92,keyinput93,keyinput94,keyinput95, +keyinput96,keyinput97,keyinput98,keyinput99,keyinput100,keyinput101,keyinput102,keyinput103,keyinput104,keyinput105, +keyinput106,keyinput107,keyinput108,keyinput109,keyinput110,keyinput111,keyinput112,keyinput113,keyinput114,keyinput115, +keyinput116,keyinput117,keyinput118,keyinput119,keyinput120,keyinput121,keyinput122,keyinput123,keyinput124,keyinput125, +keyinput126,keyinput127,keyinput128,keyinput129,keyinput130,keyinput131,keyinput132,keyinput133,keyinput134,keyinput135, +keyinput136,keyinput137,keyinput138,keyinput139,keyinput140,keyinput141,keyinput142,keyinput143,keyinput144,keyinput145, +keyinput146,keyinput147,keyinput148,keyinput149,keyinput150,keyinput151,keyinput152,keyinput153,keyinput154,keyinput155, +keyinput156,keyinput157,keyinput158,keyinput159,keyinput160,keyinput161,keyinput162,keyinput163,keyinput164,keyinput165, +keyinput166,keyinput167,keyinput168,keyinput169,keyinput170,keyinput171,keyinput172,keyinput173,keyinput174,keyinput175, +keyinput176,keyinput177,keyinput178,keyinput179,keyinput180,keyinput181,keyinput182,keyinput183,keyinput184,keyinput185, +keyinput186,keyinput187,keyinput188,keyinput189,keyinput190,keyinput191,keyinput192,keyinput193,keyinput194,keyinput195, +keyinput196,keyinput197,keyinput198,keyinput199,keyinput200,keyinput201,keyinput202,keyinput203,keyinput204,keyinput205, +keyinput206,keyinput207,keyinput208,keyinput209,keyinput210,keyinput211,keyinput212,keyinput213,keyinput214,keyinput215, +keyinput216,keyinput217,keyinput218,keyinput219,keyinput220,keyinput221,keyinput222,keyinput223,keyinput224,keyinput225, +keyinput226,keyinput227,keyinput228,keyinput229,keyinput230,keyinput231,keyinput232,keyinput233,keyinput234,keyinput235, +keyinput236,keyinput237,keyinput238,keyinput239,keyinput240,keyinput241,keyinput242,keyinput243,keyinput244,keyinput245, +keyinput246,keyinput247,keyinput248,keyinput249,keyinput250,keyinput251,keyinput252,keyinput253,keyinput254,keyinput255; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +G1520, G1528, G1536, G1544, xenc200, G1552, xenc231, G1560, xenc33, G1568, +xenc14, G1576, G1584, xenc5, G1592, G1600, xenc9, G1608, G1616, xenc122, +G1624, G1632, xenc95, G50, G52, G56, G58, G62, G64, xenc169, +G251, xenc100, G254, xenc124, G288, G291, G299, G302, xenc0, G318, +G321, G327, G330, G352, xenc244, G355, G369, xenc145, G382, G385, +xenc254, G853, G856, xenc176, G893, xenc130, G954, G955, xenc246, G1050, +G1053, G1176, G1179, G1197, G1207, G1222, G1244, G1278, G1290, G1300, +G1312, G1332, G1335, G1442, G1450, G1458, G1466, G1474, G1482, xenc15, +G1490, G1498, G1634, G1644, G1657, G1665, xenc61, G1697, G1705, G1713, +G1721, G1745, G1753, G1785, G1793, G1814, G1817, G1830, G1833, G1841, +G1849, G1854, G1857, G1870, G1873, G1878, G1881, G1642, G1652, G1056, +G1057, G1182, xenc60, G1183, G1211, xenc91, G1298, G1320, xenc111, G1338, +G1339, xenc141, G457, xenc172, G459, G482, G487, G492, G505, G1456, +G1448, xenc224, G1472, G1464, G1488, xenc203, G1480, G1504, G1496, xenc184, +G956, G967, xenc212, G978, G979, G980, G1661, G990, G1669, G1030, +xenc144, G1701, G1040, xenc152, G1709, G1058, G1717, G1068, G1725, xenc197, +G1078, G1090, G1100, G1749, G1112, xenc59, G1757, G1154, xenc223, G1789, +G1166, G1797, xenc67, G1194, G1201, G1204, xenc36, G1820, G1821, xenc229, +G1230, xenc94, G1836, G1837, G1252, G1256, G1845, G1268, G1853, xenc239, +G1860, G1861, G1286, G1876, G1877, G1308, xenc44, G1884, G1885, xenc12, +G1654, G1662, G1694, G1702, xenc29, G1710, G1718, G1726, G1734, G1742, +G1750, G1782, G1790, G1838, G1846, xenc250, G297, xenc3, G298, G361, +xenc206, G362, xenc162, G404, G405, G1225, G1226, G1247, xenc165, G1248, +G1281, G1282, xenc190, G1303, G1304, G1315, xenc154, G1316, xenc155, G998, +G988, G268, G1038, G1048, G1076, G1066, G1098, xenc195, G1120, G1174, +G363, G1210, G373, G1276, xenc161, G406, G565, G566, G614, G615, +G958, G969, xenc147, G1660, xenc255, G984, G1668, G994, G1700, xenc191, +G1034, G1708, xenc138, G1044, xenc27, G1716, G1062, G1724, G1072, G1732, +xenc121, G1086, G1740, xenc53, G1748, xenc177, G1104, xenc25, G1108, G1756, +xenc96, G1116, G1788, G1158, G1162, G1796, G1170, G1200, G1203, G1227, +G1249, G1844, G1260, G1264, G1852, G1272, xenc113, G1283, xenc20, xenc69, +G1305, G1317, G1410, G1418, xenc17, G1426, G1434, xenc222, G269, xenc185, +G372, xenc205, G983, G993, G1033, G1043, G1061, G1071, G1103, G1115, +xenc237, G1157, G1169, xenc101, G1184, G1202, G1259, G1271, G1322, xenc248, +G374, xenc230, xenc102, G396, G1321, G1424, G1416, G1440, G1432, xenc242, +G985, G995, G1035, G1045, xenc175, G1063, G1073, xenc23, G1105, xenc50, +G1117, G1159, G1171, G1212, G1231, G1232, G1253, xenc236, G1254, G1261, +xenc64, xenc109, G1273, G1287, G1288, G1309, G1310, G1192, G397, G1330, +G1000, G1010, G1233, G1255, xenc18, G1289, xenc136, G1311, G1381, G257, +G999, G260, G989, G272, G1039, G294, G1049, G305, G1077, xenc128, +G308, G1067, xenc22, xenc42, G333, G1121, G358, G1175, xenc143, G1220, +xenc66, xenc123, G388, G1277, G398, xenc215, G1109, G1110, xenc30, G1163, +G1164, G1234, G1265, G1266, G1822, G1862, xenc115, G1865, xenc92, G258, +xenc81, G261, G273, xenc13, G1018, G1008, xenc228, G295, G306, G309, +G334, xenc62, G359, G389, G1385, G1111, xenc11, G1165, G1267, G1886, +G259, G262, G274, G296, xenc167, xenc45, G307, xenc202, G310, xenc97, +G335, G360, G1242, xenc181, G390, G1828, G1868, G1869, xenc207, G1373, +G1798, xenc37, xenc41, G1825, G265, G314, G336, xenc87, G407, G1293, +G1294, G1892, xenc213, G1777, G1889, G410, xenc139, G1377, G1804, xenc188, +G1237, G1829, G1295, G1670, G1678, G1729, G1737, G1761, G1769, xenc47, +G340, G343, xenc156, G1781, G1238, xenc57, G1325, G1893, G1340, G1352, +G1673, G1681, G1801, G1897, G1905, G391, G1299, xenc52, G1676, G1684, +xenc134, G1081, G1733, xenc252, G1093, G1741, xenc26, G1765, G1773, G1239, +xenc71, G1326, G1894, G1902, G392, G1360, xenc68, G1003, G1677, G1013, +G1685, G1082, G1094, G1122, G1134, xenc10, G1187, G1805, G1327, G1901, +xenc80, G1348, xenc19, G1909, G1758, G1766, xenc16, G377, G1243, G393, +G1004, G1014, G1083, G1095, G1188, xenc98, G1900, xenc118, G1344, G1908, +G1356, G1142, xenc216, G378, G399, G1331, G1005, G1015, G1764, G1126, +G1130, G1772, G1138, xenc241, xenc112, G1189, G1343, xenc126, G1355, G324, +G1099, xenc159, G379, G400, G449, G1087, G1088, G1125, xenc170, G1137, +xenc247, G1345, xenc125, G1357, G1397, xenc35, G277, G1019, xenc6, G280, +G1009, G325, xenc171, G364, G1193, xenc86, G401, xenc233, G1089, xenc39, +G1127, xenc245, G1139, xenc163, G278, G281, xenc174, G326, G365, xenc76, +G413, G1361, G1401, G445, G1349, G1350, G1389, G1493, G1501, xenc179, +G1689, G279, G282, xenc107, G346, G1143, G366, G414, xenc135, G453, +G1131, G1132, G1351, G1365, G1405, G285, xenc108, G347, xenc218, G367, +G415, G1393, xenc104, G556, G1505, xenc120, G559, G1497, G1693, G1133, +xenc90, G1477, G1485, xenc209, G1809, G348, G1369, G1409, G557, xenc49, +G560, xenc150, G1362, G1378, G1429, G1437, G1686, G1774, xenc114, G1910, +G1918, xenc32, xenc140, G544, G1489, G547, G1481, G558, xenc1, G561, +G1813, G1370, G1368, xenc148, G417, G1384, G424, xenc238, G508, G1441, +G511, G1433, G545, xenc21, G548, G564, G1692, G1024, G1780, G1148, +G1916, xenc79, G1924, xenc146, G416, xenc196, G1376, G421, G423, G509, +G512, xenc183, G546, xenc173, G549, G719, G722, G1023, G1147, xenc82, +G418, xenc74, G420, G425, xenc65, G510, xenc116, G513, xenc110, G552, +G1025, G1149, G419, xenc199, G422, xenc119, G441, G516, G725, G728, +G1029, G1153, G433, G437, G663, G666, G731, G746, G756, G770, +G1461, G1469, xenc38, G1413, G1421, G1445, G1453, G532, G1473, G535, +G1465, xenc210, G495, G1425, G498, G1417, xenc182, G520, G1457, G523, +G1449, G533, G536, xenc28, G496, G499, G521, xenc2, G524, xenc249, +G534, xenc4, G537, G497, xenc103, G500, G522, G525, G540, G503, +G528, G669, G672, xenc105, G569, G588, G618, xenc78, G639, G867, +G588a, G588b, G639a, G639b, xenc93, G675, G688, G696, G710, xenc131, +G73, G572, G573, G621, G622, xenc208, G776, G780, G784, G788, +xenc24, G812, G832, G836, G1509, G1517, G1525, G1533, G1581, G1621, +G1629, xenc73, G792, G796, G800, G804, G808, G816, G820, G824, +G828, G871, G873, G875, G877, G879, G881, xenc158, G883, xenc194, +G885, G1541, G1549, G1557, G1565, G1573, G1589, G1597, G1605, G1613, +xenc193, G1, G1513, xenc31, G4, G1521, xenc164, G7, G1529, xenc235, +G10, G1537, G28, G1585, xenc217, G43, G1625, xenc83, G46, G1633, +xenc75, xenc133, G886, xenc160, G2, xenc129, G5, G8, G11, xenc48, +G13, G1545, xenc219, xenc7, G16, G1553, G19, G1561, G22, G1569, +G25, G1577, G29, G31, G1593, G34, G1601, G37, G1609, G40, +G1617, G44, xenc89, G47, xenc72, xenc227, xenc55, G857, xenc46, xenc99, +G860, G863, G865, xenc220, xenc166, xenc70, xenc153, xenc127, G14, xenc168, +G17, xenc186, G20, G23, G26, G32, G35, xenc243, G38, G41, +xenc88, xenc40, xenc198, G1913, G1921, xenc43, xenc232, xenc106, xenc221, xenc8, +xenc204, xenc132, xenc63, xenc251, xenc214, G887, G462, xenc211, G74, G1637, +G1917, xenc187, xenc225, G1647, G1925, xenc178, xenc58, G1020, G1144, G1386, +G1394, G1402, G1638, G1648, G1806, xenc137, G1639, G1649, xenc157, G287, +xenc56, G350, xenc192, G427, G429, xenc201, G431, G1028, G1152, G1392, +G1400, G1408, G1812, xenc142, G1216, G286, G349, G426, xenc149, G428, +G430, xenc51, G67, G1643, G70, G1653, G1215, G49, G53, G59, +G61, G65, xenc234, G68, G71, xenc84, xenc226, G1217, xenc77, xenc34, +xenc54, xenc180, xenc240, xenc253, xenc85, xenc189, xenc151, G375, G1221, G376, +G55, xenc117; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, G1514); +not g60(G1528, G1522); +not g61(G1536, G1530); +not g62(G1544, G1538); +not g63(G1552, xenc200); +not g64(G1560, xenc231); +not g65(G1568, xenc33); +not g66(G1576, xenc14); +not g67(G1584, G1578); +not g68(G1592, xenc5); +not g69(G1600, G1594); +not g70(G1608, xenc9); +not g71(G1616, G1610); +not g72(G1624, xenc122); +not g73(G1632, G1626); +nand g74(G50, G930, xenc95); +nand g75(G52, G930, xenc95); +nand g76(G56, G930, xenc95); +nand g77(G58, G930, xenc95); +nand g78(G62, G930, xenc95); +nand g79(G64, G930, xenc95); +assign G251 = xenc169; +assign G254 = xenc100; +assign G288 = xenc124; +assign G291 = G168; +assign G299 = G184; +assign G302 = G202; +and g86(G318, G224, xenc0); +assign G321 = G179; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, xenc0); +assign G355 = xenc244; +and g92(G369, G210, G241, xenc0); +assign G382 = xenc145; +assign G385 = xenc244; +nand g95(G853, xenc254, G907); +nand g96(G856, xenc254, G909); +nand g97(G893, xenc176, G237); +nand g98(G954, xenc176, xenc130); +nand g99(G955, G244, xenc130); +assign G1050 = xenc246; +assign G1053 = G175; +assign G1176 = G179; +assign G1179 = xenc244; +assign G1197 = xenc169; +assign G1207 = xenc169; +assign G1222 = xenc100; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, G245, xenc0); +assign G1300 = G191; +assign G1312 = xenc246; +assign G1332 = G194; +and g113(G1335, G221, G245, xenc0); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = xenc15; +assign G1498 = xenc15; +and g122(G1634, G231, G934); +and g123(G1644, G233, G934); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = xenc61; +assign G1705 = xenc61; +assign G1713 = xenc145; +assign G1721 = xenc145; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = xenc246; +assign G1793 = xenc246; +assign G1814 = xenc124; +assign G1817 = G175; +and g136(G1830, G214, G241, xenc0); +assign G1833 = G202; +assign G1841 = G179; +assign G1849 = G179; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = G202; +assign G1878 = xenc61; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, G1050); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, xenc60); +not g152(G1211, G1207); +not g153(G1298, xenc91); +not g154(G1320, G1312); +not g155(G1338, xenc111); +not g156(G1339, G1335); +and g157(G457, G210, xenc141); +and g158(G459, G217, xenc172); +nand g159(G482, G214, xenc141); +nand g160(G487, G221, xenc172); +nand g161(G492, G210, xenc141); +nand g162(G505, G217, xenc172); +not g163(G1456, G1450); +not g164(G1448, G1442); +not g165(G1472, xenc224); +not g166(G1464, G1458); +not g167(G1488, G1482); +not g168(G1480, xenc203); +not g169(G1504, G1498); +not g170(G1496, G1490); +nand g171(G956, G907, G919, xenc254, xenc184); +nand g172(G967, G909, G919, xenc254, xenc184); +nand g173(G978, G926, xenc212, xenc184); +and g174(G979, G926, xenc212, xenc184); +assign G980 = G251; +not g176(G1661, G1657); +assign G990 = G251; +not g178(G1669, G1665); +assign G1030 = G288; +not g180(G1701, xenc144); +assign G1040 = G288; +not g182(G1709, xenc152); +assign G1058 = G299; +not g184(G1717, G1713); +assign G1068 = G299; +not g186(G1725, G1721); +assign G1078 = xenc197; +assign G1090 = xenc197; +assign G1100 = G327; +not g190(G1749, G1745); +assign G1112 = G327; +not g192(G1757, xenc59); +assign G1154 = G352; +not g194(G1789, xenc223); +assign G1166 = G352; +not g196(G1797, G1793); +assign G1194 = xenc67; +not g198(G1201, G1197); +assign G1204 = xenc67; +not g200(G1820, xenc36); +not g201(G1821, G1817); +not g202(G1230, xenc229); +not g203(G1836, xenc94); +not g204(G1837, G1833); +not g205(G1252, G1244); +assign G1256 = G382; +not g207(G1845, G1841); +assign G1268 = G382; +not g209(G1853, G1849); +not g210(G1860, xenc239); +not g211(G1861, G1857); +not g212(G1286, G1278); +not g213(G1876, G1870); +not g214(G1877, G1873); +not g215(G1308, G1300); +not g216(G1884, xenc44); +not g217(G1885, G1881); +assign G1654 = xenc12; +assign G1662 = xenc12; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = xenc29; +assign G1718 = xenc29; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = G355; +assign G1790 = G355; +assign G1838 = G385; +assign G1846 = G385; +nand g232(G297, G1053, xenc250); +nand g233(G298, G1050, xenc3); +nand g234(G361, xenc60, G1182); +nand g235(G362, G1176, xenc206); +nand g236(G404, G1335, xenc162); +nand g237(G405, xenc111, G1339); +nand g238(G1225, G1817, G1820); +nand g239(G1226, xenc36, G1821); +nand g240(G1247, G1833, G1836); +nand g241(G1248, xenc94, xenc165); +nand g242(G1281, G1857, G1860); +nand g243(G1282, xenc239, G1861); +nand g244(G1303, G1873, xenc190); +nand g245(G1304, G1870, G1877); +nand g246(G1315, G1881, G1884); +nand g247(G1316, xenc44, xenc154); +not g248(G998, xenc155); +not g249(G988, G980); +nand g250(G268, G297, G298); +not g251(G1038, G1030); +not g252(G1048, G1040); +not g253(G1076, G1068); +not g254(G1066, G1058); +not g255(G1098, G1090); +not g256(G1120, xenc195); +not g257(G1174, G1166); +nand g258(G363, G361, G362); +not g259(G1210, G1204); +nand g260(G373, G1204, G1211); +not g261(G1276, G1268); +nand g262(G406, xenc161, G405); +not g263(G565, G482); +assign G566 = G482; +not g265(G614, G487); +assign G615 = G487; +nand g267(G958, G956, G978); +nand g268(G969, G967, G978); +not g269(G1660, xenc147); +nand g270(G984, xenc147, xenc255); +not g271(G1668, G1662); +nand g272(G994, G1662, G1669); +not g273(G1700, G1694); +nand g274(G1034, G1694, xenc191); +not g275(G1708, G1702); +nand g276(G1044, G1702, xenc138); +not g277(G1716, xenc27); +nand g278(G1062, xenc27, G1717); +not g279(G1724, G1718); +nand g280(G1072, G1718, G1725); +not g281(G1732, G1726); +not g282(G1086, xenc121); +not g283(G1740, G1734); +not g284(G1748, xenc53); +nand g285(G1104, xenc53, xenc177); +not g286(G1108, xenc25); +not g287(G1756, G1750); +nand g288(G1116, G1750, xenc96); +not g289(G1788, G1782); +nand g290(G1158, G1782, G1789); +not g291(G1162, G1154); +not g292(G1796, G1790); +nand g293(G1170, G1790, G1797); +not g294(G1200, G1194); +nand g295(G1203, G1194, G1201); +nand g296(G1227, G1225, G1226); +nand g297(G1249, G1247, G1248); +not g298(G1844, G1838); +nand g299(G1260, G1838, G1845); +not g300(G1264, G1256); +not g301(G1852, G1846); +nand g302(G1272, G1846, G1853); +nand g303(G1283, G1281, xenc113); +nand g304(G1305, xenc20, xenc69); +nand g305(G1317, G1315, G1316); +assign G1410 = G492; +assign G1418 = G492; +assign G1426 = xenc17; +assign G1434 = xenc17; +not g310(G269, xenc222); +nand g311(G372, G1207, xenc185); +nand g312(G983, G1657, xenc205); +nand g313(G993, G1665, G1668); +nand g314(G1033, xenc144, G1700); +nand g315(G1043, xenc152, G1708); +nand g316(G1061, G1713, G1716); +nand g317(G1071, G1721, G1724); +nand g318(G1103, G1745, G1748); +nand g319(G1115, xenc59, G1756); +nand g320(G1157, xenc223, xenc237); +nand g321(G1169, G1793, G1796); +not g322(G1184, xenc101); +nand g323(G1202, G1197, G1200); +nand g324(G1259, G1841, G1844); +nand g325(G1271, G1849, G1852); +not g326(G1322, G406); +nand g327(G374, G372, xenc248); +nand g328(G396, xenc230, xenc102); +not g329(G1321, xenc230); +not g330(G1424, G1418); +not g331(G1416, G1410); +not g332(G1440, G1434); +not g333(G1432, G1426); +nand g334(G985, G983, xenc242); +nand g335(G995, G993, G994); +nand g336(G1035, G1033, G1034); +nand g337(G1045, G1043, G1044); +nand g338(G1063, G1061, xenc175); +nand g339(G1073, G1071, G1072); +nand g340(G1105, G1103, xenc23); +nand g341(G1117, xenc50, G1116); +nand g342(G1159, G1157, G1158); +nand g343(G1171, G1169, G1170); +nand g344(G1212, G1202, G1203); +not g345(G1231, G1227); +nand g346(G1232, G1227, G1230); +not g347(G1253, G1249); +nand g348(G1254, G1249, xenc236); +nand g349(G1261, G1259, G1260); +nand g350(G1273, xenc64, xenc109); +not g351(G1287, G1283); +nand g352(G1288, G1283, G1286); +not g353(G1309, G1305); +nand g354(G1310, G1305, G1308); +not g355(G1192, G1184); +nand g356(G397, G1312, G1321); +not g357(G1330, G1322); +assign G1000 = G269; +assign G1010 = G269; +nand g360(G1233, xenc229, G1231); +nand g361(G1255, G1244, G1253); +nand g362(G1289, G1278, xenc18); +nand g363(G1311, G1300, xenc136); +not g364(G1381, G374); +nand g365(G257, G995, G998); +not g366(G999, G995); +nand g367(G260, G985, G988); +not g368(G989, G985); +nand g369(G272, G1035, G1038); +not g370(G1039, G1035); +nand g371(G294, G1045, G1048); +not g372(G1049, G1045); +nand g373(G305, G1073, G1076); +not g374(G1077, G1073); +nand g375(G308, G1063, xenc128); +not g376(G1067, G1063); +nand g377(G333, xenc22, xenc42); +not g378(G1121, xenc22); +nand g379(G358, G1171, G1174); +not g380(G1175, G1171); +not g381(G1220, xenc143); +nand g382(G388, xenc66, xenc123); +not g383(G1277, xenc66); +nand g384(G398, G396, G397); +not g385(G1109, xenc215); +nand g386(G1110, xenc215, G1108); +not g387(G1163, xenc30); +nand g388(G1164, xenc30, G1162); +nand g389(G1234, G1232, G1233); +not g390(G1265, G1261); +nand g391(G1266, G1261, G1264); +nand g392(G1822, G1254, G1255); +nand g393(G1862, G1310, G1311); +nand g394(G1865, xenc115, G1289); +nand g395(G258, xenc155, xenc92); +nand g396(G261, G980, xenc81); +nand g397(G273, G1030, G1039); +not g398(G1018, xenc13); +not g399(G1008, G1000); +nand g400(G295, G1040, xenc228); +nand g401(G306, G1068, G1077); +nand g402(G309, G1058, G1067); +nand g403(G334, xenc195, G1121); +nand g404(G359, G1166, xenc62); +nand g405(G389, G1268, G1277); +not g406(G1385, G1381); +nand g407(G1111, xenc25, G1109); +nand g408(G1165, G1154, xenc11); +nand g409(G1267, G1256, G1265); +not g410(G1886, G398); +nand g411(G259, G257, G258); +nand g412(G262, G260, G261); +nand g413(G274, G272, G273); +nand g414(G296, G294, G295); +nand g415(G307, xenc167, xenc45); +nand g416(G310, xenc202, G309); +nand g417(G335, G333, xenc97); +nand g418(G360, G358, G359); +not g419(G1242, G1234); +nand g420(G390, xenc181, G389); +not g421(G1828, G1822); +not g422(G1868, G1862); +not g423(G1869, G1865); +nand g424(G1373, G1164, xenc207); +nand g425(G1798, G1110, G1111); +nand g426(G1825, xenc37, xenc41); +not g427(G265, G259); +not g428(G314, G307); +not g429(G336, G335); +not g430(G407, xenc87); +nand g431(G1293, G1865, G1868); +nand g432(G1294, G1862, G1869); +not g433(G1892, G1886); +not g434(G1777, xenc213); +not g435(G1889, G390); +assign G410 = G310; +not g437(G1377, xenc139); +not g438(G1804, G1798); +nand g439(G1237, G1825, xenc188); +not g440(G1829, G1825); +nand g441(G1295, G1293, G1294); +assign G1670 = G274; +assign G1678 = G274; +assign G1729 = G310; +assign G1737 = G310; +assign G1761 = G262; +assign G1769 = G262; +assign G340 = xenc47; +assign G343 = G314; +not g450(G1781, xenc156); +nand g451(G1238, G1822, G1829); +nand g452(G1325, xenc57, G1892); +not g453(G1893, xenc57); +assign G1340 = G407; +assign G1352 = G407; +assign G1673 = G265; +assign G1681 = G265; +assign G1801 = G314; +assign G1897 = xenc47; +assign G1905 = xenc47; +nand g461(G391, G1295, G1298); +not g462(G1299, G1295); +not g463(G1676, xenc52); +not g464(G1684, G1678); +nand g465(G1081, G1729, xenc134); +not g466(G1733, G1729); +nand g467(G1093, G1737, xenc252); +not g468(G1741, G1737); +not g469(G1765, xenc26); +not g470(G1773, G1769); +nand g471(G1239, G1237, G1238); +nand g472(G1326, G1886, xenc71); +assign G1894 = G410; +assign G1902 = G410; +nand g475(G392, xenc91, G1299); +not g476(G1360, G1352); +nand g477(G1003, G1673, xenc68); +not g478(G1677, G1673); +nand g479(G1013, G1681, G1684); +not g480(G1685, G1681); +nand g481(G1082, G1726, G1733); +nand g482(G1094, G1734, G1741); +assign G1122 = G340; +assign G1134 = G340; +nand g485(G1187, xenc10, G1804); +not g486(G1805, xenc10); +nand g487(G1327, G1325, G1326); +not g488(G1901, G1897); +not g489(G1348, xenc80); +not g490(G1909, xenc19); +assign G1758 = G343; +assign G1766 = G343; +nand g493(G377, G1239, xenc16); +not g494(G1243, G1239); +nand g495(G393, G391, G392); +nand g496(G1004, xenc52, G1677); +nand g497(G1014, G1678, G1685); +nand g498(G1083, G1081, G1082); +nand g499(G1095, G1093, G1094); +nand g500(G1188, G1798, G1805); +not g501(G1900, xenc98); +nand g502(G1344, xenc98, xenc118); +not g503(G1908, G1902); +nand g504(G1356, G1902, G1909); +not g505(G1142, G1134); +nand g506(G378, G1234, xenc216); +nand g507(G399, G1327, G1330); +not g508(G1331, G1327); +nand g509(G1005, G1003, G1004); +nand g510(G1015, G1013, G1014); +not g511(G1764, G1758); +nand g512(G1126, G1758, G1765); +not g513(G1130, G1122); +not g514(G1772, G1766); +nand g515(G1138, G1766, G1773); +nand g516(G1189, xenc241, xenc112); +nand g517(G1343, G1897, G1900); +nand g518(G1355, xenc19, xenc126); +nand g519(G324, G1095, G1098); +not g520(G1099, G1095); +nand g521(G379, xenc159, G378); +nand g522(G400, G1322, G1331); +nand g523(G449, G393, G918); +not g524(G1087, G1083); +nand g525(G1088, G1083, G1086); +nand g526(G1125, xenc26, G1764); +nand g527(G1137, G1769, xenc170); +nand g528(G1345, xenc247, G1344); +nand g529(G1357, xenc125, G1356); +assign G1397 = G393; +nand g531(G277, xenc35, G1018); +not g532(G1019, xenc35); +nand g533(G280, G1005, xenc6); +not g534(G1009, G1005); +nand g535(G325, G1090, G1099); +nand g536(G364, G1189, xenc171); +not g537(G1193, G1189); +nand g538(G401, G399, xenc86); +nand g539(G1089, xenc121, xenc233); +nand g540(G1127, G1125, xenc39); +nand g541(G1139, xenc245, G1138); +nand g542(G278, xenc13, xenc163); +nand g543(G281, G1000, G1009); +nand g544(G326, G324, xenc174); +nand g545(G365, G1184, G1193); +nand g546(G413, G1357, xenc76); +not g547(G1361, G1357); +not g548(G1401, G1397); +nand g549(G445, G379, G918); +not g550(G1349, G1345); +nand g551(G1350, G1345, G1348); +assign G1389 = G379; +assign G1493 = G449; +assign G1501 = G449; +nand g555(G1689, xenc179, G1089); +nand g556(G279, G277, G278); +nand g557(G282, G280, G281); +nand g558(G346, xenc107, G1142); +not g559(G1143, xenc107); +nand g560(G366, G364, G365); +nand g561(G414, G1352, G1361); +nand g562(G453, xenc135, G918); +not g563(G1131, G1127); +nand g564(G1132, G1127, G1130); +nand g565(G1351, xenc80, G1349); +not g566(G1365, G326); +assign G1405 = xenc135; +not g568(G285, G279); +nand g569(G347, G1134, xenc108); +not g570(G367, xenc218); +nand g571(G415, G413, G414); +not g572(G1393, G1389); +nand g573(G556, G1501, xenc104); +not g574(G1505, G1501); +nand g575(G559, G1493, xenc120); +not g576(G1497, G1493); +not g577(G1693, G1689); +nand g578(G1133, G1122, G1131); +assign G1477 = xenc90; +assign G1485 = xenc90; +nand g581(G1809, G1350, xenc209); +nand g582(G348, G346, G347); +not g583(G1369, G1365); +not g584(G1409, G1405); +nand g585(G557, G1498, G1505); +nand g586(G560, G1490, xenc49); +assign G1362 = xenc150; +not g588(G1378, G415); +assign G1429 = G453; +assign G1437 = G453; +assign G1686 = xenc150; +nand g592(G1774, G1132, G1133); +and g593(G1910, G285, xenc114); +and g594(G1918, G856, G367); +nand g595(G544, xenc32, xenc140); +not g596(G1489, xenc32); +nand g597(G547, G1477, G1480); +not g598(G1481, G1477); +nand g599(G558, G556, G557); +nand g600(G561, G559, xenc1); +not g601(G1813, G1809); +not g602(G1370, G348); +not g603(G1368, G1362); +nand g604(G417, G1362, xenc148); +not g605(G1384, G1378); +nand g606(G424, G1378, G1385); +nand g607(G508, xenc238, G1440); +not g608(G1441, xenc238); +nand g609(G511, G1429, G1432); +not g610(G1433, G1429); +nand g611(G545, G1482, G1489); +nand g612(G548, xenc203, xenc21); +not g613(G564, G558); +not g614(G1692, G1686); +nand g615(G1024, G1686, G1693); +not g616(G1780, G1774); +nand g617(G1148, G1774, G1781); +not g618(G1916, G1910); +not g619(G1924, xenc79); +nand g620(G416, G1365, xenc146); +not g621(G1376, xenc196); +nand g622(G421, xenc196, G1377); +nand g623(G423, G1381, G1384); +nand g624(G509, G1434, G1441); +nand g625(G512, G1426, G1433); +nand g626(G546, G544, xenc183); +nand g627(G549, G547, xenc173); +not g628(G719, G561); +assign G722 = G561; +nand g630(G1023, G1689, G1692); +nand g631(G1147, xenc156, G1780); +nand g632(G418, G416, xenc82); +nand g633(G420, xenc139, xenc74); +nand g634(G425, G423, G424); +nand g635(G510, xenc65, G509); +nand g636(G513, xenc116, G512); +not g637(G552, xenc110); +nand g638(G1025, G1023, G1024); +nand g639(G1149, G1147, G1148); +not g640(G419, G418); +nand g641(G422, xenc199, G421); +nand g642(G441, xenc119, G918); +not g643(G516, G510); +not g644(G725, G549); +assign G728 = G549; +not g646(G1029, G1025); +not g647(G1153, G1149); +nand g648(G433, G419, G918); +nand g649(G437, G422, G918); +not g650(G663, G513); +assign G666 = G513; +and g652(G731, G719, G725); +and g653(G746, G722, G725); +and g654(G756, G719, G728); +and g655(G770, G722, G728); +assign G1461 = G441; +assign G1469 = G441; +assign G1413 = xenc38; +assign G1421 = xenc38; +assign G1445 = G437; +assign G1453 = G437; +nand g662(G532, G1469, G1472); +not g663(G1473, G1469); +nand g664(G535, G1461, G1464); +not g665(G1465, G1461); +nand g666(G495, G1421, xenc210); +not g667(G1425, G1421); +nand g668(G498, G1413, G1416); +not g669(G1417, G1413); +nand g670(G520, G1453, xenc182); +not g671(G1457, G1453); +nand g672(G523, G1445, G1448); +not g673(G1449, G1445); +nand g674(G533, xenc224, G1473); +nand g675(G536, G1458, G1465); +nand g676(G496, G1418, xenc28); +nand g677(G499, G1410, G1417); +nand g678(G521, G1450, G1457); +nand g679(G524, G1442, xenc2); +nand g680(G534, xenc249, G533); +nand g681(G537, xenc4, G536); +nand g682(G497, G495, G496); +nand g683(G500, xenc103, G499); +nand g684(G522, G520, G521); +nand g685(G525, G523, G524); +not g686(G540, G534); +not g687(G503, G497); +not g688(G528, G522); +not g689(G669, G537); +assign G672 = G537; +not g691(G569, xenc105); +and g692(G588, G566, xenc105); +not g693(G618, G525); +and g694(G639, xenc78, G525); +nand g695(G867, G516, G564, G552, G540, G482, G528, G503, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g700(G675, xenc93, G669); +and g701(G688, G666, G669); +and g702(G696, xenc93, G672); +and g703(G710, G666, G672); +and g704(G73, xenc212, G867, xenc131, xenc131); +and g705(G572, G565, G569); +and g706(G573, G566, G569); +and g707(G621, G614, G618); +and g708(G622, xenc78, G618); +nand g709(G776, G588a, G639a, G696, xenc208, G958); +nand g710(G780, G588a, G639a, G675, G756, G958); +nand g711(G784, G588a, G639a, G675, G746, G958); +nand g712(G788, G588a, G639a, G688, xenc208, G958); +nand g713(G812, G588b, G639a, xenc24, G746, G969); +nand g714(G832, G588b, G639b, G696, G770, G969); +nand g715(G836, G588b, G639b, xenc24, G756, G969); +and g716(G1509, G588a, G639a, G696, xenc208, G958); +and g717(G1517, G588a, G639a, G675, G756, G958); +and g718(G1525, G588a, G639a, G675, G746, G958); +and g719(G1533, G588a, G639a, G688, xenc208, G958); +and g720(G1581, G588b, G639a, xenc24, G746, G969); +and g721(G1621, G588b, G639b, G696, G770, G969); +and g722(G1629, G588b, G639b, xenc24, G756, G969); +nand g723(G792, G588a, xenc73, G696, G756, G958); +nand g724(G796, G588b, xenc73, G696, G746, G958); +nand g725(G800, G588b, xenc73, xenc24, xenc208, G958); +nand g726(G804, G588b, xenc73, G675, G770, G958); +nand g727(G808, G588b, xenc73, G688, G756, G969); +nand g728(G816, G573, G639b, G696, G756, G969); +nand g729(G820, G573, G639b, G696, G746, G969); +nand g730(G824, G573, G639b, xenc24, xenc208, G969); +nand g731(G828, G573, G639b, G688, G756, G969); +nand g732(G871, G588b, xenc73, G675, xenc208, G979); +nand g733(G873, G573, G639b, G675, xenc208, G979); +nand g734(G875, G573, xenc73, G696, xenc208, G979); +nand g735(G877, G573, xenc73, G675, G756, G979); +nand g736(G879, G573, xenc73, G675, G746, G979); +nand g737(G881, G573, xenc73, G688, xenc208, G979); +nand g738(G883, G573, xenc158, G675, xenc208, G979); +nand g739(G885, xenc194, xenc73, G675, xenc208, G979); +and g740(G1541, G588a, xenc73, G696, G756, G958); +and g741(G1549, G588b, xenc73, G696, G746, G958); +and g742(G1557, G588b, xenc73, xenc24, xenc208, G958); +and g743(G1565, G588b, xenc73, G675, G770, G958); +and g744(G1573, G588b, xenc73, G688, G756, G969); +and g745(G1589, G573, G639b, G696, G756, G969); +and g746(G1597, G573, G639b, G696, G746, G969); +and g747(G1605, G573, G639b, xenc24, xenc208, G969); +and g748(G1613, G573, G639b, G688, G756, G969); +nand g749(G1, G1509, xenc193); +not g750(G1513, G1509); +nand g751(G4, G1517, xenc31); +not g752(G1521, G1517); +nand g753(G7, xenc164, G1528); +not g754(G1529, xenc164); +nand g755(G10, xenc235, G1536); +not g756(G1537, xenc235); +nand g757(G28, G1581, G1584); +not g758(G1585, G1581); +nand g759(G43, xenc217, G1624); +not g760(G1625, xenc217); +nand g761(G46, xenc83, G1632); +not g762(G1633, xenc83); +and g763(G886, G871, xenc75, G875, G877, G879, G881, xenc133, G885); +nand g764(G2, G1506, xenc160); +nand g765(G5, G1514, xenc129); +nand g766(G8, G1522, G1529); +nand g767(G11, G1530, G1537); +nand g768(G13, G1541, xenc48); +not g769(G1545, G1541); +nand g770(G16, xenc219, xenc7); +not g771(G1553, xenc219); +nand g772(G19, G1557, G1560); +not g773(G1561, G1557); +nand g774(G22, G1565, G1568); +not g775(G1569, G1565); +nand g776(G25, G1573, G1576); +not g777(G1577, G1573); +nand g778(G29, G1578, G1585); +nand g779(G31, G1589, G1592); +not g780(G1593, G1589); +nand g781(G34, G1597, G1600); +not g782(G1601, G1597); +nand g783(G37, G1605, G1608); +not g784(G1609, G1605); +nand g785(G40, G1613, G1616); +not g786(G1617, G1613); +nand g787(G44, xenc122, G1625); +nand g788(G47, G1626, xenc89); +nand g789(G857, G776, xenc72, G784, xenc227, G792, xenc55, G800, G804); +nand g790(G860, G808, G812, xenc46, G820, xenc99, G828, G832, G836); +and g791(G863, G776, xenc72, G784, xenc227, G792, xenc55, G800, G804); +and g792(G865, G808, G812, xenc46, G820, xenc99, G828, G832, G836); +nand g793(xenc166, G1, xenc220); +nand g794(xenc70, G4, G5); +nand g795(G9, G7, xenc153); +nand g796(xenc127, G10, G11); +nand g797(G14, G1538, G1545); +nand g798(G17, xenc200, xenc168); +nand g799(G20, xenc231, xenc186); +nand g800(G23, xenc33, G1569); +nand g801(G26, xenc14, G1577); +nand g802(G30, G28, G29); +nand g803(G32, xenc5, G1593); +nand g804(G35, G1594, G1601); +nand g805(G38, xenc9, xenc243); +nand g806(G41, G1610, G1617); +nand g807(xenc40, G43, xenc88); +nand g808(xenc198, G46, G47); +and g809(G1913, G857, G859); +and g810(G1921, G860, G862); +nand g811(G15, G13, G14); +nand g812(G18, xenc43, G17); +nand g813(xenc232, G19, G20); +nand g814(G24, G22, xenc106); +nand g815(xenc221, G25, G26); +nand g816(xenc8, G31, G32); +nand g817(G36, G34, G35); +nand g818(xenc63, xenc204, xenc132); +nand g819(G42, xenc251, xenc214); +and g820(G887, G863, G865, G886); +nand g821(G462, G863, G865); +and g822(G74, xenc212, G867, G952, xenc211); +nand g823(G1637, G1913, G1916); +not g824(G1917, G1913); +nand g825(G1647, xenc187, xenc225); +not g826(G1925, xenc187); +nor g827(G75, xenc178, G74); +and g828(G1020, G457, G911, xenc58); +and g829(G1144, G469, G911, xenc58); +and g830(G1386, G475, G911, xenc58); +and g831(G1394, G478, G911, xenc58); +and g832(G1402, G459, G911, xenc58); +nand g833(G1638, G1910, G1917); +nand g834(G1648, xenc79, G1925); +and g835(G1806, G472, G911, xenc58); +nand g836(G1639, G1637, xenc137); +nand g837(G1649, G1647, G1648); +nand g838(G287, xenc157, G1029); +nand g839(G350, xenc56, G1153); +nand g840(G427, G1386, xenc192); +nand g841(G429, G1394, G1401); +nand g842(G431, xenc201, G1409); +not g843(G1028, xenc157); +not g844(G1152, xenc56); +not g845(G1392, G1386); +not g846(G1400, G1394); +not g847(G1408, xenc201); +not g848(G1812, G1806); +nand g849(G1216, G1806, xenc142); +nand g850(G286, G1025, G1028); +nand g851(G349, G1149, G1152); +nand g852(G426, G1389, G1392); +nand g853(G428, G1397, xenc149); +nand g854(G430, G1405, G1408); +nand g855(G67, xenc51, G1642); +not g856(G1643, xenc51); +nand g857(G70, G1649, G1652); +not g858(G1653, G1649); +nand g859(G1215, G1809, G1812); +nand g860(G49, G286, G287); +nand g861(G53, G349, G350); +nand g862(G59, G426, G427); +nand g863(G61, G428, G429); +nand g864(G65, G430, G431); +nand g865(G68, G1634, xenc234); +nand g866(G71, G1644, G1653); +nand g867(G1217, xenc84, xenc226); +and g868(xenc34, G49, xenc77); +and g869(xenc180, G52, xenc54); +and g870(G60, xenc240, xenc253); +and g871(G63, G61, G62); +and g872(G66, xenc85, xenc189); +nand g873(xenc151, G67, G68); +nand g874(G72, G70, G71); +nand g875(G375, G1217, G1220); +not g876(G1221, G1217); +nand g877(G376, xenc143, G1221); +nand g878(G55, G375, G376); +and g879(G57, xenc117, G56); +xnor g880(xenc0, G938, keyinput0); +xnor g881(xenc1, G560, keyinput1); +xnor g882(xenc2, G1449, keyinput2); +xor g883(xenc3, G1057, keyinput3); +xor g884(xenc4, G535, keyinput4); +xor g885(xenc5, G1586, keyinput5); +xnor g886(xenc6, G1008, keyinput6); +xnor g887(xenc7, G1552, keyinput7); +xnor g888(G33, xenc8, keyinput8); +xor g889(xenc9, G1602, keyinput9); +xnor g890(xenc10, G1801, keyinput10); +xor g891(xenc11, G1163, keyinput11); +xnor g892(xenc12, G254, keyinput12); +xnor g893(xenc13, G1010, keyinput13); +xor g894(xenc14, G1570, keyinput14); +xor g895(xenc15, G553, keyinput15); +xnor g896(xenc16, G1242, keyinput16); +xor g897(xenc17, G505, keyinput17); +xnor g898(xenc18, G1287, keyinput18); +xnor g899(xenc19, G1905, keyinput19); +xnor g900(xenc20, G1303, keyinput20); +xnor g901(xenc21, G1481, keyinput21); +xnor g902(xenc22, G1117, keyinput22); +xnor g903(xenc23, G1104, keyinput23); +xnor g904(xenc24, G710, keyinput24); +xnor g905(xenc25, G1100, keyinput25); +xnor g906(xenc26, G1761, keyinput26); +xor g907(xenc27, G1710, keyinput27); +xor g908(xenc28, G1425, keyinput28); +xor g909(xenc29, G302, keyinput29); +xor g910(xenc30, G1159, keyinput30); +xor g911(xenc31, G1520, keyinput31); +xnor g912(xenc32, G1485, keyinput32); +xor g913(xenc33, G1562, keyinput33); +xnor g914(G51, xenc34, keyinput34); +xor g915(xenc35, G1015, keyinput35); +xor g916(xenc36, G1814, keyinput36); +xnor g917(xenc37, G1266, keyinput37); +xnor g918(xenc38, G433, keyinput38); +xor g919(xenc39, G1126, keyinput39); +xor g920(G45, xenc40, keyinput40); +xnor g921(xenc41, G1267, keyinput41); +xnor g922(xenc42, G1120, keyinput42); +xor g923(xenc43, G16, keyinput43); +xnor g924(xenc44, G1878, keyinput44); +xnor g925(xenc45, G306, keyinput45); +xor g926(xenc46, G816, keyinput46); +xnor g927(xenc47, G336, keyinput47); +xor g928(xenc48, G1544, keyinput48); +xor g929(xenc49, G1497, keyinput49); +xnor g930(xenc50, G1115, keyinput50); +xnor g931(xenc51, G1639, keyinput51); +xor g932(xenc52, G1670, keyinput52); +xor g933(xenc53, G1742, keyinput53); +xnor g934(xenc54, G53, keyinput54); +xor g935(xenc55, G796, keyinput55); +xor g936(xenc56, G1144, keyinput56); +xor g937(xenc57, G1889, keyinput57); +xor g938(xenc58, G462, keyinput58); +xnor g939(xenc59, G1753, keyinput59); +xnor g940(xenc60, G1179, keyinput60); +xnor g941(xenc61, G171, keyinput61); +xnor g942(xenc62, G1175, keyinput62); +xnor g943(G39, xenc63, keyinput63); +xnor g944(xenc64, G1271, keyinput64); +xnor g945(xenc65, G508, keyinput65); +xnor g946(xenc66, G1273, keyinput66); +xor g947(xenc67, G369, keyinput67); +xor g948(xenc68, G1676, keyinput68); +xnor g949(xenc69, G1304, keyinput69); +xnor g950(G6, xenc70, keyinput70); +xnor g951(xenc71, G1893, keyinput71); +xnor g952(xenc72, G780, keyinput72); +xnor g953(xenc73, G622, keyinput73); +xnor g954(xenc74, G1376, keyinput74); +xnor g955(xenc75, G873, keyinput75); +xnor g956(xenc76, G1360, keyinput76); +xor g957(xenc77, G50, keyinput77); +xnor g958(xenc78, G615, keyinput78); +xnor g959(xenc79, G1918, keyinput79); +xnor g960(xenc80, G1340, keyinput80); +xnor g961(xenc81, G989, keyinput81); +xnor g962(xenc82, G417, keyinput82); +xor g963(xenc83, G1629, keyinput83); +xor g964(xenc84, G1215, keyinput84); +xnor g965(xenc85, G64, keyinput85); +xnor g966(xenc86, G400, keyinput86); +xnor g967(xenc87, G296, keyinput87); +xor g968(xenc88, G44, keyinput88); +xor g969(xenc89, G1633, keyinput89); +xor g970(xenc90, G445, keyinput90); +xnor g971(xenc91, G1290, keyinput91); +xnor g972(xenc92, G999, keyinput92); +xor g973(xenc93, G663, keyinput93); +xnor g974(xenc94, G1830, keyinput94); +xnor g975(xenc95, G947, keyinput95); +xor g976(xenc96, G1757, keyinput96); +xnor g977(xenc97, G334, keyinput97); +xor g978(xenc98, G1894, keyinput98); +xnor g979(xenc99, G824, keyinput99); +xnor g980(xenc100, G153, keyinput100); +xor g981(xenc101, G363, keyinput101); +xor g982(xenc102, G1320, keyinput102); +xnor g983(xenc103, G498, keyinput103); +xor g984(xenc104, G1504, keyinput104); +xor g985(xenc105, G500, keyinput105); +xnor g986(xenc106, G23, keyinput106); +xnor g987(xenc107, G1139, keyinput107); +xnor g988(xenc108, G1143, keyinput108); +xnor g989(xenc109, G1272, keyinput109); +xnor g990(xenc110, G546, keyinput110); +xnor g991(xenc111, G1332, keyinput111); +xor g992(xenc112, G1188, keyinput112); +xnor g993(xenc113, G1282, keyinput113); +xor g994(xenc114, G853, keyinput114); +xnor g995(xenc115, G1288, keyinput115); +xnor g996(xenc116, G511, keyinput116); +xor g997(xenc117, G55, keyinput117); +xor g998(xenc118, G1901, keyinput118); +xnor g999(xenc119, G425, keyinput119); +xor g1000(xenc120, G1496, keyinput120); +xnor g1001(xenc121, G1078, keyinput121); +xnor g1002(xenc122, G1618, keyinput122); +xor g1003(xenc123, G1276, keyinput123); +xor g1004(xenc124, G165, keyinput124); +xnor g1005(xenc125, G1355, keyinput125); +xor g1006(xenc126, G1908, keyinput126); +xnor g1007(G12, xenc127, keyinput127); +xor g1008(xenc128, G1066, keyinput128); +xnor g1009(xenc129, G1521, keyinput129); +xor g1010(xenc130, G922, keyinput130); +xor g1011(xenc131, G932, keyinput131); +xor g1012(xenc132, G38, keyinput132); +xnor g1013(xenc133, G883, keyinput133); +xnor g1014(xenc134, G1732, keyinput134); +xnor g1015(xenc135, G401, keyinput135); +xor g1016(xenc136, G1309, keyinput136); +xnor g1017(xenc137, G1638, keyinput137); +xnor g1018(xenc138, G1709, keyinput138); +xor g1019(xenc139, G1373, keyinput139); +xor g1020(xenc140, G1488, keyinput140); +xnor g1021(xenc141, G955, keyinput141); +xor g1022(xenc142, G1813, keyinput142); +xnor g1023(xenc143, G1212, keyinput143); +xnor g1024(xenc144, G1697, keyinput144); +xnor g1025(xenc145, G206, keyinput145); +xnor g1026(xenc146, G1368, keyinput146); +xor g1027(xenc147, G1654, keyinput147); +xor g1028(xenc148, G1369, keyinput148); +xor g1029(xenc149, G1400, keyinput149); +xor g1030(xenc150, G282, keyinput150); +xnor g1031(G69, xenc151, keyinput151); +xor g1032(xenc152, G1705, keyinput152); +xor g1033(xenc153, G8, keyinput153); +xor g1034(xenc154, G1885, keyinput154); +xnor g1035(xenc155, G990, keyinput155); +xor g1036(xenc156, G1777, keyinput156); +xnor g1037(xenc157, G1020, keyinput157); +xor g1038(xenc158, G621, keyinput158); +xnor g1039(xenc159, G377, keyinput159); +xnor g1040(xenc160, G1513, keyinput160); +xnor g1041(xenc161, G404, keyinput161); +xnor g1042(xenc162, G1338, keyinput162); +xor g1043(xenc163, G1019, keyinput163); +xnor g1044(xenc164, G1525, keyinput164); +xnor g1045(xenc165, G1837, keyinput165); +xnor g1046(G3, xenc166, keyinput166); +xor g1047(xenc167, G305, keyinput167); +xnor g1048(xenc168, G1553, keyinput168); +xnor g1049(xenc169, G149, keyinput169); +xnor g1050(xenc170, G1772, keyinput170); +xor g1051(xenc171, G1192, keyinput171); +xor g1052(xenc172, G954, keyinput172); +xor g1053(xenc173, G548, keyinput173); +xor g1054(xenc174, G325, keyinput174); +xor g1055(xenc175, G1062, keyinput175); +xor g1056(xenc176, G248, keyinput176); +xnor g1057(xenc177, G1749, keyinput177); +xnor g1058(xenc178, G73, keyinput178); +xnor g1059(xenc179, G1088, keyinput179); +xor g1060(G54, xenc180, keyinput180); +xor g1061(xenc181, G388, keyinput181); +xor g1062(xenc182, G1456, keyinput182); +xor g1063(xenc183, G545, keyinput183); +xnor g1064(xenc184, G893, keyinput184); +xnor g1065(xenc185, G1210, keyinput185); +xor g1066(xenc186, G1561, keyinput186); +xnor g1067(xenc187, G1921, keyinput187); +xor g1068(xenc188, G1828, keyinput188); +xnor g1069(xenc189, G65, keyinput189); +xnor g1070(xenc190, G1876, keyinput190); +xor g1071(xenc191, G1701, keyinput191); +xnor g1072(xenc192, G1393, keyinput192); +xnor g1073(xenc193, G1512, keyinput193); +xor g1074(xenc194, G572, keyinput194); +xnor g1075(xenc195, G1112, keyinput195); +xnor g1076(xenc196, G1370, keyinput196); +xor g1077(xenc197, G318, keyinput197); +xor g1078(G48, xenc198, keyinput198); +xor g1079(xenc199, G420, keyinput199); +xor g1080(xenc200, G1546, keyinput200); +xor g1081(xenc201, G1402, keyinput201); +xnor g1082(xenc202, G308, keyinput202); +xnor g1083(xenc203, G1474, keyinput203); +xnor g1084(xenc204, G37, keyinput204); +xnor g1085(xenc205, G1660, keyinput205); +xnor g1086(xenc206, G1183, keyinput206); +xor g1087(xenc207, G1165, keyinput207); +xnor g1088(xenc208, G731, keyinput208); +xnor g1089(xenc209, G1351, keyinput209); +xnor g1090(xenc210, G1424, keyinput210); +xor g1091(xenc211, G887, keyinput211); +xnor g1092(xenc212, G949, keyinput212); +xor g1093(xenc213, G360, keyinput213); +xnor g1094(xenc214, G41, keyinput214); +xnor g1095(xenc215, G1105, keyinput215); +xor g1096(xenc216, G1243, keyinput216); +xnor g1097(xenc217, G1621, keyinput217); +xnor g1098(xenc218, G366, keyinput218); +xnor g1099(xenc219, G1549, keyinput219); +xnor g1100(xenc220, G2, keyinput220); +xor g1101(G27, xenc221, keyinput221); +xnor g1102(xenc222, G268, keyinput222); +xor g1103(xenc223, G1785, keyinput223); +xor g1104(xenc224, G1466, keyinput224); +xor g1105(xenc225, G1924, keyinput225); +xor g1106(xenc226, G1216, keyinput226); +xnor g1107(xenc227, G788, keyinput227); +xnor g1108(xenc228, G1049, keyinput228); +xor g1109(xenc229, G1222, keyinput229); +xor g1110(xenc230, G1317, keyinput230); +xor g1111(xenc231, G1554, keyinput231); +xnor g1112(G21, xenc232, keyinput232); +xor g1113(xenc233, G1087, keyinput233); +xnor g1114(xenc234, G1643, keyinput234); +xor g1115(xenc235, G1533, keyinput235); +xor g1116(xenc236, G1252, keyinput236); +xnor g1117(xenc237, G1788, keyinput237); +xnor g1118(xenc238, G1437, keyinput238); +xor g1119(xenc239, G1854, keyinput239); +xnor g1120(xenc240, G58, keyinput240); +xnor g1121(xenc241, G1187, keyinput241); +xor g1122(xenc242, G984, keyinput242); +xnor g1123(xenc243, G1609, keyinput243); +xor g1124(xenc244, G198, keyinput244); +xor g1125(xenc245, G1137, keyinput245); +xor g1126(xenc246, G160, keyinput246); +xor g1127(xenc247, G1343, keyinput247); +xor g1128(xenc248, G373, keyinput248); +xor g1129(xenc249, G532, keyinput249); +xor g1130(xenc250, G1056, keyinput250); +xnor g1131(xenc251, G40, keyinput251); +xnor g1132(xenc252, G1740, keyinput252); +xor g1133(xenc253, G59, keyinput253); +xor g1134(xenc254, G943, keyinput254); +xnor g1135(xenc255, G1661, keyinput255); +endmodule diff --git a/benchmarks/c1908/c1908_xor_64bit.v b/benchmarks/c1908/c1908_xor_64bit.v new file mode 100644 index 0000000..09d4fea --- /dev/null +++ b/benchmarks/c1908/c1908_xor_64bit.v @@ -0,0 +1,1069 @@ +// Verilog File +module c1908_xor_64bit.bench (G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63,G3,G6, +G9,G12,G30,G45,G48,G15,G18,G21,G24,G27, +G33,G36,G39,G42,G75,G51,G54,G60,G63,G66, +G69,G72,G57); + +input G101,G104,G107,G110,G113,G116,G119,G122,G125, +G128,G131,G134,G137,G140,G143,G146,G210,G214,G217, +G221,G224,G227,G234,G237,G469,G472,G475,G478,G898, +G900,G902,G952,G953,keyinput0,keyinput1,keyinput2,keyinput3,keyinput4,keyinput5, +keyinput6,keyinput7,keyinput8,keyinput9,keyinput10,keyinput11,keyinput12,keyinput13,keyinput14,keyinput15, +keyinput16,keyinput17,keyinput18,keyinput19,keyinput20,keyinput21,keyinput22,keyinput23,keyinput24,keyinput25, +keyinput26,keyinput27,keyinput28,keyinput29,keyinput30,keyinput31,keyinput32,keyinput33,keyinput34,keyinput35, +keyinput36,keyinput37,keyinput38,keyinput39,keyinput40,keyinput41,keyinput42,keyinput43,keyinput44,keyinput45, +keyinput46,keyinput47,keyinput48,keyinput49,keyinput50,keyinput51,keyinput52,keyinput53,keyinput54,keyinput55, +keyinput56,keyinput57,keyinput58,keyinput59,keyinput60,keyinput61,keyinput62,keyinput63; + + +output G3, G6, G9, G12, G30, G45, G48, G15, G18, +G21, G24, G27, G33, G36, G39, G42, G75, G51, G54, +G60, G63, G66, G69, G72, G57; + +wire G149, G153, G156, G160, G165, G168, G171, G175, G179, +G184, G188, G191, G194, G198, G202, G206, G231, G233, G241, +G244, G245, G248, G517, G529, G541, G553, G859, G862, G907, +G909, G911, G918, G919, G922, G926, G930, G932, G934, G938, +G943, G947, G949, G1506, G1514, G1522, G1530, G1538, G1546, G1554, +G1562, G1570, G1578, G1586, G1594, G1602, G1610, G1618, G1626, G1512, +G1520, G1528, xenc25, G1536, G1544, G1552, G1560, G1568, xenc49, G1576, +G1584, G1592, G1600, G1608, G1616, G1624, xenc58, G1632, G50, G52, +G56, G58, G62, G64, G251, G254, G288, G291, G299, G302, +G318, G321, G327, G330, G352, G355, G369, G382, G385, G853, +G856, G893, xenc39, G954, G955, G1050, G1053, G1176, G1179, G1197, +G1207, G1222, G1244, G1278, G1290, G1300, G1312, G1332, G1335, G1442, +G1450, G1458, G1466, G1474, G1482, G1490, G1498, G1634, G1644, G1657, +G1665, G1697, G1705, G1713, G1721, G1745, G1753, G1785, G1793, G1814, +G1817, G1830, G1833, G1841, G1849, G1854, G1857, G1870, G1873, G1878, +G1881, G1642, G1652, G1056, G1057, G1182, G1183, G1211, G1298, G1320, +G1338, G1339, G457, G459, G482, G487, G492, G505, G1456, G1448, +G1472, G1464, G1488, G1480, G1504, G1496, G956, G967, G978, G979, +G980, G1661, G990, G1669, G1030, G1701, G1040, G1709, G1058, G1717, +G1068, G1725, xenc62, G1078, G1090, G1100, G1749, G1112, G1757, G1154, +G1789, G1166, G1797, xenc28, G1194, G1201, G1204, G1820, G1821, xenc36, +G1230, G1836, G1837, xenc53, G1252, G1256, G1845, G1268, G1853, G1860, +G1861, G1286, G1876, G1877, G1308, G1884, G1885, xenc60, G1654, G1662, +G1694, G1702, xenc43, G1710, G1718, G1726, G1734, G1742, G1750, G1782, +G1790, G1838, G1846, G297, G298, G361, G362, G404, G405, G1225, +G1226, G1247, G1248, G1281, G1282, xenc20, G1303, G1304, xenc17, G1315, +G1316, G998, G988, G268, G1038, G1048, G1076, G1066, G1098, xenc56, +G1120, G1174, G363, G1210, G373, G1276, G406, G565, G566, G614, +G615, G958, G969, G1660, G984, G1668, G994, G1700, G1034, G1708, +G1044, xenc41, G1716, G1062, G1724, G1072, G1732, G1086, G1740, G1748, +G1104, G1108, G1756, G1116, G1788, G1158, G1162, G1796, G1170, G1200, +G1203, G1227, G1249, G1844, G1260, G1264, G1852, G1272, G1283, G1305, +G1317, xenc33, G1410, G1418, G1426, G1434, G269, G372, xenc27, G983, +G993, G1033, G1043, G1061, G1071, G1103, G1115, G1157, G1169, G1184, +G1202, G1259, G1271, G1322, G374, G396, G1321, G1424, G1416, G1440, +G1432, G985, G995, G1035, G1045, G1063, xenc46, G1073, G1105, G1117, +G1159, G1171, G1212, G1231, G1232, G1253, G1254, G1261, G1273, G1287, +G1288, G1309, G1310, G1192, G397, xenc42, G1330, G1000, G1010, xenc6, +G1233, G1255, G1289, G1311, G1381, G257, G999, G260, G989, xenc50, +G272, G1039, G294, G1049, G305, G1077, G308, G1067, xenc24, G333, +G1121, G358, G1175, G1220, G388, G1277, G398, G1109, G1110, G1163, +G1164, G1234, G1265, G1266, xenc18, G1822, G1862, G1865, G258, G261, +G273, G1018, G1008, G295, xenc37, G306, G309, G334, G359, G389, +G1385, G1111, G1165, G1267, xenc45, G1886, G259, G262, G274, G296, +G307, xenc52, G310, xenc26, G335, G360, G1242, G390, G1828, G1868, +G1869, G1373, G1798, G1825, G265, G314, G336, xenc23, G407, G1293, +G1294, G1892, G1777, G1889, G410, G1377, G1804, G1237, G1829, xenc8, +G1295, G1670, G1678, G1729, G1737, G1761, G1769, xenc32, G340, G343, +G1781, G1238, G1325, G1893, G1340, G1352, xenc29, G1673, G1681, G1801, +G1897, G1905, G391, G1299, G1676, G1684, G1081, G1733, G1093, G1741, +xenc9, G1765, G1773, G1239, G1326, G1894, G1902, G392, G1360, G1003, +G1677, G1013, G1685, xenc11, G1082, G1094, G1122, G1134, G1187, G1805, +G1327, G1901, xenc14, G1348, G1909, G1758, G1766, G377, G1243, G393, +G1004, G1014, xenc21, G1083, xenc44, G1095, G1188, G1900, G1344, G1908, +G1356, G1142, G378, G399, G1331, G1005, G1015, G1764, G1126, G1130, +G1772, G1138, xenc35, G1189, G1343, G1355, G324, G1099, G379, G400, +G449, G1087, G1088, G1125, G1137, xenc38, G1345, G1357, G1397, G277, +G1019, G280, G1009, G325, G364, G1193, G401, G1089, G1127, G1139, +G278, G281, G326, G365, G413, G1361, G1401, G445, G1349, G1350, +G1389, G1493, G1501, G1689, G279, G282, G346, G1143, G366, G414, +G453, G1131, G1132, xenc59, G1351, xenc61, G1365, G1405, G285, G347, +G367, G415, G1393, xenc19, G556, G1505, G559, G1497, G1693, G1133, +G1477, G1485, G1809, G348, G1369, G1409, G557, G560, G1362, G1378, +G1429, G1437, G1686, G1774, G1910, G1918, G544, G1489, G547, G1481, +xenc47, G558, G561, G1813, G1370, G1368, G417, G1384, G424, G508, +G1441, G511, G1433, G545, G548, G564, G1692, G1024, G1780, G1148, +G1916, G1924, G416, G1376, G421, G423, G509, G512, G546, G549, +G719, G722, G1023, G1147, G418, G420, G425, G510, xenc55, G513, +G552, G1025, G1149, G419, G422, G441, xenc5, G516, G725, G728, +G1029, G1153, G433, G437, G663, G666, G731, G746, G756, G770, +G1461, G1469, G1413, G1421, G1445, G1453, xenc4, G532, G1473, G535, +G1465, G495, G1425, G498, G1417, G520, G1457, G523, G1449, G533, +G536, xenc10, G496, G499, G521, xenc54, G524, G534, G537, G497, +G500, G522, G525, G540, xenc22, G503, G528, G669, G672, G569, +G588, G618, G639, G867, G588a, G588b, G639a, G639b, xenc63, G675, +G688, G696, G710, xenc7, G73, G572, G573, G621, G622, G776, +xenc2, G780, G784, G788, G812, G832, G836, G1509, G1517, G1525, +G1533, G1581, G1621, G1629, G792, G796, G800, G804, G808, G816, +G820, G824, G828, G871, G873, G875, G877, G879, G881, G883, +G885, G1541, G1549, G1557, G1565, G1573, G1589, G1597, G1605, G1613, +G1, G1513, G4, G1521, G7, G1529, G10, G1537, xenc48, G28, +G1585, G43, G1625, G46, G1633, G886, G2, G5, G8, G11, +G13, G1545, G16, G1553, G19, G1561, G22, G1569, G25, G1577, +G29, G31, G1593, G34, G1601, G37, G1609, G40, G1617, G44, +G47, xenc51, xenc3, G857, xenc57, G860, G863, G865, G14, xenc1, +G17, G20, G23, G26, xenc16, G32, G35, G38, G41, xenc13, +G1913, G1921, xenc0, xenc15, xenc34, xenc40, xenc12, G887, G462, G74, +G1637, G1917, G1647, G1925, G1020, G1144, G1386, G1394, G1402, G1638, +G1648, G1806, xenc31, G1639, G1649, G287, G350, G427, G429, G431, +G1028, G1152, G1392, G1400, G1408, G1812, G1216, G286, G349, G426, +G428, G430, G67, G1643, G70, G1653, G1215, G49, xenc30, G53, +G59, G61, G65, G68, G71, G1217, G375, G1221, G376, G55; + +not g0(G149, G101); +not g1(G153, G104); +not g2(G156, G107); +not g3(G160, G110); +not g4(G165, G113); +not g5(G168, G116); +not g6(G171, G119); +not g7(G175, G122); +not g8(G179, G125); +not g9(G184, G128); +not g10(G188, G131); +not g11(G191, G134); +not g12(G194, G137); +not g13(G198, G140); +not g14(G202, G143); +not g15(G206, G146); +nand g16(G231, G224, G898); +nand g17(G233, G227, G900); +not g18(G241, G237); +not g19(G244, G237); +assign G245 = G234; +assign G248 = G234; +not g22(G517, G469); +not g23(G529, G472); +not g24(G541, G475); +not g25(G553, G478); +not g26(G859, G953); +not g27(G862, G953); +not g28(G907, G898); +not g29(G909, G900); +assign G911 = G902; +not g31(G918, G902); +assign G919 = G902; +not g33(G922, G902); +assign G926 = G952; +not g35(G930, G952); +not g36(G932, G952); +assign G934 = G953; +not g38(G938, G953); +assign G943 = G953; +assign G947 = G953; +not g41(G949, G953); +assign G1506 = G101; +assign G1514 = G104; +assign G1522 = G107; +assign G1530 = G110; +assign G1538 = G113; +assign G1546 = G116; +assign G1554 = G119; +assign G1562 = G122; +assign G1570 = G125; +assign G1578 = G128; +assign G1586 = G131; +assign G1594 = G134; +assign G1602 = G137; +assign G1610 = G140; +assign G1618 = G143; +assign G1626 = G146; +not g58(G1512, G1506); +not g59(G1520, G1514); +not g60(G1528, G1522); +not g61(G1536, xenc25); +not g62(G1544, G1538); +not g63(G1552, G1546); +not g64(G1560, G1554); +not g65(G1568, G1562); +not g66(G1576, xenc49); +not g67(G1584, G1578); +not g68(G1592, G1586); +not g69(G1600, G1594); +not g70(G1608, G1602); +not g71(G1616, G1610); +not g72(G1624, G1618); +not g73(G1632, xenc58); +nand g74(G50, G930, G947); +nand g75(G52, G930, G947); +nand g76(G56, G930, G947); +nand g77(G58, G930, G947); +nand g78(G62, G930, G947); +nand g79(G64, G930, G947); +assign G251 = G149; +assign G254 = G153; +assign G288 = G165; +assign G291 = G168; +assign G299 = G184; +assign G302 = G202; +and g86(G318, G224, G938); +assign G321 = G179; +assign G327 = G188; +assign G330 = G191; +and g90(G352, G227, G938); +assign G355 = G198; +and g92(G369, G210, G241, G938); +assign G382 = G206; +assign G385 = G198; +nand g95(G853, G943, G907); +nand g96(G856, G943, G909); +nand g97(G893, G248, G237); +nand g98(G954, G248, xenc39); +nand g99(G955, G244, xenc39); +assign G1050 = G160; +assign G1053 = G175; +assign G1176 = G179; +assign G1179 = G198; +assign G1197 = G149; +assign G1207 = G149; +assign G1222 = G153; +assign G1244 = G188; +assign G1278 = G156; +and g109(G1290, G217, G245, G938); +assign G1300 = G191; +assign G1312 = G160; +assign G1332 = G194; +and g113(G1335, G221, G245, G938); +assign G1442 = G517; +assign G1450 = G517; +assign G1458 = G529; +assign G1466 = G529; +assign G1474 = G541; +assign G1482 = G541; +assign G1490 = G553; +assign G1498 = G553; +and g122(G1634, G231, G934); +and g123(G1644, G233, G934); +assign G1657 = G156; +assign G1665 = G156; +assign G1697 = G171; +assign G1705 = G171; +assign G1713 = G206; +assign G1721 = G206; +assign G1745 = G194; +assign G1753 = G194; +assign G1785 = G160; +assign G1793 = G160; +assign G1814 = G165; +assign G1817 = G175; +and g136(G1830, G214, G241, G938); +assign G1833 = G202; +assign G1841 = G179; +assign G1849 = G179; +assign G1854 = G168; +assign G1857 = G175; +assign G1870 = G184; +assign G1873 = G202; +assign G1878 = G171; +assign G1881 = G184; +not g146(G1642, G1634); +not g147(G1652, G1644); +not g148(G1056, G1050); +not g149(G1057, G1053); +not g150(G1182, G1176); +not g151(G1183, G1179); +not g152(G1211, G1207); +not g153(G1298, G1290); +not g154(G1320, G1312); +not g155(G1338, G1332); +not g156(G1339, G1335); +and g157(G457, G210, G955); +and g158(G459, G217, G954); +nand g159(G482, G214, G955); +nand g160(G487, G221, G954); +nand g161(G492, G210, G955); +nand g162(G505, G217, G954); +not g163(G1456, G1450); +not g164(G1448, G1442); +not g165(G1472, G1466); +not g166(G1464, G1458); +not g167(G1488, G1482); +not g168(G1480, G1474); +not g169(G1504, G1498); +not g170(G1496, G1490); +nand g171(G956, G907, G919, G943, G893); +nand g172(G967, G909, G919, G943, G893); +nand g173(G978, G926, G949, G893); +and g174(G979, G926, G949, G893); +assign G980 = G251; +not g176(G1661, G1657); +assign G990 = G251; +not g178(G1669, G1665); +assign G1030 = G288; +not g180(G1701, G1697); +assign G1040 = G288; +not g182(G1709, G1705); +assign G1058 = G299; +not g184(G1717, G1713); +assign G1068 = G299; +not g186(G1725, G1721); +assign G1078 = xenc62; +assign G1090 = xenc62; +assign G1100 = G327; +not g190(G1749, G1745); +assign G1112 = G327; +not g192(G1757, G1753); +assign G1154 = G352; +not g194(G1789, G1785); +assign G1166 = G352; +not g196(G1797, G1793); +assign G1194 = xenc28; +not g198(G1201, G1197); +assign G1204 = xenc28; +not g200(G1820, G1814); +not g201(G1821, G1817); +not g202(G1230, xenc36); +not g203(G1836, G1830); +not g204(G1837, G1833); +not g205(G1252, xenc53); +assign G1256 = G382; +not g207(G1845, G1841); +assign G1268 = G382; +not g209(G1853, G1849); +not g210(G1860, G1854); +not g211(G1861, G1857); +not g212(G1286, G1278); +not g213(G1876, G1870); +not g214(G1877, G1873); +not g215(G1308, G1300); +not g216(G1884, G1878); +not g217(G1885, G1881); +assign G1654 = xenc60; +assign G1662 = xenc60; +assign G1694 = G291; +assign G1702 = G291; +assign G1710 = xenc43; +assign G1718 = xenc43; +assign G1726 = G321; +assign G1734 = G321; +assign G1742 = G330; +assign G1750 = G330; +assign G1782 = G355; +assign G1790 = G355; +assign G1838 = G385; +assign G1846 = G385; +nand g232(G297, G1053, G1056); +nand g233(G298, G1050, G1057); +nand g234(G361, G1179, G1182); +nand g235(G362, G1176, G1183); +nand g236(G404, G1335, G1338); +nand g237(G405, G1332, G1339); +nand g238(G1225, G1817, G1820); +nand g239(G1226, G1814, G1821); +nand g240(G1247, G1833, G1836); +nand g241(G1248, G1830, G1837); +nand g242(G1281, G1857, G1860); +nand g243(G1282, G1854, G1861); +nand g244(G1303, G1873, xenc20); +nand g245(G1304, G1870, G1877); +nand g246(G1315, G1881, xenc17); +nand g247(G1316, G1878, G1885); +not g248(G998, G990); +not g249(G988, G980); +nand g250(G268, G297, G298); +not g251(G1038, G1030); +not g252(G1048, G1040); +not g253(G1076, G1068); +not g254(G1066, G1058); +not g255(G1098, G1090); +not g256(G1120, xenc56); +not g257(G1174, G1166); +nand g258(G363, G361, G362); +not g259(G1210, G1204); +nand g260(G373, G1204, G1211); +not g261(G1276, G1268); +nand g262(G406, G404, G405); +not g263(G565, G482); +assign G566 = G482; +not g265(G614, G487); +assign G615 = G487; +nand g267(G958, G956, G978); +nand g268(G969, G967, G978); +not g269(G1660, G1654); +nand g270(G984, G1654, G1661); +not g271(G1668, G1662); +nand g272(G994, G1662, G1669); +not g273(G1700, G1694); +nand g274(G1034, G1694, G1701); +not g275(G1708, G1702); +nand g276(G1044, G1702, G1709); +not g277(G1716, xenc41); +nand g278(G1062, xenc41, G1717); +not g279(G1724, G1718); +nand g280(G1072, G1718, G1725); +not g281(G1732, G1726); +not g282(G1086, G1078); +not g283(G1740, G1734); +not g284(G1748, G1742); +nand g285(G1104, G1742, G1749); +not g286(G1108, G1100); +not g287(G1756, G1750); +nand g288(G1116, G1750, G1757); +not g289(G1788, G1782); +nand g290(G1158, G1782, G1789); +not g291(G1162, G1154); +not g292(G1796, G1790); +nand g293(G1170, G1790, G1797); +not g294(G1200, G1194); +nand g295(G1203, G1194, G1201); +nand g296(G1227, G1225, G1226); +nand g297(G1249, G1247, G1248); +not g298(G1844, G1838); +nand g299(G1260, G1838, G1845); +not g300(G1264, G1256); +not g301(G1852, G1846); +nand g302(G1272, G1846, G1853); +nand g303(G1283, G1281, G1282); +nand g304(G1305, G1303, G1304); +nand g305(G1317, G1315, G1316); +assign G1410 = xenc33; +assign G1418 = xenc33; +assign G1426 = G505; +assign G1434 = G505; +not g310(G269, G268); +nand g311(G372, G1207, G1210); +nand g312(G983, G1657, xenc27); +nand g313(G993, G1665, G1668); +nand g314(G1033, G1697, G1700); +nand g315(G1043, G1705, G1708); +nand g316(G1061, G1713, G1716); +nand g317(G1071, G1721, G1724); +nand g318(G1103, G1745, G1748); +nand g319(G1115, G1753, G1756); +nand g320(G1157, G1785, G1788); +nand g321(G1169, G1793, G1796); +not g322(G1184, G363); +nand g323(G1202, G1197, G1200); +nand g324(G1259, G1841, G1844); +nand g325(G1271, G1849, G1852); +not g326(G1322, G406); +nand g327(G374, G372, G373); +nand g328(G396, G1317, G1320); +not g329(G1321, G1317); +not g330(G1424, G1418); +not g331(G1416, G1410); +not g332(G1440, G1434); +not g333(G1432, G1426); +nand g334(G985, G983, G984); +nand g335(G995, G993, G994); +nand g336(G1035, G1033, G1034); +nand g337(G1045, G1043, G1044); +nand g338(G1063, G1061, G1062); +nand g339(G1073, xenc46, G1072); +nand g340(G1105, G1103, G1104); +nand g341(G1117, G1115, G1116); +nand g342(G1159, G1157, G1158); +nand g343(G1171, G1169, G1170); +nand g344(G1212, G1202, G1203); +not g345(G1231, G1227); +nand g346(G1232, G1227, G1230); +not g347(G1253, G1249); +nand g348(G1254, G1249, G1252); +nand g349(G1261, G1259, G1260); +nand g350(G1273, G1271, G1272); +not g351(G1287, G1283); +nand g352(G1288, G1283, G1286); +not g353(G1309, G1305); +nand g354(G1310, G1305, G1308); +not g355(G1192, G1184); +nand g356(G397, G1312, G1321); +not g357(G1330, xenc42); +assign G1000 = G269; +assign G1010 = G269; +nand g360(G1233, xenc36, xenc6); +nand g361(G1255, xenc53, G1253); +nand g362(G1289, G1278, G1287); +nand g363(G1311, G1300, G1309); +not g364(G1381, G374); +nand g365(G257, G995, G998); +not g366(G999, G995); +nand g367(G260, G985, G988); +not g368(G989, G985); +nand g369(G272, G1035, xenc50); +not g370(G1039, G1035); +nand g371(G294, G1045, G1048); +not g372(G1049, G1045); +nand g373(G305, G1073, G1076); +not g374(G1077, G1073); +nand g375(G308, G1063, G1066); +not g376(G1067, G1063); +nand g377(G333, G1117, xenc24); +not g378(G1121, G1117); +nand g379(G358, G1171, G1174); +not g380(G1175, G1171); +not g381(G1220, G1212); +nand g382(G388, G1273, G1276); +not g383(G1277, G1273); +nand g384(G398, G396, G397); +not g385(G1109, G1105); +nand g386(G1110, G1105, G1108); +not g387(G1163, G1159); +nand g388(G1164, G1159, G1162); +nand g389(G1234, G1232, G1233); +not g390(G1265, G1261); +nand g391(G1266, G1261, G1264); +nand g392(G1822, G1254, xenc18); +nand g393(G1862, G1310, G1311); +nand g394(G1865, G1288, G1289); +nand g395(G258, G990, G999); +nand g396(G261, G980, G989); +nand g397(G273, G1030, G1039); +not g398(G1018, G1010); +not g399(G1008, G1000); +nand g400(G295, G1040, G1049); +nand g401(G306, G1068, xenc37); +nand g402(G309, G1058, G1067); +nand g403(G334, xenc56, G1121); +nand g404(G359, G1166, G1175); +nand g405(G389, G1268, G1277); +not g406(G1385, G1381); +nand g407(G1111, G1100, G1109); +nand g408(G1165, G1154, G1163); +nand g409(G1267, G1256, G1265); +not g410(G1886, xenc45); +nand g411(G259, G257, G258); +nand g412(G262, G260, G261); +nand g413(G274, G272, G273); +nand g414(G296, G294, G295); +nand g415(G307, G305, G306); +nand g416(G310, xenc52, G309); +nand g417(G335, G333, xenc26); +nand g418(G360, G358, G359); +not g419(G1242, G1234); +nand g420(G390, G388, G389); +not g421(G1828, G1822); +not g422(G1868, G1862); +not g423(G1869, G1865); +nand g424(G1373, G1164, G1165); +nand g425(G1798, G1110, G1111); +nand g426(G1825, G1266, G1267); +not g427(G265, G259); +not g428(G314, G307); +not g429(G336, G335); +not g430(G407, xenc23); +nand g431(G1293, G1865, G1868); +nand g432(G1294, G1862, G1869); +not g433(G1892, G1886); +not g434(G1777, G360); +not g435(G1889, G390); +assign G410 = G310; +not g437(G1377, G1373); +not g438(G1804, G1798); +nand g439(G1237, G1825, G1828); +not g440(G1829, G1825); +nand g441(G1295, xenc8, G1294); +assign G1670 = G274; +assign G1678 = G274; +assign G1729 = G310; +assign G1737 = G310; +assign G1761 = G262; +assign G1769 = G262; +assign G340 = xenc32; +assign G343 = G314; +not g450(G1781, G1777); +nand g451(G1238, G1822, G1829); +nand g452(G1325, G1889, G1892); +not g453(G1893, G1889); +assign G1340 = G407; +assign G1352 = G407; +assign G1673 = xenc29; +assign G1681 = xenc29; +assign G1801 = G314; +assign G1897 = xenc32; +assign G1905 = xenc32; +nand g461(G391, G1295, G1298); +not g462(G1299, G1295); +not g463(G1676, G1670); +not g464(G1684, G1678); +nand g465(G1081, G1729, G1732); +not g466(G1733, G1729); +nand g467(G1093, G1737, G1740); +not g468(G1741, G1737); +not g469(G1765, xenc9); +not g470(G1773, G1769); +nand g471(G1239, G1237, G1238); +nand g472(G1326, G1886, G1893); +assign G1894 = G410; +assign G1902 = G410; +nand g475(G392, G1290, G1299); +not g476(G1360, G1352); +nand g477(G1003, G1673, G1676); +not g478(G1677, G1673); +nand g479(G1013, G1681, G1684); +not g480(G1685, G1681); +nand g481(G1082, G1726, xenc11); +nand g482(G1094, G1734, G1741); +assign G1122 = G340; +assign G1134 = G340; +nand g485(G1187, G1801, G1804); +not g486(G1805, G1801); +nand g487(G1327, G1325, G1326); +not g488(G1901, G1897); +not g489(G1348, xenc14); +not g490(G1909, G1905); +assign G1758 = G343; +assign G1766 = G343; +nand g493(G377, G1239, G1242); +not g494(G1243, G1239); +nand g495(G393, G391, G392); +nand g496(G1004, G1670, G1677); +nand g497(G1014, G1678, G1685); +nand g498(G1083, G1081, xenc21); +nand g499(G1095, xenc44, G1094); +nand g500(G1188, G1798, G1805); +not g501(G1900, G1894); +nand g502(G1344, G1894, G1901); +not g503(G1908, G1902); +nand g504(G1356, G1902, G1909); +not g505(G1142, G1134); +nand g506(G378, G1234, G1243); +nand g507(G399, G1327, G1330); +not g508(G1331, G1327); +nand g509(G1005, G1003, G1004); +nand g510(G1015, G1013, G1014); +not g511(G1764, G1758); +nand g512(G1126, G1758, G1765); +not g513(G1130, G1122); +not g514(G1772, G1766); +nand g515(G1138, G1766, G1773); +nand g516(G1189, xenc35, G1188); +nand g517(G1343, G1897, G1900); +nand g518(G1355, G1905, G1908); +nand g519(G324, G1095, G1098); +not g520(G1099, G1095); +nand g521(G379, G377, G378); +nand g522(G400, xenc42, G1331); +nand g523(G449, G393, G918); +not g524(G1087, G1083); +nand g525(G1088, G1083, G1086); +nand g526(G1125, xenc9, G1764); +nand g527(G1137, G1769, G1772); +nand g528(G1345, G1343, xenc38); +nand g529(G1357, G1355, G1356); +assign G1397 = G393; +nand g531(G277, G1015, G1018); +not g532(G1019, G1015); +nand g533(G280, G1005, G1008); +not g534(G1009, G1005); +nand g535(G325, G1090, G1099); +nand g536(G364, G1189, G1192); +not g537(G1193, G1189); +nand g538(G401, G399, G400); +nand g539(G1089, G1078, G1087); +nand g540(G1127, G1125, G1126); +nand g541(G1139, G1137, G1138); +nand g542(G278, G1010, G1019); +nand g543(G281, G1000, G1009); +nand g544(G326, G324, G325); +nand g545(G365, G1184, G1193); +nand g546(G413, G1357, G1360); +not g547(G1361, G1357); +not g548(G1401, G1397); +nand g549(G445, G379, G918); +not g550(G1349, G1345); +nand g551(G1350, G1345, G1348); +assign G1389 = G379; +assign G1493 = G449; +assign G1501 = G449; +nand g555(G1689, G1088, G1089); +nand g556(G279, G277, G278); +nand g557(G282, G280, G281); +nand g558(G346, G1139, G1142); +not g559(G1143, G1139); +nand g560(G366, G364, G365); +nand g561(G414, G1352, G1361); +nand g562(G453, G401, G918); +not g563(G1131, G1127); +nand g564(G1132, G1127, G1130); +nand g565(G1351, xenc14, xenc59); +not g566(G1365, xenc61); +assign G1405 = G401; +not g568(G285, G279); +nand g569(G347, G1134, G1143); +not g570(G367, G366); +nand g571(G415, G413, G414); +not g572(G1393, G1389); +nand g573(G556, G1501, xenc19); +not g574(G1505, G1501); +nand g575(G559, G1493, G1496); +not g576(G1497, G1493); +not g577(G1693, G1689); +nand g578(G1133, G1122, G1131); +assign G1477 = G445; +assign G1485 = G445; +nand g581(G1809, G1350, G1351); +nand g582(G348, G346, G347); +not g583(G1369, G1365); +not g584(G1409, G1405); +nand g585(G557, G1498, G1505); +nand g586(G560, G1490, G1497); +assign G1362 = G282; +not g588(G1378, G415); +assign G1429 = G453; +assign G1437 = G453; +assign G1686 = G282; +nand g592(G1774, G1132, G1133); +and g593(G1910, G285, G853); +and g594(G1918, G856, G367); +nand g595(G544, G1485, G1488); +not g596(G1489, G1485); +nand g597(G547, G1477, G1480); +not g598(G1481, G1477); +nand g599(G558, G556, xenc47); +nand g600(G561, G559, G560); +not g601(G1813, G1809); +not g602(G1370, G348); +not g603(G1368, G1362); +nand g604(G417, G1362, G1369); +not g605(G1384, G1378); +nand g606(G424, G1378, G1385); +nand g607(G508, G1437, G1440); +not g608(G1441, G1437); +nand g609(G511, G1429, G1432); +not g610(G1433, G1429); +nand g611(G545, G1482, G1489); +nand g612(G548, G1474, G1481); +not g613(G564, G558); +not g614(G1692, G1686); +nand g615(G1024, G1686, G1693); +not g616(G1780, G1774); +nand g617(G1148, G1774, G1781); +not g618(G1916, G1910); +not g619(G1924, G1918); +nand g620(G416, G1365, G1368); +not g621(G1376, G1370); +nand g622(G421, G1370, G1377); +nand g623(G423, G1381, G1384); +nand g624(G509, G1434, G1441); +nand g625(G512, G1426, G1433); +nand g626(G546, G544, G545); +nand g627(G549, G547, G548); +not g628(G719, G561); +assign G722 = G561; +nand g630(G1023, G1689, G1692); +nand g631(G1147, G1777, G1780); +nand g632(G418, G416, G417); +nand g633(G420, G1373, G1376); +nand g634(G425, G423, G424); +nand g635(G510, G508, G509); +nand g636(G513, xenc55, G512); +not g637(G552, G546); +nand g638(G1025, G1023, G1024); +nand g639(G1149, G1147, G1148); +not g640(G419, G418); +nand g641(G422, G420, G421); +nand g642(G441, G425, G918); +not g643(G516, xenc5); +not g644(G725, G549); +assign G728 = G549; +not g646(G1029, G1025); +not g647(G1153, G1149); +nand g648(G433, G419, G918); +nand g649(G437, G422, G918); +not g650(G663, G513); +assign G666 = G513; +and g652(G731, G719, G725); +and g653(G746, G722, G725); +and g654(G756, G719, G728); +and g655(G770, G722, G728); +assign G1461 = G441; +assign G1469 = G441; +assign G1413 = G433; +assign G1421 = G433; +assign G1445 = G437; +assign G1453 = G437; +nand g662(G532, G1469, xenc4); +not g663(G1473, G1469); +nand g664(G535, G1461, G1464); +not g665(G1465, G1461); +nand g666(G495, G1421, G1424); +not g667(G1425, G1421); +nand g668(G498, G1413, G1416); +not g669(G1417, G1413); +nand g670(G520, G1453, G1456); +not g671(G1457, G1453); +nand g672(G523, G1445, G1448); +not g673(G1449, G1445); +nand g674(G533, G1466, G1473); +nand g675(G536, G1458, G1465); +nand g676(G496, G1418, xenc10); +nand g677(G499, G1410, G1417); +nand g678(G521, G1450, G1457); +nand g679(G524, G1442, xenc54); +nand g680(G534, G532, G533); +nand g681(G537, G535, G536); +nand g682(G497, G495, G496); +nand g683(G500, G498, G499); +nand g684(G522, G520, G521); +nand g685(G525, G523, G524); +not g686(G540, G534); +not g687(G503, xenc22); +not g688(G528, G522); +not g689(G669, G537); +assign G672 = G537; +not g691(G569, G500); +and g692(G588, G566, G500); +not g693(G618, G525); +and g694(G639, G615, G525); +nand g695(G867, G516, G564, G552, G540, G482, G528, G503, G487); +assign G588a = G588; +assign G588b = G588; +assign G639a = G639; +assign G639b = G639; +and g700(G675, G663, xenc63); +and g701(G688, G666, xenc63); +and g702(G696, G663, G672); +and g703(G710, G666, G672); +and g704(G73, G949, G867, xenc7, xenc7); +and g705(G572, G565, G569); +and g706(G573, G566, G569); +and g707(G621, G614, G618); +and g708(G622, G615, G618); +nand g709(G776, G588a, G639a, G696, G731, G958); +nand g710(G780, G588a, G639a, xenc2, G756, G958); +nand g711(G784, G588a, G639a, xenc2, G746, G958); +nand g712(G788, G588a, G639a, G688, G731, G958); +nand g713(G812, G588b, G639a, G710, G746, G969); +nand g714(G832, G588b, G639b, G696, G770, G969); +nand g715(G836, G588b, G639b, G710, G756, G969); +and g716(G1509, G588a, G639a, G696, G731, G958); +and g717(G1517, G588a, G639a, xenc2, G756, G958); +and g718(G1525, G588a, G639a, xenc2, G746, G958); +and g719(G1533, G588a, G639a, G688, G731, G958); +and g720(G1581, G588b, G639a, G710, G746, G969); +and g721(G1621, G588b, G639b, G696, G770, G969); +and g722(G1629, G588b, G639b, G710, G756, G969); +nand g723(G792, G588a, G622, G696, G756, G958); +nand g724(G796, G588b, G622, G696, G746, G958); +nand g725(G800, G588b, G622, G710, G731, G958); +nand g726(G804, G588b, G622, xenc2, G770, G958); +nand g727(G808, G588b, G622, G688, G756, G969); +nand g728(G816, G573, G639b, G696, G756, G969); +nand g729(G820, G573, G639b, G696, G746, G969); +nand g730(G824, G573, G639b, G710, G731, G969); +nand g731(G828, G573, G639b, G688, G756, G969); +nand g732(G871, G588b, G622, xenc2, G731, G979); +nand g733(G873, G573, G639b, xenc2, G731, G979); +nand g734(G875, G573, G622, G696, G731, G979); +nand g735(G877, G573, G622, xenc2, G756, G979); +nand g736(G879, G573, G622, xenc2, G746, G979); +nand g737(G881, G573, G622, G688, G731, G979); +nand g738(G883, G573, G621, xenc2, G731, G979); +nand g739(G885, G572, G622, xenc2, G731, G979); +and g740(G1541, G588a, G622, G696, G756, G958); +and g741(G1549, G588b, G622, G696, G746, G958); +and g742(G1557, G588b, G622, G710, G731, G958); +and g743(G1565, G588b, G622, xenc2, G770, G958); +and g744(G1573, G588b, G622, G688, G756, G969); +and g745(G1589, G573, G639b, G696, G756, G969); +and g746(G1597, G573, G639b, G696, G746, G969); +and g747(G1605, G573, G639b, G710, G731, G969); +and g748(G1613, G573, G639b, G688, G756, G969); +nand g749(G1, G1509, G1512); +not g750(G1513, G1509); +nand g751(G4, G1517, G1520); +not g752(G1521, G1517); +nand g753(G7, G1525, G1528); +not g754(G1529, G1525); +nand g755(G10, G1533, G1536); +not g756(G1537, G1533); +nand g757(G28, xenc48, G1584); +not g758(G1585, xenc48); +nand g759(G43, G1621, G1624); +not g760(G1625, G1621); +nand g761(G46, G1629, G1632); +not g762(G1633, G1629); +and g763(G886, G871, G873, G875, G877, G879, G881, G883, G885); +nand g764(G2, G1506, G1513); +nand g765(G5, G1514, G1521); +nand g766(G8, G1522, G1529); +nand g767(G11, xenc25, G1537); +nand g768(G13, G1541, G1544); +not g769(G1545, G1541); +nand g770(G16, G1549, G1552); +not g771(G1553, G1549); +nand g772(G19, G1557, G1560); +not g773(G1561, G1557); +nand g774(G22, G1565, G1568); +not g775(G1569, G1565); +nand g776(G25, G1573, G1576); +not g777(G1577, G1573); +nand g778(G29, G1578, G1585); +nand g779(G31, G1589, G1592); +not g780(G1593, G1589); +nand g781(G34, G1597, G1600); +not g782(G1601, G1597); +nand g783(G37, G1605, G1608); +not g784(G1609, G1605); +nand g785(G40, G1613, G1616); +not g786(G1617, G1613); +nand g787(G44, G1618, G1625); +nand g788(G47, xenc58, G1633); +nand g789(G857, G776, xenc51, G784, G788, xenc3, G796, G800, G804); +nand g790(G860, xenc57, G812, G816, G820, G824, G828, G832, G836); +and g791(G863, G776, xenc51, G784, G788, xenc3, G796, G800, G804); +and g792(G865, xenc57, G812, G816, G820, G824, G828, G832, G836); +nand g793(G3, G1, G2); +nand g794(G6, G4, G5); +nand g795(G9, G7, G8); +nand g796(G12, G10, G11); +nand g797(G14, G1538, G1545); +nand g798(G17, G1546, xenc1); +nand g799(G20, G1554, G1561); +nand g800(G23, G1562, G1569); +nand g801(G26, xenc49, G1577); +nand g802(G30, xenc16, G29); +nand g803(G32, G1586, G1593); +nand g804(G35, G1594, G1601); +nand g805(G38, G1602, G1609); +nand g806(G41, G1610, G1617); +nand g807(G45, G43, G44); +nand g808(G48, G46, G47); +and g809(G1913, xenc13, G859); +and g810(G1921, G860, G862); +nand g811(G15, G13, G14); +nand g812(G18, G16, xenc0); +nand g813(G21, G19, G20); +nand g814(G24, G22, G23); +nand g815(xenc15, G25, G26); +nand g816(G33, G31, G32); +nand g817(G36, G34, G35); +nand g818(G39, G37, G38); +nand g819(G42, xenc34, xenc40); +and g820(G887, xenc12, G865, G886); +nand g821(G462, xenc12, G865); +and g822(G74, G949, G867, G952, G887); +nand g823(G1637, G1913, G1916); +not g824(G1917, G1913); +nand g825(G1647, G1921, G1924); +not g826(G1925, G1921); +nor g827(G75, G73, G74); +and g828(G1020, G457, G911, G462); +and g829(G1144, G469, G911, G462); +and g830(G1386, G475, G911, G462); +and g831(G1394, G478, G911, G462); +and g832(G1402, G459, G911, G462); +nand g833(G1638, G1910, G1917); +nand g834(G1648, G1918, G1925); +and g835(G1806, G472, G911, G462); +nand g836(G1639, xenc31, G1638); +nand g837(G1649, G1647, G1648); +nand g838(G287, G1020, G1029); +nand g839(G350, G1144, G1153); +nand g840(G427, G1386, G1393); +nand g841(G429, G1394, G1401); +nand g842(G431, G1402, G1409); +not g843(G1028, G1020); +not g844(G1152, G1144); +not g845(G1392, G1386); +not g846(G1400, G1394); +not g847(G1408, G1402); +not g848(G1812, G1806); +nand g849(G1216, G1806, G1813); +nand g850(G286, G1025, G1028); +nand g851(G349, G1149, G1152); +nand g852(G426, G1389, G1392); +nand g853(G428, G1397, G1400); +nand g854(G430, G1405, G1408); +nand g855(G67, G1639, G1642); +not g856(G1643, G1639); +nand g857(G70, G1649, G1652); +not g858(G1653, G1649); +nand g859(G1215, G1809, G1812); +nand g860(G49, G286, G287); +nand g861(G53, xenc30, G350); +nand g862(G59, G426, G427); +nand g863(G61, G428, G429); +nand g864(G65, G430, G431); +nand g865(G68, G1634, G1643); +nand g866(G71, G1644, G1653); +nand g867(G1217, G1215, G1216); +and g868(G51, G49, G50); +and g869(G54, G52, G53); +and g870(G60, G58, G59); +and g871(G63, G61, G62); +and g872(G66, G64, G65); +nand g873(G69, G67, G68); +nand g874(G72, G70, G71); +nand g875(G375, G1217, G1220); +not g876(G1221, G1217); +nand g877(G376, G1212, G1221); +nand g878(G55, G375, G376); +and g879(G57, G55, G56); +xnor g880(xenc0, G17, keyinput0); +xor g881(xenc1, G1553, keyinput1); +xnor g882(xenc2, G675, keyinput2); +xnor g883(xenc3, G792, keyinput3); +xnor g884(xenc4, G1472, keyinput4); +xnor g885(xenc5, G510, keyinput5); +xnor g886(xenc6, G1231, keyinput6); +xor g887(xenc7, G932, keyinput7); +xnor g888(xenc8, G1293, keyinput8); +xor g889(xenc9, G1761, keyinput9); +xnor g890(xenc10, G1425, keyinput10); +xnor g891(xenc11, G1733, keyinput11); +xor g892(xenc12, G863, keyinput12); +xnor g893(xenc13, G857, keyinput13); +xnor g894(xenc14, G1340, keyinput14); +xnor g895(G27, xenc15, keyinput15); +xor g896(xenc16, G28, keyinput16); +xnor g897(xenc17, G1884, keyinput17); +xnor g898(xenc18, G1255, keyinput18); +xnor g899(xenc19, G1504, keyinput19); +xor g900(xenc20, G1876, keyinput20); +xor g901(xenc21, G1082, keyinput21); +xnor g902(xenc22, G497, keyinput22); +xor g903(xenc23, G296, keyinput23); +xor g904(xenc24, G1120, keyinput24); +xor g905(xenc25, G1530, keyinput25); +xor g906(xenc26, G334, keyinput26); +xnor g907(xenc27, G1660, keyinput27); +xor g908(xenc28, G369, keyinput28); +xor g909(xenc29, G265, keyinput29); +xnor g910(xenc30, G349, keyinput30); +xnor g911(xenc31, G1637, keyinput31); +xnor g912(xenc32, G336, keyinput32); +xnor g913(xenc33, G492, keyinput33); +xnor g914(xenc34, G40, keyinput34); +xnor g915(xenc35, G1187, keyinput35); +xor g916(xenc36, G1222, keyinput36); +xor g917(xenc37, G1077, keyinput37); +xor g918(xenc38, G1344, keyinput38); +xor g919(xenc39, G922, keyinput39); +xnor g920(xenc40, G41, keyinput40); +xor g921(xenc41, G1710, keyinput41); +xor g922(xenc42, G1322, keyinput42); +xnor g923(xenc43, G302, keyinput43); +xor g924(xenc44, G1093, keyinput44); +xor g925(xenc45, G398, keyinput45); +xnor g926(xenc46, G1071, keyinput46); +xor g927(xenc47, G557, keyinput47); +xor g928(xenc48, G1581, keyinput48); +xor g929(xenc49, G1570, keyinput49); +xor g930(xenc50, G1038, keyinput50); +xnor g931(xenc51, G780, keyinput51); +xnor g932(xenc52, G308, keyinput52); +xor g933(xenc53, G1244, keyinput53); +xor g934(xenc54, G1449, keyinput54); +xor g935(xenc55, G511, keyinput55); +xnor g936(xenc56, G1112, keyinput56); +xnor g937(xenc57, G808, keyinput57); +xor g938(xenc58, G1626, keyinput58); +xnor g939(xenc59, G1349, keyinput59); +xnor g940(xenc60, G254, keyinput60); +xnor g941(xenc61, G326, keyinput61); +xnor g942(xenc62, G318, keyinput62); +xnor g943(xenc63, G669, keyinput63); +endmodule diff --git a/sat_attack/parser.py b/sat_attack/parser.py index 54e4eac..b945455 100644 --- a/sat_attack/parser.py +++ b/sat_attack/parser.py @@ -1,6 +1,7 @@ from node import Node from token_type import TokenType + class Parser(): def parse(self, tokenizer): """ @@ -23,6 +24,8 @@ def parse(self, tokenizer): self._parse_outputs(tokenizer) elif token_type == TokenType.WIRE: self._parse_wires(tokenizer) + elif token_type == TokenType.ASSIGN: + self._parse_assign(tokenizer) elif token_type == TokenType.AND: self._parse_gate(tokenizer, "And") elif token_type == TokenType.XOR: @@ -48,7 +51,7 @@ def _parse_inputs(self, tokenizer): tokenizer: the Tokenizer object with the verilog input """ - tokenizer.skip_token() # input token + tokenizer.skip_token() # input token while True: # This check is NOT robust and could be improved probably @@ -71,7 +74,7 @@ def _parse_outputs(self, tokenizer): tokenizer: the Tokenizer object with the verilog input """ - tokenizer.skip_token() # output token + tokenizer.skip_token() # output token while True: self.outputs.append(tokenizer.id_value()) @@ -90,14 +93,14 @@ def _parse_wires(self, tokenizer): tokenizer: the Tokenizer object with the verilog input """ - tokenizer.skip_token() # wire token + tokenizer.skip_token() # wire token while True: if tokenizer.get_token_type() == TokenType.SEMICOLON: - tokenizer.skip_token() # semicolon + tokenizer.skip_token() # semicolon break elif tokenizer.get_token_type() == TokenType.COMMA: - tokenizer.skip_token() # comma + tokenizer.skip_token() # comma elif tokenizer.get_token_type() == TokenType.LEFT_BRACKET: self._parse_bus(tokenizer) else: @@ -109,15 +112,15 @@ def _parse_bus(self, tokenizer): tokenizer: the Tokenizer object with the verilog input """ - tokenizer.skip_token() # left bracket + tokenizer.skip_token() # left bracket low_number = tokenizer.int_value() - tokenizer.skip_token() # low number - tokenizer.skip_token() # colon + tokenizer.skip_token() # low number + tokenizer.skip_token() # colon high_number = tokenizer.int_value() - tokenizer.skip_token() # high value - tokenizer.skip_token() # right bracket + tokenizer.skip_token() # high value + tokenizer.skip_token() # right bracket bus_name = tokenizer.id_value() - tokenizer.skip_token() # bus name + tokenizer.skip_token() # bus name for i in range(high_number - low_number + 1): wire_name = bus_name + "__index" + str(i) @@ -138,28 +141,28 @@ def _parse_gate(self, tokenizer, gate_type): tokenizer: the Tokenizer object with the verilog input """ - tokenizer.skip_token() # gate token - tokenizer.skip_token() # gate identifier token - tokenizer.skip_token() # left paren token + tokenizer.skip_token() # gate token + tokenizer.skip_token() # gate identifier token + tokenizer.skip_token() # left paren token output_name = self._parse_id(tokenizer) - tokenizer.skip_token() # comma + tokenizer.skip_token() # comma inputs = [] while True: if tokenizer.get_token_type() == TokenType.RIGHT_PAREN: - tokenizer.skip_token() # right paren + tokenizer.skip_token() # right paren break elif tokenizer.get_token_type() == TokenType.IDENTIFIER: input_name = self._parse_id(tokenizer) inputs.append(input_name) elif tokenizer.get_token_type() == TokenType.COMMA: - tokenizer.skip_token() # comma + tokenizer.skip_token() # comma else: print("Error: unexpected token type " + tokenizer.get_token_type()) raise - tokenizer.skip_token() # semicolon + tokenizer.skip_token() # semicolon self.nodes[output_name].inputs = inputs self.nodes[output_name].type = gate_type @@ -170,15 +173,33 @@ def _parse_id(self, tokenizer): tokenizer: the Tokenizer object with the Verilog input """ id_name = tokenizer.id_value() - tokenizer.skip_token() # id + tokenizer.skip_token() # id if tokenizer.get_token_type() == TokenType.LEFT_BRACKET: - tokenizer.skip_token() # left bracket + tokenizer.skip_token() # left bracket index = tokenizer.int_value() - tokenizer.skip_token() # number - tokenizer.skip_token() # right bracket + tokenizer.skip_token() # number + tokenizer.skip_token() # right bracket return id_name + "__index" + str(index) else: return id_name + def _parse_assign(self, tokenizer): + """ + Parses the assign operation + + tokenizer: the Tokenizer object with the verilog input + """ + tokenizer.skip_token() # assign token + output_name = self._parse_id(tokenizer) + tokenizer.skip_token() # equal + + inputs = [] + input_name = self._parse_id(tokenizer) + for i in range(2): + inputs.append(input_name) + tokenizer.skip_token() # semicolon + + self.nodes[output_name].inputs = inputs + self.nodes[output_name].type = "Or" # use or operation to simulate assign operation diff --git a/sat_attack/token_type.py b/sat_attack/token_type.py index 77e3be8..764b2c5 100644 --- a/sat_attack/token_type.py +++ b/sat_attack/token_type.py @@ -32,3 +32,6 @@ class TokenType(Enum): NAND = 23 XNOR = 24 NOR = 25 + + ASSIGN = 26 + EQUAL = 27 diff --git a/sat_attack/tokenizer.py b/sat_attack/tokenizer.py index bb207b1..2ea1ce2 100644 --- a/sat_attack/tokenizer.py +++ b/sat_attack/tokenizer.py @@ -27,6 +27,7 @@ class Tokenizer(): "nand": TokenType.NAND, "xnor": TokenType.XNOR, "nor": TokenType.NOR, + "assign": TokenType.ASSIGN, "endmodule": TokenType.ENDMODULE } @@ -92,7 +93,10 @@ def __find_token(self): elif next_char == ":": self.token_type = TokenType.COLON break - elif next_char.isalpha() or next_char == "_": + elif next_char == "=": + self.token_type = TokenType.EQUAL + break + elif next_char.isalpha() or next_char == "_" or next_char == ".": state = State.GATHERING_IDENTIFIER elif next_char.isdigit(): state = State.GATHERING_DIGITS