/*
 * 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 : "6.60924e-05" ;
    }

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "6.7914e-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.01798 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 8.6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.408 ;
      max_transition : 8.6 ;
      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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01071, 0.04479, 0.1099, 0.2113, 0.3536, 0.5408, 0.7766, 1.065, 1.408");
          values("-0.01133, -0.00917, -0.00733, -0.006734, -0.006442, -0.006332, -0.006294, -0.006282, -0.006227, -0.006222",\
                 "-0.01441, -0.01216, -0.009187, -0.007588, -0.006967, -0.006753, -0.006583, -0.006503, -0.006379, -0.006382",\
                 "-0.003785, -0.005257, -0.006073, -0.006225, -0.006184, -0.006172, -0.006132, -0.006164, -0.006179, -0.006218",\
                 "0.03508, 0.02754, 0.01622, 0.008489, 0.003732, 0.0007616, -0.00124, -0.002526, -0.003449, -0.004057",\
                 "0.1049, 0.092, 0.06685, 0.04626, 0.03164, 0.02183, 0.01481, 0.009753, 0.006238, 0.003625",\
                 "0.2077, 0.1903, 0.1519, 0.1145, 0.08581, 0.06459, 0.04884, 0.03714, 0.02828, 0.02159",\
                 "0.3453, 0.3244, 0.2745, 0.2192, 0.173, 0.1361, 0.108, 0.08602, 0.06896, 0.05553",\
                 "0.5204, 0.4966, 0.4367, 0.3644, 0.2977, 0.2424, 0.1982, 0.1625, 0.1338, 0.1109",\
                 "0.7357, 0.7091, 0.6404, 0.5525, 0.4649, 0.3884, 0.3245, 0.2723, 0.2293, 0.1938",\
                 "0.9929, 0.964, 0.8871, 0.7853, 0.6775, 0.5785, 0.4926, 0.421, 0.3598, 0.3088");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01071, 0.04479, 0.1099, 0.2113, 0.3536, 0.5408, 0.7766, 1.065, 1.408");
          values("0.138, 0.1426, 0.1465, 0.1488, 0.15, 0.1527, 0.156, 0.1575, 0.1644, 0.1699",\
                 "0.135, 0.1373, 0.1423, 0.1466, 0.149, 0.1514, 0.1543, 0.1595, 0.1595, 0.1722",\
                 "0.1534, 0.1499, 0.1463, 0.1461, 0.1483, 0.1514, 0.1537, 0.1566, 0.1634, 0.1721",\
                 "0.2012, 0.192, 0.1773, 0.1661, 0.1604, 0.1586, 0.1599, 0.1599, 0.1671, 0.1748",\
                 "0.2815, 0.2674, 0.2396, 0.2156, 0.1965, 0.1847, 0.1784, 0.1754, 0.1747, 0.192",\
                 "0.3978, 0.3796, 0.3394, 0.2992, 0.2666, 0.2402, 0.2213, 0.2087, 0.2025, 0.2122",\
                 "0.5529, 0.5308, 0.4793, 0.4226, 0.3733, 0.3319, 0.2979, 0.2707, 0.2527, 0.2661",\
                 "0.7501, 0.7247, 0.6617, 0.5899, 0.5211, 0.4646, 0.414, 0.3686, 0.3377, 0.3537",\
                 "0.9917, 0.9636, 0.8919, 0.8026, 0.7163, 0.6381, 0.5741, 0.51, 0.4636, 0.4893",\
                 "1.281, 1.25, 1.17, 1.065, 0.9601, 0.8606, 0.7718, 0.6968, 0.6402, 0.7194");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01071, 0.04479, 0.1099, 0.2113, 0.3536, 0.5408, 0.7766, 1.065, 1.408");
          values("0.03589, 0.05462, 0.1184, 0.2394, 0.4271, 0.6905, 1.037, 1.476, 2.007, 2.645",\
                 "0.04706, 0.06843, 0.1325, 0.2539, 0.4417, 0.7055, 1.052, 1.49, 2.021, 2.659",\
                 "0.05355, 0.09051, 0.1807, 0.3059, 0.4938, 0.7574, 1.104, 1.54, 2.075, 2.712",\
                 "0.04095, 0.09426, 0.222, 0.3933, 0.596, 0.8585, 1.205, 1.641, 2.175, 2.811",\
                 "0.00551, 0.07489, 0.2416, 0.4624, 0.7241, 1.018, 1.363, 1.799, 2.331, 2.966",\
                 "-0.0556, 0.0302, 0.2356, 0.5069, 0.8268, 1.189, 1.584, 2.024, 2.553, 3.187",\
                 "-0.145, -0.0426, 0.2008, 0.5242, 0.9022, 1.329, 1.799, 2.307, 2.852, 3.483",\
                 "-0.2655, -0.1467, 0.1359, 0.5102, 0.9487, 1.44, 1.982, 2.57, 3.196, 3.858",\
                 "-0.4188, -0.2835, 0.0393, 0.4637, 0.9632, 1.52, 2.132, 2.797, 3.509, 4.262",\
                 "-0.6069, -0.4555, -0.0934, 0.3814, 0.9419, 1.568, 2.252, 2.99, 3.785, 4.629");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01071, 0.04479, 0.1099, 0.2113, 0.3536, 0.5408, 0.7766, 1.065, 1.408");
          values("0.05038, 0.08553, 0.2023, 0.4225, 0.7646, 1.245, 1.874, 2.67, 3.638, 4.794",\
                 "0.06679, 0.101, 0.2182, 0.4394, 0.7812, 1.262, 1.893, 2.685, 3.657, 4.815",\
                 "0.1166, 0.1627, 0.2848, 0.5035, 0.8457, 1.325, 1.957, 2.751, 3.72, 4.879",\
                 "0.1895, 0.2504, 0.4085, 0.6373, 0.9743, 1.451, 2.081, 2.876, 3.842, 5.001",\
                 "0.2854, 0.3646, 0.5583, 0.8373, 1.186, 1.658, 2.283, 3.075, 4.042, 5.195",\
                 "0.4062, 0.5043, 0.7387, 1.064, 1.474, 1.957, 2.576, 3.361, 4.322, 5.476",\
                 "0.5538, 0.6709, 0.9502, 1.324, 1.791, 2.342, 2.971, 3.75, 4.705, 5.852",\
                 "0.7318, 0.8674, 1.19, 1.619, 2.14, 2.76, 3.461, 4.249, 5.197, 6.337",\
                 "0.9408, 1.095, 1.466, 1.951, 2.53, 3.209, 3.99, 4.851, 5.809, 6.939",\
                 "1.184, 1.356, 1.772, 2.319, 2.96, 3.698, 4.547, 5.499, 6.53, 7.669");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01071, 0.04479, 0.1099, 0.2113, 0.3536, 0.5408, 0.7766, 1.065, 1.408");
          values("0.02957, 0.05991, 0.1656, 0.3687, 0.6857, 1.131, 1.715, 2.439, 3.352, 4.41",\
                 "0.03925, 0.0626, 0.1661, 0.3694, 0.6854, 1.13, 1.715, 2.441, 3.351, 4.4",\
                 "0.07392, 0.1102, 0.2009, 0.3704, 0.6854, 1.129, 1.712, 2.45, 3.339, 4.4",\
                 "0.1246, 0.1748, 0.2962, 0.4671, 0.7088, 1.128, 1.712, 2.449, 3.348, 4.42",\
                 "0.1892, 0.2565, 0.41, 0.6202, 0.8804, 1.204, 1.719, 2.444, 3.344, 4.419",\
                 "0.2672, 0.3518, 0.5442, 0.7934, 1.105, 1.461, 1.879, 2.49, 3.345, 4.407",\
                 "0.3564, 0.4628, 0.6956, 0.9926, 1.344, 1.758, 2.226, 2.747, 3.463, 4.432",\
                 "0.457, 0.5894, 0.8678, 1.214, 1.613, 2.076, 2.606, 3.187, 3.823, 4.646",\
                 "0.5698, 0.7236, 1.05, 1.453, 1.91, 2.422, 3.006, 3.658, 4.363, 5.119",\
                 "0.6958, 0.8718, 1.253, 1.714, 2.23, 2.797, 3.432, 4.145, 4.929, 5.761");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01071, 0.04479, 0.1099, 0.2113, 0.3536, 0.5408, 0.7766, 1.065, 1.408");
          values("0.05774, 0.1154, 0.3172, 0.7044, 1.306, 2.152, 3.262, 4.665, 6.373, 8.424",\
                 "0.06096, 0.1153, 0.3177, 0.7043, 1.305, 2.152, 3.264, 4.662, 6.382, 8.413",\
                 "0.0965, 0.1523, 0.3207, 0.7037, 1.306, 2.151, 3.263, 4.664, 6.372, 8.413",\
                 "0.1467, 0.2123, 0.4009, 0.7157, 1.304, 2.154, 3.262, 4.662, 6.369, 8.418",\
                 "0.2112, 0.292, 0.5084, 0.8396, 1.336, 2.149, 3.26, 4.662, 6.373, 8.41",\
                 "0.287, 0.3878, 0.632, 1.015, 1.501, 2.2, 3.259, 4.66, 6.371, 8.41",\
                 "0.3732, 0.4968, 0.7836, 1.193, 1.752, 2.413, 3.342, 4.663, 6.368, 8.402",\
                 "0.4706, 0.617, 0.9554, 1.402, 2.004, 2.743, 3.599, 4.775, 6.376, 8.405",\
                 "0.581, 0.7488, 1.138, 1.634, 2.27, 3.086, 4.006, 5.083, 6.536, 8.423",\
                 "0.7076, 0.894, 1.336, 1.897, 2.571, 3.426, 4.446, 5.559, 6.887, 8.63");
        }
      }
    }
  }

