/*
 * 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.000950715" ;
    }

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.4936 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0044, 0.01633, 0.03912, 0.07463, 0.1244, 0.19, 0.2726, 0.3734, 0.4936");
          values("0.7678, 0.7503, 0.7053, 0.6538, 0.6118, 0.5835, 0.564, 0.5496, 0.5388, 0.5307",\
                 "0.7672, 0.7496, 0.7047, 0.6531, 0.6111, 0.583, 0.5634, 0.549, 0.5383, 0.5301",\
                 "0.7676, 0.7499, 0.7051, 0.6535, 0.6116, 0.5833, 0.5638, 0.5494, 0.5387, 0.5305",\
                 "0.7724, 0.7548, 0.7099, 0.6584, 0.6162, 0.5881, 0.5687, 0.5543, 0.5435, 0.5353",\
                 "0.783, 0.7653, 0.7205, 0.6689, 0.627, 0.5987, 0.5791, 0.5648, 0.554, 0.5458",\
                 "0.7999, 0.7822, 0.7375, 0.6858, 0.6438, 0.6157, 0.596, 0.5816, 0.5709, 0.5627",\
                 "0.8238, 0.8062, 0.7613, 0.7097, 0.6677, 0.6395, 0.6199, 0.6055, 0.5948, 0.5866",\
                 "0.8552, 0.8376, 0.7927, 0.7412, 0.699, 0.671, 0.6513, 0.637, 0.6262, 0.618",\
                 "0.8945, 0.8768, 0.8318, 0.7801, 0.7381, 0.7102, 0.6905, 0.6761, 0.6654, 0.6572",\
                 "0.9421, 0.9244, 0.8798, 0.8282, 0.7861, 0.7582, 0.7383, 0.724, 0.7131, 0.705");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0044, 0.01633, 0.03912, 0.07463, 0.1244, 0.19, 0.2726, 0.3734, 0.4936");
          values("0.5216, 0.5093, 0.4871, 0.4693, 0.4573, 0.4497, 0.446, 0.4449, 0.4451, 0.4486",\
                 "0.5215, 0.509, 0.4868, 0.4692, 0.4572, 0.4496, 0.4461, 0.4445, 0.4438, 0.4495",\
                 "0.522, 0.5097, 0.4876, 0.4701, 0.4576, 0.45, 0.4468, 0.4449, 0.4451, 0.4504",\
                 "0.5247, 0.5123, 0.4897, 0.4724, 0.4603, 0.4529, 0.4491, 0.4472, 0.4465, 0.4522",\
                 "0.5316, 0.519, 0.4968, 0.4792, 0.4674, 0.4599, 0.4566, 0.4544, 0.454, 0.4602",\
                 "0.5439, 0.5315, 0.5088, 0.4914, 0.4794, 0.4727, 0.4691, 0.4679, 0.4679, 0.476",\
                 "0.5623, 0.5498, 0.5272, 0.5097, 0.4978, 0.4911, 0.4871, 0.4866, 0.4871, 0.4966",\
                 "0.5871, 0.5747, 0.5524, 0.535, 0.5229, 0.5161, 0.5129, 0.5118, 0.5121, 0.5248",\
                 "0.619, 0.6066, 0.5845, 0.5668, 0.5545, 0.5491, 0.5444, 0.5433, 0.5428, 0.5602",\
                 "0.6583, 0.646, 0.624, 0.6054, 0.5935, 0.5864, 0.5837, 0.5838, 0.5845, 0.6085");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0044, 0.01633, 0.03912, 0.07463, 0.1244, 0.19, 0.2726, 0.3734, 0.4936");
          values("3.39, 3.448, 3.602, 3.821, 4.092, 4.412, 4.788, 5.224, 5.731, 6.321",\
                 "3.401, 3.46, 3.613, 3.832, 4.103, 4.423, 4.799, 5.235, 5.743, 6.332",\
                 "3.453, 3.511, 3.665, 3.884, 4.154, 4.475, 4.851, 5.287, 5.794, 6.384",\
                 "3.57, 3.628, 3.781, 4, 4.271, 4.591, 4.967, 5.403, 5.911, 6.5",\
                 "3.754, 3.812, 3.966, 4.185, 4.455, 4.776, 5.152, 5.588, 6.096, 6.685",\
                 "3.996, 4.054, 4.208, 4.426, 4.697, 5.018, 5.394, 5.83, 6.337, 6.926",\
                 "4.286, 4.344, 4.499, 4.717, 4.987, 5.308, 5.684, 6.12, 6.628, 7.217",\
                 "4.628, 4.687, 4.841, 5.059, 5.33, 5.65, 6.026, 6.463, 6.97, 7.559",\
                 "5.021, 5.079, 5.234, 5.452, 5.723, 6.043, 6.419, 6.855, 7.362, 7.951",\
                 "5.463, 5.521, 5.675, 5.893, 6.165, 6.486, 6.861, 7.297, 7.804, 8.394");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0044, 0.01633, 0.03912, 0.07463, 0.1244, 0.19, 0.2726, 0.3734, 0.4936");
          values("3.068, 3.114, 3.24, 3.44, 3.725, 4.112, 4.619, 5.26, 6.044, 6.978",\
                 "3.078, 3.124, 3.25, 3.45, 3.734, 4.122, 4.629, 5.27, 6.053, 6.988",\
                 "3.111, 3.157, 3.283, 3.483, 3.767, 4.154, 4.662, 5.303, 6.086, 7.02",\
                 "3.156, 3.202, 3.327, 3.528, 3.812, 4.199, 4.707, 5.348, 6.131, 7.064",\
                 "3.182, 3.228, 3.354, 3.554, 3.839, 4.225, 4.733, 5.374, 6.157, 7.092",\
                 "3.182, 3.228, 3.353, 3.554, 3.838, 4.225, 4.733, 5.374, 6.157, 7.092",\
                 "3.151, 3.197, 3.323, 3.523, 3.807, 4.194, 4.702, 5.343, 6.126, 7.061",\
                 "3.085, 3.131, 3.257, 3.457, 3.742, 4.129, 4.637, 5.278, 6.061, 6.996",\
                 "2.981, 3.026, 3.153, 3.353, 3.636, 4.024, 4.532, 5.173, 5.955, 6.891",\
                 "2.833, 2.878, 3.004, 3.204, 3.489, 3.876, 4.384, 5.024, 5.806, 6.74");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0044, 0.01633, 0.03912, 0.07463, 0.1244, 0.19, 0.2726, 0.3734, 0.4936");
          values("0.3584, 0.42, 0.5742, 0.7892, 1.072, 1.444, 1.92, 2.524, 3.283, 4.216",\
                 "0.3586, 0.4194, 0.5742, 0.7902, 1.071, 1.445, 1.921, 2.525, 3.283, 4.213",\
                 "0.3584, 0.4196, 0.5736, 0.7892, 1.071, 1.445, 1.921, 2.524, 3.286, 4.216",\
                 "0.3582, 0.4192, 0.574, 0.7892, 1.072, 1.443, 1.921, 2.524, 3.283, 4.217",\
                 "0.3582, 0.42, 0.574, 0.7898, 1.071, 1.443, 1.92, 2.524, 3.282, 4.216",\
                 "0.3584, 0.42, 0.5744, 0.7902, 1.072, 1.444, 1.921, 2.524, 3.282, 4.216",\
                 "0.358, 0.42, 0.5742, 0.7902, 1.072, 1.443, 1.922, 2.525, 3.283, 4.216",\
                 "0.3584, 0.4198, 0.5738, 0.7902, 1.072, 1.443, 1.921, 2.525, 3.283, 4.211",\
                 "0.358, 0.4188, 0.5732, 0.789, 1.071, 1.444, 1.922, 2.525, 3.284, 4.214",\
                 "0.3582, 0.4188, 0.5738, 0.7896, 1.072, 1.442, 1.918, 2.526, 3.284, 4.214");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0044, 0.01633, 0.03912, 0.07463, 0.1244, 0.19, 0.2726, 0.3734, 0.4936");
          values("0.1972, 0.2502, 0.4058, 0.7004, 1.164, 1.839, 2.747, 3.901, 5.308, 6.995",\
                 "0.198, 0.2498, 0.407, 0.7004, 1.164, 1.839, 2.747, 3.903, 5.314, 7",\
                 "0.1976, 0.2488, 0.4072, 0.7012, 1.165, 1.837, 2.745, 3.903, 5.309, 7.001",\
                 "0.1978, 0.2488, 0.4068, 0.7016, 1.165, 1.837, 2.747, 3.903, 5.313, 6.997",\
                 "0.1972, 0.25, 0.4064, 0.7002, 1.163, 1.836, 2.745, 3.903, 5.313, 6.995",\
                 "0.198, 0.2486, 0.4074, 0.7018, 1.165, 1.837, 2.746, 3.897, 5.306, 6.986",\
                 "0.1986, 0.25, 0.4066, 0.7012, 1.163, 1.837, 2.745, 3.897, 5.305, 6.987",\
                 "0.1992, 0.2494, 0.4068, 0.7008, 1.163, 1.839, 2.744, 3.897, 5.307, 6.985",\
                 "0.1986, 0.25, 0.4068, 0.701, 1.164, 1.838, 2.748, 3.898, 5.312, 6.998",\
                 "0.1972, 0.2486, 0.4068, 0.702, 1.164, 1.84, 2.747, 3.899, 5.313, 7.001");
        }
      }
    }
  }

