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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "5.5794e-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.01456 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 11 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.419 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01079, 0.04514, 0.1107, 0.213, 0.3564, 0.5451, 0.7828, 1.073, 1.419");
          values("-0.009085, -0.007479, -0.006431, -0.006087, -0.005979, -0.005913, -0.005888, -0.005862, -0.005844, -0.005849",\
                 "-0.01367, -0.01103, -0.008151, -0.00696, -0.006482, -0.006236, -0.0061, -0.006039, -0.005948, -0.005926",\
                 "-0.01532, -0.01407, -0.01114, -0.00888, -0.007669, -0.007013, -0.006619, -0.006398, -0.006251, -0.006169",\
                 "-0.007649, -0.009251, -0.009931, -0.009068, -0.008139, -0.007407, -0.007036, -0.006682, -0.006493, -0.006376",\
                 "0.009025, 0.005009, -0.001047, -0.004314, -0.005398, -0.005774, -0.005944, -0.005949, -0.005917, -0.005982",\
                 "0.0353, 0.02877, 0.01716, 0.008251, 0.002909, -0.000169, -0.001977, -0.003033, -0.003748, -0.004251",\
                 "0.07129, 0.06276, 0.04546, 0.03017, 0.01904, 0.01163, 0.006787, 0.003563, 0.001298, -0.0002747",\
                 "0.1178, 0.1073, 0.08474, 0.06223, 0.04455, 0.0315, 0.02219, 0.01564, 0.01096, 0.00739",\
                 "0.1752, 0.163, 0.1354, 0.1058, 0.08048, 0.06088, 0.04583, 0.03455, 0.02636, 0.02003",\
                 "0.2443, 0.2306, 0.1983, 0.1619, 0.1286, 0.101, 0.07974, 0.06272, 0.04937, 0.0387");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01079, 0.04514, 0.1107, 0.213, 0.3564, 0.5451, 0.7828, 1.073, 1.419");
          values("0.1007, 0.1027, 0.1039, 0.1055, 0.1069, 0.1089, 0.11, 0.1145, 0.1173, 0.1543",\
                 "0.09691, 0.09922, 0.1021, 0.1048, 0.1061, 0.1074, 0.1112, 0.1142, 0.1183, 0.1551",\
                 "0.09904, 0.09886, 0.1001, 0.1021, 0.1047, 0.1074, 0.1097, 0.1144, 0.1183, 0.1583",\
                 "0.1098, 0.107, 0.1043, 0.1032, 0.1047, 0.1065, 0.1088, 0.1111, 0.1196, 0.1597",\
                 "0.1294, 0.1243, 0.1156, 0.111, 0.1082, 0.1086, 0.1115, 0.1123, 0.1201, 0.1707",\
                 "0.159, 0.1509, 0.1369, 0.126, 0.1198, 0.1164, 0.1148, 0.1153, 0.1216, 0.1972",\
                 "0.1988, 0.1885, 0.1694, 0.1509, 0.1397, 0.1314, 0.1265, 0.1223, 0.1309, 0.2462",\
                 "0.25, 0.2377, 0.2123, 0.1878, 0.1678, 0.1566, 0.1457, 0.1375, 0.1558, 0.3508",\
                 "0.3131, 0.299, 0.2675, 0.2361, 0.2084, 0.1881, 0.1728, 0.164, 0.2114, 0.5757",\
                 "0.3891, 0.3731, 0.3367, 0.297, 0.2618, 0.2313, 0.2127, 0.209, 0.3568, 1.092");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01079, 0.04514, 0.1107, 0.213, 0.3564, 0.5451, 0.7828, 1.073, 1.419");
          values("0.06552, 0.1077, 0.2515, 0.5251, 0.9494, 1.546, 2.333, 3.318, 4.53, 5.968",\
                 "0.08392, 0.1271, 0.2727, 0.5463, 0.9728, 1.568, 2.353, 3.342, 4.552, 5.987",\
                 "0.1177, 0.1869, 0.3493, 0.6238, 1.05, 1.647, 2.433, 3.421, 4.632, 6.068",\
                 "0.1367, 0.2349, 0.4709, 0.7755, 1.201, 1.798, 2.583, 3.57, 4.782, 6.22",\
                 "0.1421, 0.2677, 0.574, 0.9768, 1.44, 2.035, 2.82, 3.809, 5.015, 6.457",\
                 "0.1306, 0.2855, 0.656, 1.156, 1.734, 2.371, 3.155, 4.142, 5.349, 6.786",\
                 "0.1011, 0.2851, 0.7209, 1.311, 2.005, 2.77, 3.598, 4.583, 5.788, 7.224",\
                 "0.0508, 0.2644, 0.7684, 1.442, 2.248, 3.146, 4.11, 5.143, 6.346, 7.781",\
                 "-0.0224, 0.2215, 0.7957, 1.553, 2.462, 3.489, 4.599, 5.778, 7.029, 8.462",\
                 "-0.1202, 0.1541, 0.7965, 1.645, 2.654, 3.801, 5.056, 6.392, 7.795, 9.277");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01079, 0.04514, 0.1107, 0.213, 0.3564, 0.5451, 0.7828, 1.073, 1.419");
          values("0.05779, 0.1032, 0.2574, 0.5511, 1.007, 1.648, 2.487, 3.552, 4.845, 6.386",\
                 "0.08225, 0.1281, 0.2842, 0.5782, 1.034, 1.675, 2.518, 3.58, 4.87, 6.418",\
                 "0.146, 0.2152, 0.3806, 0.6749, 1.132, 1.773, 2.615, 3.677, 4.971, 6.515",\
                 "0.2249, 0.323, 0.5561, 0.8639, 1.32, 1.959, 2.801, 3.861, 5.162, 6.705",\
                 "0.3211, 0.4487, 0.7529, 1.148, 1.617, 2.255, 3.098, 4.159, 5.453, 6.998",\
                 "0.4355, 0.5938, 0.9649, 1.46, 2.025, 2.674, 3.514, 4.573, 5.867, 7.406",\
                 "0.569, 0.7592, 1.2, 1.787, 2.471, 3.216, 4.064, 5.121, 6.411, 7.956",\
                 "0.7224, 0.9462, 1.459, 2.133, 2.932, 3.813, 4.753, 5.816, 7.107, 8.644",\
                 "0.8981, 1.155, 1.742, 2.505, 3.412, 4.425, 5.512, 6.659, 7.955, 9.493",\
                 "1.095, 1.387, 2.051, 2.907, 3.914, 5.055, 6.288, 7.593, 8.962, 10.5");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01079, 0.04514, 0.1107, 0.213, 0.3564, 0.5451, 0.7828, 1.073, 1.419");
          values("0.05725, 0.1252, 0.3606, 0.811, 1.514, 2.498, 3.793, 5.428, 7.422, 9.785",\
                 "0.05958, 0.1248, 0.3614, 0.8108, 1.513, 2.498, 3.794, 5.426, 7.416, 9.795",\
                 "0.1148, 0.1804, 0.3662, 0.8115, 1.514, 2.499, 3.795, 5.426, 7.419, 9.789",\
                 "0.175, 0.2744, 0.496, 0.836, 1.515, 2.499, 3.795, 5.432, 7.418, 9.786",\
                 "0.2462, 0.3716, 0.6724, 1.045, 1.57, 2.503, 3.807, 5.423, 7.422, 9.795",\
                 "0.3272, 0.4802, 0.8492, 1.331, 1.859, 2.6, 3.806, 5.436, 7.419, 9.8",\
                 "0.4174, 0.602, 1.031, 1.618, 2.268, 2.971, 3.955, 5.446, 7.435, 9.798",\
                 "0.5166, 0.7324, 1.232, 1.901, 2.682, 3.513, 4.415, 5.664, 7.462, 9.816",\
                 "0.6278, 0.875, 1.444, 2.192, 3.099, 4.068, 5.088, 6.21, 7.748, 9.88",\
                 "0.748, 1.027, 1.672, 2.5, 3.51, 4.631, 5.798, 7.02, 8.39, 10.23");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01079, 0.04514, 0.1107, 0.213, 0.3564, 0.5451, 0.7828, 1.073, 1.419");
          values("0.06531, 0.1398, 0.4021, 0.9042, 1.687, 2.788, 4.223, 6.056, 8.266, 10.91",\
                 "0.0687, 0.14, 0.4026, 0.9043, 1.684, 2.784, 4.232, 6.053, 8.257, 10.92",\
                 "0.1232, 0.1899, 0.4034, 0.9026, 1.687, 2.786, 4.224, 6.051, 8.263, 10.92",\
                 "0.1864, 0.2835, 0.506, 0.9094, 1.685, 2.782, 4.222, 6.036, 8.277, 10.92",\
                 "0.262, 0.3838, 0.6842, 1.06, 1.7, 2.781, 4.223, 6.045, 8.272, 10.92",\
                 "0.347, 0.4966, 0.8634, 1.344, 1.896, 2.808, 4.218, 6.032, 8.263, 10.9",\
                 "0.4426, 0.6224, 1.047, 1.633, 2.281, 3.048, 4.268, 6.036, 8.259, 10.9",\
                 "0.5504, 0.7594, 1.25, 1.924, 2.703, 3.528, 4.554, 6.104, 8.257, 10.9",\
                 "0.6666, 0.9078, 1.471, 2.221, 3.122, 4.088, 5.11, 6.446, 8.354, 10.91",\
                 "0.796, 1.072, 1.703, 2.532, 3.538, 4.658, 5.824, 7.074, 8.736, 11.03");
        }
      }
    }
  }

