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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.612 ;
      max_transition : 4 ;
      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.03283, 0.1445, 0.3579, 0.6902, 1.157, 1.77, 2.543, 3.487, 4.612");
          values("-0.2122, -0.1905, -0.1613, -0.1468, -0.1399, -0.1363, -0.1345, -0.1334, -0.1328, -0.1325",\
                 "-0.2117, -0.1967, -0.169, -0.152, -0.1433, -0.1389, -0.1358, -0.1347, -0.1335, -0.1326",\
                 "-0.03634, -0.05767, -0.08368, -0.1008, -0.1112, -0.1171, -0.1205, -0.1228, -0.1247, -0.1261",\
                 "0.4908, 0.4202, 0.2761, 0.1584, 0.07594, 0.01981, -0.01884, -0.04595, -0.06504, -0.07898",\
                 "1.421, 1.304, 1.031, 0.7605, 0.5476, 0.3884, 0.2716, 0.1841, 0.1195, 0.0706",\
                 "2.781, 2.629, 2.237, 1.792, 1.402, 1.092, 0.8518, 0.6627, 0.5157, 0.4002",\
                 "4.607, 4.425, 3.936, 3.317, 2.726, 2.223, 1.812, 1.48, 1.212, 0.9947",\
                 "6.928, 6.719, 6.149, 5.378, 4.577, 3.853, 3.237, 2.719, 2.292, 1.936",\
                 "9.773, 9.543, 8.9, 7.994, 6.997, 6.039, 5.188, 4.454, 3.828, 3.296",\
                 "13.17, 12.93, 12.22, 11.19, 10.02, 8.828, 7.723, 6.744, 5.886, 5.148");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.03283, 0.1445, 0.3579, 0.6902, 1.157, 1.77, 2.543, 3.487, 4.612");
          values("1.709, 1.745, 1.806, 1.85, 1.849, 1.876, 1.875, 1.918, 1.899, 1.927",\
                 "1.732, 1.744, 1.778, 1.818, 1.838, 1.849, 1.884, 1.908, 1.944, 1.967",\
                 "2.007, 1.971, 1.914, 1.88, 1.875, 1.873, 1.899, 1.913, 1.964, 1.972",\
                 "2.662, 2.573, 2.404, 2.243, 2.127, 2.058, 2.017, 2.008, 2.019, 2.032",\
                 "3.737, 3.621, 3.323, 3.039, 2.771, 2.556, 2.416, 2.328, 2.259, 2.227",\
                 "5.279, 5.132, 4.744, 4.296, 3.885, 3.496, 3.176, 2.953, 2.789, 2.677",\
                 "7.327, 7.158, 6.698, 6.09, 5.495, 4.964, 4.468, 4.058, 3.739, 3.472",\
                 "9.918, 9.732, 9.211, 8.466, 7.688, 6.971, 6.299, 5.703, 5.164, 4.742",\
                 "13.1, 12.89, 12.31, 11.46, 10.5, 9.58, 8.729, 7.928, 7.189, 6.542",\
                 "16.89, 16.67, 16.04, 15.09, 13.98, 12.84, 11.77, 10.8, 9.844, 8.982");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.03283, 0.1445, 0.3579, 0.6902, 1.157, 1.77, 2.543, 3.487, 4.612");
          values("0.03027, 0.04029, 0.07422, 0.138, 0.2369, 0.3756, 0.558, 0.7879, 1.068, 1.401",\
                 "0.03466, 0.04522, 0.07911, 0.1429, 0.2419, 0.3806, 0.5626, 0.7922, 1.073, 1.407",\
                 "0.03847, 0.05453, 0.09744, 0.162, 0.2604, 0.3987, 0.5808, 0.8108, 1.091, 1.425",\
                 "0.03395, 0.05632, 0.1144, 0.1965, 0.2993, 0.4363, 0.6175, 0.8467, 1.127, 1.46",\
                 "0.01861, 0.04728, 0.1217, 0.2249, 0.3508, 0.4983, 0.6779, 0.9051, 1.183, 1.516",\
                 "-0.00857, 0.02639, 0.1167, 0.2417, 0.3929, 0.5671, 0.7649, 0.9918, 1.268, 1.6",\
                 "-0.04904, -0.008, 0.09843, 0.2456, 0.4223, 0.6247, 0.8517, 1.104, 1.383, 1.712",\
                 "-0.104, -0.0564, 0.0655, 0.2347, 0.4377, 0.6693, 0.9267, 1.211, 1.522, 1.859",\
                 "-0.1745, -0.1205, 0.0178, 0.2079, 0.4372, 0.6982, 0.9878, 1.304, 1.649, 2.022",\
                 "-0.2611, -0.2012, -0.0465, 0.1646, 0.4196, 0.7105, 1.032, 1.383, 1.762, 2.171");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.03283, 0.1445, 0.3579, 0.6902, 1.157, 1.77, 2.543, 3.487, 4.612");
          values("0.03669, 0.05286, 0.1071, 0.2084, 0.365, 0.5831, 0.8726, 1.234, 1.679, 2.206",\
                 "0.04411, 0.05942, 0.1131, 0.2143, 0.3707, 0.5898, 0.8785, 1.24, 1.685, 2.209",\
                 "0.06889, 0.08756, 0.1412, 0.24, 0.3958, 0.6135, 0.9014, 1.265, 1.707, 2.236",\
                 "0.106, 0.1308, 0.1967, 0.2979, 0.4495, 0.6657, 0.9511, 1.313, 1.754, 2.282",\
                 "0.1545, 0.1864, 0.2685, 0.3866, 0.5421, 0.7533, 1.035, 1.393, 1.834, 2.359",\
                 "0.2147, 0.2544, 0.3546, 0.4938, 0.669, 0.8844, 1.161, 1.515, 1.949, 2.472",\
                 "0.2878, 0.335, 0.4545, 0.6173, 0.8157, 1.054, 1.335, 1.683, 2.113, 2.631",\
                 "0.3748, 0.4296, 0.5686, 0.757, 0.9825, 1.244, 1.55, 1.903, 2.327, 2.837",\
                 "0.477, 0.5393, 0.6986, 0.9125, 1.167, 1.457, 1.788, 2.168, 2.596, 3.101",\
                 "0.5946, 0.6645, 0.8433, 1.085, 1.368, 1.69, 2.051, 2.457, 2.914, 3.423");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.03283, 0.1445, 0.3579, 0.6902, 1.157, 1.77, 2.543, 3.487, 4.612");
          values("0.02288, 0.03868, 0.09391, 0.1995, 0.3644, 0.5958, 0.9011, 1.28, 1.746, 2.3",\
                 "0.02708, 0.0398, 0.09404, 0.2, 0.3644, 0.5952, 0.9005, 1.28, 1.745, 2.302",\
                 "0.04538, 0.06208, 0.1082, 0.2005, 0.3644, 0.5956, 0.8991, 1.284, 1.745, 2.302",\
                 "0.07418, 0.09666, 0.1538, 0.2405, 0.3728, 0.5951, 0.8991, 1.283, 1.752, 2.304",\
                 "0.1118, 0.1416, 0.2135, 0.3137, 0.4463, 0.6258, 0.9015, 1.28, 1.747, 2.304",\
                 "0.1581, 0.1946, 0.2851, 0.4049, 0.5514, 0.7348, 0.9654, 1.298, 1.749, 2.307",\
                 "0.2117, 0.2582, 0.3676, 0.5088, 0.6756, 0.8758, 1.115, 1.402, 1.792, 2.31",\
                 "0.273, 0.329, 0.4598, 0.6264, 0.818, 1.037, 1.293, 1.593, 1.941, 2.396",\
                 "0.341, 0.4072, 0.5612, 0.755, 0.9738, 1.218, 1.495, 1.813, 2.178, 2.59",\
                 "0.4162, 0.4946, 0.6744, 0.8954, 1.142, 1.417, 1.718, 2.057, 2.44, 2.874");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.03283, 0.1445, 0.3579, 0.6902, 1.157, 1.77, 2.543, 3.487, 4.612");
          values("0.04039, 0.0668, 0.1599, 0.3381, 0.6154, 1.003, 1.515, 2.156, 2.947, 3.88",\
                 "0.04167, 0.06684, 0.16, 0.3376, 0.6134, 1.002, 1.514, 2.156, 2.942, 3.878",\
                 "0.05896, 0.08314, 0.1619, 0.3374, 0.6139, 1.002, 1.512, 2.158, 2.94, 3.883",\
                 "0.0875, 0.115, 0.1959, 0.3449, 0.6133, 1.002, 1.512, 2.156, 2.941, 3.879",\
                 "0.1241, 0.1587, 0.2493, 0.3975, 0.6305, 1.002, 1.512, 2.155, 2.943, 3.878",\
                 "0.1677, 0.2091, 0.3185, 0.4763, 0.7022, 1.031, 1.514, 2.155, 2.94, 3.877",\
                 "0.2164, 0.2684, 0.3966, 0.5756, 0.811, 1.123, 1.558, 2.163, 2.938, 3.887",\
                 "0.27, 0.3328, 0.4854, 0.6876, 0.9368, 1.259, 1.672, 2.223, 2.952, 3.874",\
                 "0.3312, 0.4034, 0.5804, 0.8124, 1.088, 1.418, 1.839, 2.357, 3.038, 3.897",\
                 "0.4012, 0.4824, 0.686, 0.9442, 1.252, 1.604, 2.034, 2.555, 3.191, 4.005");
        }
      }
    }
  }

