/*
 * 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_mcu9t5v0__nand3_4) {
    area : 70.560000 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&!A3" ;
      value : "2.354616e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&A3" ;
      value : "2.354616e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&!A3" ;
      value : "2.354616e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&A3" ;
      value : "2.354814e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&!A3" ;
      value : "4.503708e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&A3" ;
      value : "4.503708e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&!A3" ;
      value : "6.571224e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&A3" ;
      value : "5.8212e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "6.571224e-05" ;
    }

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03094, 0.0308, 0.03059, 0.03058, 0.03052, 0.03058, 0.03053, \
                  0.03053, 0.03053, 0.03052");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.008051, -0.008026, -0.00805, -0.008107, -0.008164, -0.008207, \
                  -0.00818, -0.008284, -0.008297, -0.008389");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03091, 0.03086, 0.03061, 0.03061, 0.03053, 0.03058, 0.03054, \
                  0.03055, 0.03054, 0.03053");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.008057, -0.008044, -0.008076, -0.008108, -0.008142, -0.008211, \
                  -0.008175, -0.008286, -0.008317, -0.008406");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03079, 0.03076, 0.03059, 0.0306, 0.03053, 0.03057, 0.03054, \
                  0.03054, 0.03055, 0.03053");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02472, 0.02473, 0.02472, 0.02461, 0.02454, 0.02441, 0.02444, \
                  0.02426, 0.02418, 0.02409");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03373, 0.03392, 0.03414, 0.0343, 0.0345, 0.03474, 0.03479, 0.03496, \
                  0.03496, 0.03498");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.02589, -0.02582, -0.0257, -0.02563, -0.02565, -0.02568, -0.02561, \
                  -0.02567, -0.0257, -0.02569");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02889, 0.02653, 0.02584, 0.02576, 0.02572, 0.02579, 0.02572, \
                  0.02575, 0.02578, 0.02578");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.02573, -0.02574, -0.02573, -0.02567, -0.02566, -0.0257, -0.02564, \
                  -0.0257, -0.0257, -0.0257");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02777, 0.02777, 0.02773, 0.02766, 0.02759, 0.0276, 0.02754, \
                  0.02755, 0.0275, 0.02745");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.02367, -0.02369, -0.02364, -0.02367, -0.02367, -0.02375, -0.02372, \
                  -0.02386, -0.02389, -0.02402");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02606, 0.02597, 0.02585, 0.02576, 0.02578, 0.02578, 0.02573, \
                  0.02579, 0.02577, 0.02578");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.02584, -0.02584, -0.02571, -0.02565, -0.02565, -0.0257, -0.02562, \
                  -0.02567, -0.02569, -0.02567");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02598, 0.02591, 0.02585, 0.02573, 0.02574, 0.02578, 0.02575, \
                  0.02578, 0.02579, 0.02577");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.02579, -0.0258, -0.02571, -0.02568, -0.02564, -0.02572, -0.02563, \
                  -0.0257, -0.02569, -0.0257");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02612, 0.02597, 0.02587, 0.02579, 0.02577, 0.0258, 0.02574, \
                  0.0258, 0.02579, 0.02577");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.02585, -0.02583, -0.02575, -0.02567, -0.02568, -0.0257, -0.02564, \
                  -0.02571, -0.02568, -0.02568");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2)|(!A3))" ;
      max_capacitance : 0.9837 ;
      max_transition : 6 ;
      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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.01774, 0.01791, 0.01817, 0.01834, 0.01842, 0.01845, 0.01848, 0.01848, 0.01849, 0.01848",\
                 "0.01646, 0.01682, 0.01751, 0.01791, 0.01815, 0.01827, 0.01833, 0.01836, 0.01841, 0.01843",\
                 "0.01437, 0.01494, 0.01604, 0.01696, 0.01754, 0.01787, 0.01806, 0.01818, 0.01826, 0.01831",\
                 "0.01377, 0.0141, 0.01497, 0.01597, 0.01678, 0.01731, 0.01765, 0.01786, 0.01804, 0.01813",\
                 "0.01571, 0.01565, 0.01551, 0.01595, 0.01653, 0.01705, 0.0174, 0.01767, 0.01783, 0.01797",\
                 "0.02026, 0.01959, 0.01843, 0.01766, 0.01751, 0.0176, 0.0177, 0.01784, 0.01797, 0.01807",\
                 "0.02744, 0.02633, 0.02385, 0.02156, 0.02018, 0.01944, 0.01904, 0.01882, 0.0187, 0.01862",\
                 "0.03749, 0.03586, 0.03202, 0.02808, 0.02504, 0.023, 0.02172, 0.02087, 0.02027, 0.01986",\
                 "0.05042, 0.04833, 0.04314, 0.03736, 0.03246, 0.0288, 0.02623, 0.02446, 0.02315, 0.02223",\
                 "0.06653, 0.06404, 0.05737, 0.04965, 0.0428, 0.0372, 0.03298, 0.02991, 0.02763, 0.02593");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.08216, 0.08313, 0.08468, 0.0858, 0.08617, 0.08689, 0.0875, 0.08852, 0.08942, 0.09084",\
                 "0.07998, 0.08131, 0.08377, 0.08576, 0.08659, 0.08768, 0.08847, 0.08951, 0.0912, 0.09282",\
                 "0.07706, 0.07807, 0.08072, 0.08358, 0.08594, 0.08718, 0.08847, 0.08951, 0.0916, 0.09183",\
                 "0.07681, 0.07714, 0.07856, 0.08083, 0.08324, 0.08562, 0.08739, 0.08871, 0.091, 0.09123",\
                 "0.07949, 0.07912, 0.07926, 0.08004, 0.08164, 0.08394, 0.08622, 0.08753, 0.08982, 0.09004",\
                 "0.08476, 0.08403, 0.0825, 0.082, 0.08241, 0.08336, 0.08491, 0.08673, 0.08784, 0.09064",\
                 "0.09304, 0.09184, 0.08931, 0.08616, 0.08552, 0.08517, 0.08542, 0.08614, 0.08863, 0.09043",\
                 "0.1042, 0.1024, 0.09828, 0.09376, 0.09069, 0.08968, 0.08857, 0.08832, 0.08902, 0.09103",\
                 "0.1187, 0.1164, 0.1105, 0.1042, 0.09889, 0.0958, 0.09372, 0.09267, 0.0918, 0.09181",\
                 "0.1367, 0.1338, 0.1264, 0.1181, 0.1105, 0.1045, 0.102, 0.09921, 0.09675, 0.09597");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.01789, 0.018, 0.01824, 0.01833, 0.01838, 0.01844, 0.01845, 0.01846, 0.01847, 0.01846",\
                 "0.01679, 0.01711, 0.01771, 0.01806, 0.01824, 0.01835, 0.01837, 0.01841, 0.01841, 0.01843",\
                 "0.01465, 0.01515, 0.01626, 0.01714, 0.01766, 0.01795, 0.01812, 0.01822, 0.01828, 0.01833",\
                 "0.01292, 0.01339, 0.01458, 0.01583, 0.01672, 0.01728, 0.01764, 0.01787, 0.01801, 0.01811",\
                 "0.01284, 0.01307, 0.01385, 0.01497, 0.01592, 0.01664, 0.01713, 0.01748, 0.01772, 0.01789",\
                 "0.01493, 0.01482, 0.01482, 0.01524, 0.01591, 0.0165, 0.01697, 0.01731, 0.01756, 0.01774",\
                 "0.01961, 0.0191, 0.01812, 0.01744, 0.01727, 0.01737, 0.01753, 0.01769, 0.01784, 0.01796",\
                 "0.02732, 0.02634, 0.02409, 0.02193, 0.02054, 0.0197, 0.01925, 0.01899, 0.01883, 0.01872",\
                 "0.03827, 0.03672, 0.03303, 0.02916, 0.02611, 0.02401, 0.02258, 0.02161, 0.02091, 0.02039",\
                 "0.05254, 0.05047, 0.04518, 0.03933, 0.03444, 0.03066, 0.02797, 0.02594, 0.02446, 0.02335");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1277, 0.1278, 0.128, 0.1282, 0.1284, 0.1291, 0.1295, 0.13, 0.1309, 0.1323",\
                 "0.1258, 0.1262, 0.127, 0.1276, 0.128, 0.1286, 0.1293, 0.13, 0.1305, 0.1321",\
                 "0.122, 0.1226, 0.124, 0.1254, 0.1264, 0.1275, 0.1286, 0.1292, 0.1303, 0.1317",\
                 "0.1207, 0.121, 0.1219, 0.1233, 0.1249, 0.1264, 0.1276, 0.1284, 0.1299, 0.1309",\
                 "0.1222, 0.1223, 0.1224, 0.1228, 0.1239, 0.1254, 0.1268, 0.1278, 0.1295, 0.1309",\
                 "0.127, 0.1266, 0.1253, 0.1249, 0.1248, 0.1256, 0.1267, 0.1278, 0.1289, 0.1298",\
                 "0.1344, 0.1335, 0.1313, 0.1292, 0.128, 0.1273, 0.1275, 0.128, 0.1291, 0.1303",\
                 "0.1448, 0.1436, 0.1402, 0.1364, 0.1336, 0.132, 0.1307, 0.1308, 0.1303, 0.1313",\
                 "0.1583, 0.1568, 0.1525, 0.1471, 0.1419, 0.1389, 0.1368, 0.1348, 0.1343, 0.1347",\
                 "0.1751, 0.1734, 0.168, 0.1608, 0.1539, 0.1482, 0.1447, 0.1415, 0.1397, 0.1381");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.01784, 0.01801, 0.01821, 0.01835, 0.01841, 0.01847, 0.01849, 0.01849, 0.01851, 0.01851",\
                 "0.01674, 0.0171, 0.01763, 0.018, 0.01819, 0.0183, 0.01836, 0.01838, 0.01843, 0.01842",\
                 "0.01459, 0.01511, 0.01624, 0.01711, 0.01763, 0.01793, 0.0181, 0.0182, 0.01827, 0.01831",\
                 "0.01271, 0.01318, 0.0145, 0.01577, 0.01669, 0.01726, 0.01763, 0.01785, 0.01801, 0.01811",\
                 "0.01218, 0.01252, 0.0134, 0.01465, 0.01573, 0.01652, 0.01707, 0.01742, 0.01768, 0.01784",\
                 "0.01351, 0.01349, 0.01383, 0.01453, 0.01542, 0.01617, 0.01673, 0.01714, 0.01744, 0.01766",\
                 "0.01732, 0.01695, 0.01642, 0.01623, 0.01638, 0.01678, 0.01713, 0.0174, 0.01762, 0.01779",\
                 "0.02412, 0.0234, 0.02172, 0.02026, 0.01933, 0.01888, 0.0187, 0.01861, 0.01856, 0.01853",\
                 "0.03441, 0.03319, 0.03022, 0.02708, 0.02468, 0.02302, 0.02191, 0.02117, 0.02064, 0.0202",\
                 "0.04839, 0.04662, 0.04212, 0.03705, 0.03282, 0.02956, 0.02726, 0.02551, 0.02422, 0.0232");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1576, 0.1576, 0.1577, 0.1577, 0.158, 0.1585, 0.1591, 0.1598, 0.1603, 0.1613",\
                 "0.1557, 0.1558, 0.156, 0.1562, 0.1565, 0.157, 0.1576, 0.1586, 0.1593, 0.1599",\
                 "0.1531, 0.1533, 0.1538, 0.1545, 0.155, 0.1558, 0.1565, 0.1576, 0.1583, 0.1593",\
                 "0.1522, 0.1523, 0.1527, 0.1533, 0.1541, 0.155, 0.1559, 0.1566, 0.1573, 0.1589",\
                 "0.1538, 0.1536, 0.1536, 0.1535, 0.1538, 0.1547, 0.1555, 0.1564, 0.1571, 0.1581",\
                 "0.1582, 0.1576, 0.1566, 0.1559, 0.1551, 0.1554, 0.1559, 0.1564, 0.1576, 0.1585",\
                 "0.1655, 0.1648, 0.1626, 0.1603, 0.159, 0.1578, 0.1578, 0.1578, 0.1584, 0.1593",\
                 "0.1757, 0.1747, 0.1717, 0.1679, 0.1649, 0.1627, 0.1614, 0.1608, 0.16, 0.1615",\
                 "0.1895, 0.1882, 0.1842, 0.1789, 0.1732, 0.1699, 0.1675, 0.1658, 0.1648, 0.1639",\
                 "0.2065, 0.2048, 0.2, 0.193, 0.1856, 0.1799, 0.1759, 0.1727, 0.1705, 0.1688");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.08655, 0.107, 0.1777, 0.3121, 0.5207, 0.8135, 1.198, 1.684, 2.277, 2.981",\
                 "0.09533, 0.1159, 0.1871, 0.3218, 0.5311, 0.8234, 1.209, 1.693, 2.287, 2.994",\
                 "0.128, 0.1507, 0.222, 0.3573, 0.5668, 0.8601, 1.245, 1.73, 2.323, 3.028",\
                 "0.156, 0.1888, 0.2837, 0.4268, 0.6361, 0.9292, 1.315, 1.8, 2.393, 3.099",\
                 "0.1696, 0.2122, 0.3356, 0.5188, 0.7461, 1.039, 1.424, 1.91, 2.502, 3.207",\
                 "0.1691, 0.2202, 0.371, 0.5964, 0.8739, 1.194, 1.579, 2.063, 2.655, 3.361",\
                 "0.1528, 0.2128, 0.3896, 0.656, 0.9852, 1.363, 1.783, 2.269, 2.86, 3.565",\
                 "0.1199, 0.189, 0.3903, 0.696, 1.077, 1.514, 1.997, 2.525, 3.119, 3.823",\
                 "0.0682, 0.147, 0.3751, 0.7179, 1.147, 1.644, 2.192, 2.789, 3.432, 4.14",\
                 "-0.0033, 0.0849, 0.3391, 0.7206, 1.198, 1.752, 2.365, 3.032, 3.747, 4.51");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1038, 0.1287, 0.2128, 0.3699, 0.6143, 0.9552, 1.405, 1.971, 2.661, 3.486",\
                 "0.1164, 0.1419, 0.2278, 0.3866, 0.6311, 0.9729, 1.422, 1.99, 2.679, 3.503",\
                 "0.1687, 0.1938, 0.2799, 0.4401, 0.6869, 1.03, 1.48, 2.046, 2.738, 3.562",\
                 "0.2501, 0.2858, 0.3848, 0.5452, 0.7922, 1.137, 1.588, 2.154, 2.846, 3.671",\
                 "0.3427, 0.3895, 0.5231, 0.7123, 0.9597, 1.303, 1.755, 2.323, 3.012, 3.839",\
                 "0.4485, 0.5064, 0.6734, 0.9133, 1.197, 1.542, 1.992, 2.56, 3.252, 4.073",\
                 "0.5723, 0.6397, 0.8371, 1.128, 1.474, 1.856, 2.308, 2.873, 3.565, 4.39",\
                 "0.7137, 0.7916, 1.017, 1.355, 1.764, 2.218, 2.705, 3.273, 3.964, 4.786",\
                 "0.8745, 0.9625, 1.218, 1.599, 2.069, 2.595, 3.16, 3.76, 4.451, 5.273",\
                 "1.055, 1.154, 1.439, 1.862, 2.389, 2.986, 3.633, 4.312, 5.033, 5.856");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1156, 0.1506, 0.2715, 0.5001, 0.8565, 1.353, 2.01, 2.833, 3.844, 5.038",\
                 "0.1143, 0.15, 0.2715, 0.5004, 0.8554, 1.355, 2.01, 2.831, 3.844, 5.045",\
                 "0.1314, 0.1587, 0.2693, 0.4999, 0.8558, 1.354, 2.01, 2.836, 3.843, 5.046",\
                 "0.1839, 0.2177, 0.3221, 0.51, 0.8552, 1.354, 2.008, 2.832, 3.843, 5.045",\
                 "0.2458, 0.2895, 0.4145, 0.6083, 0.8894, 1.354, 2.007, 2.833, 3.84, 5.044",\
                 "0.312, 0.365, 0.5178, 0.7444, 1.037, 1.426, 2.017, 2.833, 3.839, 5.043",\
                 "0.3852, 0.4458, 0.6256, 0.8952, 1.226, 1.622, 2.131, 2.859, 3.84, 5.04",\
                 "0.4656, 0.535, 0.7392, 1.05, 1.43, 1.87, 2.381, 3.02, 3.897, 5.045",\
                 "0.5558, 0.632, 0.8598, 1.209, 1.642, 2.136, 2.693, 3.325, 4.104, 5.138",\
                 "0.6552, 0.7402, 0.9894, 1.372, 1.858, 2.413, 3.026, 3.706, 4.469, 5.398");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1243, 0.1644, 0.3055, 0.5745, 0.9952, 1.585, 2.361, 3.342, 4.528, 5.962",\
                 "0.1244, 0.1645, 0.3051, 0.575, 0.9949, 1.584, 2.359, 3.339, 4.531, 5.959",\
                 "0.1327, 0.1668, 0.3055, 0.5742, 0.9964, 1.585, 2.358, 3.333, 4.534, 5.957",\
                 "0.199, 0.2298, 0.3293, 0.5745, 0.9941, 1.583, 2.359, 3.333, 4.534, 5.959",\
                 "0.2718, 0.3165, 0.4382, 0.6258, 0.9968, 1.582, 2.359, 3.336, 4.53, 5.958",\
                 "0.3458, 0.4036, 0.563, 0.7824, 1.074, 1.591, 2.356, 3.336, 4.529, 5.955",\
                 "0.4242, 0.4928, 0.6886, 0.9634, 1.275, 1.692, 2.374, 3.33, 4.529, 5.954",\
                 "0.5108, 0.5868, 0.813, 1.145, 1.521, 1.934, 2.5, 3.361, 4.526, 5.949",\
                 "0.6044, 0.6896, 0.9414, 1.326, 1.773, 2.255, 2.779, 3.51, 4.564, 5.95",\
                 "0.7046, 0.8004, 1.079, 1.509, 2.028, 2.582, 3.169, 3.826, 4.738, 5.998");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1271, 0.1476, 0.2183, 0.3523, 0.5609, 0.8541, 1.24, 1.725, 2.317, 3.021",\
                 "0.137, 0.1575, 0.2287, 0.3631, 0.5721, 0.8652, 1.251, 1.736, 2.327, 3.034",\
                 "0.1655, 0.1875, 0.26, 0.3954, 0.6047, 0.8978, 1.283, 1.769, 2.361, 3.068",\
                 "0.1941, 0.2223, 0.3088, 0.4514, 0.6616, 0.9548, 1.341, 1.827, 2.419, 3.125",\
                 "0.2098, 0.247, 0.3557, 0.5234, 0.7481, 1.043, 1.429, 1.915, 2.508, 3.215",\
                 "0.2079, 0.2542, 0.3895, 0.5918, 0.8487, 1.165, 1.553, 2.04, 2.632, 3.339",\
                 "0.1882, 0.2436, 0.4054, 0.6467, 0.9452, 1.297, 1.713, 2.204, 2.797, 3.504",\
                 "0.1503, 0.2151, 0.4034, 0.6828, 1.028, 1.426, 1.881, 2.403, 3.004, 3.711",\
                 "0.0938, 0.1676, 0.3822, 0.7001, 1.093, 1.543, 2.046, 2.61, 3.246, 3.963",\
                 "0.0171, 0.1007, 0.3413, 0.6977, 1.136, 1.641, 2.2, 2.814, 3.495, 4.25");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1613, 0.1861, 0.2707, 0.429, 0.6735, 1.016, 1.465, 2.03, 2.721, 3.543",\
                 "0.1745, 0.1997, 0.2851, 0.4441, 0.689, 1.031, 1.481, 2.046, 2.736, 3.559",\
                 "0.2257, 0.2509, 0.3374, 0.4979, 0.7439, 1.087, 1.537, 2.103, 2.793, 3.615",\
                 "0.3276, 0.3559, 0.4437, 0.6038, 0.8504, 1.194, 1.644, 2.21, 2.901, 3.724",\
                 "0.4494, 0.4875, 0.6008, 0.7733, 1.019, 1.363, 1.813, 2.38, 3.071, 3.893",\
                 "0.5848, 0.6317, 0.7741, 0.9909, 1.259, 1.602, 2.052, 2.618, 3.309, 4.132",\
                 "0.7358, 0.7905, 0.9612, 1.224, 1.549, 1.918, 2.369, 2.934, 3.625, 4.446",\
                 "0.9054, 0.9678, 1.164, 1.471, 1.856, 2.292, 2.768, 3.335, 4.023, 4.845",\
                 "1.096, 1.167, 1.385, 1.735, 2.177, 2.682, 3.232, 3.824, 4.514, 5.334",\
                 "1.309, 1.388, 1.631, 2.017, 2.515, 3.089, 3.716, 4.383, 5.098, 5.918");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1172, 0.1516, 0.2719, 0.5004, 0.8556, 1.355, 2.007, 2.838, 3.845, 5.035",\
                 "0.1175, 0.1514, 0.2713, 0.5006, 0.8552, 1.354, 2.01, 2.837, 3.836, 5.037",\
                 "0.1278, 0.1577, 0.272, 0.5002, 0.8568, 1.354, 2.009, 2.835, 3.841, 5.044",\
                 "0.1694, 0.2007, 0.3065, 0.509, 0.8557, 1.353, 2.008, 2.833, 3.84, 5.039",\
                 "0.2307, 0.2653, 0.3762, 0.5731, 0.881, 1.354, 2.008, 2.832, 3.84, 5.043",\
                 "0.302, 0.343, 0.4684, 0.6738, 0.9764, 1.405, 2.017, 2.831, 3.839, 5.04",\
                 "0.3824, 0.4284, 0.5716, 0.7996, 1.111, 1.533, 2.094, 2.856, 3.841, 5.039",\
                 "0.4714, 0.5218, 0.6826, 0.9388, 1.275, 1.705, 2.257, 2.962, 3.885, 5.046",\
                 "0.5688, 0.6238, 0.8024, 1.087, 1.457, 1.909, 2.469, 3.162, 4.022, 5.116",\
                 "0.6748, 0.7346, 0.9284, 1.242, 1.649, 2.139, 2.717, 3.415, 4.261, 5.286");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1842, 0.2252, 0.3663, 0.6364, 1.056, 1.643, 2.418, 3.391, 4.581, 5.998",\
                 "0.184, 0.2255, 0.3669, 0.6363, 1.056, 1.644, 2.418, 3.392, 4.58, 5.999",\
                 "0.1842, 0.2251, 0.3669, 0.6371, 1.056, 1.644, 2.417, 3.391, 4.582, 5.998",\
                 "0.2256, 0.2557, 0.3737, 0.6361, 1.056, 1.644, 2.418, 3.393, 4.581, 6.001",\
                 "0.3099, 0.3494, 0.463, 0.6664, 1.057, 1.644, 2.418, 3.393, 4.583, 5.998",\
                 "0.3962, 0.4482, 0.593, 0.804, 1.116, 1.65, 2.418, 3.392, 4.582, 5.999",\
                 "0.4816, 0.5454, 0.7294, 0.989, 1.298, 1.735, 2.43, 3.393, 4.582, 6.002",\
                 "0.5694, 0.644, 0.862, 1.179, 1.548, 1.961, 2.544, 3.416, 4.583, 6.002",\
                 "0.662, 0.7442, 0.9954, 1.368, 1.804, 2.279, 2.809, 3.555, 4.618, 6.005",\
                 "0.757, 0.8516, 1.13, 1.555, 2.063, 2.61, 3.193, 3.859, 4.785, 6.053");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.14, 0.1604, 0.231, 0.3652, 0.5738, 0.8671, 1.252, 1.736, 2.33, 3.034",\
                 "0.1506, 0.1713, 0.2423, 0.3768, 0.5857, 0.8785, 1.264, 1.748, 2.342, 3.047",\
                 "0.1765, 0.1979, 0.2701, 0.4054, 0.6146, 0.908, 1.293, 1.778, 2.371, 3.076",\
                 "0.2007, 0.226, 0.3072, 0.4474, 0.6576, 0.9507, 1.337, 1.822, 2.415, 3.121",\
                 "0.2128, 0.2439, 0.3389, 0.4961, 0.7177, 1.012, 1.398, 1.884, 2.476, 3.183",\
                 "0.2069, 0.2455, 0.3601, 0.5392, 0.7826, 1.095, 1.483, 1.969, 2.562, 3.269",\
                 "0.18, 0.2272, 0.365, 0.5724, 0.842, 1.179, 1.59, 2.082, 2.675, 3.382",\
                 "0.131, 0.1874, 0.35, 0.5906, 0.8926, 1.259, 1.697, 2.215, 2.817, 3.524",\
                 "0.0595, 0.1251, 0.3133, 0.5896, 0.9289, 1.33, 1.799, 2.346, 2.977, 3.696",\
                 "-0.0358, 0.0397, 0.2538, 0.5664, 0.9475, 1.387, 1.892, 2.472, 3.135, 3.886");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1907, 0.2166, 0.3044, 0.466, 0.7131, 1.057, 1.508, 2.074, 2.765, 3.588",\
                 "0.2038, 0.23, 0.3179, 0.4797, 0.7268, 1.071, 1.521, 2.088, 2.779, 3.602",\
                 "0.2568, 0.2829, 0.3717, 0.534, 0.7817, 1.126, 1.577, 2.143, 2.835, 3.658",\
                 "0.365, 0.3913, 0.4793, 0.6417, 0.8895, 1.234, 1.685, 2.252, 2.943, 3.766",\
                 "0.5053, 0.54, 0.6454, 0.8125, 1.06, 1.404, 1.855, 2.422, 3.113, 3.936",\
                 "0.6592, 0.7016, 0.8344, 1.04, 1.301, 1.644, 2.094, 2.661, 3.352, 4.175",\
                 "0.8287, 0.8794, 1.038, 1.287, 1.6, 1.962, 2.412, 2.978, 3.668, 4.491",\
                 "1.016, 1.074, 1.257, 1.549, 1.918, 2.343, 2.814, 3.379, 4.068, 4.89",\
                 "1.227, 1.291, 1.496, 1.827, 2.252, 2.744, 3.283, 3.87, 4.559, 5.38",\
                 "1.46, 1.532, 1.757, 2.124, 2.602, 3.161, 3.776, 4.434, 5.145, 5.965");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.1171, 0.1516, 0.2715, 0.5006, 0.8557, 1.354, 2.01, 2.831, 3.84, 5.038",\
                 "0.1172, 0.1517, 0.2714, 0.4997, 0.8553, 1.355, 2.01, 2.831, 3.845, 5.036",\
                 "0.1225, 0.1541, 0.2717, 0.5002, 0.8555, 1.355, 2.009, 2.836, 3.84, 5.037",\
                 "0.1506, 0.1833, 0.2951, 0.5064, 0.8557, 1.355, 2.009, 2.835, 3.843, 5.043",\
                 "0.1948, 0.2283, 0.3421, 0.5539, 0.8776, 1.355, 2.008, 2.832, 3.842, 5.044",\
                 "0.2566, 0.2918, 0.4092, 0.6232, 0.9496, 1.4, 2.019, 2.833, 3.839, 5.041",\
                 "0.3318, 0.371, 0.4952, 0.7132, 1.042, 1.498, 2.088, 2.862, 3.841, 5.039",\
                 "0.4194, 0.4616, 0.5972, 0.8242, 1.156, 1.617, 2.214, 2.955, 3.891, 5.05",\
                 "0.5208, 0.5642, 0.71, 0.9516, 1.291, 1.755, 2.36, 3.11, 4.014, 5.125",\
                 "0.6338, 0.6794, 0.8344, 1.095, 1.453, 1.919, 2.528, 3.286, 4.2, 5.279");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.007783, 0.03159, 0.07706, 0.1479, 0.2473, 0.3781, 0.5428, 0.744, 0.9837");
          values("0.2254, 0.2683, 0.4119, 0.6832, 1.103, 1.691, 2.465, 3.44, 4.63, 6.047",\
                 "0.2254, 0.2674, 0.4122, 0.6828, 1.102, 1.691, 2.466, 3.44, 4.629, 6.047",\
                 "0.2249, 0.2671, 0.4118, 0.6824, 1.103, 1.691, 2.465, 3.441, 4.63, 6.048",\
                 "0.246, 0.2804, 0.4129, 0.6822, 1.103, 1.691, 2.466, 3.442, 4.63, 6.048",\
                 "0.3332, 0.3713, 0.4816, 0.7006, 1.103, 1.692, 2.466, 3.441, 4.631, 6.05",\
                 "0.4272, 0.4754, 0.6162, 0.822, 1.147, 1.695, 2.466, 3.441, 4.63, 6.048",\
                 "0.521, 0.5806, 0.7566, 1.01, 1.317, 1.769, 2.476, 3.441, 4.63, 6.051",\
                 "0.612, 0.6854, 0.8956, 1.202, 1.566, 1.98, 2.577, 3.46, 4.632, 6.05",\
                 "0.7048, 0.7876, 1.033, 1.395, 1.828, 2.295, 2.831, 3.588, 4.663, 6.052",\
                 "0.802, 0.8938, 1.168, 1.585, 2.087, 2.628, 3.209, 3.883, 4.819, 6.097");
        }
      }
    }
  }

