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

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

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

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

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

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

    pin(I) {
      capacitance : 0.01846 ;
      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 : 0.931 ;
      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.007419, 0.02995, 0.07298, 0.14, 0.2341, 0.3578, 0.5138, 0.7041, 0.931");
          values("-0.03683, -0.03264, -0.02691, -0.02426, -0.02274, -0.02217, -0.02193, -0.02173, -0.02168, -0.02156",\
                 "-0.03734, -0.0345, -0.02893, -0.02542, -0.02352, -0.02281, -0.02237, -0.02202, -0.02186, -0.02177",\
                 "-0.002757, -0.007002, -0.01226, -0.0152, -0.01762, -0.01868, -0.01922, -0.01977, -0.02016, -0.02041",\
                 "0.1027, 0.08808, 0.06028, 0.03673, 0.02027, 0.008655, 0.001166, -0.004348, -0.00816, -0.01092",\
                 "0.2898, 0.2661, 0.2114, 0.1575, 0.1147, 0.08269, 0.05937, 0.04185, 0.02895, 0.01909",\
                 "0.5635, 0.5328, 0.4539, 0.3649, 0.2862, 0.2244, 0.1756, 0.1378, 0.1082, 0.08521",\
                 "0.9302, 0.8935, 0.7955, 0.6705, 0.5526, 0.4514, 0.3693, 0.302, 0.2484, 0.2048",\
                 "1.396, 1.355, 1.24, 1.084, 0.9236, 0.7781, 0.6542, 0.5504, 0.4646, 0.3927",\
                 "1.968, 1.922, 1.792, 1.61, 1.41, 1.217, 1.046, 0.8982, 0.7721, 0.6667",\
                 "2.652, 2.602, 2.459, 2.254, 2.015, 1.776, 1.555, 1.357, 1.187, 1.038");
        }

        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.007419, 0.02995, 0.07298, 0.14, 0.2341, 0.3578, 0.5138, 0.7041, 0.931");
          values("0.3192, 0.326, 0.3373, 0.3437, 0.3459, 0.3492, 0.3579, 0.3638, 0.3701, 0.3745",\
                 "0.3234, 0.3256, 0.3335, 0.3396, 0.3438, 0.3487, 0.3554, 0.3633, 0.3691, 0.372",\
                 "0.3786, 0.3714, 0.3589, 0.3521, 0.3516, 0.3532, 0.3584, 0.3618, 0.3696, 0.3775",\
                 "0.5096, 0.4928, 0.4592, 0.4271, 0.4044, 0.3907, 0.3834, 0.3793, 0.3836, 0.3835",\
                 "0.7257, 0.702, 0.6436, 0.586, 0.5318, 0.4907, 0.4624, 0.4438, 0.4346, 0.4245",\
                 "1.036, 1.006, 0.929, 0.8381, 0.7558, 0.6797, 0.6204, 0.5738, 0.5366, 0.5145",\
                 "1.447, 1.413, 1.321, 1.197, 1.082, 0.9727, 0.8744, 0.7888, 0.7241, 0.6715",\
                 "1.968, 1.931, 1.825, 1.676, 1.519, 1.378, 1.245, 1.122, 1.014, 0.924",\
                 "2.607, 2.566, 2.449, 2.28, 2.088, 1.901, 1.732, 1.57, 1.42, 1.29",\
                 "3.369, 3.326, 3.199, 3.008, 2.784, 2.556, 2.342, 2.145, 1.953, 1.777");
        }
      }

      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.007419, 0.02995, 0.07298, 0.14, 0.2341, 0.3578, 0.5138, 0.7041, 0.931");
          values("0.02819, 0.0382, 0.07227, 0.1359, 0.2349, 0.3739, 0.5566, 0.7866, 1.067, 1.401",\
                 "0.03255, 0.04317, 0.077, 0.1408, 0.2403, 0.379, 0.5616, 0.7918, 1.072, 1.407",\
                 "0.03616, 0.0523, 0.09539, 0.1601, 0.2589, 0.3973, 0.5795, 0.8097, 1.09, 1.424",\
                 "0.03153, 0.05399, 0.1123, 0.1945, 0.2975, 0.4346, 0.6164, 0.8458, 1.126, 1.46",\
                 "0.01615, 0.04476, 0.1195, 0.2227, 0.3489, 0.4965, 0.6765, 0.9043, 1.183, 1.516",\
                 "-0.01133, 0.02364, 0.1145, 0.2398, 0.3911, 0.5656, 0.7636, 0.9908, 1.268, 1.6",\
                 "-0.05207, -0.01068, 0.09573, 0.2432, 0.4205, 0.6232, 0.8503, 1.103, 1.383, 1.712",\
                 "-0.1072, -0.0595, 0.0631, 0.2321, 0.4356, 0.6679, 0.9252, 1.21, 1.521, 1.859",\
                 "-0.1784, -0.1236, 0.015, 0.2053, 0.4355, 0.6971, 0.9865, 1.303, 1.648, 2.022",\
                 "-0.2647, -0.2046, -0.0493, 0.1631, 0.4178, 0.709, 1.032, 1.382, 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.007419, 0.02995, 0.07298, 0.14, 0.2341, 0.3578, 0.5138, 0.7041, 0.931");
          values("0.03445, 0.0507, 0.1051, 0.2063, 0.3628, 0.5819, 0.8716, 1.235, 1.68, 2.209",\
                 "0.04191, 0.05721, 0.111, 0.2125, 0.3692, 0.5887, 0.8774, 1.241, 1.686, 2.216",\
                 "0.06666, 0.08534, 0.1392, 0.2384, 0.3943, 0.6132, 0.902, 1.265, 1.71, 2.237",\
                 "0.1037, 0.1286, 0.1946, 0.2962, 0.448, 0.6647, 0.951, 1.314, 1.758, 2.283",\
                 "0.152, 0.1841, 0.2665, 0.385, 0.5407, 0.7522, 1.035, 1.394, 1.834, 2.363",\
                 "0.2122, 0.2517, 0.3528, 0.4923, 0.6679, 0.8838, 1.162, 1.516, 1.952, 2.474",\
                 "0.2851, 0.3325, 0.4527, 0.6162, 0.8145, 1.053, 1.335, 1.684, 2.114, 2.631",\
                 "0.372, 0.4274, 0.5674, 0.7554, 0.9817, 1.244, 1.551, 1.904, 2.329, 2.84",\
                 "0.4741, 0.537, 0.6963, 0.9111, 1.165, 1.458, 1.789, 2.169, 2.599, 3.105",\
                 "0.592, 0.6621, 0.8423, 1.083, 1.368, 1.691, 2.052, 2.459, 2.916, 3.427");
        }

        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.007419, 0.02995, 0.07298, 0.14, 0.2341, 0.3578, 0.5138, 0.7041, 0.931");
          values("0.02274, 0.03862, 0.09421, 0.1991, 0.3656, 0.5969, 0.9016, 1.286, 1.746, 2.304",\
                 "0.02713, 0.03975, 0.09408, 0.1997, 0.3649, 0.5963, 0.9017, 1.285, 1.748, 2.302",\
                 "0.04512, 0.06186, 0.1083, 0.2003, 0.3642, 0.5963, 0.9015, 1.285, 1.749, 2.304",\
                 "0.07382, 0.09652, 0.1538, 0.2407, 0.3737, 0.5952, 0.9005, 1.284, 1.754, 2.313",\
                 "0.1111, 0.1414, 0.2134, 0.3139, 0.446, 0.6268, 0.9013, 1.283, 1.75, 2.305",\
                 "0.1571, 0.195, 0.2852, 0.404, 0.552, 0.735, 0.966, 1.298, 1.751, 2.309",\
                 "0.2104, 0.2568, 0.3672, 0.5082, 0.6756, 0.8756, 1.115, 1.402, 1.794, 2.314",\
                 "0.2708, 0.3288, 0.4586, 0.625, 0.8178, 1.038, 1.294, 1.594, 1.942, 2.397",\
                 "0.3378, 0.4056, 0.5612, 0.7548, 0.9738, 1.219, 1.495, 1.813, 2.178, 2.591",\
                 "0.4134, 0.493, 0.671, 0.894, 1.142, 1.417, 1.718, 2.057, 2.442, 2.875");
        }

        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.007419, 0.02995, 0.07298, 0.14, 0.2341, 0.3578, 0.5138, 0.7041, 0.931");
          values("0.04024, 0.06664, 0.1602, 0.3385, 0.6165, 1.003, 1.517, 2.159, 2.948, 3.888",\
                 "0.04164, 0.06668, 0.1603, 0.3385, 0.615, 1.003, 1.515, 2.161, 2.948, 3.889",\
                 "0.059, 0.0832, 0.1619, 0.3374, 0.6154, 1.003, 1.515, 2.159, 2.947, 3.885",\
                 "0.08752, 0.1149, 0.1961, 0.3453, 0.6169, 1.006, 1.516, 2.162, 2.948, 3.885",\
                 "0.1233, 0.1582, 0.2495, 0.3977, 0.6309, 1.007, 1.515, 2.158, 2.945, 3.883",\
                 "0.166, 0.21, 0.3183, 0.4767, 0.703, 1.032, 1.516, 2.16, 2.945, 3.885",\
                 "0.2164, 0.2678, 0.3976, 0.5744, 0.8088, 1.126, 1.563, 2.163, 2.945, 3.883",\
                 "0.2698, 0.333, 0.4834, 0.6874, 0.9378, 1.261, 1.673, 2.229, 2.964, 3.881",\
                 "0.3298, 0.4026, 0.5798, 0.8114, 1.088, 1.42, 1.839, 2.36, 3.041, 3.904",\
                 "0.3984, 0.482, 0.6842, 0.9438, 1.251, 1.604, 2.035, 2.558, 3.194, 4.009");
        }
      }
    }
  }

