/*
 * 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 : "7.30746e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "7.48386e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "7.48386e-05" ;
    }

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.117 ;
      max_transition : 12 ;
      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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.02941, 0.1291, 0.3196, 0.6163, 1.033, 1.58, 2.271, 3.113, 4.117");
          values("-0.007843, -0.006784, -0.006083, -0.005816, -0.005688, -0.005622, -0.005617, -0.005568, -0.005547, -0.005532",\
                 "-0.01369, -0.01117, -0.008201, -0.006807, -0.006273, -0.006039, -0.005862, -0.005768, -0.005691, -0.005656",\
                 "-0.02148, -0.01855, -0.01329, -0.009834, -0.00803, -0.007106, -0.006569, -0.006256, -0.006122, -0.005954",\
                 "-0.02475, -0.02296, -0.01834, -0.01374, -0.01076, -0.008954, -0.007854, -0.0072, -0.006725, -0.00646",\
                 "-0.02435, -0.02379, -0.02118, -0.01718, -0.01359, -0.01118, -0.009592, -0.008557, -0.007802, -0.007253",\
                 "-0.02012, -0.02067, -0.02064, -0.01845, -0.01557, -0.01298, -0.01105, -0.009731, -0.008771, -0.008095",\
                 "-0.01254, -0.01431, -0.01668, -0.01719, -0.01578, -0.01386, -0.01208, -0.01069, -0.009597, -0.008799",\
                 "-0.001822, -0.004595, -0.009592, -0.01291, -0.01371, -0.01314, -0.01206, -0.0109, -0.009923, -0.009162",\
                 "0.01229, 0.008404, 0.0009471, -0.005365, -0.008882, -0.01031, -0.01035, -0.009957, -0.009435, -0.009049",\
                 "0.02987, 0.02517, 0.01501, 0.005701, -0.0009493, -0.005068, -0.006623, -0.007504, -0.00778, -0.00823");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.02941, 0.1291, 0.3196, 0.6163, 1.033, 1.58, 2.271, 3.113, 4.117");
          values("0.1939, 0.1955, 0.1977, 0.1977, 0.1993, 0.2001, 0.2084, 0.2033, 0.211, 0.2767",\
                 "0.1869, 0.1901, 0.1944, 0.1965, 0.1981, 0.1999, 0.2012, 0.2035, 0.2108, 0.2746",\
                 "0.1815, 0.1836, 0.1886, 0.193, 0.1961, 0.199, 0.2001, 0.2026, 0.2105, 0.2784",\
                 "0.1807, 0.1816, 0.185, 0.1887, 0.1939, 0.1958, 0.1981, 0.2019, 0.2077, 0.2958",\
                 "0.1835, 0.1835, 0.1835, 0.1866, 0.1896, 0.1943, 0.2008, 0.1981, 0.2191, 0.3196",\
                 "0.189, 0.1877, 0.1856, 0.1867, 0.1892, 0.1913, 0.1963, 0.2034, 0.218, 0.369",\
                 "0.1972, 0.1949, 0.1911, 0.1885, 0.1905, 0.192, 0.1931, 0.1996, 0.2385, 0.4809",\
                 "0.2086, 0.2051, 0.1986, 0.1943, 0.1923, 0.1943, 0.196, 0.2006, 0.2719, 0.7031",\
                 "0.2238, 0.2187, 0.2097, 0.2026, 0.197, 0.1974, 0.1986, 0.214, 0.3899, 1.178",\
                 "0.2426, 0.236, 0.2238, 0.2147, 0.206, 0.203, 0.207, 0.2823, 0.7804, 2.127");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.02941, 0.1291, 0.3196, 0.6163, 1.033, 1.58, 2.271, 3.113, 4.117");
          values("0.087, 0.1192, 0.2299, 0.4404, 0.7679, 1.227, 1.832, 2.59, 3.522, 4.623",\
                 "0.1131, 0.1461, 0.2581, 0.469, 0.7972, 1.257, 1.86, 2.622, 3.551, 4.661",\
                 "0.1829, 0.2336, 0.3595, 0.5718, 0.8999, 1.36, 1.965, 2.726, 3.655, 4.757",\
                 "0.238, 0.3189, 0.5164, 0.768, 1.097, 1.558, 2.162, 2.923, 3.853, 4.962",\
                 "0.2696, 0.3829, 0.6605, 1.012, 1.404, 1.867, 2.471, 3.233, 4.164, 5.271",\
                 "0.2743, 0.4209, 0.7827, 1.242, 1.752, 2.296, 2.908, 3.669, 4.596, 5.705",\
                 "0.2502, 0.4293, 0.8767, 1.45, 2.086, 2.761, 3.469, 4.243, 5.171, 6.279",\
                 "0.1961, 0.4075, 0.9417, 1.631, 2.397, 3.209, 4.063, 4.948, 5.896, 7.001",\
                 "0.1098, 0.3531, 0.9726, 1.78, 2.681, 3.641, 4.642, 5.681, 6.752, 7.887",\
                 "-0.0108, 0.2654, 0.9678, 1.895, 2.932, 4.043, 5.2, 6.399, 7.635, 8.902");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.02941, 0.1291, 0.3196, 0.6163, 1.033, 1.58, 2.271, 3.113, 4.117");
          values("0.1103, 0.1594, 0.3279, 0.6482, 1.146, 1.845, 2.762, 3.92, 5.324, 7.011",\
                 "0.14, 0.1906, 0.3615, 0.6822, 1.18, 1.88, 2.796, 3.958, 5.366, 7.053",\
                 "0.2533, 0.3121, 0.4846, 0.8081, 1.308, 2.004, 2.927, 4.085, 5.496, 7.17",\
                 "0.4035, 0.4978, 0.7237, 1.05, 1.549, 2.251, 3.169, 4.327, 5.743, 7.419",\
                 "0.5761, 0.7085, 1.029, 1.427, 1.93, 2.631, 3.548, 4.71, 6.12, 7.81",\
                 "0.7722, 0.9441, 1.364, 1.89, 2.464, 3.166, 4.086, 5.246, 6.658, 8.336",\
                 "0.994, 1.207, 1.728, 2.388, 3.106, 3.871, 4.792, 5.952, 7.362, 9.05",\
                 "1.246, 1.497, 2.12, 2.919, 3.793, 4.711, 5.684, 6.841, 8.254, 9.934",\
                 "1.531, 1.818, 2.544, 3.484, 4.52, 5.608, 6.729, 7.931, 9.343, 11.03",\
                 "1.85, 2.174, 2.997, 4.083, 5.282, 6.547, 7.856, 9.197, 10.64, 12.32");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.02941, 0.1291, 0.3196, 0.6163, 1.033, 1.58, 2.271, 3.113, 4.117");
          values("0.0831, 0.1374, 0.3265, 0.6863, 1.249, 2.036, 3.077, 4.38, 5.969, 7.877",\
                 "0.08316, 0.1369, 0.3265, 0.6864, 1.249, 2.039, 3.072, 4.376, 5.969, 7.875",\
                 "0.145, 0.1901, 0.3329, 0.6872, 1.248, 2.038, 3.077, 4.386, 5.973, 7.876",\
                 "0.2422, 0.3108, 0.4791, 0.732, 1.248, 2.037, 3.076, 4.385, 5.97, 7.886",\
                 "0.3524, 0.4494, 0.68, 0.9764, 1.359, 2.046, 3.068, 4.384, 5.983, 7.887",\
                 "0.472, 0.5998, 0.9026, 1.283, 1.714, 2.241, 3.108, 4.381, 5.966, 7.885",\
                 "0.5946, 0.7604, 1.143, 1.615, 2.139, 2.712, 3.403, 4.469, 5.975, 7.871",\
                 "0.7258, 0.9234, 1.394, 1.97, 2.599, 3.277, 3.999, 4.866, 6.137, 7.898",\
                 "0.8678, 1.094, 1.657, 2.341, 3.083, 3.871, 4.707, 5.59, 6.654, 8.156",\
                 "1.023, 1.276, 1.927, 2.725, 3.589, 4.498, 5.456, 6.462, 7.512, 8.786");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.02941, 0.1291, 0.3196, 0.6163, 1.033, 1.58, 2.271, 3.113, 4.117");
          values("0.1281, 0.2082, 0.4945, 1.04, 1.891, 3.083, 4.674, 6.633, 9.04, 11.96",\
                 "0.1273, 0.2083, 0.4947, 1.04, 1.892, 3.09, 4.651, 6.635, 9.043, 11.95",\
                 "0.175, 0.2286, 0.4952, 1.042, 1.89, 3.084, 4.656, 6.636, 9.045, 11.93",\
                 "0.2865, 0.3615, 0.555, 1.042, 1.895, 3.088, 4.653, 6.629, 9.049, 11.91",\
                 "0.412, 0.519, 0.7724, 1.138, 1.898, 3.091, 4.667, 6.638, 9.079, 11.93",\
                 "0.5454, 0.689, 1.023, 1.443, 2.021, 3.097, 4.671, 6.661, 9.051, 11.92",\
                 "0.6836, 0.8658, 1.295, 1.814, 2.393, 3.249, 4.679, 6.649, 9.072, 11.98",\
                 "0.828, 1.05, 1.576, 2.216, 2.908, 3.675, 4.852, 6.667, 9.076, 11.96",\
                 "0.9776, 1.24, 1.866, 2.633, 3.45, 4.321, 5.328, 6.866, 9.104, 11.94",\
                 "1.138, 1.438, 2.167, 3.07, 4.03, 5.024, 6.086, 7.384, 9.322, 12");
        }
      }
    }
  }

