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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.909 ;
      max_transition : 3.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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.007267, 0.02927, 0.07128, 0.1367, 0.2286, 0.3494, 0.5016, 0.6875, 0.909");
          values("3.229, 3.162, 2.971, 2.701, 2.409, 2.135, 1.905, 1.732, 1.604, 1.504",\
                 "3.229, 3.162, 2.97, 2.701, 2.409, 2.135, 1.905, 1.731, 1.603, 1.503",\
                 "3.233, 3.166, 2.975, 2.704, 2.413, 2.139, 1.909, 1.735, 1.608, 1.507",\
                 "3.249, 3.182, 2.99, 2.721, 2.429, 2.154, 1.924, 1.751, 1.623, 1.524",\
                 "3.28, 3.213, 3.021, 2.752, 2.46, 2.185, 1.955, 1.782, 1.654, 1.555",\
                 "3.329, 3.262, 3.071, 2.801, 2.509, 2.234, 2.005, 1.832, 1.705, 1.604",\
                 "3.397, 3.33, 3.139, 2.869, 2.577, 2.303, 2.072, 1.898, 1.772, 1.672",\
                 "3.485, 3.419, 3.227, 2.957, 2.665, 2.391, 2.161, 1.987, 1.86, 1.76",\
                 "3.595, 3.529, 3.336, 3.067, 2.775, 2.501, 2.271, 2.098, 1.97, 1.87",\
                 "3.728, 3.662, 3.47, 3.2, 2.907, 2.635, 2.404, 2.231, 2.104, 2.004");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.007267, 0.02927, 0.07128, 0.1367, 0.2286, 0.3494, 0.5016, 0.6875, 0.909");
          values("1.806, 1.754, 1.61, 1.437, 1.309, 1.217, 1.151, 1.104, 1.074, 1.049",\
                 "1.807, 1.754, 1.611, 1.438, 1.308, 1.216, 1.151, 1.105, 1.071, 1.049",\
                 "1.809, 1.757, 1.614, 1.44, 1.31, 1.219, 1.154, 1.107, 1.074, 1.052",\
                 "1.82, 1.768, 1.625, 1.45, 1.323, 1.23, 1.163, 1.119, 1.086, 1.061",\
                 "1.843, 1.791, 1.648, 1.473, 1.346, 1.253, 1.186, 1.143, 1.109, 1.085",\
                 "1.881, 1.829, 1.687, 1.512, 1.384, 1.294, 1.227, 1.182, 1.15, 1.125",\
                 "1.935, 1.883, 1.74, 1.566, 1.437, 1.345, 1.281, 1.233, 1.203, 1.178",\
                 "2.008, 1.955, 1.813, 1.639, 1.51, 1.419, 1.354, 1.306, 1.272, 1.252",\
                 "2.099, 2.046, 1.904, 1.727, 1.602, 1.514, 1.445, 1.397, 1.365, 1.342",\
                 "2.208, 2.156, 2.012, 1.837, 1.707, 1.615, 1.556, 1.514, 1.48, 1.454");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.007267, 0.02927, 0.07128, 0.1367, 0.2286, 0.3494, 0.5016, 0.6875, 0.909");
          values("1.771, 1.801, 1.882, 2.001, 2.15, 2.328, 2.534, 2.773, 3.048, 3.365",\
                 "1.776, 1.806, 1.887, 2.006, 2.155, 2.333, 2.539, 2.778, 3.053, 3.37",\
                 "1.8, 1.83, 1.911, 2.029, 2.179, 2.357, 2.564, 2.802, 3.077, 3.394",\
                 "1.855, 1.885, 1.967, 2.085, 2.234, 2.412, 2.619, 2.857, 3.133, 3.449",\
                 "1.943, 1.973, 2.054, 2.173, 2.322, 2.499, 2.706, 2.945, 3.22, 3.537",\
                 "2.059, 2.089, 2.17, 2.289, 2.438, 2.616, 2.823, 3.061, 3.337, 3.653",\
                 "2.2, 2.231, 2.312, 2.43, 2.58, 2.757, 2.964, 3.203, 3.478, 3.794",\
                 "2.364, 2.394, 2.476, 2.594, 2.743, 2.921, 3.127, 3.366, 3.641, 3.958",\
                 "2.551, 2.582, 2.663, 2.781, 2.93, 3.108, 3.315, 3.553, 3.829, 4.145",\
                 "2.764, 2.793, 2.875, 2.993, 3.142, 3.32, 3.527, 3.765, 4.04, 4.357");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.007267, 0.02927, 0.07128, 0.1367, 0.2286, 0.3494, 0.5016, 0.6875, 0.909");
          values("1.539, 1.565, 1.632, 1.732, 1.868, 2.049, 2.285, 2.584, 2.95, 3.389",\
                 "1.543, 1.568, 1.635, 1.736, 1.871, 2.052, 2.289, 2.587, 2.953, 3.392",\
                 "1.554, 1.579, 1.647, 1.747, 1.882, 2.063, 2.3, 2.598, 2.964, 3.403",\
                 "1.567, 1.592, 1.66, 1.76, 1.895, 2.077, 2.313, 2.612, 2.978, 3.417",\
                 "1.571, 1.597, 1.665, 1.764, 1.9, 2.081, 2.317, 2.616, 2.983, 3.421",\
                 "1.563, 1.588, 1.656, 1.756, 1.891, 2.072, 2.309, 2.607, 2.974, 3.413",\
                 "1.538, 1.563, 1.631, 1.731, 1.867, 2.048, 2.284, 2.583, 2.949, 3.388",\
                 "1.495, 1.52, 1.588, 1.688, 1.824, 2.005, 2.241, 2.54, 2.906, 3.345",\
                 "1.432, 1.457, 1.525, 1.625, 1.76, 1.942, 2.178, 2.476, 2.843, 3.282",\
                 "1.347, 1.372, 1.44, 1.54, 1.675, 1.857, 2.093, 2.392, 2.758, 3.196");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.007267, 0.02927, 0.07128, 0.1367, 0.2286, 0.3494, 0.5016, 0.6875, 0.909");
          values("0.2992, 0.3372, 0.431, 0.5584, 0.7128, 0.907, 1.153, 1.466, 1.859, 2.337",\
                 "0.299, 0.3366, 0.4318, 0.5584, 0.713, 0.9062, 1.153, 1.466, 1.859, 2.337",\
                 "0.299, 0.3366, 0.4304, 0.5576, 0.7128, 0.907, 1.153, 1.466, 1.859, 2.337",\
                 "0.3004, 0.337, 0.4312, 0.5578, 0.7142, 0.908, 1.153, 1.466, 1.858, 2.338",\
                 "0.3, 0.3374, 0.4312, 0.5578, 0.713, 0.9082, 1.153, 1.466, 1.858, 2.338",\
                 "0.299, 0.3366, 0.431, 0.5574, 0.7144, 0.9074, 1.154, 1.466, 1.859, 2.337",\
                 "0.3002, 0.3364, 0.432, 0.5576, 0.7142, 0.9068, 1.154, 1.467, 1.857, 2.338",\
                 "0.3004, 0.3364, 0.4318, 0.5574, 0.7142, 0.907, 1.153, 1.466, 1.859, 2.338",\
                 "0.2988, 0.3366, 0.4304, 0.5582, 0.7126, 0.908, 1.153, 1.466, 1.858, 2.336",\
                 "0.2998, 0.3358, 0.4316, 0.5568, 0.7124, 0.9062, 1.154, 1.467, 1.859, 2.336");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.007267, 0.02927, 0.07128, 0.1367, 0.2286, 0.3494, 0.5016, 0.6875, 0.909");
          values("0.1492, 0.1784, 0.2594, 0.3926, 0.603, 0.9178, 1.346, 1.9, 2.578, 3.392",\
                 "0.1492, 0.1782, 0.2606, 0.3926, 0.6032, 0.9186, 1.346, 1.898, 2.579, 3.392",\
                 "0.1494, 0.1784, 0.2598, 0.3926, 0.6034, 0.9188, 1.347, 1.901, 2.578, 3.392",\
                 "0.1486, 0.1784, 0.2598, 0.3928, 0.6042, 0.917, 1.348, 1.899, 2.579, 3.392",\
                 "0.149, 0.1786, 0.26, 0.3928, 0.604, 0.9172, 1.348, 1.899, 2.579, 3.392",\
                 "0.1492, 0.1776, 0.2598, 0.3924, 0.6026, 0.9194, 1.347, 1.898, 2.576, 3.393",\
                 "0.149, 0.1782, 0.26, 0.3924, 0.6032, 0.9186, 1.346, 1.9, 2.575, 3.392",\
                 "0.1488, 0.178, 0.2596, 0.393, 0.6032, 0.9172, 1.346, 1.899, 2.576, 3.388",\
                 "0.1484, 0.1778, 0.2596, 0.393, 0.604, 0.9188, 1.346, 1.896, 2.579, 3.394",\
                 "0.1484, 0.1776, 0.26, 0.3926, 0.6042, 0.9178, 1.348, 1.898, 2.578, 3.392");
        }
      }
    }
  }

