/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

  cell(gf180mcu_fd_sc_mcu7t5v0__and3_1) {
    area : 21.952000 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&!A3" ;
      value : "0.00060939" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&A3" ;
      value : "0.00061182" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&!A3" ;
      value : "0.00061254" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&A3" ;
      value : "0.00064413" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&!A3" ;
      value : "0.000644085" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&A3" ;
      value : "0.00066888" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&!A3" ;
      value : "0.00070047" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&A3" ;
      value : "0.0006588" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.00070047" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(A1) {
      capacitance : 0.002831 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01486, 0.01483, 0.01479, 0.01475, 0.01474, 0.01477, 0.01476, \
                  0.01475, 0.01475, 0.01474");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.00847, -0.008484, -0.008486, -0.008496, -0.008487, -0.00853, \
                  -0.008536, -0.008541, -0.008539, -0.008566");
        }
      }

      internal_power() {
        when : "!A2&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01486, 0.01484, 0.0148, 0.01476, 0.01473, 0.01477, 0.01474, \
                  0.01475, 0.01476, 0.01476");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.008424, -0.008453, -0.008436, -0.008447, -0.00846, -0.008479, \
                  -0.008488, -0.008495, -0.008501, -0.008531");
        }
      }

      internal_power() {
        when : "A2&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01481, 0.01478, 0.01479, 0.01476, 0.01474, 0.01477, 0.01475, \
                  0.01475, 0.01476, 0.01475");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.007406, 0.007378, 0.007383, 0.007344, 0.007327, 0.007282, 0.007264, \
                  0.007251, 0.007237, 0.007193");
        }
      }
    }

    pin(A2) {
      capacitance : 0.00276 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01608, 0.01653, 0.01746, 0.01821, 0.01869, 0.01904, 0.01927, \
                  0.01944, 0.01957, 0.01965");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01324, -0.01322, -0.0132, -0.01316, -0.01316, -0.01318, -0.01317, \
                  -0.01317, -0.01319, -0.01319");
        }
      }

      internal_power() {
        when : "!A1&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01524, 0.01468, 0.01362, 0.0133, 0.0132, 0.01319, 0.01317, 0.01314, \
                  0.01315, 0.01315");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01318, -0.01318, -0.01318, -0.01316, -0.01316, -0.01318, -0.01319, \
                  -0.01318, -0.01317, -0.01317");
        }
      }

      internal_power() {
        when : "A1&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01456, 0.01456, 0.01455, 0.01452, 0.0145, 0.01451, 0.0145, 0.01448, \
                  0.01447, 0.01446");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.008637, -0.008649, -0.008632, -0.008636, -0.008645, -0.008689, \
                  -0.008703, -0.008717, -0.008736, -0.008762");
        }
      }
    }

    pin(A3) {
      capacitance : 0.002807 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1&!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.0134, 0.01326, 0.01323, 0.01318, 0.01318, 0.01321, 0.0132, 0.0132, \
                  0.0132, 0.0132");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01321, -0.01321, -0.01317, -0.01316, -0.01316, -0.01318, -0.01318, \
                  -0.01317, -0.01316, -0.01317");
        }
      }

      internal_power() {
        when : "!A1&A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01493, 0.01394, 0.01329, 0.01319, 0.01318, 0.01319, 0.0132, \
                  0.01318, 0.01319, 0.01319");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01319, -0.01319, -0.01318, -0.01317, -0.01317, -0.01318, -0.01319, \
                  -0.01318, -0.01319, -0.01317");
        }
      }

      internal_power() {
        when : "A1&!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01451, 0.01368, 0.01325, 0.01321, 0.01319, 0.01321, 0.0132, \
                  0.01319, 0.0132, 0.0132");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01321, -0.01321, -0.01318, -0.01316, -0.01317, -0.01319, -0.01318, \
                  -0.01317, -0.01317, -0.01317");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 0.2454 ;
      max_transition : 7 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "A2&A3" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.18, 0.1779, 0.1738, 0.171, 0.1691, 0.168, 0.1672, 0.1667, 0.1664, 0.1661",\
                 "0.1802, 0.1781, 0.174, 0.1712, 0.1694, 0.1682, 0.1675, 0.1669, 0.1666, 0.1663",\
                 "0.1807, 0.1784, 0.1744, 0.1716, 0.1697, 0.1687, 0.1679, 0.1674, 0.167, 0.1667",\
                 "0.1856, 0.1832, 0.1786, 0.1753, 0.1733, 0.1721, 0.1713, 0.1707, 0.1704, 0.17",\
                 "0.2018, 0.1986, 0.1923, 0.1873, 0.1841, 0.1821, 0.1809, 0.18, 0.1794, 0.179",\
                 "0.2282, 0.2242, 0.2156, 0.2083, 0.2032, 0.2, 0.1977, 0.1963, 0.1953, 0.1947",\
                 "0.2648, 0.26, 0.249, 0.2388, 0.2314, 0.2266, 0.2231, 0.2208, 0.2193, 0.2181",\
                 "0.3113, 0.3058, 0.2925, 0.2794, 0.2693, 0.2623, 0.2573, 0.2538, 0.2515, 0.2497",\
                 "0.3674, 0.3613, 0.346, 0.3297, 0.317, 0.3075, 0.3008, 0.296, 0.2926, 0.29",\
                 "0.4338, 0.4271, 0.4097, 0.3905, 0.3746, 0.3627, 0.3539, 0.3475, 0.3429, 0.3395");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.1213, 0.1179, 0.1111, 0.1057, 0.1023, 0.1004, 0.09966, 0.09936, 0.09942, 0.1006",\
                 "0.1209, 0.1176, 0.1111, 0.1055, 0.1018, 0.1002, 0.0993, 0.09923, 0.0991, 0.1002",\
                 "0.1211, 0.1178, 0.1112, 0.1056, 0.1021, 0.1002, 0.09948, 0.09972, 0.1002, 0.1004",\
                 "0.1247, 0.1214, 0.1146, 0.1088, 0.105, 0.1029, 0.1019, 0.1022, 0.1017, 0.1033",\
                 "0.1373, 0.1335, 0.1262, 0.1193, 0.1146, 0.1117, 0.1102, 0.1099, 0.1101, 0.1109",\
                 "0.1576, 0.1536, 0.1453, 0.1376, 0.1315, 0.1276, 0.1253, 0.1242, 0.1235, 0.1256",\
                 "0.1877, 0.1831, 0.1732, 0.1637, 0.1566, 0.1516, 0.1479, 0.1459, 0.1441, 0.1456",\
                 "0.2271, 0.2219, 0.2108, 0.199, 0.1899, 0.1837, 0.1794, 0.1759, 0.1737, 0.1754",\
                 "0.2752, 0.2696, 0.2569, 0.2439, 0.2323, 0.223, 0.2176, 0.2142, 0.2114, 0.2134",\
                 "0.3327, 0.3264, 0.312, 0.2967, 0.283, 0.2722, 0.2645, 0.2602, 0.2585, 0.261");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1&A3" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.198, 0.1955, 0.1908, 0.1872, 0.185, 0.1835, 0.1825, 0.1818, 0.1814, 0.1811",\
                 "0.1979, 0.1953, 0.1906, 0.187, 0.1847, 0.1833, 0.1823, 0.1816, 0.1811, 0.1808",\
                 "0.1981, 0.1956, 0.1907, 0.1871, 0.1851, 0.1835, 0.1826, 0.1819, 0.1815, 0.1811",\
                 "0.2028, 0.2002, 0.1949, 0.191, 0.1886, 0.1871, 0.1861, 0.1855, 0.185, 0.1847",\
                 "0.2193, 0.216, 0.2091, 0.2036, 0.2, 0.1978, 0.1963, 0.1953, 0.1946, 0.1941",\
                 "0.247, 0.2429, 0.2338, 0.226, 0.2205, 0.2168, 0.2144, 0.2128, 0.2116, 0.2108",\
                 "0.2855, 0.2807, 0.2694, 0.2586, 0.2508, 0.2453, 0.2416, 0.2391, 0.2373, 0.2361",\
                 "0.3349, 0.3294, 0.3159, 0.3021, 0.2914, 0.2837, 0.2784, 0.2746, 0.272, 0.2701",\
                 "0.3947, 0.3885, 0.3729, 0.3561, 0.3424, 0.3323, 0.3251, 0.3199, 0.3162, 0.3134",\
                 "0.4652, 0.4583, 0.4407, 0.421, 0.4044, 0.3913, 0.3819, 0.375, 0.37, 0.3662");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.1213, 0.1179, 0.1113, 0.1059, 0.1023, 0.1004, 0.09939, 0.09918, 0.09924, 0.1002",\
                 "0.121, 0.1176, 0.1112, 0.1056, 0.1021, 0.1002, 0.09907, 0.09896, 0.1002, 0.1004",\
                 "0.1206, 0.1172, 0.1109, 0.1051, 0.1014, 0.09972, 0.09885, 0.0986, 0.0987, 0.09994",\
                 "0.1236, 0.1202, 0.1134, 0.1076, 0.1038, 0.1019, 0.1009, 0.1004, 0.1017, 0.102",\
                 "0.1347, 0.1311, 0.1238, 0.1172, 0.1127, 0.1101, 0.1087, 0.1077, 0.108, 0.1091",\
                 "0.1545, 0.1505, 0.1423, 0.1347, 0.1292, 0.1253, 0.1234, 0.1228, 0.1223, 0.1233",\
                 "0.1846, 0.1802, 0.1706, 0.1609, 0.1538, 0.1497, 0.1462, 0.1439, 0.1432, 0.1447",\
                 "0.2246, 0.2195, 0.2085, 0.1971, 0.1878, 0.1821, 0.1783, 0.1755, 0.1727, 0.1746",\
                 "0.2739, 0.2684, 0.2555, 0.243, 0.2315, 0.2228, 0.2181, 0.2149, 0.2121, 0.2143",\
                 "0.3329, 0.3269, 0.3127, 0.2978, 0.285, 0.2741, 0.2662, 0.2622, 0.2605, 0.264");
        }
      }

      internal_power() {
        related_pin : "A3" ;
        when : "A1&A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.2162, 0.2134, 0.2079, 0.2038, 0.2009, 0.1992, 0.1979, 0.1971, 0.1965, 0.1961",\
                 "0.2155, 0.2127, 0.2071, 0.2029, 0.2001, 0.1983, 0.1971, 0.1963, 0.1958, 0.1954",\
                 "0.2156, 0.2127, 0.2072, 0.2031, 0.2003, 0.1984, 0.1972, 0.1964, 0.1959, 0.1955",\
                 "0.2203, 0.2173, 0.2114, 0.2069, 0.2041, 0.2022, 0.201, 0.2002, 0.1996, 0.1992",\
                 "0.2369, 0.2334, 0.2261, 0.2201, 0.2161, 0.2135, 0.2118, 0.2107, 0.2099, 0.2093",\
                 "0.2663, 0.262, 0.2527, 0.2442, 0.2381, 0.2341, 0.2315, 0.2297, 0.2284, 0.2276",\
                 "0.3074, 0.3024, 0.2908, 0.2795, 0.271, 0.265, 0.261, 0.2582, 0.2563, 0.2549",\
                 "0.3605, 0.355, 0.341, 0.3267, 0.3155, 0.3071, 0.3014, 0.2972, 0.2943, 0.2923",\
                 "0.4256, 0.4194, 0.4033, 0.3859, 0.3715, 0.3605, 0.3527, 0.347, 0.3429, 0.3399",\
                 "0.5025, 0.4958, 0.478, 0.4574, 0.4398, 0.426, 0.4157, 0.4081, 0.4026, 0.3984");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.1213, 0.1179, 0.1113, 0.1058, 0.1022, 0.1004, 0.09939, 0.09936, 0.09924, 0.1011",\
                 "0.121, 0.1177, 0.1112, 0.1055, 0.1021, 0.1001, 0.09921, 0.09963, 0.09874, 0.1004",\
                 "0.1204, 0.1169, 0.1104, 0.1048, 0.1012, 0.09945, 0.0984, 0.09828, 0.09829, 0.09949",\
                 "0.1224, 0.119, 0.1125, 0.1065, 0.103, 0.1009, 0.09984, 0.1002, 0.0996, 0.1011",\
                 "0.1324, 0.1289, 0.1218, 0.1153, 0.1111, 0.1084, 0.1072, 0.1071, 0.107, 0.1087",\
                 "0.152, 0.1481, 0.14, 0.1328, 0.1274, 0.1241, 0.1222, 0.1214, 0.1206, 0.1217",\
                 "0.1831, 0.1785, 0.169, 0.1598, 0.1534, 0.1494, 0.1464, 0.1443, 0.143, 0.1444",\
                 "0.2244, 0.2193, 0.2086, 0.1972, 0.1884, 0.1826, 0.1801, 0.1772, 0.1746, 0.1755",\
                 "0.2762, 0.2708, 0.2583, 0.2453, 0.2341, 0.2267, 0.2218, 0.2195, 0.2168, 0.2186",\
                 "0.3382, 0.3325, 0.3183, 0.3036, 0.2911, 0.281, 0.2738, 0.2699, 0.2684, 0.2712");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.4221, 0.4549, 0.5493, 0.6952, 0.8931, 1.153, 1.486, 1.904, 2.414, 3.022",\
                 "0.4366, 0.4696, 0.564, 0.71, 0.9079, 1.167, 1.501, 1.919, 2.429, 3.037",\
                 "0.4868, 0.5198, 0.6141, 0.7601, 0.9579, 1.217, 1.551, 1.969, 2.479, 3.087",\
                 "0.5899, 0.6226, 0.7164, 0.8622, 1.06, 1.319, 1.653, 2.071, 2.58, 3.189",\
                 "0.7374, 0.7714, 0.8674, 1.014, 1.212, 1.471, 1.805, 2.222, 2.732, 3.34",\
                 "0.9041, 0.9404, 1.042, 1.194, 1.396, 1.657, 1.989, 2.406, 2.915, 3.522",\
                 "1.086, 1.126, 1.235, 1.395, 1.602, 1.865, 2.199, 2.616, 3.124, 3.731",\
                 "1.283, 1.326, 1.443, 1.612, 1.828, 2.098, 2.434, 2.85, 3.359, 3.964",\
                 "1.494, 1.541, 1.667, 1.846, 2.072, 2.35, 2.692, 3.112, 3.62, 4.225",\
                 "1.721, 1.771, 1.906, 2.096, 2.331, 2.619, 2.969, 3.396, 3.908, 4.514");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.6069, 0.648, 0.7699, 0.9723, 1.26, 1.649, 2.157, 2.797, 3.579, 4.511",\
                 "0.613, 0.6542, 0.7765, 0.9786, 1.266, 1.655, 2.163, 2.802, 3.583, 4.517",\
                 "0.6389, 0.6801, 0.8021, 1.004, 1.292, 1.681, 2.188, 2.828, 3.608, 4.541",\
                 "0.6971, 0.7382, 0.8599, 1.062, 1.349, 1.738, 2.246, 2.884, 3.667, 4.597",\
                 "0.7802, 0.8214, 0.9439, 1.145, 1.431, 1.819, 2.326, 2.965, 3.744, 4.679",\
                 "0.8636, 0.9053, 1.029, 1.231, 1.518, 1.906, 2.412, 3.05, 3.831, 4.761",\
                 "0.9438, 0.9874, 1.113, 1.316, 1.603, 1.991, 2.497, 3.134, 3.913, 4.844",\
                 "1.015, 1.061, 1.191, 1.397, 1.687, 2.074, 2.578, 3.215, 3.993, 4.922",\
                 "1.074, 1.122, 1.257, 1.468, 1.762, 2.153, 2.658, 3.293, 4.071, 4.998",\
                 "1.118, 1.168, 1.309, 1.524, 1.825, 2.222, 2.732, 3.369, 4.145, 5.073");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.1643, 0.1983, 0.3009, 0.4815, 0.7584, 1.159, 1.705, 2.406, 3.266, 4.293",\
                 "0.1639, 0.1982, 0.301, 0.4814, 0.7584, 1.158, 1.706, 2.407, 3.269, 4.297",\
                 "0.1646, 0.1985, 0.3012, 0.4813, 0.7588, 1.16, 1.706, 2.407, 3.269, 4.298",\
                 "0.1655, 0.1992, 0.3022, 0.4832, 0.7582, 1.16, 1.706, 2.407, 3.27, 4.295",\
                 "0.1844, 0.2168, 0.316, 0.4914, 0.7642, 1.161, 1.707, 2.408, 3.267, 4.297",\
                 "0.213, 0.2462, 0.3442, 0.5158, 0.78, 1.17, 1.71, 2.408, 3.27, 4.296",\
                 "0.2474, 0.2828, 0.3828, 0.5498, 0.8088, 1.187, 1.718, 2.412, 3.27, 4.296",\
                 "0.2834, 0.3218, 0.4268, 0.593, 0.8482, 1.217, 1.735, 2.417, 3.27, 4.298",\
                 "0.3206, 0.3632, 0.474, 0.6426, 0.8964, 1.263, 1.768, 2.437, 3.278, 4.297",\
                 "0.361, 0.407, 0.525, 0.6954, 0.9486, 1.314, 1.819, 2.479, 3.305, 4.31");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.2227, 0.2708, 0.4316, 0.7297, 1.192, 1.863, 2.768, 3.916, 5.32, 6.995",\
                 "0.2234, 0.271, 0.4309, 0.7295, 1.193, 1.863, 2.765, 3.919, 5.318, 6.994",\
                 "0.2216, 0.2706, 0.431, 0.7293, 1.194, 1.863, 2.767, 3.918, 5.323, 6.989",\
                 "0.2223, 0.2708, 0.4316, 0.7296, 1.192, 1.864, 2.768, 3.918, 5.321, 6.988",\
                 "0.2282, 0.2768, 0.437, 0.733, 1.196, 1.863, 2.765, 3.916, 5.323, 6.999",\
                 "0.238, 0.287, 0.4466, 0.743, 1.203, 1.868, 2.77, 3.916, 5.324, 7",\
                 "0.2572, 0.3042, 0.4616, 0.7544, 1.211, 1.876, 2.773, 3.921, 5.317, 6.988",\
                 "0.2798, 0.327, 0.4816, 0.7744, 1.227, 1.885, 2.779, 3.923, 5.326, 6.999",\
                 "0.3014, 0.3516, 0.5078, 0.8002, 1.255, 1.907, 2.79, 3.926, 5.327, 7.004",\
                 "0.3282, 0.3806, 0.5364, 0.8282, 1.287, 1.94, 2.818, 3.943, 5.331, 7.003");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.4572, 0.4914, 0.5886, 0.7369, 0.9358, 1.196, 1.529, 1.947, 2.457, 3.066",\
                 "0.4703, 0.5046, 0.6016, 0.7501, 0.9491, 1.209, 1.543, 1.961, 2.471, 3.079",\
                 "0.5201, 0.5546, 0.6516, 0.7996, 0.9988, 1.259, 1.592, 2.011, 2.521, 3.128",\
                 "0.6245, 0.6585, 0.7551, 0.903, 1.102, 1.362, 1.695, 2.113, 2.624, 3.231",\
                 "0.7813, 0.8161, 0.9141, 1.062, 1.262, 1.521, 1.854, 2.272, 2.782, 3.389",\
                 "0.9633, 1.001, 1.105, 1.258, 1.461, 1.721, 2.054, 2.471, 2.98, 3.587",\
                 "1.168, 1.209, 1.319, 1.48, 1.687, 1.951, 2.284, 2.701, 3.209, 3.816",\
                 "1.394, 1.438, 1.557, 1.727, 1.942, 2.21, 2.545, 2.961, 3.469, 4.075",\
                 "1.641, 1.688, 1.817, 1.996, 2.221, 2.497, 2.837, 3.255, 3.762, 4.368",\
                 "1.913, 1.963, 2.1, 2.29, 2.524, 2.81, 3.158, 3.581, 4.091, 4.697");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.6436, 0.685, 0.807, 1.009, 1.297, 1.686, 2.194, 2.833, 3.613, 4.548",\
                 "0.6495, 0.6907, 0.8129, 1.015, 1.303, 1.692, 2.199, 2.839, 3.619, 4.553",\
                 "0.6619, 0.7028, 0.8253, 1.027, 1.315, 1.704, 2.212, 2.851, 3.633, 4.566",\
                 "0.6925, 0.7333, 0.8552, 1.057, 1.344, 1.733, 2.241, 2.88, 3.661, 4.595",\
                 "0.7416, 0.7832, 0.9062, 1.108, 1.395, 1.783, 2.29, 2.929, 3.71, 4.643",\
                 "0.7946, 0.8373, 0.9617, 1.164, 1.452, 1.84, 2.346, 2.985, 3.764, 4.697",\
                 "0.8421, 0.8861, 1.014, 1.219, 1.508, 1.896, 2.402, 3.039, 3.817, 4.75",\
                 "0.8753, 0.9213, 1.054, 1.264, 1.557, 1.947, 2.452, 3.088, 3.866, 4.795",\
                 "0.8895, 0.9382, 1.076, 1.292, 1.591, 1.987, 2.494, 3.13, 3.908, 4.836",\
                 "0.883, 0.934, 1.078, 1.299, 1.606, 2.009, 2.525, 3.165, 3.942, 4.869");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.174, 0.2087, 0.311, 0.4891, 0.763, 1.162, 1.708, 2.407, 3.271, 4.3",\
                 "0.1748, 0.2098, 0.3112, 0.4884, 0.763, 1.162, 1.707, 2.409, 3.27, 4.3",\
                 "0.1747, 0.2087, 0.3106, 0.4883, 0.7619, 1.161, 1.708, 2.407, 3.269, 4.299",\
                 "0.1753, 0.2095, 0.312, 0.4896, 0.7638, 1.161, 1.708, 2.409, 3.268, 4.295",\
                 "0.191, 0.2242, 0.3228, 0.4976, 0.7682, 1.163, 1.706, 2.409, 3.268, 4.296",\
                 "0.2198, 0.2536, 0.3524, 0.52, 0.7818, 1.172, 1.709, 2.407, 3.27, 4.299",\
                 "0.2528, 0.2888, 0.3898, 0.554, 0.8088, 1.188, 1.719, 2.411, 3.27, 4.293",\
                 "0.2888, 0.329, 0.4332, 0.5954, 0.846, 1.216, 1.733, 2.416, 3.271, 4.299",\
                 "0.3278, 0.3708, 0.4818, 0.6442, 0.8924, 1.257, 1.762, 2.434, 3.277, 4.296",\
                 "0.3676, 0.4146, 0.5328, 0.699, 0.9442, 1.307, 1.807, 2.468, 3.298, 4.306");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.2223, 0.271, 0.4318, 0.7282, 1.193, 1.864, 2.768, 3.917, 5.316, 7.001",\
                 "0.2224, 0.2699, 0.4318, 0.7293, 1.192, 1.864, 2.768, 3.917, 5.323, 7",\
                 "0.2224, 0.2709, 0.4317, 0.7294, 1.191, 1.863, 2.769, 3.916, 5.323, 6.996",\
                 "0.2224, 0.2706, 0.4312, 0.7294, 1.194, 1.863, 2.769, 3.917, 5.323, 7",\
                 "0.2294, 0.2776, 0.4384, 0.7332, 1.196, 1.863, 2.765, 3.91, 5.318, 6.998",\
                 "0.239, 0.2888, 0.448, 0.7436, 1.202, 1.867, 2.768, 3.918, 5.323, 6.99",\
                 "0.2566, 0.3064, 0.4652, 0.7574, 1.214, 1.876, 2.776, 3.914, 5.321, 6.994",\
                 "0.277, 0.3288, 0.4882, 0.7818, 1.236, 1.886, 2.778, 3.922, 5.317, 7",\
                 "0.3022, 0.353, 0.514, 0.8114, 1.269, 1.918, 2.795, 3.926, 5.324, 6.999",\
                 "0.326, 0.3806, 0.5434, 0.842, 1.305, 1.962, 2.834, 3.95, 5.334, 6.998");
        }
      }

      timing() {
        related_pin : "A3" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.4887, 0.5242, 0.6239, 0.7746, 0.9757, 1.237, 1.571, 1.989, 2.499, 3.107",\
                 "0.4999, 0.5353, 0.6348, 0.7859, 0.9869, 1.248, 1.582, 2, 2.51, 3.119",\
                 "0.5492, 0.5846, 0.6843, 0.8352, 1.036, 1.297, 1.631, 2.05, 2.56, 3.168",\
                 "0.6548, 0.69, 0.7894, 0.9397, 1.141, 1.402, 1.736, 2.154, 2.664, 3.272",\
                 "0.8194, 0.8548, 0.9549, 1.105, 1.306, 1.567, 1.901, 2.318, 2.828, 3.436",\
                 "1.017, 1.056, 1.161, 1.316, 1.52, 1.781, 2.114, 2.531, 3.04, 3.648",\
                 "1.244, 1.286, 1.398, 1.56, 1.768, 2.032, 2.365, 2.782, 3.29, 3.897",\
                 "1.502, 1.547, 1.667, 1.838, 2.053, 2.321, 2.655, 3.072, 3.58, 4.186",\
                 "1.789, 1.838, 1.967, 2.147, 2.371, 2.646, 2.985, 3.402, 3.91, 4.515",\
                 "2.111, 2.162, 2.3, 2.492, 2.725, 3.008, 3.355, 3.776, 4.285, 4.89");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.6632, 0.7044, 0.8265, 1.028, 1.316, 1.705, 2.213, 2.852, 3.632, 4.566",\
                 "0.6697, 0.7109, 0.833, 1.035, 1.323, 1.712, 2.219, 2.858, 3.64, 4.573",\
                 "0.6765, 0.7175, 0.8399, 1.042, 1.33, 1.719, 2.227, 2.866, 3.648, 4.58",\
                 "0.6842, 0.7253, 0.8473, 1.049, 1.337, 1.726, 2.233, 2.872, 3.655, 4.586",\
                 "0.6989, 0.7405, 0.8632, 1.065, 1.353, 1.741, 2.248, 2.887, 3.668, 4.6",\
                 "0.7116, 0.7546, 0.8795, 1.082, 1.371, 1.759, 2.265, 2.904, 3.685, 4.615",\
                 "0.7121, 0.7571, 0.8859, 1.093, 1.384, 1.773, 2.279, 2.916, 3.696, 4.628",\
                 "0.6912, 0.7382, 0.8737, 1.087, 1.385, 1.778, 2.284, 2.921, 3.699, 4.629",\
                 "0.6449, 0.6945, 0.8359, 1.056, 1.363, 1.765, 2.277, 2.914, 3.692, 4.62",\
                 "0.5688, 0.6213, 0.7686, 0.9968, 1.312, 1.725, 2.248, 2.894, 3.673, 4.6");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.1837, 0.2188, 0.3214, 0.4982, 0.7702, 1.166, 1.709, 2.41, 3.27, 4.3",\
                 "0.1846, 0.219, 0.3217, 0.4972, 0.7706, 1.165, 1.71, 2.41, 3.27, 4.301",\
                 "0.1844, 0.2189, 0.3214, 0.4972, 0.7694, 1.167, 1.711, 2.409, 3.27, 4.299",\
                 "0.1844, 0.2193, 0.3216, 0.4982, 0.771, 1.168, 1.711, 2.408, 3.272, 4.301",\
                 "0.197, 0.2314, 0.3308, 0.5042, 0.774, 1.17, 1.711, 2.409, 3.271, 4.3",\
                 "0.2246, 0.2598, 0.3592, 0.527, 0.7862, 1.175, 1.714, 2.41, 3.271, 4.301",\
                 "0.2582, 0.2946, 0.3958, 0.5596, 0.813, 1.191, 1.719, 2.414, 3.272, 4.301",\
                 "0.2946, 0.3362, 0.4396, 0.5992, 0.849, 1.217, 1.734, 2.417, 3.274, 4.3",\
                 "0.3336, 0.3778, 0.488, 0.649, 0.8936, 1.254, 1.76, 2.434, 3.277, 4.301",\
                 "0.3752, 0.4224, 0.5404, 0.703, 0.9458, 1.303, 1.803, 2.464, 3.298, 4.306");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002687, 0.008607, 0.01991, 0.03753, 0.06224, 0.09476, 0.1357, 0.1857, 0.2454");
          values("0.2224, 0.2699, 0.4309, 0.7282, 1.192, 1.864, 2.768, 3.919, 5.317, 6.991",\
                 "0.2225, 0.2707, 0.4311, 0.7293, 1.192, 1.863, 2.767, 3.918, 5.316, 6.995",\
                 "0.2227, 0.2708, 0.4311, 0.7292, 1.191, 1.865, 2.769, 3.916, 5.324, 6.998",\
                 "0.222, 0.2708, 0.432, 0.7294, 1.193, 1.865, 2.769, 3.918, 5.321, 6.99",\
                 "0.228, 0.277, 0.4362, 0.7326, 1.196, 1.865, 2.769, 3.916, 5.326, 6.99",\
                 "0.2402, 0.289, 0.4474, 0.7434, 1.202, 1.869, 2.768, 3.917, 5.321, 6.987",\
                 "0.2598, 0.3086, 0.4682, 0.7618, 1.217, 1.875, 2.77, 3.916, 5.322, 7.001",\
                 "0.2802, 0.3324, 0.4938, 0.7924, 1.246, 1.895, 2.778, 3.919, 5.32, 6.989",\
                 "0.305, 0.3584, 0.523, 0.8236, 1.288, 1.936, 2.807, 3.933, 5.322, 7",\
                 "0.327, 0.3846, 0.5548, 0.8586, 1.332, 1.989, 2.861, 3.97, 5.342, 6.997");
        }
      }
    }
  }

