/*
 * 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__inv_4) {
    area : 21.952000 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "5.4e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "5.5794e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "5.5794e-05" ;
    }

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.416 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01077, 0.04506, 0.1105, 0.2125, 0.3557, 0.544, 0.7813, 1.071, 1.416");
          values("-0.009196, -0.007556, -0.006412, -0.006117, -0.00599, -0.00592, -0.005899, -0.005873, -0.005864, -0.005833",\
                 "-0.01367, -0.01126, -0.008309, -0.006982, -0.006485, -0.006245, -0.006098, -0.006012, -0.005969, -0.005947",\
                 "-0.01489, -0.01385, -0.01095, -0.008797, -0.007554, -0.006954, -0.006589, -0.00637, -0.006211, -0.006125",\
                 "-0.005806, -0.007512, -0.008662, -0.008197, -0.007502, -0.007053, -0.006699, -0.006487, -0.006364, -0.006228",\
                 "0.01391, 0.009446, 0.002618, -0.001374, -0.003226, -0.004275, -0.004717, -0.005026, -0.005266, -0.005381",\
                 "0.04426, 0.0374, 0.02434, 0.01416, 0.007802, 0.003761, 0.001144, -0.0005855, -0.001836, -0.002688",\
                 "0.08613, 0.07697, 0.05787, 0.04048, 0.02786, 0.0193, 0.01325, 0.008807, 0.005632, 0.003226",\
                 "0.1401, 0.129, 0.1041, 0.07893, 0.05883, 0.04418, 0.03314, 0.025, 0.01876, 0.01406",\
                 "0.2068, 0.194, 0.1639, 0.1307, 0.1023, 0.08013, 0.06317, 0.04937, 0.03919, 0.03116",\
                 "0.2871, 0.2725, 0.2376, 0.1968, 0.1595, 0.1283, 0.1035, 0.08484, 0.06897, 0.05697");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01077, 0.04506, 0.1105, 0.2125, 0.3557, 0.544, 0.7813, 1.071, 1.416");
          values("0.1132, 0.1165, 0.119, 0.1199, 0.1225, 0.1241, 0.127, 0.1305, 0.1332, 0.1683",\
                 "0.1072, 0.1104, 0.1158, 0.1184, 0.1212, 0.1232, 0.1264, 0.1302, 0.1318, 0.1685",\
                 "0.11, 0.11, 0.1113, 0.1144, 0.1181, 0.1217, 0.1255, 0.127, 0.136, 0.1746",\
                 "0.1229, 0.1201, 0.1169, 0.1155, 0.1175, 0.1202, 0.1225, 0.1279, 0.1333, 0.1774",\
                 "0.1457, 0.1406, 0.1316, 0.1261, 0.1226, 0.122, 0.1234, 0.1258, 0.1356, 0.1854",\
                 "0.1799, 0.1724, 0.1585, 0.1459, 0.1381, 0.1325, 0.1303, 0.1306, 0.1392, 0.211",\
                 "0.2266, 0.2163, 0.1971, 0.1788, 0.1642, 0.1541, 0.1459, 0.1437, 0.1534, 0.2622",\
                 "0.2863, 0.274, 0.249, 0.2231, 0.2007, 0.1871, 0.1723, 0.164, 0.1807, 0.3713",\
                 "0.3604, 0.346, 0.3146, 0.283, 0.2531, 0.2285, 0.2107, 0.1962, 0.2418, 0.6011",\
                 "0.4495, 0.4329, 0.3953, 0.357, 0.3202, 0.287, 0.2614, 0.2529, 0.3982, 1.133");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01077, 0.04506, 0.1105, 0.2125, 0.3557, 0.544, 0.7813, 1.071, 1.416");
          values("0.04698, 0.07225, 0.1583, 0.3211, 0.5756, 0.9315, 1.4, 1.991, 2.712, 3.569",\
                 "0.06618, 0.09336, 0.1802, 0.3439, 0.5978, 0.9547, 1.423, 2.013, 2.736, 3.595",\
                 "0.08731, 0.1386, 0.2575, 0.424, 0.6785, 1.034, 1.503, 2.095, 2.814, 3.676",\
                 "0.08902, 0.1635, 0.3412, 0.568, 0.8332, 1.189, 1.657, 2.248, 2.969, 3.829",\
                 "0.068, 0.1668, 0.3992, 0.7051, 1.051, 1.432, 1.901, 2.49, 3.211, 4.069",\
                 "0.0217, 0.1441, 0.4337, 0.8135, 1.252, 1.729, 2.24, 2.831, 3.55, 4.409",\
                 "-0.0543, 0.0936, 0.4409, 0.8934, 1.421, 2.002, 2.622, 3.276, 4, 4.858",\
                 "-0.1623, 0.0117, 0.416, 0.9442, 1.559, 2.238, 2.973, 3.746, 4.555, 5.426",\
                 "-0.3041, -0.1044, 0.3603, 0.9646, 1.662, 2.444, 3.289, 4.181, 5.118, 6.091",\
                 "-0.4833, -0.2563, 0.2701, 0.9499, 1.736, 2.612, 3.565, 4.581, 5.646, 6.754");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01077, 0.04506, 0.1105, 0.2125, 0.3557, 0.544, 0.7813, 1.071, 1.416");
          values("0.06676, 0.1134, 0.2687, 0.5613, 1.018, 1.655, 2.495, 3.556, 4.849, 6.386",\
                 "0.08929, 0.1356, 0.2932, 0.5881, 1.045, 1.683, 2.524, 3.584, 4.878, 6.41",\
                 "0.1591, 0.2247, 0.3879, 0.6825, 1.14, 1.78, 2.623, 3.679, 4.977, 6.519",\
                 "0.249, 0.3412, 0.5666, 0.8714, 1.327, 1.966, 2.807, 3.868, 5.161, 6.704",\
                 "0.3652, 0.4806, 0.7727, 1.16, 1.625, 2.263, 3.103, 4.162, 5.456, 6.989",\
                 "0.5094, 0.6506, 1, 1.482, 2.038, 2.683, 3.521, 4.576, 5.869, 7.405",\
                 "0.683, 0.851, 1.259, 1.826, 2.496, 3.233, 4.076, 5.128, 6.418, 7.956",\
                 "0.889, 1.085, 1.553, 2.196, 2.975, 3.842, 4.771, 5.83, 7.113, 8.65",\
                 "1.13, 1.353, 1.885, 2.602, 3.48, 4.473, 5.546, 6.682, 7.971, 9.502",\
                 "1.406, 1.657, 2.256, 3.051, 4.018, 5.13, 6.343, 7.63, 8.989, 10.52");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01077, 0.04506, 0.1105, 0.2125, 0.3557, 0.544, 0.7813, 1.071, 1.416");
          values("0.03862, 0.07921, 0.2198, 0.4883, 0.9057, 1.492, 2.261, 3.234, 4.42, 5.843",\
                 "0.04742, 0.0795, 0.2192, 0.4882, 0.909, 1.491, 2.263, 3.237, 4.421, 5.834",\
                 "0.09434, 0.1418, 0.251, 0.4889, 0.9076, 1.492, 2.265, 3.235, 4.426, 5.838",\
                 "0.1506, 0.2192, 0.3826, 0.586, 0.9196, 1.493, 2.263, 3.235, 4.424, 5.833",\
                 "0.2172, 0.308, 0.5226, 0.7994, 1.109, 1.551, 2.27, 3.235, 4.423, 5.84",\
                 "0.2948, 0.4088, 0.6726, 1.023, 1.417, 1.843, 2.403, 3.261, 4.431, 5.837",\
                 "0.3842, 0.5204, 0.8386, 1.254, 1.74, 2.256, 2.809, 3.498, 4.5, 5.855",\
                 "0.4824, 0.6446, 1.016, 1.498, 2.065, 2.685, 3.339, 4.026, 4.852, 6.005",\
                 "0.5872, 0.7812, 1.21, 1.759, 2.403, 3.122, 3.886, 4.679, 5.513, 6.486",\
                 "0.706, 0.9278, 1.415, 2.04, 2.754, 3.566, 4.441, 5.348, 6.294, 7.282");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01077, 0.04506, 0.1105, 0.2125, 0.3557, 0.544, 0.7813, 1.071, 1.416");
          values("0.07164, 0.1458, 0.4071, 0.9076, 1.693, 2.782, 4.221, 6.045, 8.258, 10.89",\
                 "0.07282, 0.1461, 0.4085, 0.9102, 1.693, 2.784, 4.223, 6.047, 8.262, 10.88",\
                 "0.1262, 0.1919, 0.4093, 0.9094, 1.688, 2.781, 4.231, 6.038, 8.27, 10.91",\
                 "0.1856, 0.2832, 0.5051, 0.9146, 1.686, 2.784, 4.216, 6.047, 8.262, 10.91",\
                 "0.2514, 0.3724, 0.6778, 1.057, 1.702, 2.781, 4.217, 6.04, 8.263, 10.89",\
                 "0.3286, 0.4698, 0.845, 1.331, 1.889, 2.81, 4.217, 6.034, 8.256, 10.88",\
                 "0.4146, 0.5834, 1.009, 1.61, 2.264, 3.04, 4.266, 6.032, 8.247, 10.88",\
                 "0.5116, 0.7048, 1.183, 1.876, 2.673, 3.503, 4.542, 6.095, 8.24, 10.88",\
                 "0.6176, 0.837, 1.372, 2.141, 3.07, 4.048, 5.08, 6.422, 8.334, 10.88",\
                 "0.7362, 0.9794, 1.58, 2.406, 3.454, 4.598, 5.768, 7.036, 8.71, 10.99");
        }
      }
    }
  }

