/*
 * 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__dlyc_4) {
    area : 68.051200 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.00274 ;
      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.435 ;
      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.0109, 0.04564, 0.112, 0.2153, 0.3603, 0.5512, 0.7916, 1.085, 1.435");
          values("0.7344, 0.7022, 0.624, 0.5395, 0.48, 0.443, 0.4175, 0.3995, 0.3864, 0.3766",\
                 "0.734, 0.7017, 0.6235, 0.539, 0.4793, 0.4422, 0.4172, 0.3991, 0.3859, 0.3761",\
                 "0.7343, 0.7022, 0.6239, 0.5395, 0.4797, 0.4429, 0.4175, 0.3995, 0.3864, 0.3765",\
                 "0.7376, 0.7054, 0.6272, 0.5429, 0.4828, 0.446, 0.4208, 0.4027, 0.3897, 0.3799",\
                 "0.7444, 0.7124, 0.634, 0.5498, 0.4896, 0.4527, 0.4276, 0.4096, 0.3966, 0.3867",\
                 "0.7552, 0.7229, 0.6446, 0.5603, 0.5001, 0.4634, 0.4381, 0.4202, 0.4071, 0.3973",\
                 "0.7699, 0.7378, 0.6595, 0.575, 0.5152, 0.4779, 0.4529, 0.4348, 0.4218, 0.4119",\
                 "0.7892, 0.7571, 0.6787, 0.5943, 0.5343, 0.4975, 0.4722, 0.4544, 0.4412, 0.4314",\
                 "0.8137, 0.7816, 0.7034, 0.6189, 0.5591, 0.5224, 0.497, 0.479, 0.4657, 0.4559",\
                 "0.8435, 0.8113, 0.7332, 0.6488, 0.5892, 0.5524, 0.5269, 0.5088, 0.4957, 0.4858");
        }

        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.0109, 0.04564, 0.112, 0.2153, 0.3603, 0.5512, 0.7916, 1.085, 1.435");
          values("0.3936, 0.3709, 0.3433, 0.3249, 0.3146, 0.3109, 0.3086, 0.3085, 0.3116, 0.3387",\
                 "0.3934, 0.371, 0.343, 0.3249, 0.3147, 0.3106, 0.3089, 0.3091, 0.3139, 0.338",\
                 "0.3935, 0.3714, 0.3434, 0.3252, 0.3157, 0.3116, 0.3095, 0.3088, 0.3127, 0.3401",\
                 "0.3954, 0.3729, 0.3443, 0.3274, 0.3167, 0.3129, 0.3119, 0.313, 0.314, 0.3451",\
                 "0.4003, 0.3778, 0.3497, 0.3318, 0.3212, 0.3175, 0.3175, 0.3179, 0.3223, 0.3581",\
                 "0.4084, 0.3858, 0.3578, 0.3402, 0.3305, 0.3264, 0.3257, 0.3265, 0.3314, 0.3703",\
                 "0.4201, 0.3974, 0.3696, 0.3517, 0.3425, 0.3376, 0.3359, 0.3374, 0.3414, 0.3998",\
                 "0.4363, 0.4139, 0.3856, 0.3675, 0.359, 0.3538, 0.3521, 0.3529, 0.3586, 0.4309",\
                 "0.4565, 0.4341, 0.4063, 0.3876, 0.3764, 0.3739, 0.3762, 0.3758, 0.3838, 0.4745",\
                 "0.4815, 0.4593, 0.4302, 0.4133, 0.402, 0.3964, 0.397, 0.4034, 0.4181, 0.5482");
        }
      }

      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.0109, 0.04564, 0.112, 0.2153, 0.3603, 0.5512, 0.7916, 1.085, 1.435");
          values("3.262, 3.343, 3.544, 3.817, 4.147, 4.531, 4.968, 5.467, 6.042, 6.706",\
                 "3.276, 3.357, 3.559, 3.832, 4.161, 4.545, 4.982, 5.482, 6.057, 6.721",\
                 "3.344, 3.425, 3.627, 3.9, 4.23, 4.614, 5.05, 5.549, 6.125, 6.788",\
                 "3.489, 3.57, 3.772, 4.045, 4.374, 4.759, 5.196, 5.695, 6.27, 6.934",\
                 "3.702, 3.783, 3.985, 4.257, 4.586, 4.971, 5.408, 5.907, 6.482, 7.146",\
                 "3.965, 4.047, 4.248, 4.521, 4.85, 5.234, 5.671, 6.17, 6.746, 7.409",\
                 "4.284, 4.366, 4.567, 4.84, 5.169, 5.553, 5.99, 6.489, 7.064, 7.728",\
                 "4.66, 4.742, 4.943, 5.216, 5.546, 5.93, 6.367, 6.866, 7.441, 8.105",\
                 "5.095, 5.176, 5.377, 5.65, 5.98, 6.364, 6.801, 7.3, 7.875, 8.539",\
                 "5.588, 5.669, 5.87, 6.143, 6.473, 6.857, 7.294, 7.794, 8.368, 9.032");
        }

        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.0109, 0.04564, 0.112, 0.2153, 0.3603, 0.5512, 0.7916, 1.085, 1.435");
          values("2.638, 2.699, 2.861, 3.113, 3.47, 3.957, 4.598, 5.405, 6.392, 7.571",\
                 "2.651, 2.712, 2.873, 3.126, 3.483, 3.97, 4.61, 5.418, 6.405, 7.582",\
                 "2.691, 2.753, 2.914, 3.166, 3.523, 4.011, 4.651, 5.458, 6.445, 7.623",\
                 "2.728, 2.789, 2.95, 3.203, 3.56, 4.047, 4.688, 5.495, 6.482, 7.66",\
                 "2.736, 2.797, 2.958, 3.211, 3.568, 4.055, 4.696, 5.503, 6.49, 7.667",\
                 "2.712, 2.773, 2.934, 3.187, 3.543, 4.031, 4.671, 5.479, 6.466, 7.64",\
                 "2.649, 2.71, 2.871, 3.124, 3.481, 3.969, 4.609, 5.415, 6.402, 7.582",\
                 "2.543, 2.604, 2.765, 3.018, 3.375, 3.862, 4.502, 5.31, 6.296, 7.474",\
                 "2.389, 2.45, 2.611, 2.863, 3.22, 3.708, 4.348, 5.155, 6.14, 7.317",\
                 "2.183, 2.245, 2.405, 2.658, 3.015, 3.502, 4.143, 4.95, 5.936, 7.111");
        }

        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.0109, 0.04564, 0.112, 0.2153, 0.3603, 0.5512, 0.7916, 1.085, 1.435");
          values("0.435, 0.5126, 0.7034, 0.9596, 1.288, 1.705, 2.219, 2.876, 3.706, 4.726",\
                 "0.4354, 0.512, 0.7032, 0.9596, 1.289, 1.702, 2.218, 2.877, 3.707, 4.727",\
                 "0.436, 0.5126, 0.7032, 0.9586, 1.288, 1.705, 2.218, 2.877, 3.707, 4.728",\
                 "0.4358, 0.5128, 0.7034, 0.9586, 1.287, 1.701, 2.218, 2.878, 3.704, 4.726",\
                 "0.4364, 0.512, 0.7024, 0.9588, 1.29, 1.704, 2.218, 2.877, 3.704, 4.73",\
                 "0.4356, 0.5122, 0.7036, 0.959, 1.288, 1.704, 2.219, 2.879, 3.707, 4.727",\
                 "0.4352, 0.5126, 0.7022, 0.9592, 1.287, 1.703, 2.219, 2.877, 3.706, 4.725",\
                 "0.4346, 0.512, 0.7018, 0.959, 1.288, 1.702, 2.219, 2.879, 3.704, 4.73",\
                 "0.4348, 0.5116, 0.7026, 0.959, 1.289, 1.702, 2.218, 2.878, 3.704, 4.73",\
                 "0.436, 0.512, 0.704, 0.958, 1.286, 1.706, 2.216, 2.878, 3.704, 4.728");
        }

        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.0109, 0.04564, 0.112, 0.2153, 0.3603, 0.5512, 0.7916, 1.085, 1.435");
          values("0.1872, 0.2516, 0.4532, 0.8134, 1.386, 2.226, 3.355, 4.778, 6.52, 8.592",\
                 "0.1884, 0.2512, 0.4528, 0.8148, 1.388, 2.227, 3.355, 4.782, 6.518, 8.603",\
                 "0.1886, 0.2518, 0.4534, 0.8134, 1.386, 2.227, 3.35, 4.777, 6.517, 8.607",\
                 "0.188, 0.2512, 0.4542, 0.8136, 1.388, 2.227, 3.351, 4.783, 6.519, 8.607",\
                 "0.188, 0.251, 0.4538, 0.8144, 1.387, 2.227, 3.354, 4.783, 6.517, 8.595",\
                 "0.1894, 0.2512, 0.4542, 0.8138, 1.387, 2.227, 3.354, 4.783, 6.528, 8.595",\
                 "0.188, 0.2512, 0.4536, 0.8156, 1.388, 2.227, 3.355, 4.781, 6.514, 8.591",\
                 "0.188, 0.2512, 0.4538, 0.814, 1.386, 2.226, 3.352, 4.778, 6.519, 8.595",\
                 "0.1878, 0.2516, 0.4538, 0.8158, 1.387, 2.226, 3.35, 4.774, 6.518, 8.586",\
                 "0.188, 0.251, 0.454, 0.8126, 1.387, 2.227, 3.352, 4.775, 6.513, 8.588");
        }
      }
    }
  }

