/*
 * 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__latq_4) {
    area : 79.027200 ;

    latch(IQ1,IQN1) {
      enable : "E" ;
      data_in : "(!D)" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!D&!E" ;
      value : "0.00415656" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!D&E" ;
      value : "0.00424152" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "D&!E" ;
      value : "0.01429416" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "D&E" ;
      value : "0.01418904" ;
    }

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

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

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

    pin(D) {
      capacitance : 0.004031 ;
      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 : "!E" ;

        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.01818, 0.01819, 0.01818, 0.01819, 0.01819, 0.01819, 0.01822, \
                  0.01821, 0.0182, 0.0182");
        }

        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.01675, -0.01675, -0.01671, -0.01672, -0.01674, -0.01675, -0.0168, \
                  -0.01677, -0.01681, -0.01683");
        }
      }

      timing() {
        related_pin : "E" ;
        timing_type : hold_falling ;

        fall_constraint(cnst_ctin_rtin_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.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.802, -0.792, -0.766, -0.719, -0.674, -0.622, -0.568, -0.506, -0.426, -0.333",\
                 "-0.807, -0.798, -0.769, -0.729, -0.683, -0.629, -0.573, -0.506, -0.431, -0.337",\
                 "-0.826, -0.813, -0.789, -0.743, -0.695, -0.642, -0.592, -0.524, -0.45, -0.351",\
                 "-0.858, -0.85, -0.82, -0.779, -0.734, -0.682, -0.623, -0.556, -0.48, -0.384",\
                 "-0.935, -0.923, -0.894, -0.85, -0.8, -0.756, -0.695, -0.63, -0.547, -0.455",\
                 "-1.055, -1.046, -1.021, -0.972, -0.928, -0.877, -0.816, -0.75, -0.665, -0.571",\
                 "-1.232, -1.222, -1.191, -1.151, -1.102, -1.053, -0.993, -0.925, -0.839, -0.744",\
                 "-1.45, -1.442, -1.407, -1.365, -1.316, -1.267, -1.21, -1.142, -1.059, -0.968",\
                 "-1.701, -1.693, -1.671, -1.627, -1.578, -1.528, -1.475, -1.411, -1.335, -1.241",\
                 "-1.994, -1.985, -1.959, -1.914, -1.871, -1.823, -1.77, -1.71, -1.64, -1.556");
        }

        rise_constraint(cnst_ctin_rtin_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.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.366, -0.357, -0.32, -0.255, -0.173, -0.073, 0.045, 0.167, 0.306, 0.457",\
                 "-0.372, -0.36, -0.327, -0.256, -0.175, -0.076, 0.038, 0.169, 0.307, 0.459",\
                 "-0.38, -0.37, -0.33, -0.263, -0.183, -0.079, 0.035, 0.161, 0.295, 0.45",\
                 "-0.394, -0.384, -0.348, -0.286, -0.199, -0.1, 0.015, 0.137, 0.278, 0.43",\
                 "-0.429, -0.421, -0.388, -0.322, -0.235, -0.137, -0.019, 0.108, 0.243, 0.404",\
                 "-0.469, -0.454, -0.418, -0.352, -0.27, -0.17, -0.058, 0.066, 0.208, 0.367",\
                 "-0.491, -0.48, -0.443, -0.381, -0.297, -0.194, -0.085, 0.04, 0.18, 0.342",\
                 "-0.494, -0.482, -0.449, -0.379, -0.302, -0.201, -0.088, 0.036, 0.176, 0.332",\
                 "-0.464, -0.456, -0.428, -0.359, -0.278, -0.176, -0.063, 0.065, 0.201, 0.356",\
                 "-0.419, -0.413, -0.371, -0.307, -0.221, -0.121, -0.011, 0.118, 0.261, 0.418");
        }
      }

      timing() {
        related_pin : "E" ;
        timing_type : setup_falling ;

        fall_constraint(cnst_ctin_rtin_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.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.933, 0.926, 0.897, 0.857, 0.836, 0.847, 0.901, 1.025, 1.208, 1.439",\
                 "0.941, 0.933, 0.911, 0.861, 0.839, 0.845, 0.907, 1.031, 1.21, 1.437",\
                 "0.957, 0.954, 0.918, 0.88, 0.857, 0.865, 0.915, 1.038, 1.21, 1.429",\
                 "0.996, 0.983, 0.957, 0.913, 0.885, 0.888, 0.945, 1.057, 1.217, 1.432",\
                 "1.067, 1.058, 1.027, 0.987, 0.964, 0.962, 1.011, 1.119, 1.267, 1.466",\
                 "1.19, 1.184, 1.153, 1.112, 1.077, 1.074, 1.11, 1.194, 1.318, 1.492",\
                 "1.372, 1.365, 1.335, 1.297, 1.253, 1.238, 1.254, 1.324, 1.444, 1.602",\
                 "1.606, 1.6, 1.571, 1.531, 1.482, 1.445, 1.452, 1.502, 1.6, 1.741",\
                 "1.89, 1.874, 1.846, 1.806, 1.76, 1.709, 1.701, 1.736, 1.822, 1.941",\
                 "2.199, 2.193, 2.164, 2.127, 2.076, 2.029, 1.989, 2.013, 2.086, 2.206");
        }

        rise_constraint(cnst_ctin_rtin_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.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.452, 0.447, 0.407, 0.341, 0.259, 0.163, 0.058, -0.064, -0.187, -0.329",\
                 "0.455, 0.446, 0.412, 0.346, 0.259, 0.169, 0.061, -0.063, -0.187, -0.329",\
                 "0.467, 0.455, 0.418, 0.352, 0.269, 0.178, 0.063, -0.052, -0.182, -0.325",\
                 "0.48, 0.475, 0.437, 0.368, 0.289, 0.193, 0.086, -0.037, -0.164, -0.307",\
                 "0.515, 0.504, 0.469, 0.404, 0.321, 0.226, 0.12, 0.003, -0.132, -0.28",\
                 "0.551, 0.546, 0.508, 0.445, 0.358, 0.258, 0.151, 0.034, -0.105, -0.249",\
                 "0.572, 0.562, 0.524, 0.457, 0.376, 0.287, 0.176, 0.051, -0.084, -0.229",\
                 "0.568, 0.566, 0.527, 0.463, 0.375, 0.28, 0.173, 0.057, -0.084, -0.234",\
                 "0.544, 0.537, 0.495, 0.43, 0.349, 0.254, 0.143, 0.027, -0.114, -0.268",\
                 "0.483, 0.478, 0.443, 0.375, 0.286, 0.192, 0.08, -0.04, -0.184, -0.338");
        }
      }
    }

    pin(E) {
      capacitance : 0.004968 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      min_pulse_width_high : 0.966 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        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.1591, 0.1585, 0.1626, 0.1796, 0.2117, 0.2607, 0.3274, 0.4126, \
                  0.5174, 0.6426");
        }

        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.08892, 0.0885, 0.0917, 0.1055, 0.1329, 0.1756, 0.2346, 0.3104, \
                  0.4038, 0.5158");
        }
      }

      internal_power() {
        when : "D" ;

        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.1604, 0.1597, 0.1641, 0.1813, 0.2136, 0.2627, 0.3295, 0.4148, \
                  0.5195, 0.6447");
        }

        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.08732, 0.08692, 0.09009, 0.1037, 0.1309, 0.1735, 0.2323, 0.308, \
                  0.4013, 0.5136");
        }
      }

      timing() {
        related_pin : "E" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D" ;

        rise_constraint(scalar) {
          values("0.966");
        }
      }

      timing() {
        related_pin : "E" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D" ;

        rise_constraint(scalar) {
          values("0.681");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQN1" ;
      max_capacitance : 1.511 ;
      max_transition : 5.2 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "D" ;
        when : "E" ;

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("1.679, 1.637, 1.519, 1.366, 1.217, 1.1, 1.017, 0.9577, 0.9125, 0.8777",\
                 "1.678, 1.636, 1.518, 1.365, 1.217, 1.099, 1.017, 0.9572, 0.912, 0.8772",\
                 "1.678, 1.636, 1.518, 1.365, 1.216, 1.098, 1.017, 0.9568, 0.9116, 0.8768",\
                 "1.68, 1.638, 1.521, 1.368, 1.219, 1.101, 1.019, 0.9595, 0.9143, 0.8795",\
                 "1.697, 1.654, 1.537, 1.383, 1.234, 1.115, 1.033, 0.9727, 0.9271, 0.8921",\
                 "1.747, 1.705, 1.586, 1.431, 1.279, 1.157, 1.072, 1.01, 0.9627, 0.9262",\
                 "1.855, 1.812, 1.691, 1.531, 1.372, 1.243, 1.151, 1.084, 1.033, 0.9932",\
                 "2.029, 1.985, 1.86, 1.692, 1.521, 1.381, 1.278, 1.202, 1.144, 1.098",\
                 "2.266, 2.222, 2.093, 1.915, 1.73, 1.573, 1.455, 1.367, 1.298, 1.244",\
                 "2.564, 2.519, 2.385, 2.197, 1.996, 1.819, 1.683, 1.579, 1.497, 1.432");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.9449, 0.9058, 0.8075, 0.7229, 0.6688, 0.6319, 0.6077, 0.5909, 0.5827, 0.5767",\
                 "0.944, 0.9052, 0.8068, 0.7224, 0.6673, 0.6312, 0.6073, 0.5913, 0.5827, 0.5777",\
                 "0.9436, 0.9046, 0.8063, 0.7217, 0.6666, 0.6305, 0.6062, 0.5902, 0.5824, 0.5756",\
                 "0.948, 0.9088, 0.8107, 0.7263, 0.6716, 0.6341, 0.6098, 0.5938, 0.5852, 0.5792",\
                 "0.9793, 0.9399, 0.8413, 0.7547, 0.6976, 0.6579, 0.6314, 0.6143, 0.604, 0.5972",\
                 "1.064, 1.023, 0.921, 0.8282, 0.7634, 0.7173, 0.6854, 0.664, 0.6486, 0.6393",\
                 "1.196, 1.154, 1.044, 0.9395, 0.8686, 0.8134, 0.7715, 0.7418, 0.7238, 0.7084",\
                 "1.372, 1.328, 1.211, 1.093, 1.006, 0.9415, 0.8917, 0.8545, 0.825, 0.8056",\
                 "1.589, 1.543, 1.419, 1.284, 1.182, 1.102, 1.044, 0.997, 0.9618, 0.9298",\
                 "1.844, 1.796, 1.665, 1.514, 1.393, 1.298, 1.224, 1.168, 1.127, 1.091");
        }
      }

      internal_power() {
        related_pin : "E" ;

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("1.646, 1.604, 1.487, 1.334, 1.186, 1.068, 0.9863, 0.9266, 0.8816, 0.8469",\
                 "1.646, 1.604, 1.487, 1.334, 1.186, 1.068, 0.9863, 0.9267, 0.8817, 0.8469",\
                 "1.645, 1.604, 1.486, 1.334, 1.185, 1.068, 0.986, 0.9264, 0.8814, 0.8466",\
                 "1.645, 1.603, 1.486, 1.333, 1.185, 1.067, 0.9858, 0.9263, 0.8811, 0.8464",\
                 "1.646, 1.604, 1.486, 1.334, 1.185, 1.068, 0.986, 0.9265, 0.8815, 0.8466",\
                 "1.648, 1.606, 1.489, 1.336, 1.188, 1.07, 0.9882, 0.9284, 0.8834, 0.8486",\
                 "1.655, 1.613, 1.495, 1.342, 1.193, 1.075, 0.9924, 0.9323, 0.8871, 0.8523",\
                 "1.669, 1.626, 1.508, 1.354, 1.204, 1.085, 1.002, 0.9409, 0.895, 0.8598",\
                 "1.688, 1.646, 1.527, 1.371, 1.22, 1.099, 1.014, 0.9528, 0.9061, 0.8701",\
                 "1.712, 1.669, 1.549, 1.392, 1.238, 1.116, 1.03, 0.9667, 0.9191, 0.8824");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.9549, 0.9158, 0.8181, 0.734, 0.6786, 0.6414, 0.6172, 0.6022, 0.5919, 0.5858",\
                 "0.9549, 0.9156, 0.8171, 0.7332, 0.6787, 0.6415, 0.6172, 0.6023, 0.5915, 0.5833",\
                 "0.955, 0.9158, 0.8176, 0.7332, 0.6784, 0.6415, 0.6169, 0.6009, 0.593, 0.5859",\
                 "0.9555, 0.9165, 0.8184, 0.7338, 0.6792, 0.6431, 0.6178, 0.6028, 0.5921, 0.5839",\
                 "0.9558, 0.9166, 0.8188, 0.7339, 0.6786, 0.6425, 0.6179, 0.604, 0.5936, 0.5865",\
                 "0.9566, 0.9175, 0.8199, 0.7348, 0.6806, 0.6431, 0.6188, 0.6039, 0.5928, 0.586",\
                 "0.9565, 0.9171, 0.8194, 0.7356, 0.6824, 0.6455, 0.6198, 0.6035, 0.5952, 0.5888",\
                 "0.9565, 0.9171, 0.8194, 0.7341, 0.6797, 0.6454, 0.6218, 0.6058, 0.5962, 0.5876",\
                 "0.9566, 0.9173, 0.8191, 0.7358, 0.6789, 0.6424, 0.6221, 0.6097, 0.5979, 0.5929",\
                 "0.9562, 0.917, 0.8197, 0.7347, 0.6786, 0.6396, 0.6168, 0.6069, 0.6012, 0.5976");
        }
      }

      timing() {
        related_pin : "D" ;
        timing_sense : positive_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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.9269, 0.9725, 1.093, 1.265, 1.468, 1.701, 1.967, 2.271, 2.619, 3.017",\
                 "0.933, 0.9785, 1.099, 1.271, 1.474, 1.707, 1.973, 2.277, 2.625, 3.023",\
                 "0.9497, 0.9954, 1.115, 1.288, 1.491, 1.724, 1.99, 2.294, 2.641, 3.04",\
                 "0.9842, 1.03, 1.151, 1.322, 1.526, 1.759, 2.024, 2.328, 2.676, 3.075",\
                 "1.058, 1.104, 1.224, 1.395, 1.599, 1.831, 2.097, 2.401, 2.749, 3.147",\
                 "1.183, 1.229, 1.349, 1.52, 1.722, 1.955, 2.22, 2.524, 2.871, 3.27",\
                 "1.359, 1.405, 1.526, 1.698, 1.901, 2.133, 2.398, 2.702, 3.049, 3.447",\
                 "1.581, 1.628, 1.751, 1.926, 2.131, 2.365, 2.631, 2.934, 3.281, 3.679",\
                 "1.842, 1.891, 2.018, 2.197, 2.407, 2.644, 2.912, 3.218, 3.565, 3.963",\
                 "2.136, 2.186, 2.32, 2.507, 2.724, 2.967, 3.241, 3.55, 3.9, 4.298");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.6411, 0.682, 0.789, 0.9465, 1.162, 1.448, 1.818, 2.284, 2.854, 3.537",\
                 "0.6438, 0.6849, 0.792, 0.9494, 1.165, 1.451, 1.821, 2.287, 2.858, 3.539",\
                 "0.6511, 0.6922, 0.7992, 0.9567, 1.172, 1.458, 1.828, 2.294, 2.865, 3.547",\
                 "0.6694, 0.7103, 0.8174, 0.9748, 1.19, 1.476, 1.846, 2.312, 2.882, 3.564",\
                 "0.7043, 0.7453, 0.8523, 1.009, 1.224, 1.509, 1.878, 2.344, 2.914, 3.596",\
                 "0.7462, 0.7884, 0.8974, 1.055, 1.269, 1.553, 1.921, 2.385, 2.954, 3.636",\
                 "0.78, 0.8235, 0.936, 1.097, 1.311, 1.595, 1.961, 2.423, 2.991, 3.671",\
                 "0.7959, 0.8416, 0.9589, 1.124, 1.341, 1.625, 1.991, 2.452, 3.017, 3.695",\
                 "0.7886, 0.8367, 0.9598, 1.131, 1.352, 1.64, 2.006, 2.465, 3.028, 3.703",\
                 "0.7562, 0.8064, 0.9352, 1.113, 1.339, 1.63, 2, 2.461, 3.024, 3.697");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.3123, 0.366, 0.4995, 0.6614, 0.8462, 1.085, 1.399, 1.797, 2.294, 2.91",\
                 "0.3122, 0.3662, 0.4982, 0.6614, 0.8468, 1.085, 1.4, 1.797, 2.295, 2.909",\
                 "0.3127, 0.3658, 0.4982, 0.6614, 0.8468, 1.087, 1.4, 1.795, 2.295, 2.91",\
                 "0.3122, 0.3654, 0.4992, 0.6614, 0.847, 1.086, 1.399, 1.795, 2.294, 2.906",\
                 "0.3128, 0.3656, 0.4982, 0.6618, 0.8474, 1.086, 1.399, 1.797, 2.294, 2.906",\
                 "0.3134, 0.3664, 0.5006, 0.6648, 0.8504, 1.09, 1.402, 1.797, 2.297, 2.907",\
                 "0.3288, 0.3828, 0.516, 0.678, 0.861, 1.097, 1.408, 1.804, 2.3, 2.912",\
                 "0.3498, 0.4034, 0.5402, 0.7062, 0.8872, 1.118, 1.423, 1.814, 2.309, 2.914",\
                 "0.3858, 0.4412, 0.581, 0.7486, 0.928, 1.155, 1.453, 1.837, 2.324, 2.928",\
                 "0.4292, 0.4874, 0.635, 0.8088, 0.9874, 1.208, 1.498, 1.875, 2.351, 2.944");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.1825, 0.2279, 0.3557, 0.5636, 0.8978, 1.386, 2.051, 2.903, 3.947, 5.206",\
                 "0.1832, 0.2278, 0.3555, 0.5639, 0.8983, 1.386, 2.049, 2.904, 3.946, 5.2",\
                 "0.1832, 0.2279, 0.3557, 0.5641, 0.898, 1.386, 2.05, 2.905, 3.95, 5.206",\
                 "0.1818, 0.2277, 0.3555, 0.564, 0.8988, 1.386, 2.049, 2.903, 3.946, 5.202",\
                 "0.1826, 0.229, 0.356, 0.5644, 0.8996, 1.387, 2.05, 2.9, 3.951, 5.201",\
                 "0.1946, 0.24, 0.3668, 0.5716, 0.9034, 1.388, 2.052, 2.902, 3.947, 5.206",\
                 "0.2116, 0.2584, 0.3862, 0.588, 0.916, 1.396, 2.055, 2.906, 3.949, 5.199",\
                 "0.234, 0.2818, 0.4134, 0.614, 0.9368, 1.41, 2.062, 2.908, 3.954, 5.198",\
                 "0.2602, 0.31, 0.4452, 0.645, 0.9648, 1.438, 2.079, 2.914, 3.955, 5.206",\
                 "0.2912, 0.3428, 0.4804, 0.6812, 0.999, 1.47, 2.112, 2.94, 3.965, 5.206");
        }
      }

      timing() {
        related_pin : "E" ;
        timing_type : rising_edge ;

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.9565, 1.002, 1.122, 1.294, 1.498, 1.731, 1.997, 2.301, 2.648, 3.047",\
                 "0.963, 1.009, 1.129, 1.301, 1.504, 1.737, 2.003, 2.307, 2.655, 3.054",\
                 "0.9863, 1.032, 1.152, 1.324, 1.527, 1.76, 2.026, 2.33, 2.678, 3.077",\
                 "1.015, 1.06, 1.18, 1.352, 1.556, 1.789, 2.055, 2.359, 2.706, 3.105",\
                 "1.036, 1.081, 1.201, 1.373, 1.577, 1.81, 2.076, 2.38, 2.727, 3.126",\
                 "1.048, 1.094, 1.214, 1.386, 1.59, 1.823, 2.088, 2.393, 2.74, 3.139",\
                 "1.052, 1.098, 1.218, 1.39, 1.594, 1.827, 2.092, 2.396, 2.744, 3.143",\
                 "1.046, 1.091, 1.211, 1.383, 1.587, 1.82, 2.086, 2.39, 2.737, 3.136",\
                 "1.024, 1.07, 1.19, 1.363, 1.567, 1.8, 2.066, 2.37, 2.718, 3.117",\
                 "0.9865, 1.033, 1.154, 1.327, 1.531, 1.765, 2.031, 2.336, 2.683, 3.082");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.8515, 0.8924, 0.9996, 1.157, 1.372, 1.658, 2.028, 2.494, 3.065, 3.747",\
                 "0.858, 0.8989, 1.006, 1.164, 1.379, 1.665, 2.035, 2.5, 3.071, 3.753",\
                 "0.8838, 0.9247, 1.032, 1.189, 1.405, 1.69, 2.06, 2.526, 3.097, 3.779",\
                 "0.9176, 0.9586, 1.066, 1.223, 1.438, 1.724, 2.094, 2.56, 3.13, 3.813",\
                 "0.9441, 0.985, 1.092, 1.249, 1.465, 1.751, 2.12, 2.586, 3.157, 3.839",\
                 "0.9593, 1, 1.107, 1.265, 1.48, 1.766, 2.136, 2.601, 3.172, 3.854",\
                 "0.961, 1.002, 1.109, 1.266, 1.482, 1.768, 2.138, 2.604, 3.175, 3.857",\
                 "0.9477, 0.9888, 1.096, 1.253, 1.469, 1.754, 2.124, 2.59, 3.161, 3.841",\
                 "0.918, 0.9588, 1.066, 1.223, 1.438, 1.724, 2.094, 2.56, 3.13, 3.811",\
                 "0.8712, 0.9116, 1.019, 1.176, 1.391, 1.677, 2.047, 2.513, 3.083, 3.764");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.3123, 0.3648, 0.4978, 0.6612, 0.8466, 1.086, 1.399, 1.795, 2.297, 2.91",\
                 "0.3129, 0.3651, 0.498, 0.6612, 0.8468, 1.085, 1.399, 1.795, 2.295, 2.908",\
                 "0.3124, 0.3648, 0.4972, 0.6612, 0.8472, 1.086, 1.399, 1.795, 2.295, 2.91",\
                 "0.3128, 0.3648, 0.4982, 0.6612, 0.847, 1.086, 1.399, 1.797, 2.295, 2.91",\
                 "0.3126, 0.3648, 0.4982, 0.6614, 0.8466, 1.086, 1.399, 1.798, 2.296, 2.907",\
                 "0.3122, 0.3638, 0.4978, 0.6614, 0.8472, 1.086, 1.4, 1.797, 2.296, 2.907",\
                 "0.3128, 0.3652, 0.4986, 0.6622, 0.8474, 1.086, 1.401, 1.796, 2.296, 2.91",\
                 "0.3152, 0.3674, 0.5016, 0.6644, 0.8492, 1.088, 1.399, 1.797, 2.294, 2.91",\
                 "0.3186, 0.3712, 0.5054, 0.669, 0.853, 1.092, 1.402, 1.799, 2.294, 2.906",\
                 "0.3224, 0.3754, 0.5102, 0.6738, 0.8578, 1.096, 1.407, 1.803, 2.296, 2.91");
        }

        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.001, 0.01142, 0.04799, 0.1178, 0.2266, 0.3793, 0.5802, 0.8333, 1.142, 1.511");
          values("0.181, 0.2277, 0.3552, 0.5644, 0.8992, 1.386, 2.051, 2.901, 3.947, 5.206",\
                 "0.1814, 0.2277, 0.3558, 0.564, 0.8982, 1.386, 2.051, 2.901, 3.947, 5.204",\
                 "0.1811, 0.2277, 0.356, 0.564, 0.8992, 1.386, 2.05, 2.905, 3.95, 5.206",\
                 "0.181, 0.227, 0.3556, 0.5642, 0.898, 1.387, 2.051, 2.901, 3.947, 5.204",\
                 "0.181, 0.2272, 0.3556, 0.5642, 0.8982, 1.386, 2.05, 2.899, 3.95, 5.206",\
                 "0.1808, 0.2274, 0.3552, 0.5642, 0.8978, 1.386, 2.05, 2.902, 3.949, 5.204",\
                 "0.181, 0.2272, 0.355, 0.5644, 0.8994, 1.387, 2.05, 2.905, 3.951, 5.206",\
                 "0.181, 0.2274, 0.3552, 0.564, 0.8988, 1.385, 2.048, 2.905, 3.952, 5.206",\
                 "0.1802, 0.2272, 0.3546, 0.5638, 0.8988, 1.385, 2.048, 2.9, 3.947, 5.201",\
                 "0.18, 0.2264, 0.3546, 0.564, 0.8988, 1.386, 2.049, 2.904, 3.947, 5.199");
        }
      }
    }
  }

