/*
 * 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_3) {
    area : 17.561600 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.6806 ;
      max_transition : 2.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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.005691, 0.02216, 0.0536, 0.1026, 0.1713, 0.2618, 0.3757, 0.5148, 0.6806");
          values("-0.03626, -0.03264, -0.0263, -0.02293, -0.02123, -0.02033, -0.01996, -0.01969, -0.01953, -0.01941",\
                 "-0.03442, -0.03201, -0.02702, -0.02361, -0.02192, -0.02083, -0.02028, -0.01998, -0.01975, -0.01959",\
                 "0.002808, -0.001592, -0.008864, -0.01268, -0.0147, -0.01644, -0.01727, -0.01753, -0.01814, -0.01827",\
                 "0.1049, 0.0915, 0.06351, 0.03972, 0.02246, 0.0109, 0.002905, -0.002477, -0.006325, -0.009015",\
                 "0.2821, 0.2615, 0.2102, 0.1579, 0.1161, 0.0837, 0.05982, 0.04227, 0.02962, 0.01965",\
                 "0.5404, 0.513, 0.4427, 0.3587, 0.2842, 0.2227, 0.1737, 0.1364, 0.1068, 0.08391",\
                 "0.8846, 0.8529, 0.7659, 0.6528, 0.5411, 0.4445, 0.3636, 0.2974, 0.2437, 0.2003",\
                 "1.321, 1.286, 1.186, 1.047, 0.8985, 0.7613, 0.6429, 0.5412, 0.4554, 0.3844",\
                 "1.858, 1.819, 1.708, 1.547, 1.364, 1.184, 1.023, 0.8803, 0.7573, 0.6526",\
                 "2.499, 2.456, 2.335, 2.154, 1.943, 1.723, 1.515, 1.329, 1.163, 1.017");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.005691, 0.02216, 0.0536, 0.1026, 0.1713, 0.2618, 0.3757, 0.5148, 0.6806");
          values("0.2814, 0.2842, 0.2883, 0.2912, 0.2921, 0.2944, 0.3006, 0.2983, 0.303, 0.3112",\
                 "0.2909, 0.2913, 0.2899, 0.2922, 0.2935, 0.2973, 0.2995, 0.3071, 0.3068, 0.3057",\
                 "0.3428, 0.3351, 0.3216, 0.3133, 0.306, 0.3054, 0.3044, 0.3011, 0.3068, 0.3217",\
                 "0.4616, 0.4455, 0.4123, 0.3802, 0.3572, 0.3416, 0.3369, 0.3352, 0.3343, 0.3398",\
                 "0.6561, 0.6343, 0.5775, 0.5229, 0.4724, 0.4351, 0.4089, 0.3869, 0.3745, 0.3706",\
                 "0.9341, 0.9084, 0.8379, 0.7478, 0.6705, 0.6001, 0.5442, 0.5057, 0.4757, 0.4504",\
                 "1.303, 1.274, 1.189, 1.072, 0.9587, 0.8603, 0.7681, 0.6954, 0.6363, 0.595",\
                 "1.769, 1.737, 1.642, 1.504, 1.355, 1.219, 1.097, 0.9847, 0.8904, 0.815",\
                 "2.339, 2.305, 2.204, 2.049, 1.866, 1.686, 1.528, 1.377, 1.248, 1.131",\
                 "3.02, 2.984, 2.875, 2.705, 2.497, 2.278, 2.072, 1.886, 1.714, 1.56");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.005691, 0.02216, 0.0536, 0.1026, 0.1713, 0.2618, 0.3757, 0.5148, 0.6806");
          values("0.02747, 0.03789, 0.07351, 0.1404, 0.244, 0.389, 0.5797, 0.8198, 1.113, 1.463",\
                 "0.0305, 0.04078, 0.07614, 0.1429, 0.2466, 0.3915, 0.5823, 0.8227, 1.116, 1.466",\
                 "0.03746, 0.05072, 0.08835, 0.1541, 0.257, 0.4014, 0.5922, 0.8322, 1.125, 1.475",\
                 "0.04459, 0.06209, 0.1089, 0.1795, 0.2804, 0.4236, 0.6129, 0.8526, 1.145, 1.494",\
                 "0.05002, 0.07208, 0.1302, 0.2137, 0.3216, 0.4622, 0.6492, 0.8867, 1.178, 1.526",\
                 "0.0531, 0.07998, 0.1498, 0.2486, 0.3715, 0.5211, 0.7054, 0.9398, 1.229, 1.574",\
                 "0.05314, 0.08509, 0.1671, 0.282, 0.4223, 0.5884, 0.7836, 1.015, 1.3, 1.644",\
                 "0.05026, 0.08695, 0.1816, 0.3129, 0.4724, 0.6571, 0.8701, 1.114, 1.396, 1.736",\
                 "0.044, 0.086, 0.193, 0.3407, 0.5193, 0.7251, 0.9577, 1.221, 1.518, 1.854",\
                 "0.0354, 0.0813, 0.2012, 0.3658, 0.5626, 0.7907, 1.046, 1.33, 1.647, 1.999");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.005691, 0.02216, 0.0536, 0.1026, 0.1713, 0.2618, 0.3757, 0.5148, 0.6806");
          values("0.02342, 0.03368, 0.06899, 0.1357, 0.2393, 0.3847, 0.5757, 0.8162, 1.11, 1.46",\
                 "0.02812, 0.03813, 0.07296, 0.1395, 0.2431, 0.3885, 0.5798, 0.8214, 1.114, 1.464",\
                 "0.04034, 0.05343, 0.08978, 0.1549, 0.2575, 0.4025, 0.5936, 0.8335, 1.127, 1.48",\
                 "0.05645, 0.07407, 0.1202, 0.1884, 0.2886, 0.432, 0.6211, 0.8613, 1.154, 1.503",\
                 "0.07505, 0.09765, 0.1557, 0.2376, 0.3419, 0.4821, 0.6691, 0.9071, 1.199, 1.548",\
                 "0.09602, 0.1238, 0.195, 0.2929, 0.4127, 0.5575, 0.741, 0.9757, 1.264, 1.612",\
                 "0.1192, 0.1522, 0.2363, 0.3518, 0.4908, 0.652, 0.8407, 1.071, 1.357, 1.699",\
                 "0.1444, 0.1833, 0.2812, 0.4144, 0.5736, 0.7555, 0.9619, 1.198, 1.479, 1.819",\
                 "0.1721, 0.2165, 0.3285, 0.4799, 0.6595, 0.864, 1.092, 1.347, 1.634, 1.969",\
                 "0.202, 0.2519, 0.3784, 0.5485, 0.7501, 0.9769, 1.229, 1.506, 1.813, 2.154");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.005691, 0.02216, 0.0536, 0.1026, 0.1713, 0.2618, 0.3757, 0.5148, 0.6806");
          values("0.02392, 0.04013, 0.09751, 0.2077, 0.3785, 0.6174, 0.9296, 1.327, 1.808, 2.386",\
                 "0.02569, 0.04023, 0.09798, 0.2079, 0.3778, 0.6159, 0.9316, 1.325, 1.809, 2.384",\
                 "0.03836, 0.05346, 0.1007, 0.2075, 0.3776, 0.616, 0.9301, 1.326, 1.809, 2.386",\
                 "0.05942, 0.078, 0.1284, 0.2168, 0.3773, 0.6156, 0.9303, 1.325, 1.807, 2.385",\
                 "0.0866, 0.1107, 0.1711, 0.2615, 0.3973, 0.6167, 0.9299, 1.327, 1.809, 2.387",\
                 "0.1191, 0.1493, 0.2228, 0.3244, 0.4614, 0.6504, 0.9339, 1.324, 1.807, 2.385",\
                 "0.1546, 0.1928, 0.2825, 0.4004, 0.5459, 0.7334, 0.9844, 1.337, 1.81, 2.385",\
                 "0.1949, 0.2413, 0.3486, 0.4856, 0.648, 0.843, 1.087, 1.404, 1.833, 2.392",\
                 "0.2402, 0.2936, 0.4202, 0.5794, 0.7616, 0.9736, 1.224, 1.529, 1.917, 2.425",\
                 "0.2906, 0.351, 0.4984, 0.6794, 0.885, 1.116, 1.382, 1.693, 2.066, 2.529");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.005691, 0.02216, 0.0536, 0.1026, 0.1713, 0.2618, 0.3757, 0.5148, 0.6806");
          values("0.02762, 0.04476, 0.1048, 0.2198, 0.3987, 0.6504, 0.9823, 1.396, 1.909, 2.518",\
                 "0.03054, 0.04518, 0.105, 0.2197, 0.4001, 0.6507, 0.9845, 1.401, 1.91, 2.513",\
                 "0.04381, 0.05876, 0.1078, 0.2204, 0.4002, 0.6521, 0.9832, 1.399, 1.906, 2.52",\
                 "0.06442, 0.08352, 0.1347, 0.2274, 0.4004, 0.6522, 0.9829, 1.401, 1.914, 2.523",\
                 "0.0901, 0.1146, 0.1772, 0.269, 0.4138, 0.6517, 0.9822, 1.4, 1.909, 2.519",\
                 "0.1202, 0.1505, 0.2274, 0.3315, 0.4698, 0.675, 0.9842, 1.399, 1.911, 2.518",\
                 "0.1542, 0.1925, 0.284, 0.4087, 0.5536, 0.7472, 1.021, 1.406, 1.908, 2.516",\
                 "0.1927, 0.2361, 0.3448, 0.488, 0.6552, 0.8536, 1.108, 1.453, 1.918, 2.519",\
                 "0.2358, 0.2866, 0.4116, 0.575, 0.7668, 0.982, 1.239, 1.557, 1.984, 2.535",\
                 "0.2834, 0.3422, 0.4838, 0.67, 0.8826, 1.123, 1.392, 1.713, 2.106, 2.615");
        }
      }
    }
  }

