/*
 * 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__invz_8) {
    area : 85.612800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "4.377978e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "4.425498e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "7.994646e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "8.116614e-05" ;
    }

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

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

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

    pin(EN) {
      capacitance : 0.008192 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.07252, 0.0719, 0.07107, 0.0709, 0.07148, 0.07306, 0.07561, 0.07962, \
                  0.08512, 0.09217");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }

      internal_power() {
        when : "I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03602, 0.03555, 0.03511, 0.03532, 0.03606, 0.03733, 0.0392, \
                  0.04173, 0.04508, 0.0493");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }
    }

    pin(I) {
      capacitance : 0.008321 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.05811, 0.05737, 0.05631, 0.05633, 0.05739, 0.05966, 0.06312, \
                  0.0678, 0.07395, 0.08174");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01956, 0.01924, 0.0187, 0.01846, 0.01919, 0.02105, 0.02413, \
                  0.02854, 0.03437, 0.04172");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.01517 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.847 ;
      max_transition : 6.8 ;
      min_capacitance : 0.01617 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
      three_state : "(!EN)" ;

      internal_power() {
        related_pin : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1152, 0.1152, 0.1152, 0.1152, 0.1151, 0.1152, 0.1152, 0.1152, 0.1152, 0.1152",\
                 "0.1152, 0.1153, 0.1153, 0.1153, 0.1152, 0.1152, 0.1152, 0.1153, 0.1153, 0.1153",\
                 "0.1159, 0.116, 0.116, 0.1159, 0.1159, 0.1159, 0.1159, 0.1159, 0.1159, 0.116",\
                 "0.1169, 0.1169, 0.1169, 0.1168, 0.1168, 0.1168, 0.1168, 0.1168, 0.1169, 0.1169",\
                 "0.1185, 0.1185, 0.1185, 0.1184, 0.1184, 0.1184, 0.1184, 0.1185, 0.1185, 0.1185",\
                 "0.1208, 0.1208, 0.1208, 0.1208, 0.1208, 0.1208, 0.1208, 0.1208, 0.1208, 0.1208",\
                 "0.1241, 0.124, 0.124, 0.124, 0.1239, 0.124, 0.124, 0.124, 0.124, 0.124",\
                 "0.1282, 0.1282, 0.1282, 0.1282, 0.1281, 0.1281, 0.1282, 0.1282, 0.1282, 0.1282",\
                 "0.1333, 0.1333, 0.1333, 0.1333, 0.1332, 0.1332, 0.1332, 0.1332, 0.1332, 0.1333",\
                 "0.1395, 0.1394, 0.1394, 0.1394, 0.1393, 0.1393, 0.1393, 0.1393, 0.1393, 0.1393");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.09945, 0.09951, 0.09941, 0.09944, 0.09978, 0.1003, 0.1016, 0.1027, 0.104, 0.1071",\
                 "0.09921, 0.09928, 0.09917, 0.09912, 0.09955, 0.1, 0.1014, 0.1025, 0.1038, 0.1069",\
                 "0.09864, 0.09883, 0.09858, 0.09881, 0.09885, 0.09952, 0.1006, 0.102, 0.1036, 0.1051",\
                 "0.09858, 0.09846, 0.09836, 0.09829, 0.09864, 0.09927, 0.1006, 0.1018, 0.1028, 0.1043",\
                 "0.09914, 0.09935, 0.09947, 0.09932, 0.1, 0.1007, 0.1016, 0.1027, 0.1046, 0.1057",\
                 "0.1007, 0.1009, 0.1009, 0.1013, 0.1015, 0.1024, 0.1033, 0.1047, 0.1066, 0.1078",\
                 "0.1035, 0.1037, 0.104, 0.1033, 0.1041, 0.1055, 0.1059, 0.1075, 0.1079, 0.11",\
                 "0.1074, 0.1076, 0.1083, 0.108, 0.1073, 0.1086, 0.1107, 0.1113, 0.1113, 0.1141",\
                 "0.1129, 0.1131, 0.1136, 0.1133, 0.1131, 0.113, 0.1154, 0.1178, 0.118, 0.1206",\
                 "0.1197, 0.1199, 0.1206, 0.1203, 0.1203, 0.1196, 0.1204, 0.1229, 0.1263, 0.1293");
        }
      }

      internal_power() {
        related_pin : "I" ;
        when : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1851, 0.187, 0.1905, 0.193, 0.1943, 0.195, 0.1954, 0.1956, 0.1958, 0.1959",\
                 "0.1847, 0.1867, 0.1902, 0.1927, 0.1939, 0.1946, 0.195, 0.1953, 0.1954, 0.1955",\
                 "0.1837, 0.1856, 0.1891, 0.1915, 0.1928, 0.1935, 0.1939, 0.1941, 0.1943, 0.1944",\
                 "0.1828, 0.1847, 0.1881, 0.1906, 0.1919, 0.1927, 0.1931, 0.1934, 0.1935, 0.1936",\
                 "0.1831, 0.1849, 0.1882, 0.1906, 0.192, 0.1928, 0.1933, 0.1936, 0.1938, 0.1939",\
                 "0.1846, 0.1864, 0.1896, 0.1921, 0.1936, 0.1944, 0.1949, 0.1952, 0.1954, 0.1956",\
                 "0.1875, 0.1892, 0.1924, 0.1949, 0.1964, 0.1974, 0.1979, 0.1982, 0.1984, 0.1986",\
                 "0.1919, 0.1936, 0.1967, 0.1993, 0.2008, 0.2018, 0.2024, 0.2028, 0.203, 0.2031",\
                 "0.1979, 0.1994, 0.2024, 0.2049, 0.2066, 0.2076, 0.2082, 0.2086, 0.2089, 0.2091",\
                 "0.2054, 0.2068, 0.2098, 0.2124, 0.2141, 0.2152, 0.2159, 0.2163, 0.2166, 0.2168");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1771, 0.1784, 0.1809, 0.1838, 0.1855, 0.1875, 0.189, 0.1904, 0.1922, 0.1945",\
                 "0.1763, 0.1776, 0.1802, 0.183, 0.185, 0.1867, 0.1882, 0.1896, 0.1918, 0.1933",\
                 "0.175, 0.1767, 0.1791, 0.1818, 0.1839, 0.1855, 0.187, 0.1888, 0.19, 0.1919",\
                 "0.1747, 0.1762, 0.1789, 0.1812, 0.183, 0.1849, 0.1866, 0.1878, 0.1902, 0.1915",\
                 "0.1751, 0.1766, 0.1789, 0.1814, 0.1834, 0.1851, 0.1872, 0.1888, 0.1902, 0.1929",\
                 "0.1769, 0.1783, 0.1807, 0.1832, 0.1855, 0.1873, 0.1894, 0.1915, 0.1928, 0.197",\
                 "0.1802, 0.1814, 0.1833, 0.1861, 0.1886, 0.1903, 0.1921, 0.1941, 0.1958, 0.1985",\
                 "0.185, 0.1861, 0.188, 0.1901, 0.1928, 0.1958, 0.1973, 0.1983, 0.2013, 0.203",\
                 "0.1912, 0.1923, 0.1944, 0.1965, 0.1985, 0.2004, 0.205, 0.207, 0.2066, 0.209",\
                 "0.1993, 0.2004, 0.2024, 0.2049, 0.2067, 0.2083, 0.2098, 0.2153, 0.2169, 0.218");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : negative_unate ;
        timing_type : three_state_disable ;

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.436, 0.454, 0.517, 0.639, 0.831, 1.068, 1.318, 1.585, 1.872, \
                  2.179");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.414, 0.428, 0.488, 0.605, 0.751, 0.913, 1.09, 1.29, 1.517, 1.772");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : positive_unate ;
        timing_type : three_state_enable ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.3502, 0.4027, 0.5238, 0.6748, 0.852, 1.061, 1.311, 1.612, 1.974, 2.403",\
                 "0.3656, 0.4181, 0.5392, 0.6905, 0.8675, 1.076, 1.326, 1.628, 1.99, 2.419",\
                 "0.4206, 0.4731, 0.5943, 0.7452, 0.9223, 1.131, 1.381, 1.683, 2.045, 2.473",\
                 "0.5178, 0.5701, 0.6908, 0.8419, 1.018, 1.227, 1.477, 1.779, 2.141, 2.57",\
                 "0.6102, 0.6629, 0.7832, 0.9341, 1.111, 1.319, 1.57, 1.871, 2.233, 2.662",\
                 "0.6529, 0.7056, 0.8263, 0.977, 1.153, 1.362, 1.612, 1.914, 2.275, 2.704",\
                 "0.6658, 0.7185, 0.8392, 0.9902, 1.167, 1.375, 1.625, 1.926, 2.288, 2.716",\
                 "0.6531, 0.7061, 0.8272, 0.978, 1.155, 1.363, 1.613, 1.915, 2.276, 2.704",\
                 "0.6169, 0.6697, 0.7911, 0.9424, 1.119, 1.327, 1.577, 1.879, 2.24, 2.668",\
                 "0.5551, 0.6084, 0.7299, 0.8812, 1.058, 1.267, 1.517, 1.818, 2.18, 2.609");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.342, 0.3899, 0.513, 0.7053, 0.9885, 1.383, 1.901, 2.553, 3.352, 4.303",\
                 "0.3563, 0.4042, 0.5272, 0.7196, 1.003, 1.397, 1.915, 2.568, 3.367, 4.317",\
                 "0.407, 0.4548, 0.5778, 0.7702, 1.053, 1.447, 1.966, 2.617, 3.415, 4.364",\
                 "0.5005, 0.549, 0.6726, 0.8652, 1.148, 1.543, 2.061, 2.715, 3.512, 4.463",\
                 "0.6055, 0.6602, 0.7914, 0.9863, 1.27, 1.664, 2.182, 2.836, 3.631, 4.581",\
                 "0.6898, 0.7527, 0.8966, 1.098, 1.384, 1.777, 2.295, 2.948, 3.744, 4.694",\
                 "0.7509, 0.8223, 0.9813, 1.191, 1.479, 1.873, 2.391, 3.043, 3.84, 4.788",\
                 "0.7872, 0.8674, 1.043, 1.263, 1.554, 1.948, 2.466, 3.118, 3.914, 4.863",\
                 "0.7996, 0.8881, 1.08, 1.313, 1.608, 2.003, 2.52, 3.172, 3.968, 4.917",\
                 "0.7863, 0.8833, 1.093, 1.34, 1.64, 2.036, 2.553, 3.205, 4, 4.949");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1693, 0.2142, 0.3131, 0.4516, 0.6441, 0.9079, 1.27, 1.741, 2.332, 3.052",\
                 "0.1697, 0.2137, 0.3131, 0.4519, 0.6446, 0.9076, 1.268, 1.74, 2.331, 3.052",\
                 "0.169, 0.214, 0.3129, 0.4519, 0.6446, 0.909, 1.269, 1.738, 2.331, 3.052",\
                 "0.169, 0.2131, 0.3124, 0.4518, 0.6438, 0.9088, 1.268, 1.741, 2.334, 3.049",\
                 "0.1782, 0.218, 0.3132, 0.4506, 0.6432, 0.9086, 1.269, 1.742, 2.333, 3.052",\
                 "0.1784, 0.2184, 0.3138, 0.4524, 0.6422, 0.9056, 1.268, 1.739, 2.332, 3.052",\
                 "0.1782, 0.2188, 0.3142, 0.4518, 0.6426, 0.9068, 1.267, 1.736, 2.33, 3.048",\
                 "0.1782, 0.2188, 0.3146, 0.4512, 0.6434, 0.9086, 1.266, 1.739, 2.329, 3.044",\
                 "0.1794, 0.2196, 0.3148, 0.4526, 0.6444, 0.9076, 1.268, 1.737, 2.329, 3.047",\
                 "0.18, 0.2204, 0.316, 0.4538, 0.6438, 0.9082, 1.267, 1.739, 2.331, 3.048");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1349, 0.1812, 0.3278, 0.6149, 1.088, 1.765, 2.657, 3.791, 5.169, 6.814",\
                 "0.1348, 0.1816, 0.3277, 0.6147, 1.088, 1.765, 2.657, 3.791, 5.169, 6.814",\
                 "0.1349, 0.1818, 0.3279, 0.614, 1.088, 1.764, 2.661, 3.791, 5.168, 6.812",\
                 "0.1376, 0.1837, 0.3292, 0.6154, 1.087, 1.764, 2.659, 3.789, 5.162, 6.805",\
                 "0.1618, 0.2064, 0.3414, 0.6196, 1.088, 1.763, 2.661, 3.788, 5.169, 6.81",\
                 "0.1906, 0.2354, 0.3668, 0.6326, 1.091, 1.765, 2.66, 3.789, 5.17, 6.811",\
                 "0.2204, 0.269, 0.3966, 0.6504, 1.1, 1.767, 2.66, 3.787, 5.161, 6.812",\
                 "0.25, 0.3036, 0.4332, 0.671, 1.107, 1.772, 2.659, 3.784, 5.155, 6.804",\
                 "0.2794, 0.3368, 0.4716, 0.698, 1.118, 1.777, 2.663, 3.784, 5.157, 6.802",\
                 "0.3096, 0.3714, 0.5116, 0.731, 1.134, 1.779, 2.666, 3.787, 5.158, 6.795");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.6036, 0.6579, 0.7799, 0.9303, 1.106, 1.315, 1.565, 1.866, 2.228, 2.657",\
                 "0.618, 0.6723, 0.7941, 0.9446, 1.121, 1.329, 1.579, 1.881, 2.243, 2.672",\
                 "0.6674, 0.7217, 0.8435, 0.9943, 1.17, 1.379, 1.629, 1.93, 2.292, 2.721",\
                 "0.7332, 0.7874, 0.9094, 1.06, 1.236, 1.445, 1.694, 1.996, 2.358, 2.787",\
                 "0.785, 0.8394, 0.9616, 1.112, 1.289, 1.497, 1.747, 2.049, 2.411, 2.84",\
                 "0.8199, 0.8743, 0.9965, 1.148, 1.324, 1.533, 1.783, 2.085, 2.446, 2.875",\
                 "0.8352, 0.8899, 1.012, 1.164, 1.34, 1.549, 1.799, 2.101, 2.463, 2.892",\
                 "0.8308, 0.8856, 1.008, 1.16, 1.337, 1.546, 1.796, 2.097, 2.459, 2.888",\
                 "0.8041, 0.8595, 0.9821, 1.134, 1.311, 1.52, 1.77, 2.072, 2.434, 2.862",\
                 "0.7538, 0.809, 0.933, 1.085, 1.262, 1.471, 1.721, 2.023, 2.385, 2.813");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.6823, 0.7306, 0.8546, 1.049, 1.334, 1.729, 2.248, 2.902, 3.698, 4.649",\
                 "0.6974, 0.7453, 0.8694, 1.064, 1.349, 1.744, 2.263, 2.917, 3.712, 4.663",\
                 "0.7571, 0.8053, 0.9295, 1.124, 1.409, 1.804, 2.322, 2.977, 3.775, 4.723",\
                 "0.8767, 0.925, 1.049, 1.243, 1.528, 1.923, 2.442, 3.096, 3.892, 4.843",\
                 "1.036, 1.084, 1.208, 1.403, 1.688, 2.083, 2.601, 3.256, 4.054, 5.002",\
                 "1.211, 1.259, 1.384, 1.578, 1.863, 2.259, 2.777, 3.431, 4.231, 5.18",\
                 "1.403, 1.452, 1.577, 1.771, 2.056, 2.452, 2.971, 3.624, 4.424, 5.374",\
                 "1.616, 1.664, 1.79, 1.984, 2.27, 2.665, 3.184, 3.837, 4.635, 5.586",\
                 "1.853, 1.902, 2.027, 2.223, 2.508, 2.904, 3.423, 4.076, 4.873, 5.822",\
                 "2.117, 2.166, 2.292, 2.488, 2.773, 3.169, 3.688, 4.341, 5.138, 6.086");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1638, 0.2066, 0.305, 0.446, 0.6395, 0.9062, 1.267, 1.739, 2.333, 3.051",\
                 "0.1639, 0.2067, 0.3049, 0.446, 0.6402, 0.9066, 1.267, 1.741, 2.334, 3.049",\
                 "0.1639, 0.2069, 0.305, 0.4452, 0.6388, 0.9052, 1.268, 1.741, 2.332, 3.05",\
                 "0.164, 0.2066, 0.305, 0.4462, 0.6386, 0.9052, 1.268, 1.741, 2.332, 3.052",\
                 "0.1646, 0.2072, 0.3054, 0.4456, 0.6404, 0.9058, 1.267, 1.738, 2.334, 3.051",\
                 "0.1654, 0.2084, 0.306, 0.4464, 0.6394, 0.9062, 1.268, 1.741, 2.331, 3.052",\
                 "0.1664, 0.2094, 0.307, 0.446, 0.639, 0.9062, 1.266, 1.738, 2.33, 3.05",\
                 "0.1678, 0.2104, 0.308, 0.4466, 0.6412, 0.9062, 1.268, 1.739, 2.33, 3.047",\
                 "0.1692, 0.2114, 0.309, 0.4482, 0.6406, 0.9064, 1.269, 1.739, 2.331, 3.048",\
                 "0.171, 0.2134, 0.3104, 0.4482, 0.6416, 0.9062, 1.266, 1.738, 2.332, 3.047");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.01617, 0.02881, 0.07317, 0.1579, 0.2898, 0.475, 0.7187, 1.026, 1.4, 1.847");
          values("0.1267, 0.174, 0.3243, 0.6121, 1.086, 1.762, 2.661, 3.784, 5.166, 6.806",\
                 "0.1268, 0.1741, 0.324, 0.6122, 1.087, 1.762, 2.658, 3.787, 5.169, 6.81",\
                 "0.1269, 0.175, 0.3242, 0.612, 1.085, 1.762, 2.661, 3.788, 5.162, 6.81",\
                 "0.1266, 0.175, 0.3242, 0.6122, 1.086, 1.762, 2.661, 3.786, 5.169, 6.809",\
                 "0.1274, 0.1758, 0.3234, 0.6138, 1.086, 1.765, 2.661, 3.79, 5.163, 6.812",\
                 "0.1284, 0.176, 0.3246, 0.6136, 1.087, 1.764, 2.66, 3.79, 5.169, 6.817",\
                 "0.1296, 0.177, 0.325, 0.613, 1.085, 1.762, 2.657, 3.79, 5.166, 6.813",\
                 "0.1308, 0.178, 0.3264, 0.6148, 1.086, 1.761, 2.654, 3.78, 5.165, 6.805",\
                 "0.132, 0.1794, 0.3276, 0.6154, 1.087, 1.762, 2.654, 3.781, 5.153, 6.797",\
                 "0.1332, 0.1808, 0.3294, 0.616, 1.087, 1.764, 2.657, 3.778, 5.154, 6.79");
        }
      }
    }
  }

