/*
 * 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.000666875" ;
    }

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.476 ;
      max_transition : 2.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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.03189, 0.1403, 0.3474, 0.6699, 1.123, 1.718, 2.468, 3.384, 4.476");
          values("-0.3058, -0.2789, -0.235, -0.2104, -0.1985, -0.1915, -0.1878, -0.1863, -0.1852, -0.184",\
                 "-0.2867, -0.2723, -0.2379, -0.2131, -0.2026, -0.1945, -0.1905, -0.1879, -0.1862, -0.1853",\
                 "-0.03028, -0.06121, -0.1128, -0.14, -0.1549, -0.1652, -0.1674, -0.1715, -0.1738, -0.176",\
                 "0.6668, 0.5681, 0.3765, 0.2122, 0.09678, 0.01704, -0.03353, -0.06999, -0.09831, -0.1156",\
                 "1.852, 1.704, 1.357, 1.005, 0.719, 0.5043, 0.3454, 0.2291, 0.1428, 0.07822",\
                 "3.572, 3.385, 2.909, 2.343, 1.843, 1.432, 1.108, 0.8566, 0.6595, 0.5062",\
                 "5.866, 5.65, 5.065, 4.304, 3.559, 2.913, 2.373, 1.927, 1.567, 1.28",\
                 "8.775, 8.533, 7.858, 6.929, 5.941, 5.029, 4.231, 3.554, 2.981, 2.509",\
                 "12.34, 12.07, 11.33, 10.25, 9.033, 7.846, 6.767, 5.815, 4.997, 4.295",\
                 "16.59, 16.31, 15.5, 14.3, 12.88, 11.42, 10.05, 8.802, 7.685, 6.717");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.03189, 0.1403, 0.3474, 0.6699, 1.123, 1.718, 2.468, 3.384, 4.476");
          values("1.896, 1.917, 1.946, 1.999, 1.982, 2.021, 2.034, 2.072, 2.058, 2.093",\
                 "1.964, 1.962, 1.963, 1.968, 1.987, 1.981, 2.035, 2.045, 2.135, 2.088",\
                 "2.322, 2.263, 2.168, 2.11, 2.062, 2.068, 2.068, 2.083, 2.124, 2.165",\
                 "3.121, 3.005, 2.775, 2.558, 2.407, 2.287, 2.238, 2.199, 2.256, 2.253",\
                 "4.424, 4.273, 3.886, 3.515, 3.164, 2.906, 2.733, 2.622, 2.564, 2.511",\
                 "6.27, 6.099, 5.606, 5.006, 4.509, 4.031, 3.638, 3.376, 3.208, 3.017",\
                 "8.725, 8.528, 7.963, 7.175, 6.42, 5.774, 5.156, 4.657, 4.313, 4.013",\
                 "11.82, 11.61, 10.98, 10.06, 9.049, 8.144, 7.323, 6.599, 5.974, 5.454",\
                 "15.61, 15.38, 14.7, 13.66, 12.44, 11.25, 10.19, 9.228, 8.334, 7.555",\
                 "20.14, 19.89, 19.17, 18.04, 16.66, 15.19, 13.82, 12.61, 11.45, 10.41");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.03189, 0.1403, 0.3474, 0.6699, 1.123, 1.718, 2.468, 3.384, 4.476");
          values("0.02538, 0.03582, 0.07125, 0.1375, 0.2402, 0.384, 0.5734, 0.8115, 1.102, 1.449",\
                 "0.02834, 0.03872, 0.07385, 0.14, 0.2428, 0.3866, 0.576, 0.8141, 1.105, 1.452",\
                 "0.03449, 0.04815, 0.08611, 0.1512, 0.2534, 0.3967, 0.5858, 0.8236, 1.115, 1.462",\
                 "0.04053, 0.05871, 0.1062, 0.1768, 0.2768, 0.4188, 0.6064, 0.8441, 1.134, 1.481",\
                 "0.04479, 0.06777, 0.1268, 0.2104, 0.318, 0.4573, 0.6429, 0.8787, 1.167, 1.513",\
                 "0.04641, 0.07468, 0.1457, 0.2448, 0.3675, 0.5164, 0.6988, 0.9318, 1.218, 1.561",\
                 "0.04558, 0.07873, 0.1623, 0.2775, 0.4177, 0.5831, 0.7769, 1.006, 1.29, 1.63",\
                 "0.04122, 0.07949, 0.1763, 0.3073, 0.4669, 0.651, 0.8633, 1.106, 1.386, 1.721",\
                 "0.034, 0.0777, 0.1862, 0.3349, 0.5134, 0.718, 0.9504, 1.212, 1.507, 1.84",\
                 "0.0242, 0.0721, 0.1934, 0.3592, 0.5569, 0.7836, 1.038, 1.32, 1.636, 1.985");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.03189, 0.1403, 0.3474, 0.6699, 1.123, 1.718, 2.468, 3.384, 4.476");
          values("0.0215, 0.03171, 0.06688, 0.1332, 0.2362, 0.3805, 0.5702, 0.8109, 1.102, 1.452",\
                 "0.02603, 0.03622, 0.07097, 0.1371, 0.2401, 0.3842, 0.5745, 0.8146, 1.106, 1.453",\
                 "0.03744, 0.05104, 0.08771, 0.1523, 0.2544, 0.3985, 0.5878, 0.8273, 1.12, 1.469",\
                 "0.05246, 0.07075, 0.1176, 0.1859, 0.2856, 0.4274, 0.6163, 0.8546, 1.145, 1.494",\
                 "0.06995, 0.09356, 0.1526, 0.2346, 0.3388, 0.4777, 0.6635, 0.8996, 1.189, 1.537",\
                 "0.08962, 0.1184, 0.1909, 0.2893, 0.4092, 0.5533, 0.7357, 0.9689, 1.256, 1.6",\
                 "0.1114, 0.1462, 0.232, 0.3478, 0.4865, 0.6477, 0.8353, 1.064, 1.348, 1.689",\
                 "0.1354, 0.176, 0.2758, 0.4099, 0.5682, 0.75, 0.9559, 1.191, 1.47, 1.808",\
                 "0.1614, 0.208, 0.322, 0.4745, 0.654, 0.8582, 1.086, 1.34, 1.625, 1.958",\
                 "0.1902, 0.2427, 0.3715, 0.5426, 0.7441, 0.9699, 1.222, 1.498, 1.804, 2.142");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.03189, 0.1403, 0.3474, 0.6699, 1.123, 1.718, 2.468, 3.384, 4.476");
          values("0.02045, 0.03682, 0.09345, 0.2019, 0.371, 0.6079, 0.9232, 1.313, 1.792, 2.364",\
                 "0.02299, 0.03688, 0.09352, 0.202, 0.3709, 0.6075, 0.9222, 1.313, 1.793, 2.362",\
                 "0.03501, 0.0503, 0.09718, 0.2017, 0.3722, 0.6082, 0.9194, 1.312, 1.792, 2.361",\
                 "0.0551, 0.07436, 0.1251, 0.2125, 0.3707, 0.6087, 0.9198, 1.312, 1.792, 2.364",\
                 "0.08096, 0.1062, 0.1673, 0.2581, 0.3919, 0.6089, 0.9194, 1.314, 1.791, 2.364",\
                 "0.1112, 0.1438, 0.2188, 0.3203, 0.4562, 0.6436, 0.9253, 1.315, 1.791, 2.363",\
                 "0.1459, 0.1856, 0.2775, 0.3962, 0.5407, 0.7278, 0.9754, 1.326, 1.795, 2.363",\
                 "0.1839, 0.2326, 0.3426, 0.4802, 0.6422, 0.8374, 1.08, 1.393, 1.817, 2.367",\
                 "0.2276, 0.2844, 0.4136, 0.5734, 0.7558, 0.9666, 1.216, 1.518, 1.902, 2.406",\
                 "0.2764, 0.3402, 0.4906, 0.6738, 0.8792, 1.109, 1.373, 1.683, 2.051, 2.509");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.03189, 0.1403, 0.3474, 0.6699, 1.123, 1.718, 2.468, 3.384, 4.476");
          values("0.02422, 0.04123, 0.1011, 0.2155, 0.3935, 0.6433, 0.973, 1.389, 1.894, 2.5",\
                 "0.02798, 0.04191, 0.1012, 0.2162, 0.3937, 0.6441, 0.9745, 1.389, 1.896, 2.5",\
                 "0.04037, 0.05578, 0.1044, 0.2156, 0.394, 0.6443, 0.974, 1.39, 1.898, 2.5",\
                 "0.06008, 0.07982, 0.1315, 0.2235, 0.394, 0.6439, 0.9738, 1.389, 1.899, 2.501",\
                 "0.08408, 0.1105, 0.1738, 0.2652, 0.4099, 0.6444, 0.9735, 1.388, 1.898, 2.5",\
                 "0.1123, 0.1463, 0.2229, 0.3278, 0.4661, 0.6696, 0.9744, 1.388, 1.894, 2.499",\
                 "0.1452, 0.1842, 0.2777, 0.4011, 0.55, 0.741, 1.012, 1.393, 1.892, 2.497",\
                 "0.1826, 0.2279, 0.3388, 0.483, 0.651, 0.8496, 1.1, 1.444, 1.906, 2.497",\
                 "0.2238, 0.278, 0.4056, 0.57, 0.7638, 0.9758, 1.231, 1.549, 1.972, 2.518",\
                 "0.2694, 0.3308, 0.478, 0.6636, 0.8782, 1.118, 1.385, 1.703, 2.092, 2.598");
        }
      }
    }
  }

