/*
 * 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__inv_20) {
    area : 92.198400 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.755 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03381, 0.149, 0.3689, 0.7116, 1.192, 1.825, 2.622, 3.595, 4.755");
          values("-0.147, -0.1299, -0.1118, -0.1036, -0.1003, -0.09834, -0.09727, -0.09682, -0.0963, -0.09592",\
                 "-0.1641, -0.1493, -0.1252, -0.1115, -0.1048, -0.1012, -0.09906, -0.0979, -0.09715, -0.09663",\
                 "-0.08404, -0.09037, -0.09406, -0.0945, -0.09429, -0.09437, -0.09421, -0.09442, -0.09451, -0.09443",\
                 "0.2333, 0.1884, 0.108, 0.04559, 0.003571, -0.02403, -0.04302, -0.05587, -0.06517, -0.07165",\
                 "0.8198, 0.7406, 0.5631, 0.3976, 0.2734, 0.1829, 0.1172, 0.06945, 0.03431, 0.008388",\
                 "1.698, 1.587, 1.317, 1.026, 0.7832, 0.5946, 0.4512, 0.341, 0.2562, 0.1912",\
                 "2.882, 2.747, 2.394, 1.975, 1.591, 1.274, 1.021, 0.82, 0.6593, 0.5315",\
                 "4.39, 4.236, 3.817, 3.272, 2.736, 2.268, 1.878, 1.556, 1.295, 1.08",\
                 "6.245, 6.074, 5.593, 4.941, 4.253, 3.619, 3.069, 2.603, 2.213, 1.885",\
                 "8.465, 8.278, 7.748, 6.998, 6.16, 5.355, 4.634, 3.998, 3.457, 2.995");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03381, 0.149, 0.3689, 0.7116, 1.192, 1.825, 2.622, 3.595, 4.755");
          values("1.458, 1.488, 1.528, 1.541, 1.561, 1.574, 1.591, 1.625, 1.631, 1.666",\
                 "1.436, 1.454, 1.496, 1.525, 1.548, 1.563, 1.581, 1.603, 1.622, 1.657",\
                 "1.584, 1.564, 1.542, 1.539, 1.545, 1.564, 1.579, 1.598, 1.626, 1.679",\
                 "1.992, 1.934, 1.827, 1.735, 1.673, 1.65, 1.641, 1.639, 1.662, 1.693",\
                 "2.685, 2.598, 2.395, 2.205, 2.042, 1.923, 1.848, 1.796, 1.784, 1.787",\
                 "3.68, 3.573, 3.296, 2.982, 2.713, 2.472, 2.285, 2.161, 2.063, 2.029",\
                 "5.009, 4.883, 4.54, 4.114, 3.71, 3.366, 3.049, 2.795, 2.601, 2.478",\
                 "6.693, 6.551, 6.155, 5.632, 5.085, 4.599, 4.161, 3.767, 3.446, 3.218",\
                 "8.761, 8.604, 8.16, 7.536, 6.867, 6.223, 5.654, 5.131, 4.667, 4.326",\
                 "11.23, 11.06, 10.58, 9.88, 9.087, 8.284, 7.554, 6.888, 6.272, 5.868");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03381, 0.149, 0.3689, 0.7116, 1.192, 1.825, 2.622, 3.595, 4.755");
          values("0.05161, 0.06861, 0.1257, 0.2335, 0.4006, 0.6355, 0.9437, 1.333, 1.809, 2.373",\
                 "0.0608, 0.07785, 0.1353, 0.2431, 0.4106, 0.6456, 0.9545, 1.343, 1.816, 2.384",\
                 "0.0724, 0.0995, 0.1718, 0.2808, 0.4479, 0.6826, 0.9903, 1.38, 1.855, 2.421",\
                 "0.06795, 0.1067, 0.2075, 0.3488, 0.5231, 0.7561, 1.063, 1.452, 1.926, 2.492",\
                 "0.04452, 0.09464, 0.2251, 0.4057, 0.6239, 0.8754, 1.181, 1.567, 2.041, 2.604",\
                 "0.0004, 0.0618, 0.2212, 0.442, 0.7067, 1.01, 1.348, 1.735, 2.204, 2.767",\
                 "-0.0664, 0.0063, 0.194, 0.4552, 0.7676, 1.122, 1.518, 1.95, 2.427, 2.986",\
                 "-0.1582, -0.0735, 0.143, 0.4433, 0.803, 1.211, 1.663, 2.157, 2.692, 3.267",\
                 "-0.2753, -0.1801, 0.0653, 0.4045, 0.8117, 1.274, 1.783, 2.337, 2.938, 3.58",\
                 "-0.4215, -0.3147, -0.0399, 0.3378, 0.7913, 1.307, 1.877, 2.493, 3.156, 3.868");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03381, 0.149, 0.3689, 0.7116, 1.192, 1.825, 2.622, 3.595, 4.755");
          values("0.06467, 0.09264, 0.1859, 0.3599, 0.6305, 1.007, 1.506, 2.133, 2.895, 3.807",\
                 "0.07621, 0.1033, 0.197, 0.3716, 0.6423, 1.02, 1.519, 2.145, 2.912, 3.824",\
                 "0.1216, 0.1543, 0.2477, 0.4204, 0.6902, 1.068, 1.567, 2.194, 2.956, 3.873",\
                 "0.1878, 0.2311, 0.3484, 0.5257, 0.7907, 1.166, 1.661, 2.288, 3.053, 3.965",\
                 "0.2735, 0.3292, 0.4745, 0.6865, 0.9593, 1.328, 1.818, 2.442, 3.202, 4.112",\
                 "0.3794, 0.4487, 0.6258, 0.8741, 1.189, 1.567, 2.05, 2.667, 3.423, 4.33",\
                 "0.5078, 0.5903, 0.8011, 1.091, 1.447, 1.874, 2.368, 2.976, 3.724, 4.624",\
                 "0.6598, 0.7559, 1.001, 1.336, 1.738, 2.211, 2.758, 3.376, 4.117, 5.008",\
                 "0.8377, 0.947, 1.228, 1.608, 2.061, 2.582, 3.181, 3.856, 4.608, 5.489",\
                 "1.043, 1.164, 1.48, 1.909, 2.413, 2.989, 3.639, 4.371, 5.181, 6.076");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03381, 0.149, 0.3689, 0.7116, 1.192, 1.825, 2.622, 3.595, 4.755");
          values("0.04091, 0.06801, 0.1629, 0.3445, 0.6278, 1.025, 1.547, 2.206, 3.016, 3.97",\
                 "0.0436, 0.06838, 0.1632, 0.3449, 0.6276, 1.027, 1.55, 2.21, 3.011, 3.973",\
                 "0.07714, 0.1055, 0.1834, 0.3451, 0.6287, 1.025, 1.549, 2.207, 3.014, 3.972",\
                 "0.1268, 0.1653, 0.2638, 0.4119, 0.6402, 1.023, 1.548, 2.204, 3.01, 3.973",\
                 "0.1908, 0.2413, 0.3657, 0.5408, 0.7684, 1.074, 1.551, 2.204, 3.007, 3.97",\
                 "0.2693, 0.3318, 0.4874, 0.693, 0.9522, 1.268, 1.661, 2.23, 3.007, 3.967",\
                 "0.3606, 0.4384, 0.6254, 0.871, 1.164, 1.513, 1.926, 2.414, 3.085, 3.973",\
                 "0.4618, 0.558, 0.7806, 1.069, 1.403, 1.789, 2.238, 2.755, 3.347, 4.126",\
                 "0.5756, 0.6912, 0.95, 1.286, 1.667, 2.096, 2.582, 3.139, 3.767, 4.471",\
                 "0.7006, 0.8346, 1.139, 1.523, 1.952, 2.43, 2.96, 3.554, 4.228, 4.972");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.03381, 0.149, 0.3689, 0.7116, 1.192, 1.825, 2.622, 3.595, 4.755");
          values("0.07261, 0.1189, 0.2818, 0.5925, 1.076, 1.755, 2.648, 3.777, 5.15, 6.788",\
                 "0.0734, 0.119, 0.2818, 0.592, 1.076, 1.754, 2.651, 3.773, 5.154, 6.783",\
                 "0.1033, 0.1446, 0.2833, 0.5921, 1.076, 1.756, 2.649, 3.777, 5.149, 6.786",\
                 "0.1515, 0.1993, 0.3442, 0.6035, 1.075, 1.756, 2.649, 3.776, 5.155, 6.801",\
                 "0.2157, 0.2745, 0.4362, 0.6986, 1.103, 1.757, 2.647, 3.774, 5.148, 6.793",\
                 "0.2892, 0.363, 0.551, 0.8392, 1.235, 1.803, 2.654, 3.772, 5.148, 6.799",\
                 "0.3722, 0.4632, 0.6866, 1.001, 1.429, 1.976, 2.724, 3.779, 5.143, 6.785",\
                 "0.4648, 0.5732, 0.8366, 1.194, 1.644, 2.228, 2.936, 3.895, 5.171, 6.8",\
                 "0.5684, 0.693, 0.999, 1.403, 1.893, 2.503, 3.248, 4.139, 5.315, 6.828",\
                 "0.6832, 0.826, 1.175, 1.633, 2.17, 2.806, 3.59, 4.509, 5.602, 7.003");
        }
      }
    }
  }

