/*
 * 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__or3_1) {
    area : 31.046400 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.02236, 0.02237, 0.02237, 0.02235, 0.02232, 0.02232, 0.02234, \
                  0.02232, 0.0223, 0.0223");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.004636, -0.004648, -0.004666, -0.00467, -0.00467, -0.004666, \
                  -0.004687, -0.004688, -0.004688, -0.00469");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01107, 0.01107, 0.01106, 0.01105, 0.01108, 0.01105, 0.01108, \
                  0.01108, 0.01107, 0.01106");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.00465, -0.004666, -0.004683, -0.004691, -0.004703, -0.004697, \
                  -0.004717, -0.004718, -0.004718, -0.004724");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01107, 0.01106, 0.01108, 0.01106, 0.01106, 0.01106, 0.01108, \
                  0.01107, 0.01107, 0.01106");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.00466, -0.004675, -0.004683, -0.004698, -0.004703, -0.004707, \
                  -0.004721, -0.004717, -0.004721, -0.004723");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01174, 0.01173, 0.01175, 0.01175, 0.01175, 0.01174, 0.01176, \
                  0.01175, 0.01173, 0.01172");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.005064, -0.005072, -0.005093, -0.005086, -0.005105, -0.005104, \
                  -0.005123, -0.005137, -0.005137, -0.005142");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.0151, 0.01508, 0.01507, 0.01508, 0.01507, 0.01508, 0.01512, \
                  0.01509, 0.0151, 0.01511");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.0122, -0.01303, -0.01429, -0.01461, -0.01473, -0.01477, -0.01482, \
                  -0.01488, -0.01489, -0.0149");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.009512, 0.009515, 0.009535, 0.009539, 0.009542, 0.009553, 0.009586, \
                  0.009572, 0.009574, 0.009581");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.008984, -0.009003, -0.00903, -0.00897, -0.00895, -0.008832, \
                  -0.00878, -0.0087, -0.008611, -0.008537");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01503, 0.01502, 0.01503, 0.01506, 0.01502, 0.01509, 0.01511, \
                  0.0151, 0.0151, 0.0151");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01323, -0.01402, -0.01454, -0.01465, -0.01478, -0.01481, -0.01488, \
                  -0.0149, -0.01492, -0.01491");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01504, 0.01507, 0.01505, 0.01506, 0.01508, 0.01508, 0.01512, \
                  0.01509, 0.01511, 0.01509");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01286, -0.01316, -0.01379, -0.01417, -0.01439, -0.01449, -0.01463, \
                  -0.01468, -0.0147, -0.01474");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01504, 0.01503, 0.01502, 0.01508, 0.01508, 0.01509, 0.01511, \
                  0.0151, 0.0151, 0.01511");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01414, -0.01426, -0.01455, -0.01465, -0.01478, -0.0148, -0.01487, \
                  -0.01489, -0.01492, -0.01492");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2|A3)" ;
      max_capacitance : 0.4525 ;
      max_transition : 4.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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1871, 0.181, 0.1682, 0.1581, 0.152, 0.1481, 0.1453, 0.1434, 0.1421, 0.1411",\
                 "0.1864, 0.1804, 0.1675, 0.1575, 0.1513, 0.1474, 0.1447, 0.1427, 0.1414, 0.1404",\
                 "0.187, 0.181, 0.168, 0.1581, 0.152, 0.1481, 0.1454, 0.1435, 0.1421, 0.1412",\
                 "0.193, 0.1869, 0.1738, 0.1637, 0.1576, 0.1536, 0.1509, 0.149, 0.1477, 0.1467",\
                 "0.2094, 0.2031, 0.189, 0.1779, 0.1707, 0.1662, 0.1632, 0.1611, 0.1596, 0.1585",\
                 "0.2355, 0.2286, 0.213, 0.1999, 0.1914, 0.1859, 0.1823, 0.1797, 0.1779, 0.1766",\
                 "0.2709, 0.2633, 0.246, 0.2308, 0.2207, 0.2136, 0.209, 0.2058, 0.2035, 0.2019",\
                 "0.3177, 0.3095, 0.2903, 0.2723, 0.2595, 0.2508, 0.2447, 0.2404, 0.2375, 0.2353",\
                 "0.3759, 0.3669, 0.3455, 0.324, 0.3089, 0.2979, 0.29, 0.2845, 0.2805, 0.2777",\
                 "0.4447, 0.4354, 0.4118, 0.3871, 0.3688, 0.3553, 0.3456, 0.3384, 0.3332, 0.3295");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.07446, 0.07345, 0.07276, 0.0735, 0.07407, 0.075, 0.07634, 0.07799, 0.07856, 0.08131",\
                 "0.07475, 0.07372, 0.07326, 0.07379, 0.07429, 0.07514, 0.07702, 0.07838, 0.07928, 0.08275",\
                 "0.07754, 0.07641, 0.07513, 0.07516, 0.07598, 0.07647, 0.07806, 0.07939, 0.08036, 0.08239",\
                 "0.08722, 0.08541, 0.08278, 0.08106, 0.0808, 0.0809, 0.08238, 0.08324, 0.08468, 0.08707",\
                 "0.1031, 0.1002, 0.0953, 0.09345, 0.09113, 0.09019, 0.09135, 0.09196, 0.09404, 0.09535",\
                 "0.1268, 0.1232, 0.116, 0.1112, 0.1091, 0.1075, 0.1062, 0.1062, 0.1081, 0.1094",\
                 "0.1586, 0.1539, 0.1451, 0.1381, 0.1326, 0.1305, 0.1297, 0.1284, 0.1286, 0.1288",\
                 "0.1992, 0.193, 0.1828, 0.1727, 0.1655, 0.1606, 0.1605, 0.1593, 0.1588, 0.1573",\
                 "0.2491, 0.2418, 0.2291, 0.217, 0.2079, 0.1999, 0.197, 0.1976, 0.1966, 0.1947",\
                 "0.3079, 0.2994, 0.2846, 0.2704, 0.2589, 0.25, 0.2436, 0.2402, 0.2413, 0.2404");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1982, 0.1921, 0.1792, 0.1691, 0.1631, 0.1591, 0.1564, 0.1544, 0.153, 0.152",\
                 "0.1974, 0.1913, 0.1783, 0.1683, 0.1622, 0.1582, 0.1555, 0.1536, 0.1522, 0.1512",\
                 "0.1966, 0.1904, 0.1775, 0.1674, 0.1613, 0.1573, 0.1546, 0.1527, 0.1514, 0.1504",\
                 "0.2016, 0.1953, 0.182, 0.1717, 0.1654, 0.1612, 0.1584, 0.1564, 0.1551, 0.154",\
                 "0.2173, 0.2109, 0.1968, 0.1854, 0.1783, 0.1736, 0.1704, 0.1683, 0.1667, 0.1656",\
                 "0.2431, 0.2362, 0.2211, 0.2082, 0.1998, 0.1944, 0.1907, 0.1881, 0.1863, 0.1849",\
                 "0.2809, 0.2736, 0.2568, 0.2419, 0.2318, 0.2248, 0.2202, 0.217, 0.2147, 0.213",\
                 "0.3318, 0.324, 0.3053, 0.2875, 0.275, 0.2663, 0.2603, 0.2559, 0.2528, 0.2506",\
                 "0.3946, 0.3861, 0.3656, 0.3446, 0.3293, 0.3183, 0.3105, 0.305, 0.3009, 0.298",\
                 "0.469, 0.4601, 0.4379, 0.4135, 0.3954, 0.3817, 0.3721, 0.3651, 0.3598, 0.356");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.08564, 0.08438, 0.08304, 0.08303, 0.08346, 0.0842, 0.08522, 0.08615, 0.08784, 0.08879",\
                 "0.08545, 0.08423, 0.08311, 0.08289, 0.08313, 0.08438, 0.08576, 0.08647, 0.0882, 0.08951",\
                 "0.08694, 0.08559, 0.0839, 0.08346, 0.084, 0.08435, 0.08533, 0.08719, 0.08748, 0.08987",\
                 "0.09629, 0.09455, 0.09159, 0.08948, 0.08878, 0.08885, 0.09037, 0.09097, 0.09216, 0.09347",\
                 "0.1133, 0.1106, 0.1053, 0.1021, 0.09937, 0.09904, 0.09919, 0.1001, 0.1015, 0.1017",\
                 "0.1384, 0.135, 0.1283, 0.1219, 0.1196, 0.117, 0.1166, 0.1166, 0.1166, 0.1172",\
                 "0.1731, 0.1684, 0.1598, 0.1516, 0.1456, 0.1439, 0.1419, 0.1404, 0.1411, 0.141",\
                 "0.2174, 0.2116, 0.2009, 0.1913, 0.1826, 0.1773, 0.1765, 0.1747, 0.1724, 0.1719",\
                 "0.2719, 0.2649, 0.2523, 0.2407, 0.2296, 0.222, 0.218, 0.2178, 0.2153, 0.2141",\
                 "0.3372, 0.3288, 0.3142, 0.2998, 0.2873, 0.2771, 0.2701, 0.2666, 0.266, 0.2645");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.2089, 0.2028, 0.1899, 0.1798, 0.1737, 0.1698, 0.167, 0.1651, 0.1638, 0.1627",\
                 "0.208, 0.2019, 0.189, 0.1789, 0.1728, 0.1688, 0.1661, 0.1642, 0.1628, 0.1619",\
                 "0.2068, 0.2007, 0.1878, 0.1777, 0.1716, 0.1676, 0.1648, 0.1629, 0.1616, 0.1606",\
                 "0.2095, 0.2033, 0.1902, 0.18, 0.1737, 0.1696, 0.1668, 0.1649, 0.1635, 0.1625",\
                 "0.2235, 0.2171, 0.2032, 0.192, 0.1852, 0.1807, 0.1776, 0.1755, 0.174, 0.1729",\
                 "0.2513, 0.2447, 0.2296, 0.2168, 0.2086, 0.2033, 0.1996, 0.197, 0.1952, 0.1939",\
                 "0.296, 0.2887, 0.2717, 0.2564, 0.2461, 0.239, 0.2341, 0.2308, 0.2283, 0.2266",\
                 "0.3561, 0.3484, 0.3292, 0.3105, 0.2974, 0.2882, 0.2814, 0.277, 0.2734, 0.2711",\
                 "0.4297, 0.4215, 0.4006, 0.3784, 0.3617, 0.3501, 0.3417, 0.3355, 0.331, 0.3276",\
                 "0.5172, 0.5084, 0.4857, 0.46, 0.4398, 0.425, 0.4144, 0.4065, 0.4007, 0.3964");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.0976, 0.09597, 0.0942, 0.09355, 0.09354, 0.09436, 0.09577, 0.09645, 0.09745, 0.09804",\
                 "0.09678, 0.09531, 0.0935, 0.09293, 0.09303, 0.09349, 0.09494, 0.09584, 0.09745, 0.09804",\
                 "0.09685, 0.09536, 0.09335, 0.09247, 0.09246, 0.09299, 0.09422, 0.09519, 0.09637, 0.09804",\
                 "0.1065, 0.1045, 0.101, 0.09815, 0.09717, 0.09738, 0.09811, 0.09908, 0.09997, 0.1006",\
                 "0.1247, 0.1218, 0.1159, 0.1124, 0.1096, 0.1085, 0.1081, 0.1094, 0.1097, 0.111",\
                 "0.1531, 0.1495, 0.1416, 0.1358, 0.1321, 0.1295, 0.1282, 0.1277, 0.1281, 0.129",\
                 "0.1929, 0.188, 0.179, 0.1698, 0.164, 0.1606, 0.1576, 0.1563, 0.1561, 0.1556",\
                 "0.2452, 0.2393, 0.228, 0.2167, 0.2078, 0.2013, 0.1988, 0.1966, 0.195, 0.1934",\
                 "0.3097, 0.3023, 0.289, 0.2758, 0.2635, 0.2547, 0.2493, 0.2473, 0.2454, 0.2435",\
                 "0.3878, 0.3793, 0.3631, 0.347, 0.333, 0.3229, 0.3134, 0.3084, 0.3073, 0.3043");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.3152, 0.3405, 0.4084, 0.5064, 0.6331, 0.7902, 0.9838, 1.22, 1.507, 1.847",\
                 "0.3187, 0.344, 0.4117, 0.5098, 0.6365, 0.7937, 0.9871, 1.224, 1.51, 1.85",\
                 "0.3434, 0.3687, 0.4365, 0.5343, 0.6611, 0.8182, 1.012, 1.249, 1.535, 1.875",\
                 "0.4079, 0.433, 0.5004, 0.5981, 0.7248, 0.8819, 1.075, 1.312, 1.598, 1.938",\
                 "0.5146, 0.5398, 0.6068, 0.7049, 0.831, 0.9883, 1.182, 1.418, 1.704, 2.044",\
                 "0.6539, 0.68, 0.7477, 0.8464, 0.9738, 1.131, 1.325, 1.561, 1.847, 2.187",\
                 "0.8276, 0.854, 0.9236, 1.022, 1.151, 1.309, 1.504, 1.74, 2.026, 2.366",\
                 "1.035, 1.063, 1.136, 1.237, 1.365, 1.525, 1.719, 1.957, 2.243, 2.583",\
                 "1.275, 1.305, 1.381, 1.487, 1.619, 1.78, 1.976, 2.213, 2.499, 2.839",\
                 "1.546, 1.579, 1.66, 1.771, 1.909, 2.074, 2.274, 2.512, 2.798, 3.138");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1418, 0.1612, 0.2239, 0.3405, 0.5216, 0.7758, 1.11, 1.531, 2.042, 2.656",\
                 "0.1486, 0.1681, 0.2309, 0.3475, 0.5287, 0.7825, 1.116, 1.537, 2.049, 2.664",\
                 "0.1727, 0.192, 0.2541, 0.3702, 0.5511, 0.805, 1.14, 1.56, 2.073, 2.686",\
                 "0.202, 0.2216, 0.2838, 0.3987, 0.5789, 0.8321, 1.166, 1.587, 2.1, 2.713",\
                 "0.2158, 0.2362, 0.299, 0.4134, 0.5923, 0.845, 1.178, 1.599, 2.111, 2.724",\
                 "0.2091, 0.231, 0.2954, 0.4095, 0.5874, 0.839, 1.171, 1.59, 2.104, 2.716",\
                 "0.1781, 0.2013, 0.2685, 0.3835, 0.5604, 0.8112, 1.143, 1.562, 2.074, 2.685",\
                 "0.1207, 0.1457, 0.2161, 0.3323, 0.5097, 0.7606, 1.092, 1.51, 2.022, 2.632",\
                 "0.035, 0.0624, 0.1358, 0.254, 0.4325, 0.6838, 1.017, 1.434, 1.945, 2.555",\
                 "-0.0808, -0.0514, 0.0264, 0.1472, 0.3264, 0.5791, 0.9131, 1.333, 1.844, 2.453");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1106, 0.1361, 0.2031, 0.3094, 0.4629, 0.6743, 0.9582, 1.331, 1.796, 2.357",\
                 "0.1109, 0.1359, 0.2029, 0.3094, 0.4623, 0.6741, 0.9589, 1.331, 1.796, 2.357",\
                 "0.1105, 0.1358, 0.2029, 0.3097, 0.4628, 0.6735, 0.9583, 1.331, 1.794, 2.356",\
                 "0.11, 0.1355, 0.203, 0.3091, 0.4626, 0.6748, 0.9584, 1.331, 1.796, 2.357",\
                 "0.1139, 0.1389, 0.2056, 0.3118, 0.464, 0.6744, 0.961, 1.332, 1.793, 2.356",\
                 "0.1222, 0.1468, 0.2128, 0.3188, 0.4704, 0.679, 0.9616, 1.333, 1.796, 2.357",\
                 "0.1328, 0.1578, 0.2222, 0.3258, 0.4782, 0.686, 0.9684, 1.335, 1.795, 2.357",\
                 "0.1476, 0.1732, 0.2386, 0.338, 0.4874, 0.6922, 0.9728, 1.34, 1.8, 2.359",\
                 "0.1658, 0.1924, 0.26, 0.3596, 0.5052, 0.7058, 0.9822, 1.345, 1.804, 2.361",\
                 "0.1854, 0.2148, 0.2846, 0.3852, 0.53, 0.7296, 0.9978, 1.356, 1.809, 2.364");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.06108, 0.08906, 0.1882, 0.3872, 0.7012, 1.141, 1.721, 2.452, 3.347, 4.409",\
                 "0.06106, 0.08896, 0.1881, 0.3872, 0.701, 1.142, 1.722, 2.452, 3.348, 4.409",\
                 "0.06102, 0.0892, 0.1882, 0.3872, 0.701, 1.142, 1.721, 2.456, 3.35, 4.405",\
                 "0.06652, 0.09356, 0.1903, 0.3876, 0.7012, 1.143, 1.721, 2.451, 3.349, 4.407",\
                 "0.07412, 0.101, 0.1948, 0.389, 0.7017, 1.141, 1.722, 2.45, 3.342, 4.405",\
                 "0.0851, 0.1107, 0.2027, 0.3922, 0.702, 1.142, 1.722, 2.449, 3.34, 4.412",\
                 "0.096, 0.123, 0.2126, 0.3984, 0.706, 1.144, 1.72, 2.451, 3.338, 4.402",\
                 "0.1096, 0.1362, 0.2246, 0.4074, 0.7148, 1.149, 1.723, 2.449, 3.343, 4.402",\
                 "0.1254, 0.1516, 0.2386, 0.4172, 0.7228, 1.161, 1.732, 2.453, 3.34, 4.399",\
                 "0.14, 0.1688, 0.2544, 0.429, 0.7318, 1.172, 1.747, 2.466, 3.346, 4.401");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.365, 0.3903, 0.458, 0.5563, 0.6828, 0.84, 1.034, 1.27, 1.556, 1.897",\
                 "0.3679, 0.3931, 0.4608, 0.5592, 0.6856, 0.8428, 1.036, 1.273, 1.559, 1.899",\
                 "0.3813, 0.4065, 0.4742, 0.5725, 0.6989, 0.8561, 1.05, 1.286, 1.572, 1.913",\
                 "0.4223, 0.4476, 0.5151, 0.6128, 0.7394, 0.8964, 1.09, 1.327, 1.613, 1.953",\
                 "0.5007, 0.5265, 0.595, 0.6934, 0.8204, 0.9775, 1.171, 1.408, 1.694, 2.034",\
                 "0.6159, 0.6421, 0.7119, 0.812, 0.9405, 1.099, 1.292, 1.529, 1.815, 2.155",\
                 "0.7666, 0.7936, 0.865, 0.9666, 1.096, 1.256, 1.451, 1.688, 1.973, 2.313",\
                 "0.9459, 0.9744, 1.05, 1.155, 1.288, 1.449, 1.645, 1.882, 2.169, 2.508",\
                 "1.152, 1.184, 1.263, 1.374, 1.512, 1.678, 1.876, 2.114, 2.401, 2.741",\
                 "1.387, 1.419, 1.504, 1.621, 1.766, 1.939, 2.143, 2.385, 2.672, 3.012");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1588, 0.1784, 0.2409, 0.3573, 0.5383, 0.7922, 1.126, 1.546, 2.06, 2.67",\
                 "0.165, 0.1846, 0.2474, 0.3636, 0.5447, 0.7982, 1.132, 1.552, 2.065, 2.677",\
                 "0.1885, 0.208, 0.2703, 0.3862, 0.5672, 0.821, 1.155, 1.575, 2.088, 2.7",\
                 "0.2233, 0.2432, 0.3051, 0.4198, 0.5997, 0.8532, 1.187, 1.606, 2.12, 2.732",\
                 "0.245, 0.2656, 0.3282, 0.4417, 0.6205, 0.8733, 1.206, 1.626, 2.139, 2.75",\
                 "0.2477, 0.2696, 0.334, 0.4471, 0.6251, 0.8765, 1.208, 1.628, 2.141, 2.752",\
                 "0.2296, 0.2527, 0.3193, 0.4333, 0.6101, 0.8609, 1.192, 1.611, 2.123, 2.734",\
                 "0.1874, 0.2123, 0.2817, 0.3975, 0.5745, 0.8252, 1.157, 1.574, 2.085, 2.696",\
                 "0.1207, 0.1475, 0.2202, 0.3379, 0.5155, 0.7672, 1.099, 1.517, 2.027, 2.637",\
                 "0.0282, 0.0571, 0.1335, 0.2536, 0.4321, 0.6846, 1.018, 1.437, 1.947, 2.556");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1108, 0.1364, 0.2039, 0.3094, 0.4629, 0.6747, 0.9601, 1.33, 1.793, 2.357",\
                 "0.1108, 0.1363, 0.2031, 0.3091, 0.4629, 0.673, 0.9589, 1.331, 1.796, 2.357",\
                 "0.111, 0.1363, 0.2031, 0.3094, 0.4629, 0.6733, 0.9583, 1.331, 1.796, 2.357",\
                 "0.1112, 0.136, 0.2031, 0.3109, 0.4628, 0.6741, 0.9596, 1.331, 1.796, 2.355",\
                 "0.1168, 0.1419, 0.2081, 0.3136, 0.4664, 0.6754, 0.9594, 1.332, 1.795, 2.357",\
                 "0.1226, 0.148, 0.2158, 0.321, 0.472, 0.6806, 0.9638, 1.333, 1.794, 2.354",\
                 "0.1316, 0.158, 0.2268, 0.3304, 0.4812, 0.6878, 0.9686, 1.337, 1.797, 2.357",\
                 "0.147, 0.1748, 0.2454, 0.349, 0.4952, 0.6982, 0.9756, 1.341, 1.801, 2.357",\
                 "0.1634, 0.193, 0.268, 0.374, 0.5214, 0.7202, 0.9902, 1.348, 1.804, 2.358",\
                 "0.1812, 0.2124, 0.2916, 0.4022, 0.554, 0.7548, 1.019, 1.368, 1.814, 2.363");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.06252, 0.09028, 0.1892, 0.3879, 0.7011, 1.141, 1.722, 2.449, 3.341, 4.402",\
                 "0.06262, 0.09042, 0.1892, 0.3881, 0.7016, 1.14, 1.721, 2.449, 3.339, 4.409",\
                 "0.0623, 0.09024, 0.1892, 0.3877, 0.701, 1.141, 1.72, 2.452, 3.346, 4.4",\
                 "0.06674, 0.09384, 0.191, 0.3879, 0.7013, 1.141, 1.722, 2.448, 3.343, 4.402",\
                 "0.07444, 0.1008, 0.1946, 0.3893, 0.7011, 1.14, 1.72, 2.448, 3.339, 4.406",\
                 "0.08446, 0.1104, 0.2023, 0.392, 0.7026, 1.142, 1.721, 2.448, 3.339, 4.404",\
                 "0.096, 0.1212, 0.2116, 0.3982, 0.707, 1.144, 1.72, 2.453, 3.34, 4.401",\
                 "0.1076, 0.135, 0.2228, 0.4064, 0.7148, 1.15, 1.724, 2.449, 3.339, 4.4",\
                 "0.1214, 0.1498, 0.2364, 0.4172, 0.7242, 1.162, 1.732, 2.453, 3.34, 4.402",\
                 "0.1376, 0.165, 0.2516, 0.4284, 0.7328, 1.174, 1.747, 2.466, 3.347, 4.4");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.3886, 0.4139, 0.4816, 0.5796, 0.7064, 0.8635, 1.057, 1.294, 1.58, 1.92",\
                 "0.3924, 0.4176, 0.4854, 0.5837, 0.7101, 0.8673, 1.061, 1.298, 1.584, 1.924",\
                 "0.404, 0.4292, 0.4969, 0.5951, 0.7215, 0.8788, 1.072, 1.309, 1.595, 1.935",\
                 "0.4302, 0.4556, 0.5229, 0.6209, 0.7475, 0.9045, 1.098, 1.335, 1.621, 1.961",\
                 "0.4863, 0.5117, 0.58, 0.6784, 0.8053, 0.9624, 1.156, 1.393, 1.679, 2.019",\
                 "0.5789, 0.6051, 0.6742, 0.7738, 0.9022, 1.061, 1.254, 1.491, 1.777, 2.117",\
                 "0.7046, 0.7319, 0.804, 0.9064, 1.036, 1.196, 1.391, 1.627, 1.913, 2.253",\
                 "0.8532, 0.8827, 0.9595, 1.067, 1.202, 1.365, 1.561, 1.799, 2.084, 2.424",\
                 "1.023, 1.054, 1.136, 1.251, 1.393, 1.563, 1.764, 2.004, 2.29, 2.63",\
                 "1.214, 1.248, 1.334, 1.456, 1.606, 1.786, 1.996, 2.242, 2.531, 2.87");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1678, 0.1877, 0.2514, 0.3684, 0.5498, 0.8037, 1.137, 1.558, 2.071, 2.682",\
                 "0.1737, 0.1937, 0.257, 0.374, 0.5554, 0.8093, 1.143, 1.563, 2.076, 2.688",\
                 "0.1969, 0.2167, 0.28, 0.3965, 0.5777, 0.8317, 1.165, 1.586, 2.098, 2.71",\
                 "0.236, 0.2558, 0.3184, 0.4335, 0.6137, 0.8669, 1.2, 1.621, 2.134, 2.745",\
                 "0.264, 0.2847, 0.3475, 0.4617, 0.6409, 0.8933, 1.226, 1.646, 2.159, 2.771",\
                 "0.2754, 0.2975, 0.362, 0.4762, 0.6535, 0.9052, 1.237, 1.657, 2.169, 2.78",\
                 "0.2684, 0.2921, 0.3592, 0.4735, 0.6516, 0.9012, 1.233, 1.651, 2.163, 2.773",\
                 "0.2417, 0.2673, 0.3371, 0.453, 0.6313, 0.8812, 1.212, 1.63, 2.141, 2.751",\
                 "0.1935, 0.2211, 0.2949, 0.4135, 0.5917, 0.8432, 1.175, 1.592, 2.103, 2.711",\
                 "0.125, 0.1545, 0.232, 0.3529, 0.5325, 0.7864, 1.12, 1.538, 2.048, 2.656");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.1108, 0.1361, 0.203, 0.3098, 0.4635, 0.6737, 0.9586, 1.332, 1.796, 2.357",\
                 "0.1108, 0.1363, 0.2029, 0.3091, 0.4628, 0.673, 0.9589, 1.331, 1.796, 2.357",\
                 "0.111, 0.1363, 0.2031, 0.3092, 0.4633, 0.6742, 0.9589, 1.331, 1.796, 2.357",\
                 "0.1114, 0.1359, 0.2031, 0.3107, 0.4632, 0.6745, 0.9596, 1.332, 1.796, 2.357",\
                 "0.1152, 0.1406, 0.2069, 0.313, 0.4646, 0.6756, 0.96, 1.331, 1.794, 2.357",\
                 "0.1204, 0.1466, 0.2146, 0.3204, 0.4714, 0.6796, 0.963, 1.333, 1.795, 2.357",\
                 "0.1344, 0.1608, 0.2292, 0.3328, 0.4824, 0.6876, 0.9678, 1.336, 1.796, 2.357",\
                 "0.151, 0.1796, 0.2522, 0.3568, 0.504, 0.704, 0.9788, 1.341, 1.799, 2.358",\
                 "0.1694, 0.2002, 0.278, 0.3884, 0.5388, 0.7378, 1.002, 1.354, 1.805, 2.358",\
                 "0.189, 0.2218, 0.3046, 0.4208, 0.577, 0.7838, 1.047, 1.386, 1.823, 2.365");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01506, 0.03595, 0.06849, 0.1142, 0.1742, 0.2499, 0.3424, 0.4525");
          values("0.06486, 0.09308, 0.192, 0.39, 0.7027, 1.142, 1.722, 2.449, 3.342, 4.406",\
                 "0.06492, 0.09314, 0.192, 0.3901, 0.7027, 1.142, 1.721, 2.449, 3.339, 4.402",\
                 "0.0643, 0.0926, 0.1917, 0.3901, 0.7027, 1.142, 1.72, 2.451, 3.34, 4.4",\
                 "0.06804, 0.09536, 0.1927, 0.3899, 0.7025, 1.141, 1.723, 2.448, 3.343, 4.406",\
                 "0.0761, 0.1027, 0.1972, 0.3917, 0.7026, 1.142, 1.723, 2.449, 3.345, 4.401",\
                 "0.0867, 0.1123, 0.2046, 0.3944, 0.7044, 1.143, 1.72, 2.448, 3.339, 4.402",\
                 "0.0994, 0.1238, 0.214, 0.4014, 0.7086, 1.145, 1.721, 2.448, 3.34, 4.4",\
                 "0.1114, 0.1378, 0.2266, 0.4112, 0.7174, 1.154, 1.725, 2.45, 3.344, 4.4",\
                 "0.1274, 0.1548, 0.2414, 0.4222, 0.7286, 1.165, 1.735, 2.455, 3.34, 4.406",\
                 "0.1436, 0.1724, 0.258, 0.4354, 0.741, 1.18, 1.752, 2.467, 3.347, 4.402");
        }
      }
    }
  }

