// Library = EvoApprox 12x12 // Circuit = mul12x12_178 // Area (45) = 518 // Delay (45) = 1.200 // Power (45) = 0.28 // MAE = 40828.70000 // MSE = 2589437317.80000 // MRE = 23.19 % // WCE = 167665 // WCRE = 5326300 % // EP = 100.0 % module mul12x12_178(A, B, O); input [11:0] A, B; output [23:0] O; wire n_1750, n_1610, n_708, n_1500, n_1818, n_1109, n_1108, n_750, n_152, n_153; wire n_1864, n_481, n_1868, n_238, n_2034, n_2035, n_2030, n_2031, n_2032, n_2033; wire n_2038, n_556, n_557, n_129, n_128, n_552, n_553, n_657, n_656, n_655; wire n_654, n_653, n_652, n_122, n_345, n_344, n_211, n_1402, n_210, n_1404; wire n_348, n_1406, n_18, n_19, n_16, n_17, n_14, n_15, n_12, n_13; wire n_10, n_11, n_330, n_334, n_336, n_337, n_1530, n_1532, n_1242, n_1716; wire n_1710, n_1712, n_1498, n_1496, n_1494, n_1723, n_1322, n_81, n_80, n_84; wire n_87, n_86, n_1828, n_1822, n_1826, n_1824, n_161, n_160, n_649, n_518; wire n_510, n_511, n_514, n_515, n_516, n_517, n_266, n_300, n_302, n_304; wire n_268, n_306, n_408, n_794, n_795, n_792, n_793, n_414, n_790, n_791; wire n_45, n_44, n_47, n_46, n_41, n_40, n_43, n_42, n_789, n_788; wire n_1594, n_1565, n_1564, n_1620, n_1622, n_1748, n_1744, n_1138, n_1139, n_1870; wire n_1872, n_185, n_184, n_220, n_630, n_224, n_225, n_2022, n_2026, n_2028; wire n_497, n_648, n_520, n_138, n_139, n_136, n_137, n_646, n_647, n_356; wire n_458, n_352, n_350, n_454, n_358, n_456, n_738, n_739, n_1250, n_1704; wire n_1258, n_1708, n_1318, n_1097, n_1096, n_858, n_1316, n_78, n_79, n_74; wire n_75, n_76, n_77, n_70, n_71, n_1526, n_1702, n_1838, n_1830, n_1834; wire n_1836, n_578, n_576, n_577, n_574, n_575, n_572, n_573, n_760, n_257; wire n_256, n_254, n_704, n_259, n_258, n_701, n_700, n_703, n_702, n_380; wire n_382, n_384, n_386, n_2016, n_404, n_405, n_659, n_1428, n_658, n_1420; wire n_409, n_30, n_31, n_32, n_33, n_34, n_35, n_36, n_37, n_38; wire n_39, n_798, n_799, n_1598, n_781, n_1518, n_496, n_780, n_1408, n_1630; wire n_1634, n_1736, n_1734, n_1596, n_1642, n_1840, n_1844, n_587, n_586, n_584; wire n_628, n_580, n_624, n_625, n_622, n_620, n_588, n_101, n_100, n_107; wire n_106, n_105, n_104, n_362, n_360, n_364, n_1017, n_1016, n_699, n_698; wire n_2044, n_2040, n_2042, n_216, n_743, n_742, n_745, n_744, n_747, n_746; wire n_749, n_748, n_1260, n_67, n_66, n_62, n_716, n_1789, n_1788, n_717; wire n_8, n_9, n_4, n_5, n_6, n_7, n_0, n_1, n_2, n_3; wire n_1608, n_1602, n_1600, n_1606, n_1604, n_1605, n_1714, n_144, n_143, n_142; wire n_203, n_248, n_244, n_190, n_246, n_712, n_710, n_621, n_392, n_390; wire n_394, n_662, n_666, n_664, n_665, n_668, n_1438, n_1340, n_1344, n_23; wire n_22, n_21, n_20, n_27, n_26, n_25, n_24, n_802, n_803, n_29; wire n_28, n_804, n_805, n_326, n_324, n_1504, n_488, n_486, n_484, n_485; wire n_482, n_483, n_480, n_328, n_1239, n_1238, n_1720, n_1334, n_1722, n_94; wire n_95, n_92, n_93, n_98, n_99, n_1858, n_1856, n_590, n_591, n_1432; wire n_110, n_111, n_112, n_113, n_297, n_296, n_294, n_118, n_119, n_509; wire n_508, n_507, n_506, n_505, n_504, n_502, n_501, n_500, n_276, n_378; wire n_270, n_272, n_374, n_278, n_800, n_801, n_202, n_751, n_756, n_754; wire n_758, n_58, n_56, n_57, n_477, n_476, n_475, n_474; 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_56 = n_2 & n_28; assign n_57 = n_56; assign n_58 = ~(n_2 | n_36 | n_0); assign n_62 = ~(n_38 & n_4 & n_42); assign n_66 = n_57 & n_58; assign n_67 = n_66; assign n_70 = ~(n_62 | n_42); assign n_71 = n_70; assign n_74 = ~(n_71 & n_20); assign n_75 = n_74; assign n_76 = n_10 & n_66; assign n_77 = n_76; assign n_78 = n_2 & n_76; assign n_79 = n_78; assign n_80 = n_18 & n_78; assign n_81 = n_80; assign n_84 = n_77; assign n_86 = ~(n_77 & n_16); assign n_87 = n_86; assign n_92 = ~n_66; assign n_93 = n_92; assign n_94 = n_6 & n_84; assign n_95 = n_94; assign n_98 = n_79 & n_0; assign n_99 = n_98; OAI21X1 tmp84(.Y(n_100), .A(n_2), .B(n_98), .C(n_71)); assign n_101 = n_100; OAI21X1 tmp86(.Y(n_104), .A(n_12), .B(n_79), .C(n_99)); assign n_105 = n_104; assign n_106 = ~(n_46 | n_92); assign n_107 = n_106; AOI21X1 tmp90(.Y(n_110), .A(n_79), .B(n_76), .C(n_93)); assign n_111 = n_110; assign n_112 = ~n_110; assign n_113 = n_112; assign n_118 = ~(n_101 | n_32); assign n_119 = n_118; assign n_122 = ~(n_113 | n_104); assign n_128 = n_118 & n_95; assign n_129 = n_128; assign n_136 = n_81; assign n_137 = n_136; assign n_138 = ~(n_119 & n_36); assign n_139 = n_138; assign n_142 = ~(n_77 | n_100 | n_67); assign n_143 = n_142; AOI21X1 tmp105(.Y(n_144), .A(n_129), .B(n_78), .C(n_67)); assign n_152 = n_81; assign n_153 = n_152; AOI21X1 tmp108(.Y(n_160), .A(n_34), .B(n_78), .C(n_144)); assign n_161 = n_160; AOI21X1 tmp110(.Y(n_184), .A(n_106), .B(n_142), .C(n_75)); assign n_185 = n_184; assign n_190 = n_22 & n_32; HAX1 tmp113(.YS(n_202), .YC(n_203), .A(n_77), .B(n_110)); assign n_210 = ~n_129; assign n_211 = n_210; assign n_216 = n_20 & n_34; assign n_220 = n_22 & n_34; assign n_224 = ~n_185; assign n_225 = n_224; assign n_238 = n_14 & 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_254 = n_2 & n_136; assign n_256 = n_153 & n_254; assign n_257 = n_256; assign n_258 = ~(n_105 & n_92); assign n_259 = n_258; assign n_266 = n_12 & n_38; assign n_268 = ~(n_101 & n_38 & n_259); assign n_270 = n_16 & n_38; assign n_272 = n_18 & n_38; assign n_276 = n_20 & n_38; assign n_278 = n_22 & n_38; assign n_294 = n_12 & n_40; assign n_296 = ~n_225; assign n_297 = n_296; 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_324 = n_10 & 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_336 = n_22 & n_42; assign n_337 = n_336; assign n_344 = n_137 & n_44; assign n_345 = n_344; assign n_348 = n_8 & n_44; assign n_350 = n_10 & n_44; 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; assign n_374 = n_6 & n_272; 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_404 = n_137 | n_202; assign n_405 = n_404; OAI21X1 tmp170(.Y(n_408), .A(n_105), .B(n_12), .C(n_139)); assign n_409 = n_408; assign n_414 = n_409; assign n_454 = n_190 & n_216; assign n_456 = ~n_105; assign n_458 = n_190 | n_216; assign n_474 = n_238 & n_266; assign n_475 = n_474; MUX2X1 tmp178(.Y(n_476), .A(n_257), .B(n_268), .S(n_294)); assign n_477 = n_476; assign n_480 = n_244 | n_270; assign n_481 = n_480; FAX1 tmp182(.YS(n_482), .YC(n_483), .A(n_246), .B(n_272), .C(n_300)); FAX1 tmp183(.YS(n_484), .YC(n_485), .A(n_248), .B(n_276), .C(n_302)); assign n_486 = n_278 & n_304; assign n_488 = n_278 ^ n_304; FAX1 tmp186(.YS(n_496), .YC(n_497), .A(n_225), .B(n_12), .C(n_211)); FAX1 tmp187(.YS(n_500), .YC(n_501), .A(n_409), .B(n_348), .C(n_374)); assign n_502 = ~(n_87 & n_80); FAX1 tmp189(.YS(n_504), .YC(n_505), .A(n_324), .B(n_350), .C(n_378)); FAX1 tmp190(.YS(n_506), .YC(n_507), .A(n_326), .B(n_352), .C(n_380)); FAX1 tmp191(.YS(n_508), .YC(n_509), .A(n_328), .B(n_356), .C(n_382)); FAX1 tmp192(.YS(n_510), .YC(n_511), .A(n_330), .B(n_358), .C(n_384)); FAX1 tmp193(.YS(n_514), .YC(n_515), .A(n_334), .B(n_360), .C(n_386)); FAX1 tmp194(.YS(n_516), .YC(n_517), .A(n_337), .B(n_362), .C(n_390)); assign n_518 = n_364 & n_392; assign n_520 = n_364 ^ n_392; assign n_552 = n_129; assign n_553 = n_552; assign n_556 = n_345; assign n_557 = n_556; FAX1 tmp201(.YS(n_572), .YC(n_573), .A(n_557), .B(n_502), .C(n_475)); FAX1 tmp202(.YS(n_574), .YC(n_575), .A(n_143), .B(n_480), .C(n_477)); FAX1 tmp203(.YS(n_576), .YC(n_577), .A(n_454), .B(n_482), .C(n_481)); assign n_578 = n_484 & n_483; assign n_580 = n_484 ^ n_483; assign n_584 = n_488 & n_485; HAX1 tmp207(.YS(n_586), .YC(n_587), .A(n_488), .B(n_485)); assign n_588 = n_306 & n_486; HAX1 tmp209(.YS(n_590), .YC(n_591), .A(n_306), .B(n_486)); assign n_620 = n_409 | n_78; assign n_621 = n_620; 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; assign n_630 = n_220 ^ n_576; FAX1 tmp216(.YS(n_646), .YC(n_647), .A(n_573), .B(n_504), .C(n_501)); FAX1 tmp217(.YS(n_648), .YC(n_649), .A(n_575), .B(n_506), .C(n_505)); FAX1 tmp218(.YS(n_652), .YC(n_653), .A(n_577), .B(n_508), .C(n_507)); FAX1 tmp219(.YS(n_654), .YC(n_655), .A(n_578), .B(n_510), .C(n_509)); FAX1 tmp220(.YS(n_656), .YC(n_657), .A(n_584), .B(n_514), .C(n_511)); FAX1 tmp221(.YS(n_658), .YC(n_659), .A(n_588), .B(n_516), .C(n_515)); assign n_662 = n_520 & n_517; HAX1 tmp223(.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_518; FAX1 tmp226(.YS(n_698), .YC(n_699), .A(n_624), .B(n_142), .C(n_646)); FAX1 tmp227(.YS(n_700), .YC(n_701), .A(n_630), .B(n_622), .C(n_648)); FAX1 tmp228(.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_716 = n_621 & n_78; assign n_717 = n_716; assign n_738 = n_698; assign n_739 = n_738; FAX1 tmp237(.YS(n_742), .YC(n_743), .A(n_700), .B(n_699), .C(n_647)); FAX1 tmp238(.YS(n_744), .YC(n_745), .A(n_702), .B(n_701), .C(n_649)); FAX1 tmp239(.YS(n_746), .YC(n_747), .A(n_708), .B(n_703), .C(n_653)); FAX1 tmp240(.YS(n_748), .YC(n_749), .A(n_712), .B(n_704), .C(n_655)); FAX1 tmp241(.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_780 = n_257 & n_74; assign n_781 = n_780; HAX1 tmp248(.YS(n_788), .YC(n_789), .A(n_742), .B(n_739)); HAX1 tmp249(.YS(n_790), .YC(n_791), .A(n_744), .B(n_743)); HAX1 tmp250(.YS(n_792), .YC(n_793), .A(n_746), .B(n_745)); HAX1 tmp251(.YS(n_794), .YC(n_795), .A(n_748), .B(n_747)); HAX1 tmp252(.YS(n_798), .YC(n_799), .A(n_750), .B(n_749)); HAX1 tmp253(.YS(n_800), .YC(n_801), .A(n_756), .B(n_751)); HAX1 tmp254(.YS(n_802), .YC(n_803), .A(n_760), .B(n_754)); HAX1 tmp255(.YS(n_804), .YC(n_805), .A(n_666), .B(n_758)); assign n_858 = n_781; OAI21X1 tmp257(.Y(n_1016), .A(n_161), .B(n_28), .C(n_259)); assign n_1017 = n_1016; assign n_1096 = n_497 & n_781; assign n_1097 = n_1096; assign n_1108 = ~n_553; assign n_1109 = n_1108; HAX1 tmp263(.YS(n_1138), .YC(n_1139), .A(n_107), .B(n_456)); HAX1 tmp264(.YS(n_1238), .YC(n_1239), .A(n_789), .B(n_122)); assign n_1242 = n_345; assign n_1250 = n_1238 | n_1242; assign n_1258 = n_1250; assign n_1260 = n_1258; assign n_1316 = n_790 & n_789; assign n_1318 = n_791 | n_1316; assign n_1322 = n_405; assign n_1334 = n_1318 | n_1322; assign n_1340 = n_1334; assign n_1344 = n_1340; 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 | n_70; assign n_1420 = n_1406 | n_1408; assign n_1428 = n_1420; assign n_1432 = n_1428; assign n_1438 = n_794 & n_792; 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_1518 = n_1500 | n_1504; assign n_1526 = n_1518; assign n_1530 = n_1526; assign n_1532 = n_798 & n_794; assign n_1564 = n_1109; assign n_1565 = n_1564; 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_1604 = n_1017; assign n_1605 = n_1604; assign n_1606 = n_1598 | n_1596; assign n_1608 = n_1594 | n_94; assign n_1610 = n_1139; 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_1702 = n_1642 & n_1494; assign n_1704 = n_800 & n_1596; assign n_1708 = n_1642 & n_1498; 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_1720 = n_1704 | n_1702; assign n_1722 = n_621; assign n_1723 = n_1722; assign n_1734 = n_1714 | n_1716; assign n_1736 = n_1720 | n_1722; assign n_1744 = n_1734 | n_1736; assign n_1748 = n_1744 | n_110; assign n_1750 = n_802 & n_800; assign n_1788 = n_105; assign n_1789 = n_1788; assign n_1818 = n_802 & n_1642; assign n_1822 = n_1818 & n_1494; assign n_1824 = n_1750 & n_1596; assign n_1826 = n_802 & n_1708; 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; assign n_1838 = n_1830 | n_1828; assign n_1840 = n_1826 | n_1824; assign n_1844 = n_1822; assign n_1856 = n_1836 | n_1838; assign n_1858 = n_1840 | n_1844; assign n_1864 = n_1856 | n_1858; assign n_1868 = n_717; assign n_1870 = n_1864 | n_1868; assign n_1872 = n_1870; assign n_2016 = ~(n_225 | n_414); assign n_2022 = ~n_129; assign n_2026 = n_1789; assign n_2028 = n_788; HAX1 tmp347(.YS(n_2030), .YC(n_2031), .A(n_790), .B(n_1260)); HAX1 tmp348(.YS(n_2032), .YC(n_2033), .A(n_792), .B(n_1344)); HAX1 tmp349(.YS(n_2034), .YC(n_2035), .A(n_794), .B(n_1432)); assign n_2038 = n_798 ^ n_1530; assign n_2040 = n_800 ^ n_1634; assign n_2042 = n_802 ^ n_1748; assign n_2044 = n_804 ^ n_1872; assign O[0] = n_297; assign O[1] = n_110; assign O[2] = n_1139; assign O[3] = n_160; assign O[4] = n_1605; assign O[5] = n_98; assign O[6] = n_111; assign O[7] = n_716; assign O[8] = n_1097; assign O[9] = n_454; assign O[10] = n_1723; assign O[11] = n_2016; assign O[12] = n_1565; assign O[13] = n_858; assign O[14] = n_2022; 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