/*
 * 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_2) {
    area : 59.270400 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.4661 ;
      max_transition : 8.9 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.00421, 0.01548, 0.037, 0.07052, 0.1176, 0.1795, 0.2574, 0.3526, 0.4661");
          values("0.1213, 0.1186, 0.1124, 0.1065, 0.1028, 0.1005, 0.09893, 0.09783, 0.09706, 0.09652",\
                 "0.1211, 0.1184, 0.1122, 0.1064, 0.1027, 0.1003, 0.09877, 0.09769, 0.09691, 0.09635",\
                 "0.121, 0.1183, 0.1121, 0.1062, 0.1025, 0.1002, 0.09863, 0.09757, 0.0968, 0.09623",\
                 "0.1214, 0.1187, 0.1125, 0.1066, 0.103, 0.1006, 0.09905, 0.09798, 0.09721, 0.09665",\
                 "0.1226, 0.1199, 0.1137, 0.1078, 0.1042, 0.1018, 0.1003, 0.09917, 0.0984, 0.09784",\
                 "0.1246, 0.122, 0.1157, 0.1099, 0.1062, 0.1039, 0.1023, 0.1012, 0.1004, 0.09985",\
                 "0.1275, 0.1249, 0.1186, 0.1128, 0.1091, 0.1068, 0.1052, 0.1041, 0.1033, 0.1028",\
                 "0.1315, 0.1288, 0.1226, 0.1168, 0.113, 0.1107, 0.1091, 0.108, 0.1073, 0.1067",\
                 "0.1365, 0.1339, 0.1276, 0.1218, 0.1181, 0.1157, 0.1142, 0.1131, 0.1123, 0.1117",\
                 "0.1427, 0.14, 0.1338, 0.1279, 0.1242, 0.1219, 0.1204, 0.1193, 0.1185, 0.1179");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.00421, 0.01548, 0.037, 0.07052, 0.1176, 0.1795, 0.2574, 0.3526, 0.4661");
          values("0.08711, 0.08599, 0.0842, 0.08306, 0.0826, 0.0826, 0.08282, 0.08311, 0.08425, 0.09196",\
                 "0.08707, 0.08591, 0.08416, 0.08302, 0.08256, 0.08252, 0.08278, 0.08305, 0.08409, 0.09207",\
                 "0.08699, 0.08586, 0.08408, 0.083, 0.0825, 0.08252, 0.08266, 0.08293, 0.08421, 0.09237",\
                 "0.0872, 0.08604, 0.08428, 0.08316, 0.08266, 0.08262, 0.08292, 0.08311, 0.08443, 0.09354",\
                 "0.08788, 0.08673, 0.08502, 0.08393, 0.08343, 0.08339, 0.08359, 0.08382, 0.08527, 0.09568",\
                 "0.08937, 0.08825, 0.08648, 0.08535, 0.08496, 0.08488, 0.08505, 0.08543, 0.08707, 0.09921",\
                 "0.09164, 0.09052, 0.08877, 0.08757, 0.08715, 0.08717, 0.08755, 0.08802, 0.09025, 0.1057",\
                 "0.09484, 0.09368, 0.09189, 0.09086, 0.09032, 0.09032, 0.09048, 0.09102, 0.09376, 0.1131",\
                 "0.09899, 0.09782, 0.09604, 0.0948, 0.09428, 0.09462, 0.09481, 0.09518, 0.09904, 0.1244",\
                 "0.1041, 0.103, 0.1012, 0.09995, 0.09949, 0.09939, 0.09999, 0.1009, 0.107, 0.1414");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.00421, 0.01548, 0.037, 0.07052, 0.1176, 0.1795, 0.2574, 0.3526, 0.4661");
          values("4.225, 4.292, 4.472, 4.725, 5.031, 5.384, 5.781, 6.232, 6.747, 7.336",\
                 "4.24, 4.307, 4.488, 4.74, 5.047, 5.399, 5.797, 6.247, 6.762, 7.352",\
                 "4.309, 4.376, 4.557, 4.809, 5.115, 5.468, 5.865, 6.316, 6.831, 7.421",\
                 "4.461, 4.528, 4.708, 4.961, 5.267, 5.619, 6.017, 6.468, 6.982, 7.572",\
                 "4.699, 4.766, 4.947, 5.199, 5.506, 5.858, 6.256, 6.706, 7.221, 7.811",\
                 "5.002, 5.069, 5.249, 5.501, 5.808, 6.16, 6.558, 7.008, 7.523, 8.113",\
                 "5.356, 5.423, 5.603, 5.856, 6.162, 6.514, 6.912, 7.362, 7.877, 8.467",\
                 "5.767, 5.835, 6.015, 6.267, 6.573, 6.926, 7.324, 7.775, 8.289, 8.879",\
                 "6.24, 6.308, 6.489, 6.741, 7.047, 7.399, 7.796, 8.247, 8.761, 9.351",\
                 "6.778, 6.845, 7.025, 7.278, 7.585, 7.937, 8.334, 8.785, 9.3, 9.89");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.00421, 0.01548, 0.037, 0.07052, 0.1176, 0.1795, 0.2574, 0.3526, 0.4661");
          values("3.789, 3.846, 4.009, 4.267, 4.63, 5.128, 5.779, 6.599, 7.601, 8.793",\
                 "3.804, 3.861, 4.025, 4.282, 4.646, 5.143, 5.795, 6.615, 7.616, 8.809",\
                 "3.851, 3.908, 4.072, 4.33, 4.693, 5.19, 5.842, 6.661, 7.663, 8.856",\
                 "3.908, 3.965, 4.129, 4.387, 4.75, 5.248, 5.899, 6.719, 7.719, 8.913",\
                 "3.939, 3.996, 4.16, 4.417, 4.781, 5.278, 5.929, 6.749, 7.751, 8.942",\
                 "3.934, 3.991, 4.155, 4.412, 4.776, 5.273, 5.925, 6.745, 7.746, 8.938",\
                 "3.891, 3.948, 4.112, 4.369, 4.733, 5.23, 5.882, 6.702, 7.703, 8.895",\
                 "3.806, 3.863, 4.026, 4.284, 4.647, 5.144, 5.796, 6.616, 7.616, 8.811",\
                 "3.673, 3.73, 3.893, 4.151, 4.515, 5.012, 5.663, 6.483, 7.484, 8.678",\
                 "3.488, 3.545, 3.709, 3.966, 4.33, 4.827, 5.479, 6.298, 7.299, 8.491");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.00421, 0.01548, 0.037, 0.07052, 0.1176, 0.1795, 0.2574, 0.3526, 0.4661");
          values("0.4388, 0.5006, 0.6668, 0.9054, 1.217, 1.601, 2.078, 2.679, 3.433, 4.36",\
                 "0.437, 0.5002, 0.6674, 0.9052, 1.219, 1.602, 2.078, 2.679, 3.432, 4.366",\
                 "0.4376, 0.5002, 0.6666, 0.9056, 1.219, 1.6, 2.078, 2.678, 3.44, 4.366",\
                 "0.4368, 0.5002, 0.6668, 0.9056, 1.219, 1.601, 2.078, 2.682, 3.433, 4.365",\
                 "0.437, 0.5, 0.6666, 0.9056, 1.22, 1.601, 2.078, 2.679, 3.433, 4.365",\
                 "0.4372, 0.5002, 0.6664, 0.9054, 1.219, 1.601, 2.08, 2.678, 3.434, 4.358",\
                 "0.4366, 0.5002, 0.6662, 0.9056, 1.218, 1.601, 2.076, 2.681, 3.432, 4.366",\
                 "0.4372, 0.5004, 0.6664, 0.9052, 1.219, 1.601, 2.078, 2.68, 3.432, 4.364",\
                 "0.436, 0.5, 0.666, 0.904, 1.218, 1.602, 2.08, 2.684, 3.434, 4.36",\
                 "0.438, 0.5, 0.668, 0.906, 1.218, 1.602, 2.08, 2.678, 3.438, 4.36");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.00421, 0.01548, 0.037, 0.07052, 0.1176, 0.1795, 0.2574, 0.3526, 0.4661");
          values("0.235, 0.3018, 0.5094, 0.8758, 1.469, 2.337, 3.504, 4.969, 6.76, 8.902",\
                 "0.2352, 0.302, 0.5086, 0.8756, 1.469, 2.342, 3.505, 4.969, 6.758, 8.907",\
                 "0.2358, 0.302, 0.5086, 0.8764, 1.469, 2.337, 3.502, 4.972, 6.76, 8.907",\
                 "0.2368, 0.302, 0.5094, 0.8774, 1.471, 2.336, 3.498, 4.969, 6.761, 8.907",\
                 "0.2352, 0.3018, 0.509, 0.8768, 1.469, 2.341, 3.501, 4.969, 6.757, 8.899",\
                 "0.2354, 0.3018, 0.5096, 0.876, 1.471, 2.338, 3.5, 4.975, 6.762, 8.903",\
                 "0.2356, 0.3018, 0.5096, 0.8756, 1.47, 2.338, 3.505, 4.97, 6.762, 8.903",\
                 "0.2352, 0.3022, 0.5104, 0.8768, 1.472, 2.338, 3.505, 4.973, 6.76, 8.917",\
                 "0.236, 0.302, 0.5094, 0.8772, 1.471, 2.338, 3.5, 4.976, 6.759, 8.902",\
                 "0.2358, 0.3024, 0.5096, 0.8754, 1.471, 2.342, 3.498, 4.968, 6.76, 8.916");
        }
      }
    }
  }

