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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.404 ;
      max_transition : 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01068, 0.04467, 0.1096, 0.2107, 0.3526, 0.5393, 0.7745, 1.062, 1.404");
          values("-0.01117, -0.009055, -0.007278, -0.006714, -0.006434, -0.00635, -0.006283, -0.006288, -0.006244, -0.006249",\
                 "-0.01495, -0.01239, -0.009219, -0.007755, -0.007051, -0.006689, -0.006561, -0.006469, -0.006379, -0.006307",\
                 "-0.007276, -0.008348, -0.008272, -0.007607, -0.007052, -0.006813, -0.006545, -0.006501, -0.006392, -0.006348",\
                 "0.02497, 0.01836, 0.008496, 0.002639, -0.0006351, -0.002496, -0.003624, -0.004308, -0.004783, -0.005115",\
                 "0.08406, 0.07195, 0.04962, 0.03193, 0.02021, 0.01253, 0.007425, 0.003906, 0.001565, -0.0001359",\
                 "0.171, 0.1547, 0.1197, 0.08743, 0.06259, 0.04503, 0.03252, 0.02353, 0.01704, 0.01219",\
                 "0.2877, 0.2681, 0.2219, 0.1732, 0.1325, 0.1014, 0.07776, 0.06007, 0.04677, 0.03649",\
                 "0.4365, 0.4139, 0.3581, 0.293, 0.2345, 0.1866, 0.149, 0.1188, 0.09573, 0.07762",\
                 "0.619, 0.5938, 0.5296, 0.4493, 0.3721, 0.3053, 0.2501, 0.2058, 0.1697, 0.1404",\
                 "0.8372, 0.8098, 0.7383, 0.6445, 0.548, 0.4609, 0.3861, 0.3238, 0.2725, 0.2298");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01068, 0.04467, 0.1096, 0.2107, 0.3526, 0.5393, 0.7745, 1.062, 1.404");
          values("0.1233, 0.126, 0.1283, 0.1296, 0.1303, 0.1329, 0.1367, 0.1372, 0.1413, 0.1564",\
                 "0.1216, 0.1234, 0.1267, 0.1285, 0.1299, 0.1323, 0.1344, 0.1385, 0.1439, 0.1514",\
                 "0.1363, 0.133, 0.1298, 0.1296, 0.1302, 0.1323, 0.1354, 0.1379, 0.1442, 0.1516",\
                 "0.1757, 0.1665, 0.1529, 0.144, 0.1395, 0.1389, 0.139, 0.1415, 0.1432, 0.1594",\
                 "0.2422, 0.2281, 0.2011, 0.181, 0.1662, 0.158, 0.1529, 0.1498, 0.1525, 0.164",\
                 "0.3383, 0.3201, 0.2809, 0.2439, 0.2168, 0.1966, 0.1822, 0.1738, 0.1707, 0.1828",\
                 "0.4666, 0.4451, 0.3949, 0.3413, 0.2977, 0.2649, 0.238, 0.2177, 0.2058, 0.2193",\
                 "0.6293, 0.6047, 0.5453, 0.4748, 0.412, 0.3633, 0.3225, 0.2885, 0.2653, 0.2865",\
                 "0.8286, 0.8018, 0.7336, 0.6481, 0.5659, 0.4946, 0.4416, 0.3915, 0.3552, 0.3897",\
                 "1.067, 1.038, 0.9628, 0.8634, 0.7619, 0.6685, 0.5911, 0.5313, 0.4881, 0.5806");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01068, 0.04467, 0.1096, 0.2107, 0.3526, 0.5393, 0.7745, 1.062, 1.404");
          values("0.04849, 0.07871, 0.1815, 0.3755, 0.6789, 1.103, 1.662, 2.366, 3.222, 4.247",\
                 "0.06077, 0.09139, 0.1946, 0.3896, 0.693, 1.118, 1.674, 2.38, 3.238, 4.263",\
                 "0.07787, 0.1263, 0.2461, 0.4407, 0.7426, 1.167, 1.726, 2.431, 3.29, 4.312",\
                 "0.08581, 0.1526, 0.317, 0.5424, 0.8434, 1.267, 1.825, 2.526, 3.387, 4.41",\
                 "0.08126, 0.1676, 0.3747, 0.6604, 1.004, 1.425, 1.98, 2.682, 3.537, 4.563",\
                 "0.063, 0.1686, 0.4204, 0.7609, 1.177, 1.652, 2.206, 2.905, 3.758, 4.778",\
                 "0.0292, 0.1539, 0.4511, 0.8497, 1.33, 1.887, 2.504, 3.203, 4.054, 5.07",\
                 "-0.0212, 0.123, 0.4653, 0.9219, 1.468, 2.1, 2.809, 3.577, 4.432, 5.443",\
                 "-0.0908, 0.0733, 0.4613, 0.978, 1.589, 2.295, 3.086, 3.956, 4.889, 5.909",\
                 "-0.1785, 0.0054, 0.4386, 1.013, 1.697, 2.474, 3.344, 4.305, 5.345, 6.45");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01068, 0.04467, 0.1096, 0.2107, 0.3526, 0.5393, 0.7745, 1.062, 1.404");
          values("0.04393, 0.07825, 0.1936, 0.413, 0.7538, 1.232, 1.86, 2.654, 3.621, 4.771",\
                 "0.06094, 0.09487, 0.2111, 0.4304, 0.7715, 1.25, 1.879, 2.672, 3.638, 4.792",\
                 "0.1028, 0.1522, 0.277, 0.4951, 0.8359, 1.314, 1.942, 2.736, 3.699, 4.856",\
                 "0.1574, 0.2259, 0.3928, 0.6255, 0.9631, 1.439, 2.068, 2.856, 3.827, 4.977",\
                 "0.224, 0.3132, 0.524, 0.814, 1.169, 1.641, 2.266, 3.055, 4.016, 5.174",\
                 "0.303, 0.4134, 0.6721, 1.018, 1.441, 1.931, 2.551, 3.336, 4.295, 5.449",\
                 "0.3959, 0.5273, 0.8368, 1.242, 1.73, 2.296, 2.933, 3.713, 4.671, 5.816",\
                 "0.5027, 0.6569, 1.016, 1.484, 2.038, 2.681, 3.4, 4.197, 5.15, 6.287",\
                 "0.6252, 0.8012, 1.211, 1.744, 2.369, 3.082, 3.889, 4.771, 5.739, 6.872",\
                 "0.7639, 0.9626, 1.424, 2.021, 2.723, 3.51, 4.396, 5.375, 6.427, 7.577");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01068, 0.04467, 0.1096, 0.2107, 0.3526, 0.5393, 0.7745, 1.062, 1.404");
          values("0.04226, 0.09111, 0.2627, 0.591, 1.102, 1.812, 2.761, 3.936, 5.409, 7.117",\
                 "0.047, 0.09128, 0.2624, 0.5909, 1.102, 1.819, 2.766, 3.941, 5.381, 7.114",\
                 "0.08522, 0.1376, 0.2731, 0.5902, 1.1, 1.818, 2.761, 3.935, 5.384, 7.14",\
                 "0.1391, 0.2063, 0.378, 0.6285, 1.1, 1.816, 2.764, 3.95, 5.405, 7.128",\
                 "0.207, 0.2937, 0.5008, 0.7996, 1.18, 1.821, 2.755, 3.951, 5.392, 7.137",\
                 "0.2842, 0.3966, 0.646, 0.9928, 1.428, 1.957, 2.775, 3.942, 5.399, 7.119",\
                 "0.3744, 0.5112, 0.8148, 1.204, 1.705, 2.286, 2.98, 3.997, 5.396, 7.127",\
                 "0.477, 0.6382, 0.998, 1.446, 1.994, 2.658, 3.392, 4.267, 5.488, 7.131",\
                 "0.5942, 0.779, 1.195, 1.711, 2.312, 3.035, 3.87, 4.767, 5.84, 7.284",\
                 "0.7208, 0.934, 1.408, 1.999, 2.663, 3.441, 4.349, 5.358, 6.429, 7.712");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01068, 0.04467, 0.1096, 0.2107, 0.3526, 0.5393, 0.7745, 1.062, 1.404");
          values("0.05282, 0.1104, 0.3122, 0.6973, 1.299, 2.141, 3.249, 4.65, 6.353, 8.383",\
                 "0.05846, 0.1103, 0.3119, 0.6975, 1.298, 2.14, 3.25, 4.648, 6.352, 8.386",\
                 "0.09734, 0.1517, 0.316, 0.6974, 1.298, 2.141, 3.252, 4.648, 6.348, 8.393",\
                 "0.1529, 0.2205, 0.4045, 0.7117, 1.297, 2.139, 3.247, 4.651, 6.35, 8.382",\
                 "0.2215, 0.3108, 0.527, 0.8484, 1.33, 2.139, 3.247, 4.641, 6.358, 8.384",\
                 "0.3016, 0.4134, 0.6742, 1.042, 1.515, 2.201, 3.249, 4.643, 6.355, 8.377",\
                 "0.3954, 0.5312, 0.838, 1.25, 1.787, 2.434, 3.341, 4.645, 6.346, 8.375",\
                 "0.5022, 0.658, 1.026, 1.491, 2.074, 2.791, 3.623, 4.774, 6.358, 8.378",\
                 "0.6214, 0.8052, 1.225, 1.755, 2.387, 3.167, 4.068, 5.114, 6.529, 8.409",\
                 "0.757, 0.964, 1.439, 2.046, 2.738, 3.565, 4.547, 5.633, 6.924, 8.616");
        }
      }
    }
  }

