/*
 * 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_2) {
    area : 13.171200 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.4601 ;
      max_transition : 4 ;
      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004169, 0.01529, 0.03654, 0.06963, 0.1161, 0.1772, 0.2542, 0.3481, 0.4601");
          values("-0.02062, -0.01861, -0.01592, -0.01456, -0.01401, -0.01358, -0.01351, -0.01339, -0.01337, -0.01336",\
                 "-0.02242, -0.02067, -0.01744, -0.01545, -0.01451, -0.014, -0.01377, -0.01369, -0.01355, -0.01349",\
                 "-0.01083, -0.01192, -0.01312, -0.01338, -0.01338, -0.01352, -0.01351, -0.01351, -0.01346, -0.0135",\
                 "0.03087, 0.02488, 0.01382, 0.005066, -0.0007267, -0.004538, -0.006893, -0.008677, -0.009748, -0.01071",\
                 "0.107, 0.09674, 0.07356, 0.05138, 0.03418, 0.0221, 0.01329, 0.00703, 0.002498, -0.0007784",\
                 "0.2196, 0.2057, 0.1717, 0.1334, 0.1013, 0.07582, 0.05645, 0.0419, 0.03068, 0.02234",\
                 "0.371, 0.3544, 0.3107, 0.2568, 0.2062, 0.164, 0.1299, 0.103, 0.08194, 0.06518",\
                 "0.5637, 0.5449, 0.493, 0.4247, 0.3554, 0.2935, 0.2418, 0.1986, 0.1636, 0.1353",\
                 "0.8005, 0.7798, 0.7215, 0.6397, 0.5516, 0.4692, 0.3968, 0.3348, 0.283, 0.2394",\
                 "1.084, 1.061, 0.9969, 0.9041, 0.7987, 0.695, 0.6002, 0.5173, 0.4452, 0.3823");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004169, 0.01529, 0.03654, 0.06963, 0.1161, 0.1772, 0.2542, 0.3481, 0.4601");
          values("0.1509, 0.1529, 0.156, 0.1566, 0.1587, 0.1593, 0.1627, 0.1641, 0.1498, 0.1485",\
                 "0.1525, 0.1535, 0.1555, 0.1536, 0.1582, 0.1532, 0.1527, 0.1506, 0.1548, 0.1525",\
                 "0.1724, 0.1684, 0.1652, 0.1597, 0.1583, 0.1578, 0.1568, 0.1566, 0.1553, 0.154",\
                 "0.2227, 0.2153, 0.1995, 0.1849, 0.1766, 0.1707, 0.1661, 0.1631, 0.1593, 0.159",\
                 "0.3075, 0.2962, 0.2701, 0.2426, 0.2196, 0.2048, 0.1927, 0.1846, 0.1773, 0.1725",\
                 "0.4301, 0.4163, 0.3805, 0.3396, 0.2995, 0.2683, 0.2465, 0.2281, 0.2123, 0.202",\
                 "0.5932, 0.5772, 0.5339, 0.4782, 0.4247, 0.3739, 0.3347, 0.3021, 0.2763, 0.256",\
                 "0.7997, 0.782, 0.733, 0.6642, 0.5924, 0.5249, 0.4659, 0.4176, 0.3763, 0.3415",\
                 "1.053, 1.034, 0.9792, 0.8994, 0.8112, 0.7254, 0.6477, 0.5766, 0.5158, 0.466",\
                 "1.355, 1.335, 1.275, 1.186, 1.083, 0.9773, 0.8792, 0.7891, 0.7078, 0.6315");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004169, 0.01529, 0.03654, 0.06963, 0.1161, 0.1772, 0.2542, 0.3481, 0.4601");
          values("0.04136, 0.05724, 0.1112, 0.2131, 0.3708, 0.592, 0.8832, 1.249, 1.696, 2.231",\
                 "0.04582, 0.06163, 0.1157, 0.2176, 0.3756, 0.5965, 0.8881, 1.254, 1.702, 2.235",\
                 "0.05771, 0.07808, 0.1354, 0.2361, 0.3936, 0.6148, 0.9056, 1.272, 1.719, 2.253",\
                 "0.06836, 0.09533, 0.1682, 0.2772, 0.4325, 0.6519, 0.9415, 1.308, 1.755, 2.287",\
                 "0.07586, 0.1098, 0.2003, 0.3311, 0.4983, 0.715, 1.002, 1.366, 1.812, 2.344",\
                 "0.07928, 0.1205, 0.2294, 0.3836, 0.5768, 0.8089, 1.093, 1.453, 1.896, 2.427",\
                 "0.07763, 0.1256, 0.254, 0.4335, 0.6531, 0.915, 1.217, 1.575, 2.013, 2.539",\
                 "0.0712, 0.1271, 0.2739, 0.478, 0.7277, 1.019, 1.353, 1.732, 2.167, 2.689",\
                 "0.0597, 0.1224, 0.2863, 0.5175, 0.7967, 1.119, 1.486, 1.901, 2.361, 2.88",\
                 "0.0422, 0.1118, 0.2958, 0.5519, 0.8599, 1.218, 1.618, 2.066, 2.565, 3.109");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004169, 0.01529, 0.03654, 0.06963, 0.1161, 0.1772, 0.2542, 0.3481, 0.4601");
          values("0.03354, 0.04896, 0.1018, 0.201, 0.3555, 0.572, 0.8572, 1.214, 1.65, 2.171",\
                 "0.04075, 0.05586, 0.1083, 0.2079, 0.3618, 0.5784, 0.8624, 1.223, 1.659, 2.18",\
                 "0.06109, 0.08064, 0.1351, 0.2333, 0.3868, 0.6026, 0.8865, 1.245, 1.682, 2.204",\
                 "0.08681, 0.1133, 0.1836, 0.2871, 0.4382, 0.6521, 0.9352, 1.293, 1.73, 2.25",\
                 "0.1163, 0.1506, 0.2394, 0.3646, 0.5234, 0.7344, 1.015, 1.37, 1.805, 2.324",\
                 "0.1497, 0.1918, 0.3005, 0.451, 0.635, 0.855, 1.132, 1.484, 1.917, 2.434",\
                 "0.1868, 0.2368, 0.3659, 0.5429, 0.7561, 1.005, 1.292, 1.64, 2.069, 2.582",\
                 "0.2274, 0.2861, 0.4357, 0.6406, 0.8847, 1.165, 1.483, 1.843, 2.267, 2.776",\
                 "0.272, 0.3393, 0.5099, 0.7428, 1.019, 1.333, 1.685, 2.078, 2.515, 3.019",\
                 "0.3206, 0.3966, 0.5892, 0.8501, 1.159, 1.509, 1.897, 2.325, 2.798, 3.315");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004169, 0.01529, 0.03654, 0.06963, 0.1161, 0.1772, 0.2542, 0.3481, 0.4601");
          values("0.03764, 0.06313, 0.1512, 0.3208, 0.5831, 0.9554, 1.436, 2.049, 2.792, 3.681",\
                 "0.03783, 0.06272, 0.1514, 0.3204, 0.5837, 0.9553, 1.436, 2.048, 2.793, 3.68",\
                 "0.05772, 0.08116, 0.1543, 0.3198, 0.583, 0.9528, 1.438, 2.05, 2.797, 3.687",\
                 "0.08986, 0.1179, 0.1975, 0.3329, 0.5839, 0.9525, 1.435, 2.049, 2.796, 3.687",\
                 "0.1315, 0.1676, 0.2606, 0.4034, 0.612, 0.9538, 1.438, 2.049, 2.795, 3.686",\
                 "0.1811, 0.2265, 0.3386, 0.4975, 0.7124, 1.004, 1.444, 2.047, 2.795, 3.685",\
                 "0.2372, 0.2935, 0.4286, 0.6104, 0.8412, 1.136, 1.519, 2.066, 2.795, 3.686",\
                 "0.2994, 0.3674, 0.5294, 0.7374, 0.9916, 1.304, 1.684, 2.169, 2.829, 3.688",\
                 "0.3688, 0.4496, 0.6394, 0.8792, 1.161, 1.493, 1.895, 2.367, 2.961, 3.74",\
                 "0.4464, 0.5372, 0.7576, 1.032, 1.347, 1.706, 2.126, 2.622, 3.194, 3.906");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004169, 0.01529, 0.03654, 0.06963, 0.1161, 0.1772, 0.2542, 0.3481, 0.4601");
          values("0.04246, 0.06853, 0.161, 0.336, 0.6092, 0.994, 1.498, 2.134, 2.906, 3.83",\
                 "0.04443, 0.06871, 0.1608, 0.3361, 0.6101, 0.9934, 1.497, 2.136, 2.911, 3.84",\
                 "0.06504, 0.0883, 0.1634, 0.3372, 0.6113, 0.9947, 1.5, 2.136, 2.913, 3.837",\
                 "0.09706, 0.1255, 0.2048, 0.3466, 0.6114, 0.9949, 1.5, 2.136, 2.912, 3.839",\
                 "0.1377, 0.1748, 0.267, 0.4106, 0.632, 0.9952, 1.5, 2.134, 2.912, 3.839",\
                 "0.1848, 0.2304, 0.3444, 0.5035, 0.7182, 1.032, 1.503, 2.136, 2.911, 3.838",\
                 "0.2388, 0.2936, 0.4314, 0.6154, 0.8484, 1.144, 1.559, 2.145, 2.911, 3.838",\
                 "0.3, 0.3644, 0.5272, 0.7406, 0.9954, 1.307, 1.699, 2.223, 2.93, 3.838",\
                 "0.3686, 0.4434, 0.6302, 0.8776, 1.162, 1.493, 1.898, 2.391, 3.033, 3.871",\
                 "0.4452, 0.5302, 0.7408, 1.021, 1.343, 1.705, 2.124, 2.627, 3.226, 3.998");
        }
      }
    }
  }

