/*
 * 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 : "0.0718135" ;
    }

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 3.393 ;
      max_transition : 3.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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.02441, 0.1066, 0.2636, 0.5081, 0.8512, 1.303, 1.871, 2.566, 3.393");
          values("-0.2076, -0.1866, -0.1577, -0.1431, -0.1366, -0.1328, -0.1306, -0.1296, -0.1284, -0.1278",\
                 "-0.2024, -0.1895, -0.165, -0.1476, -0.1399, -0.1338, -0.1312, -0.1301, -0.1291, -0.1286",\
                 "-0.009516, -0.03347, -0.0687, -0.09157, -0.1025, -0.1111, -0.1154, -0.1187, -0.1206, -0.1212",\
                 "0.5641, 0.4839, 0.3256, 0.1901, 0.09663, 0.03257, -0.01064, -0.03962, -0.06033, -0.0747",\
                 "1.57, 1.443, 1.144, 0.8439, 0.6049, 0.4263, 0.296, 0.2009, 0.1313, 0.07902",\
                 "3.038, 2.875, 2.456, 1.964, 1.535, 1.186, 0.9165, 0.7077, 0.5472, 0.4228",\
                 "4.999, 4.808, 4.289, 3.621, 2.97, 2.412, 1.955, 1.584, 1.286, 1.049",\
                 "7.486, 7.273, 6.675, 5.852, 4.98, 4.182, 3.496, 2.922, 2.443, 2.051",\
                 "10.53, 10.3, 9.636, 8.678, 7.6, 6.554, 5.615, 4.799, 4.102, 3.513",\
                 "14.18, 13.93, 13.2, 12.13, 10.87, 9.579, 8.36, 7.282, 6.333, 5.509");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.02441, 0.1066, 0.2636, 0.5081, 0.8512, 1.303, 1.871, 2.566, 3.393");
          values("1.528, 1.546, 1.577, 1.598, 1.607, 1.62, 1.632, 1.65, 1.635, 1.636",\
                 "1.571, 1.573, 1.586, 1.592, 1.603, 1.607, 1.628, 1.644, 1.679, 1.691",\
                 "1.859, 1.812, 1.747, 1.695, 1.663, 1.651, 1.665, 1.677, 1.684, 1.719",\
                 "2.528, 2.433, 2.236, 2.071, 1.942, 1.856, 1.81, 1.787, 1.778, 1.79",\
                 "3.632, 3.497, 3.171, 2.845, 2.572, 2.356, 2.201, 2.112, 2.025, 1.983",\
                 "5.204, 5.049, 4.626, 4.106, 3.664, 3.278, 2.975, 2.75, 2.57, 2.439",\
                 "7.293, 7.115, 6.622, 5.938, 5.278, 4.713, 4.222, 3.795, 3.483, 3.226",\
                 "9.937, 9.742, 9.187, 8.377, 7.497, 6.704, 6.017, 5.395, 4.885, 4.436",\
                 "13.17, 12.96, 12.36, 11.43, 10.38, 9.331, 8.398, 7.579, 6.849, 6.201",\
                 "17.03, 16.81, 16.15, 15.15, 13.93, 12.65, 11.44, 10.39, 9.423, 8.555");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.02441, 0.1066, 0.2636, 0.5081, 0.8512, 1.303, 1.871, 2.566, 3.393");
          values("0.03466, 0.04818, 0.09395, 0.1798, 0.313, 0.4998, 0.7452, 1.055, 1.432, 1.883",\
                 "0.03812, 0.05133, 0.097, 0.1828, 0.3162, 0.503, 0.7482, 1.058, 1.436, 1.885",\
                 "0.04601, 0.06336, 0.1117, 0.1963, 0.3289, 0.515, 0.7605, 1.07, 1.446, 1.898",\
                 "0.05234, 0.07538, 0.1367, 0.2276, 0.3575, 0.5417, 0.7856, 1.094, 1.47, 1.921",\
                 "0.05572, 0.08458, 0.1604, 0.2693, 0.4084, 0.589, 0.8298, 1.135, 1.511, 1.958",\
                 "0.05553, 0.09035, 0.1808, 0.3092, 0.4693, 0.6619, 0.8987, 1.2, 1.572, 2.018",\
                 "0.05161, 0.0921, 0.1973, 0.3456, 0.5287, 0.7445, 0.9955, 1.293, 1.66, 2.101",\
                 "0.0446, 0.09, 0.2094, 0.3775, 0.5843, 0.826, 1.102, 1.416, 1.779, 2.215",\
                 "0.033, 0.0835, 0.2166, 0.4048, 0.6347, 0.9031, 1.207, 1.548, 1.929, 2.362",\
                 "0.0157, 0.072, 0.2184, 0.4277, 0.6806, 0.9756, 1.308, 1.679, 2.088, 2.542");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.02441, 0.1066, 0.2636, 0.5081, 0.8512, 1.303, 1.871, 2.566, 3.393");
          values("0.02658, 0.0389, 0.08097, 0.1602, 0.2833, 0.4559, 0.6827, 0.9695, 1.317, 1.734",\
                 "0.0327, 0.04468, 0.08624, 0.1652, 0.2882, 0.4606, 0.6882, 0.9744, 1.323, 1.74",\
                 "0.04743, 0.06405, 0.1086, 0.1858, 0.3077, 0.4795, 0.7063, 0.9911, 1.342, 1.756",\
                 "0.06601, 0.08856, 0.147, 0.2305, 0.3501, 0.5196, 0.7438, 1.028, 1.378, 1.791",\
                 "0.08701, 0.116, 0.19, 0.2929, 0.4205, 0.5868, 0.8082, 1.091, 1.437, 1.85",\
                 "0.1103, 0.1457, 0.2359, 0.3601, 0.5103, 0.687, 0.9057, 1.183, 1.526, 1.937",\
                 "0.1357, 0.1779, 0.2848, 0.4308, 0.6057, 0.8075, 1.038, 1.312, 1.651, 2.057",\
                 "0.1637, 0.2126, 0.3362, 0.5049, 0.7052, 0.9346, 1.192, 1.479, 1.815, 2.218",\
                 "0.194, 0.2496, 0.3903, 0.5814, 0.8087, 1.067, 1.354, 1.669, 2.019, 2.418",\
                 "0.2273, 0.2896, 0.4474, 0.6607, 0.9152, 1.202, 1.521, 1.868, 2.247, 2.662");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.02441, 0.1066, 0.2636, 0.5081, 0.8512, 1.303, 1.871, 2.566, 3.393");
          values("0.0297, 0.05167, 0.128, 0.2744, 0.5025, 0.8224, 1.242, 1.777, 2.424, 3.198",\
                 "0.0308, 0.05147, 0.1284, 0.2753, 0.5023, 0.8229, 1.243, 1.774, 2.425, 3.191",\
                 "0.04838, 0.06836, 0.1318, 0.2745, 0.5029, 0.8228, 1.244, 1.777, 2.422, 3.198",\
                 "0.07848, 0.1037, 0.1707, 0.2875, 0.5025, 0.8228, 1.244, 1.776, 2.419, 3.197",\
                 "0.1191, 0.1521, 0.2325, 0.3514, 0.5309, 0.8236, 1.244, 1.775, 2.423, 3.196",\
                 "0.1688, 0.2104, 0.3093, 0.4429, 0.621, 0.872, 1.25, 1.773, 2.422, 3.194",\
                 "0.2275, 0.2785, 0.3985, 0.5539, 0.7456, 0.9906, 1.321, 1.793, 2.418, 3.194",\
                 "0.2948, 0.3562, 0.4986, 0.681, 0.8942, 1.149, 1.469, 1.886, 2.455, 3.195",\
                 "0.3728, 0.444, 0.6096, 0.82, 1.061, 1.338, 1.665, 2.065, 2.576, 3.254",\
                 "0.4578, 0.5394, 0.7322, 0.9726, 1.244, 1.549, 1.894, 2.299, 2.787, 3.4");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.02441, 0.1066, 0.2636, 0.5081, 0.8512, 1.303, 1.871, 2.566, 3.393");
          values("0.03361, 0.05519, 0.1312, 0.2763, 0.5021, 0.8204, 1.236, 1.76, 2.404, 3.166",\
                 "0.03723, 0.05561, 0.1311, 0.2756, 0.5018, 0.8183, 1.236, 1.759, 2.409, 3.164",\
                 "0.05662, 0.07574, 0.1359, 0.2767, 0.5016, 0.8183, 1.24, 1.764, 2.401, 3.178",\
                 "0.08598, 0.1111, 0.1761, 0.2897, 0.5016, 0.818, 1.235, 1.761, 2.401, 3.179",\
                 "0.1247, 0.156, 0.2372, 0.3517, 0.5291, 0.8198, 1.235, 1.76, 2.399, 3.166",\
                 "0.1699, 0.2111, 0.3104, 0.4437, 0.6146, 0.8632, 1.242, 1.76, 2.401, 3.165",\
                 "0.2241, 0.2722, 0.3922, 0.5498, 0.739, 0.9744, 1.305, 1.776, 2.401, 3.165",\
                 "0.2876, 0.3442, 0.4858, 0.6686, 0.8838, 1.133, 1.441, 1.861, 2.431, 3.167",\
                 "0.3594, 0.4254, 0.5884, 0.7996, 1.046, 1.318, 1.638, 2.025, 2.541, 3.215",\
                 "0.442, 0.5154, 0.699, 0.9392, 1.216, 1.522, 1.862, 2.254, 2.734, 3.347");
        }
      }
    }
  }

