/*
 * 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_mcu9t5v0__inv_8) {
    area : 50.803200 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 2.945 ;
      max_transition : 2.8 ;
      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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.02132, 0.09264, 0.2288, 0.441, 0.7388, 1.131, 1.624, 2.227, 2.945");
          values("-0.1875, -0.1714, -0.1468, -0.1334, -0.1279, -0.1248, -0.1224, -0.1215, -0.1208, -0.1204",\
                 "-0.156, -0.152, -0.1398, -0.1303, -0.1256, -0.1231, -0.1212, -0.121, -0.1208, -0.1202",\
                 "0.07773, 0.04275, -0.009075, -0.0457, -0.06937, -0.08437, -0.09424, -0.1009, -0.104, -0.1081",\
                 "0.6434, 0.5674, 0.4075, 0.2696, 0.166, 0.09256, 0.0409, 0.004072, -0.02329, -0.04422",\
                 "1.586, 1.476, 1.213, 0.9334, 0.7036, 0.525, 0.3888, 0.2847, 0.2057, 0.145",\
                 "2.94, 2.806, 2.455, 2.025, 1.637, 1.313, 1.052, 0.8423, 0.6746, 0.5405",\
                 "4.739, 4.585, 4.165, 3.608, 3.038, 2.536, 2.113, 1.763, 1.473, 1.232",\
                 "7.017, 6.844, 6.367, 5.695, 4.966, 4.268, 3.651, 3.123, 2.674, 2.295",\
                 "9.805, 9.617, 9.088, 8.321, 7.441, 6.551, 5.725, 4.996, 4.357, 3.807",\
                 "13.13, 12.93, 12.36, 11.51, 10.5, 9.42, 8.378, 7.426, 6.577, 5.828");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.02132, 0.09264, 0.2288, 0.441, 0.7388, 1.131, 1.624, 2.227, 2.945");
          values("1.128, 1.148, 1.186, 1.224, 1.242, 1.242, 1.271, 1.291, 1.316, 1.316",\
                 "1.194, 1.189, 1.196, 1.211, 1.226, 1.246, 1.249, 1.267, 1.305, 1.316",\
                 "1.506, 1.463, 1.383, 1.325, 1.291, 1.291, 1.303, 1.287, 1.299, 1.36",\
                 "2.174, 2.09, 1.924, 1.75, 1.613, 1.523, 1.478, 1.44, 1.464, 1.475",\
                 "3.247, 3.141, 2.874, 2.602, 2.332, 2.103, 1.948, 1.826, 1.75, 1.701",\
                 "4.768, 4.65, 4.305, 3.891, 3.504, 3.13, 2.808, 2.576, 2.377, 2.234",\
                 "6.784, 6.65, 6.252, 5.703, 5.184, 4.68, 4.189, 3.77, 3.433, 3.153",\
                 "9.329, 9.178, 8.742, 8.097, 7.402, 6.761, 6.105, 5.526, 4.984, 4.539",\
                 "12.44, 12.28, 11.81, 11.08, 10.25, 9.428, 8.64, 7.866, 7.146, 6.508",\
                 "16.16, 15.98, 15.48, 14.7, 13.74, 12.72, 11.77, 10.84, 9.929, 9.098");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.02132, 0.09264, 0.2288, 0.441, 0.7388, 1.131, 1.624, 2.227, 2.945");
          values("0.01776, 0.02477, 0.0486, 0.09327, 0.1625, 0.2597, 0.3876, 0.5484, 0.7448, 0.9787",\
                 "0.01925, 0.02781, 0.05172, 0.09633, 0.1656, 0.2627, 0.3905, 0.5514, 0.7477, 0.9819",\
                 "0.01947, 0.03169, 0.06282, 0.1086, 0.1773, 0.2738, 0.4013, 0.562, 0.7583, 0.9922",\
                 "0.01354, 0.03036, 0.07214, 0.1298, 0.2023, 0.2976, 0.4242, 0.5841, 0.7798, 1.014",\
                 "-6e-05, 0.02128, 0.0744, 0.1469, 0.2344, 0.3377, 0.4626, 0.621, 0.8155, 1.048",\
                 "-0.02271, 0.00338, 0.06798, 0.1554, 0.2603, 0.3809, 0.5187, 0.6769, 0.8691, 1.1",\
                 "-0.05529, -0.02424, 0.05155, 0.1542, 0.277, 0.4171, 0.5738, 0.749, 0.9442, 1.173",\
                 "-0.09857, -0.06263, 0.02486, 0.1425, 0.2831, 0.4436, 0.6214, 0.817, 1.033, 1.267",\
                 "-0.1533, -0.1126, -0.0132, 0.1193, 0.2786, 0.4585, 0.6587, 0.8768, 1.114, 1.371",\
                 "-0.2204, -0.175, -0.0637, 0.0845, 0.2611, 0.4614, 0.6834, 0.9254, 1.186, 1.467");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.02132, 0.09264, 0.2288, 0.441, 0.7388, 1.131, 1.624, 2.227, 2.945");
          values("0.0221, 0.03344, 0.07268, 0.146, 0.2594, 0.4174, 0.6258, 0.8878, 1.209, 1.589",\
                 "0.02782, 0.03877, 0.07688, 0.1497, 0.2629, 0.4217, 0.6292, 0.8913, 1.213, 1.593",\
                 "0.04437, 0.05841, 0.09691, 0.1672, 0.279, 0.4369, 0.6446, 0.9059, 1.226, 1.609",\
                 "0.06985, 0.08874, 0.1362, 0.2077, 0.3159, 0.4706, 0.6761, 0.9377, 1.257, 1.636",\
                 "0.1039, 0.1283, 0.1881, 0.2709, 0.3802, 0.5306, 0.7326, 0.9908, 1.308, 1.685",\
                 "0.1469, 0.1773, 0.2506, 0.3491, 0.4706, 0.6225, 0.8198, 1.073, 1.385, 1.761",\
                 "0.1997, 0.236, 0.3234, 0.4396, 0.5782, 0.7428, 0.9411, 1.189, 1.496, 1.867",\
                 "0.263, 0.3057, 0.4078, 0.542, 0.7001, 0.882, 1.094, 1.342, 1.643, 2.009",\
                 "0.338, 0.3865, 0.5037, 0.6563, 0.8354, 1.039, 1.267, 1.53, 1.832, 2.191",\
                 "0.4249, 0.4793, 0.6111, 0.7832, 0.9842, 1.21, 1.461, 1.739, 2.056, 2.416");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.02132, 0.09264, 0.2288, 0.441, 0.7388, 1.131, 1.624, 2.227, 2.945");
          values("0.01295, 0.02331, 0.06163, 0.1346, 0.2483, 0.4076, 0.6189, 0.8828, 1.206, 1.59",\
                 "0.01734, 0.0268, 0.06176, 0.1348, 0.2487, 0.4089, 0.6186, 0.8835, 1.206, 1.591",\
                 "0.02892, 0.04168, 0.07496, 0.1363, 0.2486, 0.4079, 0.6187, 0.883, 1.206, 1.591",\
                 "0.0474, 0.06526, 0.1065, 0.1669, 0.2577, 0.4079, 0.6184, 0.8841, 1.206, 1.591",\
                 "0.07178, 0.095, 0.1488, 0.2186, 0.3099, 0.4334, 0.6214, 0.8831, 1.206, 1.59",\
                 "0.1012, 0.1314, 0.1988, 0.2839, 0.3849, 0.5105, 0.6705, 0.899, 1.207, 1.59",\
                 "0.1351, 0.1734, 0.2556, 0.3577, 0.4748, 0.611, 0.775, 0.9736, 1.244, 1.598",\
                 "0.1729, 0.2201, 0.3193, 0.4426, 0.5762, 0.7284, 0.9024, 1.108, 1.35, 1.662",\
                 "0.2156, 0.271, 0.3898, 0.5308, 0.6872, 0.8596, 1.05, 1.266, 1.514, 1.801",\
                 "0.2638, 0.3286, 0.4662, 0.6288, 0.8092, 1.001, 1.211, 1.442, 1.701, 1.999");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.02132, 0.09264, 0.2288, 0.441, 0.7388, 1.131, 1.624, 2.227, 2.945");
          values("0.02264, 0.04128, 0.1069, 0.2324, 0.4279, 0.7003, 1.063, 1.515, 2.072, 2.727",\
                 "0.02582, 0.04169, 0.1071, 0.2317, 0.4269, 0.7, 1.06, 1.513, 2.071, 2.731",\
                 "0.037, 0.05378, 0.1091, 0.2319, 0.4273, 0.7019, 1.062, 1.515, 2.068, 2.732",\
                 "0.05492, 0.0762, 0.1322, 0.2376, 0.4275, 0.7015, 1.062, 1.517, 2.071, 2.738",\
                 "0.07742, 0.1052, 0.171, 0.2727, 0.4381, 0.7009, 1.062, 1.515, 2.07, 2.736",\
                 "0.1048, 0.1392, 0.2195, 0.3293, 0.4842, 0.7186, 1.061, 1.515, 2.071, 2.736",\
                 "0.1344, 0.1773, 0.2724, 0.3991, 0.5584, 0.777, 1.088, 1.516, 2.07, 2.732",\
                 "0.1698, 0.2192, 0.332, 0.4776, 0.6526, 0.8718, 1.159, 1.556, 2.075, 2.732",\
                 "0.2082, 0.2656, 0.397, 0.5626, 0.7592, 0.9848, 1.273, 1.638, 2.123, 2.741",\
                 "0.2514, 0.3152, 0.4676, 0.6538, 0.8722, 1.121, 1.407, 1.768, 2.22, 2.802");
        }
      }
    }
  }

