/*
 * 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__dlyd_4) {
    area : 87.808000 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "0.0001474044" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "0.0001449294" ;
    }

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.438 ;
      max_transition : 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01092, 0.04573, 0.1122, 0.2158, 0.3611, 0.5524, 0.7933, 1.087, 1.438");
          values("0.8095, 0.7772, 0.6988, 0.6141, 0.5544, 0.5172, 0.4921, 0.4742, 0.4611, 0.4513",\
                 "0.809, 0.7767, 0.6982, 0.6137, 0.5539, 0.5167, 0.4918, 0.4737, 0.4606, 0.4507",\
                 "0.8096, 0.7772, 0.6986, 0.6141, 0.5543, 0.5177, 0.4923, 0.4741, 0.461, 0.4512",\
                 "0.8129, 0.7804, 0.702, 0.6174, 0.5576, 0.5204, 0.4953, 0.4774, 0.4643, 0.4545",\
                 "0.8197, 0.7873, 0.7088, 0.6242, 0.5644, 0.5276, 0.5024, 0.4843, 0.4712, 0.4613",\
                 "0.8303, 0.798, 0.7194, 0.6349, 0.575, 0.5383, 0.5128, 0.4948, 0.4818, 0.4719",\
                 "0.8451, 0.8127, 0.7342, 0.6497, 0.5899, 0.5529, 0.5276, 0.5096, 0.4965, 0.4867",\
                 "0.8647, 0.8322, 0.7536, 0.6693, 0.6091, 0.5723, 0.5469, 0.529, 0.5159, 0.5062",\
                 "0.889, 0.8566, 0.778, 0.6934, 0.6337, 0.5968, 0.5714, 0.5536, 0.5405, 0.5306",\
                 "0.9186, 0.8863, 0.8079, 0.7235, 0.6635, 0.6267, 0.6015, 0.5835, 0.5703, 0.5604");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01092, 0.04573, 0.1122, 0.2158, 0.3611, 0.5524, 0.7933, 1.087, 1.438");
          values("0.467, 0.4442, 0.4157, 0.3976, 0.3871, 0.3831, 0.3815, 0.3825, 0.3876, 0.4229",\
                 "0.4668, 0.4445, 0.4158, 0.3976, 0.3872, 0.3831, 0.3812, 0.3819, 0.3873, 0.4239",\
                 "0.467, 0.4445, 0.4157, 0.3984, 0.3878, 0.3841, 0.3825, 0.3815, 0.3861, 0.4282",\
                 "0.4688, 0.4459, 0.417, 0.3994, 0.39, 0.3861, 0.3845, 0.3839, 0.3911, 0.4324",\
                 "0.4735, 0.4508, 0.4215, 0.4046, 0.3949, 0.3901, 0.3885, 0.3901, 0.3965, 0.4445",\
                 "0.4815, 0.459, 0.431, 0.4128, 0.4024, 0.3987, 0.397, 0.3984, 0.4049, 0.4633",\
                 "0.4938, 0.4714, 0.4425, 0.4248, 0.4148, 0.4109, 0.4102, 0.4103, 0.4188, 0.4975",\
                 "0.5098, 0.4869, 0.4583, 0.4414, 0.4305, 0.426, 0.4241, 0.4253, 0.4331, 0.5377",\
                 "0.5301, 0.5075, 0.479, 0.46, 0.4497, 0.4482, 0.4459, 0.4456, 0.4617, 0.5945",\
                 "0.5548, 0.5321, 0.504, 0.4853, 0.475, 0.4699, 0.4706, 0.4752, 0.4986, 0.6882");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01092, 0.04573, 0.1122, 0.2158, 0.3611, 0.5524, 0.7933, 1.087, 1.438");
          values("4.315, 4.397, 4.599, 4.872, 5.203, 5.587, 6.024, 6.525, 7.101, 7.766",\
                 "4.329, 4.411, 4.614, 4.887, 5.217, 5.601, 6.038, 6.54, 7.115, 7.781",\
                 "4.398, 4.479, 4.681, 4.955, 5.285, 5.67, 6.107, 6.608, 7.184, 7.848",\
                 "4.543, 4.624, 4.826, 5.1, 5.43, 5.815, 6.252, 6.752, 7.329, 7.994",\
                 "4.755, 4.836, 5.039, 5.313, 5.643, 6.027, 6.464, 6.965, 7.541, 8.206",\
                 "5.018, 5.1, 5.302, 5.576, 5.905, 6.29, 6.728, 7.228, 7.804, 8.47",\
                 "5.336, 5.418, 5.62, 5.894, 6.224, 6.609, 7.046, 7.546, 8.123, 8.788",\
                 "5.713, 5.795, 5.997, 6.271, 6.601, 6.985, 7.423, 7.923, 8.499, 9.164",\
                 "6.147, 6.229, 6.431, 6.704, 7.034, 7.419, 7.856, 8.356, 8.933, 9.598",\
                 "6.64, 6.721, 6.923, 7.197, 7.527, 7.912, 8.349, 8.849, 9.425, 10.09");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01092, 0.04573, 0.1122, 0.2158, 0.3611, 0.5524, 0.7933, 1.087, 1.438");
          values("3.68, 3.742, 3.903, 4.157, 4.514, 5.003, 5.644, 6.452, 7.442, 8.622",\
                 "3.693, 3.755, 3.916, 4.169, 4.527, 5.015, 5.657, 6.466, 7.455, 8.635",\
                 "3.734, 3.796, 3.957, 4.21, 4.567, 5.056, 5.697, 6.506, 7.495, 8.673",\
                 "3.77, 3.831, 3.993, 4.246, 4.604, 5.093, 5.734, 6.543, 7.532, 8.712",\
                 "3.779, 3.84, 4.001, 4.255, 4.612, 5.101, 5.742, 6.551, 7.54, 8.716",\
                 "3.754, 3.815, 3.977, 4.23, 4.587, 5.076, 5.717, 6.526, 7.515, 8.692",\
                 "3.691, 3.753, 3.914, 4.168, 4.525, 5.014, 5.655, 6.464, 7.453, 8.631",\
                 "3.586, 3.647, 3.809, 4.062, 4.419, 4.908, 5.549, 6.358, 7.345, 8.526",\
                 "3.431, 3.493, 3.655, 3.908, 4.265, 4.754, 5.395, 6.203, 7.192, 8.372",\
                 "3.225, 3.286, 3.448, 3.702, 4.059, 4.547, 5.19, 5.998, 6.985, 8.163");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01092, 0.04573, 0.1122, 0.2158, 0.3611, 0.5524, 0.7933, 1.087, 1.438");
          values("0.434, 0.5114, 0.7034, 0.9598, 1.29, 1.703, 2.222, 2.881, 3.713, 4.738",\
                 "0.4336, 0.5114, 0.7026, 0.9594, 1.29, 1.703, 2.222, 2.882, 3.712, 4.737",\
                 "0.434, 0.512, 0.7034, 0.9604, 1.29, 1.707, 2.221, 2.882, 3.713, 4.738",\
                 "0.4342, 0.5114, 0.703, 0.96, 1.289, 1.703, 2.221, 2.881, 3.711, 4.734",\
                 "0.4346, 0.5118, 0.703, 0.9598, 1.29, 1.707, 2.221, 2.88, 3.71, 4.734",\
                 "0.4356, 0.5114, 0.7022, 0.96, 1.29, 1.703, 2.221, 2.882, 3.713, 4.736",\
                 "0.4348, 0.512, 0.7032, 0.959, 1.291, 1.707, 2.221, 2.88, 3.712, 4.734",\
                 "0.4342, 0.5118, 0.7028, 0.96, 1.288, 1.703, 2.22, 2.88, 3.712, 4.736",\
                 "0.433, 0.51, 0.702, 0.96, 1.288, 1.704, 2.222, 2.884, 3.712, 4.738",\
                 "0.434, 0.512, 0.702, 0.96, 1.288, 1.704, 2.224, 2.882, 3.712, 4.738");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01092, 0.04573, 0.1122, 0.2158, 0.3611, 0.5524, 0.7933, 1.087, 1.438");
          values("0.1874, 0.2512, 0.4538, 0.815, 1.39, 2.23, 3.358, 4.788, 6.529, 8.624",\
                 "0.1882, 0.2504, 0.4536, 0.8156, 1.391, 2.228, 3.36, 4.79, 6.529, 8.607",\
                 "0.1876, 0.2502, 0.4538, 0.815, 1.387, 2.231, 3.357, 4.791, 6.529, 8.615",\
                 "0.188, 0.251, 0.455, 0.8146, 1.389, 2.229, 3.36, 4.785, 6.539, 8.623",\
                 "0.1888, 0.251, 0.454, 0.8142, 1.389, 2.231, 3.36, 4.79, 6.527, 8.603",\
                 "0.1882, 0.2512, 0.4544, 0.815, 1.39, 2.23, 3.357, 4.79, 6.527, 8.602",\
                 "0.189, 0.2516, 0.455, 0.8148, 1.389, 2.231, 3.357, 4.79, 6.528, 8.613",\
                 "0.188, 0.2508, 0.454, 0.8152, 1.39, 2.23, 3.356, 4.787, 6.533, 8.61",\
                 "0.1878, 0.252, 0.4534, 0.8152, 1.39, 2.229, 3.357, 4.785, 6.535, 8.61",\
                 "0.1884, 0.2512, 0.4534, 0.8164, 1.389, 2.23, 3.36, 4.784, 6.532, 8.61");
        }
      }
    }
  }

