/*
 * 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.0004455" ;
    }

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.915 ;
      max_transition : 5 ;
      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.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.03492, 0.154, 0.3813, 0.7355, 1.233, 1.886, 2.71, 3.716, 4.915");
          values("-0.1815, -0.1615, -0.1365, -0.1252, -0.12, -0.1171, -0.1159, -0.1152, -0.1147, -0.1145",\
                 "-0.1998, -0.1816, -0.1512, -0.1337, -0.1244, -0.1205, -0.1179, -0.1163, -0.1155, -0.1148",\
                 "-0.1365, -0.1422, -0.1372, -0.1293, -0.1229, -0.1195, -0.118, -0.1165, -0.1156, -0.115",\
                 "0.1231, 0.08457, 0.01665, -0.02788, -0.05453, -0.07216, -0.08336, -0.09084, -0.0961, -0.09957",\
                 "0.6013, 0.5308, 0.3789, 0.2459, 0.1492, 0.08223, 0.03451, 0.0002093, -0.02433, -0.04212",\
                 "1.311, 1.216, 0.985, 0.7427, 0.5477, 0.3997, 0.2886, 0.2056, 0.1411, 0.09261",\
                 "2.273, 2.155, 1.855, 1.501, 1.187, 0.9323, 0.7314, 0.5736, 0.449, 0.3507",\
                 "3.496, 3.36, 3.001, 2.545, 2.099, 1.718, 1.404, 1.147, 0.9395, 0.771",\
                 "5.001, 4.851, 4.438, 3.885, 3.309, 2.79, 2.345, 1.97, 1.656, 1.397",\
                 "6.803, 6.639, 6.18, 5.541, 4.841, 4.174, 3.583, 3.074, 2.637, 2.265");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.03492, 0.154, 0.3813, 0.7355, 1.233, 1.886, 2.71, 3.716, 4.915");
          values("1.393, 1.424, 1.472, 1.501, 1.505, 1.51, 1.543, 1.541, 1.591, 1.575",\
                 "1.383, 1.399, 1.441, 1.477, 1.497, 1.517, 1.542, 1.582, 1.587, 1.652",\
                 "1.512, 1.495, 1.474, 1.475, 1.485, 1.504, 1.54, 1.577, 1.582, 1.661",\
                 "1.85, 1.796, 1.71, 1.627, 1.582, 1.563, 1.573, 1.604, 1.605, 1.62",\
                 "2.41, 2.338, 2.169, 2.019, 1.87, 1.777, 1.736, 1.703, 1.708, 1.733",\
                 "3.217, 3.125, 2.9, 2.644, 2.427, 2.225, 2.085, 1.987, 1.933, 1.868",\
                 "4.292, 4.187, 3.904, 3.561, 3.237, 2.943, 2.692, 2.491, 2.343, 2.246",\
                 "5.656, 5.536, 5.218, 4.787, 4.338, 3.96, 3.596, 3.283, 3.022, 2.795",\
                 "7.328, 7.199, 6.834, 6.328, 5.774, 5.264, 4.815, 4.385, 3.994, 3.663",\
                 "9.327, 9.185, 8.787, 8.206, 7.563, 6.922, 6.328, 5.812, 5.313, 4.842");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.03492, 0.154, 0.3813, 0.7355, 1.233, 1.886, 2.71, 3.716, 4.915");
          values("0.04005, 0.05362, 0.09907, 0.1844, 0.3168, 0.5025, 0.7464, 1.054, 1.429, 1.877",\
                 "0.04657, 0.06044, 0.1061, 0.1916, 0.3243, 0.5098, 0.7542, 1.061, 1.437, 1.885",\
                 "0.05554, 0.0769, 0.1334, 0.2193, 0.3516, 0.5371, 0.7816, 1.089, 1.465, 1.912",\
                 "0.05662, 0.08622, 0.1631, 0.2717, 0.4072, 0.5919, 0.8357, 1.143, 1.518, 1.964",\
                 "0.04676, 0.08516, 0.1834, 0.3199, 0.4871, 0.6803, 0.9224, 1.228, 1.603, 2.049",\
                 "0.02453, 0.07195, 0.1924, 0.3575, 0.5578, 0.7893, 1.047, 1.352, 1.725, 2.17",\
                 "-0.0111, 0.045, 0.1878, 0.3827, 0.6163, 0.8853, 1.187, 1.516, 1.889, 2.332",\
                 "-0.0619, 0.0032, 0.1685, 0.3941, 0.6624, 0.9681, 1.311, 1.688, 2.094, 2.54",\
                 "-0.1299, -0.0542, 0.1333, 0.3887, 0.6924, 1.038, 1.42, 1.842, 2.3, 2.787",\
                 "-0.2134, -0.1292, 0.0821, 0.3678, 0.7074, 1.091, 1.516, 1.981, 2.487, 3.028");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.03492, 0.154, 0.3813, 0.7355, 1.233, 1.886, 2.71, 3.716, 4.915");
          values("0.04736, 0.06845, 0.1388, 0.27, 0.473, 0.7561, 1.131, 1.602, 2.173, 2.861",\
                 "0.0562, 0.07655, 0.1467, 0.278, 0.4817, 0.7654, 1.139, 1.611, 2.184, 2.87",\
                 "0.08705, 0.112, 0.1827, 0.3126, 0.5154, 0.7998, 1.174, 1.644, 2.219, 2.904",\
                 "0.1319, 0.1646, 0.2532, 0.3867, 0.5862, 0.8685, 1.241, 1.712, 2.286, 2.97",\
                 "0.1896, 0.2316, 0.3402, 0.5, 0.7046, 0.9826, 1.353, 1.82, 2.393, 3.077",\
                 "0.2604, 0.3125, 0.4444, 0.63, 0.8671, 1.151, 1.516, 1.98, 2.549, 3.228",\
                 "0.345, 0.408, 0.5649, 0.7797, 1.047, 1.368, 1.738, 2.196, 2.76, 3.439",\
                 "0.4452, 0.5182, 0.7021, 0.9491, 1.248, 1.605, 2.014, 2.478, 3.037, 3.707",\
                 "0.5616, 0.6452, 0.8557, 1.137, 1.471, 1.861, 2.313, 2.817, 3.381, 4.046",\
                 "0.6947, 0.7888, 1.026, 1.343, 1.716, 2.142, 2.631, 3.182, 3.788, 4.458");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.03492, 0.154, 0.3813, 0.7355, 1.233, 1.886, 2.71, 3.716, 4.915");
          values("0.02928, 0.04993, 0.1224, 0.2612, 0.4774, 0.7827, 1.18, 1.682, 2.296, 3.024",\
                 "0.03209, 0.05048, 0.1225, 0.2612, 0.479, 0.7812, 1.18, 1.681, 2.294, 3.025",\
                 "0.05496, 0.07698, 0.1355, 0.2618, 0.4776, 0.7803, 1.18, 1.682, 2.297, 3.025",\
                 "0.08696, 0.1155, 0.1919, 0.3028, 0.4824, 0.7798, 1.179, 1.683, 2.294, 3.025",\
                 "0.1274, 0.1649, 0.258, 0.3944, 0.5638, 0.8045, 1.18, 1.681, 2.295, 3.025",\
                 "0.1746, 0.2217, 0.3374, 0.4946, 0.6958, 0.9304, 1.237, 1.69, 2.293, 3.025",\
                 "0.2296, 0.2862, 0.4268, 0.6106, 0.8346, 1.108, 1.413, 1.792, 2.324, 3.026",\
                 "0.2902, 0.3588, 0.5246, 0.7394, 0.9908, 1.29, 1.639, 2.021, 2.477, 3.093",\
                 "0.3556, 0.437, 0.6296, 0.8778, 1.163, 1.491, 1.87, 2.3, 2.763, 3.301",\
                 "0.4296, 0.5232, 0.7418, 1.029, 1.35, 1.71, 2.119, 2.584, 3.099, 3.647");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.03492, 0.154, 0.3813, 0.7355, 1.233, 1.886, 2.71, 3.716, 4.915");
          values("0.04789, 0.08116, 0.1984, 0.4222, 0.7717, 1.259, 1.906, 2.716, 3.713, 4.897",\
                 "0.04897, 0.0814, 0.1984, 0.4228, 0.7723, 1.261, 1.908, 2.716, 3.713, 4.886",\
                 "0.06942, 0.1004, 0.2001, 0.422, 0.7712, 1.26, 1.905, 2.717, 3.711, 4.886",\
                 "0.1007, 0.1361, 0.243, 0.429, 0.7705, 1.262, 1.904, 2.716, 3.706, 4.889",\
                 "0.1396, 0.1832, 0.3037, 0.4961, 0.7862, 1.258, 1.903, 2.717, 3.712, 4.887",\
                 "0.1849, 0.2388, 0.3768, 0.5924, 0.879, 1.289, 1.902, 2.713, 3.703, 4.891",\
                 "0.234, 0.3002, 0.4638, 0.6958, 1.016, 1.406, 1.946, 2.714, 3.701, 4.891",\
                 "0.2894, 0.3676, 0.558, 0.8162, 1.156, 1.587, 2.092, 2.78, 3.709, 4.881",\
                 "0.348, 0.4386, 0.66, 0.9498, 1.31, 1.772, 2.317, 2.95, 3.792, 4.893",\
                 "0.4144, 0.5168, 0.7696, 1.096, 1.486, 1.967, 2.555, 3.215, 3.994, 5.003");
        }
      }
    }
  }

