/*
 * 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_12) {
    area : 118.540800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "0.00959364" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "0.0050148" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "0.02511648" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "0.01291968" ;
    }

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

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

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

    pin(EN) {
      capacitance : 0.008928 ;
      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 : "!I" ;

        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.2966, 0.2959, 0.3063, 0.3403, 0.4059, 0.508, 0.6496, 0.835, \
                  1.067, 1.348");
        }

        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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.129, 0.1283, 0.1367, 0.1608, 0.2028, 0.2649, 0.3501, 0.4697, \
                  0.627, 0.822");
        }

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

    pin(I) {
      capacitance : 0.01353 ;
      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 : "!EN" ;

        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.3217, 0.3195, 0.3382, 0.3989, 0.5104, 0.6789, 0.9088, 1.204, \
                  1.569, 2.007");
        }

        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.1139, 0.1136, 0.1278, 0.1755, 0.269, 0.4136, 0.6134, 0.8716, \
                  1.191, 1.576");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.02321 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.21 ;
      max_transition : 7.4 ;
      min_capacitance : 0.02421 ;
      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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.5657, 0.5653, 0.5651, 0.5647, 0.565, 0.5649, 0.5651, 0.5651, 0.5654, 0.5653",\
                 "0.5666, 0.5664, 0.566, 0.5658, 0.5659, 0.566, 0.5662, 0.5661, 0.5663, 0.5663",\
                 "0.5793, 0.5789, 0.5787, 0.5787, 0.5787, 0.5788, 0.5788, 0.5789, 0.579, 0.5791",\
                 "0.6091, 0.6094, 0.6089, 0.6087, 0.6087, 0.6088, 0.6089, 0.609, 0.6091, 0.6091",\
                 "0.6597, 0.6595, 0.6594, 0.6594, 0.6592, 0.6592, 0.6593, 0.6594, 0.6594, 0.6595",\
                 "0.7324, 0.7323, 0.7323, 0.7322, 0.7322, 0.7322, 0.7322, 0.7323, 0.7324, 0.7323",\
                 "0.8295, 0.8296, 0.829, 0.8289, 0.8289, 0.8291, 0.8291, 0.8292, 0.8291, 0.8291",\
                 "0.9517, 0.952, 0.9518, 0.9513, 0.9511, 0.9512, 0.9514, 0.9515, 0.9516, 0.9516",\
                 "1.101, 1.101, 1.101, 1.1, 1.1, 1.1, 1.101, 1.101, 1.101, 1.101",\
                 "1.278, 1.278, 1.278, 1.278, 1.278, 1.278, 1.278, 1.278, 1.278, 1.278");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.5234, 0.5234, 0.5245, 0.5243, 0.5272, 0.5345, 0.543, 0.5524, 0.5606, 0.5903",\
                 "0.523, 0.5242, 0.5245, 0.5239, 0.5272, 0.5337, 0.5427, 0.5534, 0.5606, 0.5939",\
                 "0.531, 0.5311, 0.532, 0.5315, 0.5351, 0.5402, 0.5492, 0.5606, 0.5642, 0.6041",\
                 "0.5586, 0.5593, 0.5596, 0.5595, 0.5639, 0.5697, 0.5783, 0.5902, 0.6002, 0.6318",\
                 "0.6135, 0.6158, 0.6151, 0.6182, 0.6212, 0.627, 0.6363, 0.6442, 0.6614, 0.6954",\
                 "0.7018, 0.7018, 0.7043, 0.7017, 0.7119, 0.7188, 0.7245, 0.7363, 0.7465, 0.786",\
                 "0.826, 0.8264, 0.829, 0.8267, 0.8282, 0.8441, 0.8508, 0.8605, 0.8711, 0.9157",\
                 "0.9892, 0.9895, 0.9913, 0.9919, 0.9894, 0.9967, 1.018, 1.027, 1.043, 1.097",\
                 "1.194, 1.194, 1.197, 1.197, 1.192, 1.194, 1.207, 1.233, 1.26, 1.34",\
                 "1.442, 1.443, 1.445, 1.446, 1.444, 1.442, 1.448, 1.466, 1.504, 1.623");
        }
      }

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

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.9437, 0.9523, 0.9715, 0.9852, 0.9922, 0.996, 0.9983, 0.9995, 1, 1.001",\
                 "0.9432, 0.9517, 0.9708, 0.9845, 0.9915, 0.9953, 0.9977, 0.999, 0.9998, 1",\
                 "0.9597, 0.9676, 0.9864, 1, 1.007, 1.011, 1.013, 1.015, 1.016, 1.016",\
                 "1.018, 1.025, 1.042, 1.056, 1.063, 1.068, 1.07, 1.071, 1.072, 1.073",\
                 "1.132, 1.137, 1.153, 1.167, 1.175, 1.179, 1.182, 1.183, 1.185, 1.185",\
                 "1.309, 1.312, 1.325, 1.338, 1.347, 1.351, 1.355, 1.356, 1.358, 1.358",\
                 "1.548, 1.55, 1.562, 1.575, 1.584, 1.589, 1.593, 1.595, 1.596, 1.597",\
                 "1.856, 1.858, 1.869, 1.882, 1.891, 1.897, 1.901, 1.903, 1.905, 1.906",\
                 "2.237, 2.238, 2.248, 2.26, 2.27, 2.276, 2.281, 2.284, 2.286, 2.287",\
                 "2.694, 2.695, 2.704, 2.716, 2.727, 2.734, 2.738, 2.741, 2.743, 2.745");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.9402, 0.952, 0.9751, 0.994, 1.007, 1.019, 1.031, 1.041, 1.058, 1.083",\
                 "0.9378, 0.95, 0.9735, 0.9907, 1.006, 1.018, 1.029, 1.043, 1.05, 1.087",\
                 "0.9573, 0.9688, 0.9914, 1.009, 1.024, 1.036, 1.049, 1.058, 1.076, 1.111",\
                 "1.026, 1.037, 1.059, 1.076, 1.091, 1.106, 1.115, 1.125, 1.14, 1.174",\
                 "1.156, 1.165, 1.185, 1.203, 1.22, 1.231, 1.247, 1.255, 1.272, 1.316",\
                 "1.354, 1.364, 1.38, 1.4, 1.416, 1.43, 1.444, 1.459, 1.47, 1.521",\
                 "1.627, 1.634, 1.65, 1.666, 1.688, 1.702, 1.715, 1.726, 1.739, 1.807",\
                 "1.977, 1.985, 2, 2.013, 2.029, 2.052, 2.07, 2.085, 2.099, 2.182",\
                 "2.411, 2.417, 2.43, 2.444, 2.455, 2.473, 2.496, 2.521, 2.547, 2.66",\
                 "2.931, 2.937, 2.95, 2.962, 2.973, 2.988, 3.006, 3.042, 3.079, 3.272");
        }
      }

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

        cell_fall(tmg_ntin_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.612, 0.626, 0.677, 0.785, 0.968, 1.213, 1.502, 1.834, 2.207, \
                  2.618");
        }

        cell_rise(tmg_ntin_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.451, 0.463, 0.519, 0.619, 0.754, 0.921, 1.121, 1.352, 1.617, \
                  1.917");
        }

        fall_transition(tmg_ntin_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, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_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, 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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.212, 0.2681, 0.3975, 0.5718, 0.7873, 1.049, 1.368, 1.756, 2.224, 2.779",\
                 "0.2227, 0.2789, 0.4081, 0.5827, 0.7981, 1.06, 1.378, 1.766, 2.235, 2.79",\
                 "0.2621, 0.3183, 0.4475, 0.622, 0.8373, 1.099, 1.418, 1.806, 2.274, 2.829",\
                 "0.3032, 0.3661, 0.5033, 0.6814, 0.8983, 1.161, 1.48, 1.868, 2.336, 2.891",\
                 "0.313, 0.3828, 0.5327, 0.7186, 0.9383, 1.201, 1.521, 1.909, 2.377, 2.933",\
                 "0.2905, 0.3649, 0.5204, 0.7081, 0.929, 1.192, 1.512, 1.9, 2.368, 2.923",\
                 "0.2354, 0.3134, 0.4718, 0.6617, 0.8837, 1.148, 1.468, 1.856, 2.323, 2.879",\
                 "0.1464, 0.2274, 0.3896, 0.5815, 0.8048, 1.07, 1.39, 1.779, 2.246, 2.801",\
                 "0.0233, 0.107, 0.2731, 0.4676, 0.6928, 0.9589, 1.28, 1.668, 2.136, 2.691",\
                 "-0.1379, -0.0506, 0.1203, 0.3177, 0.5443, 0.8116, 1.133, 1.522, 1.99, 2.545");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.2621, 0.3311, 0.4826, 0.6939, 0.9891, 1.395, 1.929, 2.601, 3.42, 4.399",\
                 "0.2718, 0.3408, 0.4923, 0.7037, 0.9987, 1.405, 1.938, 2.61, 3.431, 4.409",\
                 "0.3056, 0.3749, 0.5267, 0.7381, 1.033, 1.439, 1.972, 2.645, 3.464, 4.443",\
                 "0.3451, 0.423, 0.5827, 0.7964, 1.092, 1.498, 2.031, 2.703, 3.524, 4.502",\
                 "0.3554, 0.4478, 0.6305, 0.8546, 1.153, 1.559, 2.092, 2.764, 3.583, 4.56",\
                 "0.329, 0.4372, 0.6493, 0.892, 1.196, 1.603, 2.136, 2.808, 3.628, 4.606",\
                 "0.2626, 0.3876, 0.6316, 0.9002, 1.216, 1.626, 2.159, 2.83, 3.65, 4.627",\
                 "0.1539, 0.296, 0.5741, 0.8739, 1.207, 1.624, 2.16, 2.831, 3.649, 4.626",\
                 "-0.001, 0.1613, 0.4735, 0.8093, 1.164, 1.592, 2.135, 2.809, 3.628, 4.604",\
                 "-0.2072, -0.0211, 0.328, 0.7021, 1.083, 1.524, 2.076, 2.759, 3.582, 4.559");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.1141, 0.1673, 0.3012, 0.5006, 0.7677, 1.13, 1.616, 2.249, 3.038, 3.987",\
                 "0.114, 0.1673, 0.301, 0.4996, 0.7676, 1.13, 1.618, 2.248, 3.038, 3.988",\
                 "0.1142, 0.1672, 0.3007, 0.5004, 0.7675, 1.13, 1.616, 2.249, 3.039, 3.987",\
                 "0.1327, 0.1858, 0.3127, 0.5066, 0.7718, 1.132, 1.617, 2.25, 3.038, 3.986",\
                 "0.1497, 0.2084, 0.3398, 0.5238, 0.7792, 1.136, 1.619, 2.251, 3.037, 3.981",\
                 "0.164, 0.223, 0.3494, 0.5296, 0.7834, 1.137, 1.619, 2.251, 3.039, 3.986",\
                 "0.1752, 0.2332, 0.3566, 0.5354, 0.7872, 1.141, 1.62, 2.247, 3.034, 3.98",\
                 "0.187, 0.242, 0.3636, 0.5404, 0.792, 1.144, 1.622, 2.249, 3.033, 3.978",\
                 "0.1988, 0.2524, 0.3708, 0.5458, 0.7956, 1.148, 1.627, 2.252, 3.033, 3.979",\
                 "0.2132, 0.2648, 0.3788, 0.553, 0.8016, 1.152, 1.63, 2.255, 3.036, 3.982");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.1368, 0.1994, 0.3621, 0.6673, 1.172, 1.906, 2.881, 4.115, 5.62, 7.412",\
                 "0.1367, 0.1991, 0.3625, 0.6671, 1.172, 1.906, 2.881, 4.109, 5.619, 7.414",\
                 "0.1386, 0.2001, 0.3628, 0.6673, 1.172, 1.908, 2.882, 4.113, 5.62, 7.412",\
                 "0.1608, 0.2185, 0.3721, 0.6706, 1.173, 1.908, 2.883, 4.112, 5.621, 7.409",\
                 "0.1919, 0.2586, 0.4076, 0.6866, 1.179, 1.907, 2.884, 4.113, 5.618, 7.413",\
                 "0.227, 0.3026, 0.461, 0.719, 1.189, 1.912, 2.886, 4.111, 5.62, 7.406",\
                 "0.265, 0.35, 0.5232, 0.7684, 1.215, 1.919, 2.886, 4.117, 5.611, 7.413",\
                 "0.3092, 0.4, 0.5922, 0.834, 1.255, 1.942, 2.895, 4.114, 5.621, 7.402",\
                 "0.3654, 0.455, 0.6652, 0.9112, 1.308, 1.978, 2.923, 4.128, 5.618, 7.412",\
                 "0.4358, 0.5188, 0.7404, 1.001, 1.377, 2.026, 2.96, 4.163, 5.638, 7.412");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.3848, 0.4426, 0.5744, 0.7499, 0.9654, 1.227, 1.546, 1.934, 2.402, 2.958",\
                 "0.3945, 0.4523, 0.5842, 0.7597, 0.9751, 1.237, 1.555, 1.943, 2.411, 2.967",\
                 "0.4251, 0.4827, 0.6146, 0.7903, 1.006, 1.267, 1.586, 1.974, 2.442, 2.997",\
                 "0.4485, 0.5059, 0.638, 0.8138, 1.029, 1.291, 1.61, 1.998, 2.466, 3.022",\
                 "0.4517, 0.5092, 0.6415, 0.8177, 1.034, 1.295, 1.614, 2.002, 2.47, 3.026",\
                 "0.4311, 0.4886, 0.6211, 0.7975, 1.014, 1.276, 1.595, 1.983, 2.451, 3.007",\
                 "0.3832, 0.4408, 0.574, 0.7511, 0.9675, 1.23, 1.549, 1.938, 2.405, 2.961",\
                 "0.3066, 0.3647, 0.4985, 0.6764, 0.8936, 1.156, 1.476, 1.864, 2.332, 2.888",\
                 "0.1992, 0.2583, 0.3929, 0.5715, 0.7893, 1.052, 1.372, 1.761, 2.229, 2.785",\
                 "0.0578, 0.1185, 0.2555, 0.4352, 0.6538, 0.9172, 1.237, 1.626, 2.094, 2.65");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.4859, 0.5566, 0.7099, 0.9226, 1.219, 1.626, 2.16, 2.831, 3.651, 4.626",\
                 "0.4978, 0.5684, 0.7219, 0.9343, 1.231, 1.638, 2.172, 2.844, 3.664, 4.643",\
                 "0.5526, 0.6233, 0.7765, 0.9892, 1.286, 1.692, 2.226, 2.898, 3.718, 4.696",\
                 "0.6533, 0.7241, 0.8774, 1.09, 1.387, 1.794, 2.327, 3, 3.818, 4.795",\
                 "0.7882, 0.8591, 1.013, 1.225, 1.522, 1.929, 2.463, 3.134, 3.957, 4.934",\
                 "0.9566, 1.028, 1.182, 1.395, 1.692, 2.1, 2.634, 3.306, 4.127, 5.105",\
                 "1.158, 1.231, 1.386, 1.6, 1.897, 2.304, 2.838, 3.511, 4.331, 5.311",\
                 "1.393, 1.468, 1.626, 1.841, 2.138, 2.546, 3.08, 3.751, 4.571, 5.551",\
                 "1.662, 1.741, 1.903, 2.12, 2.418, 2.826, 3.36, 4.031, 4.851, 5.828",\
                 "1.966, 2.051, 2.22, 2.439, 2.738, 3.146, 3.68, 4.352, 5.171, 6.147");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.1107, 0.165, 0.2989, 0.4978, 0.7653, 1.129, 1.616, 2.248, 3.037, 3.986",\
                 "0.1106, 0.165, 0.299, 0.4978, 0.7653, 1.129, 1.615, 2.249, 3.038, 3.984",\
                 "0.1107, 0.1656, 0.2991, 0.4977, 0.7659, 1.128, 1.616, 2.248, 3.034, 3.987",\
                 "0.1111, 0.1657, 0.2994, 0.4982, 0.7662, 1.129, 1.617, 2.248, 3.036, 3.986",\
                 "0.1122, 0.167, 0.301, 0.4984, 0.7652, 1.129, 1.614, 2.25, 3.039, 3.986",\
                 "0.113, 0.1688, 0.3018, 0.5002, 0.7662, 1.128, 1.616, 2.248, 3.036, 3.983",\
                 "0.1148, 0.1706, 0.304, 0.502, 0.768, 1.129, 1.616, 2.247, 3.036, 3.983",\
                 "0.1164, 0.1724, 0.3056, 0.5032, 0.7688, 1.131, 1.618, 2.247, 3.033, 3.98",\
                 "0.1194, 0.1748, 0.3074, 0.5054, 0.7702, 1.133, 1.619, 2.248, 3.035, 3.981",\
                 "0.1246, 0.1794, 0.3108, 0.508, 0.7722, 1.133, 1.622, 2.249, 3.035, 3.982");
        }

        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.02421, 0.0531, 0.1545, 0.3482, 0.65, 1.073, 1.63, 2.332, 3.189, 4.21");
          values("0.132, 0.1931, 0.3577, 0.6633, 1.17, 1.905, 2.885, 4.114, 5.618, 7.411",\
                 "0.1316, 0.1926, 0.3574, 0.6645, 1.172, 1.905, 2.883, 4.11, 5.62, 7.413",\
                 "0.1319, 0.1929, 0.3573, 0.6642, 1.172, 1.905, 2.884, 4.114, 5.612, 7.402",\
                 "0.1324, 0.194, 0.358, 0.6646, 1.17, 1.905, 2.882, 4.113, 5.619, 7.403",\
                 "0.1336, 0.1944, 0.3592, 0.665, 1.172, 1.906, 2.881, 4.116, 5.618, 7.4",\
                 "0.1364, 0.1972, 0.361, 0.6656, 1.173, 1.905, 2.88, 4.111, 5.617, 7.407",\
                 "0.1408, 0.2008, 0.3626, 0.6668, 1.171, 1.908, 2.882, 4.11, 5.62, 7.411",\
                 "0.1486, 0.2068, 0.3666, 0.6686, 1.174, 1.907, 2.881, 4.112, 5.619, 7.411",\
                 "0.1588, 0.2174, 0.3728, 0.6714, 1.174, 1.908, 2.881, 4.111, 5.62, 7.412",\
                 "0.1728, 0.2306, 0.3818, 0.6754, 1.176, 1.91, 2.884, 4.113, 5.61, 7.413");
        }
      }
    }
  }

