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

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.8534 ;
      max_transition : 3.4 ;
      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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.006884, 0.02754, 0.06698, 0.1284, 0.2146, 0.3281, 0.471, 0.6455, 0.8534");
          values("-0.04529, -0.0408, -0.03309, -0.0292, -0.02772, -0.02682, -0.02648, -0.0263, -0.02599, -0.02602",\
                 "-0.04461, -0.04106, -0.03447, -0.031, -0.02853, -0.0272, -0.02691, -0.02665, -0.02648, -0.02602",\
                 "0.003553, -0.00206, -0.01104, -0.01697, -0.01984, -0.02189, -0.02331, -0.02383, -0.02436, -0.02469",\
                 "0.1469, 0.1269, 0.0874, 0.05375, 0.0302, 0.0141, 0.003473, -0.004068, -0.00913, -0.0128",\
                 "0.399, 0.3672, 0.2925, 0.2173, 0.1576, 0.1127, 0.0798, 0.05633, 0.03856, 0.02572",\
                 "0.7666, 0.726, 0.621, 0.4979, 0.3906, 0.303, 0.2356, 0.1833, 0.143, 0.1119",\
                 "1.258, 1.211, 1.081, 0.9133, 0.7505, 0.6103, 0.4958, 0.4026, 0.3285, 0.2688",\
                 "1.882, 1.829, 1.679, 1.473, 1.254, 1.053, 0.8821, 0.7375, 0.618, 0.5199",\
                 "2.646, 2.588, 2.422, 2.181, 1.912, 1.649, 1.413, 1.208, 1.034, 0.8858",\
                 "3.56, 3.498, 3.316, 3.047, 2.732, 2.408, 2.104, 1.83, 1.594, 1.387");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.006884, 0.02754, 0.06698, 0.1284, 0.2146, 0.3281, 0.471, 0.6455, 0.8534");
          values("0.3589, 0.3632, 0.3697, 0.3724, 0.3761, 0.3802, 0.3866, 0.3895, 0.3945, 0.4002",\
                 "0.3696, 0.3703, 0.3739, 0.3749, 0.3776, 0.378, 0.3866, 0.3923, 0.394, 0.3996",\
                 "0.4416, 0.4302, 0.4135, 0.4, 0.3931, 0.3918, 0.391, 0.3939, 0.3995, 0.4079",\
                 "0.609, 0.5855, 0.5365, 0.4952, 0.4631, 0.4424, 0.4311, 0.4236, 0.4242, 0.4255",\
                 "0.8859, 0.8529, 0.7711, 0.6895, 0.6218, 0.5672, 0.5312, 0.505, 0.4847, 0.4733",\
                 "1.28, 1.241, 1.135, 1.007, 0.8949, 0.7999, 0.7204, 0.6645, 0.6189, 0.5866",\
                 "1.804, 1.76, 1.636, 1.466, 1.299, 1.156, 1.033, 0.9291, 0.8461, 0.7846",\
                 "2.466, 2.419, 2.278, 2.078, 1.855, 1.658, 1.481, 1.328, 1.201, 1.085",\
                 "3.277, 3.225, 3.073, 2.845, 2.577, 2.314, 2.083, 1.874, 1.691, 1.536",\
                 "4.245, 4.189, 4.028, 3.775, 3.472, 3.148, 2.847, 2.581, 2.339, 2.123");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.006884, 0.02754, 0.06698, 0.1284, 0.2146, 0.3281, 0.471, 0.6455, 0.8534");
          values("0.03489, 0.04838, 0.09425, 0.1804, 0.3137, 0.5012, 0.7465, 1.057, 1.435, 1.887",\
                 "0.03838, 0.05159, 0.09734, 0.1832, 0.3166, 0.5042, 0.7502, 1.061, 1.437, 1.89",\
                 "0.04642, 0.0637, 0.112, 0.1967, 0.3296, 0.5162, 0.7617, 1.072, 1.449, 1.902",\
                 "0.05291, 0.0759, 0.1371, 0.2281, 0.3579, 0.5425, 0.787, 1.096, 1.474, 1.925",\
                 "0.05646, 0.08518, 0.161, 0.2698, 0.4091, 0.5897, 0.8311, 1.138, 1.512, 1.963",\
                 "0.0564, 0.09116, 0.1814, 0.3099, 0.4702, 0.6631, 0.9004, 1.203, 1.575, 2.021",\
                 "0.05309, 0.09285, 0.198, 0.3467, 0.5297, 0.7459, 0.9973, 1.295, 1.663, 2.105",\
                 "0.0459, 0.0912, 0.2103, 0.3789, 0.5858, 0.8273, 1.104, 1.418, 1.782, 2.219",\
                 "0.0346, 0.085, 0.218, 0.4062, 0.6362, 0.9047, 1.209, 1.55, 1.932, 2.366",\
                 "0.0177, 0.0733, 0.2204, 0.4289, 0.6822, 0.9773, 1.311, 1.681, 2.091, 2.545");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.006884, 0.02754, 0.06698, 0.1284, 0.2146, 0.3281, 0.471, 0.6455, 0.8534");
          values("0.02661, 0.03898, 0.08105, 0.1604, 0.2832, 0.4555, 0.6832, 0.969, 1.318, 1.735",\
                 "0.03276, 0.04471, 0.0863, 0.165, 0.2884, 0.4605, 0.6877, 0.9735, 1.323, 1.74",\
                 "0.04764, 0.06416, 0.1086, 0.186, 0.3081, 0.4795, 0.7066, 0.9921, 1.341, 1.756",\
                 "0.06635, 0.0888, 0.1471, 0.2305, 0.35, 0.5195, 0.7445, 1.029, 1.376, 1.792",\
                 "0.08743, 0.1162, 0.1903, 0.2929, 0.4205, 0.5873, 0.8088, 1.09, 1.437, 1.85",\
                 "0.1109, 0.146, 0.2359, 0.3602, 0.5104, 0.6871, 0.9052, 1.183, 1.526, 1.938",\
                 "0.1366, 0.1785, 0.2848, 0.4313, 0.6065, 0.8075, 1.037, 1.312, 1.65, 2.057",\
                 "0.1643, 0.2132, 0.3361, 0.5051, 0.7055, 0.9353, 1.192, 1.48, 1.815, 2.217",\
                 "0.1949, 0.2503, 0.3905, 0.5817, 0.8087, 1.067, 1.354, 1.669, 2.019, 2.418",\
                 "0.228, 0.2898, 0.4479, 0.6612, 0.9153, 1.203, 1.521, 1.869, 2.247, 2.662");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.006884, 0.02754, 0.06698, 0.1284, 0.2146, 0.3281, 0.471, 0.6455, 0.8534");
          values("0.03018, 0.0524, 0.1294, 0.2762, 0.5035, 0.8255, 1.247, 1.778, 2.429, 3.203",\
                 "0.03119, 0.05198, 0.1288, 0.275, 0.5021, 0.8251, 1.248, 1.78, 2.426, 3.203",\
                 "0.04888, 0.06872, 0.1323, 0.2754, 0.5041, 0.8241, 1.245, 1.78, 2.425, 3.204",\
                 "0.07908, 0.1043, 0.1711, 0.2886, 0.5036, 0.8237, 1.244, 1.775, 2.429, 3.203",\
                 "0.1198, 0.1528, 0.2331, 0.3519, 0.5313, 0.8251, 1.246, 1.776, 2.426, 3.202",\
                 "0.1697, 0.2112, 0.31, 0.4435, 0.6212, 0.8726, 1.251, 1.776, 2.425, 3.201",\
                 "0.2287, 0.2798, 0.3993, 0.5548, 0.7482, 0.9918, 1.322, 1.796, 2.425, 3.199",\
                 "0.2968, 0.357, 0.4992, 0.6802, 0.8958, 1.151, 1.47, 1.887, 2.459, 3.201",\
                 "0.3746, 0.445, 0.6106, 0.8218, 1.06, 1.339, 1.667, 2.066, 2.578, 3.254",\
                 "0.4594, 0.5394, 0.7332, 0.9758, 1.244, 1.549, 1.899, 2.301, 2.788, 3.403");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.006884, 0.02754, 0.06698, 0.1284, 0.2146, 0.3281, 0.471, 0.6455, 0.8534");
          values("0.03404, 0.05557, 0.1312, 0.2755, 0.502, 0.8209, 1.237, 1.761, 2.401, 3.164",\
                 "0.03759, 0.05601, 0.1318, 0.276, 0.5024, 0.8188, 1.236, 1.763, 2.402, 3.161",\
                 "0.05708, 0.0761, 0.1361, 0.2762, 0.5042, 0.8181, 1.234, 1.758, 2.4, 3.174",\
                 "0.08694, 0.1116, 0.1761, 0.2895, 0.5021, 0.8217, 1.237, 1.759, 2.409, 3.17",\
                 "0.1257, 0.1574, 0.2375, 0.3516, 0.5289, 0.8201, 1.235, 1.759, 2.398, 3.162",\
                 "0.1712, 0.2119, 0.3107, 0.443, 0.6145, 0.8644, 1.241, 1.759, 2.406, 3.162",\
                 "0.2256, 0.2735, 0.394, 0.5518, 0.7404, 0.974, 1.306, 1.775, 2.399, 3.17",\
                 "0.2894, 0.346, 0.4856, 0.6702, 0.8844, 1.133, 1.441, 1.862, 2.43, 3.164",\
                 "0.3608, 0.4262, 0.5902, 0.7998, 1.044, 1.318, 1.636, 2.024, 2.538, 3.214",\
                 "0.4422, 0.5166, 0.7026, 0.9404, 1.218, 1.522, 1.863, 2.254, 2.73, 3.349");
        }
      }
    }
  }

