/*
 * 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_16) {
    area : 74.636800 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "6.11676e-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.05564 ;
      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 : 3.298 ;
      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.02376, 0.1036, 0.2562, 0.4939, 0.8274, 1.266, 1.819, 2.494, 3.298");
          values("-0.006317, -0.005442, -0.004848, -0.004606, -0.004558, -0.004493, -0.004465, -0.004468, -0.004444, -0.004445",\
                 "-0.01112, -0.008939, -0.006485, -0.005491, -0.005025, -0.004775, -0.004678, -0.004584, -0.004561, -0.004521",\
                 "-0.01716, -0.01488, -0.01058, -0.007791, -0.006366, -0.005604, -0.005198, -0.00499, -0.004819, -0.004723",\
                 "-0.02003, -0.01852, -0.01472, -0.01106, -0.008666, -0.007209, -0.006403, -0.005846, -0.005516, -0.005244",\
                 "-0.01939, -0.01888, -0.01693, -0.01369, -0.01091, -0.008922, -0.00766, -0.006785, -0.006204, -0.005841",\
                 "-0.01602, -0.01656, -0.01647, -0.01481, -0.01244, -0.01043, -0.008895, -0.007801, -0.007029, -0.006493",\
                 "-0.00999, -0.0113, -0.01338, -0.01372, -0.01261, -0.01112, -0.009653, -0.008511, -0.007649, -0.007045",\
                 "-0.001314, -0.003564, -0.007649, -0.01031, -0.01096, -0.01055, -0.009586, -0.008712, -0.007934, -0.007366",\
                 "0.009927, 0.006822, 0.000805, -0.004138, -0.007105, -0.008297, -0.008301, -0.008012, -0.00755, -0.0072",\
                 "0.02411, 0.02017, 0.01206, 0.004533, -0.000908, -0.003946, -0.005437, -0.005998, -0.006164, -0.006565");
        }

        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.02376, 0.1036, 0.2562, 0.4939, 0.8274, 1.266, 1.819, 2.494, 3.298");
          values("0.1513, 0.1527, 0.1543, 0.1545, 0.1556, 0.1565, 0.1585, 0.1607, 0.164, 0.2137",\
                 "0.1455, 0.1482, 0.1518, 0.1534, 0.1548, 0.1558, 0.1583, 0.1589, 0.1627, 0.2159",\
                 "0.1414, 0.1432, 0.1472, 0.1508, 0.1539, 0.1549, 0.1574, 0.1584, 0.1659, 0.2207",\
                 "0.1409, 0.1414, 0.1442, 0.1476, 0.1515, 0.1526, 0.1546, 0.156, 0.1657, 0.2315",\
                 "0.1432, 0.1428, 0.1434, 0.1453, 0.1483, 0.1524, 0.1542, 0.1607, 0.1647, 0.2612",\
                 "0.1475, 0.1464, 0.145, 0.1455, 0.1471, 0.1497, 0.1544, 0.1579, 0.1673, 0.2926",\
                 "0.1542, 0.1522, 0.149, 0.1468, 0.1491, 0.149, 0.1517, 0.1555, 0.1861, 0.3735",\
                 "0.1635, 0.1604, 0.1555, 0.1515, 0.1502, 0.1517, 0.1528, 0.1584, 0.2158, 0.5573",\
                 "0.1755, 0.1713, 0.1642, 0.1588, 0.1538, 0.1546, 0.1558, 0.1669, 0.3064, 0.9457",\
                 "0.1907, 0.1853, 0.1755, 0.1674, 0.1613, 0.1583, 0.1624, 0.2235, 0.6251, 1.702");
        }
      }

      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.02376, 0.1036, 0.2562, 0.4939, 0.8274, 1.266, 1.819, 2.494, 3.298");
          values("0.08542, 0.1176, 0.2282, 0.4389, 0.7665, 1.225, 1.829, 2.593, 3.518, 4.631",\
                 "0.1114, 0.1445, 0.2566, 0.468, 0.7953, 1.255, 1.86, 2.618, 3.552, 4.659",\
                 "0.1804, 0.2315, 0.358, 0.5702, 0.8983, 1.358, 1.964, 2.726, 3.65, 4.765",\
                 "0.2337, 0.3156, 0.5145, 0.7665, 1.096, 1.556, 2.16, 2.922, 3.853, 4.957",\
                 "0.2639, 0.3781, 0.658, 1.011, 1.403, 1.866, 2.47, 3.231, 4.164, 5.272",\
                 "0.2668, 0.4151, 0.779, 1.24, 1.751, 2.295, 2.907, 3.668, 4.597, 5.706",\
                 "0.2413, 0.4225, 0.8724, 1.448, 2.084, 2.76, 3.468, 4.243, 5.172, 6.28",\
                 "0.1855, 0.399, 0.9363, 1.626, 2.394, 3.211, 4.062, 4.947, 5.896, 7.002",\
                 "0.0985, 0.3437, 0.9665, 1.776, 2.679, 3.639, 4.642, 5.68, 6.751, 7.888",\
                 "-0.0246, 0.2553, 0.9613, 1.89, 2.932, 4.041, 5.2, 6.4, 7.633, 8.904");
        }

        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.02376, 0.1036, 0.2562, 0.4939, 0.8274, 1.266, 1.819, 2.494, 3.298");
          values("0.1078, 0.1572, 0.326, 0.6453, 1.144, 1.843, 2.757, 3.914, 5.334, 7.017",\
                 "0.1375, 0.1882, 0.3595, 0.6803, 1.179, 1.879, 2.794, 3.957, 5.364, 7.054",\
                 "0.2502, 0.3097, 0.4827, 0.8053, 1.306, 2.006, 2.922, 4.085, 5.492, 7.184",\
                 "0.3986, 0.4944, 0.721, 1.048, 1.549, 2.247, 3.17, 4.322, 5.733, 7.423",\
                 "0.5692, 0.704, 1.026, 1.425, 1.928, 2.63, 3.55, 4.706, 6.12, 7.805",\
                 "0.7633, 0.9377, 1.36, 1.887, 2.462, 3.165, 4.085, 5.245, 6.66, 8.339",\
                 "0.9839, 1.198, 1.723, 2.385, 3.105, 3.87, 4.792, 5.952, 7.366, 9.047",\
                 "1.235, 1.487, 2.115, 2.916, 3.791, 4.71, 5.683, 6.842, 8.255, 9.937",\
                 "1.516, 1.807, 2.537, 3.48, 4.516, 5.606, 6.73, 7.931, 9.344, 11.03",\
                 "1.835, 2.162, 2.994, 4.076, 5.28, 6.546, 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.02376, 0.1036, 0.2562, 0.4939, 0.8274, 1.266, 1.819, 2.494, 3.298");
          values("0.08119, 0.1353, 0.3243, 0.6836, 1.247, 2.035, 3.071, 4.378, 5.973, 7.875",\
                 "0.08078, 0.1348, 0.323, 0.6841, 1.247, 2.038, 3.075, 4.378, 5.975, 7.87",\
                 "0.1431, 0.1887, 0.3309, 0.685, 1.245, 2.034, 3.077, 4.385, 5.973, 7.877",\
                 "0.2386, 0.3086, 0.4767, 0.7292, 1.245, 2.032, 3.069, 4.382, 5.983, 7.879",\
                 "0.3478, 0.4458, 0.678, 0.9754, 1.357, 2.044, 3.066, 4.377, 5.984, 7.886",\
                 "0.4656, 0.5954, 0.9, 1.282, 1.711, 2.24, 3.109, 4.38, 5.971, 7.887",\
                 "0.5862, 0.7538, 1.139, 1.612, 2.139, 2.71, 3.402, 4.469, 5.982, 7.873",\
                 "0.7164, 0.9154, 1.392, 1.968, 2.599, 3.274, 3.997, 4.867, 6.143, 7.899",\
                 "0.8558, 1.085, 1.652, 2.337, 3.082, 3.869, 4.712, 5.59, 6.654, 8.154",\
                 "1.011, 1.266, 1.92, 2.724, 3.587, 4.496, 5.454, 6.456, 7.51, 8.792");
        }

        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.02376, 0.1036, 0.2562, 0.4939, 0.8274, 1.266, 1.819, 2.494, 3.298");
          values("0.124, 0.2055, 0.4918, 1.037, 1.889, 3.086, 4.649, 6.625, 9.059, 11.93",\
                 "0.1231, 0.2047, 0.4914, 1.037, 1.887, 3.081, 4.648, 6.634, 9.04, 11.95",\
                 "0.1731, 0.2263, 0.4913, 1.04, 1.894, 3.081, 4.648, 6.634, 9.04, 11.93",\
                 "0.2837, 0.3582, 0.5528, 1.04, 1.896, 3.082, 4.655, 6.634, 9.045, 11.92",\
                 "0.4068, 0.5148, 0.7696, 1.136, 1.896, 3.093, 4.655, 6.65, 9.041, 11.98",\
                 "0.537, 0.683, 1.022, 1.439, 2.02, 3.098, 4.665, 6.661, 9.058, 11.91",\
                 "0.6738, 0.8584, 1.291, 1.812, 2.391, 3.245, 4.68, 6.653, 9.086, 11.92",\
                 "0.8164, 1.041, 1.572, 2.212, 2.906, 3.674, 4.85, 6.674, 9.064, 11.97",\
                 "0.9666, 1.231, 1.861, 2.63, 3.45, 4.32, 5.33, 6.862, 9.102, 11.96",\
                 "1.124, 1.423, 2.159, 3.064, 4.026, 5.024, 6.074, 7.382, 9.314, 12");
        }
      }
    }
  }

