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

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.736 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03368, 0.1484, 0.3674, 0.7087, 1.188, 1.818, 2.611, 3.581, 4.736");
          values("-0.1556, -0.1253, -0.1084, -0.1015, -0.09869, -0.09751, -0.09593, -0.09511, -0.09634, -0.09635",\
                 "-0.1702, -0.1526, -0.1259, -0.1113, -0.1046, -0.1011, -0.0988, -0.09713, -0.09637, -0.09587",\
                 "-0.1236, -0.1245, -0.1186, -0.1109, -0.1051, -0.1009, -0.099, -0.09775, -0.0967, -0.09603",\
                 "0.1261, 0.08989, 0.02664, -0.01787, -0.04402, -0.05969, -0.06995, -0.07594, -0.08071, -0.08385",\
                 "0.6076, 0.5347, 0.3832, 0.2473, 0.1498, 0.08262, 0.03585, 0.003629, -0.01798, -0.03528",\
                 "1.329, 1.229, 0.9887, 0.739, 0.5383, 0.3862, 0.2742, 0.1923, 0.1322, 0.08682",\
                 "2.305, 2.181, 1.865, 1.498, 1.17, 0.9064, 0.7001, 0.5406, 0.418, 0.3225",\
                 "3.551, 3.408, 3.028, 2.547, 2.082, 1.685, 1.358, 1.095, 0.8855, 0.7179",\
                 "5.083, 4.924, 4.488, 3.903, 3.302, 2.755, 2.289, 1.899, 1.579, 1.316",\
                 "6.916, 6.743, 6.259, 5.582, 4.849, 4.147, 3.524, 2.987, 2.536, 2.154");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03368, 0.1484, 0.3674, 0.7087, 1.188, 1.818, 2.611, 3.581, 4.736");
          values("1.341, 1.358, 1.38, 1.379, 1.388, 1.394, 1.422, 1.459, 1.459, 1.5",\
                 "1.327, 1.34, 1.364, 1.379, 1.391, 1.403, 1.42, 1.441, 1.459, 1.504",\
                 "1.437, 1.42, 1.406, 1.399, 1.4, 1.407, 1.423, 1.437, 1.468, 1.491",\
                 "1.755, 1.698, 1.604, 1.534, 1.488, 1.475, 1.469, 1.477, 1.49, 1.513",\
                 "2.298, 2.213, 2.028, 1.868, 1.744, 1.661, 1.611, 1.581, 1.571, 1.594",\
                 "3.085, 2.978, 2.715, 2.438, 2.221, 2.042, 1.899, 1.806, 1.765, 1.746",\
                 "4.136, 4.012, 3.685, 3.291, 2.942, 2.662, 2.428, 2.238, 2.119, 2.046",\
                 "5.472, 5.33, 4.952, 4.448, 3.96, 3.553, 3.215, 2.917, 2.685, 2.548",\
                 "7.11, 6.955, 6.527, 5.943, 5.316, 4.746, 4.286, 3.871, 3.539, 3.314",\
                 "9.068, 8.901, 8.431, 7.765, 7.019, 6.291, 5.651, 5.147, 4.675, 4.389");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03368, 0.1484, 0.3674, 0.7087, 1.188, 1.818, 2.611, 3.581, 4.736");
          values("0.06784, 0.09677, 0.1912, 0.3692, 0.6461, 1.034, 1.547, 2.192, 2.972, 3.91",\
                 "0.07708, 0.105, 0.2001, 0.3788, 0.6563, 1.045, 1.556, 2.2, 2.986, 3.924",\
                 "0.1001, 0.1368, 0.2373, 0.4154, 0.6923, 1.081, 1.592, 2.236, 3.024, 3.961",\
                 "0.1185, 0.1682, 0.3001, 0.4924, 0.7665, 1.153, 1.664, 2.308, 3.094, 4.028",\
                 "0.1302, 0.1932, 0.3585, 0.5948, 0.8903, 1.273, 1.781, 2.421, 3.206, 4.141",\
                 "0.1337, 0.2107, 0.41, 0.69, 1.039, 1.449, 1.951, 2.588, 3.369, 4.299",\
                 "0.1285, 0.2194, 0.4528, 0.7796, 1.179, 1.65, 2.184, 2.816, 3.592, 4.521",\
                 "0.1145, 0.2186, 0.4868, 0.8593, 1.312, 1.84, 2.442, 3.109, 3.881, 4.804",\
                 "0.0907, 0.2063, 0.51, 0.929, 1.438, 2.023, 2.687, 3.43, 4.24, 5.159",\
                 "0.0549, 0.1857, 0.5218, 0.9892, 1.551, 2.198, 2.925, 3.736, 4.627, 5.587");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03368, 0.1484, 0.3674, 0.7087, 1.188, 1.818, 2.611, 3.581, 4.736");
          values("0.05429, 0.08107, 0.1725, 0.3454, 0.6129, 0.9905, 1.487, 2.111, 2.867, 3.777",\
                 "0.06685, 0.09349, 0.1852, 0.3578, 0.627, 1.003, 1.499, 2.125, 2.885, 3.796",\
                 "0.1047, 0.14, 0.2357, 0.4071, 0.6758, 1.051, 1.546, 2.172, 2.935, 3.84",\
                 "0.1514, 0.1999, 0.3263, 0.5084, 0.7733, 1.148, 1.641, 2.266, 3.028, 3.933",\
                 "0.2049, 0.268, 0.429, 0.6539, 0.9335, 1.303, 1.794, 2.416, 3.176, 4.081",\
                 "0.2653, 0.3431, 0.5407, 0.8117, 1.142, 1.53, 2.015, 2.631, 3.389, 4.292",\
                 "0.3332, 0.4261, 0.6612, 0.9808, 1.364, 1.809, 2.314, 2.925, 3.675, 4.574",\
                 "0.4085, 0.5171, 0.7903, 1.16, 1.6, 2.103, 2.672, 3.302, 4.048, 4.94",\
                 "0.4912, 0.6161, 0.9271, 1.35, 1.847, 2.412, 3.044, 3.743, 4.509, 5.398",\
                 "0.5828, 0.7236, 1.075, 1.547, 2.106, 2.734, 3.431, 4.2, 5.038, 5.947");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03368, 0.1484, 0.3674, 0.7087, 1.188, 1.818, 2.611, 3.581, 4.736");
          values("0.06103, 0.106, 0.2646, 0.5671, 1.035, 1.695, 2.572, 3.671, 4.982, 6.576",\
                 "0.06112, 0.1063, 0.2647, 0.5665, 1.036, 1.696, 2.571, 3.671, 5.003, 6.609",\
                 "0.09334, 0.1354, 0.2667, 0.566, 1.037, 1.7, 2.571, 3.661, 5.009, 6.602",\
                 "0.1466, 0.1985, 0.3424, 0.5844, 1.037, 1.699, 2.566, 3.665, 5.009, 6.6",\
                 "0.2163, 0.2818, 0.4507, 0.7094, 1.08, 1.697, 2.563, 3.664, 4.997, 6.601",\
                 "0.2982, 0.3814, 0.5826, 0.874, 1.26, 1.779, 2.569, 3.659, 5, 6.597",\
                 "0.3888, 0.492, 0.736, 1.066, 1.488, 2.011, 2.695, 3.681, 4.997, 6.59",\
                 "0.4948, 0.6152, 0.906, 1.282, 1.744, 2.313, 2.986, 3.849, 5.041, 6.581",\
                 "0.606, 0.746, 1.09, 1.523, 2.032, 2.641, 3.368, 4.204, 5.264, 6.67",\
                 "0.7286, 0.8928, 1.286, 1.78, 2.352, 3.003, 3.772, 4.666, 5.68, 6.946");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03368, 0.1484, 0.3674, 0.7087, 1.188, 1.818, 2.611, 3.581, 4.736");
          values("0.06835, 0.1147, 0.2769, 0.5864, 1.07, 1.744, 2.635, 3.758, 5.125, 6.758",\
                 "0.06948, 0.1145, 0.2767, 0.5881, 1.07, 1.745, 2.635, 3.757, 5.123, 6.763",\
                 "0.1048, 0.1463, 0.2797, 0.5881, 1.068, 1.744, 2.635, 3.757, 5.132, 6.754",\
                 "0.1602, 0.2096, 0.3508, 0.6008, 1.07, 1.744, 2.632, 3.761, 5.127, 6.754",\
                 "0.228, 0.2933, 0.4585, 0.7124, 1.103, 1.745, 2.632, 3.762, 5.125, 6.761",\
                 "0.3082, 0.3898, 0.591, 0.8738, 1.256, 1.804, 2.635, 3.754, 5.131, 6.754",\
                 "0.3988, 0.4976, 0.7402, 1.065, 1.48, 2.002, 2.731, 3.769, 5.13, 6.749",\
                 "0.502, 0.617, 0.9058, 1.281, 1.734, 2.293, 2.975, 3.901, 5.144, 6.763",\
                 "0.6164, 0.7518, 1.084, 1.514, 2.019, 2.615, 3.332, 4.188, 5.327, 6.808",\
                 "0.745, 0.8988, 1.274, 1.768, 2.33, 2.97, 3.732, 4.613, 5.659, 7.012");
        }
      }
    }
  }

