/*
 * 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_mcu9t5v0__inv_3) {
    area : 22.579200 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.091 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.008523, 0.03493, 0.08536, 0.1639, 0.2742, 0.4192, 0.602, 0.825, 1.091");
          values("-0.01421, -0.01219, -0.009399, -0.008149, -0.007332, -0.007165, -0.007096, -0.00696, -0.006885, -0.006881",\
                 "-0.01488, -0.01337, -0.01064, -0.008765, -0.008183, -0.007833, -0.007405, -0.007209, -0.007208, -0.007118",\
                 "0.006607, 0.00398, 0.0002004, -0.002351, -0.003901, -0.00485, -0.005474, -0.005836, -0.006123, -0.006267",\
                 "0.07422, 0.06491, 0.0464, 0.03104, 0.02014, 0.01268, 0.007562, 0.003991, 0.001405, -0.0003155",\
                 "0.195, 0.1793, 0.1434, 0.108, 0.08026, 0.05974, 0.04452, 0.03324, 0.02493, 0.01866",\
                 "0.372, 0.3517, 0.2999, 0.2408, 0.1901, 0.1493, 0.1183, 0.094, 0.07529, 0.0606",\
                 "0.6097, 0.5853, 0.5201, 0.4381, 0.3603, 0.2945, 0.2412, 0.1983, 0.1639, 0.136",\
                 "0.9118, 0.8842, 0.8074, 0.7045, 0.5992, 0.5036, 0.4233, 0.3565, 0.3011, 0.2556",\
                 "1.283, 1.252, 1.166, 1.044, 0.912, 0.7862, 0.6739, 0.5782, 0.4977, 0.4291",\
                 "1.726, 1.693, 1.598, 1.461, 1.303, 1.146, 1.001, 0.8716, 0.7612, 0.665");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.008523, 0.03493, 0.08536, 0.1639, 0.2742, 0.4192, 0.602, 0.825, 1.091");
          values("0.1952, 0.1995, 0.2055, 0.2088, 0.2137, 0.2134, 0.2159, 0.2203, 0.2239, 0.2248",\
                 "0.1953, 0.1974, 0.2022, 0.207, 0.2096, 0.2123, 0.2155, 0.2199, 0.2224, 0.2255",\
                 "0.2291, 0.2244, 0.2176, 0.2138, 0.2133, 0.2145, 0.2166, 0.2207, 0.2242, 0.2291",\
                 "0.3131, 0.3013, 0.279, 0.2586, 0.2443, 0.2364, 0.2328, 0.2315, 0.2322, 0.2327",\
                 "0.4535, 0.4368, 0.3974, 0.3582, 0.3237, 0.2976, 0.2814, 0.2685, 0.261, 0.2569",\
                 "0.6558, 0.6348, 0.5809, 0.5193, 0.4646, 0.4164, 0.3765, 0.3477, 0.3279, 0.3109",\
                 "0.9251, 0.9007, 0.8351, 0.7507, 0.6718, 0.6004, 0.5359, 0.4849, 0.4438, 0.412",\
                 "1.266, 1.239, 1.163, 1.061, 0.9534, 0.8563, 0.7696, 0.6905, 0.6228, 0.569",\
                 "1.684, 1.654, 1.57, 1.451, 1.318, 1.191, 1.077, 0.9723, 0.8773, 0.7948",\
                 "2.184, 2.152, 2.06, 1.925, 1.77, 1.613, 1.466, 1.335, 1.21, 1.1");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.008523, 0.03493, 0.08536, 0.1639, 0.2742, 0.4192, 0.602, 0.825, 1.091");
          values("0.03168, 0.04274, 0.08041, 0.1515, 0.2624, 0.4178, 0.6209, 0.8791, 1.193, 1.565",\
                 "0.03752, 0.04946, 0.08723, 0.1585, 0.2692, 0.4238, 0.6284, 0.8851, 1.2, 1.572",\
                 "0.04043, 0.05965, 0.1103, 0.1842, 0.2945, 0.4489, 0.6524, 0.9104, 1.223, 1.598",\
                 "0.02903, 0.05631, 0.1272, 0.2252, 0.3454, 0.4988, 0.7016, 0.9581, 1.272, 1.645",\
                 "0.00081, 0.03572, 0.1269, 0.2529, 0.4041, 0.5788, 0.7816, 1.037, 1.348, 1.721",\
                 "-0.04588, -0.00346, 0.1073, 0.2612, 0.4455, 0.655, 0.8895, 1.15, 1.46, 1.83",\
                 "-0.1126, -0.0628, 0.0673, 0.2466, 0.466, 0.7123, 0.9853, 1.285, 1.611, 1.98",\
                 "-0.2005, -0.1439, 0.0046, 0.2128, 0.4625, 0.7468, 1.06, 1.401, 1.771, 2.169",\
                 "-0.3122, -0.248, -0.081, 0.1514, 0.4342, 0.7559, 1.111, 1.496, 1.908, 2.353",\
                 "-0.4474, -0.3764, -0.1915, 0.0671, 0.3801, 0.7373, 1.135, 1.564, 2.024, 2.515");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.008523, 0.03493, 0.08536, 0.1639, 0.2742, 0.4192, 0.602, 0.825, 1.091");
          values("0.04329, 0.06346, 0.1312, 0.2574, 0.4525, 0.7268, 1.086, 1.54, 2.091, 2.749",\
                 "0.05254, 0.07183, 0.1392, 0.2654, 0.4608, 0.7355, 1.094, 1.549, 2.1, 2.763",\
                 "0.086, 0.1093, 0.1764, 0.3001, 0.4948, 0.768, 1.128, 1.581, 2.135, 2.795",\
                 "0.1364, 0.1674, 0.2503, 0.3773, 0.567, 0.837, 1.194, 1.645, 2.196, 2.857",\
                 "0.203, 0.2429, 0.3463, 0.4951, 0.6904, 0.9541, 1.307, 1.755, 2.305, 2.962",\
                 "0.2871, 0.3364, 0.4621, 0.6378, 0.8584, 1.13, 1.477, 1.917, 2.46, 3.112",\
                 "0.3903, 0.4489, 0.5976, 0.8035, 1.054, 1.354, 1.707, 2.143, 2.678, 3.325",\
                 "0.5142, 0.5815, 0.7542, 0.9917, 1.276, 1.607, 1.993, 2.436, 2.965, 3.603",\
                 "0.6605, 0.7364, 0.9345, 1.203, 1.522, 1.89, 2.308, 2.786, 3.325, 3.956",\
                 "0.8307, 0.9153, 1.136, 1.438, 1.795, 2.201, 2.656, 3.169, 3.745, 4.385");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.008523, 0.03493, 0.08536, 0.1639, 0.2742, 0.4192, 0.602, 0.825, 1.091");
          values("0.02685, 0.0451, 0.1086, 0.23, 0.4203, 0.6871, 1.037, 1.482, 2.021, 2.658",\
                 "0.03237, 0.04666, 0.1089, 0.2309, 0.4202, 0.6863, 1.037, 1.479, 2.02, 2.658",\
                 "0.05686, 0.07682, 0.1315, 0.2328, 0.4202, 0.686, 1.036, 1.481, 2.016, 2.664",\
                 "0.09636, 0.1236, 0.1921, 0.2939, 0.4409, 0.6865, 1.038, 1.479, 2.019, 2.663",\
                 "0.1495, 0.1855, 0.2726, 0.3926, 0.5475, 0.7475, 1.049, 1.476, 2.017, 2.661",\
                 "0.216, 0.262, 0.3706, 0.5138, 0.6884, 0.903, 1.163, 1.523, 2.021, 2.657",\
                 "0.2942, 0.353, 0.4856, 0.6556, 0.857, 1.092, 1.371, 1.698, 2.124, 2.69",\
                 "0.3842, 0.4542, 0.6144, 0.82, 1.046, 1.309, 1.612, 1.961, 2.359, 2.851",\
                 "0.485, 0.5694, 0.7616, 0.9928, 1.257, 1.553, 1.883, 2.259, 2.681, 3.157",\
                 "0.6002, 0.6964, 0.9232, 1.19, 1.501, 1.823, 2.184, 2.586, 3.038, 3.54");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.008523, 0.03493, 0.08536, 0.1639, 0.2742, 0.4192, 0.602, 0.825, 1.091");
          values("0.05299, 0.08697, 0.2064, 0.436, 0.7921, 1.293, 1.947, 2.783, 3.801, 4.996",\
                 "0.05403, 0.08716, 0.2067, 0.4352, 0.7934, 1.294, 1.949, 2.78, 3.801, 4.993",\
                 "0.07796, 0.1084, 0.2094, 0.4354, 0.7912, 1.29, 1.949, 2.784, 3.791, 4.996",\
                 "0.1177, 0.1527, 0.2555, 0.4461, 0.7906, 1.29, 1.955, 2.786, 3.801, 4.989",\
                 "0.1697, 0.2141, 0.329, 0.5172, 0.8156, 1.292, 1.954, 2.774, 3.787, 4.993",\
                 "0.2338, 0.2866, 0.4246, 0.6252, 0.9128, 1.336, 1.95, 2.775, 3.797, 5.006",\
                 "0.309, 0.3726, 0.5366, 0.7608, 1.059, 1.46, 2.016, 2.784, 3.788, 5.007",\
                 "0.394, 0.4714, 0.6614, 0.9172, 1.235, 1.645, 2.172, 2.879, 3.807, 5.002",\
                 "0.493, 0.582, 0.7986, 1.093, 1.438, 1.862, 2.398, 3.059, 3.93, 5.027",\
                 "0.6062, 0.7034, 0.951, 1.28, 1.666, 2.114, 2.662, 3.329, 4.139, 5.174");
        }
      }
    }
  }

