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

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.05747, 0.05733, 0.05692, 0.05671, 0.05659, 0.05662, 0.05663, \
                  0.05661, 0.05659, 0.05655");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.03138, -0.03141, -0.03131, -0.03131, -0.03135, -0.03136, -0.03146, \
                  -0.03149, -0.03153, -0.03159");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.0574, 0.05732, 0.05698, 0.05669, 0.05662, 0.05661, 0.05666, \
                  0.05666, 0.05662, 0.05662");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.03106, -0.0311, -0.03104, -0.031, -0.03101, -0.03107, -0.03116, \
                  -0.03117, -0.03122, -0.03123");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.05676, 0.05685, 0.05673, 0.05661, 0.05653, 0.05656, 0.05661, \
                  0.05661, 0.05662, 0.0566");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.03607, 0.03599, 0.03597, 0.03592, 0.03577, 0.03568, 0.03547, \
                  0.0354, 0.03536, 0.03518");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.0746, 0.0762, 0.07782, 0.07946, 0.08096, 0.08204, 0.08293, 0.0835, \
                  0.08387, 0.08412");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.04949, -0.04949, -0.04924, -0.04904, -0.04898, -0.04894, -0.04903, \
                  -0.049, -0.04899, -0.04912");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.063, 0.05718, 0.05221, 0.05072, 0.05002, 0.04968, 0.04956, 0.04937, \
                  0.04921, 0.04913");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.0492, -0.04929, -0.04921, -0.0491, -0.04899, -0.04898, -0.04908, \
                  -0.04914, -0.04905, -0.04903");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.05641, 0.05634, 0.05629, 0.05621, 0.05619, 0.05608, 0.05615, \
                  0.05611, 0.0561, 0.05604");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.03446, -0.03448, -0.03443, -0.0344, -0.0344, -0.0344, -0.03455, \
                  -0.03462, -0.03469, -0.03478");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.05217, 0.05011, 0.04949, 0.0492, 0.04916, 0.04908, 0.04914, \
                  0.04913, 0.04916, 0.04912");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.04945, -0.04934, -0.04912, -0.04896, -0.04894, -0.04891, -0.04904, \
                  -0.04903, -0.04898, -0.04904");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.06009, 0.05572, 0.05115, 0.04967, 0.04928, 0.04902, 0.04894, \
                  0.0489, 0.04886, 0.04881");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.04923, -0.04925, -0.04921, -0.04912, -0.04901, -0.049, -0.04906, \
                  -0.04905, -0.04903, -0.04905");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.0572, 0.05287, 0.05048, 0.04936, 0.04898, 0.0488, 0.04881, 0.04879, \
                  0.04874, 0.04874");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.04945, -0.04934, -0.04921, -0.04909, -0.049, -0.04897, -0.04906, \
                  -0.04905, -0.049, -0.0491");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2)|(!A3))" ;
      max_capacitance : 0.5741 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.02405, 0.02453, 0.02529, 0.02576, 0.02595, 0.02609, 0.02618, 0.02625, 0.02629, 0.02631",\
                 "0.02273, 0.02322, 0.02434, 0.02516, 0.02563, 0.02581, 0.02601, 0.02607, 0.02619, 0.0262",\
                 "0.02867, 0.02827, 0.02762, 0.02711, 0.02682, 0.02664, 0.02661, 0.02648, 0.02642, 0.02639",\
                 "0.05496, 0.05214, 0.04608, 0.04046, 0.03633, 0.03346, 0.03153, 0.0302, 0.02927, 0.02865",\
                 "0.1078, 0.102, 0.08822, 0.07372, 0.06207, 0.0533, 0.04678, 0.04212, 0.03867, 0.03614",\
                 "0.1891, 0.1809, 0.159, 0.1336, 0.111, 0.09293, 0.07887, 0.0681, 0.05981, 0.05346",\
                 "0.3005, 0.2902, 0.2613, 0.2242, 0.1886, 0.1583, 0.1338, 0.114, 0.09833, 0.08579",\
                 "0.4439, 0.4318, 0.3971, 0.3488, 0.2991, 0.2544, 0.2166, 0.1852, 0.1594, 0.1383",\
                 "0.6206, 0.6074, 0.5673, 0.5096, 0.4459, 0.3854, 0.332, 0.2866, 0.2482, 0.216",\
                 "0.8328, 0.8183, 0.7739, 0.7075, 0.6307, 0.5541, 0.4841, 0.4223, 0.369, 0.3232");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1529, 0.1548, 0.1579, 0.1601, 0.1607, 0.1626, 0.1634, 0.1648, 0.1664, 0.1682",\
                 "0.1524, 0.154, 0.1577, 0.1607, 0.1623, 0.1639, 0.1656, 0.1673, 0.1686, 0.1726",\
                 "0.1614, 0.1612, 0.1618, 0.1628, 0.1642, 0.1658, 0.1673, 0.168, 0.17, 0.1722",\
                 "0.1926, 0.1896, 0.1838, 0.1786, 0.1752, 0.1731, 0.173, 0.1731, 0.174, 0.1747",\
                 "0.2535, 0.2474, 0.2327, 0.2186, 0.2056, 0.1971, 0.1913, 0.1882, 0.1855, 0.1841",\
                 "0.3455, 0.3371, 0.3143, 0.2876, 0.2645, 0.2453, 0.2302, 0.2195, 0.2103, 0.2042",\
                 "0.4701, 0.4599, 0.4308, 0.3922, 0.3556, 0.3247, 0.2979, 0.2764, 0.2596, 0.2464",\
                 "0.6293, 0.6177, 0.5837, 0.5347, 0.4831, 0.437, 0.3977, 0.3635, 0.3349, 0.3119",\
                 "0.8252, 0.8125, 0.7739, 0.7164, 0.6515, 0.5888, 0.5346, 0.4859, 0.4454, 0.4091",\
                 "1.06, 1.046, 1.004, 0.9394, 0.8624, 0.7819, 0.7104, 0.6468, 0.5901, 0.541");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.02405, 0.02456, 0.02536, 0.0258, 0.02602, 0.02615, 0.02625, 0.02633, 0.02635, 0.02632",\
                 "0.02143, 0.02233, 0.0239, 0.02491, 0.02545, 0.0258, 0.02592, 0.02611, 0.02621, 0.02622",\
                 "0.02266, 0.02306, 0.02392, 0.02475, 0.02531, 0.02565, 0.02586, 0.02599, 0.02609, 0.02617",\
                 "0.04482, 0.04291, 0.03897, 0.03544, 0.03283, 0.03103, 0.02978, 0.02892, 0.02831, 0.02786",\
                 "0.09599, 0.09106, 0.07945, 0.0672, 0.05734, 0.04986, 0.04438, 0.04033, 0.03735, 0.03513",\
                 "0.1784, 0.1708, 0.1505, 0.127, 0.1062, 0.08948, 0.07651, 0.0664, 0.05868, 0.05267",\
                 "0.2931, 0.2833, 0.2554, 0.2196, 0.1852, 0.1562, 0.1325, 0.1135, 0.09823, 0.08602",\
                 "0.4417, 0.43, 0.3956, 0.3481, 0.299, 0.255, 0.2178, 0.187, 0.1616, 0.1406",\
                 "0.6253, 0.612, 0.5723, 0.5143, 0.4508, 0.3905, 0.3373, 0.292, 0.2537, 0.2214",\
                 "0.8458, 0.8313, 0.7868, 0.7202, 0.6428, 0.5657, 0.495, 0.4328, 0.3792, 0.3334");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.2227, 0.2231, 0.2239, 0.2246, 0.2254, 0.226, 0.2284, 0.2305, 0.2329, 0.2358",\
                 "0.2205, 0.2212, 0.2226, 0.2238, 0.2246, 0.2261, 0.2278, 0.2298, 0.2325, 0.2351",\
                 "0.2265, 0.2259, 0.2253, 0.2254, 0.226, 0.2264, 0.2285, 0.2305, 0.2325, 0.2358",\
                 "0.257, 0.2541, 0.2481, 0.2419, 0.2374, 0.2352, 0.2345, 0.2352, 0.2354, 0.2387",\
                 "0.3189, 0.3136, 0.2997, 0.284, 0.2708, 0.261, 0.2542, 0.2507, 0.2487, 0.2469",\
                 "0.4143, 0.4068, 0.386, 0.3586, 0.3335, 0.3128, 0.2958, 0.2849, 0.2753, 0.2711",\
                 "0.5444, 0.5355, 0.5087, 0.4708, 0.4311, 0.3968, 0.3683, 0.345, 0.3272, 0.3125",\
                 "0.7106, 0.7008, 0.6698, 0.6229, 0.5691, 0.519, 0.4749, 0.4386, 0.4085, 0.3834",\
                 "0.9157, 0.9047, 0.87, 0.8158, 0.7502, 0.6828, 0.6216, 0.5693, 0.5248, 0.4864",\
                 "1.161, 1.149, 1.112, 1.052, 0.9753, 0.8929, 0.8137, 0.7432, 0.6806, 0.6269");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.02402, 0.02453, 0.02533, 0.02576, 0.026, 0.02613, 0.02621, 0.02626, 0.02632, 0.02634",\
                 "0.0211, 0.02213, 0.02381, 0.02491, 0.0255, 0.02581, 0.02599, 0.02613, 0.02621, 0.02626",\
                 "0.01956, 0.02028, 0.02192, 0.0235, 0.0245, 0.02512, 0.02547, 0.02571, 0.02587, 0.02598",\
                 "0.03789, 0.03671, 0.03433, 0.03229, 0.03075, 0.02961, 0.02877, 0.02821, 0.02778, 0.02747",\
                 "0.08799, 0.08386, 0.07398, 0.06367, 0.05522, 0.04865, 0.04368, 0.03995, 0.03713, 0.035",\
                 "0.1733, 0.1663, 0.1478, 0.126, 0.1066, 0.09072, 0.07826, 0.06833, 0.06048, 0.05432",\
                 "0.2951, 0.2856, 0.259, 0.2244, 0.1912, 0.1627, 0.1392, 0.12, 0.1044, 0.09173",\
                 "0.4542, 0.4425, 0.4089, 0.3624, 0.3139, 0.2701, 0.2325, 0.2011, 0.1749, 0.153",\
                 "0.6516, 0.6385, 0.5989, 0.5415, 0.4781, 0.4172, 0.3632, 0.3167, 0.2771, 0.2434",\
                 "0.8892, 0.8748, 0.8304, 0.7634, 0.6857, 0.6077, 0.5357, 0.4716, 0.416, 0.3679");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.2856, 0.2856, 0.2859, 0.2865, 0.287, 0.2882, 0.2897, 0.2914, 0.2937, 0.2959",\
                 "0.2826, 0.2826, 0.283, 0.2838, 0.2846, 0.2852, 0.287, 0.2889, 0.2911, 0.2934",\
                 "0.2885, 0.2877, 0.2859, 0.2851, 0.2849, 0.2854, 0.2863, 0.2878, 0.2901, 0.2927",\
                 "0.3201, 0.3173, 0.3102, 0.3027, 0.2973, 0.2943, 0.293, 0.2928, 0.2937, 0.2952",\
                 "0.3855, 0.3798, 0.3653, 0.3483, 0.333, 0.3215, 0.3137, 0.3094, 0.3063, 0.3049",\
                 "0.4881, 0.4803, 0.4577, 0.4283, 0.4007, 0.377, 0.3583, 0.345, 0.3347, 0.3291",\
                 "0.6295, 0.62, 0.5917, 0.55, 0.5068, 0.4682, 0.4359, 0.41, 0.3891, 0.3752",\
                 "0.8114, 0.8007, 0.7673, 0.7158, 0.6572, 0.6007, 0.5514, 0.5105, 0.4758, 0.4486",\
                 "1.036, 1.024, 0.9869, 0.9277, 0.8549, 0.7801, 0.7113, 0.6523, 0.6015, 0.5581",\
                 "1.305, 1.293, 1.252, 1.186, 1.102, 1.01, 0.9212, 0.841, 0.7707, 0.7101");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.07646, 0.09534, 0.1607, 0.2845, 0.4767, 0.746, 1.1, 1.547, 2.091, 2.74",\
                 "0.08055, 0.09943, 0.1651, 0.2891, 0.4813, 0.7503, 1.105, 1.551, 2.096, 2.744",\
                 "0.0966, 0.1178, 0.184, 0.3069, 0.4986, 0.7677, 1.122, 1.567, 2.113, 2.762",\
                 "0.1087, 0.1359, 0.217, 0.3476, 0.5368, 0.8038, 1.156, 1.602, 2.146, 2.795",\
                 "0.1107, 0.1447, 0.2444, 0.3979, 0.6027, 0.8671, 1.216, 1.659, 2.201, 2.848",\
                 "0.101, 0.1417, 0.26, 0.4411, 0.6735, 0.9597, 1.308, 1.747, 2.285, 2.93",\
                 "0.0785, 0.1255, 0.2628, 0.4715, 0.7366, 1.054, 1.43, 1.869, 2.402, 3.042",\
                 "0.0426, 0.095, 0.2518, 0.4875, 0.7872, 1.141, 1.551, 2.023, 2.56, 3.194",\
                 "-0.0089, 0.0507, 0.2243, 0.4884, 0.8219, 1.215, 1.664, 2.172, 2.746, 3.388",\
                 "-0.0765, -0.0088, 0.1836, 0.4734, 0.8402, 1.272, 1.763, 2.313, 2.926, 3.608");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.07585, 0.0954, 0.1619, 0.2862, 0.4789, 0.7477, 1.103, 1.55, 2.094, 2.742",\
                 "0.08486, 0.1042, 0.1712, 0.2958, 0.489, 0.7586, 1.113, 1.559, 2.105, 2.754",\
                 "0.1205, 0.1408, 0.2058, 0.3295, 0.5217, 0.791, 1.145, 1.592, 2.138, 2.788",\
                 "0.1719, 0.1984, 0.2766, 0.4012, 0.5908, 0.858, 1.21, 1.657, 2.201, 2.849",\
                 "0.2346, 0.2684, 0.3655, 0.5128, 0.7066, 0.9698, 1.319, 1.761, 2.305, 2.952",\
                 "0.3081, 0.3491, 0.4678, 0.6424, 0.8647, 1.135, 1.479, 1.918, 2.456, 3.1",\
                 "0.3936, 0.4426, 0.5826, 0.7878, 1.042, 1.346, 1.7, 2.132, 2.665, 3.302",\
                 "0.4907, 0.548, 0.7099, 0.9469, 1.238, 1.576, 1.966, 2.41, 2.936, 3.571",\
                 "0.6023, 0.6668, 0.8513, 1.12, 1.448, 1.827, 2.255, 2.738, 3.278, 3.905",\
                 "0.7273, 0.7997, 1.005, 1.307, 1.675, 2.096, 2.566, 3.089, 3.671, 4.312");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.109, 0.1426, 0.2584, 0.4781, 0.8205, 1.299, 1.928, 2.721, 3.692, 4.846",\
                 "0.1082, 0.1422, 0.2586, 0.4779, 0.8188, 1.297, 1.928, 2.723, 3.692, 4.847",\
                 "0.1251, 0.1553, 0.2592, 0.4784, 0.82, 1.297, 1.926, 2.718, 3.69, 4.845",\
                 "0.167, 0.199, 0.3041, 0.494, 0.819, 1.296, 1.928, 2.722, 3.691, 4.847",\
                 "0.2368, 0.2736, 0.3827, 0.5722, 0.8604, 1.301, 1.929, 2.721, 3.691, 4.846",\
                 "0.3213, 0.3655, 0.4928, 0.6886, 0.9762, 1.377, 1.945, 2.722, 3.69, 4.841",\
                 "0.4216, 0.4744, 0.6232, 0.8426, 1.134, 1.533, 2.056, 2.765, 3.693, 4.841",\
                 "0.5356, 0.596, 0.7724, 1.022, 1.333, 1.734, 2.254, 2.912, 3.766, 4.857",\
                 "0.6626, 0.7366, 0.9374, 1.219, 1.567, 1.984, 2.503, 3.155, 3.956, 4.973",\
                 "0.8082, 0.8914, 1.12, 1.44, 1.824, 2.271, 2.803, 3.452, 4.247, 5.201");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.0998, 0.1329, 0.2509, 0.4784, 0.8273, 1.322, 1.968, 2.783, 3.781, 4.969",\
                 "0.09938, 0.1329, 0.2519, 0.4776, 0.8268, 1.319, 1.975, 2.793, 3.779, 4.978",\
                 "0.1159, 0.1428, 0.2512, 0.4778, 0.8292, 1.324, 1.967, 2.783, 3.78, 4.969",\
                 "0.1668, 0.196, 0.2914, 0.483, 0.8281, 1.32, 1.967, 2.784, 3.78, 4.97",\
                 "0.2387, 0.2743, 0.377, 0.5562, 0.8488, 1.321, 1.967, 2.789, 3.779, 4.97",\
                 "0.324, 0.3684, 0.4924, 0.6808, 0.9526, 1.362, 1.972, 2.785, 3.777, 4.967",\
                 "0.4196, 0.4752, 0.6224, 0.839, 1.12, 1.502, 2.04, 2.795, 3.778, 4.978",\
                 "0.5302, 0.5914, 0.7712, 1.02, 1.324, 1.712, 2.212, 2.893, 3.812, 4.968",\
                 "0.6466, 0.7234, 0.929, 1.217, 1.562, 1.964, 2.473, 3.1, 3.94, 5.018",\
                 "0.7774, 0.8638, 1.103, 1.434, 1.819, 2.259, 2.78, 3.408, 4.18, 5.182");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1032, 0.1221, 0.1875, 0.3109, 0.5031, 0.7725, 1.127, 1.573, 2.118, 2.766",\
                 "0.1057, 0.1248, 0.1907, 0.3147, 0.5073, 0.7767, 1.131, 1.577, 2.122, 2.771",\
                 "0.1114, 0.1326, 0.2, 0.3239, 0.5162, 0.7854, 1.14, 1.586, 2.131, 2.781",\
                 "0.1145, 0.1393, 0.2156, 0.3455, 0.5363, 0.8046, 1.158, 1.604, 2.148, 2.796",\
                 "0.1066, 0.137, 0.2285, 0.3725, 0.5731, 0.8398, 1.191, 1.634, 2.177, 2.825",\
                 "0.08387, 0.1201, 0.2281, 0.395, 0.6137, 0.8932, 1.244, 1.684, 2.224, 2.869",\
                 "0.0449, 0.0866, 0.211, 0.4029, 0.6488, 0.9488, 1.315, 1.757, 2.292, 2.934",\
                 "-0.0119, 0.0352, 0.1759, 0.3925, 0.6693, 0.9989, 1.387, 1.846, 2.386, 3.023",\
                 "-0.0889, -0.0358, 0.121, 0.3619, 0.6699, 1.034, 1.454, 1.936, 2.495, 3.139",\
                 "-0.1868, -0.1291, 0.0448, 0.3108, 0.6495, 1.049, 1.506, 2.02, 2.602, 3.267");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.108, 0.127, 0.1928, 0.317, 0.5084, 0.7777, 1.132, 1.578, 2.124, 2.773",\
                 "0.1157, 0.1349, 0.201, 0.3254, 0.5176, 0.7871, 1.142, 1.588, 2.131, 2.783",\
                 "0.1516, 0.1703, 0.2351, 0.3585, 0.5504, 0.8194, 1.173, 1.62, 2.166, 2.812",\
                 "0.2165, 0.239, 0.3099, 0.431, 0.6195, 0.8869, 1.24, 1.685, 2.229, 2.877",\
                 "0.2981, 0.3259, 0.4112, 0.5488, 0.7374, 1, 1.348, 1.791, 2.331, 2.98",\
                 "0.3957, 0.4294, 0.5317, 0.6913, 0.9031, 1.168, 1.511, 1.947, 2.485, 3.13",\
                 "0.5106, 0.5503, 0.6696, 0.8548, 1.094, 1.386, 1.734, 2.164, 2.696, 3.334",\
                 "0.6436, 0.6891, 0.8265, 1.039, 1.309, 1.631, 2.01, 2.448, 2.972, 3.604",\
                 "0.7957, 0.8471, 1.003, 1.242, 1.545, 1.903, 2.314, 2.787, 3.319, 3.943",\
                 "0.968, 1.026, 1.2, 1.466, 1.803, 2.198, 2.647, 3.154, 3.724, 4.357");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1101, 0.1431, 0.2589, 0.4776, 0.8199, 1.299, 1.926, 2.722, 3.692, 4.846",\
                 "0.1104, 0.1432, 0.2586, 0.4783, 0.8189, 1.298, 1.928, 2.723, 3.691, 4.846",\
                 "0.1298, 0.1576, 0.2612, 0.4784, 0.8184, 1.297, 1.929, 2.723, 3.691, 4.841",\
                 "0.1742, 0.2007, 0.2994, 0.4936, 0.8195, 1.299, 1.926, 2.722, 3.691, 4.846",\
                 "0.2488, 0.2774, 0.3719, 0.5541, 0.8531, 1.304, 1.928, 2.72, 3.688, 4.846",\
                 "0.3432, 0.376, 0.4793, 0.6586, 0.9412, 1.358, 1.945, 2.724, 3.687, 4.842",\
                 "0.4528, 0.4892, 0.6056, 0.7996, 1.076, 1.473, 2.021, 2.756, 3.692, 4.846",\
                 "0.574, 0.618, 0.7524, 0.967, 1.257, 1.643, 2.168, 2.857, 3.756, 4.861",\
                 "0.7112, 0.7634, 0.915, 1.152, 1.467, 1.862, 2.371, 3.035, 3.879, 4.938",\
                 "0.8604, 0.92, 1.092, 1.361, 1.701, 2.12, 2.633, 3.274, 4.09, 5.097");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1503, 0.1844, 0.3034, 0.5303, 0.8816, 1.374, 2.022, 2.84, 3.837, 5.021",\
                 "0.1503, 0.1848, 0.3035, 0.5297, 0.8811, 1.375, 2.022, 2.839, 3.836, 5.024",\
                 "0.1568, 0.1872, 0.3031, 0.5292, 0.8812, 1.374, 2.024, 2.839, 3.835, 5.027",\
                 "0.2088, 0.2375, 0.3315, 0.5335, 0.8813, 1.374, 2.022, 2.838, 3.835, 5.024",\
                 "0.285, 0.3172, 0.4179, 0.5958, 0.897, 1.374, 2.022, 2.838, 3.837, 5.022",\
                 "0.3766, 0.4162, 0.532, 0.7184, 0.9928, 1.41, 2.024, 2.839, 3.835, 5.023",\
                 "0.4808, 0.5308, 0.6674, 0.8738, 1.155, 1.539, 2.087, 2.847, 3.834, 5.021",\
                 "0.5982, 0.6566, 0.8192, 1.056, 1.355, 1.743, 2.249, 2.94, 3.857, 5.024",\
                 "0.7268, 0.7948, 0.9858, 1.258, 1.589, 1.99, 2.499, 3.137, 3.98, 5.064",\
                 "0.8672, 0.9492, 1.168, 1.481, 1.849, 2.278, 2.795, 3.43, 4.213, 5.219");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1164, 0.1354, 0.2007, 0.3246, 0.5166, 0.7856, 1.14, 1.586, 2.132, 2.781",\
                 "0.119, 0.1382, 0.2042, 0.3283, 0.5205, 0.7899, 1.144, 1.591, 2.136, 2.785",\
                 "0.1205, 0.1407, 0.2074, 0.332, 0.5245, 0.794, 1.148, 1.595, 2.14, 2.79",\
                 "0.1132, 0.136, 0.2085, 0.3361, 0.5272, 0.7956, 1.15, 1.595, 2.14, 2.789",\
                 "0.08914, 0.1167, 0.201, 0.339, 0.5361, 0.8028, 1.154, 1.597, 2.14, 2.788",\
                 "0.04504, 0.07763, 0.1755, 0.3311, 0.5427, 0.8173, 1.168, 1.607, 2.146, 2.791",\
                 "-0.0202, 0.017, 0.1292, 0.3044, 0.537, 0.8286, 1.188, 1.629, 2.163, 2.804",\
                 "-0.1087, -0.0669, 0.0588, 0.2547, 0.5108, 0.8259, 1.204, 1.656, 2.194, 2.83",\
                 "-0.2226, -0.1764, -0.0368, 0.1802, 0.4609, 0.802, 1.206, 1.677, 2.227, 2.869",\
                 "-0.3641, -0.3135, -0.1601, 0.0792, 0.3845, 0.7534, 1.185, 1.684, 2.254, 2.908");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1291, 0.1495, 0.2175, 0.3434, 0.5371, 0.8073, 1.162, 1.609, 2.153, 2.803",\
                 "0.1362, 0.1566, 0.2246, 0.3506, 0.5445, 0.8147, 1.17, 1.616, 2.162, 2.81",\
                 "0.1723, 0.1919, 0.2589, 0.384, 0.5764, 0.8465, 1.201, 1.648, 2.193, 2.843",\
                 "0.2468, 0.2681, 0.3358, 0.4571, 0.6465, 0.9138, 1.267, 1.713, 2.257, 2.905",\
                 "0.3441, 0.3694, 0.4483, 0.5799, 0.7661, 1.028, 1.376, 1.819, 2.361, 3.008",\
                 "0.4634, 0.4934, 0.5855, 0.7349, 0.9387, 1.199, 1.54, 1.978, 2.513, 3.159",\
                 "0.6059, 0.6407, 0.7474, 0.9172, 1.143, 1.426, 1.769, 2.197, 2.726, 3.365",\
                 "0.7745, 0.8137, 0.9345, 1.126, 1.378, 1.686, 2.055, 2.486, 3.007, 3.638",\
                 "0.97, 1.013, 1.148, 1.364, 1.643, 1.979, 2.375, 2.836, 3.361, 3.981",\
                 "1.193, 1.242, 1.392, 1.63, 1.938, 2.305, 2.732, 3.221, 3.779, 4.404");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1101, 0.1431, 0.2586, 0.4779, 0.819, 1.296, 1.928, 2.722, 3.693, 4.846",\
                 "0.1103, 0.1432, 0.2589, 0.4784, 0.8183, 1.297, 1.929, 2.721, 3.691, 4.847",\
                 "0.1215, 0.1512, 0.2597, 0.4777, 0.8185, 1.298, 1.926, 2.723, 3.692, 4.845",\
                 "0.1582, 0.1857, 0.2877, 0.4893, 0.8193, 1.297, 1.928, 2.721, 3.69, 4.845",\
                 "0.2282, 0.2556, 0.3514, 0.5391, 0.8469, 1.304, 1.926, 2.723, 3.691, 4.845",\
                 "0.323, 0.3509, 0.4485, 0.6328, 0.923, 1.35, 1.945, 2.724, 3.69, 4.844",\
                 "0.4346, 0.466, 0.5706, 0.7604, 1.048, 1.453, 2.013, 2.757, 3.697, 4.847",\
                 "0.5612, 0.5966, 0.7102, 0.9108, 1.207, 1.608, 2.148, 2.849, 3.748, 4.869",\
                 "0.6994, 0.7412, 0.8722, 1.089, 1.396, 1.807, 2.334, 3.012, 3.868, 4.936",\
                 "0.8492, 0.896, 1.045, 1.284, 1.609, 2.036, 2.57, 3.235, 4.067, 5.085");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.004955, 0.01884, 0.04535, 0.08666, 0.1446, 0.2209, 0.317, 0.4343, 0.5741");
          values("0.1963, 0.2311, 0.3513, 0.5799, 0.9322, 1.427, 2.076, 2.893, 3.891, 5.081",\
                 "0.196, 0.2307, 0.3512, 0.5799, 0.9319, 1.426, 2.076, 2.893, 3.89, 5.081",\
                 "0.1968, 0.2306, 0.3513, 0.58, 0.9326, 1.427, 2.075, 2.894, 3.889, 5.08",\
                 "0.2442, 0.2715, 0.3696, 0.5811, 0.9322, 1.427, 2.076, 2.894, 3.891, 5.078",\
                 "0.324, 0.3543, 0.4525, 0.6324, 0.9434, 1.426, 2.075, 2.894, 3.892, 5.08",\
                 "0.4216, 0.4582, 0.5682, 0.7514, 1.029, 1.457, 2.076, 2.893, 3.889, 5.08",\
                 "0.5372, 0.5794, 0.7064, 0.9058, 1.187, 1.574, 2.132, 2.9, 3.889, 5.08",\
                 "0.664, 0.7156, 0.8662, 1.09, 1.383, 1.772, 2.283, 2.983, 3.908, 5.08",\
                 "0.8064, 0.8656, 1.042, 1.296, 1.615, 2.012, 2.522, 3.168, 4.022, 5.114",\
                 "0.9638, 1.032, 1.232, 1.526, 1.875, 2.294, 2.811, 3.447, 4.243, 5.262");
        }
      }
    }
  }

