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

  cell(gf180mcu_fd_sc_mcu7t5v0__and3_2) {
    area : 24.147200 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.0192, 0.01915, 0.0191, 0.01905, 0.01905, 0.01907, 0.01906, 0.01905, \
                  0.01906, 0.01905");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01045, -0.01049, -0.01048, -0.01049, -0.01051, -0.01052, -0.01054, \
                  -0.01056, -0.0106, -0.01063");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01918, 0.01916, 0.01908, 0.01908, 0.01906, 0.01908, 0.01907, \
                  0.01907, 0.01904, 0.01905");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01034, -0.01037, -0.01039, -0.0104, -0.0104, -0.01044, -0.01045, \
                  -0.01046, -0.01048, -0.01051");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01913, 0.01913, 0.0191, 0.01909, 0.01906, 0.01907, 0.01906, \
                  0.01906, 0.01905, 0.01905");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01182, 0.01179, 0.01173, 0.01169, 0.01166, 0.01159, 0.01156, \
                  0.01154, 0.01151, 0.01144");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.02475, 0.02527, 0.02585, 0.02648, 0.02692, 0.02725, 0.02746, \
                  0.02761, 0.02769, 0.02776");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01675, -0.01672, -0.01665, -0.01666, -0.01662, -0.01667, -0.01668, \
                  -0.01669, -0.01667, -0.01669");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.02112, 0.01881, 0.01745, 0.0171, 0.01691, 0.01684, 0.01679, \
                  0.01675, 0.01671, 0.01668");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01669, -0.01669, -0.01668, -0.01667, -0.01664, -0.01669, -0.01668, \
                  -0.01669, -0.01669, -0.01667");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01898, 0.01898, 0.01895, 0.01892, 0.0189, 0.0189, 0.01889, 0.01888, \
                  0.01885, 0.01883");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01112, -0.01114, -0.01109, -0.01111, -0.01111, -0.01116, -0.01121, \
                  -0.01122, -0.01128, -0.01132");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.0177, 0.01688, 0.01673, 0.01669, 0.01669, 0.01671, 0.01671, \
                  0.01672, 0.0167, 0.0167");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01672, -0.01671, -0.01665, -0.01664, -0.01663, -0.01666, -0.01667, \
                  -0.01667, -0.01668, -0.01667");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.02018, 0.01845, 0.0171, 0.01683, 0.01672, 0.01668, 0.01666, \
                  0.01664, 0.01663, 0.01661");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01669, -0.0167, -0.01667, -0.01665, -0.01663, -0.01669, -0.01668, \
                  -0.01666, -0.01668, -0.01669");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01935, 0.01774, 0.01696, 0.01671, 0.01665, 0.01665, 0.01662, \
                  0.01662, 0.01661, 0.01659");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.01672, -0.01672, -0.01666, -0.01664, -0.01665, -0.01668, -0.01669, \
                  -0.01667, -0.01669, -0.01669");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 0.7197 ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1863, 0.1802, 0.1715, 0.1668, 0.1642, 0.1627, 0.1617, 0.1611, 0.1606, 0.1604",\
                 "0.1864, 0.1802, 0.1715, 0.1668, 0.1643, 0.1627, 0.1618, 0.1612, 0.1607, 0.1604",\
                 "0.1903, 0.1839, 0.1747, 0.1697, 0.1672, 0.1656, 0.1646, 0.164, 0.1635, 0.1632",\
                 "0.2158, 0.2075, 0.194, 0.1863, 0.1821, 0.1795, 0.1779, 0.1769, 0.1762, 0.1757",\
                 "0.2652, 0.2546, 0.2354, 0.222, 0.214, 0.2093, 0.2064, 0.2045, 0.2032, 0.2022",\
                 "0.3372, 0.3245, 0.2987, 0.2785, 0.2657, 0.2576, 0.2526, 0.249, 0.2467, 0.245",\
                 "0.4304, 0.4159, 0.3843, 0.3567, 0.338, 0.3256, 0.3173, 0.3116, 0.3078, 0.3051",\
                 "0.5451, 0.5291, 0.4925, 0.4569, 0.4318, 0.4142, 0.4021, 0.3938, 0.3879, 0.3837",\
                 "0.6821, 0.6649, 0.6236, 0.5807, 0.5481, 0.5247, 0.5079, 0.4963, 0.4879, 0.4817",\
                 "0.8416, 0.8235, 0.7785, 0.7289, 0.6882, 0.6583, 0.6365, 0.6204, 0.6089, 0.6005");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1428, 0.1341, 0.1217, 0.1148, 0.1113, 0.1101, 0.1099, 0.1103, 0.1113, 0.1168",\
                 "0.1424, 0.1338, 0.1212, 0.1143, 0.1109, 0.1098, 0.1096, 0.1103, 0.1117, 0.1154",\
                 "0.1455, 0.1366, 0.124, 0.1169, 0.1131, 0.112, 0.1114, 0.1125, 0.1135, 0.1173",\
                 "0.1654, 0.1558, 0.1414, 0.1319, 0.1268, 0.1245, 0.1236, 0.124, 0.1243, 0.1297",\
                 "0.2042, 0.1934, 0.1755, 0.1635, 0.1553, 0.1512, 0.1484, 0.1481, 0.1484, 0.154",\
                 "0.2645, 0.252, 0.2301, 0.2126, 0.2017, 0.1951, 0.1902, 0.1881, 0.1873, 0.1928",\
                 "0.3447, 0.3306, 0.3038, 0.2818, 0.266, 0.257, 0.2503, 0.246, 0.2424, 0.2482",\
                 "0.4447, 0.4291, 0.3978, 0.3703, 0.3502, 0.336, 0.3274, 0.3216, 0.3173, 0.3222",\
                 "0.5657, 0.5486, 0.5127, 0.4808, 0.4547, 0.4351, 0.4217, 0.4152, 0.4103, 0.4181",\
                 "0.707, 0.6888, 0.6489, 0.6111, 0.581, 0.5556, 0.5383, 0.526, 0.5212, 0.5358");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.2147, 0.2078, 0.197, 0.1909, 0.1872, 0.1852, 0.1839, 0.1831, 0.1825, 0.1821",\
                 "0.2143, 0.2073, 0.1964, 0.1905, 0.187, 0.1848, 0.1834, 0.1827, 0.1821, 0.1817",\
                 "0.2178, 0.2107, 0.1995, 0.1931, 0.1895, 0.1873, 0.1861, 0.1852, 0.1846, 0.1843",\
                 "0.2429, 0.2342, 0.2195, 0.2103, 0.2051, 0.202, 0.2001, 0.1989, 0.198, 0.1974",\
                 "0.2948, 0.2838, 0.2632, 0.2485, 0.2393, 0.2339, 0.2304, 0.2281, 0.2267, 0.2255",\
                 "0.3707, 0.3578, 0.3309, 0.3091, 0.2949, 0.2857, 0.2798, 0.2758, 0.2731, 0.2712",\
                 "0.4697, 0.455, 0.4226, 0.3931, 0.3723, 0.3583, 0.3492, 0.3428, 0.3383, 0.3352",\
                 "0.5917, 0.5758, 0.5382, 0.5008, 0.4731, 0.4531, 0.4397, 0.4302, 0.4235, 0.4186",\
                 "0.7375, 0.7202, 0.6784, 0.6332, 0.5979, 0.5716, 0.5529, 0.5394, 0.5301, 0.5228",\
                 "0.9078, 0.8894, 0.8437, 0.7916, 0.7479, 0.7148, 0.6903, 0.6723, 0.6591, 0.6492");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1429, 0.1341, 0.1218, 0.1148, 0.1113, 0.1102, 0.1103, 0.1107, 0.1117, 0.1158",\
                 "0.1422, 0.1334, 0.1212, 0.1142, 0.1107, 0.1094, 0.1096, 0.11, 0.1113, 0.1154",\
                 "0.144, 0.1352, 0.1226, 0.1154, 0.1116, 0.1105, 0.1106, 0.111, 0.1117, 0.1159",\
                 "0.1617, 0.1522, 0.138, 0.1288, 0.1239, 0.1219, 0.1214, 0.1211, 0.1217, 0.1261",\
                 "0.1999, 0.1891, 0.1713, 0.1598, 0.1518, 0.1481, 0.1463, 0.1452, 0.1459, 0.1504",\
                 "0.2606, 0.2482, 0.2262, 0.2094, 0.1992, 0.1922, 0.188, 0.1852, 0.1848, 0.1892",\
                 "0.3421, 0.3284, 0.3016, 0.2796, 0.2646, 0.2556, 0.25, 0.2457, 0.2431, 0.2477",\
                 "0.4441, 0.4291, 0.3986, 0.371, 0.35, 0.336, 0.3292, 0.3231, 0.3191, 0.3244",\
                 "0.567, 0.5507, 0.5158, 0.4831, 0.4579, 0.4384, 0.426, 0.4195, 0.4153, 0.4223",\
                 "0.7114, 0.6947, 0.6557, 0.6179, 0.5875, 0.5624, 0.5452, 0.5336, 0.5299, 0.5448");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.2426, 0.2349, 0.2221, 0.2144, 0.2099, 0.2072, 0.2056, 0.2045, 0.2037, 0.2032",\
                 "0.2415, 0.2338, 0.2211, 0.2133, 0.2089, 0.2061, 0.2044, 0.2034, 0.2026, 0.2021",\
                 "0.245, 0.237, 0.2239, 0.2161, 0.2116, 0.2088, 0.2071, 0.206, 0.2053, 0.2047",\
                 "0.2698, 0.2607, 0.2446, 0.234, 0.2279, 0.2243, 0.2219, 0.2205, 0.2196, 0.2188",\
                 "0.3246, 0.3134, 0.2915, 0.2752, 0.2649, 0.2587, 0.2547, 0.252, 0.2503, 0.249",\
                 "0.4059, 0.3929, 0.3648, 0.3416, 0.3255, 0.3152, 0.3085, 0.304, 0.3009, 0.2987",\
                 "0.5138, 0.499, 0.4655, 0.434, 0.4111, 0.3955, 0.3849, 0.3776, 0.3726, 0.369",\
                 "0.6475, 0.6313, 0.5928, 0.5533, 0.5227, 0.5008, 0.4854, 0.4746, 0.4669, 0.4613",\
                 "0.8083, 0.7912, 0.748, 0.7007, 0.6622, 0.633, 0.6116, 0.5963, 0.5852, 0.577",\
                 "0.9972, 0.9789, 0.932, 0.8779, 0.8306, 0.7932, 0.7653, 0.7445, 0.7292, 0.7177");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1428, 0.134, 0.1216, 0.1148, 0.1113, 0.1103, 0.1103, 0.1107, 0.1117, 0.1158",\
                 "0.1421, 0.1334, 0.121, 0.1141, 0.1106, 0.1095, 0.1103, 0.1096, 0.1109, 0.117",\
                 "0.1427, 0.1339, 0.1215, 0.1142, 0.1105, 0.1094, 0.1103, 0.11, 0.1106, 0.1148",\
                 "0.1579, 0.1487, 0.1347, 0.1261, 0.1216, 0.1197, 0.1186, 0.1186, 0.1203, 0.1259",\
                 "0.196, 0.1853, 0.1676, 0.1569, 0.1498, 0.1459, 0.1445, 0.1434, 0.1441, 0.1489",\
                 "0.2582, 0.2462, 0.2241, 0.2077, 0.198, 0.1921, 0.188, 0.1859, 0.1876, 0.1908",\
                 "0.3434, 0.3298, 0.3029, 0.2814, 0.2662, 0.258, 0.2528, 0.2486, 0.2456, 0.2497",\
                 "0.4505, 0.4362, 0.4049, 0.3774, 0.3577, 0.3441, 0.3371, 0.3317, 0.3284, 0.3331",\
                 "0.5806, 0.5653, 0.5305, 0.4979, 0.4712, 0.4531, 0.4404, 0.4342, 0.4311, 0.4375",\
                 "0.7347, 0.7186, 0.6804, 0.6419, 0.6098, 0.5868, 0.5682, 0.5577, 0.5547, 0.5666");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.229, 0.262, 0.3462, 0.4729, 0.6491, 0.888, 1.201, 1.595, 2.076, 2.651",\
                 "0.2425, 0.2753, 0.3596, 0.4862, 0.6624, 0.9014, 1.214, 1.608, 2.089, 2.663",\
                 "0.2938, 0.3265, 0.4104, 0.5369, 0.7131, 0.9521, 1.265, 1.659, 2.14, 2.713",\
                 "0.3885, 0.4223, 0.5075, 0.6343, 0.8103, 1.049, 1.361, 1.755, 2.236, 2.809",\
                 "0.5024, 0.5391, 0.6306, 0.7619, 0.9397, 1.178, 1.489, 1.883, 2.363, 2.937",\
                 "0.6292, 0.6707, 0.7707, 0.9098, 1.093, 1.332, 1.643, 2.036, 2.516, 3.089",\
                 "0.7696, 0.815, 0.9243, 1.073, 1.265, 1.511, 1.824, 2.216, 2.695, 3.267",\
                 "0.9229, 0.9718, 1.091, 1.251, 1.452, 1.707, 2.029, 2.424, 2.903, 3.475",\
                 "1.09, 1.144, 1.273, 1.443, 1.654, 1.919, 2.25, 2.655, 3.141, 3.712",\
                 "1.273, 1.33, 1.468, 1.651, 1.872, 2.146, 2.486, 2.904, 3.401, 3.983");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.3154, 0.3567, 0.471, 0.6634, 0.9518, 1.354, 1.885, 2.553, 3.373, 4.347",\
                 "0.3215, 0.3628, 0.4772, 0.6698, 0.9582, 1.361, 1.891, 2.561, 3.378, 4.351",\
                 "0.3503, 0.3915, 0.5055, 0.6981, 0.9863, 1.389, 1.919, 2.59, 3.406, 4.382",\
                 "0.4042, 0.4457, 0.5596, 0.7512, 1.038, 1.44, 1.97, 2.639, 3.457, 4.433",\
                 "0.4595, 0.5019, 0.6166, 0.8077, 1.094, 1.495, 2.023, 2.692, 3.508, 4.483",\
                 "0.5082, 0.5529, 0.6709, 0.8629, 1.149, 1.548, 2.076, 2.743, 3.558, 4.534",\
                 "0.5435, 0.5917, 0.7144, 0.911, 1.2, 1.599, 2.126, 2.792, 3.606, 4.579",\
                 "0.5646, 0.6157, 0.7447, 0.9455, 1.24, 1.645, 2.173, 2.837, 3.65, 4.621",\
                 "0.5692, 0.6237, 0.7595, 0.9654, 1.264, 1.677, 2.213, 2.881, 3.693, 4.662",\
                 "0.5544, 0.6127, 0.7571, 0.9672, 1.272, 1.692, 2.238, 2.916, 3.732, 4.702");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.08638, 0.1209, 0.216, 0.3858, 0.6582, 1.058, 1.591, 2.272, 3.096, 4.088",\
                 "0.08666, 0.1206, 0.2159, 0.386, 0.6578, 1.058, 1.591, 2.271, 3.096, 4.091",\
                 "0.08684, 0.1213, 0.2165, 0.3865, 0.658, 1.058, 1.592, 2.271, 3.099, 4.091",\
                 "0.1012, 0.1342, 0.2248, 0.3907, 0.661, 1.058, 1.593, 2.272, 3.101, 4.09",\
                 "0.1264, 0.1614, 0.251, 0.4094, 0.669, 1.061, 1.591, 2.271, 3.095, 4.086",\
                 "0.1584, 0.1966, 0.2878, 0.4422, 0.6918, 1.071, 1.597, 2.269, 3.1, 4.089",\
                 "0.1922, 0.2356, 0.3322, 0.4846, 0.7318, 1.101, 1.609, 2.274, 3.099, 4.087",\
                 "0.2282, 0.2756, 0.3792, 0.5322, 0.779, 1.147, 1.65, 2.298, 3.106, 4.087",\
                 "0.2652, 0.3178, 0.4326, 0.5854, 0.8298, 1.202, 1.708, 2.352, 3.143, 4.102",\
                 "0.3038, 0.3608, 0.4842, 0.6446, 0.8856, 1.256, 1.772, 2.429, 3.213, 4.154");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1174, 0.1673, 0.3314, 0.6493, 1.165, 1.901, 2.871, 4.098, 5.595, 7.383",\
                 "0.1179, 0.1673, 0.3312, 0.6491, 1.163, 1.902, 2.875, 4.098, 5.595, 7.378",\
                 "0.1179, 0.1674, 0.3314, 0.6497, 1.162, 1.902, 2.876, 4.104, 5.596, 7.378",\
                 "0.1219, 0.1724, 0.3357, 0.651, 1.165, 1.901, 2.876, 4.097, 5.595, 7.38",\
                 "0.1336, 0.1826, 0.343, 0.6596, 1.167, 1.902, 2.876, 4.097, 5.597, 7.383",\
                 "0.1508, 0.2008, 0.3582, 0.6708, 1.175, 1.907, 2.874, 4.104, 5.594, 7.384",\
                 "0.173, 0.2238, 0.3806, 0.6924, 1.194, 1.916, 2.881, 4.109, 5.598, 7.378",\
                 "0.1958, 0.2496, 0.4056, 0.7182, 1.226, 1.943, 2.897, 4.109, 5.603, 7.383",\
                 "0.2224, 0.279, 0.436, 0.7454, 1.259, 1.986, 2.933, 4.132, 5.609, 7.402",\
                 "0.251, 0.3108, 0.4692, 0.7752, 1.294, 2.034, 2.994, 4.183, 5.644, 7.399");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.2563, 0.2912, 0.379, 0.5075, 0.6844, 0.9236, 1.236, 1.63, 2.112, 2.685",\
                 "0.2686, 0.3034, 0.3913, 0.5198, 0.6968, 0.9359, 1.249, 1.642, 2.124, 2.698",\
                 "0.3197, 0.3544, 0.4419, 0.5703, 0.7472, 0.9864, 1.299, 1.693, 2.175, 2.748",\
                 "0.4216, 0.457, 0.5449, 0.6732, 0.8498, 1.089, 1.401, 1.795, 2.276, 2.849",\
                 "0.5503, 0.5887, 0.6829, 0.8152, 0.9931, 1.231, 1.543, 1.936, 2.417, 2.99",\
                 "0.6994, 0.7423, 0.8447, 0.984, 1.166, 1.405, 1.716, 2.108, 2.588, 3.161",\
                 "0.8692, 0.916, 1.028, 1.177, 1.367, 1.611, 1.922, 2.314, 2.793, 3.365",\
                 "1.06, 1.111, 1.233, 1.393, 1.592, 1.844, 2.161, 2.554, 3.033, 3.604",\
                 "1.274, 1.329, 1.461, 1.633, 1.841, 2.101, 2.428, 2.829, 3.311, 3.881",\
                 "1.512, 1.57, 1.713, 1.897, 2.116, 2.385, 2.72, 3.131, 3.623, 4.199");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.3427, 0.384, 0.4982, 0.6908, 0.9793, 1.382, 1.913, 2.583, 3.399, 4.376",\
                 "0.347, 0.3883, 0.5025, 0.6951, 0.9837, 1.386, 1.917, 2.586, 3.405, 4.378",\
                 "0.3613, 0.4024, 0.5166, 0.7088, 0.9971, 1.399, 1.931, 2.599, 3.418, 4.393",\
                 "0.3936, 0.4352, 0.5496, 0.7415, 1.029, 1.43, 1.961, 2.63, 3.448, 4.424",\
                 "0.4281, 0.4717, 0.5876, 0.7798, 1.066, 1.467, 1.997, 2.664, 3.483, 4.454",\
                 "0.4522, 0.4985, 0.6189, 0.814, 1.101, 1.5, 2.028, 2.694, 3.51, 4.486",\
                 "0.4578, 0.5071, 0.6338, 0.8335, 1.126, 1.527, 2.054, 2.72, 3.533, 4.508",\
                 "0.4419, 0.4948, 0.6284, 0.8335, 1.133, 1.542, 2.072, 2.737, 3.55, 4.521",\
                 "0.4014, 0.4578, 0.5985, 0.8105, 1.116, 1.535, 2.075, 2.746, 3.558, 4.527",\
                 "0.3358, 0.3958, 0.5439, 0.7623, 1.075, 1.502, 2.054, 2.737, 3.557, 4.527");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.09542, 0.1311, 0.2248, 0.3918, 0.6616, 1.058, 1.593, 2.269, 3.097, 4.09",\
                 "0.0961, 0.1309, 0.225, 0.3919, 0.661, 1.057, 1.593, 2.27, 3.098, 4.09",\
                 "0.0957, 0.1318, 0.2252, 0.3925, 0.661, 1.058, 1.592, 2.268, 3.098, 4.09",\
                 "0.1071, 0.1419, 0.2321, 0.396, 0.6634, 1.06, 1.593, 2.272, 3.1, 4.087",\
                 "0.1326, 0.169, 0.2578, 0.4124, 0.672, 1.062, 1.592, 2.272, 3.101, 4.09",\
                 "0.1646, 0.205, 0.2942, 0.443, 0.6912, 1.07, 1.596, 2.273, 3.096, 4.088",\
                 "0.198, 0.2426, 0.3408, 0.485, 0.7278, 1.093, 1.606, 2.276, 3.098, 4.084",\
                 "0.2358, 0.2856, 0.389, 0.535, 0.773, 1.137, 1.638, 2.29, 3.104, 4.087",\
                 "0.2752, 0.33, 0.444, 0.5896, 0.8242, 1.187, 1.689, 2.332, 3.131, 4.096",\
                 "0.3166, 0.3766, 0.5012, 0.6524, 0.8824, 1.243, 1.75, 2.399, 3.187, 4.135");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.118, 0.1671, 0.3321, 0.6492, 1.164, 1.902, 2.87, 4.102, 5.596, 7.383",\
                 "0.1174, 0.1672, 0.3322, 0.6493, 1.163, 1.901, 2.871, 4.096, 5.604, 7.382",\
                 "0.1174, 0.1671, 0.3312, 0.6495, 1.162, 1.901, 2.877, 4.097, 5.595, 7.377",\
                 "0.1231, 0.1729, 0.3354, 0.6512, 1.165, 1.902, 2.877, 4.098, 5.595, 7.384",\
                 "0.1342, 0.1848, 0.3444, 0.659, 1.167, 1.902, 2.876, 4.099, 5.607, 7.38",\
                 "0.1532, 0.2048, 0.3634, 0.6752, 1.177, 1.906, 2.879, 4.098, 5.596, 7.38",\
                 "0.172, 0.229, 0.3876, 0.7008, 1.202, 1.917, 2.88, 4.102, 5.595, 7.381",\
                 "0.1966, 0.2524, 0.4152, 0.7302, 1.239, 1.953, 2.899, 4.108, 5.608, 7.382",\
                 "0.2214, 0.28, 0.4456, 0.7606, 1.276, 2.007, 2.947, 4.138, 5.61, 7.389",\
                 "0.2464, 0.31, 0.4794, 0.7936, 1.317, 2.058, 3.018, 4.199, 5.651, 7.403");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.2789, 0.3153, 0.4065, 0.5376, 0.7161, 0.9558, 1.269, 1.663, 2.144, 2.718",\
                 "0.2899, 0.3263, 0.4176, 0.5487, 0.7271, 0.9667, 1.28, 1.674, 2.155, 2.728",\
                 "0.3412, 0.3776, 0.4684, 0.5994, 0.7779, 1.018, 1.33, 1.725, 2.206, 2.779",\
                 "0.4488, 0.4851, 0.5759, 0.7064, 0.8844, 1.124, 1.437, 1.83, 2.311, 2.885",\
                 "0.5922, 0.6315, 0.7278, 0.8619, 1.041, 1.279, 1.591, 1.984, 2.464, 3.037",\
                 "0.7635, 0.8077, 0.9119, 1.052, 1.235, 1.473, 1.785, 2.176, 2.656, 3.229",\
                 "0.9646, 1.013, 1.127, 1.277, 1.466, 1.709, 2.02, 2.411, 2.89, 3.461",\
                 "1.197, 1.249, 1.373, 1.534, 1.732, 1.982, 2.298, 2.69, 3.168, 3.738",\
                 "1.463, 1.519, 1.653, 1.826, 2.034, 2.292, 2.616, 3.014, 3.494, 4.064",\
                 "1.764, 1.824, 1.969, 2.155, 2.373, 2.64, 2.973, 3.381, 3.869, 4.442");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.3566, 0.3975, 0.5119, 0.7049, 0.9932, 1.396, 1.926, 2.596, 3.413, 4.387",\
                 "0.3609, 0.4022, 0.5165, 0.7091, 0.9976, 1.4, 1.932, 2.599, 3.417, 4.394",\
                 "0.3649, 0.4061, 0.5203, 0.7127, 1.001, 1.403, 1.935, 2.604, 3.421, 4.397",\
                 "0.374, 0.4158, 0.5299, 0.7221, 1.01, 1.412, 1.942, 2.611, 3.43, 4.404",\
                 "0.3795, 0.4237, 0.5406, 0.7333, 1.02, 1.421, 1.951, 2.619, 3.436, 4.409",\
                 "0.3666, 0.4141, 0.5373, 0.7351, 1.024, 1.424, 1.952, 2.619, 3.436, 4.41",\
                 "0.3294, 0.3799, 0.5101, 0.715, 1.012, 1.416, 1.943, 2.608, 3.423, 4.397",\
                 "0.2619, 0.3158, 0.4538, 0.6666, 0.9724, 1.388, 1.922, 2.587, 3.4, 4.371",\
                 "0.1631, 0.2206, 0.3663, 0.5867, 0.9005, 1.328, 1.875, 2.55, 3.364, 4.334",\
                 "0.0288, 0.0897, 0.2431, 0.4718, 0.794, 1.232, 1.795, 2.485, 3.311, 4.282");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1041, 0.1407, 0.2352, 0.3991, 0.6658, 1.062, 1.595, 2.273, 3.101, 4.09",\
                 "0.104, 0.1406, 0.2349, 0.3993, 0.6656, 1.061, 1.595, 2.27, 3.099, 4.085",\
                 "0.1042, 0.1409, 0.2352, 0.3999, 0.6657, 1.062, 1.593, 2.273, 3.102, 4.084",\
                 "0.1129, 0.1488, 0.2402, 0.4025, 0.6672, 1.062, 1.595, 2.27, 3.098, 4.084",\
                 "0.1384, 0.1756, 0.265, 0.4188, 0.675, 1.063, 1.595, 2.271, 3.1, 4.083",\
                 "0.17, 0.2104, 0.3014, 0.4478, 0.694, 1.072, 1.597, 2.273, 3.096, 4.089",\
                 "0.2068, 0.252, 0.348, 0.4894, 0.7278, 1.093, 1.608, 2.276, 3.101, 4.089",\
                 "0.244, 0.2942, 0.398, 0.5396, 0.7732, 1.132, 1.634, 2.288, 3.104, 4.09",\
                 "0.2852, 0.3428, 0.4548, 0.5986, 0.8268, 1.186, 1.684, 2.324, 3.124, 4.093",\
                 "0.3302, 0.3912, 0.5156, 0.6648, 0.8858, 1.243, 1.744, 2.387, 3.177, 4.126");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00596, 0.02337, 0.05662, 0.1084, 0.1811, 0.2768, 0.3973, 0.5444, 0.7197");
          values("0.1176, 0.1675, 0.3312, 0.6495, 1.163, 1.901, 2.87, 4.096, 5.596, 7.377",\
                 "0.1176, 0.1675, 0.3313, 0.65, 1.163, 1.901, 2.877, 4.098, 5.596, 7.383",\
                 "0.1174, 0.1672, 0.3313, 0.6502, 1.164, 1.901, 2.877, 4.1, 5.596, 7.379",\
                 "0.1226, 0.172, 0.3351, 0.6506, 1.165, 1.901, 2.871, 4.099, 5.605, 7.383",\
                 "0.1358, 0.186, 0.346, 0.6586, 1.169, 1.901, 2.875, 4.098, 5.601, 7.381",\
                 "0.1538, 0.2074, 0.368, 0.68, 1.177, 1.904, 2.876, 4.103, 5.606, 7.383",\
                 "0.1744, 0.2318, 0.395, 0.7114, 1.211, 1.923, 2.879, 4.1, 5.602, 7.379",\
                 "0.198, 0.2594, 0.4272, 0.7452, 1.256, 1.97, 2.908, 4.11, 5.606, 7.397",\
                 "0.221, 0.2832, 0.4604, 0.7806, 1.304, 2.032, 2.972, 4.152, 5.617, 7.388",\
                 "0.2468, 0.3142, 0.4958, 0.8196, 1.351, 2.095, 3.052, 4.232, 5.67, 7.412");
        }
      }
    }
  }

