diff --git a/experiments/cell_libraries/asap7.genlib b/experiments/cell_libraries/asap7.genlib index 04fae27f6..9141e60d1 100644 --- a/experiments/cell_libraries/asap7.genlib +++ b/experiments/cell_libraries/asap7.genlib @@ -1,747 +1,242 @@ -# The genlib library "asap7sc7p5t_22b_AO_RVT_SS_170906.genlib" with 157 gates -GATE _const0_ 0.0000 z=CONST0; -GATE _const1_ 0.0000 z=CONST1; -GATE AO211x2_ASAP7_75t_R 3.7325 Y=(A1 * A2) + (B) + (C); - PIN A1 UNKNOWN 1 999 30.9976 0.0000 30.9976 0.0000 - PIN A2 UNKNOWN 1 999 31.7791 0.0000 31.7791 0.0000 - PIN B UNKNOWN 1 999 28.6505 0.0000 28.6505 0.0000 - PIN C UNKNOWN 1 999 26.5648 0.0000 26.5648 0.0000 -GATE AO21x1_ASAP7_75t_R 1.3997 Y=(A1 * A2) + (B); - PIN A1 UNKNOWN 1 999 24.4883 0.0000 24.4883 0.0000 - PIN A2 UNKNOWN 1 999 23.6091 0.0000 23.6091 0.0000 - PIN B UNKNOWN 1 999 24.2507 0.0000 24.2507 0.0000 -GATE AO21x2_ASAP7_75t_R 1.6330 Y=(A1 * A2) + (B); - PIN A1 UNKNOWN 1 999 26.2175 0.0000 26.2175 0.0000 - PIN A2 UNKNOWN 1 999 25.4305 0.0000 25.4305 0.0000 - PIN B UNKNOWN 1 999 25.2175 0.0000 25.2175 0.0000 -GATE AO221x1_ASAP7_75t_R 2.3328 Y=(A1 * A2) + (B1 * B2) + (C); - PIN A1 UNKNOWN 1 999 33.5177 0.0000 33.5177 0.0000 - PIN A2 UNKNOWN 1 999 34.2172 0.0000 34.2172 0.0000 - PIN B1 UNKNOWN 1 999 29.4436 0.0000 29.4436 0.0000 - PIN B2 UNKNOWN 1 999 29.9344 0.0000 29.9344 0.0000 - PIN C UNKNOWN 1 999 29.7238 0.0000 29.7238 0.0000 -GATE AO221x2_ASAP7_75t_R 2.5661 Y=(A1 * A2) + (B1 * B2) + (C); - PIN A1 UNKNOWN 1 999 37.6315 0.0000 37.6315 0.0000 - PIN A2 UNKNOWN 1 999 38.3350 0.0000 38.3350 0.0000 - PIN B1 UNKNOWN 1 999 33.3781 0.0000 33.3781 0.0000 - PIN B2 UNKNOWN 1 999 33.9346 0.0000 33.9346 0.0000 - PIN C UNKNOWN 1 999 32.7278 0.0000 32.7278 0.0000 -GATE AO222x2_ASAP7_75t_R 5.1322 Y=(A1 * A2) + (B1 * B2) + (C1 * C2); - PIN A1 UNKNOWN 1 999 38.1542 0.0000 38.1542 0.0000 - PIN A2 UNKNOWN 1 999 38.6784 0.0000 38.6784 0.0000 - PIN B1 UNKNOWN 1 999 35.6719 0.0000 35.6719 0.0000 - PIN B2 UNKNOWN 1 999 36.0369 0.0000 36.0369 0.0000 - PIN C1 UNKNOWN 1 999 31.5020 0.0000 31.5020 0.0000 - PIN C2 UNKNOWN 1 999 31.8793 0.0000 31.8793 0.0000 -GATE AO22x1_ASAP7_75t_R 2.0995 Y=(A1 * A2) + (B1 * B2); - PIN A1 UNKNOWN 1 999 29.3552 0.0000 29.3552 0.0000 - PIN A2 UNKNOWN 1 999 28.6812 0.0000 28.6812 0.0000 - PIN B1 UNKNOWN 1 999 27.8962 0.0000 27.8962 0.0000 - PIN B2 UNKNOWN 1 999 26.8144 0.0000 26.8144 0.0000 -GATE AO22x2_ASAP7_75t_R 2.3328 Y=(A1 * A2) + (B1 * B2); - PIN A1 UNKNOWN 1 999 29.4629 0.0000 29.4629 0.0000 - PIN A2 UNKNOWN 1 999 28.7945 0.0000 28.7945 0.0000 - PIN B1 UNKNOWN 1 999 27.9451 0.0000 27.9451 0.0000 - PIN B2 UNKNOWN 1 999 27.0366 0.0000 27.0366 0.0000 -GATE AO31x2_ASAP7_75t_R 3.7325 Y=(A1 * A2 * A3) + (B); - PIN A1 UNKNOWN 1 999 26.1547 0.0000 26.1547 0.0000 - PIN A2 UNKNOWN 1 999 27.6545 0.0000 27.6545 0.0000 - PIN A3 UNKNOWN 1 999 28.3272 0.0000 28.3272 0.0000 - PIN B UNKNOWN 1 999 26.6643 0.0000 26.6643 0.0000 -GATE AO322x2_ASAP7_75t_R 3.4992 Y=(A1 * A2 * A3) + (B1 * B2) + (C1 * C2); - PIN A1 UNKNOWN 1 999 41.7498 0.0000 41.7498 0.0000 - PIN A2 UNKNOWN 1 999 43.4431 0.0000 43.4431 0.0000 - PIN A3 UNKNOWN 1 999 44.5606 0.0000 44.5606 0.0000 - PIN B1 UNKNOWN 1 999 41.7168 0.0000 41.7168 0.0000 - PIN B2 UNKNOWN 1 999 42.1333 0.0000 42.1333 0.0000 - PIN C1 UNKNOWN 1 999 38.1689 0.0000 38.1689 0.0000 - PIN C2 UNKNOWN 1 999 38.7129 0.0000 38.7129 0.0000 -GATE AO32x1_ASAP7_75t_R 1.8662 Y=(A1 * A2 * A3) + (B1 * B2); - PIN A1 UNKNOWN 1 999 30.1987 0.0000 30.1987 0.0000 - PIN A2 UNKNOWN 1 999 31.8109 0.0000 31.8109 0.0000 - PIN A3 UNKNOWN 1 999 33.4711 0.0000 33.4711 0.0000 - PIN B1 UNKNOWN 1 999 30.0977 0.0000 30.0977 0.0000 - PIN B2 UNKNOWN 1 999 31.0052 0.0000 31.0052 0.0000 -GATE AO32x2_ASAP7_75t_R 2.0995 Y=(A1 * A2 * A3) + (B1 * B2); - PIN A1 UNKNOWN 1 999 34.2242 0.0000 34.2242 0.0000 - PIN A2 UNKNOWN 1 999 35.9098 0.0000 35.9098 0.0000 - PIN A3 UNKNOWN 1 999 37.5228 0.0000 37.5228 0.0000 - PIN B1 UNKNOWN 1 999 34.5178 0.0000 34.5178 0.0000 - PIN B2 UNKNOWN 1 999 35.3906 0.0000 35.3906 0.0000 -GATE AO331x1_ASAP7_75t_R 2.3328 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C); - PIN A1 UNKNOWN 1 999 37.8300 0.0000 37.8300 0.0000 - PIN A2 UNKNOWN 1 999 39.6752 0.0000 39.6752 0.0000 - PIN A3 UNKNOWN 1 999 41.0093 0.0000 41.0093 0.0000 - PIN B1 UNKNOWN 1 999 35.2641 0.0000 35.2641 0.0000 - PIN B2 UNKNOWN 1 999 36.9617 0.0000 36.9617 0.0000 - PIN B3 UNKNOWN 1 999 38.2503 0.0000 38.2503 0.0000 - PIN C UNKNOWN 1 999 31.3499 0.0000 31.3499 0.0000 -GATE AO331x2_ASAP7_75t_R 2.5661 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C); - PIN A1 UNKNOWN 1 999 41.4195 0.0000 41.4195 0.0000 - PIN A2 UNKNOWN 1 999 43.1609 0.0000 43.1609 0.0000 - PIN A3 UNKNOWN 1 999 44.5379 0.0000 44.5379 0.0000 - PIN B1 UNKNOWN 1 999 38.8208 0.0000 38.8208 0.0000 - PIN B2 UNKNOWN 1 999 40.5161 0.0000 40.5161 0.0000 - PIN B3 UNKNOWN 1 999 41.7740 0.0000 41.7740 0.0000 - PIN C UNKNOWN 1 999 33.4745 0.0000 33.4745 0.0000 -GATE AO332x1_ASAP7_75t_R 2.5661 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2); - PIN A1 UNKNOWN 1 999 41.9112 0.0000 41.9112 0.0000 - PIN A2 UNKNOWN 1 999 43.6367 0.0000 43.6367 0.0000 - PIN A3 UNKNOWN 1 999 44.9756 0.0000 44.9756 0.0000 - PIN B1 UNKNOWN 1 999 39.1943 0.0000 39.1943 0.0000 - PIN B2 UNKNOWN 1 999 40.8302 0.0000 40.8302 0.0000 - PIN B3 UNKNOWN 1 999 42.0827 0.0000 42.0827 0.0000 - PIN C1 UNKNOWN 1 999 35.0870 0.0000 35.0870 0.0000 - PIN C2 UNKNOWN 1 999 35.9285 0.0000 35.9285 0.0000 -GATE AO332x2_ASAP7_75t_R 2.7994 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2); - PIN A1 UNKNOWN 1 999 45.4652 0.0000 45.4652 0.0000 - PIN A2 UNKNOWN 1 999 47.1967 0.0000 47.1967 0.0000 - PIN A3 UNKNOWN 1 999 48.6259 0.0000 48.6259 0.0000 - PIN B1 UNKNOWN 1 999 42.5522 0.0000 42.5522 0.0000 - PIN B2 UNKNOWN 1 999 44.2205 0.0000 44.2205 0.0000 - PIN B3 UNKNOWN 1 999 45.4874 0.0000 45.4874 0.0000 - PIN C1 UNKNOWN 1 999 37.7959 0.0000 37.7959 0.0000 - PIN C2 UNKNOWN 1 999 38.7076 0.0000 38.7076 0.0000 -GATE AO333x1_ASAP7_75t_R 2.7994 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2 * C3); - PIN A1 UNKNOWN 1 999 45.6651 0.0000 45.6651 0.0000 - PIN A2 UNKNOWN 1 999 47.4100 0.0000 47.4100 0.0000 - PIN A3 UNKNOWN 1 999 48.7014 0.0000 48.7014 0.0000 - PIN B1 UNKNOWN 1 999 45.7997 0.0000 45.7997 0.0000 - PIN B2 UNKNOWN 1 999 44.5876 0.0000 44.5876 0.0000 - PIN B3 UNKNOWN 1 999 42.8826 0.0000 42.8826 0.0000 - PIN C1 UNKNOWN 1 999 38.4822 0.0000 38.4822 0.0000 - PIN C2 UNKNOWN 1 999 40.0002 0.0000 40.0002 0.0000 - PIN C3 UNKNOWN 1 999 41.2259 0.0000 41.2259 0.0000 -GATE AO333x2_ASAP7_75t_R 3.0326 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2 * C3); - PIN A1 UNKNOWN 1 999 49.3562 0.0000 49.3562 0.0000 - PIN A2 UNKNOWN 1 999 51.0049 0.0000 51.0049 0.0000 - PIN A3 UNKNOWN 1 999 52.5661 0.0000 52.5661 0.0000 - PIN B1 UNKNOWN 1 999 49.2761 0.0000 49.2761 0.0000 - PIN B2 UNKNOWN 1 999 48.1111 0.0000 48.1111 0.0000 - PIN B3 UNKNOWN 1 999 46.4147 0.0000 46.4147 0.0000 - PIN C1 UNKNOWN 1 999 42.0234 0.0000 42.0234 0.0000 - PIN C2 UNKNOWN 1 999 43.5051 0.0000 43.5051 0.0000 - PIN C3 UNKNOWN 1 999 44.7198 0.0000 44.7198 0.0000 -GATE AO33x2_ASAP7_75t_R 2.3328 Y=(A1 * A2 * A3) + (B1 * B2 * B3); - PIN A1 UNKNOWN 1 999 38.0945 0.0000 38.0945 0.0000 - PIN A2 UNKNOWN 1 999 39.7738 0.0000 39.7738 0.0000 - PIN A3 UNKNOWN 1 999 41.4411 0.0000 41.4411 0.0000 - PIN B1 UNKNOWN 1 999 35.8310 0.0000 35.8310 0.0000 - PIN B2 UNKNOWN 1 999 37.5402 0.0000 37.5402 0.0000 - PIN B3 UNKNOWN 1 999 38.9733 0.0000 38.9733 0.0000 -GATE AOI211x1_ASAP7_75t_R 2.7994 Y=(!A1 * !B * !C) + (!A2 * !B * !C); - PIN A1 UNKNOWN 1 999 27.5833 0.0000 27.5833 0.0000 - PIN A2 UNKNOWN 1 999 27.1037 0.0000 27.1037 0.0000 - PIN B UNKNOWN 1 999 22.1753 0.0000 22.1753 0.0000 - PIN C UNKNOWN 1 999 20.8199 0.0000 20.8199 0.0000 -GATE AOI211xp5_ASAP7_75t_R 1.3997 Y=(!A1 * !B * !C) + (!A2 * !B * !C); - PIN A1 UNKNOWN 1 999 24.4120 0.0000 24.4120 0.0000 - PIN A2 UNKNOWN 1 999 24.0293 0.0000 24.0293 0.0000 - PIN B UNKNOWN 1 999 23.6927 0.0000 23.6927 0.0000 - PIN C UNKNOWN 1 999 24.3634 0.0000 24.3634 0.0000 -GATE AOI21x1_ASAP7_75t_R 1.8662 Y=(!A1 * !B) + (!A2 * !B); - PIN A1 UNKNOWN 1 999 20.3378 0.0000 20.3378 0.0000 - PIN A2 UNKNOWN 1 999 20.1436 0.0000 20.1436 0.0000 - PIN B UNKNOWN 1 999 18.2979 0.0000 18.2979 0.0000 -GATE AOI21xp33_ASAP7_75t_R 1.1664 Y=(!A1 * !B) + (!A2 * !B); - PIN A1 UNKNOWN 1 999 21.7620 0.0000 21.7620 0.0000 - PIN A2 UNKNOWN 1 999 22.3544 0.0000 22.3544 0.0000 - PIN B UNKNOWN 1 999 18.5354 0.0000 18.5354 0.0000 -GATE AOI21xp5_ASAP7_75t_R 1.1664 Y=(!A1 * !B) + (!A2 * !B); - PIN A1 UNKNOWN 1 999 20.0433 0.0000 20.0433 0.0000 - PIN A2 UNKNOWN 1 999 20.6059 0.0000 20.6059 0.0000 - PIN B UNKNOWN 1 999 17.8021 0.0000 17.8021 0.0000 -GATE AOI221x1_ASAP7_75t_R 3.2659 Y=(!A1 * !B1 * !C) + (!A1 * !B2 * !C) + (!A2 * !B1 * !C) + (!A2 * !B2 * !C); - PIN A1 UNKNOWN 1 999 28.7164 0.0000 28.7164 0.0000 - PIN A2 UNKNOWN 1 999 29.1455 0.0000 29.1455 0.0000 - PIN B1 UNKNOWN 1 999 26.5349 0.0000 26.5349 0.0000 - PIN B2 UNKNOWN 1 999 26.8581 0.0000 26.8581 0.0000 - PIN C UNKNOWN 1 999 22.5187 0.0000 22.5187 0.0000 -GATE AOI221xp5_ASAP7_75t_R 1.6330 Y=(!A1 * !B1 * !C) + (!A1 * !B2 * !C) + (!A2 * !B1 * !C) + (!A2 * !B2 * !C); - PIN A1 UNKNOWN 1 999 28.3507 0.0000 28.3507 0.0000 - PIN A2 UNKNOWN 1 999 28.9405 0.0000 28.9405 0.0000 - PIN B1 UNKNOWN 1 999 24.9257 0.0000 24.9257 0.0000 - PIN B2 UNKNOWN 1 999 25.0095 0.0000 25.0095 0.0000 - PIN C UNKNOWN 1 999 24.2542 0.0000 24.2542 0.0000 -GATE AOI222xp33_ASAP7_75t_R 2.3328 Y=(!A1 * !B1 * !C1) + (!A1 * !B1 * !C2) + (!A1 * !B2 * !C1) + (!A1 * !B2 * !C2) + (!A2 * !B1 * !C1) + (!A2 * !B1 * !C2) + (!A2 * !B2 * !C1) + (!A2 * !B2 * !C2); - PIN A1 UNKNOWN 1 999 26.3092 0.0000 26.3092 0.0000 - PIN A2 UNKNOWN 1 999 26.3745 0.0000 26.3745 0.0000 - PIN B1 UNKNOWN 1 999 29.1081 0.0000 29.1081 0.0000 - PIN B2 UNKNOWN 1 999 29.7151 0.0000 29.7151 0.0000 - PIN C1 UNKNOWN 1 999 31.0260 0.0000 31.0260 0.0000 - PIN C2 UNKNOWN 1 999 31.6820 0.0000 31.6820 0.0000 -GATE AOI22x1_ASAP7_75t_R 2.3328 Y=(!A1 * !B1) + (!A1 * !B2) + (!A2 * !B1) + (!A2 * !B2); - PIN A1 UNKNOWN 1 999 20.9658 0.0000 20.9658 0.0000 - PIN A2 UNKNOWN 1 999 22.4144 0.0000 22.4144 0.0000 - PIN B1 UNKNOWN 1 999 22.6021 0.0000 22.6021 0.0000 - PIN B2 UNKNOWN 1 999 22.7477 0.0000 22.7477 0.0000 -GATE AOI22xp33_ASAP7_75t_R 1.3997 Y=(!A1 * !B1) + (!A1 * !B2) + (!A2 * !B1) + (!A2 * !B2); - PIN A1 UNKNOWN 1 999 24.4190 0.0000 24.4190 0.0000 - PIN A2 UNKNOWN 1 999 23.5780 0.0000 23.5780 0.0000 - PIN B1 UNKNOWN 1 999 22.4314 0.0000 22.4314 0.0000 - PIN B2 UNKNOWN 1 999 21.5261 0.0000 21.5261 0.0000 -GATE AOI22xp5_ASAP7_75t_R 1.3997 Y=(!A1 * !B1) + (!A1 * !B2) + (!A2 * !B1) + (!A2 * !B2); - PIN A1 UNKNOWN 1 999 22.7360 0.0000 22.7360 0.0000 - PIN A2 UNKNOWN 1 999 21.8707 0.0000 21.8707 0.0000 - PIN B1 UNKNOWN 1 999 20.8268 0.0000 20.8268 0.0000 - PIN B2 UNKNOWN 1 999 20.1199 0.0000 20.1199 0.0000 -GATE AOI311xp33_ASAP7_75t_R 1.6330 Y=(!A1 * !B * !C) + (!A2 * !B * !C) + (!A3 * !B * !C); - PIN A1 UNKNOWN 1 999 27.6515 0.0000 27.6515 0.0000 - PIN A2 UNKNOWN 1 999 29.1485 0.0000 29.1485 0.0000 - PIN A3 UNKNOWN 1 999 30.3590 0.0000 30.3590 0.0000 - PIN B UNKNOWN 1 999 23.6947 0.0000 23.6947 0.0000 - PIN C UNKNOWN 1 999 22.4924 0.0000 22.4924 0.0000 -GATE AOI31xp33_ASAP7_75t_R 1.3997 Y=(!A1 * !B) + (!A2 * !B) + (!A3 * !B); - PIN A1 UNKNOWN 1 999 23.1242 0.0000 23.1242 0.0000 - PIN A2 UNKNOWN 1 999 24.6464 0.0000 24.6464 0.0000 - PIN A3 UNKNOWN 1 999 25.5094 0.0000 25.5094 0.0000 - PIN B UNKNOWN 1 999 19.8480 0.0000 19.8480 0.0000 -GATE AOI31xp67_ASAP7_75t_R 3.0326 Y=(!A1 * !B) + (!A2 * !B) + (!A3 * !B); - PIN A1 UNKNOWN 1 999 23.5725 0.0000 23.5725 0.0000 - PIN A2 UNKNOWN 1 999 24.5769 0.0000 24.5769 0.0000 - PIN A3 UNKNOWN 1 999 25.0377 0.0000 25.0377 0.0000 - PIN B UNKNOWN 1 999 21.5246 0.0000 21.5246 0.0000 -GATE AOI321xp33_ASAP7_75t_R 1.8662 Y=(!A1 * !B1 * !C) + (!A1 * !B2 * !C) + (!A2 * !B1 * !C) + (!A2 * !B2 * !C) + (!A3 * !B1 * !C) + (!A3 * !B2 * !C); - PIN A1 UNKNOWN 1 999 30.5530 0.0000 30.5530 0.0000 - PIN A2 UNKNOWN 1 999 31.9637 0.0000 31.9637 0.0000 - PIN A3 UNKNOWN 1 999 33.3832 0.0000 33.3832 0.0000 - PIN B1 UNKNOWN 1 999 26.9378 0.0000 26.9378 0.0000 - PIN B2 UNKNOWN 1 999 26.8998 0.0000 26.8998 0.0000 - PIN C UNKNOWN 1 999 26.1563 0.0000 26.1563 0.0000 -GATE AOI322xp5_ASAP7_75t_R 2.0995 Y=(!A1 * !B1 * !C1) + (!A1 * !B1 * !C2) + (!A1 * !B2 * !C1) + (!A1 * !B2 * !C2) + (!A2 * !B1 * !C1) + (!A2 * !B1 * !C2) + (!A2 * !B2 * !C1) + (!A2 * !B2 * !C2) + (!A3 * !B1 * !C1) + (!A3 * !B1 * !C2) + (!A3 * !B2 * !C1) + (!A3 * !B2 * !C2); - PIN A1 UNKNOWN 1 999 31.3157 0.0000 31.3157 0.0000 - PIN A2 UNKNOWN 1 999 32.7280 0.0000 32.7280 0.0000 - PIN A3 UNKNOWN 1 999 33.7204 0.0000 33.7204 0.0000 - PIN B1 UNKNOWN 1 999 34.0043 0.0000 34.0043 0.0000 - PIN B2 UNKNOWN 1 999 34.5082 0.0000 34.5082 0.0000 - PIN C1 UNKNOWN 1 999 27.8468 0.0000 27.8468 0.0000 - PIN C2 UNKNOWN 1 999 27.9378 0.0000 27.9378 0.0000 -GATE AOI32xp33_ASAP7_75t_R 1.6330 Y=(!A1 * !B1) + (!A1 * !B2) + (!A2 * !B1) + (!A2 * !B2) + (!A3 * !B1) + (!A3 * !B2); - PIN A1 UNKNOWN 1 999 26.6974 0.0000 26.6974 0.0000 - PIN A2 UNKNOWN 1 999 28.0681 0.0000 28.0681 0.0000 - PIN A3 UNKNOWN 1 999 28.7664 0.0000 28.7664 0.0000 - PIN B1 UNKNOWN 1 999 24.4050 0.0000 24.4050 0.0000 - PIN B2 UNKNOWN 1 999 24.4106 0.0000 24.4106 0.0000 -GATE AOI331xp33_ASAP7_75t_R 2.0995 Y=(!A1 * !B1 * !C1) + (!A1 * !B2 * !C1) + (!A1 * !B3 * !C1) + (!A2 * !B1 * !C1) + (!A2 * !B2 * !C1) + (!A2 * !B3 * !C1) + (!A3 * !B1 * !C1) + (!A3 * !B2 * !C1) + (!A3 * !B3 * !C1); - PIN A1 UNKNOWN 1 999 33.8423 0.0000 33.8423 0.0000 - PIN A2 UNKNOWN 1 999 35.4715 0.0000 35.4715 0.0000 - PIN A3 UNKNOWN 1 999 36.3016 0.0000 36.3016 0.0000 - PIN B1 UNKNOWN 1 999 30.9136 0.0000 30.9136 0.0000 - PIN B2 UNKNOWN 1 999 32.4830 0.0000 32.4830 0.0000 - PIN B3 UNKNOWN 1 999 33.4943 0.0000 33.4943 0.0000 - PIN C1 UNKNOWN 1 999 25.1390 0.0000 25.1390 0.0000 -GATE AOI332xp33_ASAP7_75t_R 2.3328 Y=(!A1 * !B1 * !C1) + (!A1 * !B1 * !C2) + (!A1 * !B2 * !C1) + (!A1 * !B2 * !C2) + (!A1 * !B3 * !C1) + (!A1 * !B3 * !C2) + (!A2 * !B1 * !C1) + (!A2 * !B1 * !C2) + (!A2 * !B2 * !C1) + (!A2 * !B2 * !C2) + (!A2 * !B3 * !C1) + (!A2 * !B3 * !C2) + (!A3 * !B1 * !C1) + (!A3 * !B1 * !C2) + (!A3 * !B2 * !C1) + (!A3 * !B2 * !C2) + (!A3 * !B3 * !C1) + (!A3 * !B3 * !C2); - PIN A1 UNKNOWN 1 999 36.6656 0.0000 36.6656 0.0000 - PIN A2 UNKNOWN 1 999 38.1405 0.0000 38.1405 0.0000 - PIN A3 UNKNOWN 1 999 39.0505 0.0000 39.0505 0.0000 - PIN B1 UNKNOWN 1 999 33.9276 0.0000 33.9276 0.0000 - PIN B2 UNKNOWN 1 999 35.2603 0.0000 35.2603 0.0000 - PIN B3 UNKNOWN 1 999 36.2523 0.0000 36.2523 0.0000 - PIN C1 UNKNOWN 1 999 29.0623 0.0000 29.0623 0.0000 - PIN C2 UNKNOWN 1 999 29.4142 0.0000 29.4142 0.0000 -GATE AOI333xp33_ASAP7_75t_R 2.5661 Y=(!A1 * !B1 * !C1) + (!A1 * !B1 * !C2) + (!A1 * !B1 * !C3) + (!A1 * !B2 * !C1) + (!A1 * !B2 * !C2) + (!A1 * !B2 * !C3) + (!A1 * !B3 * !C1) + (!A1 * !B3 * !C2) + (!A1 * !B3 * !C3) + (!A2 * !B1 * !C1) + (!A2 * !B1 * !C2) + (!A2 * !B1 * !C3) + (!A2 * !B2 * !C1) + (!A2 * !B2 * !C2) + (!A2 * !B2 * !C3) + (!A2 * !B3 * !C1) + (!A2 * !B3 * !C2) + (!A2 * !B3 * !C3) + (!A3 * !B1 * !C1) + (!A3 * !B1 * !C2) + (!A3 * !B1 * !C3) + (!A3 * !B2 * !C1) + (!A3 * !B2 * !C2) + (!A3 * !B2 * !C3) + (!A3 * !B3 * !C1) + (!A3 * !B3 * !C2) + (!A3 * !B3 * !C3); - PIN A1 UNKNOWN 1 999 32.5175 0.0000 32.5175 0.0000 - PIN A2 UNKNOWN 1 999 33.5737 0.0000 33.5737 0.0000 - PIN A3 UNKNOWN 1 999 34.4295 0.0000 34.4295 0.0000 - PIN B1 UNKNOWN 1 999 37.0963 0.0000 37.0963 0.0000 - PIN B2 UNKNOWN 1 999 38.4216 0.0000 38.4216 0.0000 - PIN B3 UNKNOWN 1 999 39.3145 0.0000 39.3145 0.0000 - PIN C1 UNKNOWN 1 999 39.9401 0.0000 39.9401 0.0000 - PIN C2 UNKNOWN 1 999 41.4013 0.0000 41.4013 0.0000 - PIN C3 UNKNOWN 1 999 42.2797 0.0000 42.2797 0.0000 -GATE AOI33xp33_ASAP7_75t_R 1.8662 Y=(!A1 * !B1) + (!A1 * !B2) + (!A1 * !B3) + (!A2 * !B1) + (!A2 * !B2) + (!A2 * !B3) + (!A3 * !B1) + (!A3 * !B2) + (!A3 * !B3); - PIN A1 UNKNOWN 1 999 31.7493 0.0000 31.7493 0.0000 - PIN A2 UNKNOWN 1 999 31.3721 0.0000 31.3721 0.0000 - PIN A3 UNKNOWN 1 999 28.6076 0.0000 28.6076 0.0000 - PIN B1 UNKNOWN 1 999 26.5234 0.0000 26.5234 0.0000 - PIN B2 UNKNOWN 1 999 27.5478 0.0000 27.5478 0.0000 - PIN B3 UNKNOWN 1 999 28.7180 0.0000 28.7180 0.0000 -GATE OA211x2_ASAP7_75t_R 1.8662 Y=(A1 * B * C) + (A2 * B * C); - PIN A1 UNKNOWN 1 999 31.5268 0.0000 31.5268 0.0000 - PIN A2 UNKNOWN 1 999 30.7304 0.0000 30.7304 0.0000 - PIN B UNKNOWN 1 999 34.5427 0.0000 34.5427 0.0000 - PIN C UNKNOWN 1 999 35.8279 0.0000 35.8279 0.0000 -GATE OA21x2_ASAP7_75t_R 1.6330 Y=(A1 * B) + (A2 * B); - PIN A1 UNKNOWN 1 999 26.5914 0.0000 26.5914 0.0000 - PIN A2 UNKNOWN 1 999 25.5869 0.0000 25.5869 0.0000 - PIN B UNKNOWN 1 999 23.7870 0.0000 23.7870 0.0000 -GATE OA221x2_ASAP7_75t_R 3.7325 Y=(A1 * B1 * C) + (A1 * B2 * C) + (A2 * B1 * C) + (A2 * B2 * C); - PIN A1 UNKNOWN 1 999 37.9363 0.0000 37.9363 0.0000 - PIN A2 UNKNOWN 1 999 37.3581 0.0000 37.3581 0.0000 - PIN B1 UNKNOWN 1 999 34.8316 0.0000 34.8316 0.0000 - PIN B2 UNKNOWN 1 999 34.3386 0.0000 34.3386 0.0000 - PIN C UNKNOWN 1 999 29.2617 0.0000 29.2617 0.0000 -GATE OA222x2_ASAP7_75t_R 2.7994 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2); - PIN A1 UNKNOWN 1 999 33.0500 0.0000 33.0500 0.0000 - PIN A2 UNKNOWN 1 999 33.9842 0.0000 33.9842 0.0000 - PIN B1 UNKNOWN 1 999 35.2099 0.0000 35.2099 0.0000 - PIN B2 UNKNOWN 1 999 36.3064 0.0000 36.3064 0.0000 - PIN C1 UNKNOWN 1 999 36.7895 0.0000 36.7895 0.0000 - PIN C2 UNKNOWN 1 999 38.1628 0.0000 38.1628 0.0000 -GATE OA22x2_ASAP7_75t_R 2.3328 Y=(A1 * B1) + (A1 * B2) + (A2 * B1) + (A2 * B2); - PIN A1 UNKNOWN 1 999 28.7847 0.0000 28.7847 0.0000 - PIN A2 UNKNOWN 1 999 28.8324 0.0000 28.8324 0.0000 - PIN B1 UNKNOWN 1 999 30.0784 0.0000 30.0784 0.0000 - PIN B2 UNKNOWN 1 999 29.2033 0.0000 29.2033 0.0000 -GATE OA31x2_ASAP7_75t_R 3.4992 Y=(A1 * B1) + (A2 * B1) + (A3 * B1); - PIN A1 UNKNOWN 1 999 32.4068 0.0000 32.4068 0.0000 - PIN A2 UNKNOWN 1 999 30.9748 0.0000 30.9748 0.0000 - PIN A3 UNKNOWN 1 999 28.8417 0.0000 28.8417 0.0000 - PIN B1 UNKNOWN 1 999 32.3499 0.0000 32.3499 0.0000 -GATE OA331x1_ASAP7_75t_R 2.3328 Y=(A1 * B1 * C1) + (A1 * B2 * C1) + (A1 * B3 * C1) + (A2 * B1 * C1) + (A2 * B2 * C1) + (A2 * B3 * C1) + (A3 * B1 * C1) + (A3 * B2 * C1) + (A3 * B3 * C1); - PIN A1 UNKNOWN 1 999 37.9397 0.0000 37.9397 0.0000 - PIN A2 UNKNOWN 1 999 39.7721 0.0000 39.7721 0.0000 - PIN A3 UNKNOWN 1 999 40.9833 0.0000 40.9833 0.0000 - PIN B1 UNKNOWN 1 999 34.7807 0.0000 34.7807 0.0000 - PIN B2 UNKNOWN 1 999 36.6360 0.0000 36.6360 0.0000 - PIN B3 UNKNOWN 1 999 37.6864 0.0000 37.6864 0.0000 - PIN C1 UNKNOWN 1 999 28.1757 0.0000 28.1757 0.0000 -GATE OA331x2_ASAP7_75t_R 2.5661 Y=(A1 * B1 * C1) + (A1 * B2 * C1) + (A1 * B3 * C1) + (A2 * B1 * C1) + (A2 * B2 * C1) + (A2 * B3 * C1) + (A3 * B1 * C1) + (A3 * B2 * C1) + (A3 * B3 * C1); - PIN A1 UNKNOWN 1 999 41.5586 0.0000 41.5586 0.0000 - PIN A2 UNKNOWN 1 999 43.4020 0.0000 43.4020 0.0000 - PIN A3 UNKNOWN 1 999 44.6306 0.0000 44.6306 0.0000 - PIN B1 UNKNOWN 1 999 38.3982 0.0000 38.3982 0.0000 - PIN B2 UNKNOWN 1 999 40.2407 0.0000 40.2407 0.0000 - PIN B3 UNKNOWN 1 999 41.3228 0.0000 41.3228 0.0000 - PIN C1 UNKNOWN 1 999 29.4799 0.0000 29.4799 0.0000 -GATE OA332x1_ASAP7_75t_R 2.5661 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B3 * C1) + (A3 * B3 * C2); - PIN A1 UNKNOWN 1 999 41.8624 0.0000 41.8624 0.0000 - PIN A2 UNKNOWN 1 999 43.7616 0.0000 43.7616 0.0000 - PIN A3 UNKNOWN 1 999 44.9420 0.0000 44.9420 0.0000 - PIN B1 UNKNOWN 1 999 38.7759 0.0000 38.7759 0.0000 - PIN B2 UNKNOWN 1 999 40.6185 0.0000 40.6185 0.0000 - PIN B3 UNKNOWN 1 999 41.6688 0.0000 41.6688 0.0000 - PIN C1 UNKNOWN 1 999 33.1104 0.0000 33.1104 0.0000 - PIN C2 UNKNOWN 1 999 33.9550 0.0000 33.9550 0.0000 -GATE OA332x2_ASAP7_75t_R 2.7994 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B3 * C1) + (A3 * B3 * C2); - PIN A1 UNKNOWN 1 999 45.3493 0.0000 45.3493 0.0000 - PIN A2 UNKNOWN 1 999 47.2266 0.0000 47.2266 0.0000 - PIN A3 UNKNOWN 1 999 48.4539 0.0000 48.4539 0.0000 - PIN B1 UNKNOWN 1 999 42.2342 0.0000 42.2342 0.0000 - PIN B2 UNKNOWN 1 999 44.0579 0.0000 44.0579 0.0000 - PIN B3 UNKNOWN 1 999 45.0987 0.0000 45.0987 0.0000 - PIN C1 UNKNOWN 1 999 35.4277 0.0000 35.4277 0.0000 - PIN C2 UNKNOWN 1 999 36.3470 0.0000 36.3470 0.0000 -GATE OA333x1_ASAP7_75t_R 2.7994 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B1 * C3) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B2 * C3) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A1 * B3 * C3) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B1 * C3) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B2 * C3) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A2 * B3 * C3) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B1 * C3) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B2 * C3) + (A3 * B3 * C1) + (A3 * B3 * C2) + (A3 * B3 * C3); - PIN A1 UNKNOWN 1 999 37.9488 0.0000 37.9488 0.0000 - PIN A2 UNKNOWN 1 999 39.6017 0.0000 39.6017 0.0000 - PIN A3 UNKNOWN 1 999 40.5538 0.0000 40.5538 0.0000 - PIN B1 UNKNOWN 1 999 42.1256 0.0000 42.1256 0.0000 - PIN B2 UNKNOWN 1 999 43.9350 0.0000 43.9350 0.0000 - PIN B3 UNKNOWN 1 999 44.9994 0.0000 44.9994 0.0000 - PIN C1 UNKNOWN 1 999 45.3408 0.0000 45.3408 0.0000 - PIN C2 UNKNOWN 1 999 47.2274 0.0000 47.2274 0.0000 - PIN C3 UNKNOWN 1 999 48.3746 0.0000 48.3746 0.0000 -GATE OA333x2_ASAP7_75t_R 3.0326 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B1 * C3) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B2 * C3) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A1 * B3 * C3) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B1 * C3) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B2 * C3) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A2 * B3 * C3) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B1 * C3) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B2 * C3) + (A3 * B3 * C1) + (A3 * B3 * C2) + (A3 * B3 * C3); - PIN A1 UNKNOWN 1 999 41.3594 0.0000 41.3594 0.0000 - PIN A2 UNKNOWN 1 999 43.0218 0.0000 43.0218 0.0000 - PIN A3 UNKNOWN 1 999 44.0548 0.0000 44.0548 0.0000 - PIN B1 UNKNOWN 1 999 45.5096 0.0000 45.5096 0.0000 - PIN B2 UNKNOWN 1 999 47.3711 0.0000 47.3711 0.0000 - PIN B3 UNKNOWN 1 999 48.4053 0.0000 48.4053 0.0000 - PIN C1 UNKNOWN 1 999 48.7137 0.0000 48.7137 0.0000 - PIN C2 UNKNOWN 1 999 50.5777 0.0000 50.5777 0.0000 - PIN C3 UNKNOWN 1 999 51.7534 0.0000 51.7534 0.0000 -GATE OA33x2_ASAP7_75t_R 2.3328 Y=(A1 * B1) + (A1 * B2) + (A1 * B3) + (A2 * B1) + (A2 * B2) + (A2 * B3) + (A3 * B1) + (A3 * B2) + (A3 * B3); - PIN A1 UNKNOWN 1 999 39.3025 0.0000 39.3025 0.0000 - PIN A2 UNKNOWN 1 999 38.1811 0.0000 38.1811 0.0000 - PIN A3 UNKNOWN 1 999 36.6392 0.0000 36.6392 0.0000 - PIN B1 UNKNOWN 1 999 35.6492 0.0000 35.6492 0.0000 - PIN B2 UNKNOWN 1 999 34.7109 0.0000 34.7109 0.0000 - PIN B3 UNKNOWN 1 999 33.1481 0.0000 33.1481 0.0000 -GATE OAI211xp5_ASAP7_75t_R 1.3997 Y=(!A1 * !A2) + (!B) + (!C); - PIN A1 UNKNOWN 1 999 24.1866 0.0000 24.1866 0.0000 - PIN A2 UNKNOWN 1 999 23.8111 0.0000 23.8111 0.0000 - PIN B UNKNOWN 1 999 20.9067 0.0000 20.9067 0.0000 - PIN C UNKNOWN 1 999 21.5628 0.0000 21.5628 0.0000 -GATE OAI21x1_ASAP7_75t_R 1.8662 Y=(!A1 * !A2) + (!B); - PIN A1 UNKNOWN 1 999 20.3965 0.0000 20.3965 0.0000 - PIN A2 UNKNOWN 1 999 20.3124 0.0000 20.3124 0.0000 - PIN B UNKNOWN 1 999 16.4463 0.0000 16.4463 0.0000 -GATE OAI21xp33_ASAP7_75t_R 1.1664 Y=(!A1 * !A2) + (!B); - PIN A1 UNKNOWN 1 999 22.2016 0.0000 22.2016 0.0000 - PIN A2 UNKNOWN 1 999 20.6670 0.0000 20.6670 0.0000 - PIN B UNKNOWN 1 999 18.0192 0.0000 18.0192 0.0000 -GATE OAI21xp5_ASAP7_75t_R 1.1664 Y=(!A1 * !A2) + (!B); - PIN A1 UNKNOWN 1 999 20.4631 0.0000 20.4631 0.0000 - PIN A2 UNKNOWN 1 999 19.2118 0.0000 19.2118 0.0000 - PIN B UNKNOWN 1 999 16.9646 0.0000 16.9646 0.0000 -GATE OAI221xp5_ASAP7_75t_R 1.6330 Y=(!A1 * !A2) + (!B1 * !B2) + (!C); - PIN A1 UNKNOWN 1 999 28.0441 0.0000 28.0441 0.0000 - PIN A2 UNKNOWN 1 999 28.6927 0.0000 28.6927 0.0000 - PIN B1 UNKNOWN 1 999 24.4623 0.0000 24.4623 0.0000 - PIN B2 UNKNOWN 1 999 24.5766 0.0000 24.5766 0.0000 - PIN C UNKNOWN 1 999 21.2355 0.0000 21.2355 0.0000 -GATE OAI222xp33_ASAP7_75t_R 2.3328 Y=(!A1 * !A2) + (!B1 * !B2) + (!C1 * !C2); - PIN A1 UNKNOWN 1 999 25.3466 0.0000 25.3466 0.0000 - PIN A2 UNKNOWN 1 999 25.8659 0.0000 25.8659 0.0000 - PIN B1 UNKNOWN 1 999 27.4197 0.0000 27.4197 0.0000 - PIN B2 UNKNOWN 1 999 28.2463 0.0000 28.2463 0.0000 - PIN C1 UNKNOWN 1 999 29.0122 0.0000 29.0122 0.0000 - PIN C2 UNKNOWN 1 999 30.1245 0.0000 30.1245 0.0000 -GATE OAI22x1_ASAP7_75t_R 2.3328 Y=(!A1 * !A2) + (!B1 * !B2); - PIN A1 UNKNOWN 1 999 20.8538 0.0000 20.8538 0.0000 - PIN A2 UNKNOWN 1 999 22.2433 0.0000 22.2433 0.0000 - PIN B1 UNKNOWN 1 999 22.4894 0.0000 22.4894 0.0000 - PIN B2 UNKNOWN 1 999 22.6038 0.0000 22.6038 0.0000 -GATE OAI22xp33_ASAP7_75t_R 1.3997 Y=(!A1 * !A2) + (!B1 * !B2); - PIN A1 UNKNOWN 1 999 22.4384 0.0000 22.4384 0.0000 - PIN A2 UNKNOWN 1 999 21.5446 0.0000 21.5446 0.0000 - PIN B1 UNKNOWN 1 999 24.0900 0.0000 24.0900 0.0000 - PIN B2 UNKNOWN 1 999 23.1760 0.0000 23.1760 0.0000 -GATE OAI22xp5_ASAP7_75t_R 1.3997 Y=(!A1 * !A2) + (!B1 * !B2); - PIN A1 UNKNOWN 1 999 20.7807 0.0000 20.7807 0.0000 - PIN A2 UNKNOWN 1 999 20.3689 0.0000 20.3689 0.0000 - PIN B1 UNKNOWN 1 999 22.5232 0.0000 22.5232 0.0000 - PIN B2 UNKNOWN 1 999 21.7160 0.0000 21.7160 0.0000 -GATE OAI311xp33_ASAP7_75t_R 1.6330 Y=(!A1 * !A2 * !A3) + (!B1) + (!C1); - PIN A1 UNKNOWN 1 999 27.9715 0.0000 27.9715 0.0000 - PIN A2 UNKNOWN 1 999 29.5503 0.0000 29.5503 0.0000 - PIN A3 UNKNOWN 1 999 30.5497 0.0000 30.5497 0.0000 - PIN B1 UNKNOWN 1 999 20.5802 0.0000 20.5802 0.0000 - PIN C1 UNKNOWN 1 999 19.7250 0.0000 19.7250 0.0000 -GATE OAI31xp33_ASAP7_75t_R 1.3997 Y=(!A1 * !A2 * !A3) + (!B); - PIN A1 UNKNOWN 1 999 23.3370 0.0000 23.3370 0.0000 - PIN A2 UNKNOWN 1 999 25.1394 0.0000 25.1394 0.0000 - PIN A3 UNKNOWN 1 999 25.6988 0.0000 25.6988 0.0000 - PIN B UNKNOWN 1 999 17.7683 0.0000 17.7683 0.0000 -GATE OAI31xp67_ASAP7_75t_R 3.0326 Y=(!A1 * !A2 * !A3) + (!B); - PIN A1 UNKNOWN 1 999 24.4255 0.0000 24.4255 0.0000 - PIN A2 UNKNOWN 1 999 25.7216 0.0000 25.7216 0.0000 - PIN A3 UNKNOWN 1 999 26.1336 0.0000 26.1336 0.0000 - PIN B UNKNOWN 1 999 20.6773 0.0000 20.6773 0.0000 -GATE OAI321xp33_ASAP7_75t_R 1.8662 Y=(!A1 * !A2 * !A3) + (!B1 * !B2) + (!C); - PIN A1 UNKNOWN 1 999 30.7142 0.0000 30.7142 0.0000 - PIN A2 UNKNOWN 1 999 32.2682 0.0000 32.2682 0.0000 - PIN A3 UNKNOWN 1 999 33.4347 0.0000 33.4347 0.0000 - PIN B1 UNKNOWN 1 999 25.9652 0.0000 25.9652 0.0000 - PIN B2 UNKNOWN 1 999 25.8792 0.0000 25.8792 0.0000 - PIN C UNKNOWN 1 999 22.5699 0.0000 22.5699 0.0000 -GATE OAI322xp33_ASAP7_75t_R 2.0995 Y=(!A1 * !A2 * !A3) + (!B1 * !B2) + (!C1 * !C2); - PIN A1 UNKNOWN 1 999 31.1062 0.0000 31.1062 0.0000 - PIN A2 UNKNOWN 1 999 32.6071 0.0000 32.6071 0.0000 - PIN A3 UNKNOWN 1 999 33.4016 0.0000 33.4016 0.0000 - PIN B1 UNKNOWN 1 999 33.4031 0.0000 33.4031 0.0000 - PIN B2 UNKNOWN 1 999 33.9982 0.0000 33.9982 0.0000 - PIN C1 UNKNOWN 1 999 26.8449 0.0000 26.8449 0.0000 - PIN C2 UNKNOWN 1 999 26.9542 0.0000 26.9542 0.0000 -GATE OAI32xp33_ASAP7_75t_R 1.6330 Y=(!A1 * !A2 * !A3) + (!B1 * !B2); - PIN A1 UNKNOWN 1 999 27.4556 0.0000 27.4556 0.0000 - PIN A2 UNKNOWN 1 999 28.4434 0.0000 28.4434 0.0000 - PIN A3 UNKNOWN 1 999 28.9808 0.0000 28.9808 0.0000 - PIN B1 UNKNOWN 1 999 23.9376 0.0000 23.9376 0.0000 - PIN B2 UNKNOWN 1 999 23.8352 0.0000 23.8352 0.0000 -GATE OAI331xp33_ASAP7_75t_R 2.0995 Y=(!A1 * !A2 * !A3) + (!B1 * !B2 * !B3) + (!C1); - PIN A1 UNKNOWN 1 999 32.8334 0.0000 32.8334 0.0000 - PIN A2 UNKNOWN 1 999 34.5669 0.0000 34.5669 0.0000 - PIN A3 UNKNOWN 1 999 35.2724 0.0000 35.2724 0.0000 - PIN B1 UNKNOWN 1 999 29.6932 0.0000 29.6932 0.0000 - PIN B2 UNKNOWN 1 999 31.1907 0.0000 31.1907 0.0000 - PIN B3 UNKNOWN 1 999 31.9764 0.0000 31.9764 0.0000 - PIN C1 UNKNOWN 1 999 20.8270 0.0000 20.8270 0.0000 -GATE OAI332xp33_ASAP7_75t_R 2.3328 Y=(!A1 * !A2 * !A3) + (!B1 * !B2 * !B3) + (!C1 * !C2); - PIN A1 UNKNOWN 1 999 36.4886 0.0000 36.4886 0.0000 - PIN A2 UNKNOWN 1 999 38.1234 0.0000 38.1234 0.0000 - PIN A3 UNKNOWN 1 999 38.8631 0.0000 38.8631 0.0000 - PIN B1 UNKNOWN 1 999 33.0484 0.0000 33.0484 0.0000 - PIN B2 UNKNOWN 1 999 34.5795 0.0000 34.5795 0.0000 - PIN B3 UNKNOWN 1 999 35.3867 0.0000 35.3867 0.0000 - PIN C1 UNKNOWN 1 999 26.2622 0.0000 26.2622 0.0000 - PIN C2 UNKNOWN 1 999 26.7308 0.0000 26.7308 0.0000 -GATE OAI333xp33_ASAP7_75t_R 2.5661 Y=(!A1 * !A2 * !A3) + (!B1 * !B2 * !B3) + (!C1 * !C2 * !C3); - PIN A1 UNKNOWN 1 999 31.3617 0.0000 31.3617 0.0000 - PIN A2 UNKNOWN 1 999 32.5746 0.0000 32.5746 0.0000 - PIN A3 UNKNOWN 1 999 33.2850 0.0000 33.2850 0.0000 - PIN B1 UNKNOWN 1 999 35.9483 0.0000 35.9483 0.0000 - PIN B2 UNKNOWN 1 999 37.4814 0.0000 37.4814 0.0000 - PIN B3 UNKNOWN 1 999 38.3077 0.0000 38.3077 0.0000 - PIN C1 UNKNOWN 1 999 39.3902 0.0000 39.3902 0.0000 - PIN C2 UNKNOWN 1 999 41.1017 0.0000 41.1017 0.0000 - PIN C3 UNKNOWN 1 999 41.8136 0.0000 41.8136 0.0000 -GATE OAI33xp33_ASAP7_75t_R 2.5661 Y=(!A1 * !A2 * !A3) + (!B1 * !B2 * !B3) + (!C1 * !C2 * !C3); - PIN A1 UNKNOWN 1 999 31.9292 0.0000 31.9292 0.0000 - PIN A2 UNKNOWN 1 999 33.4001 0.0000 33.4001 0.0000 - PIN A3 UNKNOWN 1 999 34.7683 0.0000 34.7683 0.0000 - PIN B1 UNKNOWN 1 999 36.7996 0.0000 36.7996 0.0000 - PIN B2 UNKNOWN 1 999 38.2845 0.0000 38.2845 0.0000 - PIN B3 UNKNOWN 1 999 39.1019 0.0000 39.1019 0.0000 - PIN C1 UNKNOWN 1 999 40.3044 0.0000 40.3044 0.0000 - PIN C2 UNKNOWN 1 999 42.0109 0.0000 42.0109 0.0000 - PIN C3 UNKNOWN 1 999 42.8091 0.0000 42.8091 0.0000 -GATE BUFx10_ASAP7_75t_R 3.2659 Y=A; - PIN A UNKNOWN 1 999 23.7346 0.0000 23.7346 0.0000 -GATE BUFx12_ASAP7_75t_R 3.7325 Y=A; - PIN A UNKNOWN 1 999 26.9264 0.0000 26.9264 0.0000 -GATE BUFx12f_ASAP7_75t_R 4.1990 Y=A; - PIN A UNKNOWN 1 999 20.6218 0.0000 20.6218 0.0000 -GATE BUFx16f_ASAP7_75t_R 5.1322 Y=A; - PIN A UNKNOWN 1 999 22.0386 0.0000 22.0386 0.0000 -GATE BUFx24_ASAP7_75t_R 6.9984 Y=A; - PIN A UNKNOWN 1 999 27.0963 0.0000 27.0963 0.0000 -GATE BUFx2_ASAP7_75t_R 1.1664 Y=A; - PIN A UNKNOWN 1 999 20.8623 0.0000 20.8623 0.0000 -GATE BUFx3_ASAP7_75t_R 1.3997 Y=A; - PIN A UNKNOWN 1 999 20.5810 0.0000 20.5810 0.0000 -GATE BUFx4_ASAP7_75t_R 1.6330 Y=A; - PIN A UNKNOWN 1 999 27.0633 0.0000 27.0633 0.0000 -GATE BUFx4f_ASAP7_75t_R 1.8662 Y=A; - PIN A UNKNOWN 1 999 20.2430 0.0000 20.2430 0.0000 -GATE BUFx5_ASAP7_75t_R 1.8662 Y=A; - PIN A UNKNOWN 1 999 24.1332 0.0000 24.1332 0.0000 -GATE BUFx6f_ASAP7_75t_R 2.3328 Y=A; - PIN A UNKNOWN 1 999 20.0941 0.0000 20.0941 0.0000 -GATE BUFx8_ASAP7_75t_R 2.7994 Y=A; - PIN A UNKNOWN 1 999 26.3942 0.0000 26.3942 0.0000 -GATE HB1xp67_ASAP7_75t_R 0.9331 Y=A; - PIN A UNKNOWN 1 999 21.6674 0.0000 21.6674 0.0000 -GATE HB2xp67_ASAP7_75t_R 1.1664 Y=A; - PIN A UNKNOWN 1 999 34.5541 0.0000 34.5541 0.0000 -GATE HB3xp67_ASAP7_75t_R 1.3997 Y=A; - PIN A UNKNOWN 1 999 49.7342 0.0000 49.7342 0.0000 -GATE HB4xp67_ASAP7_75t_R 1.6330 Y=A; - PIN A UNKNOWN 1 999 67.1074 0.0000 67.1074 0.0000 -GATE INVx11_ASAP7_75t_R 3.0326 Y=!A; - PIN A UNKNOWN 1 999 12.8049 0.0000 12.8049 0.0000 -GATE INVx13_ASAP7_75t_R 3.4992 Y=!A; - PIN A UNKNOWN 1 999 13.6244 0.0000 13.6244 0.0000 -GATE INVx1_ASAP7_75t_R 0.6998 Y=!A; - PIN A UNKNOWN 1 999 13.0491 0.0000 13.0491 0.0000 -GATE INVx2_ASAP7_75t_R 0.9331 Y=!A; - PIN A UNKNOWN 1 999 12.7595 0.0000 12.7595 0.0000 -GATE INVx3_ASAP7_75t_R 1.1664 Y=!A; - PIN A UNKNOWN 1 999 13.0042 0.0000 13.0042 0.0000 -GATE INVx4_ASAP7_75t_R 1.3997 Y=!A; - PIN A UNKNOWN 1 999 12.6618 0.0000 12.6618 0.0000 -GATE INVx5_ASAP7_75t_R 1.6330 Y=!A; - PIN A UNKNOWN 1 999 12.4555 0.0000 12.4555 0.0000 -GATE INVx6_ASAP7_75t_R 1.8662 Y=!A; - PIN A UNKNOWN 1 999 13.0261 0.0000 13.0261 0.0000 -GATE INVx8_ASAP7_75t_R 2.3328 Y=!A; - PIN A UNKNOWN 1 999 12.9819 0.0000 12.9819 0.0000 -GATE INVxp33_ASAP7_75t_R 0.6998 Y=!A; - PIN A UNKNOWN 1 999 15.9392 0.0000 15.9392 0.0000 -GATE INVxp67_ASAP7_75t_R 0.6998 Y=!A; - PIN A UNKNOWN 1 999 13.2832 0.0000 13.2832 0.0000 -GATE AND2x2_ASAP7_75t_R 1.3997 Y=(A * B); - PIN A UNKNOWN 1 999 23.4285 0.0000 23.4285 0.0000 - PIN B UNKNOWN 1 999 22.6585 0.0000 22.6585 0.0000 -GATE AND2x4_ASAP7_75t_R 2.3328 Y=(A * B); - PIN A UNKNOWN 1 999 22.8361 0.0000 22.8361 0.0000 - PIN B UNKNOWN 1 999 22.0122 0.0000 22.0122 0.0000 -GATE AND2x6_ASAP7_75t_R 2.7994 Y=(A * B); - PIN A UNKNOWN 1 999 26.5693 0.0000 26.5693 0.0000 - PIN B UNKNOWN 1 999 25.8500 0.0000 25.8500 0.0000 -GATE AND3x1_ASAP7_75t_R 1.3997 Y=(A * B * C); - PIN A UNKNOWN 1 999 23.0131 0.0000 23.0131 0.0000 - PIN B UNKNOWN 1 999 23.7909 0.0000 23.7909 0.0000 - PIN C UNKNOWN 1 999 24.6762 0.0000 24.6762 0.0000 -GATE AND3x2_ASAP7_75t_R 1.6330 Y=(A * B * C); - PIN A UNKNOWN 1 999 24.4895 0.0000 24.4895 0.0000 - PIN B UNKNOWN 1 999 25.5332 0.0000 25.5332 0.0000 - PIN C UNKNOWN 1 999 26.0929 0.0000 26.0929 0.0000 -GATE AND3x4_ASAP7_75t_R 3.7325 Y=(A * B * C); - PIN A UNKNOWN 1 999 26.4547 0.0000 26.4547 0.0000 - PIN B UNKNOWN 1 999 28.1612 0.0000 28.1612 0.0000 - PIN C UNKNOWN 1 999 29.0216 0.0000 29.0216 0.0000 -GATE AND4x1_ASAP7_75t_R 1.6330 Y=(A * B * C * D); - PIN A UNKNOWN 1 999 25.1444 0.0000 25.1444 0.0000 - PIN B UNKNOWN 1 999 26.2071 0.0000 26.2071 0.0000 - PIN C UNKNOWN 1 999 27.1412 0.0000 27.1412 0.0000 - PIN D UNKNOWN 1 999 27.5738 0.0000 27.5738 0.0000 -GATE AND4x2_ASAP7_75t_R 3.7325 Y=(A * B * C * D); - PIN A UNKNOWN 1 999 24.8628 0.0000 24.8628 0.0000 - PIN B UNKNOWN 1 999 27.0941 0.0000 27.0941 0.0000 - PIN C UNKNOWN 1 999 28.7068 0.0000 28.7068 0.0000 - PIN D UNKNOWN 1 999 29.8062 0.0000 29.8062 0.0000 -GATE AND5x1_ASAP7_75t_R 1.8662 Y=(A * B * C * D * E); - PIN A UNKNOWN 1 999 26.8696 0.0000 26.8696 0.0000 - PIN B UNKNOWN 1 999 28.7886 0.0000 28.7886 0.0000 - PIN C UNKNOWN 1 999 30.3144 0.0000 30.3144 0.0000 - PIN D UNKNOWN 1 999 31.4161 0.0000 31.4161 0.0000 - PIN E UNKNOWN 1 999 32.0003 0.0000 32.0003 0.0000 -GATE AND5x2_ASAP7_75t_R 4.6656 Y=(A * B * C * D * E); - PIN A UNKNOWN 1 999 26.9154 0.0000 26.9154 0.0000 - PIN B UNKNOWN 1 999 29.6033 0.0000 29.6033 0.0000 - PIN C UNKNOWN 1 999 31.6062 0.0000 31.6062 0.0000 - PIN D UNKNOWN 1 999 33.0665 0.0000 33.0665 0.0000 - PIN E UNKNOWN 1 999 33.6335 0.0000 33.6335 0.0000 -GATE FAx1_ASAP7_75t_R 3.2659 CON=(!A * !B) + (!A * !CI) + (!B * !CI); - PIN A UNKNOWN 1 999 20.5752 0.0000 20.5752 0.0000 - PIN B UNKNOWN 1 999 31.9832 0.0000 31.9832 0.0000 - PIN CI UNKNOWN 1 999 29.4733 0.0000 29.4733 0.0000 -GATE FAx1_ASAP7_75t_R 3.2659 SN=(A * B * !CI) + (A * !B * CI) + (!A * B * CI) + (!A * !B * !CI); - PIN A UNKNOWN 1 999 51.1655 0.0000 51.1655 0.0000 - PIN B UNKNOWN 1 999 53.3921 0.0000 53.3921 0.0000 - PIN CI UNKNOWN 1 999 42.1122 0.0000 42.1122 0.0000 -GATE HAxp5_ASAP7_75t_R 2.0995 CON=(!A) + (!B); - PIN A UNKNOWN 1 999 17.2818 0.0000 17.2818 0.0000 - PIN B UNKNOWN 1 999 16.4310 0.0000 16.4310 0.0000 -GATE HAxp5_ASAP7_75t_R 2.0995 SN=(A * B) + (!A * !B); - PIN A UNKNOWN 1 999 33.7884 0.0000 33.7884 0.0000 - PIN B UNKNOWN 1 999 34.3867 0.0000 34.3867 0.0000 -GATE MAJIxp5_ASAP7_75t_R 1.6330 Y=(!A * !B) + (!A * !C) + (!B * !C); - PIN A UNKNOWN 1 999 20.5752 0.0000 20.5752 0.0000 - PIN B UNKNOWN 1 999 31.9832 0.0000 31.9832 0.0000 - PIN C UNKNOWN 1 999 29.4733 0.0000 29.4733 0.0000 -GATE MAJx2_ASAP7_75t_R 2.0995 Y=(A * B) + (A * C) + (B * C); - PIN A UNKNOWN 1 999 27.5217 0.0000 27.5217 0.0000 - PIN B UNKNOWN 1 999 32.0316 0.0000 32.0316 0.0000 - PIN C UNKNOWN 1 999 30.3317 0.0000 30.3317 0.0000 -GATE MAJx3_ASAP7_75t_R 2.3328 Y=(A * B) + (A * C) + (B * C); - PIN A UNKNOWN 1 999 31.9400 0.0000 31.9400 0.0000 - PIN B UNKNOWN 1 999 35.5763 0.0000 35.5763 0.0000 - PIN C UNKNOWN 1 999 34.0039 0.0000 34.0039 0.0000 -GATE NAND2x1_ASAP7_75t_R 1.3997 Y=(!A) + (!B); - PIN A UNKNOWN 1 999 17.2818 0.0000 17.2818 0.0000 - PIN B UNKNOWN 1 999 16.4310 0.0000 16.4310 0.0000 -GATE NAND2x1p5_ASAP7_75t_R 1.8662 Y=(!A) + (!B); - PIN A UNKNOWN 1 999 16.7173 0.0000 16.7173 0.0000 - PIN B UNKNOWN 1 999 16.2309 0.0000 16.2309 0.0000 -GATE NAND2x2_ASAP7_75t_R 2.3328 Y=(!A) + (!B); - PIN A UNKNOWN 1 999 17.7506 0.0000 17.7506 0.0000 - PIN B UNKNOWN 1 999 16.7947 0.0000 16.7947 0.0000 -GATE NAND2xp33_ASAP7_75t_R 0.9331 Y=(!A) + (!B); - PIN A UNKNOWN 1 999 19.0206 0.0000 19.0206 0.0000 - PIN B UNKNOWN 1 999 18.3371 0.0000 18.3371 0.0000 -GATE NAND2xp5_ASAP7_75t_R 0.9331 Y=(!A) + (!B); - PIN A UNKNOWN 1 999 16.4821 0.0000 16.4821 0.0000 - PIN B UNKNOWN 1 999 16.1465 0.0000 16.1465 0.0000 -GATE NAND2xp67_ASAP7_75t_R 1.3997 Y=(!A) + (!B); - PIN A UNKNOWN 1 999 18.7946 0.0000 18.7946 0.0000 - PIN B UNKNOWN 1 999 17.7403 0.0000 17.7403 0.0000 -GATE NAND3x1_ASAP7_75t_R 2.5661 Y=(!A) + (!B) + (!C); - PIN A UNKNOWN 1 999 19.5216 0.0000 19.5216 0.0000 - PIN B UNKNOWN 1 999 21.1557 0.0000 21.1557 0.0000 - PIN C UNKNOWN 1 999 22.2487 0.0000 22.2487 0.0000 -GATE NAND3x2_ASAP7_75t_R 4.6656 Y=(!A) + (!B) + (!C); - PIN A UNKNOWN 1 999 20.0659 0.0000 20.0659 0.0000 - PIN B UNKNOWN 1 999 22.0058 0.0000 22.0058 0.0000 - PIN C UNKNOWN 1 999 22.4437 0.0000 22.4437 0.0000 -GATE NAND3xp33_ASAP7_75t_R 1.1664 Y=(!A) + (!B) + (!C); - PIN A UNKNOWN 1 999 17.6324 0.0000 17.6324 0.0000 - PIN B UNKNOWN 1 999 18.7783 0.0000 18.7783 0.0000 - PIN C UNKNOWN 1 999 19.4500 0.0000 19.4500 0.0000 -GATE NAND4xp25_ASAP7_75t_R 1.3997 Y=(!A) + (!B) + (!C) + (!D); - PIN A UNKNOWN 1 999 20.5653 0.0000 20.5653 0.0000 - PIN B UNKNOWN 1 999 21.7910 0.0000 21.7910 0.0000 - PIN C UNKNOWN 1 999 22.5956 0.0000 22.5956 0.0000 - PIN D UNKNOWN 1 999 23.7206 0.0000 23.7206 0.0000 -GATE NAND4xp75_ASAP7_75t_R 3.2659 Y=(!A) + (!B) + (!C) + (!D); - PIN A UNKNOWN 1 999 19.6574 0.0000 19.6574 0.0000 - PIN B UNKNOWN 1 999 21.3528 0.0000 21.3528 0.0000 - PIN C UNKNOWN 1 999 22.4654 0.0000 22.4654 0.0000 - PIN D UNKNOWN 1 999 23.0202 0.0000 23.0202 0.0000 -GATE NAND5xp2_ASAP7_75t_R 1.6330 Y=(!A) + (!B) + (!C) + (!D) + (!E); - PIN A UNKNOWN 1 999 22.9512 0.0000 22.9512 0.0000 - PIN B UNKNOWN 1 999 24.5139 0.0000 24.5139 0.0000 - PIN C UNKNOWN 1 999 25.8834 0.0000 25.8834 0.0000 - PIN D UNKNOWN 1 999 26.7699 0.0000 26.7699 0.0000 - PIN E UNKNOWN 1 999 26.9239 0.0000 26.9239 0.0000 -GATE NOR2x1_ASAP7_75t_R 1.3997 Y=(!A * !B); - PIN A UNKNOWN 1 999 17.8658 0.0000 17.8658 0.0000 - PIN B UNKNOWN 1 999 16.9477 0.0000 16.9477 0.0000 -GATE NOR2x1p5_ASAP7_75t_R 1.8662 Y=(!A * !B); - PIN A UNKNOWN 1 999 17.4451 0.0000 17.4451 0.0000 - PIN B UNKNOWN 1 999 16.7847 0.0000 16.7847 0.0000 -GATE NOR2x2_ASAP7_75t_R 2.3328 Y=(!A * !B); - PIN A UNKNOWN 1 999 18.3871 0.0000 18.3871 0.0000 - PIN B UNKNOWN 1 999 17.3911 0.0000 17.3911 0.0000 -GATE NOR2xp33_ASAP7_75t_R 0.9331 Y=(!A * !B); - PIN A UNKNOWN 1 999 19.8626 0.0000 19.8626 0.0000 - PIN B UNKNOWN 1 999 19.0654 0.0000 19.0654 0.0000 -GATE NOR2xp67_ASAP7_75t_R 1.3997 Y=(!A * !B); - PIN A UNKNOWN 1 999 19.5555 0.0000 19.5555 0.0000 - PIN B UNKNOWN 1 999 18.5713 0.0000 18.5713 0.0000 -GATE NOR3x1_ASAP7_75t_R 2.5661 Y=(!A * !B * !C); - PIN A UNKNOWN 1 999 20.7519 0.0000 20.7519 0.0000 - PIN B UNKNOWN 1 999 22.5147 0.0000 22.5147 0.0000 - PIN C UNKNOWN 1 999 23.4624 0.0000 23.4624 0.0000 -GATE NOR3x2_ASAP7_75t_R 4.6656 Y=(!A * !B * !C); - PIN A UNKNOWN 1 999 21.1050 0.0000 21.1050 0.0000 - PIN B UNKNOWN 1 999 23.1885 0.0000 23.1885 0.0000 - PIN C UNKNOWN 1 999 23.3743 0.0000 23.3743 0.0000 -GATE NOR3xp33_ASAP7_75t_R 1.1664 Y=(!A * !B * !C); - PIN A UNKNOWN 1 999 19.7626 0.0000 19.7626 0.0000 - PIN B UNKNOWN 1 999 21.1593 0.0000 21.1593 0.0000 - PIN C UNKNOWN 1 999 21.8007 0.0000 21.8007 0.0000 -GATE NOR4xp25_ASAP7_75t_R 1.3997 Y=(!A * !B * !C * !D); - PIN A UNKNOWN 1 999 23.6800 0.0000 23.6800 0.0000 - PIN B UNKNOWN 1 999 25.5491 0.0000 25.5491 0.0000 - PIN C UNKNOWN 1 999 26.6370 0.0000 26.6370 0.0000 - PIN D UNKNOWN 1 999 27.9878 0.0000 27.9878 0.0000 -GATE NOR4xp75_ASAP7_75t_R 3.2659 Y=(!A * !B * !C * !D); - PIN A UNKNOWN 1 999 22.3434 0.0000 22.3434 0.0000 - PIN B UNKNOWN 1 999 24.9455 0.0000 24.9455 0.0000 - PIN C UNKNOWN 1 999 26.4009 0.0000 26.4009 0.0000 - PIN D UNKNOWN 1 999 26.9393 0.0000 26.9393 0.0000 -GATE NOR5xp2_ASAP7_75t_R 1.6330 Y=(!A * !B * !C * !D * !E); - PIN A UNKNOWN 1 999 27.4405 0.0000 27.4405 0.0000 - PIN B UNKNOWN 1 999 29.9119 0.0000 29.9119 0.0000 - PIN C UNKNOWN 1 999 31.7757 0.0000 31.7757 0.0000 - PIN D UNKNOWN 1 999 32.9150 0.0000 32.9150 0.0000 - PIN E UNKNOWN 1 999 33.0742 0.0000 33.0742 0.0000 -GATE OR2x2_ASAP7_75t_R 1.3997 Y=(A) + (B); - PIN A UNKNOWN 1 999 24.6168 0.0000 24.6168 0.0000 - PIN B UNKNOWN 1 999 23.3461 0.0000 23.3461 0.0000 -GATE OR2x4_ASAP7_75t_R 1.8662 Y=(A) + (B); - PIN A UNKNOWN 1 999 31.7095 0.0000 31.7095 0.0000 - PIN B UNKNOWN 1 999 30.5181 0.0000 30.5181 0.0000 -GATE OR2x6_ASAP7_75t_R 2.7994 Y=(A) + (B); - PIN A UNKNOWN 1 999 27.3007 0.0000 27.3007 0.0000 - PIN B UNKNOWN 1 999 27.9469 0.0000 27.9469 0.0000 -GATE OR3x1_ASAP7_75t_R 1.3997 Y=(A) + (B) + (C); - PIN A UNKNOWN 1 999 24.4665 0.0000 24.4665 0.0000 - PIN B UNKNOWN 1 999 25.8222 0.0000 25.8222 0.0000 - PIN C UNKNOWN 1 999 26.8770 0.0000 26.8770 0.0000 -GATE OR3x2_ASAP7_75t_R 1.6330 Y=(A) + (B) + (C); - PIN A UNKNOWN 1 999 26.9542 0.0000 26.9542 0.0000 - PIN B UNKNOWN 1 999 28.4530 0.0000 28.4530 0.0000 - PIN C UNKNOWN 1 999 29.1805 0.0000 29.1805 0.0000 -GATE OR3x4_ASAP7_75t_R 2.0995 Y=(A) + (B) + (C); - PIN A UNKNOWN 1 999 35.2525 0.0000 35.2525 0.0000 - PIN B UNKNOWN 1 999 36.6124 0.0000 36.6124 0.0000 - PIN C UNKNOWN 1 999 37.3776 0.0000 37.3776 0.0000 -GATE OR4x1_ASAP7_75t_R 1.6330 Y=(A) + (B) + (C) + (D); - PIN A UNKNOWN 1 999 27.8472 0.0000 27.8472 0.0000 - PIN B UNKNOWN 1 999 29.8113 0.0000 29.8113 0.0000 - PIN C UNKNOWN 1 999 31.2251 0.0000 31.2251 0.0000 - PIN D UNKNOWN 1 999 31.5071 0.0000 31.5071 0.0000 -GATE OR4x2_ASAP7_75t_R 1.8662 Y=(A) + (B) + (C) + (D); - PIN A UNKNOWN 1 999 30.7838 0.0000 30.7838 0.0000 - PIN B UNKNOWN 1 999 32.7147 0.0000 32.7147 0.0000 - PIN C UNKNOWN 1 999 34.1287 0.0000 34.1287 0.0000 - PIN D UNKNOWN 1 999 34.5058 0.0000 34.5058 0.0000 -GATE OR5x1_ASAP7_75t_R 1.8662 Y=(A) + (B) + (C) + (D) + (E); - PIN A UNKNOWN 1 999 29.4929 0.0000 29.4929 0.0000 - PIN B UNKNOWN 1 999 32.3882 0.0000 32.3882 0.0000 - PIN C UNKNOWN 1 999 34.4001 0.0000 34.4001 0.0000 - PIN D UNKNOWN 1 999 35.6764 0.0000 35.6764 0.0000 - PIN E UNKNOWN 1 999 36.2645 0.0000 36.2645 0.0000 -GATE OR5x2_ASAP7_75t_R 2.0995 Y=(A) + (B) + (C) + (D) + (E); - PIN A UNKNOWN 1 999 34.6635 0.0000 34.6635 0.0000 - PIN B UNKNOWN 1 999 37.4261 0.0000 37.4261 0.0000 - PIN C UNKNOWN 1 999 39.5220 0.0000 39.5220 0.0000 - PIN D UNKNOWN 1 999 40.8865 0.0000 40.8865 0.0000 - PIN E UNKNOWN 1 999 41.4528 0.0000 41.4528 0.0000 -GATE XNOR2x1_ASAP7_75t_R 2.7994 Y=(A * B) + (!A * !B); - PIN A UNKNOWN 1 999 33.7884 0.0000 33.7884 0.0000 - PIN B UNKNOWN 1 999 34.3867 0.0000 34.3867 0.0000 -GATE XNOR2x2_ASAP7_75t_R 2.5661 Y=(A * B) + (!A * !B); - PIN A UNKNOWN 1 999 37.2348 0.0000 37.2348 0.0000 - PIN B UNKNOWN 1 999 36.5068 0.0000 36.5068 0.0000 -GATE XNOR2xp5_ASAP7_75t_R 2.0995 Y=(A * B) + (!A * !B); - PIN A UNKNOWN 1 999 36.6799 0.0000 36.6799 0.0000 - PIN B UNKNOWN 1 999 35.0031 0.0000 35.0031 0.0000 -GATE XOR2x1_ASAP7_75t_R 2.7994 Y=(A * !B) + (!A * B); - PIN A UNKNOWN 1 999 35.3919 0.0000 35.3919 0.0000 - PIN B UNKNOWN 1 999 34.8087 0.0000 34.8087 0.0000 -GATE XOR2x2_ASAP7_75t_R 2.5661 Y=(A * !B) + (!A * B); - PIN A UNKNOWN 1 999 34.4037 0.0000 34.4037 0.0000 - PIN B UNKNOWN 1 999 35.5506 0.0000 35.5506 0.0000 -GATE XOR2xp5_ASAP7_75t_R 2.0995 Y=(A * !B) + (!A * B); - PIN A UNKNOWN 1 999 37.1135 0.0000 37.1135 0.0000 - PIN B UNKNOWN 1 999 35.7273 0.0000 35.7273 0.0000 -GATE XNOR3x1_ASAP7_75t_R 3.2659 SN=(A * B * !CI) + (A * !B * CI) + (!A * B * CI) + (!A * !B * !CI); - PIN A UNKNOWN 1 999 51.1655 0.0000 51.1655 0.0000 - PIN B UNKNOWN 1 999 53.3921 0.0000 53.3921 0.0000 - PIN CI UNKNOWN 1 999 42.1122 0.0000 42.1122 0.0000 +# The genlib library "asap7.genlib" with 47 gates +GATE _const0_ 0.00 z=CONST0; +GATE _const1_ 0.00 z=CONST1; +GATE BUFx2_ASAP7_75t_R 0.07 Y=A; + PIN A UNKNOWN 1 999 19.78 0.00 19.78 0.00 +GATE INVx1_ASAP7_75t_R 0.04 Y=!A; + PIN A UNKNOWN 1 999 14.77 0.00 14.77 0.00 +GATE AND2x2_ASAP7_75t_R 0.09 Y=(A * B); + PIN A UNKNOWN 1 999 22.69 0.00 22.69 0.00 + PIN B UNKNOWN 1 999 22.73 0.00 22.73 0.00 +GATE OR2x4_ASAP7_75t_R 0.12 Y=(A) + (B); + PIN A UNKNOWN 1 999 25.10 0.00 25.10 0.00 + PIN B UNKNOWN 1 999 25.04 0.00 25.04 0.00 +GATE NAND2x1_ASAP7_75t_R 0.09 Y=(!A) + (!B); + PIN A UNKNOWN 1 999 23.02 0.00 23.02 0.00 + PIN B UNKNOWN 1 999 22.15 0.00 22.15 0.00 +GATE NOR2x1_ASAP7_75t_R 0.09 Y=(!A * !B); + PIN A UNKNOWN 1 999 23.93 0.00 23.93 0.00 + PIN B UNKNOWN 1 999 23.19 0.00 23.19 0.00 +GATE XNOR2x2_ASAP7_75t_R 0.16 Y=(A * B) + (!A * !B); + PIN A UNKNOWN 1 999 36.92 0.00 36.92 0.00 + PIN B UNKNOWN 1 999 36.52 0.00 36.52 0.00 +GATE XOR2x2_ASAP7_75t_R 0.16 Y=(A * !B) + (!A * B); + PIN A UNKNOWN 1 999 35.91 0.00 35.91 0.00 + PIN B UNKNOWN 1 999 36.34 0.00 36.34 0.00 +GATE AND3x1_ASAP7_75t_R 0.09 Y=(A * B * C); + PIN A UNKNOWN 1 999 25.64 0.00 25.64 0.00 + PIN B UNKNOWN 1 999 26.02 0.00 26.02 0.00 + PIN C UNKNOWN 1 999 26.48 0.00 26.48 0.00 +GATE OR3x1_ASAP7_75t_R 0.09 Y=(A) + (B) + (C); + PIN A UNKNOWN 1 999 28.06 0.00 28.06 0.00 + PIN B UNKNOWN 1 999 28.54 0.00 28.54 0.00 + PIN C UNKNOWN 1 999 28.96 0.00 28.96 0.00 +GATE AO21x1_ASAP7_75t_R 0.09 Y=(A1 * A2) + (B); + PIN A1 UNKNOWN 1 999 21.72 0.00 21.72 0.00 + PIN A2 UNKNOWN 1 999 22.09 0.00 22.09 0.00 + PIN B UNKNOWN 1 999 21.12 0.00 21.12 0.00 +GATE OA21x2_ASAP7_75t_R 0.10 Y=(A1 * B) + (A2 * B); + PIN A1 UNKNOWN 1 999 21.62 0.00 21.62 0.00 + PIN A2 UNKNOWN 1 999 21.98 0.00 21.98 0.00 + PIN B UNKNOWN 1 999 19.74 0.00 19.74 0.00 +GATE MAJx2_ASAP7_75t_R 0.13 Y=(A * B) + (A * C) + (B * C); + PIN A UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN B UNKNOWN 1 999 33.12 0.00 33.12 0.00 + PIN C UNKNOWN 1 999 30.34 0.00 30.34 0.00 +GATE AOI21x1_ASAP7_75t_R 0.12 Y=(!A1 * !B) + (!A2 * !B); + PIN A1 UNKNOWN 1 999 22.04 0.00 22.04 0.00 + PIN A2 UNKNOWN 1 999 20.15 0.00 20.15 0.00 + PIN B UNKNOWN 1 999 21.67 0.00 21.67 0.00 +GATE OAI21x1_ASAP7_75t_R 0.12 Y=(!A1 * !A2) + (!B); + PIN A1 UNKNOWN 1 999 21.73 0.00 21.73 0.00 + PIN A2 UNKNOWN 1 999 19.93 0.00 19.93 0.00 + PIN B UNKNOWN 1 999 18.70 0.00 18.70 0.00 +GATE NAND3x1_ASAP7_75t_R 0.16 Y=(!A) + (!B) + (!C); + PIN A UNKNOWN 1 999 27.57 0.00 27.57 0.00 + PIN B UNKNOWN 1 999 28.89 0.00 28.89 0.00 + PIN C UNKNOWN 1 999 28.89 0.00 28.89 0.00 +GATE NOR3x1_ASAP7_75t_R 0.16 Y=(!A * !B * !C); + PIN A UNKNOWN 1 999 29.14 0.00 29.14 0.00 + PIN B UNKNOWN 1 999 30.56 0.00 30.56 0.00 + PIN C UNKNOWN 1 999 30.61 0.00 30.61 0.00 +GATE AO22x1_ASAP7_75t_R 0.13 Y=(A1 * A2) + (B1 * B2); + PIN A1 UNKNOWN 1 999 22.74 0.00 22.74 0.00 + PIN A2 UNKNOWN 1 999 23.52 0.00 23.52 0.00 + PIN B1 UNKNOWN 1 999 22.75 0.00 22.75 0.00 + PIN B2 UNKNOWN 1 999 23.43 0.00 23.43 0.00 +GATE OA211x2_ASAP7_75t_R 0.12 Y=(A1 * B * C) + (A2 * B * C); + PIN A1 UNKNOWN 1 999 25.27 0.00 25.27 0.00 + PIN A2 UNKNOWN 1 999 25.73 0.00 25.73 0.00 + PIN B UNKNOWN 1 999 26.70 0.00 26.70 0.00 + PIN C UNKNOWN 1 999 27.18 0.00 27.18 0.00 +GATE OR4x2_ASAP7_75t_R 0.12 Y=(A) + (B) + (C) + (D); + PIN A UNKNOWN 1 999 29.01 0.00 29.01 0.00 + PIN B UNKNOWN 1 999 29.94 0.00 29.94 0.00 + PIN C UNKNOWN 1 999 30.77 0.00 30.77 0.00 + PIN D UNKNOWN 1 999 31.34 0.00 31.34 0.00 +GATE OA22x2_ASAP7_75t_R 0.15 Y=(A1 * B1) + (A1 * B2) + (A2 * B1) + (A2 * B2); + PIN A1 UNKNOWN 1 999 22.39 0.00 22.39 0.00 + PIN A2 UNKNOWN 1 999 22.79 0.00 22.79 0.00 + PIN B1 UNKNOWN 1 999 22.22 0.00 22.22 0.00 + PIN B2 UNKNOWN 1 999 22.72 0.00 22.72 0.00 +GATE AND4x2_ASAP7_75t_R 0.12 Y=(A * B * C * D); + PIN A UNKNOWN 1 999 27.32 0.00 27.32 0.00 + PIN B UNKNOWN 1 999 27.69 0.00 27.69 0.00 + PIN C UNKNOWN 1 999 28.26 0.00 28.26 0.00 + PIN D UNKNOWN 1 999 28.69 0.00 28.69 0.00 +GATE OA31x2_ASAP7_75t_R 0.22 Y=(A1 * B1) + (A2 * B1) + (A3 * B1); + PIN A1 UNKNOWN 1 999 26.20 0.00 26.20 0.00 + PIN A2 UNKNOWN 1 999 25.63 0.00 25.63 0.00 + PIN A3 UNKNOWN 1 999 26.42 0.00 26.42 0.00 + PIN B1 UNKNOWN 1 999 24.88 0.00 24.88 0.00 +GATE AO211x2_ASAP7_75t_R 0.23 Y=(A1 * A2) + (B) + (C); + PIN A1 UNKNOWN 1 999 26.03 0.00 26.03 0.00 + PIN A2 UNKNOWN 1 999 25.03 0.00 25.03 0.00 + PIN B UNKNOWN 1 999 24.32 0.00 24.32 0.00 + PIN C UNKNOWN 1 999 23.78 0.00 23.78 0.00 +GATE AOI211x1_ASAP7_75t_R 0.17 Y=(!A1 * !B * !C) + (!A2 * !B * !C); + PIN A1 UNKNOWN 1 999 27.78 0.00 27.78 0.00 + PIN A2 UNKNOWN 1 999 30.08 0.00 30.08 0.00 + PIN B UNKNOWN 1 999 23.58 0.00 23.58 0.00 + PIN C UNKNOWN 1 999 24.33 0.00 24.33 0.00 +GATE AO31x2_ASAP7_75t_R 0.23 Y=(A1 * A2 * A3) + (B); + PIN A1 UNKNOWN 1 999 23.13 0.00 23.13 0.00 + PIN A2 UNKNOWN 1 999 22.95 0.00 22.95 0.00 + PIN A3 UNKNOWN 1 999 23.02 0.00 23.02 0.00 + PIN B UNKNOWN 1 999 24.20 0.00 24.20 0.00 +GATE OAI22x1_ASAP7_75t_R 0.15 Y=(!A1 * !A2) + (!B1 * !B2); + PIN A1 UNKNOWN 1 999 22.24 0.00 22.24 0.00 + PIN A2 UNKNOWN 1 999 24.01 0.00 24.01 0.00 + PIN B1 UNKNOWN 1 999 21.93 0.00 21.93 0.00 + PIN B2 UNKNOWN 1 999 23.64 0.00 23.64 0.00 +GATE AOI22x1_ASAP7_75t_R 0.15 Y=(!A1 * !B1) + (!A1 * !B2) + (!A2 * !B1) + (!A2 * !B2); + PIN A1 UNKNOWN 1 999 22.29 0.00 22.29 0.00 + PIN A2 UNKNOWN 1 999 24.04 0.00 24.04 0.00 + PIN B1 UNKNOWN 1 999 21.93 0.00 21.93 0.00 + PIN B2 UNKNOWN 1 999 23.75 0.00 23.75 0.00 +GATE AO32x1_ASAP7_75t_R 0.12 Y=(A1 * A2 * A3) + (B1 * B2); + PIN A1 UNKNOWN 1 999 26.50 0.00 26.50 0.00 + PIN A2 UNKNOWN 1 999 25.92 0.00 25.92 0.00 + PIN A3 UNKNOWN 1 999 26.83 0.00 26.83 0.00 + PIN B1 UNKNOWN 1 999 27.20 0.00 27.20 0.00 + PIN B2 UNKNOWN 1 999 26.24 0.00 26.24 0.00 +GATE AND5x1_ASAP7_75t_R 0.12 Y=(A * B * C * D * E); + PIN A UNKNOWN 1 999 31.93 0.00 31.93 0.00 + PIN B UNKNOWN 1 999 33.50 0.00 33.50 0.00 + PIN C UNKNOWN 1 999 35.20 0.00 35.20 0.00 + PIN D UNKNOWN 1 999 36.22 0.00 36.22 0.00 + PIN E UNKNOWN 1 999 36.85 0.00 36.85 0.00 +GATE OR5x1_ASAP7_75t_R 0.12 Y=(A) + (B) + (C) + (D) + (E); + PIN A UNKNOWN 1 999 31.79 0.00 31.79 0.00 + PIN B UNKNOWN 1 999 33.27 0.00 33.27 0.00 + PIN C UNKNOWN 1 999 34.82 0.00 34.82 0.00 + PIN D UNKNOWN 1 999 35.85 0.00 35.85 0.00 + PIN E UNKNOWN 1 999 36.64 0.00 36.64 0.00 +GATE AO221x2_ASAP7_75t_R 0.16 Y=(A1 * A2) + (B1 * B2) + (C); + PIN A1 UNKNOWN 1 999 28.18 0.00 28.18 0.00 + PIN A2 UNKNOWN 1 999 27.48 0.00 27.48 0.00 + PIN B1 UNKNOWN 1 999 27.04 0.00 27.04 0.00 + PIN B2 UNKNOWN 1 999 26.20 0.00 26.20 0.00 + PIN C UNKNOWN 1 999 25.49 0.00 25.49 0.00 +GATE AOI221x1_ASAP7_75t_R 0.20 Y=(!A1 * !B1 * !C) + (!A1 * !B2 * !C) + (!A2 * !B1 * !C) + (!A2 * !B2 * !C); + PIN A1 UNKNOWN 1 999 30.75 0.00 30.75 0.00 + PIN A2 UNKNOWN 1 999 29.28 0.00 29.28 0.00 + PIN B1 UNKNOWN 1 999 29.21 0.00 29.21 0.00 + PIN B2 UNKNOWN 1 999 28.00 0.00 28.00 0.00 + PIN C UNKNOWN 1 999 26.54 0.00 26.54 0.00 +GATE OA221x2_ASAP7_75t_R 0.23 Y=(A1 * B1 * C) + (A1 * B2 * C) + (A2 * B1 * C) + (A2 * B2 * C); + PIN A1 UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN A2 UNKNOWN 1 999 28.51 0.00 28.51 0.00 + PIN B1 UNKNOWN 1 999 25.80 0.00 25.80 0.00 + PIN B2 UNKNOWN 1 999 26.71 0.00 26.71 0.00 + PIN C UNKNOWN 1 999 24.80 0.00 24.80 0.00 +GATE AO33x2_ASAP7_75t_R 0.15 Y=(A1 * A2 * A3) + (B1 * B2 * B3); + PIN A1 UNKNOWN 1 999 29.44 0.00 29.44 0.00 + PIN A2 UNKNOWN 1 999 29.25 0.00 29.25 0.00 + PIN A3 UNKNOWN 1 999 29.95 0.00 29.95 0.00 + PIN B1 UNKNOWN 1 999 29.21 0.00 29.21 0.00 + PIN B2 UNKNOWN 1 999 29.06 0.00 29.06 0.00 + PIN B3 UNKNOWN 1 999 29.50 0.00 29.50 0.00 +GATE OA33x2_ASAP7_75t_R 0.15 Y=(A1 * B1) + (A1 * B2) + (A1 * B3) + (A2 * B1) + (A2 * B2) + (A2 * B3) + (A3 * B1) + (A3 * B2) + (A3 * B3); + PIN A1 UNKNOWN 1 999 28.59 0.00 28.59 0.00 + PIN A2 UNKNOWN 1 999 28.13 0.00 28.13 0.00 + PIN A3 UNKNOWN 1 999 28.11 0.00 28.11 0.00 + PIN B1 UNKNOWN 1 999 27.30 0.00 27.30 0.00 + PIN B2 UNKNOWN 1 999 27.03 0.00 27.03 0.00 + PIN B3 UNKNOWN 1 999 27.06 0.00 27.06 0.00 +GATE AO222x2_ASAP7_75t_R 0.17 Y=(A1 * A2) + (B1 * B2) + (C1 * C2); + PIN A1 UNKNOWN 1 999 29.78 0.00 29.78 0.00 + PIN A2 UNKNOWN 1 999 29.44 0.00 29.44 0.00 + PIN B1 UNKNOWN 1 999 29.19 0.00 29.19 0.00 + PIN B2 UNKNOWN 1 999 28.65 0.00 28.65 0.00 + PIN C1 UNKNOWN 1 999 28.55 0.00 28.55 0.00 + PIN C2 UNKNOWN 1 999 27.91 0.00 27.91 0.00 +GATE OA222x2_ASAP7_75t_R 0.17 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2); + PIN A1 UNKNOWN 1 999 27.68 0.00 27.68 0.00 + PIN A2 UNKNOWN 1 999 27.25 0.00 27.25 0.00 + PIN B1 UNKNOWN 1 999 28.04 0.00 28.04 0.00 + PIN B2 UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN C1 UNKNOWN 1 999 28.54 0.00 28.54 0.00 + PIN C2 UNKNOWN 1 999 28.48 0.00 28.48 0.00 +GATE AO322x2_ASAP7_75t_R 0.22 Y=(A1 * A2 * A3) + (B1 * B2) + (C1 * C2); + PIN A1 UNKNOWN 1 999 32.87 0.00 32.87 0.00 + PIN A2 UNKNOWN 1 999 32.74 0.00 32.74 0.00 + PIN A3 UNKNOWN 1 999 33.04 0.00 33.04 0.00 + PIN B1 UNKNOWN 1 999 32.91 0.00 32.91 0.00 + PIN B2 UNKNOWN 1 999 32.32 0.00 32.32 0.00 + PIN C1 UNKNOWN 1 999 31.81 0.00 31.81 0.00 + PIN C2 UNKNOWN 1 999 31.08 0.00 31.08 0.00 +GATE OA331x2_ASAP7_75t_R 0.16 Y=(A1 * B1 * C1) + (A1 * B2 * C1) + (A1 * B3 * C1) + (A2 * B1 * C1) + (A2 * B2 * C1) + (A2 * B3 * C1) + (A3 * B1 * C1) + (A3 * B2 * C1) + (A3 * B3 * C1); + PIN A1 UNKNOWN 1 999 31.21 0.00 31.21 0.00 + PIN A2 UNKNOWN 1 999 31.21 0.00 31.21 0.00 + PIN A3 UNKNOWN 1 999 31.81 0.00 31.81 0.00 + PIN B1 UNKNOWN 1 999 29.56 0.00 29.56 0.00 + PIN B2 UNKNOWN 1 999 29.45 0.00 29.45 0.00 + PIN B3 UNKNOWN 1 999 29.89 0.00 29.89 0.00 + PIN C1 UNKNOWN 1 999 26.00 0.00 26.00 0.00 +GATE AO331x2_ASAP7_75t_R 0.16 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C); + PIN A1 UNKNOWN 1 999 31.60 0.00 31.60 0.00 + PIN A2 UNKNOWN 1 999 31.34 0.00 31.34 0.00 + PIN A3 UNKNOWN 1 999 31.88 0.00 31.88 0.00 + PIN B1 UNKNOWN 1 999 30.25 0.00 30.25 0.00 + PIN B2 UNKNOWN 1 999 29.90 0.00 29.90 0.00 + PIN B3 UNKNOWN 1 999 30.37 0.00 30.37 0.00 + PIN C UNKNOWN 1 999 27.69 0.00 27.69 0.00 +GATE AO332x2_ASAP7_75t_R 0.17 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2); + PIN A1 UNKNOWN 1 999 33.87 0.00 33.87 0.00 + PIN A2 UNKNOWN 1 999 33.60 0.00 33.60 0.00 + PIN A3 UNKNOWN 1 999 34.20 0.00 34.20 0.00 + PIN B1 UNKNOWN 1 999 32.47 0.00 32.47 0.00 + PIN B2 UNKNOWN 1 999 32.13 0.00 32.13 0.00 + PIN B3 UNKNOWN 1 999 32.58 0.00 32.58 0.00 + PIN C1 UNKNOWN 1 999 30.49 0.00 30.49 0.00 + PIN C2 UNKNOWN 1 999 29.71 0.00 29.71 0.00 +GATE OA332x2_ASAP7_75t_R 0.17 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B3 * C1) + (A3 * B3 * C2); + PIN A1 UNKNOWN 1 999 33.50 0.00 33.50 0.00 + PIN A2 UNKNOWN 1 999 33.52 0.00 33.52 0.00 + PIN A3 UNKNOWN 1 999 34.10 0.00 34.10 0.00 + PIN B1 UNKNOWN 1 999 31.75 0.00 31.75 0.00 + PIN B2 UNKNOWN 1 999 31.65 0.00 31.65 0.00 + PIN B3 UNKNOWN 1 999 32.12 0.00 32.12 0.00 + PIN C1 UNKNOWN 1 999 29.21 0.00 29.21 0.00 + PIN C2 UNKNOWN 1 999 28.55 0.00 28.55 0.00 +GATE AO333x1_ASAP7_75t_R 0.17 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2 * C3); + PIN A1 UNKNOWN 1 999 36.79 0.00 36.79 0.00 + PIN A2 UNKNOWN 1 999 36.47 0.00 36.47 0.00 + PIN A3 UNKNOWN 1 999 37.11 0.00 37.11 0.00 + PIN B1 UNKNOWN 1 999 35.46 0.00 35.46 0.00 + PIN B2 UNKNOWN 1 999 34.94 0.00 34.94 0.00 + PIN B3 UNKNOWN 1 999 35.34 0.00 35.34 0.00 + PIN C1 UNKNOWN 1 999 33.77 0.00 33.77 0.00 + PIN C2 UNKNOWN 1 999 33.30 0.00 33.30 0.00 + PIN C3 UNKNOWN 1 999 33.75 0.00 33.75 0.00 +GATE OA333x2_ASAP7_75t_R 0.19 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B1 * C3) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B2 * C3) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A1 * B3 * C3) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B1 * C3) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B2 * C3) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A2 * B3 * C3) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B1 * C3) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B2 * C3) + (A3 * B3 * C1) + (A3 * B3 * C2) + (A3 * B3 * C3); + PIN A1 UNKNOWN 1 999 32.83 0.00 32.83 0.00 + PIN A2 UNKNOWN 1 999 32.59 0.00 32.59 0.00 + PIN A3 UNKNOWN 1 999 33.02 0.00 33.02 0.00 + PIN B1 UNKNOWN 1 999 34.33 0.00 34.33 0.00 + PIN B2 UNKNOWN 1 999 34.25 0.00 34.25 0.00 + PIN B3 UNKNOWN 1 999 34.72 0.00 34.72 0.00 + PIN C1 UNKNOWN 1 999 36.13 0.00 36.13 0.00 + PIN C2 UNKNOWN 1 999 36.14 0.00 36.14 0.00 + PIN C3 UNKNOWN 1 999 36.69 0.00 36.69 0.00 diff --git a/experiments/cell_libraries/multioutput.genlib b/experiments/cell_libraries/multioutput.genlib new file mode 100644 index 000000000..0b31e62c8 --- /dev/null +++ b/experiments/cell_libraries/multioutput.genlib @@ -0,0 +1,260 @@ +# The test genlib library "multioutput.genlib" with 50 gates +GATE _const0_ 0.00 z=CONST0; +GATE _const1_ 0.00 z=CONST1; +GATE BUFx2_ASAP7_75t_R 0.07 Y=A; + PIN A UNKNOWN 1 999 19.78 0.00 19.78 0.00 +GATE INVx1_ASAP7_75t_R 0.04 Y=!A; + PIN A UNKNOWN 1 999 14.77 0.00 14.77 0.00 +GATE AND2x2_ASAP7_75t_R 0.09 Y=(A * B); + PIN A UNKNOWN 1 999 22.69 0.00 22.69 0.00 + PIN B UNKNOWN 1 999 22.73 0.00 22.73 0.00 +GATE OR2x4_ASAP7_75t_R 0.12 Y=(A) + (B); + PIN A UNKNOWN 1 999 25.10 0.00 25.10 0.00 + PIN B UNKNOWN 1 999 25.04 0.00 25.04 0.00 +GATE NAND2x1_ASAP7_75t_R 0.09 Y=(!A) + (!B); + PIN A UNKNOWN 1 999 23.02 0.00 23.02 0.00 + PIN B UNKNOWN 1 999 22.15 0.00 22.15 0.00 +GATE NOR2x1_ASAP7_75t_R 0.09 Y=(!A * !B); + PIN A UNKNOWN 1 999 23.93 0.00 23.93 0.00 + PIN B UNKNOWN 1 999 23.19 0.00 23.19 0.00 +GATE XNOR2x2_ASAP7_75t_R 0.16 Y=(A * B) + (!A * !B); + PIN A UNKNOWN 1 999 36.92 0.00 36.92 0.00 + PIN B UNKNOWN 1 999 36.52 0.00 36.52 0.00 +GATE XOR2x2_ASAP7_75t_R 0.16 Y=(A * !B) + (!A * B); + PIN A UNKNOWN 1 999 35.91 0.00 35.91 0.00 + PIN B UNKNOWN 1 999 36.34 0.00 36.34 0.00 +GATE AND3x1_ASAP7_75t_R 0.09 Y=(A * B * C); + PIN A UNKNOWN 1 999 25.64 0.00 25.64 0.00 + PIN B UNKNOWN 1 999 26.02 0.00 26.02 0.00 + PIN C UNKNOWN 1 999 26.48 0.00 26.48 0.00 +GATE OR3x1_ASAP7_75t_R 0.09 Y=(A) + (B) + (C); + PIN A UNKNOWN 1 999 28.06 0.00 28.06 0.00 + PIN B UNKNOWN 1 999 28.54 0.00 28.54 0.00 + PIN C UNKNOWN 1 999 28.96 0.00 28.96 0.00 +GATE AO21x1_ASAP7_75t_R 0.09 Y=(A1 * A2) + (B); + PIN A1 UNKNOWN 1 999 21.72 0.00 21.72 0.00 + PIN A2 UNKNOWN 1 999 22.09 0.00 22.09 0.00 + PIN B UNKNOWN 1 999 21.12 0.00 21.12 0.00 +GATE OA21x2_ASAP7_75t_R 0.10 Y=(A1 * B) + (A2 * B); + PIN A1 UNKNOWN 1 999 21.62 0.00 21.62 0.00 + PIN A2 UNKNOWN 1 999 21.98 0.00 21.98 0.00 + PIN B UNKNOWN 1 999 19.74 0.00 19.74 0.00 +GATE MAJIx2_ASAP7_75t_R 0.13 Y=(!A * !B) + (!A * !C) + (!B * !C); + PIN A UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN B UNKNOWN 1 999 33.12 0.00 33.12 0.00 + PIN C UNKNOWN 1 999 30.34 0.00 30.34 0.00 +GATE AOI21x1_ASAP7_75t_R 0.12 Y=(!A1 * !B) + (!A2 * !B); + PIN A1 UNKNOWN 1 999 22.04 0.00 22.04 0.00 + PIN A2 UNKNOWN 1 999 20.15 0.00 20.15 0.00 + PIN B UNKNOWN 1 999 21.67 0.00 21.67 0.00 +GATE OAI21x1_ASAP7_75t_R 0.12 Y=(!A1 * !A2) + (!B); + PIN A1 UNKNOWN 1 999 21.73 0.00 21.73 0.00 + PIN A2 UNKNOWN 1 999 19.93 0.00 19.93 0.00 + PIN B UNKNOWN 1 999 18.70 0.00 18.70 0.00 +GATE NAND3x1_ASAP7_75t_R 0.16 Y=(!A) + (!B) + (!C); + PIN A UNKNOWN 1 999 27.57 0.00 27.57 0.00 + PIN B UNKNOWN 1 999 28.89 0.00 28.89 0.00 + PIN C UNKNOWN 1 999 28.89 0.00 28.89 0.00 +GATE NOR3x1_ASAP7_75t_R 0.16 Y=(!A * !B * !C); + PIN A UNKNOWN 1 999 29.14 0.00 29.14 0.00 + PIN B UNKNOWN 1 999 30.56 0.00 30.56 0.00 + PIN C UNKNOWN 1 999 30.61 0.00 30.61 0.00 +GATE AO22x1_ASAP7_75t_R 0.13 Y=(A1 * A2) + (B1 * B2); + PIN A1 UNKNOWN 1 999 22.74 0.00 22.74 0.00 + PIN A2 UNKNOWN 1 999 23.52 0.00 23.52 0.00 + PIN B1 UNKNOWN 1 999 22.75 0.00 22.75 0.00 + PIN B2 UNKNOWN 1 999 23.43 0.00 23.43 0.00 +GATE OA211x2_ASAP7_75t_R 0.12 Y=(A1 * B * C) + (A2 * B * C); + PIN A1 UNKNOWN 1 999 25.27 0.00 25.27 0.00 + PIN A2 UNKNOWN 1 999 25.73 0.00 25.73 0.00 + PIN B UNKNOWN 1 999 26.70 0.00 26.70 0.00 + PIN C UNKNOWN 1 999 27.18 0.00 27.18 0.00 +GATE OR4x2_ASAP7_75t_R 0.12 Y=(A) + (B) + (C) + (D); + PIN A UNKNOWN 1 999 29.01 0.00 29.01 0.00 + PIN B UNKNOWN 1 999 29.94 0.00 29.94 0.00 + PIN C UNKNOWN 1 999 30.77 0.00 30.77 0.00 + PIN D UNKNOWN 1 999 31.34 0.00 31.34 0.00 +GATE OA22x2_ASAP7_75t_R 0.15 Y=(A1 * B1) + (A1 * B2) + (A2 * B1) + (A2 * B2); + PIN A1 UNKNOWN 1 999 22.39 0.00 22.39 0.00 + PIN A2 UNKNOWN 1 999 22.79 0.00 22.79 0.00 + PIN B1 UNKNOWN 1 999 22.22 0.00 22.22 0.00 + PIN B2 UNKNOWN 1 999 22.72 0.00 22.72 0.00 +GATE AND4x2_ASAP7_75t_R 0.12 Y=(A * B * C * D); + PIN A UNKNOWN 1 999 27.32 0.00 27.32 0.00 + PIN B UNKNOWN 1 999 27.69 0.00 27.69 0.00 + PIN C UNKNOWN 1 999 28.26 0.00 28.26 0.00 + PIN D UNKNOWN 1 999 28.69 0.00 28.69 0.00 +GATE OA31x2_ASAP7_75t_R 0.22 Y=(A1 * B1) + (A2 * B1) + (A3 * B1); + PIN A1 UNKNOWN 1 999 26.20 0.00 26.20 0.00 + PIN A2 UNKNOWN 1 999 25.63 0.00 25.63 0.00 + PIN A3 UNKNOWN 1 999 26.42 0.00 26.42 0.00 + PIN B1 UNKNOWN 1 999 24.88 0.00 24.88 0.00 +GATE AO211x2_ASAP7_75t_R 0.23 Y=(A1 * A2) + (B) + (C); + PIN A1 UNKNOWN 1 999 26.03 0.00 26.03 0.00 + PIN A2 UNKNOWN 1 999 25.03 0.00 25.03 0.00 + PIN B UNKNOWN 1 999 24.32 0.00 24.32 0.00 + PIN C UNKNOWN 1 999 23.78 0.00 23.78 0.00 +GATE AOI211x1_ASAP7_75t_R 0.17 Y=(!A1 * !B * !C) + (!A2 * !B * !C); + PIN A1 UNKNOWN 1 999 27.78 0.00 27.78 0.00 + PIN A2 UNKNOWN 1 999 30.08 0.00 30.08 0.00 + PIN B UNKNOWN 1 999 23.58 0.00 23.58 0.00 + PIN C UNKNOWN 1 999 24.33 0.00 24.33 0.00 +GATE AO31x2_ASAP7_75t_R 0.23 Y=(A1 * A2 * A3) + (B); + PIN A1 UNKNOWN 1 999 23.13 0.00 23.13 0.00 + PIN A2 UNKNOWN 1 999 22.95 0.00 22.95 0.00 + PIN A3 UNKNOWN 1 999 23.02 0.00 23.02 0.00 + PIN B UNKNOWN 1 999 24.20 0.00 24.20 0.00 +GATE OAI22x1_ASAP7_75t_R 0.15 Y=(!A1 * !A2) + (!B1 * !B2); + PIN A1 UNKNOWN 1 999 22.24 0.00 22.24 0.00 + PIN A2 UNKNOWN 1 999 24.01 0.00 24.01 0.00 + PIN B1 UNKNOWN 1 999 21.93 0.00 21.93 0.00 + PIN B2 UNKNOWN 1 999 23.64 0.00 23.64 0.00 +GATE AOI22x1_ASAP7_75t_R 0.15 Y=(!A1 * !B1) + (!A1 * !B2) + (!A2 * !B1) + (!A2 * !B2); + PIN A1 UNKNOWN 1 999 22.29 0.00 22.29 0.00 + PIN A2 UNKNOWN 1 999 24.04 0.00 24.04 0.00 + PIN B1 UNKNOWN 1 999 21.93 0.00 21.93 0.00 + PIN B2 UNKNOWN 1 999 23.75 0.00 23.75 0.00 +GATE AO32x1_ASAP7_75t_R 0.12 Y=(A1 * A2 * A3) + (B1 * B2); + PIN A1 UNKNOWN 1 999 26.50 0.00 26.50 0.00 + PIN A2 UNKNOWN 1 999 25.92 0.00 25.92 0.00 + PIN A3 UNKNOWN 1 999 26.83 0.00 26.83 0.00 + PIN B1 UNKNOWN 1 999 27.20 0.00 27.20 0.00 + PIN B2 UNKNOWN 1 999 26.24 0.00 26.24 0.00 +GATE AND5x1_ASAP7_75t_R 0.12 Y=(A * B * C * D * E); + PIN A UNKNOWN 1 999 31.93 0.00 31.93 0.00 + PIN B UNKNOWN 1 999 33.50 0.00 33.50 0.00 + PIN C UNKNOWN 1 999 35.20 0.00 35.20 0.00 + PIN D UNKNOWN 1 999 36.22 0.00 36.22 0.00 + PIN E UNKNOWN 1 999 36.85 0.00 36.85 0.00 +GATE OR5x1_ASAP7_75t_R 0.12 Y=(A) + (B) + (C) + (D) + (E); + PIN A UNKNOWN 1 999 31.79 0.00 31.79 0.00 + PIN B UNKNOWN 1 999 33.27 0.00 33.27 0.00 + PIN C UNKNOWN 1 999 34.82 0.00 34.82 0.00 + PIN D UNKNOWN 1 999 35.85 0.00 35.85 0.00 + PIN E UNKNOWN 1 999 36.64 0.00 36.64 0.00 +GATE AO221x2_ASAP7_75t_R 0.16 Y=(A1 * A2) + (B1 * B2) + (C); + PIN A1 UNKNOWN 1 999 28.18 0.00 28.18 0.00 + PIN A2 UNKNOWN 1 999 27.48 0.00 27.48 0.00 + PIN B1 UNKNOWN 1 999 27.04 0.00 27.04 0.00 + PIN B2 UNKNOWN 1 999 26.20 0.00 26.20 0.00 + PIN C UNKNOWN 1 999 25.49 0.00 25.49 0.00 +GATE AOI221x1_ASAP7_75t_R 0.20 Y=(!A1 * !B1 * !C) + (!A1 * !B2 * !C) + (!A2 * !B1 * !C) + (!A2 * !B2 * !C); + PIN A1 UNKNOWN 1 999 30.75 0.00 30.75 0.00 + PIN A2 UNKNOWN 1 999 29.28 0.00 29.28 0.00 + PIN B1 UNKNOWN 1 999 29.21 0.00 29.21 0.00 + PIN B2 UNKNOWN 1 999 28.00 0.00 28.00 0.00 + PIN C UNKNOWN 1 999 26.54 0.00 26.54 0.00 +GATE OA221x2_ASAP7_75t_R 0.23 Y=(A1 * B1 * C) + (A1 * B2 * C) + (A2 * B1 * C) + (A2 * B2 * C); + PIN A1 UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN A2 UNKNOWN 1 999 28.51 0.00 28.51 0.00 + PIN B1 UNKNOWN 1 999 25.80 0.00 25.80 0.00 + PIN B2 UNKNOWN 1 999 26.71 0.00 26.71 0.00 + PIN C UNKNOWN 1 999 24.80 0.00 24.80 0.00 +GATE AO33x2_ASAP7_75t_R 0.15 Y=(A1 * A2 * A3) + (B1 * B2 * B3); + PIN A1 UNKNOWN 1 999 29.44 0.00 29.44 0.00 + PIN A2 UNKNOWN 1 999 29.25 0.00 29.25 0.00 + PIN A3 UNKNOWN 1 999 29.95 0.00 29.95 0.00 + PIN B1 UNKNOWN 1 999 29.21 0.00 29.21 0.00 + PIN B2 UNKNOWN 1 999 29.06 0.00 29.06 0.00 + PIN B3 UNKNOWN 1 999 29.50 0.00 29.50 0.00 +GATE OA33x2_ASAP7_75t_R 0.15 Y=(A1 * B1) + (A1 * B2) + (A1 * B3) + (A2 * B1) + (A2 * B2) + (A2 * B3) + (A3 * B1) + (A3 * B2) + (A3 * B3); + PIN A1 UNKNOWN 1 999 28.59 0.00 28.59 0.00 + PIN A2 UNKNOWN 1 999 28.13 0.00 28.13 0.00 + PIN A3 UNKNOWN 1 999 28.11 0.00 28.11 0.00 + PIN B1 UNKNOWN 1 999 27.30 0.00 27.30 0.00 + PIN B2 UNKNOWN 1 999 27.03 0.00 27.03 0.00 + PIN B3 UNKNOWN 1 999 27.06 0.00 27.06 0.00 +GATE AO222x2_ASAP7_75t_R 0.17 Y=(A1 * A2) + (B1 * B2) + (C1 * C2); + PIN A1 UNKNOWN 1 999 29.78 0.00 29.78 0.00 + PIN A2 UNKNOWN 1 999 29.44 0.00 29.44 0.00 + PIN B1 UNKNOWN 1 999 29.19 0.00 29.19 0.00 + PIN B2 UNKNOWN 1 999 28.65 0.00 28.65 0.00 + PIN C1 UNKNOWN 1 999 28.55 0.00 28.55 0.00 + PIN C2 UNKNOWN 1 999 27.91 0.00 27.91 0.00 +GATE OA222x2_ASAP7_75t_R 0.17 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2); + PIN A1 UNKNOWN 1 999 27.68 0.00 27.68 0.00 + PIN A2 UNKNOWN 1 999 27.25 0.00 27.25 0.00 + PIN B1 UNKNOWN 1 999 28.04 0.00 28.04 0.00 + PIN B2 UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN C1 UNKNOWN 1 999 28.54 0.00 28.54 0.00 + PIN C2 UNKNOWN 1 999 28.48 0.00 28.48 0.00 +GATE AO322x2_ASAP7_75t_R 0.22 Y=(A1 * A2 * A3) + (B1 * B2) + (C1 * C2); + PIN A1 UNKNOWN 1 999 32.87 0.00 32.87 0.00 + PIN A2 UNKNOWN 1 999 32.74 0.00 32.74 0.00 + PIN A3 UNKNOWN 1 999 33.04 0.00 33.04 0.00 + PIN B1 UNKNOWN 1 999 32.91 0.00 32.91 0.00 + PIN B2 UNKNOWN 1 999 32.32 0.00 32.32 0.00 + PIN C1 UNKNOWN 1 999 31.81 0.00 31.81 0.00 + PIN C2 UNKNOWN 1 999 31.08 0.00 31.08 0.00 +GATE OA331x2_ASAP7_75t_R 0.16 Y=(A1 * B1 * C1) + (A1 * B2 * C1) + (A1 * B3 * C1) + (A2 * B1 * C1) + (A2 * B2 * C1) + (A2 * B3 * C1) + (A3 * B1 * C1) + (A3 * B2 * C1) + (A3 * B3 * C1); + PIN A1 UNKNOWN 1 999 31.21 0.00 31.21 0.00 + PIN A2 UNKNOWN 1 999 31.21 0.00 31.21 0.00 + PIN A3 UNKNOWN 1 999 31.81 0.00 31.81 0.00 + PIN B1 UNKNOWN 1 999 29.56 0.00 29.56 0.00 + PIN B2 UNKNOWN 1 999 29.45 0.00 29.45 0.00 + PIN B3 UNKNOWN 1 999 29.89 0.00 29.89 0.00 + PIN C1 UNKNOWN 1 999 26.00 0.00 26.00 0.00 +GATE AO331x2_ASAP7_75t_R 0.16 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C); + PIN A1 UNKNOWN 1 999 31.60 0.00 31.60 0.00 + PIN A2 UNKNOWN 1 999 31.34 0.00 31.34 0.00 + PIN A3 UNKNOWN 1 999 31.88 0.00 31.88 0.00 + PIN B1 UNKNOWN 1 999 30.25 0.00 30.25 0.00 + PIN B2 UNKNOWN 1 999 29.90 0.00 29.90 0.00 + PIN B3 UNKNOWN 1 999 30.37 0.00 30.37 0.00 + PIN C UNKNOWN 1 999 27.69 0.00 27.69 0.00 +GATE AO332x2_ASAP7_75t_R 0.17 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2); + PIN A1 UNKNOWN 1 999 33.87 0.00 33.87 0.00 + PIN A2 UNKNOWN 1 999 33.60 0.00 33.60 0.00 + PIN A3 UNKNOWN 1 999 34.20 0.00 34.20 0.00 + PIN B1 UNKNOWN 1 999 32.47 0.00 32.47 0.00 + PIN B2 UNKNOWN 1 999 32.13 0.00 32.13 0.00 + PIN B3 UNKNOWN 1 999 32.58 0.00 32.58 0.00 + PIN C1 UNKNOWN 1 999 30.49 0.00 30.49 0.00 + PIN C2 UNKNOWN 1 999 29.71 0.00 29.71 0.00 +GATE OA332x2_ASAP7_75t_R 0.17 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B3 * C1) + (A3 * B3 * C2); + PIN A1 UNKNOWN 1 999 33.50 0.00 33.50 0.00 + PIN A2 UNKNOWN 1 999 33.52 0.00 33.52 0.00 + PIN A3 UNKNOWN 1 999 34.10 0.00 34.10 0.00 + PIN B1 UNKNOWN 1 999 31.75 0.00 31.75 0.00 + PIN B2 UNKNOWN 1 999 31.65 0.00 31.65 0.00 + PIN B3 UNKNOWN 1 999 32.12 0.00 32.12 0.00 + PIN C1 UNKNOWN 1 999 29.21 0.00 29.21 0.00 + PIN C2 UNKNOWN 1 999 28.55 0.00 28.55 0.00 +GATE AO333x1_ASAP7_75t_R 0.17 Y=(A1 * A2 * A3) + (B1 * B2 * B3) + (C1 * C2 * C3); + PIN A1 UNKNOWN 1 999 36.79 0.00 36.79 0.00 + PIN A2 UNKNOWN 1 999 36.47 0.00 36.47 0.00 + PIN A3 UNKNOWN 1 999 37.11 0.00 37.11 0.00 + PIN B1 UNKNOWN 1 999 35.46 0.00 35.46 0.00 + PIN B2 UNKNOWN 1 999 34.94 0.00 34.94 0.00 + PIN B3 UNKNOWN 1 999 35.34 0.00 35.34 0.00 + PIN C1 UNKNOWN 1 999 33.77 0.00 33.77 0.00 + PIN C2 UNKNOWN 1 999 33.30 0.00 33.30 0.00 + PIN C3 UNKNOWN 1 999 33.75 0.00 33.75 0.00 +GATE OA333x2_ASAP7_75t_R 0.19 Y=(A1 * B1 * C1) + (A1 * B1 * C2) + (A1 * B1 * C3) + (A1 * B2 * C1) + (A1 * B2 * C2) + (A1 * B2 * C3) + (A1 * B3 * C1) + (A1 * B3 * C2) + (A1 * B3 * C3) + (A2 * B1 * C1) + (A2 * B1 * C2) + (A2 * B1 * C3) + (A2 * B2 * C1) + (A2 * B2 * C2) + (A2 * B2 * C3) + (A2 * B3 * C1) + (A2 * B3 * C2) + (A2 * B3 * C3) + (A3 * B1 * C1) + (A3 * B1 * C2) + (A3 * B1 * C3) + (A3 * B2 * C1) + (A3 * B2 * C2) + (A3 * B2 * C3) + (A3 * B3 * C1) + (A3 * B3 * C2) + (A3 * B3 * C3); + PIN A1 UNKNOWN 1 999 32.83 0.00 32.83 0.00 + PIN A2 UNKNOWN 1 999 32.59 0.00 32.59 0.00 + PIN A3 UNKNOWN 1 999 33.02 0.00 33.02 0.00 + PIN B1 UNKNOWN 1 999 34.33 0.00 34.33 0.00 + PIN B2 UNKNOWN 1 999 34.25 0.00 34.25 0.00 + PIN B3 UNKNOWN 1 999 34.72 0.00 34.72 0.00 + PIN C1 UNKNOWN 1 999 36.13 0.00 36.13 0.00 + PIN C2 UNKNOWN 1 999 36.14 0.00 36.14 0.00 + PIN C3 UNKNOWN 1 999 36.69 0.00 36.69 0.00 +GATE XNOR3x1_ASAP7_75t_R 0.19 Y=(A * B * !C) + (A * !B * C) + (!A * B * C) + (!A * !B * !C); + PIN A UNKNOWN 1 999 51.16 0.00 51.16 0.00 + PIN B UNKNOWN 1 999 53.39 0.00 53.39 0.00 + PIN C UNKNOWN 1 999 42.11 0.00 42.11 0.00 +GATE FAx1_ASAP7_75t_R 0.24 CON=(!A * !B) + (!A * !CI) + (!B * !CI); + PIN A UNKNOWN 1 999 27.70 0.00 27.70 0.00 + PIN B UNKNOWN 1 999 33.12 0.00 33.12 0.00 + PIN CI UNKNOWN 1 999 30.34 0.00 30.34 0.00 +GATE FAx1_ASAP7_75t_R 0.24 SN=(A * B * !CI) + (A * !B * CI) + (!A * B * CI) + (!A * !B * !CI); + PIN A UNKNOWN 1 999 51.16 0.00 51.16 0.00 + PIN B UNKNOWN 1 999 53.39 0.00 53.39 0.00 + PIN CI UNKNOWN 1 999 42.11 0.00 42.11 0.00 +GATE HAxp5_ASAP7_75t_R 0.19 CON=(!A) + (!B); + PIN A UNKNOWN 1 999 23.02 0.00 23.02 0.00 + PIN B UNKNOWN 1 999 22.15 0.00 22.15 0.00 +GATE HAxp5_ASAP7_75t_R 0.19 SN=(A * B) + (!A * !B); + PIN A UNKNOWN 1 999 36.92 0.00 36.92 0.00 + PIN B UNKNOWN 1 999 36.52 0.00 36.52 0.00 diff --git a/experiments/emap.cpp b/experiments/emap.cpp index e4f510e67..aea95dab4 100644 --- a/experiments/emap.cpp +++ b/experiments/emap.cpp @@ -53,7 +53,7 @@ int main() /* library to map to technology */ fmt::print( "[i] processing technology library\n" ); - std::string library = "asap7"; + std::string library = "multioutput"; std::vector gates; std::ifstream in( cell_libraries_path( library ) ); @@ -82,9 +82,9 @@ int main() emap_params ps; ps.matching_mode = emap_params::hybrid; ps.area_oriented_mapping = false; - ps.map_multioutput = false; + ps.map_multioutput = true; emap_stats st; - cell_view res = emap<6>( aig, tech_lib, ps, &st ); + cell_view res = emap<9>( aig, tech_lib, ps, &st ); names_view res_names{ res }; restore_network_name( aig, res_names ); diff --git a/include/mockturtle/utils/struct_library.hpp b/include/mockturtle/utils/struct_library.hpp index 0eb0ca8e6..7787b906b 100644 --- a/include/mockturtle/utils/struct_library.hpp +++ b/include/mockturtle/utils/struct_library.hpp @@ -55,6 +55,15 @@ namespace mockturtle { +struct struct_library_params +{ + /*! \brief Load gates with minimum size only */ + bool load_minimum_size_only{ true }; + + /*! \brief Reports loaded gates */ + bool verbose{ false }; +}; + /*! \brief Library of gates for structural matching * * This class creates a technology library from a set @@ -82,7 +91,6 @@ namespace mockturtle mockturtle::struct_library lib( gates ); \endverbatim */ - template class struct_library { @@ -172,8 +180,9 @@ class struct_library using map_label_gate = std::unordered_map; public: - explicit struct_library( std::vector const& gates ) + explicit struct_library( std::vector const& gates, struct_library_params const& ps = {} ) : _gates( gates ), + _ps( ps ), _supergates(), _dsd_map(), _and_table(), @@ -188,9 +197,9 @@ class struct_library * gate inputs considered for the library creation. * 0 < min_vars < UINT32_MAX */ - void construct( uint32_t min_vars = 2u, bool verbose = false ) + void construct( uint32_t min_vars = 2u ) { - generate_library( min_vars, verbose ); + generate_library( min_vars ); } /*! \brief Construct the structural library. @@ -244,6 +253,15 @@ class struct_library return nullptr; } + /*! \brief Returns the number of large gates. + * + * Number of gates with more than 6 inputs. + */ + const uint32_t get_num_large_gates() const + { + return num_large_gates; + } + /*! \brief Print and table. * */ @@ -260,7 +278,7 @@ class struct_library } private: - void generate_library( uint32_t min_vars, bool verbose ) + void generate_library( uint32_t min_vars ) { /* select and load gates */ _supergates.reserve( _gates.size() ); @@ -268,7 +286,7 @@ class struct_library /* mark dominate gates */ std::vector skip_gates( _supergates.size(), false ); - select_dominated_gates( skip_gates ); + filter_gates( skip_gates ); std::vector indexes( _supergates.size() ); std::iota( indexes.begin(), indexes.end(), 0 ); @@ -304,9 +322,14 @@ class struct_library /* ignore gates with reconvergence */ if ( gate_disjoint ) continue; + + if ( gate.num_vars > 6 ) + { + ++num_large_gates; + } _dsd_map.insert( { gate.function, rule } ); - if ( verbose ) + if ( _ps.verbose ) { std::cout << "Dsd:\n"; print_rule( rule, rule[rule.size() - 1] ); @@ -314,7 +337,7 @@ class struct_library /* Aig conversion */ auto aig_rule = map_to_aig( rule ); - if ( verbose ) + if ( _ps.verbose ) { std::cout << "\nAig:\n"; print_rule( aig_rule, aig_rule[aig_rule.size() - 1] ); @@ -325,7 +348,7 @@ class struct_library der_rules.push_back( aig_rule ); std::vector> depths = { { get_depth( aig_rule, aig_rule[aig_rule[aig_rule.size() - 1].fanin[0].index] ), get_depth( aig_rule, aig_rule[aig_rule[aig_rule.size() - 1].fanin[1].index] ) } }; create_rules_from_dsd( der_rules, aig_rule, aig_rule[aig_rule.size() - 1], depths, true, true ); - if ( verbose ) + if ( _ps.verbose ) { std::cout << "\nDerived:\n"; } @@ -364,7 +387,7 @@ class struct_library v.insert( it, sg ); - if ( verbose ) + if ( _ps.verbose ) { print_rule( elem, elem[elem.size() - 1] ); std::cout << "\n"; @@ -379,7 +402,7 @@ class struct_library } } - if ( verbose ) + if ( _ps.verbose ) { std::cout << "\n"; std::cout << "And table:\n"; @@ -387,7 +410,7 @@ class struct_library std::cout << "\n"; } } - if ( verbose ) + if ( _ps.verbose ) std::cout << "\n"; } @@ -440,7 +463,33 @@ class struct_library } } - void select_dominated_gates( std::vector& skip_gates ) + bool compare_sizes( composed_gate const& s1, composed_gate const& s2 ) + { + if ( s1.area < s2.area ) + return true; + else if ( s1.area > s2.area ) + return false; + + /* compute average pin delay */ + float s1_delay = 0, s2_delay = 0; + assert( s1.num_vars == s2.num_vars ); + for ( uint32_t i = 0; i < s1.num_vars; ++i ) + { + s1_delay += s1.tdelay[i]; + s2_delay += s2.tdelay[i]; + } + + if ( s1_delay < s2_delay ) + return true; + else if ( s1_delay > s2_delay ) + return false; + else if ( s1.root->name < s2.root->name ) + return true; + + return false; + } + + void filter_gates( std::vector& skip_gates ) { for ( uint32_t i = 0; i < skip_gates.size() - 1; ++i ) { @@ -456,8 +505,22 @@ class struct_library auto const& ttj = _supergates[j].function; /* get the same functionality */ - if ( tti != ttj ) + if ( skip_gates[j] || tti != ttj ) continue; + + if ( _ps.load_minimum_size_only ) + { + if ( compare_sizes( _supergates[i], _supergates[j] ) ) + { + skip_gates[j] = true; + continue; + } + else + { + skip_gates[i] = true; + break; + } + } /* is i smaller than j */ bool smaller = _supergates[i].area < _supergates[j].area; @@ -1459,8 +1522,11 @@ class struct_library private: bool gate_disjoint{ false }; /* flag for gate support*/ + uint32_t num_large_gates{ 0 }; std::vector const& _gates; /* collection of gates */ + struct_library_params const _ps; + composed_list_t _supergates; /* list of composed_gates */ lib_rule _dsd_map; /* hash map for DSD decomposition of gates */ lib_table _and_table; /* AND table */ diff --git a/include/mockturtle/utils/super_utils.hpp b/include/mockturtle/utils/super_utils.hpp index 3200d737d..a2771f726 100644 --- a/include/mockturtle/utils/super_utils.hpp +++ b/include/mockturtle/utils/super_utils.hpp @@ -154,6 +154,7 @@ class super_utils /* create composed gates */ uint32_t ignored = 0; uint32_t ignored_id = 0; + uint32_t large_gates = 0; for ( const auto& g : _gates ) { std::array pin_to_pin_delays{}; @@ -165,7 +166,10 @@ class super_utils continue; } if ( g.function.num_vars() > truth_table_size ) + { + ++large_gates; continue; + } auto i = 0u; for ( auto const& pin : g.pins ) @@ -208,8 +212,8 @@ class super_utils if ( _ps.verbose ) { - std::cout << fmt::format( "[i] Loading {} simple gates in the library\n", simple_gates_size ); - std::cout << fmt::format( "[i] Loading {} multi-output gates in the library\n", _multioutput_gates.size() ); + std::cout << fmt::format( "[i] Loading {} simple cells in the library\n", simple_gates_size + large_gates ); + std::cout << fmt::format( "[i] Loading {} multi-output cells in the library\n", _multioutput_gates.size() ); } if ( ignored > 0 ) diff --git a/include/mockturtle/utils/tech_library.hpp b/include/mockturtle/utils/tech_library.hpp index e35ffc68c..a671e7a25 100644 --- a/include/mockturtle/utils/tech_library.hpp +++ b/include/mockturtle/utils/tech_library.hpp @@ -202,7 +202,7 @@ class tech_library _cells( get_standard_cells( _gates ) ), _super( _gates, _supergates_spec, super_utils_params{ ps.load_multioutput_gates_single, ps.verbose } ), _use_supergates( false ), - _struct( _gates ), + _struct( _gates, struct_library_params{ ps.load_minimum_size_only, ps.very_verbose } ), _super_lib(), _multi_lib(), _struct_lib() @@ -216,7 +216,7 @@ class tech_library if ( ps.load_large_gates ) { - _struct.construct( 2, _ps.very_verbose ); + _struct.construct( 2 ); } } @@ -227,7 +227,7 @@ class tech_library _cells( get_standard_cells( _gates ) ), _super( _gates, _supergates_spec, super_utils_params{ ps.load_multioutput_gates_single, ps.verbose } ), _use_supergates( true ), - _struct( _gates ), + _struct( _gates, struct_library_params{ ps.load_minimum_size_only, ps.very_verbose } ), _super_lib(), _multi_lib(), _struct_lib() @@ -241,7 +241,7 @@ class tech_library if ( ps.load_large_gates ) { - _struct.construct( 2, _ps.very_verbose ); + _struct.construct( 2 ); } } @@ -359,6 +359,12 @@ class tech_library return _struct.get_struct_library().size(); } + /*! \brief Returns the number of gates for structural matching with more than 6 inputs. */ + const uint32_t num_structural_large_gates() const + { + return _struct.get_struct_library().size(); + } + private: void generate_library() { @@ -1086,7 +1092,7 @@ class tech_library auto const& ttj = supergates[j].function; /* get the same functionality */ - if ( tti != ttj ) + if ( skip_gates[j] || tti != ttj ) continue; if ( _ps.load_minimum_size_only ) @@ -1104,7 +1110,7 @@ class tech_library } /* is i smaller than j */ - bool smaller = supergates[i].area < supergates[j].area; + bool smaller = supergates[i].area <= supergates[j].area; /* is i faster for every pin */ bool faster = true; @@ -1121,6 +1127,7 @@ class tech_library } /* is j faster for every pin */ + smaller = supergates[i].area >= supergates[j].area; faster = true; for ( uint32_t k = 0; k < tti.num_vars(); ++k ) { @@ -1128,7 +1135,7 @@ class tech_library faster = false; } - if ( !smaller && faster ) + if ( smaller && faster ) { skip_gates[i] = true; break; diff --git a/test/algorithms/emap.cpp b/test/algorithms/emap.cpp index 3299ba534..b25dce881 100644 --- a/test/algorithms/emap.cpp +++ b/test/algorithms/emap.cpp @@ -42,10 +42,6 @@ std::string const large_library = "GATE inv1 1 O=!a; PIN * INV 1 "GATE buf 2 O=a; PIN * NONINV 1 999 1.0 0.0 1.0 0.0\n" "GATE zero 0 O=CONST0;\n" "GATE one 0 O=CONST1;\n" - "GATE ha 5 C=a*b; PIN * INV 1 999 1.7 0.4 1.7 0.4\n" - "GATE ha 5 S=!a*b+a*!b; PIN * INV 1 999 2.1 0.4 2.1 0.4\n" - "GATE fa 6 C=a*b+a*c+b*c; PIN * INV 1 999 2.1 0.4 2.1 0.4\n" - "GATE fa 6 S=a^b^c; PIN * INV 1 999 3.0 0.4 3.0 0.4\n" "GATE nand8 8 O=!(a*b*c*d*e*f*g*h); PIN * INV 1 999 4.0 0.2 4.0 0.2\n"; std::string const super_library = "test.genlib\n" @@ -361,6 +357,7 @@ TEST_CASE( "Emap on multiplier with multi-output gates", "[emap]" ) CHECK( result == lorina::return_code::success ); tech_library_params tps; + tps.load_minimum_size_only = false; tps.load_multioutput_gates_single = true; tech_library<3> lib( gates, tps ); @@ -516,6 +513,147 @@ TEST_CASE( "Emap on buffer and constant outputs", "[emap]" ) CHECK( st.delay < 1.9f + eps ); } +TEST_CASE( "Emap with boolean matching", "[emap]" ) +{ + std::vector gates; + + std::istringstream in( large_library ); + auto result = lorina::read_genlib( in, genlib_reader( gates ) ); + CHECK( result == lorina::return_code::success ); + + tech_library<8> lib( gates ); + + aig_network aig; + const auto a = aig.create_pi(); + const auto b = aig.create_pi(); + const auto c = aig.create_pi(); + const auto d = aig.create_pi(); + const auto e = aig.create_pi(); + const auto f = aig.create_pi(); + const auto g = aig.create_pi(); + const auto h = aig.create_pi(); + + const auto f1 = aig.create_and( !a, b ); + const auto f2 = aig.create_and( f1, !c ); + const auto f3 = aig.create_and( d, e ); + const auto f4 = aig.create_and( f, !g ); + const auto f5 = aig.create_and( f4, h ); + const auto f6 = aig.create_and( f2, f3 ); + const auto f7 = aig.create_and( f5, f6 ); + + aig.create_po( f7 ); + + emap_params ps; + ps.matching_mode = emap_params::boolean; + emap_stats st; + cell_view ntk = emap<8>( aig, lib, ps, &st ); + + const float eps{ 0.005f }; + + CHECK( ntk.size() == 27u ); + CHECK( ntk.num_pis() == 8u ); + CHECK( ntk.num_pos() == 1u ); + CHECK( ntk.num_gates() == 17u ); + CHECK( st.area > 24.0f - eps ); + CHECK( st.area < 24.0f + eps ); + CHECK( st.delay > 8.5f - eps ); + CHECK( st.delay < 8.5f + eps ); +} + +TEST_CASE( "Emap with structural matching", "[emap]" ) +{ + std::vector gates; + + std::istringstream in( large_library ); + auto result = lorina::read_genlib( in, genlib_reader( gates ) ); + CHECK( result == lorina::return_code::success ); + + tech_library<8> lib( gates ); + + aig_network aig; + const auto a = aig.create_pi(); + const auto b = aig.create_pi(); + const auto c = aig.create_pi(); + const auto d = aig.create_pi(); + const auto e = aig.create_pi(); + const auto f = aig.create_pi(); + const auto g = aig.create_pi(); + const auto h = aig.create_pi(); + + const auto f1 = aig.create_and( !a, b ); + const auto f2 = aig.create_and( f1, !c ); + const auto f3 = aig.create_and( d, e ); + const auto f4 = aig.create_and( f, !g ); + const auto f5 = aig.create_and( f4, h ); + const auto f6 = aig.create_and( f2, f3 ); + const auto f7 = aig.create_and( f5, f6 ); + + aig.create_po( f7 ); + + emap_params ps; + ps.matching_mode = emap_params::structural; + emap_stats st; + cell_view ntk = emap<8>( aig, lib, ps, &st ); + + const float eps{ 0.005f }; + + CHECK( ntk.size() == 15u ); + CHECK( ntk.num_pis() == 8u ); + CHECK( ntk.num_pos() == 1u ); + CHECK( ntk.num_gates() == 5u ); + CHECK( st.area > 12.0f - eps ); + CHECK( st.area < 12.0f + eps ); + CHECK( st.delay > 5.8f - eps ); + CHECK( st.delay < 5.8f + eps ); +} + +TEST_CASE( "Emap with hybrid matching", "[emap]" ) +{ + std::vector gates; + + std::istringstream in( large_library ); + auto result = lorina::read_genlib( in, genlib_reader( gates ) ); + CHECK( result == lorina::return_code::success ); + + tech_library<8> lib( gates ); + + aig_network aig; + const auto a = aig.create_pi(); + const auto b = aig.create_pi(); + const auto c = aig.create_pi(); + const auto d = aig.create_pi(); + const auto e = aig.create_pi(); + const auto f = aig.create_pi(); + const auto g = aig.create_pi(); + const auto h = aig.create_pi(); + + const auto f1 = aig.create_and( !a, b ); + const auto f2 = aig.create_and( f1, !c ); + const auto f3 = aig.create_and( d, e ); + const auto f4 = aig.create_and( f, !g ); + const auto f5 = aig.create_and( f4, h ); + const auto f6 = aig.create_and( f2, f3 ); + const auto f7 = aig.create_and( f5, f6 ); + + aig.create_po( f7 ); + + emap_params ps; + ps.matching_mode = emap_params::hybrid; + emap_stats st; + cell_view ntk = emap<8>( aig, lib, ps, &st ); + + const float eps{ 0.005f }; + + CHECK( ntk.size() == 15u ); + CHECK( ntk.num_pis() == 8u ); + CHECK( ntk.num_pos() == 1u ); + CHECK( ntk.num_gates() == 5u ); + CHECK( st.area > 12.0f - eps ); + CHECK( st.area < 12.0f + eps ); + CHECK( st.delay > 5.8f - eps ); + CHECK( st.delay < 5.8f + eps ); +} + TEST_CASE( "Emap with supergates", "[emap]" ) { std::vector gates; diff --git a/test/utils/struct_library.cpp b/test/utils/struct_library.cpp index 9bcbc39d6..30a664801 100644 --- a/test/utils/struct_library.cpp +++ b/test/utils/struct_library.cpp @@ -29,6 +29,16 @@ std::string const test_library = "GATE inv1 3 O=!a; PIN * INV "GATE zero 0 O=CONST0;\n" "GATE one 0 O=CONST1;"; +std::string const sizes_library = "GATE inv1 3 O=!a; PIN * INV 3 999 1.1 0.09 1.1 0.09\n" + "GATE inv2 2 O=!a; PIN * INV 2 999 1.0 0.1 1.0 0.1\n" + "GATE inv3 1 O=!a; PIN * INV 1 999 0.9 0.3 0.9 0.3\n" + "GATE inv4 4 O=!a; PIN * INV 4 999 1.2 0.07 1.2 0.07\n" + "GATE nand2a 2 O=!(a*b); PIN * INV 1 999 1.0 0.2 1.0 0.2\n" + "GATE nand2b 3 O=!(a*b); PIN a INV 1 999 0.9 0.2 0.9 0.2 PIN b INV 1 999 1.2 0.2 1.2 0.2\n" + "GATE nand2c 3 O=!(a*b); PIN a INV 1 999 0.9 0.2 0.9 0.2 PIN b INV 1 999 1.1 0.2 1.1 0.2\n" + "GATE zero 0 O=CONST0;\n" + "GATE one 0 O=CONST1;"; + std::string const reconv_library = "GATE inv1 3 O=!a; PIN * INV 3 999 1.1 0.09 1.1 0.09\n" "GATE nand2 2 O=!(a*b); PIN * INV 1 999 1.0 0.2 1.0 0.2\n" "GATE xor2 5 O=a*!b+!a*b; PIN * UNKNOWN 2 999 1.9 0.5 1.9 0.5\n" @@ -51,7 +61,7 @@ TEST_CASE( "Struct library creation", "[struct_library]" ) CHECK( result == lorina::return_code::success ); struct_library<4> lib( gates ); - lib.construct( 2, false ); + lib.construct( 2 ); auto const& library_map = lib.get_struct_library(); @@ -143,6 +153,82 @@ TEST_CASE( "Struct library creation", "[struct_library]" ) CHECK( library_map.find( entry_ids[7] )->second[0].polarity == 0 ); } +TEST_CASE( "Struct library creation min sizes", "[struct_library]" ) +{ + std::vector gates; + + std::istringstream in( sizes_library ); + auto result = lorina::read_genlib( in, genlib_reader( gates ) ); + + CHECK( result == lorina::return_code::success ); + + struct_library_params ps; + ps.load_minimum_size_only = true; + struct_library<4> lib( gates, ps ); + lib.construct( 2 ); + + auto const& library_map = lib.get_struct_library(); + + /* translate to sorted vector */ + std::vector entry_ids; + std::for_each( library_map.begin(), library_map.end(), [&]( auto const& pair ) { entry_ids.push_back( pair.first ); return; } ); + std::sort( entry_ids.begin(), entry_ids.end() ); + + CHECK( entry_ids.size() == 1 ); + + CHECK( entry_ids[0] % 2 == 1 ); + CHECK( library_map.find( entry_ids[0] )->second.size() == 1 ); + CHECK( library_map.find( entry_ids[0] )->second[0].root->root->name == "nand2a" ); + CHECK( library_map.find( entry_ids[0] )->second[0].area == 2 ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[0] == 1.0f ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[1] == 1.0f ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[2] == 0 ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[3] == 0 ); + CHECK( library_map.find( entry_ids[0] )->second[0].polarity == 0 ); +} + +TEST_CASE( "Struct library creation dominated sizes", "[struct_library]" ) +{ + std::vector gates; + + std::istringstream in( sizes_library ); + auto result = lorina::read_genlib( in, genlib_reader( gates ) ); + + CHECK( result == lorina::return_code::success ); + + struct_library_params ps; + ps.load_minimum_size_only = false; + struct_library<4> lib( gates, ps ); + lib.construct( 2 ); + + auto const& library_map = lib.get_struct_library(); + + /* translate to sorted vector */ + std::vector entry_ids; + std::for_each( library_map.begin(), library_map.end(), [&]( auto const& pair ) { entry_ids.push_back( pair.first ); return; } ); + std::sort( entry_ids.begin(), entry_ids.end() ); + + CHECK( entry_ids.size() == 1 ); + + CHECK( entry_ids[0] % 2 == 1 ); + CHECK( library_map.find( entry_ids[0] )->second.size() == 2 ); + CHECK( library_map.find( entry_ids[0] )->second[0].root->root->name == "nand2a" ); + CHECK( library_map.find( entry_ids[0] )->second[0].area == 2 ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[0] == 1.0f ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[1] == 1.0f ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[2] == 0 ); + CHECK( library_map.find( entry_ids[0] )->second[0].tdelay[3] == 0 ); + CHECK( library_map.find( entry_ids[0] )->second[0].polarity == 0 ); + + CHECK( library_map.find( entry_ids[0] )->second[1].root->root->name == "nand2c" ); + CHECK( library_map.find( entry_ids[0] )->second[1].area == 3 ); + CHECK( library_map.find( entry_ids[0] )->second[1].tdelay[0] == 0.9f ); + CHECK( library_map.find( entry_ids[0] )->second[1].tdelay[1] == 1.1f ); + CHECK( library_map.find( entry_ids[0] )->second[1].tdelay[2] == 0 ); + CHECK( library_map.find( entry_ids[0] )->second[1].tdelay[3] == 0 ); + CHECK( library_map.find( entry_ids[0] )->second[1].polarity == 0 ); +} + TEST_CASE( "Struct library creation ignore reconvergence", "[struct_library]" ) { std::vector gates; @@ -153,7 +239,7 @@ TEST_CASE( "Struct library creation ignore reconvergence", "[struct_library]" ) CHECK( result == lorina::return_code::success ); struct_library<3> lib( gates ); - lib.construct( 2, false ); + lib.construct( 2 ); auto const& library_map = lib.get_struct_library(); @@ -183,7 +269,7 @@ TEST_CASE( "Struct library creation large rules", "[struct_library]" ) CHECK( result == lorina::return_code::success ); struct_library<7> lib( gates ); - lib.construct( 2, false ); + lib.construct( 2 ); auto const& library_map = lib.get_struct_library(); diff --git a/test/utils/tech_library.cpp b/test/utils/tech_library.cpp index 8968c4b56..e4ae9c7ef 100644 --- a/test/utils/tech_library.cpp +++ b/test/utils/tech_library.cpp @@ -58,6 +58,17 @@ std::string const large_test_library = "GATE inv1 1 O=!a; "GATE nand2 2 O=!(a*b); PIN * INV 1 999 1.0 0.2 1.0 0.2\n" "GATE oai322 8 O=!((a+b+c)*(d+e)*(f+g)); PIN * INV 1 999 3.0 0.4 3.0 0.4"; +std::string const sizes_library = "GATE inv1 3 O=!a; PIN * INV 3 999 1.1 0.09 1.1 0.09\n" + "GATE inv2 2 O=!a; PIN * INV 2 999 1.0 0.1 1.0 0.1\n" + "GATE inv3 1 O=!a; PIN * INV 1 999 0.9 0.3 0.9 0.3\n" + "GATE inv4 4 O=!a; PIN * INV 4 999 1.2 0.07 1.2 0.07\n" + "GATE nand2a 2 O=!(a*b); PIN * INV 1 999 1.0 0.2 1.0 0.2\n" + "GATE nand2b 3 O=!(a*b); PIN a INV 1 999 0.9 0.2 0.9 0.2 PIN b INV 1 999 1.2 0.2 1.2 0.2\n" + "GATE nand2c 3 O=!(a*b); PIN a INV 1 999 0.9 0.2 0.9 0.2 PIN b INV 1 999 1.1 0.2 1.1 0.2\n" + "GATE buf 2 O=a; PIN * NONINV 1 999 1.0 0.0 1.0 0.0\n" + "GATE zero 0 O=CONST0;\n" + "GATE one 0 O=CONST1;"; + std::string const test_library = "GATE inv1 3 O=!a; PIN * INV 3 999 1.1 0.09 1.1 0.09\n" "GATE inv2 2 O=!a; PIN * INV 2 999 1.0 0.1 1.0 0.1\n" "GATE inv3 1 O=!a; PIN * INV 1 999 0.9 0.3 0.9 0.3\n" @@ -159,6 +170,7 @@ TEST_CASE( "Simple test library generation 2", "[tech_library]" ) CHECK( result == lorina::return_code::success ); tech_library_params ps; + ps.load_minimum_size_only = false; ps.remove_dominated_gates = false; tech_library<2, classification_type::p_configurations> lib( gates, ps ); @@ -220,10 +232,8 @@ TEST_CASE( "Supergate library generation P", "[tech_library]" ) CHECK( result == lorina::return_code::success ); tech_library_params ps; - ps.verbose = true; - ps.very_verbose = true; - tech_library<3, classification_type::p_configurations> lib( gates, super_data ); - fflush( stdout ); + ps.load_minimum_size_only = false; + tech_library<3, classification_type::p_configurations> lib( gates, super_data, ps ); CHECK( lib.max_gate_size() == 3 ); CHECK( lib.get_inverter_info() == std::make_tuple( 1.0f, 1.0f, 2u ) ); @@ -381,6 +391,77 @@ TEST_CASE( "Supergate library generation NP", "[tech_library]" ) CHECK( ( *andor_e0 )[0].polarity == 0u ); } +TEST_CASE( "Library using minimum sizes", "[tech_library]" ) +{ + std::vector gates; + super_lib super_data; + + std::istringstream in_genlib( sizes_library ); + auto result = lorina::read_genlib( in_genlib, genlib_reader( gates ) ); + CHECK( result == lorina::return_code::success ); + + tech_library_params ps; + ps.load_minimum_size_only = true; + tech_library<3> lib( gates, ps ); + + CHECK( lib.get_inverter_info() == std::make_tuple( 1.0f, 0.9f, 2u ) ); + + kitty::static_truth_table<3> tt; + + kitty::create_from_hex_string( tt, "77" ); + auto const and_1 = lib.get_supergates( kitty::extend_to<6>( tt ) ); + CHECK( and_1 != nullptr ); + CHECK( and_1->size() == 1 ); +} + +TEST_CASE( "Library filtering dominated sizes", "[tech_library]" ) +{ + std::vector gates; + super_lib super_data; + + std::istringstream in_genlib( sizes_library ); + auto result = lorina::read_genlib( in_genlib, genlib_reader( gates ) ); + CHECK( result == lorina::return_code::success ); + + tech_library_params ps; + ps.load_minimum_size_only = false; + ps.remove_dominated_gates = true; + tech_library<3> lib( gates, ps ); + + CHECK( lib.get_inverter_info() == std::make_tuple( 1.0f, 0.9f, 2u ) ); + + kitty::static_truth_table<3> tt; + + kitty::create_from_hex_string( tt, "77" ); + auto const and_1 = lib.get_supergates( kitty::extend_to<6>( tt ) ); + CHECK( and_1 != nullptr ); + CHECK( and_1->size() == 3 ); +} + +TEST_CASE( "Library without filtering dominated sizes", "[tech_library]" ) +{ + std::vector gates; + super_lib super_data; + + std::istringstream in_genlib( sizes_library ); + auto result = lorina::read_genlib( in_genlib, genlib_reader( gates ) ); + CHECK( result == lorina::return_code::success ); + + tech_library_params ps; + ps.load_minimum_size_only = false; + ps.remove_dominated_gates = false; + tech_library<3> lib( gates, ps ); + + CHECK( lib.get_inverter_info() == std::make_tuple( 1.0f, 0.9f, 2u ) ); + + kitty::static_truth_table<3> tt; + + kitty::create_from_hex_string( tt, "77" ); + auto const and_1 = lib.get_supergates( kitty::extend_to<6>( tt ) ); + CHECK( and_1 != nullptr ); + CHECK( and_1->size() == 5 ); +} + TEST_CASE( "Multi-output library generation 1", "[tech_library]" ) { std::vector gates; @@ -725,6 +806,7 @@ TEST_CASE( "Multi-output library generation 3", "[tech_library]" ) tech_library_params tps; tps.load_multioutput_gates = true; tps.load_multioutput_gates_single = true; + tps.load_minimum_size_only = false; tps.remove_dominated_gates = false; tech_library<2, classification_type::np_configurations> lib( gates, tps ); @@ -999,6 +1081,7 @@ TEST_CASE( "Complete library generation", "[tech_library]" ) CHECK( result == lorina::return_code::success ); tech_library_params ps; + ps.load_minimum_size_only = false; ps.remove_dominated_gates = false; tech_library<4, classification_type::np_configurations> lib( gates, ps );