/*
 * 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_20) {
    area : 92.198400 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.09057 ;
      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 : 6.994 ;
      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.04927, 0.2187, 0.5422, 1.046, 1.754, 2.684, 3.857, 5.288, 6.994");
          values("-0.0696, -0.05848, -0.0491, -0.04568, -0.04451, -0.04373, -0.04339, -0.04337, -0.04291, -0.04316",\
                 "-0.08401, -0.07245, -0.05728, -0.05014, -0.04703, -0.04535, -0.04441, -0.04381, -0.04365, -0.04327",\
                 "-0.02995, -0.03759, -0.04182, -0.04229, -0.04238, -0.04248, -0.04243, -0.04246, -0.04244, -0.04235",\
                 "0.1646, 0.1268, 0.06896, 0.03104, 0.007163, -0.007734, -0.01756, -0.02406, -0.02845, -0.03145",\
                 "0.5127, 0.4482, 0.3225, 0.2189, 0.1468, 0.09687, 0.06216, 0.03744, 0.01965, 0.006867",\
                 "1.024, 0.9383, 0.7473, 0.5612, 0.4172, 0.3108, 0.232, 0.1735, 0.1295, 0.09659",\
                 "1.711, 1.606, 1.358, 1.083, 0.8507, 0.6676, 0.5267, 0.4169, 0.3324, 0.2655",\
                 "2.583, 2.465, 2.165, 1.807, 1.474, 1.199, 0.9771, 0.7987, 0.6569, 0.5425",\
                 "3.656, 3.524, 3.181, 2.743, 2.308, 1.927, 1.61, 1.347, 1.133, 0.9542",\
                 "4.935, 4.793, 4.414, 3.904, 3.369, 2.873, 2.447, 2.089, 1.784, 1.529");
        }

        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.04927, 0.2187, 0.5422, 1.046, 1.754, 2.684, 3.857, 5.288, 6.994");
          values("0.738, 0.7597, 0.7847, 0.794, 0.8007, 0.8105, 0.8108, 0.8321, 0.8287, 0.8964",\
                 "0.7244, 0.7362, 0.7598, 0.7795, 0.7948, 0.8072, 0.8227, 0.8486, 0.8452, 0.9077",\
                 "0.8163, 0.7991, 0.7799, 0.7821, 0.7918, 0.8056, 0.8171, 0.8255, 0.8683, 0.9321",\
                 "1.055, 1.009, 0.9348, 0.8788, 0.8479, 0.8409, 0.8379, 0.8552, 0.8551, 0.9373",\
                 "1.457, 1.386, 1.244, 1.126, 1.027, 0.9739, 0.9405, 0.9179, 0.9246, 0.9703",\
                 "2.035, 1.944, 1.742, 1.541, 1.384, 1.245, 1.147, 1.099, 1.063, 1.115",\
                 "2.809, 2.698, 2.439, 2.154, 1.911, 1.71, 1.532, 1.4, 1.311, 1.369",\
                 "3.791, 3.665, 3.35, 2.989, 2.651, 2.366, 2.114, 1.894, 1.751, 1.784",\
                 "4.994, 4.855, 4.496, 4.052, 3.61, 3.23, 2.898, 2.593, 2.357, 2.491",\
                 "6.433, 6.281, 5.883, 5.361, 4.836, 4.332, 3.895, 3.525, 3.234, 3.625");
        }
      }

      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.04927, 0.2187, 0.5422, 1.046, 1.754, 2.684, 3.857, 5.288, 6.994");
          values("0.03794, 0.05683, 0.1207, 0.2417, 0.4297, 0.6933, 1.041, 1.479, 2.014, 2.651",\
                 "0.04906, 0.07042, 0.1348, 0.2558, 0.4443, 0.7084, 1.056, 1.492, 2.028, 2.663",\
                 "0.05578, 0.09261, 0.1829, 0.3081, 0.4959, 0.7602, 1.107, 1.545, 2.08, 2.715",\
                 "0.04321, 0.09648, 0.2242, 0.3955, 0.5983, 0.8607, 1.208, 1.644, 2.177, 2.814",\
                 "0.00792, 0.07736, 0.2437, 0.4645, 0.7267, 1.021, 1.366, 1.803, 2.335, 2.971",\
                 "-0.0529, 0.0326, 0.2379, 0.5091, 0.829, 1.191, 1.588, 2.027, 2.557, 3.191",\
                 "-0.1423, -0.0401, 0.2035, 0.5267, 0.9052, 1.331, 1.802, 2.31, 2.856, 3.487",\
                 "-0.2624, -0.1434, 0.1389, 0.5135, 0.9516, 1.443, 1.985, 2.572, 3.199, 3.862",\
                 "-0.4158, -0.2803, 0.0424, 0.467, 0.9657, 1.522, 2.136, 2.8, 3.512, 4.266",\
                 "-0.6029, -0.4518, -0.0895, 0.386, 0.945, 1.571, 2.255, 2.994, 3.789, 4.633");
        }

        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.04927, 0.2187, 0.5422, 1.046, 1.754, 2.684, 3.857, 5.288, 6.994");
          values("0.05243, 0.08759, 0.2049, 0.4248, 0.7666, 1.245, 1.876, 2.667, 3.641, 4.794",\
                 "0.06884, 0.1029, 0.2203, 0.441, 0.7828, 1.263, 1.893, 2.686, 3.656, 4.814",\
                 "0.1187, 0.1647, 0.2867, 0.5055, 0.8467, 1.327, 1.957, 2.75, 3.718, 4.87",\
                 "0.1916, 0.2526, 0.4105, 0.6389, 0.9763, 1.453, 2.081, 2.873, 3.844, 4.994",\
                 "0.2877, 0.3667, 0.5599, 0.8386, 1.187, 1.659, 2.283, 3.072, 4.038, 5.195",\
                 "0.4085, 0.5061, 0.7406, 1.065, 1.476, 1.958, 2.576, 3.361, 4.323, 5.475",\
                 "0.5565, 0.6729, 0.9512, 1.325, 1.792, 2.343, 2.971, 3.749, 4.703, 5.846",\
                 "0.734, 0.869, 1.194, 1.621, 2.141, 2.759, 3.461, 4.248, 5.196, 6.334",\
                 "0.9433, 1.097, 1.467, 1.952, 2.529, 3.208, 3.987, 4.85, 5.806, 6.935",\
                 "1.186, 1.358, 1.774, 2.319, 2.959, 3.697, 4.546, 5.496, 6.528, 7.666");
        }

        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.04927, 0.2187, 0.5422, 1.046, 1.754, 2.684, 3.857, 5.288, 6.994");
          values("0.02977, 0.06013, 0.1666, 0.3701, 0.6846, 1.131, 1.717, 2.444, 3.341, 4.409",\
                 "0.03924, 0.06286, 0.1666, 0.37, 0.687, 1.132, 1.717, 2.453, 3.341, 4.428",\
                 "0.07436, 0.1103, 0.2009, 0.3714, 0.6855, 1.131, 1.716, 2.455, 3.353, 4.427",\
                 "0.1254, 0.1752, 0.2967, 0.467, 0.7087, 1.129, 1.713, 2.45, 3.348, 4.425",\
                 "0.1901, 0.257, 0.4104, 0.6212, 0.8808, 1.207, 1.722, 2.446, 3.35, 4.424",\
                 "0.2676, 0.3532, 0.5448, 0.7936, 1.104, 1.462, 1.882, 2.494, 3.35, 4.412",\
                 "0.3576, 0.4632, 0.697, 0.993, 1.344, 1.759, 2.227, 2.751, 3.466, 4.438",\
                 "0.4586, 0.5868, 0.8678, 1.214, 1.616, 2.077, 2.61, 3.19, 3.827, 4.652",\
                 "0.5708, 0.7256, 1.05, 1.455, 1.911, 2.421, 3.009, 3.661, 4.365, 5.123",\
                 "0.6976, 0.8742, 1.256, 1.713, 2.231, 2.801, 3.434, 4.15, 4.933, 5.771");
        }

        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.04927, 0.2187, 0.5422, 1.046, 1.754, 2.684, 3.857, 5.288, 6.994");
          values("0.05759, 0.1152, 0.3177, 0.7041, 1.306, 2.151, 3.262, 4.658, 6.371, 8.407",\
                 "0.0609, 0.1156, 0.3172, 0.7038, 1.305, 2.149, 3.262, 4.657, 6.375, 8.41",\
                 "0.09654, 0.152, 0.3203, 0.7028, 1.305, 2.15, 3.261, 4.662, 6.365, 8.399",\
                 "0.1469, 0.2123, 0.4004, 0.7156, 1.304, 2.148, 3.26, 4.657, 6.369, 8.401",\
                 "0.212, 0.2914, 0.5072, 0.8392, 1.334, 2.146, 3.26, 4.659, 6.371, 8.403",\
                 "0.2866, 0.3892, 0.6316, 1.014, 1.501, 2.201, 3.258, 4.658, 6.366, 8.404",\
                 "0.3734, 0.4972, 0.7818, 1.194, 1.752, 2.414, 3.336, 4.661, 6.361, 8.403",\
                 "0.4718, 0.6166, 0.951, 1.399, 2.003, 2.743, 3.598, 4.774, 6.372, 8.392",\
                 "0.581, 0.7474, 1.138, 1.634, 2.271, 3.081, 4.007, 5.083, 6.529, 8.417",\
                 "0.7092, 0.8942, 1.338, 1.893, 2.57, 3.421, 4.447, 5.557, 6.886, 8.628");
        }
      }
    }
  }

