// Library = EvoApprox 12x12 // Circuit = mul12x12_166 // Area (45) = 567 // Delay (45) = 1.060 // Power (45) = 0.33 // MAE = 33777.90000 // MSE = 1749180104.70000 // MRE = 28.30 % // WCE = 166207 // WCRE = 6978900 % // EP = 100.0 % module mul12x12_166(A, B, O); input [11:0] A, B; output [23:0] O; wire n_1750, n_1610, n_1812, n_1500, n_322, n_1506, n_150, n_1864, n_1862, n_1860; wire n_481, n_1868, n_238, n_230, n_721, n_720, n_2034, n_2030, n_2031, n_2032; wire n_2038, n_659, n_658, n_657, n_656, n_655, n_654, n_121, n_652, n_123; wire n_122, n_1408, n_347, n_346, n_1402, n_1404, n_1406, n_18, n_19, n_16; wire n_17, n_14, n_15, n_12, n_13, n_10, n_11, n_330, n_334, n_335; wire n_336, n_1530, n_1532, n_1242, n_1716, n_1710, n_1712, n_1498, n_1496, n_1326; wire n_1492, n_1322, n_1504, n_1394, n_1396, n_1828, n_521, n_162, n_649, n_518; wire n_510, n_511, n_514, n_515, n_516, n_517, n_266, n_267, n_260, n_261; wire n_300, n_302, n_304, n_306, n_1588, n_794, n_795, n_600, n_646, n_768; wire n_767, n_34, n_793, n_356, n_417, n_416, n_790, n_37, n_45, n_44; wire n_47, n_46, n_41, n_40, n_43, n_42, n_60, n_789, n_788, n_1594; wire n_1586, n_1620, n_1188, n_1622, n_457, n_1748, n_1744, n_1692, n_1696, n_1872; wire n_1870, n_5, n_183, n_182, n_181, n_180, n_220, n_188, n_631, n_630; wire n_2026, n_2028, n_1518, n_648, n_520, n_523, n_522, n_527, n_526, n_136; wire n_137, n_134, n_644, n_645, n_130, n_647, n_459, n_458, n_352, n_453; wire n_452, n_454, n_358, n_456, n_722, n_1520, n_738, n_739, n_1250, n_1256; wire n_1258, n_1708, n_1318, n_1319, n_1095, n_1094, n_1312, n_1314, n_1316, n_78; wire n_79, n_76, n_72, n_73, n_1417, n_1416, n_1414, n_1412, n_1839, n_1838; wire n_1830, n_1834, n_601, n_578, n_576, n_577, n_574, n_575, n_572, n_573; wire n_766, n_178, n_179, n_760, n_708, n_704, n_701, n_700, n_703, n_702; wire n_380, n_2018, n_382, n_384, n_386, n_670, n_677, n_676, n_1428, n_1426; wire n_1427, n_1424, n_1420, n_30, n_31, n_32, n_33, n_792, n_35, n_36; wire n_791, n_38, n_39, n_1584, n_798, n_799, n_785, n_784, n_653, n_1598; wire n_120, n_494, n_497, n_496, n_1630, n_1634, n_1033, n_1032, n_1736, n_1734; wire n_1596, n_1642, n_1846, n_586, n_584, n_198, n_199, n_628, n_580, n_624; wire n_625, n_622, n_191, n_620, n_588, n_532, n_1570, n_101, n_100, n_362; wire n_360, n_1526, n_364, n_440, n_441, n_697, n_696, n_699, n_698, n_2044; wire n_2041, n_2040, n_2043, n_2042, n_216, n_743, n_742, n_745, n_744, n_747; wire n_746, n_749, n_748, n_1307, n_1306, n_1304, n_1266, n_1260, n_961, n_960; wire n_848, n_849, n_65, n_64, n_61, n_681, n_714, n_8, n_9, n_1164; wire n_4, n_240, n_6, n_7, n_0, n_1, n_2, n_3, n_1608, n_710; wire n_1602, n_1600, n_1606, n_1714, n_581, n_149, n_148, n_145, n_144, n_248; wire n_249, n_244, n_190, n_246, n_712, n_241, n_242, n_621, n_392, n_390; wire n_396, n_397, n_394, n_395, n_2006, n_662, n_666, n_664, n_665, n_668; wire n_1836, n_433, n_432, n_430, n_1438, n_1028, n_1029, n_1430, n_1344, n_23; wire n_22, n_21, n_20, n_27, n_26, n_25, n_24, n_802, n_803, n_800; wire n_28, n_804, n_805, n_1494, n_326, n_324, n_894, n_488, n_489, n_486; wire n_484, n_485, n_482, n_483, n_480, n_328, n_1236, n_1234, n_1232, n_1238; wire n_936, n_1488, n_1334, n_1722, n_94, n_98, n_99, n_1152, n_1856, n_1850; wire n_590, n_1340, n_594, n_595, n_596, n_1432, n_298, n_293, n_292, n_509; wire n_508, n_507, n_506, n_505, n_504, n_501, n_500, n_274, n_276, n_378; wire n_270, n_272, n_374, n_375, n_278, n_680, n_29, n_801, n_750, n_751; wire n_756, n_754, n_208, n_209, n_758, n_58, n_59, n_56, n_57, n_54; wire n_477, n_476; assign n_0 = A[0]; assign n_1 = A[0]; assign n_2 = A[1]; assign n_3 = A[1]; assign n_4 = A[2]; assign n_5 = A[2]; assign n_6 = A[3]; assign n_7 = A[3]; assign n_8 = A[4]; assign n_9 = A[4]; assign n_10 = A[5]; assign n_11 = A[5]; assign n_12 = A[6]; assign n_13 = A[6]; assign n_14 = A[7]; assign n_15 = A[7]; assign n_16 = A[8]; assign n_17 = A[8]; assign n_18 = A[9]; assign n_19 = A[9]; assign n_20 = A[10]; assign n_21 = A[10]; assign n_22 = A[11]; assign n_23 = A[11]; assign n_24 = B[0]; assign n_25 = B[0]; assign n_26 = B[1]; assign n_27 = B[1]; assign n_28 = B[2]; assign n_29 = B[2]; assign n_30 = B[3]; assign n_31 = B[3]; assign n_32 = B[4]; assign n_33 = B[4]; assign n_34 = B[5]; assign n_35 = B[5]; assign n_36 = B[6]; assign n_37 = B[6]; assign n_38 = B[7]; assign n_39 = B[7]; assign n_40 = B[8]; assign n_41 = B[8]; assign n_42 = B[9]; assign n_43 = B[9]; assign n_44 = B[10]; assign n_45 = B[10]; assign n_46 = B[11]; assign n_47 = B[11]; assign n_54 = ~(n_14 | n_44 | n_18); assign n_56 = n_8 & n_44; assign n_57 = n_56; assign n_58 = n_18 & n_54; assign n_59 = n_58; assign n_60 = ~(n_26 | n_24 | n_46); assign n_61 = n_60; assign n_64 = n_57 & n_28; assign n_65 = n_64; assign n_72 = ~n_65; assign n_73 = n_72; assign n_76 = n_26 & n_58; assign n_78 = n_61 & n_26; assign n_79 = n_78; assign n_94 = n_79; assign n_98 = ~n_59; assign n_99 = n_98; assign n_100 = n_10 & n_94; assign n_101 = n_100; assign n_120 = ~(n_73 | n_44); assign n_121 = n_120; assign n_122 = n_34 & n_120; assign n_123 = n_122; assign n_130 = n_34 & n_78; assign n_134 = n_99 & n_120; assign n_136 = n_121; assign n_137 = n_136; assign n_144 = n_137 & n_94; assign n_145 = n_144; assign n_148 = n_122 & n_58; assign n_149 = n_148; assign n_150 = n_59 | n_130; assign n_162 = n_22 & n_30; assign n_178 = ~(n_145 & n_32 & n_26); assign n_179 = n_178; assign n_180 = n_101 & n_20; assign n_181 = n_180; assign n_182 = ~(n_179 | n_78); assign n_183 = n_182; assign n_188 = n_57 & n_32; assign n_190 = n_22 & n_32; assign n_191 = n_190; assign n_198 = ~(n_137 & n_144); assign n_199 = n_198; assign n_208 = n_145 & n_134; assign n_209 = n_208; assign n_216 = n_20 & n_34; assign n_220 = n_22 & n_34; assign n_230 = n_22 & n_134; assign n_238 = n_101 & n_58; assign n_240 = ~(n_34 | n_44 | n_179); assign n_241 = n_240; assign n_242 = n_16 & n_36; assign n_244 = n_18 & n_36; assign n_246 = n_20 & n_36; assign n_248 = n_22 & n_36; assign n_249 = n_248; assign n_260 = n_121; assign n_261 = n_260; assign n_266 = n_121 & n_148; assign n_267 = n_266; assign n_270 = n_16 & n_38; assign n_272 = n_18 & n_38; assign n_274 = ~n_73; assign n_276 = n_20 & n_38; assign n_278 = n_22 & n_38; assign n_292 = ~n_261; assign n_293 = n_292; assign n_298 = n_14 & n_40; assign n_300 = n_16 & n_40; assign n_302 = n_18 & n_40; assign n_304 = n_20 & n_40; assign n_306 = n_22 & n_40; assign n_322 = n_10 & n_42; assign n_324 = n_12 & n_42; assign n_326 = n_14 & n_42; assign n_328 = n_16 & n_42; assign n_330 = n_18 & n_42; assign n_334 = n_20 & n_42; assign n_335 = n_334; assign n_336 = n_22 & n_42; assign n_346 = n_6 & n_302; assign n_347 = n_346; assign n_352 = n_12 & n_44; assign n_356 = n_14 & n_44; assign n_358 = n_16 & n_44; assign n_360 = n_18 & n_44; assign n_362 = n_20 & n_44; assign n_364 = n_22 & n_44; AOI21X1 tmp148(.Y(n_374), .A(n_293), .B(n_148), .C(n_183)); assign n_375 = n_374; assign n_378 = n_8 & n_46; assign n_380 = n_10 & n_46; assign n_382 = n_12 & n_46; assign n_384 = n_14 & n_46; assign n_386 = n_16 & n_46; assign n_390 = n_18 & n_46; assign n_392 = n_20 & n_46; assign n_394 = n_22 & n_46; assign n_395 = n_394; assign n_396 = n_2 & n_76; assign n_397 = n_396; assign n_416 = ~(n_18 & n_28 & n_59); assign n_417 = n_416; assign n_430 = ~n_181; assign n_432 = ~n_374; assign n_433 = n_432; FAX1 tmp166(.YS(n_440), .YC(n_441), .A(n_34), .B(n_238), .C(n_267)); FAX1 tmp167(.YS(n_452), .YC(n_453), .A(n_162), .B(n_188), .C(n_395)); assign n_454 = n_190 & n_216; assign n_456 = ~(n_417 | n_150); assign n_457 = n_456; HAX1 tmp171(.YS(n_458), .YC(n_459), .A(n_191), .B(n_216)); assign n_476 = n_242 | n_266; assign n_477 = n_476; FAX1 tmp174(.YS(n_480), .YC(n_481), .A(n_244), .B(n_270), .C(n_298)); FAX1 tmp175(.YS(n_482), .YC(n_483), .A(n_246), .B(n_272), .C(n_300)); FAX1 tmp176(.YS(n_484), .YC(n_485), .A(n_249), .B(n_276), .C(n_302)); assign n_486 = n_278 & n_304; HAX1 tmp178(.YS(n_488), .YC(n_489), .A(n_278), .B(n_304)); assign n_494 = ~(n_2 | n_430); assign n_496 = ~(n_457 | n_150); assign n_497 = n_496; HAX1 tmp182(.YS(n_500), .YC(n_501), .A(n_322), .B(n_266)); FAX1 tmp183(.YS(n_504), .YC(n_505), .A(n_324), .B(n_238), .C(n_378)); FAX1 tmp184(.YS(n_506), .YC(n_507), .A(n_326), .B(n_352), .C(n_380)); FAX1 tmp185(.YS(n_508), .YC(n_509), .A(n_328), .B(n_356), .C(n_382)); FAX1 tmp186(.YS(n_510), .YC(n_511), .A(n_330), .B(n_358), .C(n_384)); FAX1 tmp187(.YS(n_514), .YC(n_515), .A(n_335), .B(n_360), .C(n_386)); FAX1 tmp188(.YS(n_516), .YC(n_517), .A(n_336), .B(n_362), .C(n_390)); assign n_518 = n_364 & n_392; HAX1 tmp190(.YS(n_520), .YC(n_521), .A(n_364), .B(n_392)); assign n_522 = ~n_149; assign n_523 = n_522; AOI21X1 tmp193(.Y(n_526), .A(n_375), .B(n_496), .C(n_59)); assign n_527 = n_526; assign n_532 = n_417; assign n_572 = n_145; assign n_573 = n_572; FAX1 tmp198(.YS(n_574), .YC(n_575), .A(n_453), .B(n_480), .C(n_477)); FAX1 tmp199(.YS(n_576), .YC(n_577), .A(n_454), .B(n_482), .C(n_481)); assign n_578 = n_484 & n_483; HAX1 tmp201(.YS(n_580), .YC(n_581), .A(n_484), .B(n_483)); assign n_584 = n_488 & n_485; assign n_586 = n_488 ^ n_485; assign n_588 = n_306 & n_486; assign n_590 = n_306 ^ n_486; assign n_594 = ~(n_526 | n_523); assign n_595 = n_594; assign n_596 = ~(n_261 | n_527 | n_179); assign n_600 = ~n_532; assign n_601 = n_600; FAX1 tmp211(.YS(n_620), .YC(n_621), .A(n_452), .B(n_274), .C(n_123)); assign n_622 = n_458 & n_574; HAX1 tmp213(.YS(n_624), .YC(n_625), .A(n_458), .B(n_574)); assign n_628 = n_220 & n_576; HAX1 tmp215(.YS(n_630), .YC(n_631), .A(n_220), .B(n_576)); MUX2X1 tmp216(.Y(n_644), .A(n_261), .B(n_500), .S(n_347)); assign n_645 = n_644; FAX1 tmp218(.YS(n_646), .YC(n_647), .A(n_573), .B(n_504), .C(n_501)); FAX1 tmp219(.YS(n_648), .YC(n_649), .A(n_575), .B(n_506), .C(n_505)); FAX1 tmp220(.YS(n_652), .YC(n_653), .A(n_577), .B(n_508), .C(n_507)); FAX1 tmp221(.YS(n_654), .YC(n_655), .A(n_578), .B(n_510), .C(n_509)); FAX1 tmp222(.YS(n_656), .YC(n_657), .A(n_584), .B(n_514), .C(n_511)); FAX1 tmp223(.YS(n_658), .YC(n_659), .A(n_588), .B(n_516), .C(n_515)); assign n_662 = n_520 & n_517; HAX1 tmp225(.YS(n_664), .YC(n_665), .A(n_520), .B(n_517)); assign n_666 = n_394 & n_518; assign n_668 = n_394 ^ n_666; assign n_670 = ~(n_596 | n_595 | n_123); assign n_676 = n_600; assign n_677 = n_676; assign n_680 = ~(n_417 | n_150); assign n_681 = n_680; assign n_696 = n_620; assign n_697 = n_696; FAX1 tmp235(.YS(n_698), .YC(n_699), .A(n_624), .B(n_621), .C(n_646)); FAX1 tmp236(.YS(n_700), .YC(n_701), .A(n_630), .B(n_622), .C(n_648)); FAX1 tmp237(.YS(n_702), .YC(n_703), .A(n_580), .B(n_628), .C(n_652)); assign n_704 = n_586 & n_654; assign n_708 = n_586 ^ n_654; assign n_710 = n_590 & n_656; assign n_712 = n_590 ^ n_656; assign n_714 = ~(n_99 | n_182); HAX1 tmp243(.YS(n_720), .YC(n_721), .A(n_441), .B(n_677)); assign n_722 = ~n_680; FAX1 tmp245(.YS(n_738), .YC(n_739), .A(n_698), .B(n_697), .C(n_645)); FAX1 tmp246(.YS(n_742), .YC(n_743), .A(n_700), .B(n_699), .C(n_647)); FAX1 tmp247(.YS(n_744), .YC(n_745), .A(n_702), .B(n_701), .C(n_649)); FAX1 tmp248(.YS(n_746), .YC(n_747), .A(n_708), .B(n_703), .C(n_653)); FAX1 tmp249(.YS(n_748), .YC(n_749), .A(n_712), .B(n_704), .C(n_655)); FAX1 tmp250(.YS(n_750), .YC(n_751), .A(n_658), .B(n_710), .C(n_657)); assign n_754 = n_664 & n_659; assign n_756 = n_664 ^ n_659; assign n_758 = n_668 & n_662; assign n_760 = n_668 ^ n_662; assign n_766 = n_720 & n_676; assign n_767 = n_766; assign n_768 = ~n_722; HAX1 tmp258(.YS(n_784), .YC(n_785), .A(n_209), .B(n_382)); HAX1 tmp259(.YS(n_788), .YC(n_789), .A(n_742), .B(n_739)); HAX1 tmp260(.YS(n_790), .YC(n_791), .A(n_744), .B(n_743)); HAX1 tmp261(.YS(n_792), .YC(n_793), .A(n_746), .B(n_745)); HAX1 tmp262(.YS(n_794), .YC(n_795), .A(n_748), .B(n_747)); HAX1 tmp263(.YS(n_798), .YC(n_799), .A(n_750), .B(n_749)); HAX1 tmp264(.YS(n_800), .YC(n_801), .A(n_756), .B(n_751)); HAX1 tmp265(.YS(n_802), .YC(n_803), .A(n_760), .B(n_754)); HAX1 tmp266(.YS(n_804), .YC(n_805), .A(n_666), .B(n_758)); assign n_848 = n_209 & n_767; assign n_849 = n_848; assign n_894 = n_199 & n_768; assign n_936 = ~n_433; assign n_960 = n_849 & n_230; assign n_961 = n_960; MUX2X1 tmp273(.Y(n_1028), .A(n_397), .B(n_94), .S(n_523)); assign n_1029 = n_1028; assign n_1032 = ~(n_433 & n_894); assign n_1033 = n_1032; assign n_1094 = n_805; assign n_1095 = n_1094; assign n_1152 = ~n_961; assign n_1164 = ~(n_101 & n_94); assign n_1188 = n_1033; assign n_1232 = n_1188 & n_766; assign n_1234 = n_788 & n_1164; assign n_1236 = ~n_573; assign n_1238 = n_789; assign n_1242 = n_1234 | n_1232; assign n_1250 = n_1238 | n_1242; assign n_1256 = n_601 | n_494; assign n_1258 = n_1250; assign n_1260 = n_1258 | n_1256; assign n_1266 = n_790 & n_788; assign n_1304 = n_497 & n_1094; assign n_1306 = n_1029; assign n_1307 = n_1306; assign n_1312 = n_1266; assign n_1314 = n_101 & n_1236; assign n_1316 = n_790 & n_789; HAX1 tmp298(.YS(n_1318), .YC(n_1319), .A(n_791), .B(n_1316)); assign n_1322 = n_1314 | n_1312; assign n_1326 = n_1304; assign n_1334 = n_1318 | n_1322; assign n_1340 = n_1334; assign n_1344 = n_1340; assign n_1394 = n_181; assign n_1396 = n_792 & n_1312; assign n_1402 = n_792 & n_1316; assign n_1404 = n_792 & n_791; assign n_1406 = n_793 | n_1404; assign n_1408 = n_1402; assign n_1412 = n_1396 | n_1394; assign n_1414 = n_1307; assign n_1416 = n_961; assign n_1417 = n_1416; assign n_1420 = n_1406 | n_1408; assign n_1424 = n_1412 | n_1414; assign n_1426 = n_1416 & n_936; assign n_1427 = n_1426; assign n_1428 = n_1420 | n_1424; assign n_1430 = n_1426; assign n_1432 = n_1428 | n_766; assign n_1438 = n_794 & n_1428; assign n_1488 = n_1438 & n_1312; assign n_1492 = n_145; assign n_1494 = n_1438 & n_1316; assign n_1496 = n_794 & n_1404; assign n_1498 = n_794 & n_793; assign n_1500 = n_795 | n_1498; assign n_1504 = n_1496 | n_1494; assign n_1506 = n_1492 | n_1488; assign n_1518 = n_1500 | n_1504; assign n_1520 = n_1506 | n_94; assign n_1526 = n_1518 | n_1520; assign n_1530 = n_1526; assign n_1532 = n_798 & n_794; assign n_1570 = n_183; assign n_1584 = n_721 & n_198; assign n_1586 = n_798 & n_1520; assign n_1588 = n_1586 & n_1312; assign n_1594 = n_798 & n_1494; assign n_1596 = n_1532 & n_1404; assign n_1598 = n_798 & n_1498; assign n_1600 = n_798 & n_795; assign n_1602 = n_799 | n_1600; assign n_1606 = n_1598 | n_1596; assign n_1608 = n_1594 | n_766; assign n_1610 = n_1588 | n_1584; assign n_1620 = n_1602 | n_1606; assign n_1622 = n_1608 | n_1610; assign n_1630 = n_1620 | n_1622; assign n_1634 = n_1630; assign n_1642 = n_800 & n_798; assign n_1692 = n_1642 & n_1438; assign n_1696 = n_1692 & n_798; assign n_1708 = n_397 & n_130; assign n_1710 = n_800 & n_1600; assign n_1712 = n_800 & n_799; assign n_1714 = n_801 | n_1712; assign n_1716 = n_1710 | n_1708; assign n_1722 = n_1427 | n_1696; assign n_1734 = n_1714 | n_1716; assign n_1736 = n_1417 | n_1722; assign n_1744 = n_1734 | n_1736; assign n_1748 = n_1744; assign n_1750 = n_802 & n_800; assign n_1812 = n_802 & n_1696; assign n_1828 = n_1750 & n_1600; assign n_1830 = n_802 & n_1712; assign n_1834 = n_802 & n_801; assign n_1836 = n_803 | n_1834; HAX1 tmp370(.YS(n_1838), .YC(n_1839), .A(n_1830), .B(n_1828)); assign n_1846 = n_1812 | n_1430; assign n_1850 = n_241; assign n_1856 = n_1836 | n_1838; assign n_1860 = n_1846 | n_1326; assign n_1862 = ~(n_1850 ^ n_532); assign n_1864 = n_1856; assign n_1868 = n_1860 | n_1862; assign n_1870 = n_1864 | n_1868; assign n_1872 = n_1870 | n_1430; assign n_2006 = ~n_766; assign n_2018 = ~n_1095; assign n_2026 = n_784; assign n_2028 = ~(n_788 | n_1570); HAX1 tmp384(.YS(n_2030), .YC(n_2031), .A(n_790), .B(n_1260)); assign n_2032 = n_792 ^ n_1344; assign n_2034 = n_794 ^ n_1432; assign n_2038 = n_798 ^ n_1530; HAX1 tmp388(.YS(n_2040), .YC(n_2041), .A(n_800), .B(n_1634)); HAX1 tmp389(.YS(n_2042), .YC(n_2043), .A(n_802), .B(n_1748)); assign n_2044 = n_804 | n_1872; assign O[0] = n_577; assign O[1] = n_374; assign O[2] = n_522; assign O[3] = n_1152; assign O[4] = n_670; assign O[5] = n_714; assign O[6] = n_1095; assign O[7] = n_2006; assign O[8] = n_681; assign O[9] = n_182; assign O[10] = n_1427; assign O[11] = n_16; assign O[12] = n_2018; assign O[13] = n_4; assign O[14] = n_575; assign O[15] = n_2026; assign O[16] = n_2028; assign O[17] = n_2030; assign O[18] = n_2032; assign O[19] = n_2034; assign O[20] = n_2038; assign O[21] = n_2040; assign O[22] = n_2042; assign O[23] = n_2044; endmodule