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

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 2.747 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01995, 0.08648, 0.2135, 0.4114, 0.6891, 1.055, 1.515, 2.077, 2.747");
          values("-0.04314, -0.03621, -0.02955, -0.02693, -0.02589, -0.0255, -0.02518, -0.025, -0.02494, -0.02487",\
                 "-0.04631, -0.04105, -0.03326, -0.0291, -0.02732, -0.02638, -0.0258, -0.02554, -0.02533, -0.02521",\
                 "-0.006525, -0.01393, -0.02028, -0.02238, -0.02336, -0.02402, -0.02434, -0.02454, -0.02445, -0.02464",\
                 "0.1102, 0.087, 0.04915, 0.02291, 0.007138, -0.003014, -0.009223, -0.0134, -0.01612, -0.01807",\
                 "0.3113, 0.2746, 0.2015, 0.1374, 0.09188, 0.0604, 0.03842, 0.02333, 0.01238, 0.004494",\
                 "0.6012, 0.5555, 0.4488, 0.3417, 0.2541, 0.1886, 0.1403, 0.1045, 0.0777, 0.05741",\
                 "0.9892, 0.9347, 0.8012, 0.6466, 0.5118, 0.4024, 0.3167, 0.2495, 0.198, 0.1575",\
                 "1.481, 1.42, 1.263, 1.066, 0.8769, 0.717, 0.5842, 0.4772, 0.3913, 0.3214",\
                 "2.083, 2.016, 1.84, 1.605, 1.363, 1.145, 0.9589, 0.8025, 0.6722, 0.5665",\
                 "2.804, 2.73, 2.536, 2.269, 1.976, 1.699, 1.453, 1.239, 1.059, 0.9072");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01995, 0.08648, 0.2135, 0.4114, 0.6891, 1.055, 1.515, 2.077, 2.747");
          values("0.2997, 0.3069, 0.3135, 0.3213, 0.3249, 0.3262, 0.3309, 0.3384, 0.3465, 0.3656",\
                 "0.3049, 0.3068, 0.3119, 0.3152, 0.3202, 0.3248, 0.3323, 0.3427, 0.3458, 0.3548",\
                 "0.3635, 0.3497, 0.3346, 0.3271, 0.3252, 0.328, 0.3377, 0.3399, 0.3559, 0.3663",\
                 "0.5009, 0.4722, 0.4241, 0.3877, 0.3677, 0.3543, 0.3568, 0.3546, 0.358, 0.3671",\
                 "0.7247, 0.685, 0.5992, 0.5297, 0.4714, 0.4346, 0.414, 0.4072, 0.4048, 0.3933",\
                 "1.044, 0.9958, 0.8816, 0.76, 0.6676, 0.5883, 0.5407, 0.4997, 0.4729, 0.4632",\
                 "1.468, 1.412, 1.274, 1.106, 0.9635, 0.846, 0.747, 0.6714, 0.6172, 0.5856",\
                 "2.005, 1.945, 1.785, 1.575, 1.373, 1.207, 1.062, 0.9475, 0.8491, 0.7764",\
                 "2.661, 2.594, 2.417, 2.176, 1.918, 1.688, 1.499, 1.331, 1.187, 1.07",\
                 "3.445, 3.374, 3.181, 2.91, 2.604, 2.307, 2.057, 1.84, 1.642, 1.473");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01995, 0.08648, 0.2135, 0.4114, 0.6891, 1.055, 1.515, 2.077, 2.747");
          values("0.03007, 0.04887, 0.1121, 0.2315, 0.4173, 0.6782, 1.021, 1.453, 1.979, 2.607",\
                 "0.03603, 0.05571, 0.1191, 0.2389, 0.4247, 0.6857, 1.028, 1.46, 1.985, 2.616",\
                 "0.0441, 0.07334, 0.1473, 0.2661, 0.4514, 0.7122, 1.055, 1.486, 2.013, 2.643",\
                 "0.04777, 0.08771, 0.185, 0.3224, 0.5061, 0.7653, 1.107, 1.538, 2.064, 2.692",\
                 "0.04459, 0.09602, 0.2182, 0.3863, 0.5953, 0.8524, 1.192, 1.621, 2.147, 2.774",\
                 "0.03348, 0.09635, 0.2445, 0.4443, 0.69, 0.9781, 1.317, 1.743, 2.266, 2.892",\
                 "0.0138, 0.0879, 0.2628, 0.4958, 0.7768, 1.107, 1.482, 1.908, 2.427, 3.049",\
                 "-0.0156, 0.0693, 0.2707, 0.5378, 0.8573, 1.227, 1.649, 2.117, 2.638, 3.256",\
                 "-0.0552, 0.0416, 0.2689, 0.5712, 0.9291, 1.34, 1.804, 2.324, 2.892, 3.514",\
                 "-0.1063, 0.0025, 0.2561, 0.5939, 0.9914, 1.445, 1.952, 2.519, 3.143, 3.816");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01995, 0.08648, 0.2135, 0.4114, 0.6891, 1.055, 1.515, 2.077, 2.747");
          values("0.02709, 0.04793, 0.1184, 0.2517, 0.4585, 0.7488, 1.131, 1.612, 2.2, 2.898",\
                 "0.03646, 0.05747, 0.1278, 0.2607, 0.4681, 0.7583, 1.14, 1.621, 2.207, 2.91",\
                 "0.05907, 0.08877, 0.1645, 0.2961, 0.5022, 0.7922, 1.173, 1.655, 2.241, 2.94",\
                 "0.08923, 0.1303, 0.2284, 0.3689, 0.572, 0.86, 1.239, 1.721, 2.307, 3.006",\
                 "0.1259, 0.1791, 0.3034, 0.4736, 0.6873, 0.9713, 1.348, 1.826, 2.411, 3.108",\
                 "0.1699, 0.2354, 0.3881, 0.5903, 0.8387, 1.134, 1.506, 1.98, 2.562, 3.257",\
                 "0.221, 0.299, 0.4808, 0.7187, 1.002, 1.338, 1.722, 2.191, 2.767, 3.459",\
                 "0.2798, 0.3715, 0.5828, 0.8574, 1.181, 1.554, 1.982, 2.462, 3.033, 3.721",\
                 "0.3473, 0.4522, 0.6927, 1.006, 1.372, 1.786, 2.256, 2.783, 3.366, 4.047",\
                 "0.4238, 0.5414, 0.8127, 1.165, 1.573, 2.034, 2.546, 3.119, 3.752, 4.444");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01995, 0.08648, 0.2135, 0.4114, 0.6891, 1.055, 1.515, 2.077, 2.747");
          values("0.02421, 0.05404, 0.1572, 0.3554, 0.6649, 1.096, 1.667, 2.386, 3.258, 4.302",\
                 "0.02991, 0.05424, 0.1583, 0.3572, 0.6659, 1.096, 1.669, 2.382, 3.259, 4.304",\
                 "0.05104, 0.08212, 0.1668, 0.3565, 0.6665, 1.096, 1.668, 2.383, 3.265, 4.301",\
                 "0.08426, 0.1246, 0.2268, 0.3822, 0.665, 1.1, 1.667, 2.383, 3.264, 4.301",\
                 "0.1255, 0.1791, 0.3012, 0.4807, 0.7183, 1.103, 1.671, 2.383, 3.259, 4.301",\
                 "0.1741, 0.2433, 0.3932, 0.5944, 0.86, 1.189, 1.684, 2.39, 3.27, 4.303",\
                 "0.233, 0.3152, 0.497, 0.728, 1.019, 1.381, 1.81, 2.424, 3.268, 4.313",\
                 "0.2976, 0.3956, 0.613, 0.88, 1.199, 1.59, 2.05, 2.593, 3.333, 4.316",\
                 "0.3712, 0.4856, 0.7408, 1.048, 1.399, 1.819, 2.319, 2.885, 3.548, 4.424",\
                 "0.4546, 0.5842, 0.8754, 1.227, 1.621, 2.071, 2.599, 3.216, 3.892, 4.685");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01995, 0.08648, 0.2135, 0.4114, 0.6891, 1.055, 1.515, 2.077, 2.747");
          values("0.03043, 0.06473, 0.1858, 0.4168, 0.7767, 1.281, 1.948, 2.786, 3.81, 5.02",\
                 "0.03658, 0.06512, 0.1857, 0.4166, 0.7773, 1.281, 1.948, 2.781, 3.81, 5.029",\
                 "0.05874, 0.09078, 0.19, 0.4161, 0.7757, 1.281, 1.945, 2.784, 3.803, 5.02",\
                 "0.09234, 0.1343, 0.2423, 0.4287, 0.7756, 1.28, 1.946, 2.782, 3.807, 5.027",\
                 "0.1343, 0.1898, 0.318, 0.5104, 0.8005, 1.279, 1.945, 2.781, 3.802, 5.025",\
                 "0.1828, 0.2528, 0.4098, 0.622, 0.9112, 1.324, 1.944, 2.784, 3.808, 5.026",\
                 "0.2408, 0.3252, 0.5148, 0.756, 1.068, 1.465, 2.009, 2.787, 3.797, 5.024",\
                 "0.3082, 0.4064, 0.6292, 0.9102, 1.246, 1.667, 2.184, 2.877, 3.812, 5.012",\
                 "0.3828, 0.4966, 0.7524, 1.077, 1.448, 1.893, 2.436, 3.081, 3.934, 5.039",\
                 "0.4678, 0.5964, 0.887, 1.256, 1.678, 2.145, 2.712, 3.383, 4.172, 5.196");
        }
      }
    }
  }

