/*
 * 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__invz_4) {
    area : 67.737600 ;

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

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

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

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

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

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

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

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

        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.2715, 0.2701, 0.2808, 0.3188, 0.3931, 0.5092, 0.6704, 0.8805, \
                  1.141, 1.456");
        }

        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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.1922, 0.1909, 0.1991, 0.2255, 0.2724, 0.3426, 0.4451, 0.5867, \
                  0.7678, 0.9893");
        }

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

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

        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.1505, 0.1494, 0.1548, 0.1756, 0.2151, 0.276, 0.3601, 0.4685, \
                  0.6031, 0.7649");
        }

        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.06121, 0.06074, 0.06486, 0.08055, 0.1134, 0.1656, 0.2384, 0.3335, \
                  0.4519, 0.5946");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.01019 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.501 ;
      max_transition : 5.2 ;
      min_capacitance : 0.01119 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.3337, 0.3319, 0.3304, 0.3297, 0.3292, 0.329, 0.3289, 0.3288, 0.3287, 0.3287",\
                 "0.3342, 0.3326, 0.331, 0.3303, 0.3298, 0.3297, 0.3296, 0.3295, 0.3294, 0.3294",\
                 "0.3463, 0.3448, 0.3438, 0.3432, 0.3429, 0.3429, 0.3428, 0.3428, 0.3427, 0.3426",\
                 "0.3763, 0.3759, 0.3754, 0.3752, 0.3752, 0.3753, 0.3753, 0.3754, 0.3754, 0.3754",\
                 "0.4316, 0.4314, 0.4313, 0.4313, 0.4311, 0.4311, 0.4311, 0.4312, 0.4312, 0.4311",\
                 "0.5131, 0.5132, 0.5128, 0.5127, 0.5128, 0.5129, 0.5128, 0.5128, 0.5128, 0.5128",\
                 "0.6221, 0.6222, 0.6219, 0.6216, 0.6216, 0.6217, 0.6219, 0.6219, 0.6218, 0.6218",\
                 "0.7599, 0.7601, 0.76, 0.7595, 0.7595, 0.7595, 0.7597, 0.7597, 0.7598, 0.7598",\
                 "0.9279, 0.928, 0.9279, 0.9278, 0.9277, 0.9279, 0.928, 0.9279, 0.928, 0.9281",\
                 "1.127, 1.127, 1.128, 1.127, 1.127, 1.128, 1.127, 1.128, 1.128, 1.128");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.2654, 0.2653, 0.2654, 0.2658, 0.2666, 0.2689, 0.2719, 0.2743, 0.2761, 0.2822",\
                 "0.2645, 0.2648, 0.2648, 0.2648, 0.2657, 0.2675, 0.2701, 0.2728, 0.2758, 0.2804",\
                 "0.2726, 0.2727, 0.2726, 0.2725, 0.2734, 0.2754, 0.2791, 0.2822, 0.2837, 0.2883",\
                 "0.3036, 0.3039, 0.3048, 0.3052, 0.3063, 0.3082, 0.3104, 0.3142, 0.3183, 0.3232",\
                 "0.3682, 0.3685, 0.3683, 0.3705, 0.3714, 0.373, 0.376, 0.379, 0.382, 0.3859",\
                 "0.4708, 0.4715, 0.4716, 0.4706, 0.4744, 0.477, 0.4793, 0.4816, 0.4857, 0.4899",\
                 "0.6143, 0.615, 0.6155, 0.6142, 0.6153, 0.6207, 0.6247, 0.6271, 0.6282, 0.6314",\
                 "0.801, 0.8014, 0.8023, 0.803, 0.8018, 0.8035, 0.8123, 0.8168, 0.8194, 0.8218",\
                 "1.033, 1.033, 1.034, 1.034, 1.034, 1.035, 1.039, 1.048, 1.056, 1.059",\
                 "1.312, 1.313, 1.315, 1.316, 1.315, 1.314, 1.317, 1.323, 1.334, 1.345");
        }
      }

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

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.5694, 0.5629, 0.5564, 0.5547, 0.5542, 0.5541, 0.5541, 0.5539, 0.5538, 0.5537",\
                 "0.5688, 0.5624, 0.5557, 0.5539, 0.5537, 0.5537, 0.5535, 0.5534, 0.5532, 0.5532",\
                 "0.5734, 0.567, 0.5603, 0.5589, 0.5581, 0.5581, 0.558, 0.5578, 0.5577, 0.5577",\
                 "0.5952, 0.588, 0.5814, 0.5789, 0.5783, 0.5782, 0.578, 0.5779, 0.5778, 0.5777",\
                 "0.6383, 0.6313, 0.6228, 0.6199, 0.6188, 0.6184, 0.6183, 0.6185, 0.6182, 0.6182",\
                 "0.7082, 0.6996, 0.6899, 0.686, 0.6846, 0.6839, 0.6836, 0.6833, 0.6833, 0.6832",\
                 "0.8037, 0.7944, 0.7829, 0.7772, 0.7751, 0.7744, 0.774, 0.7737, 0.7735, 0.7732",\
                 "0.9267, 0.916, 0.9019, 0.8953, 0.8923, 0.8911, 0.8906, 0.8902, 0.8899, 0.8898",\
                 "1.077, 1.066, 1.05, 1.042, 1.038, 1.036, 1.035, 1.035, 1.035, 1.034",\
                 "1.258, 1.246, 1.227, 1.217, 1.212, 1.21, 1.209, 1.208, 1.208, 1.207");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.4967, 0.4979, 0.504, 0.5125, 0.5197, 0.5263, 0.5322, 0.5367, 0.5403, 0.5482",\
                 "0.4955, 0.4966, 0.5022, 0.5114, 0.5185, 0.5249, 0.5318, 0.5345, 0.5389, 0.545",\
                 "0.501, 0.5022, 0.5082, 0.5163, 0.5243, 0.531, 0.5376, 0.5417, 0.5461, 0.5522",\
                 "0.526, 0.5266, 0.5321, 0.5402, 0.5476, 0.5544, 0.561, 0.5658, 0.5688, 0.5741",\
                 "0.5756, 0.5757, 0.5799, 0.5873, 0.594, 0.6012, 0.6078, 0.6116, 0.6159, 0.6216",\
                 "0.6522, 0.6516, 0.6528, 0.6608, 0.6673, 0.6732, 0.6791, 0.685, 0.6879, 0.6951",\
                 "0.7579, 0.7567, 0.7568, 0.76, 0.7694, 0.7758, 0.7813, 0.7854, 0.7902, 0.7952",\
                 "0.8952, 0.8919, 0.8909, 0.893, 0.8979, 0.9068, 0.9159, 0.9212, 0.9234, 0.9291",\
                 "1.065, 1.06, 1.057, 1.057, 1.06, 1.065, 1.076, 1.085, 1.088, 1.093",\
                 "1.267, 1.262, 1.256, 1.254, 1.257, 1.261, 1.266, 1.28, 1.287, 1.292");
        }
      }

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

        cell_fall(tmg_ntin_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.225, 0.235, 0.271, 0.348, 0.458, 0.592, 0.748, 0.924, 1.121, \
                  1.341");
        }

        cell_rise(tmg_ntin_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.255, 0.263, 0.301, 0.371, 0.465, 0.58, 0.715, 0.87, 1.048, 1.246");
        }

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

        rise_transition(tmg_ntin_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, 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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.1495, 0.1809, 0.2598, 0.3704, 0.5089, 0.6815, 0.8964, 1.162, 1.484, 1.867",\
                 "0.1573, 0.1887, 0.2674, 0.3779, 0.5165, 0.689, 0.9041, 1.169, 1.491, 1.875",\
                 "0.1867, 0.2178, 0.296, 0.4061, 0.5444, 0.7168, 0.9319, 1.197, 1.519, 1.903",\
                 "0.2215, 0.2556, 0.3368, 0.4469, 0.585, 0.7573, 0.9724, 1.238, 1.56, 1.943",\
                 "0.2361, 0.2729, 0.3568, 0.467, 0.6045, 0.7762, 0.9911, 1.256, 1.578, 1.962",\
                 "0.2296, 0.2681, 0.3524, 0.4621, 0.5992, 0.7706, 0.9848, 1.25, 1.572, 1.955",\
                 "0.2017, 0.2417, 0.3269, 0.4369, 0.5739, 0.7451, 0.9592, 1.224, 1.545, 1.928",\
                 "0.1523, 0.1938, 0.2813, 0.3917, 0.529, 0.7001, 0.9143, 1.179, 1.501, 1.883",\
                 "0.0802, 0.1237, 0.2133, 0.325, 0.4627, 0.6341, 0.8482, 1.113, 1.435, 1.818",\
                 "-0.0167, 0.0289, 0.1215, 0.2345, 0.3728, 0.5445, 0.7588, 1.024, 1.345, 1.728");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.1556, 0.1906, 0.2787, 0.4165, 0.6208, 0.9054, 1.28, 1.752, 2.326, 3.012",\
                 "0.1621, 0.1972, 0.2851, 0.4229, 0.6271, 0.9116, 1.286, 1.758, 2.334, 3.021",\
                 "0.1854, 0.221, 0.3094, 0.4474, 0.6517, 0.9365, 1.311, 1.783, 2.358, 3.045",\
                 "0.2081, 0.2489, 0.3426, 0.4823, 0.6867, 0.9716, 1.346, 1.818, 2.395, 3.082",\
                 "0.2125, 0.2612, 0.3659, 0.51, 0.7157, 1, 1.375, 1.847, 2.422, 3.109",\
                 "0.1936, 0.252, 0.373, 0.5255, 0.7337, 1.019, 1.394, 1.865, 2.44, 3.129",\
                 "0.1492, 0.2183, 0.3593, 0.5245, 0.7385, 1.027, 1.401, 1.873, 2.449, 3.135",\
                 "0.0774, 0.1584, 0.3217, 0.5035, 0.7258, 1.02, 1.398, 1.87, 2.446, 3.132",\
                 "-0.0251, 0.0704, 0.2577, 0.4601, 0.6926, 0.9935, 1.378, 1.855, 2.431, 3.117",\
                 "-0.1593, -0.0478, 0.1658, 0.3924, 0.6377, 0.946, 1.339, 1.823, 2.404, 3.091");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.07908, 0.1097, 0.1958, 0.3239, 0.5021, 0.7533, 1.094, 1.537, 2.083, 2.737",\
                 "0.0786, 0.1094, 0.1959, 0.3238, 0.502, 0.7536, 1.095, 1.537, 2.083, 2.737",\
                 "0.07682, 0.108, 0.1941, 0.3232, 0.5018, 0.7524, 1.095, 1.535, 2.083, 2.74",\
                 "0.08622, 0.1167, 0.1974, 0.3224, 0.5012, 0.7532, 1.095, 1.536, 2.082, 2.741",\
                 "0.09564, 0.1258, 0.2023, 0.3225, 0.4988, 0.7506, 1.094, 1.535, 2.083, 2.74",\
                 "0.103, 0.1304, 0.203, 0.3218, 0.498, 0.749, 1.09, 1.534, 2.083, 2.739",\
                 "0.1098, 0.1352, 0.205, 0.322, 0.4974, 0.7482, 1.09, 1.53, 2.078, 2.733",\
                 "0.1166, 0.1406, 0.2076, 0.3234, 0.4978, 0.7486, 1.091, 1.531, 2.077, 2.731",\
                 "0.125, 0.1472, 0.2118, 0.3256, 0.5002, 0.7494, 1.09, 1.533, 2.077, 2.732",\
                 "0.1336, 0.1546, 0.217, 0.3286, 0.5016, 0.7506, 1.092, 1.533, 2.08, 2.733");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.08604, 0.1228, 0.2371, 0.4596, 0.8239, 1.345, 2.031, 2.893, 3.944, 5.199",\
                 "0.0856, 0.1228, 0.2378, 0.4598, 0.825, 1.345, 2.029, 2.89, 3.949, 5.2",\
                 "0.0878, 0.1241, 0.2377, 0.4597, 0.8235, 1.345, 2.028, 2.889, 3.949, 5.2",\
                 "0.1024, 0.1376, 0.2453, 0.463, 0.8256, 1.345, 2.03, 2.895, 3.951, 5.209",\
                 "0.1236, 0.1607, 0.2613, 0.4696, 0.828, 1.346, 2.031, 2.895, 3.943, 5.198",\
                 "0.1506, 0.1908, 0.2884, 0.4846, 0.8332, 1.347, 2.031, 2.894, 3.943, 5.209",\
                 "0.1818, 0.225, 0.3256, 0.5082, 0.848, 1.353, 2.032, 2.896, 3.947, 5.198",\
                 "0.2194, 0.2626, 0.37, 0.5418, 0.871, 1.374, 2.043, 2.896, 3.95, 5.205",\
                 "0.2636, 0.3078, 0.4194, 0.5822, 0.8984, 1.399, 2.068, 2.913, 3.952, 5.209",\
                 "0.3152, 0.3598, 0.475, 0.6328, 0.9306, 1.427, 2.1, 2.945, 3.973, 5.212");
        }
      }

      timing() {
        related_pin : "I" ;
        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.3353, 0.3667, 0.4474, 0.5607, 0.7009, 0.8741, 1.089, 1.355, 1.677, 2.06",\
                 "0.342, 0.3734, 0.4541, 0.5673, 0.7076, 0.8808, 1.096, 1.362, 1.684, 2.067",\
                 "0.3658, 0.3972, 0.4778, 0.5911, 0.7314, 0.9045, 1.12, 1.385, 1.708, 2.091",\
                 "0.3923, 0.4236, 0.5042, 0.6177, 0.7579, 0.9312, 1.146, 1.412, 1.734, 2.117",\
                 "0.4073, 0.4385, 0.5191, 0.6326, 0.773, 0.9463, 1.162, 1.427, 1.749, 2.133",\
                 "0.4074, 0.4386, 0.5193, 0.6331, 0.7738, 0.9473, 1.163, 1.428, 1.75, 2.134",\
                 "0.3895, 0.4207, 0.5014, 0.6156, 0.7568, 0.9305, 1.146, 1.412, 1.734, 2.117",\
                 "0.3527, 0.3837, 0.4646, 0.5792, 0.7208, 0.8949, 1.111, 1.376, 1.698, 2.082",\
                 "0.2943, 0.3259, 0.407, 0.5222, 0.6642, 0.8386, 1.054, 1.32, 1.642, 2.025",\
                 "0.2145, 0.2461, 0.3275, 0.4431, 0.5857, 0.7604, 0.9764, 1.242, 1.564, 1.948");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.3832, 0.4191, 0.5093, 0.6496, 0.8557, 1.142, 1.517, 1.988, 2.567, 3.254",\
                 "0.3911, 0.4269, 0.5173, 0.6574, 0.8636, 1.149, 1.525, 1.997, 2.574, 3.262",\
                 "0.4283, 0.4642, 0.5544, 0.6946, 0.9009, 1.187, 1.562, 2.034, 2.612, 3.299",\
                 "0.5019, 0.5377, 0.628, 0.7682, 0.9742, 1.26, 1.636, 2.108, 2.684, 3.371",\
                 "0.6019, 0.6374, 0.7277, 0.8681, 1.074, 1.36, 1.736, 2.208, 2.784, 3.47",\
                 "0.7249, 0.7608, 0.8508, 0.9908, 1.197, 1.483, 1.858, 2.331, 2.907, 3.594",\
                 "0.8699, 0.9059, 0.9964, 1.136, 1.343, 1.628, 2.004, 2.476, 3.053, 3.741",\
                 "1.037, 1.073, 1.164, 1.304, 1.51, 1.796, 2.172, 2.643, 3.219, 3.906",\
                 "1.226, 1.262, 1.354, 1.495, 1.701, 1.987, 2.362, 2.834, 3.41, 4.096",\
                 "1.438, 1.475, 1.569, 1.711, 1.917, 2.203, 2.577, 3.049, 3.625, 4.311");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.0846, 0.117, 0.2038, 0.331, 0.5065, 0.7548, 1.097, 1.537, 2.081, 2.741",\
                 "0.08456, 0.1169, 0.2038, 0.3307, 0.5065, 0.7546, 1.097, 1.538, 2.085, 2.741",\
                 "0.08498, 0.1169, 0.2036, 0.3312, 0.5065, 0.7547, 1.097, 1.537, 2.081, 2.741",\
                 "0.08502, 0.1171, 0.2039, 0.3307, 0.5063, 0.7552, 1.097, 1.537, 2.081, 2.739",\
                 "0.08582, 0.1182, 0.2045, 0.331, 0.5066, 0.7558, 1.097, 1.537, 2.082, 2.741",\
                 "0.0876, 0.12, 0.206, 0.3334, 0.5076, 0.7556, 1.096, 1.537, 2.082, 2.74",\
                 "0.0894, 0.122, 0.2086, 0.3352, 0.5094, 0.7576, 1.095, 1.534, 2.084, 2.736",\
                 "0.0914, 0.124, 0.2098, 0.3374, 0.5112, 0.758, 1.097, 1.536, 2.08, 2.735",\
                 "0.0942, 0.1264, 0.2124, 0.3398, 0.5124, 0.7592, 1.098, 1.537, 2.081, 2.736",\
                 "0.0966, 0.1292, 0.2148, 0.3424, 0.515, 0.7606, 1.1, 1.538, 2.083, 2.736");
        }

        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.01119, 0.02148, 0.05758, 0.1265, 0.2339, 0.3846, 0.5829, 0.8327, 1.138, 1.501");
          values("0.0868, 0.1239, 0.2374, 0.4595, 0.8245, 1.344, 2.03, 2.895, 3.95, 5.209",\
                 "0.08702, 0.1235, 0.2374, 0.4596, 0.8244, 1.344, 2.03, 2.891, 3.95, 5.21",\
                 "0.0868, 0.1235, 0.2375, 0.4596, 0.8251, 1.345, 2.031, 2.895, 3.951, 5.209",\
                 "0.08676, 0.1241, 0.2377, 0.4597, 0.8252, 1.345, 2.028, 2.889, 3.949, 5.2",\
                 "0.087, 0.1246, 0.2388, 0.4598, 0.824, 1.343, 2.029, 2.89, 3.949, 5.2",\
                 "0.0884, 0.1262, 0.2396, 0.4608, 0.8236, 1.344, 2.03, 2.895, 3.948, 5.198",\
                 "0.0906, 0.128, 0.242, 0.4616, 0.8244, 1.344, 2.029, 2.893, 3.95, 5.209",\
                 "0.0928, 0.1306, 0.244, 0.4636, 0.8256, 1.344, 2.029, 2.895, 3.944, 5.202",\
                 "0.0958, 0.1342, 0.2474, 0.4648, 0.8256, 1.343, 2.028, 2.89, 3.95, 5.205",\
                 "0.0994, 0.1388, 0.2526, 0.4672, 0.8264, 1.345, 2.029, 2.893, 3.942, 5.202");
        }
      }
    }
  }

