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

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2271, 0.2269, 0.2265, 0.2264, 0.2261, 0.2259, 0.2261, 0.2261, \
                 0.226, 0.2259");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.04137, -0.04137, -0.04158, -0.0415, -0.04152, -0.04148, -0.04163, \
                 -0.04161, -0.04162, -0.04161");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1227, 0.1224, 0.1223, 0.1222, 0.1222, 0.1222, 0.1223, 0.1223, \
                 0.1223, 0.1222");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.04055, -0.04055, -0.04077, -0.04069, -0.04072, -0.04069, -0.04082, \
                 -0.04082, -0.04078, -0.04084");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1227, 0.1224, 0.1223, 0.1222, 0.1221, 0.1221, 0.1223, 0.1223, \
                 0.1222, 0.1222");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.04059, -0.04058, -0.04067, -0.04067, -0.04068, -0.04071, -0.04077, \
                 -0.04081, -0.0408, -0.0408");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1061, 0.1061, 0.1062, 0.1062, 0.1061, 0.1062, 0.1063, 0.1061, \
                 0.106, 0.106");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.0486, -0.04859, -0.04864, -0.04864, -0.04869, -0.04873, -0.04894, \
                 -0.04898, -0.04903, -0.04911");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1576, 0.1575, 0.1577, 0.1571, 0.1571, 0.1572, 0.1575, 0.1573, \
                 0.1574, 0.1573");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1213, -0.124, -0.1371, -0.1462, -0.1495, -0.151, -0.1523, -0.1529, \
                 -0.1533, -0.1537");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.08562, 0.08549, 0.08594, 0.08582, 0.08574, 0.08579, 0.08608, \
                 0.08609, 0.08607, 0.08609");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1038, -0.1022, -0.09801, -0.0924, -0.08801, -0.08498, -0.0835, \
                 -0.08209, -0.08105, -0.08015");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1571, 0.157, 0.1568, 0.1569, 0.1572, 0.1567, 0.157, 0.1569, \
                 0.1571, 0.1569");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1368, -0.1416, -0.1502, -0.1524, -0.1536, -0.1539, -0.1546, \
                 -0.155, -0.1552, -0.1553");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1576, 0.1574, 0.1572, 0.1571, 0.1571, 0.1572, 0.1575, 0.1574, \
                 0.1573, 0.1575");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1285, -0.1327, -0.1393, -0.1442, -0.1477, -0.1492, -0.1509, \
                 -0.1518, -0.1524, -0.1527");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1571, 0.157, 0.1568, 0.1569, 0.1572, 0.1567, 0.157, 0.157, 0.1571, \
                 0.157");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1458, -0.1473, -0.151, -0.1524, -0.1536, -0.1539, -0.1546, \
                 -0.1549, -0.1552, -0.1553");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2)&(!A3))" ;
      max_capacitance : 0.337 ;
      max_transition : 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("-0.02978, -0.0287, -0.02563, -0.02287, -0.02103, -0.0201, -0.01946, -0.01906, -0.01884, -0.0186",\
                 "-0.02738, -0.02606, -0.02234, -0.0189, -0.01623, -0.01452, -0.01358, -0.01287, -0.01243, -0.01205",\
                 "-0.006229, -0.006016, -0.005381, -0.004393, -0.00353, -0.002635, -0.002305, -0.001877, -0.001617, -0.001425",\
                 "0.04215, 0.04042, 0.03583, 0.03048, 0.02537, 0.02107, 0.01784, 0.01511, 0.01301, 0.01131",\
                 "0.129, 0.1249, 0.1137, 0.09861, 0.08385, 0.07094, 0.05984, 0.05087, 0.04338, 0.03734",\
                 "0.2643, 0.2581, 0.2399, 0.2135, 0.1857, 0.1599, 0.1374, 0.118, 0.1017, 0.08809",\
                 "0.455, 0.4468, 0.4213, 0.3837, 0.3403, 0.2988, 0.2609, 0.228, 0.1991, 0.1744",\
                 "0.7042, 0.6942, 0.6626, 0.6137, 0.5556, 0.4954, 0.4399, 0.3893, 0.3443, 0.3057",\
                 "1.015, 1.004, 0.9661, 0.9071, 0.8343, 0.7565, 0.6805, 0.6102, 0.5463, 0.4891",\
                 "1.39, 1.377, 1.336, 1.267, 1.18, 1.085, 0.9887, 0.8966, 0.8114, 0.7339");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.441, 0.4424, 0.4449, 0.4476, 0.4499, 0.4518, 0.4543, 0.4568, 0.4591, 0.462",\
                 "0.4382, 0.4392, 0.442, 0.4449, 0.4478, 0.4503, 0.4532, 0.4558, 0.4586, 0.4615",\
                 "0.4597, 0.4586, 0.4556, 0.4539, 0.4532, 0.4537, 0.4553, 0.4573, 0.4596, 0.4625",\
                 "0.5257, 0.5222, 0.5125, 0.5004, 0.4892, 0.4812, 0.4764, 0.4733, 0.4721, 0.4725",\
                 "0.6392, 0.6338, 0.6179, 0.5957, 0.5718, 0.5506, 0.5338, 0.5208, 0.5111, 0.5045",\
                 "0.8059, 0.7986, 0.7762, 0.7442, 0.7081, 0.6726, 0.6399, 0.6123, 0.5901, 0.5725",\
                 "1.031, 1.022, 0.9935, 0.951, 0.9034, 0.8533, 0.8058, 0.7603, 0.7216, 0.6885",\
                 "1.32, 1.309, 1.274, 1.222, 1.16, 1.097, 1.033, 0.9723, 0.9146, 0.861",\
                 "1.674, 1.662, 1.624, 1.562, 1.487, 1.408, 1.329, 1.251, 1.176, 1.104",\
                 "2.1, 2.086, 2.044, 1.974, 1.887, 1.792, 1.695, 1.602, 1.508, 1.418");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.08934, 0.0894, 0.08941, 0.08975, 0.0901, 0.09021, 0.09036, 0.09049, 0.09054, 0.09061",\
                 "0.08936, 0.08949, 0.08945, 0.08979, 0.09007, 0.09038, 0.09044, 0.09059, 0.09066, 0.09075",\
                 "0.09591, 0.09555, 0.09441, 0.0931, 0.09232, 0.09169, 0.09135, 0.09098, 0.09078, 0.09063",\
                 "0.1313, 0.1297, 0.125, 0.1188, 0.1129, 0.1076, 0.1037, 0.1008, 0.09849, 0.09681",\
                 "0.2158, 0.2123, 0.201, 0.1859, 0.1701, 0.156, 0.1437, 0.134, 0.1259, 0.1197",\
                 "0.3593, 0.3535, 0.335, 0.3081, 0.2783, 0.2501, 0.2248, 0.2038, 0.1857, 0.171",\
                 "0.5663, 0.5581, 0.5329, 0.4936, 0.4479, 0.402, 0.3592, 0.3222, 0.29, 0.2623",\
                 "0.8414, 0.831, 0.7991, 0.7474, 0.6852, 0.6205, 0.5576, 0.4997, 0.4492, 0.4049",\
                 "1.187, 1.175, 1.137, 1.074, 0.9956, 0.9111, 0.8264, 0.7463, 0.6727, 0.6077",\
                 "1.605, 1.592, 1.549, 1.476, 1.383, 1.278, 1.171, 1.067, 0.9694, 0.8798");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.6252, 0.6261, 0.6285, 0.6308, 0.6328, 0.6344, 0.6365, 0.6398, 0.6416, 0.6445",\
                 "0.6181, 0.6195, 0.6231, 0.6264, 0.6299, 0.6323, 0.6352, 0.6388, 0.6411, 0.644",\
                 "0.615, 0.6156, 0.6177, 0.6204, 0.6241, 0.628, 0.6318, 0.6353, 0.6386, 0.642",\
                 "0.6516, 0.6496, 0.6456, 0.641, 0.6382, 0.6372, 0.6381, 0.6398, 0.6416, 0.6445",\
                 "0.7524, 0.7478, 0.7357, 0.7187, 0.7025, 0.6894, 0.6801, 0.6733, 0.6686, 0.6665",\
                 "0.9253, 0.9186, 0.8974, 0.8683, 0.8357, 0.806, 0.7792, 0.7573, 0.7401, 0.727",\
                 "1.17, 1.161, 1.133, 1.091, 1.043, 0.9943, 0.9484, 0.9078, 0.8726, 0.8435",\
                 "1.488, 1.477, 1.443, 1.389, 1.326, 1.259, 1.195, 1.133, 1.077, 1.026",\
                 "1.881, 1.869, 1.83, 1.767, 1.689, 1.604, 1.52, 1.438, 1.36, 1.288",\
                 "2.352, 2.339, 2.297, 2.225, 2.134, 2.032, 1.927, 1.826, 1.726, 1.632");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.1827, 0.1826, 0.1826, 0.1823, 0.1823, 0.1827, 0.1826, 0.1828, 0.1829, 0.1828",\
                 "0.1758, 0.1757, 0.1757, 0.1753, 0.1753, 0.1756, 0.1755, 0.1754, 0.1754, 0.1756",\
                 "0.1736, 0.1729, 0.1717, 0.17, 0.1687, 0.1679, 0.1676, 0.1672, 0.1667, 0.1666",\
                 "0.2063, 0.2041, 0.1991, 0.1922, 0.1854, 0.1795, 0.1758, 0.1724, 0.1702, 0.1686",\
                 "0.2969, 0.2925, 0.2798, 0.2622, 0.244, 0.2281, 0.2148, 0.2039, 0.1956, 0.1889",\
                 "0.4591, 0.452, 0.4299, 0.3978, 0.3631, 0.33, 0.3012, 0.2773, 0.2571, 0.2412",\
                 "0.6994, 0.6893, 0.6586, 0.6108, 0.5554, 0.5005, 0.4508, 0.4069, 0.3699, 0.339",\
                 "1.022, 1.01, 0.9704, 0.9075, 0.8307, 0.7508, 0.6752, 0.6067, 0.547, 0.495",\
                 "1.43, 1.416, 1.368, 1.291, 1.194, 1.089, 0.985, 0.8874, 0.7999, 0.7224",\
                 "1.926, 1.91, 1.857, 1.767, 1.65, 1.52, 1.387, 1.258, 1.139, 1.032");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.7432, 0.7445, 0.7468, 0.7487, 0.7504, 0.7526, 0.755, 0.7568, 0.7606, 0.7625",\
                 "0.736, 0.7373, 0.7408, 0.7443, 0.7473, 0.7505, 0.7532, 0.7558, 0.7581, 0.762",\
                 "0.7286, 0.7294, 0.7322, 0.7361, 0.7406, 0.745, 0.7489, 0.7523, 0.7561, 0.76",\
                 "0.7515, 0.7503, 0.7482, 0.7462, 0.746, 0.7472, 0.7502, 0.7523, 0.7561, 0.7595",\
                 "0.8442, 0.8402, 0.8292, 0.8155, 0.8033, 0.7928, 0.7858, 0.7813, 0.7786, 0.778",\
                 "1.025, 1.018, 0.9981, 0.9683, 0.9384, 0.9105, 0.8861, 0.8668, 0.8506, 0.8395",\
                 "1.298, 1.289, 1.26, 1.215, 1.165, 1.116, 1.07, 1.029, 0.9941, 0.965",\
                 "1.661, 1.65, 1.615, 1.557, 1.487, 1.415, 1.347, 1.284, 1.226, 1.171",\
                 "2.115, 2.102, 2.061, 1.994, 1.908, 1.814, 1.721, 1.632, 1.55, 1.472",\
                 "2.661, 2.647, 2.602, 2.526, 2.428, 2.313, 2.196, 2.082, 1.974, 1.871");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.05476, 0.0607, 0.08124, 0.1198, 0.1794, 0.2626, 0.372, 0.5097, 0.6777, 0.8783",\
                 "0.06033, 0.06629, 0.08686, 0.1256, 0.1854, 0.2687, 0.3782, 0.516, 0.684, 0.8843",\
                 "0.0773, 0.08447, 0.1075, 0.1462, 0.2056, 0.2887, 0.3981, 0.5358, 0.7039, 0.9043",\
                 "0.08653, 0.09635, 0.1274, 0.1776, 0.2442, 0.3273, 0.4358, 0.5729, 0.7404, 0.9406",\
                 "0.08011, 0.09303, 0.1333, 0.1979, 0.2815, 0.3817, 0.4966, 0.6326, 0.7993, 0.9983",\
                 "0.05567, 0.07151, 0.1217, 0.2016, 0.3045, 0.4254, 0.5624, 0.7155, 0.8852, 1.083",\
                 "0.01211, 0.03108, 0.09053, 0.1863, 0.3093, 0.4528, 0.6139, 0.7909, 0.9854, 1.196",\
                 "-0.051, -0.0289, 0.0402, 0.1508, 0.2938, 0.4606, 0.6473, 0.8514, 1.071, 1.309",\
                 "-0.135, -0.1099, -0.0309, 0.094, 0.2557, 0.4465, 0.6593, 0.8916, 1.141, 1.407",\
                 "-0.2407, -0.2126, -0.1244, 0.0159, 0.1965, 0.4089, 0.6486, 0.9088, 1.188, 1.486");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.08768, 0.1014, 0.1509, 0.2466, 0.3943, 0.6009, 0.8727, 1.214, 1.631, 2.128",\
                 "0.09208, 0.1056, 0.1548, 0.2506, 0.3985, 0.6057, 0.8772, 1.219, 1.636, 2.133",\
                 "0.1215, 0.1339, 0.1796, 0.2725, 0.4188, 0.6248, 0.8961, 1.238, 1.654, 2.151",\
                 "0.178, 0.192, 0.2394, 0.3273, 0.4689, 0.6706, 0.9389, 1.278, 1.692, 2.189",\
                 "0.2555, 0.2724, 0.326, 0.4197, 0.5577, 0.7537, 1.016, 1.35, 1.762, 2.253",\
                 "0.3516, 0.3718, 0.4353, 0.5397, 0.6856, 0.8806, 1.136, 1.464, 1.869, 2.356",\
                 "0.4657, 0.4901, 0.5649, 0.6843, 0.8439, 1.048, 1.305, 1.626, 2.023, 2.503",\
                 "0.6008, 0.6283, 0.7141, 0.851, 1.03, 1.248, 1.516, 1.839, 2.23, 2.7",\
                 "0.7561, 0.7869, 0.8849, 1.04, 1.24, 1.479, 1.761, 2.097, 2.491, 2.956",\
                 "0.9331, 0.9688, 1.078, 1.251, 1.474, 1.738, 2.041, 2.391, 2.799, 3.268");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.05662, 0.0661, 0.09945, 0.1631, 0.2615, 0.4, 0.5834, 0.8116, 1.093, 1.428",\
                 "0.0565, 0.06608, 0.0994, 0.163, 0.2619, 0.4002, 0.5827, 0.8129, 1.093, 1.429",\
                 "0.07336, 0.08162, 0.1079, 0.1641, 0.2619, 0.4003, 0.5837, 0.8135, 1.095, 1.428",\
                 "0.1089, 0.1188, 0.1511, 0.2056, 0.2827, 0.4046, 0.5834, 0.8134, 1.093, 1.428",\
                 "0.1561, 0.1689, 0.2096, 0.2737, 0.3599, 0.4678, 0.613, 0.8185, 1.093, 1.429",\
                 "0.2141, 0.2311, 0.282, 0.3594, 0.458, 0.5786, 0.722, 0.8944, 1.128, 1.435",\
                 "0.2841, 0.3048, 0.3656, 0.46, 0.5746, 0.7102, 0.8664, 1.049, 1.257, 1.519",\
                 "0.366, 0.3898, 0.464, 0.5746, 0.7088, 0.862, 1.036, 1.229, 1.452, 1.703",\
                 "0.4568, 0.4862, 0.5732, 0.702, 0.858, 1.031, 1.224, 1.437, 1.673, 1.94",\
                 "0.5554, 0.5922, 0.695, 0.8438, 1.022, 1.219, 1.434, 1.668, 1.923, 2.202");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.186, 0.2151, 0.3131, 0.4909, 0.759, 1.131, 1.623, 2.24, 2.99, 3.886",\
                 "0.1836, 0.2126, 0.3123, 0.4906, 0.7595, 1.133, 1.623, 2.236, 2.987, 3.885",\
                 "0.1836, 0.2102, 0.3071, 0.4888, 0.7584, 1.131, 1.623, 2.236, 2.99, 3.889",\
                 "0.2103, 0.2352, 0.3181, 0.4849, 0.7578, 1.133, 1.623, 2.236, 2.986, 3.885",\
                 "0.2482, 0.2709, 0.3548, 0.5111, 0.761, 1.13, 1.622, 2.236, 2.986, 3.882",\
                 "0.3073, 0.3325, 0.4132, 0.5638, 0.8022, 1.146, 1.618, 2.237, 2.985, 3.883",\
                 "0.3768, 0.4058, 0.4946, 0.6436, 0.8732, 1.204, 1.651, 2.243, 2.986, 3.881",\
                 "0.455, 0.4886, 0.5878, 0.7522, 0.9742, 1.295, 1.726, 2.288, 3.004, 3.89",\
                 "0.5428, 0.5786, 0.6924, 0.8712, 1.109, 1.418, 1.839, 2.379, 3.062, 3.905",\
                 "0.638, 0.6792, 0.8018, 1.002, 1.259, 1.577, 1.986, 2.515, 3.173, 3.989");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.08399, 0.09063, 0.113, 0.1539, 0.2155, 0.3002, 0.4107, 0.5492, 0.7179, 0.9186",\
                 "0.08904, 0.0957, 0.1181, 0.159, 0.2205, 0.3052, 0.4157, 0.5542, 0.7229, 0.9237",\
                 "0.1093, 0.1157, 0.1373, 0.1775, 0.2387, 0.3233, 0.4336, 0.5721, 0.7407, 0.9414",\
                 "0.1317, 0.1402, 0.1679, 0.2141, 0.2769, 0.3605, 0.4701, 0.6078, 0.776, 0.9764",\
                 "0.1417, 0.1526, 0.1877, 0.2461, 0.324, 0.4192, 0.531, 0.6674, 0.8343, 1.034",\
                 "0.137, 0.1504, 0.1932, 0.2647, 0.3594, 0.4731, 0.6047, 0.7532, 0.9204, 1.118",\
                 "0.1174, 0.1328, 0.1832, 0.2671, 0.379, 0.5138, 0.6671, 0.838, 1.027, 1.233",\
                 "0.0823, 0.0997, 0.1566, 0.2531, 0.3819, 0.5371, 0.7144, 0.9096, 1.123, 1.355",\
                 "0.0318, 0.0511, 0.1145, 0.222, 0.3678, 0.5431, 0.7438, 0.965, 1.205, 1.463",\
                 "-0.0357, -0.0144, 0.0555, 0.1741, 0.3352, 0.5305, 0.7544, 1.002, 1.27, 1.556");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.1661, 0.1811, 0.2329, 0.3289, 0.4771, 0.6833, 0.955, 1.296, 1.713, 2.21",\
                 "0.1678, 0.1833, 0.2353, 0.3319, 0.4809, 0.6876, 0.9592, 1.301, 1.718, 2.215",\
                 "0.1805, 0.1956, 0.2473, 0.3441, 0.4929, 0.6998, 0.9728, 1.315, 1.731, 2.228",\
                 "0.2104, 0.2258, 0.2785, 0.3731, 0.5191, 0.7243, 0.9948, 1.336, 1.752, 2.25",\
                 "0.2648, 0.2812, 0.3347, 0.4309, 0.5752, 0.7751, 1.041, 1.378, 1.792, 2.286",\
                 "0.3392, 0.3578, 0.4179, 0.5196, 0.6649, 0.8641, 1.123, 1.454, 1.861, 2.35",\
                 "0.4308, 0.4523, 0.5206, 0.634, 0.7884, 0.9888, 1.247, 1.57, 1.97, 2.451",\
                 "0.5379, 0.5622, 0.64, 0.767, 0.937, 1.147, 1.408, 1.731, 2.123, 2.595",\
                 "0.6609, 0.6885, 0.7758, 0.9179, 1.105, 1.334, 1.605, 1.931, 2.323, 2.788",\
                 "0.8003, 0.8307, 0.9283, 1.085, 1.292, 1.541, 1.832, 2.168, 2.562, 3.029");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.1002, 0.1105, 0.1461, 0.2118, 0.3118, 0.4522, 0.6357, 0.8656, 1.147, 1.481",\
                 "0.09998, 0.1103, 0.1457, 0.2113, 0.3122, 0.4517, 0.6354, 0.866, 1.147, 1.481",\
                 "0.1054, 0.1141, 0.1462, 0.211, 0.3119, 0.4519, 0.6351, 0.8659, 1.147, 1.481",\
                 "0.1524, 0.1614, 0.1914, 0.2419, 0.3235, 0.4533, 0.6349, 0.866, 1.147, 1.481",\
                 "0.2153, 0.2264, 0.2619, 0.3204, 0.4012, 0.5061, 0.6567, 0.8688, 1.146, 1.481",\
                 "0.2934, 0.3075, 0.3502, 0.4185, 0.5089, 0.6223, 0.761, 0.9362, 1.174, 1.487",\
                 "0.3872, 0.4041, 0.4543, 0.5342, 0.6384, 0.7632, 0.9116, 1.089, 1.297, 1.563",\
                 "0.4968, 0.516, 0.5768, 0.6704, 0.7872, 0.9268, 1.089, 1.276, 1.494, 1.742",\
                 "0.6194, 0.6436, 0.7138, 0.8234, 0.9578, 1.113, 1.292, 1.492, 1.72, 1.981",\
                 "0.7596, 0.7872, 0.8694, 0.9948, 1.145, 1.321, 1.518, 1.736, 1.977, 2.25");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.2122, 0.2368, 0.3246, 0.4943, 0.7606, 1.132, 1.62, 2.238, 2.99, 3.888",\
                 "0.2127, 0.2374, 0.3248, 0.4942, 0.7609, 1.133, 1.622, 2.239, 2.991, 3.887",\
                 "0.217, 0.2405, 0.326, 0.4946, 0.7611, 1.132, 1.62, 2.239, 2.99, 3.889",\
                 "0.2435, 0.2656, 0.3435, 0.5003, 0.7615, 1.133, 1.624, 2.24, 2.986, 3.889",\
                 "0.2895, 0.3087, 0.3832, 0.5325, 0.7754, 1.133, 1.622, 2.236, 2.989, 3.886",\
                 "0.3691, 0.3882, 0.4545, 0.5898, 0.8186, 1.16, 1.63, 2.237, 2.986, 3.886",\
                 "0.4624, 0.483, 0.5524, 0.6834, 0.8932, 1.215, 1.66, 2.25, 2.987, 3.888",\
                 "0.5658, 0.5894, 0.6654, 0.8032, 1.008, 1.308, 1.729, 2.293, 3.015, 3.886",\
                 "0.6806, 0.7032, 0.7874, 0.9392, 1.155, 1.442, 1.842, 2.375, 3.064, 3.922",\
                 "0.8028, 0.8302, 0.9214, 1.089, 1.318, 1.619, 1.995, 2.505, 3.161, 3.982");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.08912, 0.0968, 0.122, 0.1666, 0.2322, 0.32, 0.433, 0.5733, 0.7434, 0.9451",\
                 "0.09331, 0.1009, 0.1259, 0.1704, 0.2357, 0.3237, 0.4366, 0.577, 0.747, 0.9489",\
                 "0.1146, 0.1214, 0.1446, 0.1879, 0.2526, 0.3402, 0.4529, 0.5931, 0.7631, 0.965",\
                 "0.1435, 0.1522, 0.1803, 0.227, 0.2907, 0.3766, 0.4885, 0.6282, 0.7977, 0.9992",\
                 "0.1621, 0.173, 0.2082, 0.2661, 0.3436, 0.4381, 0.5496, 0.6875, 0.8557, 1.056",\
                 "0.169, 0.1821, 0.2239, 0.294, 0.3876, 0.4994, 0.6287, 0.7752, 0.9423, 1.141",\
                 "0.164, 0.1792, 0.2281, 0.3099, 0.4191, 0.5501, 0.6995, 0.8672, 1.053, 1.257",\
                 "0.1477, 0.1643, 0.2198, 0.3127, 0.4375, 0.5872, 0.759, 0.9492, 1.158, 1.386",\
                 "0.1203, 0.1383, 0.1992, 0.303, 0.4421, 0.6121, 0.8055, 1.019, 1.253, 1.505",\
                 "0.0817, 0.1014, 0.1671, 0.2798, 0.4344, 0.6213, 0.8364, 1.074, 1.334, 1.613");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.191, 0.2061, 0.2577, 0.3541, 0.502, 0.7085, 0.9799, 1.321, 1.738, 2.234",\
                 "0.1934, 0.2089, 0.2611, 0.3579, 0.5066, 0.7134, 0.9849, 1.327, 1.744, 2.24",\
                 "0.203, 0.2182, 0.2703, 0.3672, 0.5162, 0.7243, 0.9964, 1.338, 1.755, 2.253",\
                 "0.2221, 0.2374, 0.2894, 0.3848, 0.5315, 0.7379, 1.009, 1.351, 1.768, 2.265",\
                 "0.2594, 0.2755, 0.3276, 0.4226, 0.5669, 0.7679, 1.035, 1.373, 1.788, 2.283",\
                 "0.3076, 0.3261, 0.3859, 0.4868, 0.6305, 0.8287, 1.088, 1.42, 1.828, 2.318",\
                 "0.3669, 0.3878, 0.456, 0.5691, 0.7234, 0.9212, 1.178, 1.5, 1.899, 2.381",\
                 "0.4361, 0.46, 0.537, 0.6632, 0.8333, 1.044, 1.301, 1.621, 2.011, 2.482",\
                 "0.5155, 0.5427, 0.6277, 0.7691, 0.9561, 1.185, 1.456, 1.776, 2.164, 2.626",\
                 "0.6047, 0.6338, 0.7281, 0.8835, 1.09, 1.339, 1.63, 1.965, 2.353, 2.812");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.1256, 0.1377, 0.176, 0.2448, 0.3472, 0.4882, 0.6726, 0.9035, 1.185, 1.52",\
                 "0.1236, 0.136, 0.1744, 0.2442, 0.3477, 0.4882, 0.6726, 0.904, 1.186, 1.521",\
                 "0.1254, 0.1352, 0.171, 0.2408, 0.3459, 0.4887, 0.6723, 0.9034, 1.185, 1.52",\
                 "0.1802, 0.1895, 0.2182, 0.2674, 0.3527, 0.4877, 0.6718, 0.9041, 1.185, 1.521",\
                 "0.2563, 0.2673, 0.3005, 0.3547, 0.4311, 0.5344, 0.6887, 0.9056, 1.185, 1.521",\
                 "0.353, 0.3659, 0.4046, 0.4664, 0.5499, 0.6562, 0.7898, 0.9664, 1.209, 1.525",\
                 "0.4706, 0.486, 0.5326, 0.6038, 0.6956, 0.8084, 0.9478, 1.12, 1.325, 1.596",\
                 "0.6102, 0.6288, 0.6848, 0.766, 0.8682, 0.99, 1.139, 1.314, 1.524, 1.769",\
                 "0.7756, 0.7952, 0.861, 0.9566, 1.07, 1.204, 1.362, 1.544, 1.76, 2.012",\
                 "0.9606, 0.9836, 1.061, 1.169, 1.302, 1.449, 1.617, 1.809, 2.033, 2.289");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003319, 0.01146, 0.027, 0.05122, 0.0852, 0.1299, 0.1862, 0.255, 0.337");
          values("0.213, 0.2375, 0.3248, 0.4944, 0.7607, 1.131, 1.623, 2.238, 2.988, 3.889",\
                 "0.2139, 0.238, 0.3251, 0.4941, 0.761, 1.131, 1.624, 2.239, 2.986, 3.89",\
                 "0.2171, 0.2406, 0.326, 0.4944, 0.7597, 1.131, 1.622, 2.238, 2.994, 3.887",\
                 "0.2351, 0.2573, 0.337, 0.4979, 0.7598, 1.131, 1.623, 2.239, 2.99, 3.886",\
                 "0.2808, 0.2999, 0.3722, 0.5225, 0.7715, 1.135, 1.62, 2.236, 2.99, 3.889",\
                 "0.3758, 0.3936, 0.4569, 0.586, 0.8114, 1.155, 1.628, 2.236, 2.989, 3.881",\
                 "0.4904, 0.5108, 0.5774, 0.7028, 0.9014, 1.212, 1.657, 2.252, 2.993, 3.889",\
                 "0.622, 0.6424, 0.715, 0.8488, 1.047, 1.326, 1.734, 2.291, 3.01, 3.888",\
                 "0.7678, 0.7888, 0.864, 1.011, 1.222, 1.497, 1.87, 2.387, 3.065, 3.924",\
                 "0.9318, 0.9508, 1.033, 1.187, 1.415, 1.711, 2.069, 2.546, 3.18, 3.987");
        }
      }
    }
  }

