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

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

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

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

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

    pin(I) {
      capacitance : 0.01559 ;
      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 : 0.956 ;
      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.007591, 0.03073, 0.07491, 0.1437, 0.2403, 0.3674, 0.5275, 0.723, 0.956");
          values("-0.02784, -0.02044, -0.01732, -0.01603, -0.01547, -0.01527, -0.01512, -0.01484, -0.0147, -0.01467",\
                 "-0.02981, -0.02648, -0.02103, -0.01799, -0.01677, -0.01606, -0.01578, -0.01529, -0.01514, -0.01494",\
                 "-0.02033, -0.02059, -0.01948, -0.01809, -0.01686, -0.01615, -0.01555, -0.01543, -0.0152, -0.01508",\
                 "0.03018, 0.02252, 0.009818, 0.0008682, -0.004622, -0.007826, -0.009862, -0.01107, -0.01197, -0.01254",\
                 "0.1269, 0.1121, 0.08124, 0.05395, 0.03415, 0.02051, 0.01133, 0.004923, 0.0003929, -0.002761",\
                 "0.2721, 0.2519, 0.2032, 0.1524, 0.1121, 0.08167, 0.05915, 0.04279, 0.03053, 0.02151",\
                 "0.4683, 0.443, 0.3791, 0.3047, 0.2387, 0.1859, 0.1444, 0.1125, 0.08782, 0.06874",\
                 "0.7185, 0.6897, 0.6125, 0.5155, 0.4218, 0.3418, 0.2764, 0.2237, 0.1813, 0.148",\
                 "1.026, 0.9937, 0.9055, 0.7875, 0.6663, 0.5562, 0.4629, 0.3847, 0.3202, 0.267",\
                 "1.394, 1.359, 1.261, 1.124, 0.9768, 0.8361, 0.7104, 0.6028, 0.5122, 0.4352");
        }

        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.007591, 0.03073, 0.07491, 0.1437, 0.2403, 0.3674, 0.5275, 0.723, 0.956");
          values("0.241, 0.2443, 0.2479, 0.2498, 0.2506, 0.2556, 0.2591, 0.2623, 0.2685, 0.2735",\
                 "0.2386, 0.2411, 0.246, 0.2493, 0.2503, 0.2552, 0.2582, 0.2618, 0.2654, 0.2717",\
                 "0.2612, 0.2571, 0.2539, 0.2523, 0.2529, 0.2552, 0.2578, 0.2609, 0.2685, 0.2726",\
                 "0.3251, 0.3138, 0.2947, 0.2801, 0.2707, 0.2678, 0.2672, 0.2677, 0.2735, 0.2788",\
                 "0.4343, 0.4174, 0.38, 0.347, 0.3215, 0.3051, 0.2947, 0.2902, 0.287, 0.2914",\
                 "0.5927, 0.5706, 0.518, 0.4612, 0.4178, 0.3812, 0.3545, 0.337, 0.3252, 0.321",\
                 "0.8037, 0.7784, 0.7133, 0.6324, 0.5617, 0.5063, 0.4594, 0.422, 0.3974, 0.3856",\
                 "1.072, 1.043, 0.9667, 0.8661, 0.7677, 0.6849, 0.616, 0.5579, 0.5092, 0.4815",\
                 "1.401, 1.37, 1.284, 1.166, 1.04, 0.9248, 0.8329, 0.7483, 0.6786, 0.6316",\
                 "1.795, 1.76, 1.665, 1.53, 1.38, 1.232, 1.106, 0.9998, 0.9069, 0.8478");
        }
      }

      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.007591, 0.03073, 0.07491, 0.1437, 0.2403, 0.3674, 0.5275, 0.723, 0.956");
          values("0.06411, 0.09354, 0.1881, 0.3668, 0.6451, 1.034, 1.547, 2.195, 2.985, 3.926",\
                 "0.07378, 0.1018, 0.1971, 0.3768, 0.6548, 1.044, 1.557, 2.203, 2.993, 3.931",\
                 "0.09609, 0.1332, 0.2344, 0.4134, 0.6911, 1.081, 1.595, 2.242, 3.029, 3.973",\
                 "0.1136, 0.164, 0.2971, 0.4904, 0.7656, 1.154, 1.667, 2.313, 3.102, 4.039",\
                 "0.1241, 0.1883, 0.355, 0.5925, 0.8894, 1.274, 1.782, 2.425, 3.215, 4.15",\
                 "0.1264, 0.2052, 0.4059, 0.688, 1.038, 1.449, 1.954, 2.593, 3.377, 4.315",\
                 "0.1208, 0.213, 0.4489, 0.777, 1.178, 1.651, 2.186, 2.821, 3.6, 4.534",\
                 "0.1055, 0.2118, 0.4825, 0.8566, 1.312, 1.841, 2.445, 3.114, 3.889, 4.816",\
                 "0.0811, 0.1992, 0.5052, 0.9269, 1.437, 2.025, 2.691, 3.435, 4.248, 5.171",\
                 "0.0452, 0.1776, 0.5184, 0.9864, 1.552, 2.201, 2.929, 3.743, 4.636, 5.599");
        }

        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.007591, 0.03073, 0.07491, 0.1437, 0.2403, 0.3674, 0.5275, 0.723, 0.956");
          values("0.05065, 0.07755, 0.1688, 0.3419, 0.6097, 0.9887, 1.485, 2.109, 2.874, 3.784",\
                 "0.0633, 0.08995, 0.1818, 0.355, 0.6238, 1.002, 1.499, 2.122, 2.885, 3.795",\
                 "0.1002, 0.1361, 0.2324, 0.4042, 0.6727, 1.049, 1.546, 2.172, 2.935, 3.842",\
                 "0.1459, 0.1954, 0.3228, 0.5054, 0.7704, 1.146, 1.639, 2.264, 3.029, 3.938",\
                 "0.1982, 0.2627, 0.4251, 0.6507, 0.9309, 1.302, 1.792, 2.416, 3.176, 4.085",\
                 "0.2576, 0.3369, 0.5364, 0.8084, 1.14, 1.528, 2.015, 2.631, 3.388, 4.295",\
                 "0.3242, 0.4188, 0.6567, 0.9777, 1.362, 1.808, 2.313, 2.925, 3.678, 4.579",\
                 "0.3981, 0.5085, 0.7849, 1.157, 1.598, 2.102, 2.671, 3.303, 4.05, 4.944",\
                 "0.4797, 0.607, 0.9216, 1.346, 1.845, 2.411, 3.043, 3.744, 4.511, 5.4",\
                 "0.5698, 0.713, 1.068, 1.542, 2.103, 2.734, 3.432, 4.201, 5.041, 5.95");
        }

        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.007591, 0.03073, 0.07491, 0.1437, 0.2403, 0.3674, 0.5275, 0.723, 0.956");
          values("0.05841, 0.104, 0.2621, 0.5648, 1.035, 1.701, 2.572, 3.661, 5.025, 6.628",\
                 "0.05832, 0.1035, 0.2621, 0.5665, 1.036, 1.695, 2.573, 3.667, 4.996, 6.613",\
                 "0.09062, 0.1334, 0.2648, 0.5651, 1.038, 1.7, 2.576, 3.679, 5.017, 6.629",\
                 "0.1429, 0.1955, 0.3406, 0.5832, 1.038, 1.7, 2.576, 3.677, 5.023, 6.615",\
                 "0.211, 0.2779, 0.449, 0.7088, 1.081, 1.698, 2.573, 3.673, 5.021, 6.609",\
                 "0.2908, 0.3758, 0.5812, 0.8722, 1.26, 1.781, 2.576, 3.671, 5.015, 6.617",\
                 "0.381, 0.4888, 0.736, 1.064, 1.488, 2.012, 2.699, 3.688, 5.008, 6.608",\
                 "0.483, 0.6088, 0.9026, 1.285, 1.743, 2.316, 2.99, 3.858, 5.054, 6.607",\
                 "0.593, 0.7392, 1.086, 1.523, 2.034, 2.643, 3.373, 4.209, 5.271, 6.685",\
                 "0.716, 0.8828, 1.284, 1.779, 2.349, 3.004, 3.774, 4.672, 5.693, 6.959");
        }

        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.007591, 0.03073, 0.07491, 0.1437, 0.2403, 0.3674, 0.5275, 0.723, 0.956");
          values("0.06541, 0.1114, 0.2735, 0.5828, 1.068, 1.746, 2.635, 3.757, 5.128, 6.768",\
                 "0.0669, 0.1115, 0.2734, 0.584, 1.065, 1.743, 2.638, 3.757, 5.126, 6.758",\
                 "0.1023, 0.144, 0.2773, 0.5853, 1.065, 1.744, 2.634, 3.755, 5.124, 6.76",\
                 "0.1566, 0.207, 0.349, 0.5981, 1.068, 1.743, 2.632, 3.754, 5.124, 6.775",\
                 "0.2241, 0.2897, 0.4565, 0.7108, 1.1, 1.742, 2.641, 3.758, 5.127, 6.773",\
                 "0.301, 0.385, 0.5872, 0.872, 1.255, 1.802, 2.636, 3.755, 5.125, 6.758",\
                 "0.3914, 0.491, 0.7386, 1.067, 1.481, 2.002, 2.73, 3.763, 5.123, 6.777",\
                 "0.4932, 0.6146, 0.9008, 1.28, 1.73, 2.292, 2.975, 3.901, 5.145, 6.756",\
                 "0.6084, 0.7442, 1.08, 1.514, 2.019, 2.614, 3.332, 4.189, 5.318, 6.799",\
                 "0.7334, 0.891, 1.273, 1.764, 2.332, 2.972, 3.735, 4.617, 5.66, 7.021");
        }
      }
    }
  }

