/*
 * 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__dlyd_2) {
    area : 81.849600 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.002636 ;
      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 ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.9032 ;
      max_transition : 4.4 ;
      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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007227, 0.02909, 0.07083, 0.1359, 0.2271, 0.3472, 0.4985, 0.6831, 0.9032");
          values("0.6907, 0.6674, 0.6093, 0.5447, 0.4985, 0.4704, 0.4509, 0.437, 0.4268, 0.4192",\
                 "0.6904, 0.667, 0.6089, 0.5445, 0.4981, 0.4699, 0.4504, 0.4366, 0.4264, 0.4189",\
                 "0.6916, 0.6682, 0.6101, 0.5454, 0.4993, 0.4711, 0.4515, 0.4378, 0.4276, 0.42",\
                 "0.697, 0.6737, 0.6156, 0.5508, 0.5047, 0.4763, 0.4568, 0.443, 0.4331, 0.4255",\
                 "0.7074, 0.684, 0.6259, 0.5613, 0.515, 0.4869, 0.4674, 0.4536, 0.4434, 0.4358",\
                 "0.7231, 0.6999, 0.6418, 0.5773, 0.531, 0.5028, 0.4833, 0.4693, 0.4592, 0.4516",\
                 "0.7453, 0.7219, 0.6638, 0.5992, 0.5531, 0.5247, 0.5053, 0.4915, 0.4813, 0.4738",\
                 "0.7738, 0.7504, 0.6923, 0.6278, 0.5815, 0.5531, 0.5336, 0.5198, 0.5097, 0.502",\
                 "0.8094, 0.7862, 0.7278, 0.6633, 0.6172, 0.5887, 0.5693, 0.5556, 0.5456, 0.5381",\
                 "0.8524, 0.8292, 0.7711, 0.7066, 0.6603, 0.6324, 0.6128, 0.599, 0.5887, 0.5812");
        }

        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.001, 0.007227, 0.02909, 0.07083, 0.1359, 0.2271, 0.3472, 0.4985, 0.6831, 0.9032");
          values("0.4489, 0.432, 0.4074, 0.3913, 0.3819, 0.3759, 0.3744, 0.3748, 0.3753, 0.3757",\
                 "0.4488, 0.4315, 0.4076, 0.3912, 0.3822, 0.3763, 0.3744, 0.3745, 0.3763, 0.3764",\
                 "0.4494, 0.4316, 0.4077, 0.3926, 0.3827, 0.3776, 0.3758, 0.3752, 0.376, 0.3764",\
                 "0.4526, 0.4354, 0.4109, 0.3951, 0.3862, 0.3813, 0.3794, 0.3799, 0.3796, 0.3825",\
                 "0.4602, 0.4434, 0.4185, 0.4034, 0.3932, 0.3883, 0.387, 0.3871, 0.3871, 0.3872",\
                 "0.473, 0.4557, 0.4314, 0.4159, 0.4069, 0.4018, 0.3999, 0.4008, 0.4023, 0.4016",\
                 "0.4913, 0.474, 0.4493, 0.434, 0.424, 0.4198, 0.4179, 0.4184, 0.4188, 0.4232",\
                 "0.5149, 0.4974, 0.4734, 0.4576, 0.4483, 0.4424, 0.4413, 0.4414, 0.4415, 0.4444",\
                 "0.5445, 0.5273, 0.5025, 0.4864, 0.4762, 0.4735, 0.4719, 0.471, 0.4707, 0.4729",\
                 "0.5806, 0.5632, 0.5391, 0.5238, 0.5124, 0.5075, 0.5065, 0.5098, 0.511, 0.5089");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_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.001, 0.007227, 0.02909, 0.07083, 0.1359, 0.2271, 0.3472, 0.4985, 0.6831, 0.9032");
          values("1.871, 1.906, 1.994, 2.116, 2.265, 2.444, 2.654, 2.9, 3.191, 3.532",\
                 "1.878, 1.913, 2, 2.122, 2.272, 2.451, 2.66, 2.907, 3.197, 3.539",\
                 "1.911, 1.946, 2.034, 2.156, 2.305, 2.484, 2.693, 2.94, 3.231, 3.572",\
                 "1.983, 2.018, 2.106, 2.228, 2.377, 2.556, 2.765, 3.012, 3.302, 3.644",\
                 "2.09, 2.125, 2.212, 2.334, 2.484, 2.663, 2.872, 3.119, 3.409, 3.751",\
                 "2.225, 2.26, 2.348, 2.47, 2.62, 2.799, 3.008, 3.254, 3.545, 3.887",\
                 "2.391, 2.426, 2.514, 2.636, 2.786, 2.965, 3.174, 3.421, 3.711, 4.053",\
                 "2.587, 2.621, 2.71, 2.831, 2.981, 3.16, 3.369, 3.616, 3.906, 4.248",\
                 "2.811, 2.846, 2.934, 3.056, 3.205, 3.384, 3.593, 3.84, 4.131, 4.472",\
                 "3.066, 3.101, 3.19, 3.312, 3.461, 3.64, 3.849, 4.096, 4.386, 4.728");
        }

        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.001, 0.007227, 0.02909, 0.07083, 0.1359, 0.2271, 0.3472, 0.4985, 0.6831, 0.9032");
          values("1.676, 1.703, 1.777, 1.9, 2.08, 2.332, 2.664, 3.083, 3.595, 4.205",\
                 "1.681, 1.709, 1.783, 1.905, 2.086, 2.337, 2.669, 3.088, 3.6, 4.211",\
                 "1.698, 1.726, 1.8, 1.923, 2.103, 2.355, 2.686, 3.105, 3.618, 4.228",\
                 "1.712, 1.74, 1.814, 1.937, 2.117, 2.368, 2.7, 3.119, 3.631, 4.244",\
                 "1.713, 1.74, 1.814, 1.937, 2.117, 2.369, 2.701, 3.12, 3.632, 4.242",\
                 "1.696, 1.723, 1.798, 1.92, 2.1, 2.352, 2.684, 3.103, 3.615, 4.225",\
                 "1.659, 1.686, 1.761, 1.883, 2.064, 2.315, 2.647, 3.066, 3.578, 4.19",\
                 "1.598, 1.625, 1.7, 1.822, 2.002, 2.254, 2.586, 3.005, 3.518, 4.129",\
                 "1.511, 1.539, 1.613, 1.736, 1.916, 2.168, 2.5, 2.918, 3.43, 4.041",\
                 "1.398, 1.426, 1.5, 1.622, 1.803, 2.055, 2.386, 2.805, 3.317, 3.927");
        }

        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.001, 0.007227, 0.02909, 0.07083, 0.1359, 0.2271, 0.3472, 0.4985, 0.6831, 0.9032");
          values("0.1884, 0.223, 0.308, 0.4264, 0.5828, 0.7902, 1.059, 1.409, 1.852, 2.397",\
                 "0.1886, 0.2232, 0.3086, 0.4262, 0.5828, 0.7906, 1.058, 1.407, 1.853, 2.398",\
                 "0.1884, 0.2228, 0.3086, 0.426, 0.5836, 0.79, 1.058, 1.408, 1.853, 2.397",\
                 "0.1886, 0.2234, 0.3082, 0.4256, 0.5834, 0.7908, 1.059, 1.408, 1.853, 2.397",\
                 "0.1886, 0.2228, 0.3084, 0.4254, 0.583, 0.7904, 1.059, 1.408, 1.853, 2.397",\
                 "0.1886, 0.2232, 0.3086, 0.4268, 0.5838, 0.7908, 1.058, 1.407, 1.851, 2.397",\
                 "0.1886, 0.2228, 0.3082, 0.4262, 0.5834, 0.79, 1.059, 1.408, 1.852, 2.398",\
                 "0.1886, 0.223, 0.3086, 0.4258, 0.5834, 0.7906, 1.058, 1.408, 1.851, 2.397",\
                 "0.188, 0.2228, 0.3078, 0.4256, 0.5832, 0.7906, 1.059, 1.407, 1.851, 2.397",\
                 "0.1886, 0.2236, 0.3076, 0.4254, 0.5826, 0.7902, 1.058, 1.408, 1.854, 2.398");
        }

        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.001, 0.007227, 0.02909, 0.07083, 0.1359, 0.2271, 0.3472, 0.4985, 0.6831, 0.9032");
          values("0.0922, 0.1222, 0.219, 0.4052, 0.705, 1.139, 1.715, 2.444, 3.339, 4.398",\
                 "0.0924, 0.1224, 0.2194, 0.405, 0.705, 1.139, 1.715, 2.446, 3.337, 4.402",\
                 "0.0928, 0.1228, 0.2194, 0.4058, 0.7042, 1.139, 1.717, 2.446, 3.338, 4.398",\
                 "0.0922, 0.1224, 0.2192, 0.4058, 0.7038, 1.139, 1.717, 2.446, 3.334, 4.404",\
                 "0.0922, 0.1224, 0.2196, 0.405, 0.7052, 1.139, 1.715, 2.445, 3.334, 4.398",\
                 "0.093, 0.1224, 0.219, 0.4052, 0.7044, 1.139, 1.717, 2.445, 3.338, 4.399",\
                 "0.0924, 0.1226, 0.2198, 0.405, 0.7054, 1.138, 1.716, 2.446, 3.338, 4.402",\
                 "0.0926, 0.1226, 0.219, 0.4054, 0.704, 1.137, 1.716, 2.445, 3.338, 4.405",\
                 "0.0928, 0.1228, 0.219, 0.4058, 0.7046, 1.138, 1.717, 2.447, 3.336, 4.4",\
                 "0.093, 0.1218, 0.219, 0.405, 0.705, 1.139, 1.715, 2.443, 3.332, 4.398");
        }
      }
    }
  }

