/*
 * 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__dlyb_1) {
    area : 36.691200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "2.405106e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "2.388474e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "2.405106e-05" ;
    }

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

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

    pin(I) {
      capacitance : 0.002524 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3134 ;
      max_transition : 6 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "I" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003156, 0.01072, 0.02518, 0.04769, 0.07928, 0.1209, 0.1732, 0.2372, 0.3134");
          values("0.0528, 0.05224, 0.05156, 0.05129, 0.05128, 0.05132, 0.05138, 0.05144, 0.05148, 0.05151",\
                 "0.05263, 0.0521, 0.05139, 0.05113, 0.05111, 0.05118, 0.05124, 0.05128, 0.05132, 0.05134",\
                 "0.05239, 0.05186, 0.05116, 0.05088, 0.05086, 0.05093, 0.05098, 0.05103, 0.05107, 0.0511",\
                 "0.05236, 0.05182, 0.05114, 0.05086, 0.05083, 0.05087, 0.05094, 0.05101, 0.05104, 0.05107",\
                 "0.05261, 0.05208, 0.05138, 0.05112, 0.05108, 0.05114, 0.0512, 0.05127, 0.05131, 0.05134",\
                 "0.05317, 0.05263, 0.05193, 0.05167, 0.05164, 0.05168, 0.05175, 0.05182, 0.05186, 0.05189",\
                 "0.05405, 0.05351, 0.05281, 0.05255, 0.05253, 0.05256, 0.05264, 0.05269, 0.05273, 0.05275",\
                 "0.05529, 0.05473, 0.05403, 0.05377, 0.05377, 0.05381, 0.05388, 0.05392, 0.05396, 0.05399",\
                 "0.05688, 0.05633, 0.05567, 0.05541, 0.05535, 0.05543, 0.05549, 0.05553, 0.05556, 0.05559",\
                 "0.05892, 0.05837, 0.05766, 0.05737, 0.05735, 0.0574, 0.0575, 0.05755, 0.05758, 0.05759");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003156, 0.01072, 0.02518, 0.04769, 0.07928, 0.1209, 0.1732, 0.2372, 0.3134");
          values("0.04253, 0.0425, 0.04253, 0.04278, 0.04314, 0.04361, 0.04406, 0.04438, 0.04494, 0.04495",\
                 "0.04251, 0.0425, 0.04248, 0.04279, 0.04312, 0.04359, 0.04396, 0.04434, 0.04484, 0.04491",\
                 "0.04233, 0.04235, 0.04231, 0.04255, 0.04294, 0.04341, 0.04384, 0.04432, 0.04444, 0.04481",\
                 "0.04219, 0.04217, 0.04217, 0.04241, 0.0428, 0.04325, 0.04363, 0.04401, 0.04448, 0.04467",\
                 "0.04223, 0.04224, 0.04219, 0.04245, 0.04282, 0.04331, 0.04368, 0.04407, 0.04446, 0.04473",\
                 "0.04259, 0.04253, 0.04254, 0.04283, 0.04316, 0.04363, 0.04408, 0.0444, 0.04496, 0.04507",\
                 "0.04325, 0.04325, 0.04329, 0.04352, 0.04389, 0.04434, 0.04481, 0.04517, 0.04538, 0.04584",\
                 "0.04426, 0.04427, 0.04422, 0.04446, 0.04488, 0.04545, 0.04582, 0.04603, 0.04652, 0.04701",\
                 "0.04564, 0.04558, 0.04562, 0.04583, 0.04619, 0.0465, 0.04729, 0.04783, 0.04773, 0.04838",\
                 "0.04741, 0.04736, 0.04741, 0.04761, 0.04795, 0.0483, 0.04873, 0.04963, 0.05009, 0.05034");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003156, 0.01072, 0.02518, 0.04769, 0.07928, 0.1209, 0.1732, 0.2372, 0.3134");
          values("1.534, 1.573, 1.679, 1.825, 1.999, 2.2, 2.435, 2.711, 3.035, 3.415",\
                 "1.546, 1.584, 1.691, 1.837, 2.01, 2.212, 2.447, 2.723, 3.047, 3.426",\
                 "1.595, 1.634, 1.74, 1.886, 2.06, 2.262, 2.497, 2.772, 3.096, 3.476",\
                 "1.702, 1.74, 1.847, 1.992, 2.166, 2.368, 2.603, 2.879, 3.203, 3.582",\
                 "1.869, 1.907, 2.014, 2.16, 2.334, 2.535, 2.77, 3.046, 3.37, 3.75",\
                 "2.078, 2.117, 2.223, 2.368, 2.542, 2.744, 2.979, 3.255, 3.579, 3.959",\
                 "2.31, 2.349, 2.455, 2.601, 2.775, 2.977, 3.212, 3.488, 3.812, 4.191",\
                 "2.567, 2.606, 2.712, 2.858, 3.032, 3.234, 3.469, 3.745, 4.069, 4.448",\
                 "2.855, 2.893, 3, 3.146, 3.32, 3.522, 3.756, 4.032, 4.356, 4.736",\
                 "3.176, 3.215, 3.321, 3.467, 3.641, 3.843, 4.078, 4.353, 4.678, 5.058");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003156, 0.01072, 0.02518, 0.04769, 0.07928, 0.1209, 0.1732, 0.2372, 0.3134");
          values("1.318, 1.353, 1.456, 1.625, 1.876, 2.224, 2.68, 3.254, 3.955, 4.789",\
                 "1.33, 1.365, 1.467, 1.637, 1.888, 2.236, 2.692, 3.266, 3.966, 4.801",\
                 "1.367, 1.402, 1.504, 1.674, 1.925, 2.273, 2.729, 3.303, 4.003, 4.837",\
                 "1.42, 1.455, 1.558, 1.727, 1.978, 2.326, 2.782, 3.356, 4.057, 4.891",\
                 "1.46, 1.495, 1.598, 1.767, 2.019, 2.367, 2.823, 3.397, 4.097, 4.932",\
                 "1.48, 1.515, 1.618, 1.787, 2.038, 2.386, 2.843, 3.417, 4.117, 4.952",\
                 "1.479, 1.514, 1.617, 1.786, 2.037, 2.385, 2.842, 3.416, 4.115, 4.95",\
                 "1.453, 1.488, 1.59, 1.76, 2.011, 2.359, 2.815, 3.389, 4.09, 4.924",\
                 "1.401, 1.436, 1.539, 1.708, 1.959, 2.307, 2.763, 3.337, 4.037, 4.871",\
                 "1.321, 1.356, 1.459, 1.628, 1.879, 2.227, 2.683, 3.257, 3.957, 4.791");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003156, 0.01072, 0.02518, 0.04769, 0.07928, 0.1209, 0.1732, 0.2372, 0.3134");
          values("0.2466, 0.2798, 0.3704, 0.4984, 0.6736, 0.9066, 1.214, 1.611, 2.116, 2.73",\
                 "0.2464, 0.2798, 0.3702, 0.4982, 0.6738, 0.9066, 1.213, 1.613, 2.115, 2.73",\
                 "0.2466, 0.28, 0.3704, 0.4982, 0.6738, 0.9066, 1.214, 1.612, 2.114, 2.73",\
                 "0.2468, 0.2798, 0.3702, 0.499, 0.6738, 0.9052, 1.213, 1.612, 2.114, 2.731",\
                 "0.2462, 0.2798, 0.3702, 0.4984, 0.6736, 0.9068, 1.213, 1.612, 2.116, 2.73",\
                 "0.2466, 0.28, 0.3704, 0.4992, 0.6734, 0.9056, 1.214, 1.613, 2.116, 2.731",\
                 "0.2464, 0.2798, 0.3704, 0.4992, 0.6736, 0.9058, 1.214, 1.612, 2.116, 2.731",\
                 "0.2466, 0.2798, 0.3708, 0.4986, 0.6724, 0.9058, 1.214, 1.611, 2.113, 2.73",\
                 "0.2464, 0.2796, 0.371, 0.4984, 0.6732, 0.9064, 1.213, 1.611, 2.113, 2.73",\
                 "0.2468, 0.2802, 0.3702, 0.499, 0.6728, 0.9064, 1.213, 1.61, 2.114, 2.727");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.003156, 0.01072, 0.02518, 0.04769, 0.07928, 0.1209, 0.1732, 0.2372, 0.3134");
          values("0.1696, 0.208, 0.3356, 0.5864, 0.9998, 1.591, 2.373, 3.359, 4.571, 6.009",\
                 "0.1704, 0.2084, 0.3356, 0.586, 1, 1.592, 2.374, 3.359, 4.57, 6.007",\
                 "0.1702, 0.2082, 0.3362, 0.5876, 1.001, 1.593, 2.375, 3.363, 4.565, 6.008",\
                 "0.17, 0.2084, 0.3354, 0.5864, 1, 1.592, 2.374, 3.359, 4.57, 6.007",\
                 "0.1696, 0.208, 0.3364, 0.5872, 1, 1.592, 2.374, 3.359, 4.57, 6.007",\
                 "0.1708, 0.2082, 0.3358, 0.5862, 0.999, 1.591, 2.373, 3.359, 4.571, 6.01",\
                 "0.1702, 0.2086, 0.3352, 0.5872, 1.001, 1.592, 2.375, 3.362, 4.568, 6.002",\
                 "0.1708, 0.2084, 0.3358, 0.5862, 0.9994, 1.59, 2.372, 3.361, 4.566, 6.011",\
                 "0.1704, 0.2076, 0.3352, 0.5866, 0.9998, 1.593, 2.372, 3.357, 4.564, 6.006",\
                 "0.1706, 0.208, 0.3356, 0.587, 1.001, 1.592, 2.375, 3.357, 4.561, 6.004");
        }
      }
    }
  }

