/*
 * 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_16) {
    area : 153.664000 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.008856 ;
      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.3389, 0.3379, 0.345, 0.3686, 0.4154, 0.4897, 0.5941, 0.7313, \
                  0.904, 1.114");
        }

        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.126, 0.1256, 0.1317, 0.149, 0.1798, 0.2253, 0.2871, 0.3676, \
                  0.4768, 0.6163");
        }

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

    pin(I) {
      capacitance : 0.01782 ;
      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.4005, 0.3977, 0.4151, 0.4758, 0.587, 0.7552, 0.9874, 1.286, \
                  1.655, 2.098");
        }

        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.1515, 0.1507, 0.1635, 0.2104, 0.304, 0.4502, 0.6523, 0.9129, \
                  1.237, 1.626");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.0307 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 5.516 ;
      max_transition : 5.2 ;
      min_capacitance : 0.0317 ;
      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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.7129, 0.7125, 0.7126, 0.7124, 0.7121, 0.7123, 0.7129, 0.713, 0.713, 0.713",\
                 "0.7139, 0.7138, 0.7134, 0.7133, 0.7131, 0.7133, 0.7139, 0.714, 0.7139, 0.7139",\
                 "0.7236, 0.7237, 0.7234, 0.7229, 0.723, 0.7231, 0.7237, 0.7238, 0.7238, 0.7239",\
                 "0.7478, 0.7477, 0.7472, 0.7468, 0.7467, 0.7467, 0.747, 0.7469, 0.747, 0.747",\
                 "0.7871, 0.7871, 0.7871, 0.7867, 0.7865, 0.7864, 0.7868, 0.7868, 0.7869, 0.7869",\
                 "0.8434, 0.8436, 0.8434, 0.8434, 0.8435, 0.8433, 0.8433, 0.8434, 0.8434, 0.8435",\
                 "0.9186, 0.9188, 0.9186, 0.9185, 0.9184, 0.9185, 0.9187, 0.9185, 0.9185, 0.9186",\
                 "1.013, 1.014, 1.013, 1.013, 1.013, 1.013, 1.013, 1.013, 1.013, 1.013",\
                 "1.129, 1.129, 1.129, 1.129, 1.129, 1.129, 1.129, 1.129, 1.129, 1.129",\
                 "1.266, 1.266, 1.266, 1.266, 1.265, 1.265, 1.265, 1.265, 1.265, 1.265");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.682, 0.6827, 0.6832, 0.6824, 0.6834, 0.6919, 0.7021, 0.7125, 0.737, 0.7555",\
                 "0.6816, 0.6818, 0.6828, 0.6816, 0.6838, 0.6909, 0.7003, 0.7125, 0.7334, 0.7591",\
                 "0.6865, 0.6904, 0.6883, 0.6867, 0.6888, 0.693, 0.7024, 0.7161, 0.7334, 0.7447",\
                 "0.7057, 0.7061, 0.7074, 0.7058, 0.7072, 0.7132, 0.7255, 0.7377, 0.7622, 0.7807",\
                 "0.7453, 0.7453, 0.7488, 0.7526, 0.7525, 0.76, 0.7697, 0.7845, 0.7982, 0.8131",\
                 "0.8091, 0.8099, 0.8115, 0.813, 0.8202, 0.8226, 0.8306, 0.8457, 0.863, 0.8707",\
                 "0.9006, 0.903, 0.9023, 0.9009, 0.9041, 0.9205, 0.9267, 0.9321, 0.9494, 0.9646",\
                 "1.022, 1.023, 1.024, 1.028, 1.021, 1.031, 1.054, 1.065, 1.072, 1.083",\
                 "1.176, 1.176, 1.183, 1.179, 1.178, 1.179, 1.192, 1.231, 1.234, 1.231",\
                 "1.362, 1.362, 1.364, 1.369, 1.367, 1.361, 1.366, 1.393, 1.435, 1.443");
        }
      }

      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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("1.174, 1.191, 1.224, 1.244, 1.253, 1.259, 1.263, 1.264, 1.265, 1.266",\
                 "1.172, 1.19, 1.222, 1.243, 1.252, 1.258, 1.261, 1.263, 1.264, 1.265",\
                 "1.186, 1.203, 1.235, 1.256, 1.265, 1.271, 1.274, 1.276, 1.277, 1.278",\
                 "1.238, 1.255, 1.285, 1.306, 1.316, 1.322, 1.326, 1.328, 1.329, 1.33",\
                 "1.345, 1.36, 1.388, 1.409, 1.421, 1.427, 1.431, 1.433, 1.435, 1.436",\
                 "1.51, 1.524, 1.55, 1.572, 1.584, 1.591, 1.595, 1.598, 1.599, 1.6",\
                 "1.74, 1.751, 1.777, 1.798, 1.812, 1.82, 1.824, 1.827, 1.829, 1.83",\
                 "2.035, 2.046, 2.07, 2.091, 2.105, 2.113, 2.118, 2.121, 2.123, 2.124",\
                 "2.4, 2.411, 2.434, 2.455, 2.469, 2.478, 2.484, 2.487, 2.489, 2.491",\
                 "2.838, 2.848, 2.87, 2.891, 2.906, 2.915, 2.921, 2.925, 2.927, 2.929");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("1.195, 1.211, 1.235, 1.257, 1.27, 1.282, 1.299, 1.314, 1.339, 1.361",\
                 "1.191, 1.206, 1.234, 1.254, 1.267, 1.279, 1.297, 1.31, 1.339, 1.357",\
                 "1.209, 1.226, 1.25, 1.271, 1.284, 1.298, 1.314, 1.328, 1.353, 1.375",\
                 "1.274, 1.29, 1.311, 1.332, 1.348, 1.362, 1.378, 1.393, 1.418, 1.44",\
                 "1.395, 1.409, 1.432, 1.451, 1.464, 1.481, 1.497, 1.512, 1.533, 1.544",\
                 "1.582, 1.592, 1.615, 1.638, 1.652, 1.67, 1.686, 1.703, 1.72, 1.728",\
                 "1.841, 1.85, 1.873, 1.885, 1.914, 1.927, 1.94, 1.955, 1.972, 2.009",\
                 "2.177, 2.188, 2.204, 2.221, 2.238, 2.266, 2.278, 2.29, 2.303, 2.329",\
                 "2.593, 2.602, 2.618, 2.636, 2.646, 2.666, 2.7, 2.714, 2.728, 2.747",\
                 "3.094, 3.102, 3.119, 3.13, 3.148, 3.16, 3.178, 3.226, 3.232, 3.258");
        }
      }

      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.551, 0.561, 0.596, 0.669, 0.792, 0.97, 1.178, 1.414, 1.682, \
                  1.981");
        }

        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.368, 0.378, 0.416, 0.483, 0.572, 0.685, 0.821, 0.979, 1.159, \
                  1.36");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.1818, 0.226, 0.3269, 0.4598, 0.6205, 0.8123, 1.044, 1.325, 1.663, 2.064",\
                 "0.19, 0.2343, 0.3351, 0.4683, 0.6288, 0.8205, 1.052, 1.333, 1.671, 2.073",\
                 "0.2194, 0.2637, 0.3645, 0.4974, 0.6582, 0.8498, 1.082, 1.362, 1.701, 2.102",\
                 "0.2583, 0.3066, 0.4113, 0.5462, 0.7078, 0.8999, 1.132, 1.412, 1.75, 2.152",\
                 "0.2783, 0.3325, 0.4488, 0.5909, 0.755, 0.9481, 1.18, 1.461, 1.799, 2.201",\
                 "0.2763, 0.3339, 0.4545, 0.5979, 0.7627, 0.956, 1.188, 1.469, 1.807, 2.209",\
                 "0.2519, 0.3111, 0.4333, 0.5779, 0.7431, 0.9367, 1.169, 1.45, 1.788, 2.189",\
                 "0.2051, 0.265, 0.3886, 0.5342, 0.7002, 0.8945, 1.127, 1.408, 1.746, 2.147",\
                 "0.1348, 0.1959, 0.3212, 0.4683, 0.6351, 0.8299, 1.062, 1.344, 1.681, 2.083",\
                 "0.0403, 0.1024, 0.2292, 0.3771, 0.5451, 0.7405, 0.9733, 1.255, 1.593, 1.994");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.2286, 0.2823, 0.398, 0.5562, 0.7745, 1.075, 1.469, 1.966, 2.574, 3.298",\
                 "0.236, 0.2898, 0.4054, 0.5633, 0.782, 1.082, 1.477, 1.974, 2.581, 3.306",\
                 "0.2621, 0.3158, 0.4317, 0.5894, 0.808, 1.108, 1.503, 2, 2.606, 3.332",\
                 "0.3011, 0.3585, 0.4775, 0.6361, 0.8548, 1.155, 1.55, 2.047, 2.654, 3.379",\
                 "0.3266, 0.3936, 0.5279, 0.6929, 0.9129, 1.213, 1.608, 2.104, 2.712, 3.436",\
                 "0.3317, 0.4083, 0.5611, 0.738, 0.9617, 1.262, 1.656, 2.154, 2.759, 3.483",\
                 "0.3138, 0.4003, 0.5735, 0.7666, 0.996, 1.297, 1.691, 2.188, 2.794, 3.518",\
                 "0.2716, 0.3679, 0.5619, 0.7752, 1.014, 1.317, 1.711, 2.207, 2.813, 3.536",\
                 "0.2043, 0.31, 0.5245, 0.7602, 1.012, 1.321, 1.715, 2.211, 2.817, 3.539",\
                 "0.111, 0.2257, 0.4603, 0.7193, 0.988, 1.303, 1.702, 2.199, 2.804, 3.526");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.09118, 0.1317, 0.2305, 0.3713, 0.555, 0.8029, 1.138, 1.575, 2.122, 2.784",\
                 "0.09108, 0.1317, 0.23, 0.3718, 0.5548, 0.8023, 1.138, 1.575, 2.122, 2.784",\
                 "0.09102, 0.1315, 0.2303, 0.3714, 0.5551, 0.8021, 1.138, 1.576, 2.121, 2.784",\
                 "0.1028, 0.1423, 0.2362, 0.3753, 0.5579, 0.8037, 1.139, 1.576, 2.122, 2.786",\
                 "0.1174, 0.1622, 0.2608, 0.3901, 0.5654, 0.8084, 1.141, 1.576, 2.122, 2.783",\
                 "0.1276, 0.1742, 0.2682, 0.3942, 0.5678, 0.8094, 1.142, 1.575, 2.123, 2.785",\
                 "0.1348, 0.1794, 0.2724, 0.3978, 0.57, 0.8102, 1.141, 1.574, 2.122, 2.784",\
                 "0.1396, 0.183, 0.2758, 0.4006, 0.5722, 0.8126, 1.141, 1.576, 2.12, 2.78",\
                 "0.1426, 0.1862, 0.2794, 0.4036, 0.5748, 0.8142, 1.143, 1.578, 2.122, 2.78",\
                 "0.1466, 0.191, 0.2824, 0.4068, 0.5776, 0.8166, 1.146, 1.578, 2.122, 2.782");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.1072, 0.1521, 0.2651, 0.4733, 0.8243, 1.338, 2.024, 2.89, 3.948, 5.211",\
                 "0.1071, 0.1521, 0.2652, 0.4726, 0.8233, 1.338, 2.024, 2.891, 3.946, 5.21",\
                 "0.1073, 0.1529, 0.2653, 0.4731, 0.8242, 1.338, 2.025, 2.891, 3.948, 5.214",\
                 "0.1182, 0.1601, 0.2692, 0.4741, 0.8246, 1.338, 2.023, 2.89, 3.948, 5.212",\
                 "0.1388, 0.1877, 0.2928, 0.4844, 0.8272, 1.34, 2.024, 2.889, 3.951, 5.214",\
                 "0.1604, 0.216, 0.3276, 0.5066, 0.8344, 1.341, 2.024, 2.889, 3.943, 5.206",\
                 "0.1828, 0.2458, 0.3674, 0.537, 0.848, 1.344, 2.024, 2.889, 3.946, 5.211",\
                 "0.2046, 0.2756, 0.4126, 0.5794, 0.8704, 1.352, 2.026, 2.888, 3.946, 5.203",\
                 "0.2258, 0.3044, 0.4604, 0.629, 0.9014, 1.366, 2.033, 2.891, 3.942, 5.206",\
                 "0.2482, 0.3326, 0.5048, 0.6858, 0.9424, 1.392, 2.046, 2.897, 3.945, 5.199");
        }
      }

      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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.2989, 0.3447, 0.447, 0.5801, 0.7401, 0.9316, 1.163, 1.444, 1.782, 2.183",\
                 "0.3063, 0.3521, 0.4543, 0.5875, 0.7475, 0.939, 1.17, 1.451, 1.789, 2.191",\
                 "0.3291, 0.375, 0.4771, 0.6104, 0.7704, 0.962, 1.193, 1.474, 1.812, 2.214",\
                 "0.3479, 0.3938, 0.4961, 0.6294, 0.7895, 0.981, 1.212, 1.493, 1.831, 2.233",\
                 "0.3553, 0.401, 0.5033, 0.6368, 0.7971, 0.9886, 1.22, 1.501, 1.839, 2.241",\
                 "0.3471, 0.3929, 0.4954, 0.6291, 0.7896, 0.9812, 1.213, 1.494, 1.832, 2.233",\
                 "0.3223, 0.3682, 0.4709, 0.6048, 0.7655, 0.9574, 1.189, 1.47, 1.808, 2.21",\
                 "0.2784, 0.3245, 0.4274, 0.5617, 0.7226, 0.9146, 1.146, 1.427, 1.766, 2.167",\
                 "0.2145, 0.2608, 0.364, 0.4984, 0.6596, 0.8518, 1.084, 1.365, 1.703, 2.105",\
                 "0.1292, 0.1757, 0.2793, 0.414, 0.5755, 0.7676, 0.9996, 1.281, 1.619, 2.021");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.389, 0.4433, 0.5596, 0.7178, 0.9371, 1.238, 1.633, 2.131, 2.738, 3.462",\
                 "0.3976, 0.4517, 0.5681, 0.7264, 0.9457, 1.247, 1.641, 2.139, 2.747, 3.471",\
                 "0.4357, 0.4899, 0.6062, 0.7645, 0.9838, 1.285, 1.68, 2.177, 2.785, 3.509",\
                 "0.5046, 0.5588, 0.6751, 0.8336, 1.053, 1.354, 1.749, 2.246, 2.854, 3.578",\
                 "0.5956, 0.6498, 0.7659, 0.9244, 1.144, 1.445, 1.84, 2.338, 2.945, 3.669",\
                 "0.71, 0.7643, 0.8809, 1.039, 1.259, 1.56, 1.955, 2.452, 3.059, 3.781",\
                 "0.8467, 0.9012, 1.018, 1.177, 1.397, 1.698, 2.092, 2.59, 3.196, 3.922",\
                 "1.007, 1.062, 1.179, 1.338, 1.558, 1.859, 2.254, 2.751, 3.358, 4.081",\
                 "1.193, 1.248, 1.365, 1.525, 1.745, 2.046, 2.441, 2.938, 3.545, 4.268",\
                 "1.404, 1.46, 1.578, 1.738, 1.958, 2.259, 2.654, 3.151, 3.758, 4.481");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.0873, 0.1274, 0.2258, 0.3679, 0.5521, 0.8002, 1.137, 1.574, 2.121, 2.785",\
                 "0.08748, 0.1274, 0.2256, 0.3677, 0.5521, 0.8003, 1.137, 1.575, 2.123, 2.784",\
                 "0.08754, 0.1272, 0.226, 0.3677, 0.552, 0.8012, 1.137, 1.574, 2.123, 2.783",\
                 "0.0877, 0.1277, 0.2262, 0.3681, 0.5521, 0.8004, 1.137, 1.575, 2.122, 2.784",\
                 "0.08836, 0.1282, 0.2268, 0.3682, 0.5522, 0.8008, 1.137, 1.575, 2.122, 2.784",\
                 "0.0892, 0.1292, 0.2274, 0.3682, 0.5526, 0.8006, 1.136, 1.574, 2.122, 2.782",\
                 "0.09, 0.13, 0.228, 0.3694, 0.5532, 0.8018, 1.136, 1.573, 2.123, 2.783",\
                 "0.091, 0.1312, 0.2288, 0.3702, 0.554, 0.8018, 1.136, 1.575, 2.12, 2.781",\
                 "0.0918, 0.132, 0.2296, 0.3702, 0.5542, 0.8024, 1.138, 1.574, 2.121, 2.781",\
                 "0.0926, 0.1326, 0.2304, 0.3712, 0.5552, 0.8026, 1.139, 1.575, 2.121, 2.781");
        }

        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.0317, 0.06955, 0.2024, 0.4562, 0.8515, 1.406, 2.136, 3.056, 4.178, 5.516");
          values("0.1013, 0.1466, 0.2602, 0.4707, 0.8234, 1.338, 2.023, 2.89, 3.947, 5.208",\
                 "0.101, 0.1458, 0.2602, 0.4704, 0.8238, 1.338, 2.023, 2.89, 3.949, 5.212",\
                 "0.1012, 0.1466, 0.2602, 0.4705, 0.8234, 1.339, 2.023, 2.891, 3.948, 5.212",\
                 "0.1021, 0.1475, 0.2609, 0.4708, 0.8236, 1.339, 2.022, 2.891, 3.948, 5.212",\
                 "0.1022, 0.1468, 0.2616, 0.4714, 0.8236, 1.339, 2.023, 2.891, 3.951, 5.214",\
                 "0.1032, 0.1476, 0.262, 0.4712, 0.8238, 1.338, 2.024, 2.891, 3.947, 5.207",\
                 "0.1042, 0.1488, 0.263, 0.4712, 0.823, 1.339, 2.023, 2.89, 3.945, 5.208",\
                 "0.1044, 0.15, 0.2636, 0.472, 0.8234, 1.337, 2.023, 2.89, 3.945, 5.205",\
                 "0.1064, 0.151, 0.2648, 0.4724, 0.8248, 1.339, 2.024, 2.886, 3.949, 5.204",\
                 "0.109, 0.1532, 0.2652, 0.4742, 0.825, 1.34, 2.024, 2.886, 3.941, 5.204");
        }
      }
    }
  }

