/*
 * 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_4) {
    area : 28.224000 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.475 ;
      max_transition : 2.8 ;
      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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.01118, 0.0469, 0.1151, 0.2214, 0.3705, 0.5668, 0.814, 1.116, 1.475");
          values("-0.09361, -0.08568, -0.07359, -0.06633, -0.06344, -0.06195, -0.06113, -0.06081, -0.06048, -0.06028",\
                 "-0.07791, -0.07591, -0.0693, -0.06521, -0.06202, -0.06158, -0.06093, -0.06021, -0.06012, -0.05997",\
                 "0.03798, 0.0213, -0.004505, -0.02277, -0.0346, -0.04192, -0.0469, -0.0508, -0.05228, -0.05444",\
                 "0.3211, 0.2829, 0.2034, 0.134, 0.08259, 0.04624, 0.02042, 0.001793, -0.01177, -0.02163",\
                 "0.7932, 0.7381, 0.6069, 0.4665, 0.3506, 0.2619, 0.1937, 0.1421, 0.1024, 0.07225",\
                 "1.469, 1.402, 1.227, 1.015, 0.8173, 0.656, 0.5252, 0.421, 0.337, 0.2703",\
                 "2.369, 2.29, 2.082, 1.803, 1.518, 1.268, 1.057, 0.8804, 0.7342, 0.6145",\
                 "3.506, 3.42, 3.182, 2.849, 2.481, 2.132, 1.826, 1.563, 1.339, 1.147",\
                 "4.902, 4.807, 4.543, 4.16, 3.717, 3.272, 2.858, 2.494, 2.176, 1.901",\
                 "6.566, 6.466, 6.179, 5.755, 5.244, 4.708, 4.186, 3.712, 3.286, 2.912");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.01118, 0.0469, 0.1151, 0.2214, 0.3705, 0.5668, 0.814, 1.116, 1.475");
          values("0.5546, 0.5638, 0.5825, 0.5951, 0.6065, 0.607, 0.622, 0.6275, 0.6471, 0.649",\
                 "0.5871, 0.5845, 0.5853, 0.5964, 0.6005, 0.6153, 0.6143, 0.6176, 0.6438, 0.6413",\
                 "0.7423, 0.7223, 0.6825, 0.6572, 0.6401, 0.6312, 0.6347, 0.6374, 0.6383, 0.6534",\
                 "1.077, 1.035, 0.9519, 0.8668, 0.7985, 0.7588, 0.7221, 0.7221, 0.6944, 0.6886",\
                 "1.614, 1.559, 1.427, 1.288, 1.152, 1.04, 0.9575, 0.9086, 0.872, 0.8443",\
                 "2.375, 2.312, 2.143, 1.935, 1.742, 1.549, 1.399, 1.268, 1.181, 1.106",\
                 "3.382, 3.311, 3.116, 2.844, 2.582, 2.33, 2.078, 1.884, 1.704, 1.562",\
                 "4.655, 4.58, 4.361, 4.04, 3.692, 3.359, 3.046, 2.748, 2.484, 2.265",\
                 "6.21, 6.128, 5.89, 5.53, 5.109, 4.701, 4.303, 3.919, 3.565, 3.245",\
                 "8.067, 7.978, 7.727, 7.333, 6.852, 6.346, 5.872, 5.413, 4.959, 4.545");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.01118, 0.0469, 0.1151, 0.2214, 0.3705, 0.5668, 0.814, 1.116, 1.475");
          values("0.01786, 0.02487, 0.04875, 0.09354, 0.1631, 0.2605, 0.3885, 0.5497, 0.7465, 0.9812",\
                 "0.01939, 0.02793, 0.05187, 0.09661, 0.1661, 0.2633, 0.3914, 0.5527, 0.7493, 0.9841",\
                 "0.01972, 0.03189, 0.063, 0.1089, 0.1776, 0.2744, 0.4023, 0.5633, 0.7599, 0.9947",\
                 "0.0138, 0.03066, 0.07241, 0.1302, 0.2027, 0.2982, 0.425, 0.5851, 0.7812, 1.016",\
                 "0.00028, 0.0217, 0.07483, 0.1473, 0.2349, 0.3384, 0.4636, 0.6223, 0.8174, 1.051",\
                 "-0.02213, 0.00396, 0.06849, 0.156, 0.261, 0.3817, 0.5199, 0.6782, 0.871, 1.102",\
                 "-0.05439, -0.02359, 0.0518, 0.155, 0.2779, 0.4182, 0.575, 0.7503, 0.9461, 1.175",\
                 "-0.09752, -0.06173, 0.02534, 0.1436, 0.2842, 0.4444, 0.6226, 0.8186, 1.034, 1.27",\
                 "-0.1521, -0.1117, -0.0124, 0.1204, 0.2796, 0.459, 0.66, 0.8785, 1.116, 1.375",\
                 "-0.2191, -0.1739, -0.0625, 0.0859, 0.2623, 0.4629, 0.6856, 0.9275, 1.189, 1.47");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.01118, 0.0469, 0.1151, 0.2214, 0.3705, 0.5668, 0.814, 1.116, 1.475");
          values("0.02226, 0.03366, 0.07281, 0.1461, 0.2593, 0.4178, 0.6269, 0.8888, 1.21, 1.592",\
                 "0.02798, 0.03892, 0.07708, 0.1499, 0.2631, 0.4224, 0.6303, 0.8926, 1.214, 1.595",\
                 "0.0446, 0.0586, 0.09708, 0.1675, 0.2792, 0.4368, 0.645, 0.9076, 1.227, 1.608",\
                 "0.06999, 0.08899, 0.1364, 0.208, 0.3163, 0.4715, 0.6777, 0.9383, 1.256, 1.637",\
                 "0.1043, 0.1286, 0.1882, 0.2711, 0.3806, 0.5315, 0.7335, 0.9918, 1.308, 1.687",\
                 "0.1473, 0.1775, 0.2509, 0.3494, 0.4708, 0.6227, 0.8201, 1.074, 1.387, 1.763",\
                 "0.2003, 0.2364, 0.3237, 0.4399, 0.5785, 0.7432, 0.9415, 1.19, 1.498, 1.869",\
                 "0.2636, 0.3062, 0.4076, 0.5422, 0.7007, 0.8823, 1.094, 1.343, 1.645, 2.012",\
                 "0.3385, 0.3869, 0.5029, 0.6563, 0.8359, 1.039, 1.268, 1.531, 1.833, 2.193",\
                 "0.4254, 0.4794, 0.6116, 0.7835, 0.9835, 1.21, 1.461, 1.74, 2.058, 2.418");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.01118, 0.0469, 0.1151, 0.2214, 0.3705, 0.5668, 0.814, 1.116, 1.475");
          values("0.01312, 0.02352, 0.06223, 0.1358, 0.2496, 0.4098, 0.6206, 0.8851, 1.209, 1.594",\
                 "0.01756, 0.02698, 0.0621, 0.1358, 0.2498, 0.4093, 0.6198, 0.8851, 1.209, 1.594",\
                 "0.02925, 0.04187, 0.07524, 0.1366, 0.2493, 0.409, 0.6209, 0.8847, 1.209, 1.595",\
                 "0.04778, 0.06562, 0.1067, 0.1671, 0.258, 0.4096, 0.6194, 0.8853, 1.208, 1.593",\
                 "0.07234, 0.0955, 0.1491, 0.2192, 0.3105, 0.4343, 0.6248, 0.8854, 1.211, 1.594",\
                 "0.1016, 0.1315, 0.1992, 0.2837, 0.3856, 0.5117, 0.6715, 0.9012, 1.209, 1.597",\
                 "0.1358, 0.1735, 0.257, 0.3585, 0.4759, 0.6117, 0.776, 0.9752, 1.247, 1.603",\
                 "0.1739, 0.2206, 0.3205, 0.4413, 0.577, 0.729, 0.9058, 1.11, 1.351, 1.665",\
                 "0.217, 0.2728, 0.3902, 0.5308, 0.689, 0.8616, 1.05, 1.265, 1.517, 1.804",\
                 "0.2648, 0.3296, 0.4666, 0.6292, 0.8092, 1.002, 1.214, 1.444, 1.703, 2.001");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.01118, 0.0469, 0.1151, 0.2214, 0.3705, 0.5668, 0.814, 1.116, 1.475");
          values("0.02295, 0.04161, 0.1072, 0.2321, 0.4271, 0.703, 1.063, 1.516, 2.075, 2.731",\
                 "0.02605, 0.04204, 0.1072, 0.2324, 0.4268, 0.7031, 1.06, 1.516, 2.069, 2.73",\
                 "0.0373, 0.05406, 0.1094, 0.2331, 0.4284, 0.7024, 1.062, 1.518, 2.071, 2.734",\
                 "0.05588, 0.07656, 0.1327, 0.2382, 0.4278, 0.7024, 1.064, 1.518, 2.068, 2.729",\
                 "0.07792, 0.1056, 0.1716, 0.273, 0.4386, 0.7026, 1.062, 1.516, 2.077, 2.739",\
                 "0.1054, 0.1385, 0.2197, 0.3293, 0.4849, 0.7196, 1.063, 1.516, 2.072, 2.739",\
                 "0.1364, 0.1773, 0.2726, 0.4001, 0.5588, 0.7784, 1.09, 1.519, 2.071, 2.734",\
                 "0.1698, 0.2192, 0.3328, 0.4778, 0.654, 0.8704, 1.16, 1.558, 2.077, 2.736",\
                 "0.2086, 0.2648, 0.3972, 0.5642, 0.759, 0.9872, 1.273, 1.64, 2.127, 2.743",\
                 "0.2524, 0.3164, 0.467, 0.655, 0.8732, 1.121, 1.409, 1.771, 2.221, 2.805");
        }
      }
    }
  }

