/*
 * 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__nand3_4) {
    area : 57.075200 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1842, 0.184, 0.183, 0.1821, 0.1822, 0.182, 0.1824, 0.182, 0.1823, \
                  0.1823");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.007719, 0.008009, 0.008335, 0.008418, 0.008625, 0.00839, 0.008189, \
                  0.008737, 0.008549, 0.008312");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1842, 0.184, 0.1832, 0.1823, 0.1822, 0.1819, 0.1824, 0.1822, \
                  0.1824, 0.1821");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.00921, 0.009122, 0.00963, 0.009777, 0.009784, 0.009851, 0.009623, \
                  0.009858, 0.009725, 0.00977");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1824, 0.1826, 0.1823, 0.182, 0.1821, 0.1819, 0.1822, 0.1822, \
                  0.1822, 0.1822");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2273, 0.2278, 0.2287, 0.2285, 0.229, 0.2292, 0.2288, 0.2298, \
                  0.2292, 0.2295");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2424, 0.2525, 0.2672, 0.2748, 0.281, 0.2858, 0.2897, 0.2918, \
                  0.2939, 0.2949");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1619, -0.1614, -0.1607, -0.1603, -0.1599, -0.1599, -0.1604, \
                  -0.16, -0.1602, -0.1602");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2155, 0.2023, 0.1768, 0.1674, 0.1639, 0.1622, 0.1615, 0.1608, \
                  0.1606, 0.1603");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1608, -0.1609, -0.1606, -0.1603, -0.1602, -0.1601, -0.1604, \
                  -0.1599, -0.1605, -0.1604");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1794, 0.1793, 0.179, 0.1788, 0.1787, 0.1788, 0.1788, 0.1786, \
                  0.1787, 0.1787");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1069, -0.107, -0.1068, -0.1066, -0.1066, -0.1067, -0.107, -0.1068, \
                  -0.1075, -0.1074");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1687, 0.1634, 0.1616, 0.1609, 0.1606, 0.1606, 0.1607, 0.1605, \
                  0.1607, 0.1607");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1612, -0.1614, -0.1606, -0.1602, -0.16, -0.1599, -0.1604, -0.1599, \
                  -0.1602, -0.1602");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2003, 0.188, 0.1711, 0.1641, 0.1613, 0.1604, 0.16, 0.1595, 0.1596, \
                  0.1595");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1608, -0.1609, -0.1608, -0.1605, -0.1604, -0.1602, -0.1604, \
                  -0.1601, -0.1603, -0.1604");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1847, 0.1728, 0.1651, 0.1619, 0.1606, 0.1601, 0.16, 0.1596, \
                  0.1599, 0.1597");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1614, -0.1612, -0.1606, -0.1607, -0.1603, -0.1603, -0.1605, \
                  -0.1601, -0.1603, -0.1602");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2)|(!A3))" ;
      max_capacitance : 0.6041 ;
      max_transition : 3.4 ;
      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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.09515, 0.09633, 0.09845, 0.1004, 0.1013, 0.1021, 0.1023, 0.1026, 0.1028, 0.1029",\
                 "0.09465, 0.09562, 0.09784, 0.09934, 0.1007, 0.1016, 0.102, 0.1024, 0.1026, 0.1029",\
                 "0.1228, 0.1209, 0.1168, 0.1127, 0.1097, 0.1078, 0.1063, 0.1056, 0.105, 0.1047",\
                 "0.2226, 0.2148, 0.1953, 0.1737, 0.1557, 0.1424, 0.1327, 0.1257, 0.1206, 0.1169",\
                 "0.4172, 0.4019, 0.3617, 0.3127, 0.2687, 0.2323, 0.2048, 0.1834, 0.1673, 0.1549",\
                 "0.7164, 0.6952, 0.6335, 0.5524, 0.4731, 0.4044, 0.3482, 0.3028, 0.2666, 0.2382",\
                 "1.127, 1.1, 1.02, 0.9073, 0.788, 0.6789, 0.5845, 0.5057, 0.4407, 0.3871",\
                 "1.654, 1.622, 1.528, 1.387, 1.227, 1.072, 0.9326, 0.812, 0.7089, 0.6224",\
                 "2.304, 2.269, 2.162, 1.996, 1.799, 1.597, 1.407, 1.238, 1.09, 0.9618",\
                 "3.083, 3.046, 2.928, 2.741, 2.51, 2.262, 2.021, 1.798, 1.598, 1.421");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.5551, 0.5587, 0.566, 0.5724, 0.5765, 0.5772, 0.5822, 0.5869, 0.5895, 0.5926",\
                 "0.5614, 0.5639, 0.5703, 0.5763, 0.5817, 0.5844, 0.5866, 0.5951, 0.5983, 0.6047",\
                 "0.602, 0.6006, 0.5975, 0.5963, 0.596, 0.5954, 0.6009, 0.6023, 0.6055, 0.6086",\
                 "0.7138, 0.7065, 0.6878, 0.6674, 0.6505, 0.6393, 0.6323, 0.6281, 0.6275, 0.6278",\
                 "0.9293, 0.9136, 0.8729, 0.8257, 0.7818, 0.7461, 0.717, 0.6985, 0.6847, 0.6751",\
                 "1.259, 1.237, 1.174, 1.092, 1.016, 0.9444, 0.8869, 0.8404, 0.8029, 0.7769",\
                 "1.708, 1.682, 1.603, 1.486, 1.366, 1.258, 1.162, 1.08, 1.012, 0.9534",\
                 "2.282, 2.252, 2.16, 2.017, 1.853, 1.698, 1.558, 1.436, 1.327, 1.238",\
                 "2.988, 2.956, 2.854, 2.69, 2.488, 2.28, 2.091, 1.924, 1.77, 1.634",\
                 "3.833, 3.799, 3.69, 3.508, 3.275, 3.019, 2.771, 2.552, 2.353, 2.166");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.09294, 0.09463, 0.09766, 0.0999, 0.1012, 0.1019, 0.1024, 0.1026, 0.1028, 0.1029",\
                 "0.08629, 0.08833, 0.09292, 0.09675, 0.09899, 0.1005, 0.1013, 0.1021, 0.1023, 0.1025",\
                 "0.09109, 0.09177, 0.09402, 0.09661, 0.09853, 0.1001, 0.101, 0.1015, 0.1019, 0.102",\
                 "0.1665, 0.1623, 0.151, 0.1398, 0.1301, 0.1233, 0.1182, 0.1148, 0.1122, 0.1103",\
                 "0.3498, 0.3375, 0.3048, 0.2665, 0.2322, 0.2044, 0.183, 0.1664, 0.1536, 0.144",\
                 "0.652, 0.6324, 0.5765, 0.5038, 0.4331, 0.3724, 0.3228, 0.2828, 0.2509, 0.2254",\
                 "1.076, 1.05, 0.9744, 0.8666, 0.753, 0.6499, 0.5615, 0.4877, 0.4266, 0.3762",\
                 "1.627, 1.597, 1.504, 1.364, 1.207, 1.055, 0.9195, 0.8025, 0.7028, 0.6187",\
                 "2.309, 2.275, 2.168, 2.002, 1.803, 1.601, 1.412, 1.244, 1.097, 0.9704",\
                 "3.128, 3.091, 2.974, 2.784, 2.549, 2.298, 2.054, 1.829, 1.628, 1.45");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.885, 0.8852, 0.8871, 0.8891, 0.8888, 0.8924, 0.8932, 0.8973, 0.9032, 0.9113",\
                 "0.8821, 0.8824, 0.8839, 0.8865, 0.8879, 0.8903, 0.8937, 0.8967, 0.9043, 0.9075",\
                 "0.9081, 0.9064, 0.9022, 0.8987, 0.8967, 0.8951, 0.8981, 0.9006, 0.9027, 0.9091",\
                 "1.017, 1.011, 0.9922, 0.9696, 0.9514, 0.9374, 0.9295, 0.9242, 0.923, 0.924",\
                 "1.238, 1.224, 1.186, 1.138, 1.09, 1.049, 1.02, 0.9979, 0.9824, 0.974",\
                 "1.582, 1.563, 1.505, 1.423, 1.341, 1.264, 1.2, 1.146, 1.109, 1.079",\
                 "2.056, 2.033, 1.961, 1.847, 1.721, 1.601, 1.494, 1.404, 1.329, 1.269",\
                 "2.663, 2.637, 2.553, 2.416, 2.25, 2.082, 1.924, 1.788, 1.67, 1.569",\
                 "3.413, 3.384, 3.29, 3.135, 2.936, 2.72, 2.511, 2.318, 2.148, 2.001",\
                 "4.311, 4.28, 4.178, 4.008, 3.782, 3.524, 3.258, 3.012, 2.781, 2.578");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.09256, 0.09452, 0.09782, 0.1001, 0.101, 0.102, 0.1023, 0.1026, 0.103, 0.1031",\
                 "0.08528, 0.08747, 0.09232, 0.0967, 0.09908, 0.1005, 0.1014, 0.102, 0.1023, 0.1026",\
                 "0.08191, 0.08336, 0.08783, 0.09252, 0.09603, 0.09828, 0.09971, 0.1007, 0.1013, 0.1018",\
                 "0.1484, 0.1454, 0.1375, 0.1295, 0.1233, 0.1183, 0.1147, 0.1121, 0.1103, 0.1088",\
                 "0.3321, 0.3214, 0.2923, 0.2577, 0.2267, 0.2016, 0.1815, 0.166, 0.1539, 0.1444",\
                 "0.6488, 0.6302, 0.5777, 0.5077, 0.4402, 0.3815, 0.3325, 0.2927, 0.2603, 0.2343",\
                 "1.104, 1.079, 1.005, 0.8986, 0.7865, 0.6833, 0.594, 0.5186, 0.4559, 0.4035",\
                 "1.7, 1.67, 1.577, 1.438, 1.28, 1.126, 0.9876, 0.8673, 0.7639, 0.6751",\
                 "2.44, 2.407, 2.299, 2.131, 1.931, 1.725, 1.531, 1.357, 1.203, 1.07",\
                 "3.332, 3.295, 3.176, 2.984, 2.745, 2.488, 2.237, 2.003, 1.793, 1.606");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("1.082, 1.082, 1.082, 1.083, 1.085, 1.086, 1.088, 1.092, 1.097, 1.103",\
                 "1.077, 1.077, 1.077, 1.078, 1.079, 1.08, 1.082, 1.086, 1.09, 1.095",\
                 "1.103, 1.101, 1.094, 1.089, 1.084, 1.083, 1.083, 1.085, 1.088, 1.095",\
                 "1.221, 1.213, 1.191, 1.165, 1.142, 1.126, 1.115, 1.111, 1.108, 1.108",\
                 "1.46, 1.445, 1.403, 1.348, 1.293, 1.247, 1.212, 1.188, 1.17, 1.161",\
                 "1.839, 1.819, 1.754, 1.663, 1.568, 1.481, 1.407, 1.349, 1.303, 1.272",\
                 "2.364, 2.339, 2.257, 2.13, 1.99, 1.853, 1.73, 1.626, 1.541, 1.476",\
                 "3.042, 3.013, 2.918, 2.764, 2.576, 2.385, 2.206, 2.048, 1.913, 1.796",\
                 "3.877, 3.845, 3.741, 3.567, 3.342, 3.095, 2.853, 2.634, 2.44, 2.269",\
                 "4.88, 4.846, 4.733, 4.542, 4.284, 3.99, 3.689, 3.402, 3.139, 2.904");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.0661, 0.07808, 0.1199, 0.199, 0.3216, 0.4935, 0.7194, 1.004, 1.351, 1.765",\
                 "0.06857, 0.0805, 0.1222, 0.2013, 0.3239, 0.4958, 0.7214, 1.006, 1.353, 1.767",\
                 "0.08095, 0.09335, 0.1335, 0.2116, 0.3335, 0.5048, 0.7301, 1.015, 1.361, 1.775",\
                 "0.09527, 0.1103, 0.1574, 0.2371, 0.3564, 0.5256, 0.7494, 1.032, 1.379, 1.792",\
                 "0.1058, 0.1241, 0.1813, 0.2729, 0.3985, 0.5646, 0.785, 1.065, 1.41, 1.821",\
                 "0.111, 0.133, 0.2001, 0.3071, 0.4484, 0.6245, 0.8427, 1.119, 1.459, 1.867",\
                 "0.1107, 0.1357, 0.2135, 0.3358, 0.4961, 0.6906, 0.9217, 1.197, 1.532, 1.936",\
                 "0.1042, 0.1325, 0.2208, 0.3584, 0.5383, 0.7543, 1.006, 1.296, 1.633, 2.031",\
                 "0.0911, 0.123, 0.2193, 0.3745, 0.5738, 0.8124, 1.087, 1.399, 1.754, 2.155",\
                 "0.0701, 0.1053, 0.2126, 0.3833, 0.6017, 0.8631, 1.163, 1.501, 1.878, 2.298");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.06105, 0.07171, 0.1085, 0.1777, 0.2848, 0.4349, 0.6318, 0.8798, 1.183, 1.544",\
                 "0.067, 0.0776, 0.1143, 0.1836, 0.2906, 0.4406, 0.6372, 0.8856, 1.187, 1.548",\
                 "0.09003, 0.1005, 0.1361, 0.2043, 0.3109, 0.4603, 0.6569, 0.9046, 1.207, 1.568",\
                 "0.1226, 0.1366, 0.1793, 0.2485, 0.3525, 0.5, 0.6956, 0.9423, 1.244, 1.603",\
                 "0.1595, 0.1773, 0.2312, 0.3148, 0.4241, 0.5684, 0.7611, 1.005, 1.305, 1.663",\
                 "0.2009, 0.2223, 0.2877, 0.3884, 0.5167, 0.6705, 0.8596, 1.1, 1.396, 1.751",\
                 "0.247, 0.2725, 0.3493, 0.4676, 0.6174, 0.7927, 0.9947, 1.233, 1.525, 1.876",\
                 "0.2981, 0.3275, 0.4159, 0.5514, 0.7228, 0.9234, 1.149, 1.403, 1.694, 2.04",\
                 "0.3542, 0.3874, 0.4872, 0.6411, 0.8342, 1.06, 1.313, 1.592, 1.901, 2.248",\
                 "0.4162, 0.4537, 0.5649, 0.7364, 0.9515, 1.202, 1.483, 1.792, 2.128, 2.495");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1058, 0.1281, 0.2042, 0.3462, 0.5671, 0.8766, 1.281, 1.793, 2.419, 3.163",\
                 "0.1046, 0.1274, 0.204, 0.3462, 0.567, 0.8766, 1.282, 1.793, 2.419, 3.16",\
                 "0.1122, 0.1315, 0.2024, 0.3464, 0.5663, 0.8763, 1.282, 1.793, 2.416, 3.165",\
                 "0.1423, 0.1617, 0.2289, 0.3537, 0.5661, 0.8753, 1.282, 1.795, 2.42, 3.164",\
                 "0.195, 0.2168, 0.2833, 0.4029, 0.5913, 0.8791, 1.283, 1.794, 2.419, 3.164",\
                 "0.2615, 0.2874, 0.3641, 0.4868, 0.6659, 0.925, 1.294, 1.792, 2.419, 3.164",\
                 "0.3415, 0.3707, 0.4601, 0.5959, 0.7792, 1.027, 1.364, 1.824, 2.419, 3.16",\
                 "0.4296, 0.4648, 0.5686, 0.723, 0.9218, 1.172, 1.496, 1.918, 2.471, 3.176",\
                 "0.5312, 0.5732, 0.692, 0.8674, 1.086, 1.352, 1.673, 2.08, 2.595, 3.253",\
                 "0.6414, 0.6888, 0.825, 1.028, 1.272, 1.557, 1.891, 2.29, 2.789, 3.401");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.08341, 0.1024, 0.1678, 0.2936, 0.4915, 0.7646, 1.131, 1.582, 2.139, 2.801",\
                 "0.08322, 0.1021, 0.1679, 0.2942, 0.4898, 0.7651, 1.127, 1.587, 2.146, 2.812",\
                 "0.09238, 0.1077, 0.1682, 0.2941, 0.4899, 0.7646, 1.13, 1.582, 2.139, 2.802",\
                 "0.1312, 0.147, 0.1976, 0.3016, 0.4895, 0.7645, 1.127, 1.582, 2.139, 2.812",\
                 "0.1866, 0.2063, 0.2642, 0.3589, 0.5139, 0.7668, 1.126, 1.584, 2.142, 2.803",\
                 "0.2529, 0.277, 0.3486, 0.4546, 0.5999, 0.8142, 1.137, 1.585, 2.138, 2.802",\
                 "0.3289, 0.3588, 0.4452, 0.5718, 0.7292, 0.928, 1.208, 1.608, 2.141, 2.806",\
                 "0.4134, 0.4498, 0.5512, 0.7014, 0.883, 1.092, 1.353, 1.704, 2.188, 2.815",\
                 "0.5092, 0.5502, 0.6712, 0.8452, 1.051, 1.286, 1.556, 1.884, 2.314, 2.885",\
                 "0.616, 0.663, 0.7984, 0.9998, 1.233, 1.499, 1.793, 2.125, 2.524, 3.037");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1003, 0.1125, 0.1546, 0.2335, 0.3562, 0.5281, 0.7539, 1.038, 1.385, 1.799",\
                 "0.1011, 0.1133, 0.1557, 0.2351, 0.3579, 0.53, 0.7558, 1.04, 1.388, 1.801",\
                 "0.1045, 0.1171, 0.1594, 0.2386, 0.3614, 0.533, 0.759, 1.044, 1.391, 1.805",\
                 "0.1091, 0.1232, 0.1686, 0.2491, 0.37, 0.5406, 0.7655, 1.049, 1.395, 1.809",\
                 "0.1103, 0.1268, 0.1795, 0.2665, 0.3905, 0.5585, 0.7804, 1.062, 1.407, 1.819",\
                 "0.1042, 0.1234, 0.1842, 0.2833, 0.4173, 0.5898, 0.8098, 1.088, 1.429, 1.839",\
                 "0.08959, 0.1114, 0.1804, 0.2925, 0.4417, 0.6269, 0.8527, 1.129, 1.466, 1.871",\
                 "0.0656, 0.09, 0.1673, 0.2924, 0.4585, 0.6606, 0.9008, 1.184, 1.521, 1.921",\
                 "0.0312, 0.058, 0.1426, 0.2814, 0.4644, 0.6861, 0.945, 1.244, 1.589, 1.99",\
                 "-0.0147, 0.0147, 0.1076, 0.2593, 0.4589, 0.701, 0.9812, 1.3, 1.661, 2.072");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.09132, 0.102, 0.1391, 0.2086, 0.3156, 0.4657, 0.6632, 0.9115, 1.213, 1.574",\
                 "0.09594, 0.1067, 0.1437, 0.2131, 0.3206, 0.4708, 0.6676, 0.9151, 1.218, 1.58",\
                 "0.1175, 0.1279, 0.1642, 0.2327, 0.3398, 0.4895, 0.6855, 0.9332, 1.236, 1.598",\
                 "0.1607, 0.1726, 0.2106, 0.2772, 0.3816, 0.5289, 0.7239, 0.971, 1.273, 1.634",\
                 "0.2133, 0.2279, 0.2743, 0.3501, 0.4545, 0.5983, 0.7907, 1.035, 1.334, 1.694",\
                 "0.2747, 0.2919, 0.3472, 0.4369, 0.5558, 0.7034, 0.8911, 1.131, 1.427, 1.783",\
                 "0.345, 0.3653, 0.4292, 0.5332, 0.6704, 0.8357, 1.03, 1.266, 1.557, 1.907",\
                 "0.4251, 0.4481, 0.5212, 0.6392, 0.7951, 0.9821, 1.196, 1.442, 1.73, 2.075",\
                 "0.5153, 0.5413, 0.6231, 0.7554, 0.9296, 1.139, 1.378, 1.645, 1.946, 2.289",\
                 "0.616, 0.6447, 0.7359, 0.8829, 1.076, 1.307, 1.57, 1.864, 2.187, 2.545");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1096, 0.1307, 0.205, 0.3462, 0.5671, 0.8761, 1.282, 1.794, 2.416, 3.165",\
                 "0.1098, 0.1309, 0.2049, 0.3464, 0.5676, 0.8766, 1.282, 1.792, 2.418, 3.164",\
                 "0.1184, 0.1369, 0.2062, 0.3465, 0.5666, 0.8747, 1.282, 1.793, 2.42, 3.163",\
                 "0.1507, 0.1672, 0.2298, 0.356, 0.5681, 0.8762, 1.281, 1.794, 2.418, 3.164",\
                 "0.2112, 0.2273, 0.2844, 0.3968, 0.5882, 0.8815, 1.282, 1.795, 2.419, 3.164",\
                 "0.2888, 0.3066, 0.3663, 0.4762, 0.65, 0.9149, 1.295, 1.795, 2.416, 3.159",\
                 "0.3791, 0.4002, 0.467, 0.5832, 0.755, 0.9992, 1.346, 1.819, 2.425, 3.163",\
                 "0.4812, 0.5048, 0.5816, 0.7108, 0.892, 1.131, 1.453, 1.889, 2.459, 3.172",\
                 "0.595, 0.6226, 0.7108, 0.852, 1.048, 1.298, 1.613, 2.02, 2.552, 3.23",\
                 "0.722, 0.7512, 0.85, 1.011, 1.224, 1.489, 1.812, 2.209, 2.709, 3.342");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1378, 0.1564, 0.2237, 0.3497, 0.5459, 0.8218, 1.184, 1.64, 2.199, 2.861",\
                 "0.1374, 0.1565, 0.2229, 0.3495, 0.5461, 0.8214, 1.184, 1.641, 2.199, 2.859",\
                 "0.1391, 0.1571, 0.2229, 0.3494, 0.5461, 0.8217, 1.184, 1.644, 2.197, 2.86",\
                 "0.1771, 0.1911, 0.2418, 0.3532, 0.5459, 0.8216, 1.184, 1.641, 2.198, 2.859",\
                 "0.2418, 0.2581, 0.3094, 0.4017, 0.5645, 0.8229, 1.184, 1.639, 2.197, 2.86",\
                 "0.3191, 0.3403, 0.4025, 0.5001, 0.6413, 0.8618, 1.191, 1.643, 2.196, 2.86",\
                 "0.4094, 0.4338, 0.5086, 0.6222, 0.771, 0.9682, 1.255, 1.66, 2.202, 2.858",\
                 "0.5084, 0.5392, 0.6296, 0.7634, 0.9306, 1.132, 1.391, 1.75, 2.239, 2.866",\
                 "0.6196, 0.6544, 0.7596, 0.9166, 1.108, 1.332, 1.593, 1.919, 2.355, 2.933",\
                 "0.7408, 0.7816, 0.9016, 1.085, 1.301, 1.554, 1.832, 2.156, 2.557, 3.076");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1118, 0.1241, 0.1661, 0.2453, 0.3679, 0.5398, 0.7657, 1.05, 1.397, 1.811",\
                 "0.112, 0.1243, 0.1666, 0.2462, 0.3691, 0.5411, 0.7667, 1.052, 1.399, 1.812",\
                 "0.1104, 0.1228, 0.1652, 0.2448, 0.3678, 0.5397, 0.7659, 1.05, 1.398, 1.812",\
                 "0.1066, 0.1199, 0.1636, 0.2431, 0.3646, 0.5351, 0.7603, 1.044, 1.391, 1.804",\
                 "0.0941, 0.1096, 0.1589, 0.2432, 0.3653, 0.5332, 0.7555, 1.037, 1.382, 1.794",\
                 "0.06953, 0.08681, 0.1431, 0.2368, 0.3677, 0.538, 0.7572, 1.034, 1.376, 1.785",\
                 "0.03236, 0.052, 0.1146, 0.2184, 0.3613, 0.543, 0.7662, 1.041, 1.377, 1.781",\
                 "-0.0187, 0.0031, 0.072, 0.1867, 0.3419, 0.5373, 0.7736, 1.054, 1.389, 1.787",\
                 "-0.0856, -0.0618, 0.0138, 0.1386, 0.3072, 0.5174, 0.7693, 1.064, 1.406, 1.804",\
                 "-0.1692, -0.1435, -0.061, 0.0747, 0.2565, 0.4817, 0.7498, 1.062, 1.419, 1.825");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1041, 0.1154, 0.1542, 0.225, 0.3336, 0.4844, 0.6813, 0.9299, 1.233, 1.594",\
                 "0.1083, 0.1197, 0.158, 0.229, 0.3375, 0.4883, 0.6861, 0.9341, 1.238, 1.598",\
                 "0.1299, 0.1409, 0.1785, 0.2486, 0.3563, 0.5066, 0.7036, 0.9521, 1.255, 1.616",\
                 "0.1786, 0.1899, 0.2267, 0.2937, 0.3986, 0.5468, 0.7422, 0.9895, 1.291, 1.652",\
                 "0.2427, 0.2561, 0.2991, 0.3713, 0.4734, 0.6172, 0.8095, 1.054, 1.353, 1.712",\
                 "0.32, 0.3353, 0.3858, 0.4691, 0.582, 0.7257, 0.9121, 1.152, 1.447, 1.803",\
                 "0.4117, 0.4294, 0.4866, 0.5816, 0.71, 0.8672, 1.057, 1.29, 1.58, 1.93",\
                 "0.5187, 0.539, 0.6033, 0.71, 0.8535, 1.029, 1.234, 1.474, 1.758, 2.101",\
                 "0.6427, 0.6651, 0.7366, 0.8551, 1.014, 1.208, 1.434, 1.689, 1.982, 2.321",\
                 "0.7844, 0.8087, 0.8876, 1.018, 1.191, 1.405, 1.651, 1.929, 2.24, 2.588");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1097, 0.1307, 0.2049, 0.3464, 0.5664, 0.8766, 1.282, 1.793, 2.419, 3.164",\
                 "0.1098, 0.1308, 0.2049, 0.3464, 0.567, 0.8766, 1.282, 1.792, 2.418, 3.162",\
                 "0.1144, 0.134, 0.2056, 0.3465, 0.5675, 0.8748, 1.281, 1.792, 2.42, 3.164",\
                 "0.14, 0.1573, 0.2213, 0.3521, 0.5671, 0.876, 1.282, 1.792, 2.419, 3.163",\
                 "0.1944, 0.211, 0.2701, 0.3871, 0.5833, 0.8794, 1.282, 1.793, 2.418, 3.163",\
                 "0.2703, 0.2872, 0.3473, 0.4621, 0.6414, 0.9104, 1.293, 1.795, 2.418, 3.162",\
                 "0.3636, 0.3814, 0.4439, 0.5622, 0.7433, 0.9932, 1.343, 1.816, 2.423, 3.163",\
                 "0.4684, 0.488, 0.5586, 0.6836, 0.8696, 1.121, 1.451, 1.889, 2.46, 3.174",\
                 "0.5858, 0.609, 0.6848, 0.8204, 1.016, 1.278, 1.608, 2.024, 2.555, 3.23",\
                 "0.7132, 0.7402, 0.827, 0.975, 1.186, 1.456, 1.796, 2.209, 2.716, 3.349");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.005163, 0.01977, 0.04768, 0.09115, 0.1521, 0.2324, 0.3335, 0.457, 0.6041");
          values("0.1724, 0.1914, 0.2586, 0.386, 0.5837, 0.8591, 1.223, 1.68, 2.236, 2.901",\
                 "0.1721, 0.1914, 0.2584, 0.3857, 0.583, 0.8592, 1.222, 1.679, 2.237, 2.899",\
                 "0.1713, 0.1906, 0.2582, 0.386, 0.5832, 0.8596, 1.222, 1.679, 2.236, 2.9",\
                 "0.204, 0.2182, 0.2715, 0.3878, 0.5829, 0.8591, 1.222, 1.679, 2.237, 2.901",\
                 "0.2746, 0.2899, 0.3379, 0.4295, 0.5966, 0.8609, 1.224, 1.679, 2.237, 2.899",\
                 "0.3626, 0.381, 0.4369, 0.5284, 0.6679, 0.893, 1.229, 1.68, 2.236, 2.901",\
                 "0.467, 0.4878, 0.5536, 0.6572, 0.7996, 0.9938, 1.285, 1.7, 2.238, 2.9",\
                 "0.5852, 0.6094, 0.6866, 0.809, 0.9624, 1.155, 1.415, 1.78, 2.277, 2.908",\
                 "0.715, 0.745, 0.8362, 0.9752, 1.151, 1.36, 1.612, 1.938, 2.383, 2.963",\
                 "0.8628, 0.8942, 1.001, 1.161, 1.359, 1.589, 1.853, 2.171, 2.573, 3.1");
        }
      }
    }
  }

