/*
 * 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_8) {
    area : 39.513600 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "9.3588e-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.03564 ;
      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 : 2.825 ;
      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.02049, 0.0889, 0.2195, 0.4231, 0.7086, 1.084, 1.558, 2.136, 2.825");
          values("-0.01835, -0.01501, -0.01292, -0.01227, -0.01203, -0.01191, -0.01182, -0.01177, -0.01174, -0.01172",\
                 "-0.02726, -0.02234, -0.01654, -0.01397, -0.013, -0.01247, -0.01222, -0.01206, -0.01196, -0.01188",\
                 "-0.02979, -0.02766, -0.02182, -0.01755, -0.01522, -0.01396, -0.01323, -0.0128, -0.01251, -0.01233",\
                 "-0.01169, -0.01492, -0.01743, -0.01635, -0.01504, -0.01399, -0.01325, -0.0129, -0.01259, -0.01238",\
                 "0.0277, 0.01885, 0.005079, -0.002837, -0.006455, -0.008266, -0.009364, -0.01007, -0.0105, -0.01078",\
                 "0.08854, 0.07468, 0.04865, 0.02811, 0.01564, 0.007606, 0.002298, -0.001251, -0.003459, -0.005308",\
                 "0.1722, 0.1538, 0.1157, 0.08115, 0.05623, 0.03844, 0.02621, 0.01747, 0.01128, 0.006611",\
                 "0.28, 0.2578, 0.2082, 0.1577, 0.1178, 0.08807, 0.06636, 0.04973, 0.03759, 0.02817",\
                 "0.4131, 0.3873, 0.3276, 0.2616, 0.2049, 0.1596, 0.1253, 0.09965, 0.07874, 0.06269",\
                 "0.5735, 0.5444, 0.475, 0.3931, 0.3191, 0.257, 0.2074, 0.1689, 0.1375, 0.1128");
        }

        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.02049, 0.0889, 0.2195, 0.4231, 0.7086, 1.084, 1.558, 2.136, 2.825");
          values("0.236, 0.2427, 0.2477, 0.25, 0.2553, 0.2598, 0.2619, 0.2658, 0.2818, 0.3495",\
                 "0.2242, 0.2301, 0.2397, 0.2467, 0.2511, 0.2565, 0.2637, 0.2652, 0.2833, 0.3455",\
                 "0.2297, 0.2295, 0.2322, 0.2388, 0.2448, 0.2517, 0.2592, 0.2677, 0.2767, 0.3542",\
                 "0.2555, 0.2497, 0.2436, 0.2399, 0.2433, 0.2508, 0.255, 0.2614, 0.275, 0.3589",\
                 "0.3008, 0.2905, 0.2724, 0.2616, 0.2541, 0.2529, 0.2583, 0.2617, 0.2814, 0.3863",\
                 "0.3694, 0.3548, 0.3266, 0.3024, 0.2868, 0.2727, 0.2691, 0.2743, 0.2879, 0.4298",\
                 "0.4625, 0.4423, 0.4042, 0.3666, 0.3378, 0.3174, 0.3, 0.2923, 0.3129, 0.53",\
                 "0.5822, 0.5575, 0.5069, 0.456, 0.4122, 0.3831, 0.3552, 0.3353, 0.3653, 0.7476",\
                 "0.7303, 0.7013, 0.6395, 0.5735, 0.516, 0.4689, 0.4336, 0.405, 0.4868, 1.211",\
                 "0.9079, 0.8748, 0.8006, 0.7234, 0.6513, 0.5817, 0.5324, 0.5154, 0.8009, 2.262");
        }
      }

      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.02049, 0.0889, 0.2195, 0.4231, 0.7086, 1.084, 1.558, 2.136, 2.825");
          values("0.04736, 0.07265, 0.1583, 0.3212, 0.5754, 0.9314, 1.398, 1.99, 2.709, 3.569",\
                 "0.06649, 0.09363, 0.1805, 0.344, 0.5978, 0.9536, 1.421, 2.013, 2.731, 3.592",\
                 "0.0878, 0.139, 0.2577, 0.424, 0.6779, 1.034, 1.502, 2.092, 2.814, 3.672",\
                 "0.08968, 0.1639, 0.3413, 0.5681, 0.833, 1.189, 1.657, 2.248, 2.968, 3.824",\
                 "0.0688, 0.1673, 0.3999, 0.7045, 1.051, 1.432, 1.899, 2.489, 3.207, 4.064",\
                 "0.0224, 0.1447, 0.4338, 0.8131, 1.251, 1.728, 2.239, 2.829, 3.549, 4.404",\
                 "-0.0533, 0.0944, 0.4411, 0.8928, 1.42, 2.001, 2.62, 3.274, 3.998, 4.853",\
                 "-0.1605, 0.0128, 0.4172, 0.9442, 1.556, 2.238, 2.97, 3.743, 4.552, 5.422",\
                 "-0.3029, -0.1034, 0.3606, 0.9637, 1.662, 2.442, 3.286, 4.179, 5.112, 6.089",\
                 "-0.4817, -0.2559, 0.2695, 0.9489, 1.734, 2.61, 3.563, 4.578, 5.64, 6.749");
        }

        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.02049, 0.0889, 0.2195, 0.4231, 0.7086, 1.084, 1.558, 2.136, 2.825");
          values("0.06723, 0.1138, 0.2689, 0.5613, 1.017, 1.656, 2.492, 3.549, 4.845, 6.383",\
                 "0.08971, 0.1359, 0.2931, 0.5874, 1.044, 1.682, 2.523, 3.577, 4.874, 6.407",\
                 "0.1596, 0.2251, 0.3879, 0.6827, 1.139, 1.777, 2.618, 3.679, 4.964, 6.51",\
                 "0.2496, 0.3413, 0.5668, 0.8714, 1.326, 1.965, 2.806, 3.861, 5.154, 6.697",\
                 "0.3657, 0.4811, 0.7725, 1.16, 1.625, 2.26, 3.1, 4.156, 5.449, 6.982",\
                 "0.5104, 0.651, 1.001, 1.482, 2.038, 2.681, 3.518, 4.571, 5.863, 7.395",\
                 "0.6847, 0.8522, 1.259, 1.825, 2.495, 3.231, 4.072, 5.125, 6.41, 7.946",\
                 "0.8909, 1.085, 1.554, 2.196, 2.974, 3.84, 4.769, 5.825, 7.11, 8.642",\
                 "1.132, 1.354, 1.886, 2.602, 3.479, 4.47, 5.542, 6.677, 7.965, 9.493",\
                 "1.407, 1.659, 2.255, 3.05, 4.018, 5.127, 6.339, 7.626, 8.983, 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.02049, 0.0889, 0.2195, 0.4231, 0.7086, 1.084, 1.558, 2.136, 2.825");
          values("0.03897, 0.07936, 0.2194, 0.4882, 0.9055, 1.491, 2.264, 3.232, 4.415, 5.832",\
                 "0.04758, 0.07966, 0.2199, 0.4886, 0.9081, 1.491, 2.263, 3.232, 4.418, 5.833",\
                 "0.09464, 0.1421, 0.2512, 0.489, 0.9075, 1.491, 2.263, 3.235, 4.416, 5.828",\
                 "0.1509, 0.2196, 0.3826, 0.5859, 0.9192, 1.494, 2.265, 3.237, 4.418, 5.835",\
                 "0.218, 0.3084, 0.5226, 0.7994, 1.108, 1.549, 2.265, 3.238, 4.419, 5.832",\
                 "0.2964, 0.4082, 0.6726, 1.023, 1.417, 1.842, 2.4, 3.259, 4.424, 5.834",\
                 "0.384, 0.52, 0.8376, 1.254, 1.738, 2.256, 2.808, 3.493, 4.497, 5.842",\
                 "0.4824, 0.6446, 1.017, 1.498, 2.066, 2.688, 3.337, 4.025, 4.85, 5.998",\
                 "0.59, 0.7812, 1.21, 1.761, 2.402, 3.123, 3.883, 4.68, 5.508, 6.482",\
                 "0.7068, 0.9294, 1.416, 2.039, 2.752, 3.564, 4.437, 5.347, 6.302, 7.28");
        }

        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.02049, 0.0889, 0.2195, 0.4231, 0.7086, 1.084, 1.558, 2.136, 2.825");
          values("0.07204, 0.1461, 0.4079, 0.9064, 1.689, 2.786, 4.216, 6.029, 8.259, 10.89",\
                 "0.07316, 0.1463, 0.4073, 0.9082, 1.688, 2.781, 4.226, 6.029, 8.26, 10.88",\
                 "0.127, 0.192, 0.4087, 0.9082, 1.689, 2.78, 4.213, 6.038, 8.234, 10.9",\
                 "0.1854, 0.2834, 0.5052, 0.9136, 1.687, 2.782, 4.224, 6.025, 8.236, 10.88",\
                 "0.2522, 0.3728, 0.6784, 1.058, 1.701, 2.779, 4.218, 6.023, 8.251, 10.88",\
                 "0.3294, 0.4718, 0.8456, 1.331, 1.889, 2.806, 4.213, 6.032, 8.243, 10.87",\
                 "0.4158, 0.5828, 1.01, 1.609, 2.263, 3.037, 4.262, 6.027, 8.241, 10.87",\
                 "0.5118, 0.705, 1.182, 1.876, 2.668, 3.504, 4.538, 6.094, 8.239, 10.87",\
                 "0.6188, 0.8372, 1.372, 2.139, 3.069, 4.047, 5.082, 6.418, 8.332, 10.88",\
                 "0.7382, 0.9812, 1.578, 2.404, 3.451, 4.592, 5.766, 7.03, 8.716, 11");
        }
      }
    }
  }

