/*
 * 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_8) {
    area : 104.428800 ;

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

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

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

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

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

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

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

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

        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.3042, 0.3027, 0.3124, 0.3473, 0.4144, 0.5186, 0.6653, 0.856, \
                  1.095, 1.384");
        }

        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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1858, 0.1848, 0.1931, 0.2163, 0.2582, 0.3198, 0.4047, 0.5245, \
                  0.6822, 0.8776");
        }

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

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

        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.2617, 0.2592, 0.2719, 0.3127, 0.3879, 0.5018, 0.658, 0.8585, \
                  1.107, 1.405");
        }

        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.1027, 0.1015, 0.1099, 0.1415, 0.2055, 0.3043, 0.4411, 0.6175, \
                  0.8358, 1.099");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.01991 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 3.575 ;
      max_transition : 4.4 ;
      min_capacitance : 0.02091 ;
      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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.5504, 0.55, 0.5499, 0.55, 0.5497, 0.5503, 0.5503, 0.5504, 0.5504, 0.5505",\
                 "0.5514, 0.5508, 0.5509, 0.5504, 0.5505, 0.5509, 0.5509, 0.551, 0.551, 0.5511",\
                 "0.5647, 0.5646, 0.5641, 0.564, 0.564, 0.5643, 0.5644, 0.5645, 0.5645, 0.5645",\
                 "0.5968, 0.5971, 0.5963, 0.596, 0.5962, 0.5963, 0.5964, 0.5965, 0.5966, 0.5966",\
                 "0.6506, 0.6509, 0.6507, 0.6507, 0.6504, 0.6505, 0.6506, 0.6507, 0.6506, 0.6507",\
                 "0.7286, 0.7288, 0.7289, 0.7286, 0.7286, 0.7287, 0.7286, 0.7287, 0.7288, 0.7287",\
                 "0.8318, 0.8317, 0.8316, 0.831, 0.8309, 0.8311, 0.8314, 0.8313, 0.8313, 0.8313",\
                 "0.9611, 0.9615, 0.9612, 0.9605, 0.9604, 0.9606, 0.9607, 0.9609, 0.9609, 0.9608",\
                 "1.118, 1.118, 1.118, 1.118, 1.117, 1.118, 1.117, 1.118, 1.118, 1.118",\
                 "1.304, 1.304, 1.304, 1.303, 1.303, 1.304, 1.304, 1.304, 1.304, 1.304");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.4821, 0.4824, 0.4823, 0.4828, 0.4847, 0.489, 0.499, 0.5064, 0.5089, 0.5255",\
                 "0.4813, 0.4815, 0.4813, 0.4817, 0.4832, 0.4879, 0.4962, 0.5053, 0.5151, 0.5255",\
                 "0.4878, 0.4883, 0.4892, 0.4886, 0.4901, 0.4926, 0.5019, 0.5092, 0.5165, 0.5327",\
                 "0.5159, 0.5164, 0.5181, 0.5199, 0.5203, 0.5235, 0.5307, 0.5449, 0.5547, 0.5651",\
                 "0.574, 0.5747, 0.5749, 0.5804, 0.579, 0.5815, 0.5894, 0.596, 0.6105, 0.6191",\
                 "0.6671, 0.6688, 0.6681, 0.6657, 0.6762, 0.6762, 0.6823, 0.6936, 0.6987, 0.7163",\
                 "0.7972, 0.7982, 0.7993, 0.7992, 0.7986, 0.8126, 0.8187, 0.8192, 0.8329, 0.8315",\
                 "0.9675, 0.9678, 0.9706, 0.9695, 0.9678, 0.971, 0.9915, 0.9938, 0.9967, 1.004",\
                 "1.181, 1.181, 1.182, 1.183, 1.182, 1.183, 1.191, 1.214, 1.22, 1.224",\
                 "1.437, 1.437, 1.44, 1.442, 1.44, 1.441, 1.438, 1.455, 1.493, 1.49");
        }
      }

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

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.8656, 0.8725, 0.8898, 0.9043, 0.9124, 0.9167, 0.9191, 0.9208, 0.9219, 0.9226",\
                 "0.8644, 0.8706, 0.888, 0.9024, 0.9106, 0.9151, 0.9177, 0.9193, 0.9203, 0.921",\
                 "0.8735, 0.8795, 0.8966, 0.9106, 0.919, 0.9236, 0.9261, 0.9278, 0.9289, 0.9296",\
                 "0.911, 0.9167, 0.9323, 0.9461, 0.9546, 0.9595, 0.9616, 0.9633, 0.9644, 0.9651",\
                 "0.988, 0.9916, 1.006, 1.019, 1.027, 1.032, 1.035, 1.037, 1.038, 1.039",\
                 "1.106, 1.109, 1.12, 1.132, 1.141, 1.146, 1.149, 1.151, 1.152, 1.153",\
                 "1.268, 1.268, 1.278, 1.289, 1.298, 1.304, 1.307, 1.309, 1.31, 1.311",\
                 "1.477, 1.476, 1.483, 1.493, 1.501, 1.507, 1.51, 1.513, 1.514, 1.515",\
                 "1.731, 1.728, 1.732, 1.741, 1.75, 1.756, 1.76, 1.762, 1.764, 1.765",\
                 "2.036, 2.032, 2.034, 2.043, 2.051, 2.057, 2.061, 2.063, 2.065, 2.066");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.8469, 0.8571, 0.8789, 0.8964, 0.9091, 0.9195, 0.9303, 0.9416, 0.9531, 0.9722",\
                 "0.8435, 0.8545, 0.874, 0.8942, 0.9065, 0.917, 0.9299, 0.9372, 0.9477, 0.965",\
                 "0.856, 0.867, 0.8882, 0.9061, 0.9188, 0.9288, 0.94, 0.956, 0.9675, 0.9758",\
                 "0.901, 0.9113, 0.9314, 0.9493, 0.9634, 0.9728, 0.9857, 0.9963, 1.009, 1.019",\
                 "0.9845, 0.9945, 1.014, 1.03, 1.044, 1.055, 1.07, 1.083, 1.092, 1.105",\
                 "1.112, 1.122, 1.136, 1.158, 1.171, 1.182, 1.195, 1.209, 1.22, 1.235",\
                 "1.29, 1.298, 1.312, 1.326, 1.348, 1.359, 1.37, 1.378, 1.393, 1.401",\
                 "1.519, 1.527, 1.541, 1.553, 1.566, 1.592, 1.602, 1.615, 1.62, 1.627",\
                 "1.802, 1.81, 1.824, 1.835, 1.849, 1.859, 1.887, 1.901, 1.908, 1.915",\
                 "2.143, 2.148, 2.161, 2.173, 2.19, 2.197, 2.213, 2.249, 2.253, 2.261");
        }
      }

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

        cell_fall(tmg_ntin_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.245, 0.253, 0.283, 0.348, 0.449, 0.569, 0.712, 0.874, 1.054, \
                  1.254");
        }

        cell_rise(tmg_ntin_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.232, 0.239, 0.271, 0.328, 0.402, 0.494, 0.604, 0.728, 0.872, \
                  1.032");
        }

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

        rise_transition(tmg_ntin_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, 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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.13, 0.1603, 0.2309, 0.326, 0.4443, 0.5927, 0.7794, 1.011, 1.294, 1.63",\
                 "0.1369, 0.1672, 0.2378, 0.3328, 0.4512, 0.5995, 0.7862, 1.018, 1.301, 1.637",\
                 "0.1623, 0.1925, 0.263, 0.3579, 0.4762, 0.6245, 0.8112, 1.043, 1.326, 1.662",\
                 "0.193, 0.2264, 0.3005, 0.3968, 0.5154, 0.664, 0.8507, 1.083, 1.365, 1.701",\
                 "0.2086, 0.245, 0.3224, 0.4194, 0.5382, 0.6866, 0.8733, 1.105, 1.387, 1.724",\
                 "0.2078, 0.2452, 0.3232, 0.4206, 0.5395, 0.6879, 0.8743, 1.106, 1.388, 1.725",\
                 "0.1899, 0.2279, 0.3065, 0.4043, 0.5235, 0.6719, 0.8584, 1.09, 1.372, 1.708",\
                 "0.155, 0.1939, 0.2735, 0.3719, 0.4914, 0.6399, 0.8265, 1.058, 1.34, 1.676",\
                 "0.1027, 0.1423, 0.2232, 0.3222, 0.442, 0.5907, 0.7774, 1.009, 1.291, 1.627",\
                 "0.0313, 0.0719, 0.1543, 0.2537, 0.3741, 0.523, 0.7097, 0.9415, 1.224, 1.56");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.141, 0.1747, 0.2531, 0.3745, 0.556, 0.81, 1.145, 1.565, 2.08, 2.693",\
                 "0.1472, 0.1809, 0.2594, 0.3807, 0.5622, 0.8163, 1.151, 1.571, 2.086, 2.698",\
                 "0.1695, 0.2034, 0.2821, 0.4035, 0.585, 0.8391, 1.173, 1.595, 2.108, 2.721",\
                 "0.1956, 0.2346, 0.3178, 0.4402, 0.6216, 0.8756, 1.21, 1.632, 2.146, 2.759",\
                 "0.2094, 0.2551, 0.3478, 0.4735, 0.6555, 0.9093, 1.244, 1.664, 2.178, 2.79",\
                 "0.2081, 0.261, 0.3666, 0.4977, 0.6803, 0.9341, 1.268, 1.689, 2.203, 2.816",\
                 "0.1893, 0.2496, 0.3703, 0.5104, 0.6951, 0.9489, 1.283, 1.703, 2.217, 2.83",\
                 "0.1523, 0.22, 0.3564, 0.5085, 0.6976, 0.9528, 1.287, 1.707, 2.221, 2.833",\
                 "0.096, 0.1712, 0.3233, 0.4898, 0.6851, 0.9436, 1.279, 1.7, 2.213, 2.825",\
                 "0.0188, 0.102, 0.2699, 0.4524, 0.6556, 0.9179, 1.257, 1.68, 2.193, 2.805");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.06146, 0.0899, 0.162, 0.267, 0.4147, 0.6282, 0.9192, 1.298, 1.762, 2.319",\
                 "0.06132, 0.0899, 0.162, 0.2662, 0.4149, 0.6278, 0.9197, 1.297, 1.762, 2.319",\
                 "0.06098, 0.08964, 0.1618, 0.2668, 0.4151, 0.628, 0.9202, 1.297, 1.761, 2.319",\
                 "0.07012, 0.0985, 0.167, 0.2685, 0.4162, 0.6285, 0.9207, 1.297, 1.762, 2.317",\
                 "0.07794, 0.1079, 0.1729, 0.271, 0.4163, 0.6289, 0.9192, 1.298, 1.761, 2.318",\
                 "0.08312, 0.1109, 0.1747, 0.2722, 0.4172, 0.628, 0.918, 1.297, 1.762, 2.317",\
                 "0.0858, 0.1134, 0.176, 0.2736, 0.4178, 0.6286, 0.9184, 1.294, 1.76, 2.318",\
                 "0.0886, 0.1158, 0.178, 0.2742, 0.4188, 0.6286, 0.9194, 1.295, 1.759, 2.315",\
                 "0.0922, 0.1188, 0.18, 0.2758, 0.4196, 0.63, 0.9194, 1.296, 1.76, 2.315",\
                 "0.0958, 0.122, 0.1824, 0.2776, 0.421, 0.631, 0.9196, 1.298, 1.762, 2.316");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.0672, 0.09802, 0.1915, 0.3787, 0.6889, 1.13, 1.712, 2.442, 3.337, 4.401",\
                 "0.06724, 0.09804, 0.1915, 0.3788, 0.6886, 1.13, 1.711, 2.443, 3.335, 4.403",\
                 "0.06808, 0.09864, 0.1918, 0.379, 0.6882, 1.13, 1.709, 2.447, 3.335, 4.403",\
                 "0.08034, 0.1105, 0.1965, 0.3807, 0.6893, 1.13, 1.711, 2.445, 3.342, 4.41",\
                 "0.09522, 0.1288, 0.2112, 0.3854, 0.6903, 1.13, 1.711, 2.444, 3.338, 4.406",\
                 "0.111, 0.1508, 0.2323, 0.3932, 0.692, 1.13, 1.71, 2.443, 3.339, 4.409",\
                 "0.128, 0.1728, 0.2598, 0.4092, 0.697, 1.131, 1.709, 2.44, 3.336, 4.402",\
                 "0.1458, 0.1956, 0.2912, 0.4324, 0.7086, 1.137, 1.712, 2.44, 3.336, 4.396",\
                 "0.1654, 0.218, 0.324, 0.46, 0.7246, 1.148, 1.718, 2.442, 3.332, 4.402",\
                 "0.1874, 0.242, 0.358, 0.4948, 0.7454, 1.163, 1.734, 2.45, 3.336, 4.395");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.2323, 0.2643, 0.3375, 0.4336, 0.5522, 0.7008, 0.8877, 1.12, 1.402, 1.739",\
                 "0.2384, 0.2704, 0.3435, 0.4398, 0.5584, 0.707, 0.8938, 1.126, 1.408, 1.745",\
                 "0.258, 0.29, 0.363, 0.4592, 0.578, 0.7265, 0.9134, 1.145, 1.428, 1.764",\
                 "0.2754, 0.3072, 0.3803, 0.4766, 0.5954, 0.7441, 0.9308, 1.163, 1.445, 1.782",\
                 "0.2842, 0.3159, 0.3892, 0.4857, 0.6045, 0.7531, 0.94, 1.172, 1.455, 1.791",\
                 "0.2813, 0.313, 0.3865, 0.4831, 0.6021, 0.7508, 0.9377, 1.17, 1.452, 1.789",\
                 "0.2651, 0.2969, 0.3705, 0.4674, 0.5867, 0.7355, 0.9225, 1.155, 1.437, 1.773",\
                 "0.2341, 0.2659, 0.3396, 0.4369, 0.5565, 0.7054, 0.8925, 1.125, 1.407, 1.744",\
                 "0.1867, 0.2184, 0.2927, 0.3902, 0.51, 0.659, 0.8462, 1.078, 1.361, 1.697",\
                 "0.1221, 0.1539, 0.2285, 0.3265, 0.4464, 0.5957, 0.7829, 1.015, 1.298, 1.634");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.2772, 0.3118, 0.3917, 0.5145, 0.6973, 0.9521, 1.287, 1.709, 2.222, 2.836",\
                 "0.2843, 0.3189, 0.3989, 0.5217, 0.7045, 0.9593, 1.294, 1.715, 2.229, 2.842",\
                 "0.3163, 0.351, 0.4309, 0.5538, 0.7366, 0.9914, 1.326, 1.748, 2.262, 2.876",\
                 "0.3738, 0.4084, 0.4884, 0.6113, 0.794, 1.049, 1.383, 1.806, 2.319, 2.931",\
                 "0.4488, 0.4835, 0.5636, 0.6865, 0.8693, 1.124, 1.459, 1.881, 2.396, 3.01",\
                 "0.5418, 0.5766, 0.6566, 0.7797, 0.9627, 1.217, 1.553, 1.973, 2.489, 3.102",\
                 "0.6516, 0.6867, 0.767, 0.8902, 1.073, 1.328, 1.663, 2.084, 2.599, 3.212",\
                 "0.7793, 0.8144, 0.8953, 1.019, 1.202, 1.457, 1.791, 2.212, 2.726, 3.339",\
                 "0.9253, 0.9611, 1.043, 1.166, 1.349, 1.605, 1.939, 2.361, 2.874, 3.487",\
                 "1.09, 1.127, 1.209, 1.333, 1.516, 1.771, 2.106, 2.527, 3.041, 3.654");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.0618, 0.09098, 0.1619, 0.2657, 0.4143, 0.6274, 0.9202, 1.297, 1.763, 2.318",\
                 "0.06186, 0.09094, 0.1621, 0.2659, 0.4143, 0.6275, 0.9201, 1.296, 1.762, 2.319",\
                 "0.06192, 0.09108, 0.1622, 0.2661, 0.4147, 0.6275, 0.9202, 1.297, 1.762, 2.318",\
                 "0.062, 0.09118, 0.1626, 0.2659, 0.4147, 0.6276, 0.9199, 1.297, 1.763, 2.319",\
                 "0.0623, 0.09186, 0.1628, 0.266, 0.4141, 0.6278, 0.9196, 1.297, 1.762, 2.32",\
                 "0.06286, 0.09262, 0.1638, 0.2668, 0.4148, 0.6272, 0.9192, 1.298, 1.761, 2.319",\
                 "0.0634, 0.0938, 0.1652, 0.2682, 0.4158, 0.6282, 0.9192, 1.295, 1.761, 2.319",\
                 "0.064, 0.0946, 0.1662, 0.269, 0.4162, 0.6288, 0.9202, 1.296, 1.761, 2.316",\
                 "0.0648, 0.0958, 0.1672, 0.2698, 0.4168, 0.6292, 0.9198, 1.297, 1.761, 2.316",\
                 "0.0656, 0.097, 0.1686, 0.271, 0.4174, 0.6292, 0.9214, 1.297, 1.762, 2.318");
        }

        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.02091, 0.04545, 0.1316, 0.296, 0.5522, 0.9117, 1.385, 1.981, 2.708, 3.575");
          values("0.06486, 0.09546, 0.1894, 0.378, 0.6895, 1.13, 1.711, 2.446, 3.341, 4.41",\
                 "0.06452, 0.09548, 0.1893, 0.3788, 0.6893, 1.13, 1.711, 2.445, 3.337, 4.405",\
                 "0.0645, 0.09552, 0.1896, 0.3779, 0.6893, 1.13, 1.712, 2.445, 3.342, 4.402",\
                 "0.06486, 0.0954, 0.1896, 0.3789, 0.6883, 1.13, 1.71, 2.446, 3.339, 4.407",\
                 "0.06552, 0.09638, 0.1898, 0.3782, 0.6888, 1.13, 1.711, 2.443, 3.342, 4.407",\
                 "0.0662, 0.0968, 0.1904, 0.3784, 0.6882, 1.13, 1.711, 2.441, 3.341, 4.408",\
                 "0.067, 0.098, 0.1916, 0.3788, 0.6886, 1.128, 1.71, 2.441, 3.338, 4.405",\
                 "0.0686, 0.0988, 0.1918, 0.3794, 0.689, 1.129, 1.708, 2.443, 3.334, 4.4",\
                 "0.0706, 0.1008, 0.193, 0.38, 0.6888, 1.129, 1.709, 2.439, 3.334, 4.393",\
                 "0.0736, 0.1032, 0.1948, 0.3802, 0.689, 1.129, 1.709, 2.439, 3.332, 4.398");
        }
      }
    }
  }

