/*
 * 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_8) {
    area : 39.513600 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 2.773 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.02014, 0.0873, 0.2156, 0.4154, 0.6958, 1.065, 1.53, 2.097, 2.773");
          values("-0.01302, -0.01041, -0.008762, -0.008205, -0.007964, -0.007873, -0.007835, -0.007766, -0.007731, -0.007738",\
                 "-0.02095, -0.01697, -0.01214, -0.009991, -0.009023, -0.0085, -0.008256, -0.008085, -0.007966, -0.0079",\
                 "-0.01495, -0.01477, -0.01238, -0.01058, -0.009392, -0.008823, -0.008446, -0.008249, -0.008109, -0.008023",\
                 "0.02553, 0.0179, 0.007645, 0.001972, -0.001411, -0.003293, -0.004695, -0.005434, -0.005996, -0.006379",\
                 "0.1036, 0.08849, 0.06114, 0.03986, 0.02584, 0.01653, 0.01017, 0.005867, 0.002716, 0.0004679",\
                 "0.2212, 0.1999, 0.1541, 0.1127, 0.08187, 0.05965, 0.04402, 0.03249, 0.02403, 0.01764",\
                 "0.3807, 0.3538, 0.2917, 0.2269, 0.175, 0.1345, 0.1045, 0.08179, 0.06435, 0.05107",\
                 "0.5843, 0.5527, 0.4761, 0.3877, 0.3108, 0.2487, 0.1996, 0.1611, 0.1307, 0.1066",\
                 "0.8348, 0.7993, 0.7097, 0.5996, 0.4959, 0.408, 0.3363, 0.278, 0.2303, 0.192",\
                 "1.135, 1.096, 0.9943, 0.8641, 0.7333, 0.6162, 0.5188, 0.4372, 0.3686, 0.3108");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.02014, 0.0873, 0.2156, 0.4154, 0.6958, 1.065, 1.53, 2.097, 2.773");
          values("0.2487, 0.2544, 0.2582, 0.2607, 0.2638, 0.2656, 0.2663, 0.2902, 0.4178, 1.135",\
                 "0.2363, 0.2419, 0.2506, 0.2555, 0.2602, 0.2632, 0.2657, 0.2785, 0.42, 1.144",\
                 "0.2526, 0.2498, 0.2488, 0.2532, 0.2566, 0.2614, 0.2649, 0.2894, 0.4327, 1.232",\
                 "0.305, 0.2946, 0.2791, 0.2683, 0.2656, 0.2674, 0.2727, 0.285, 0.4802, 1.353",\
                 "0.395, 0.3783, 0.3455, 0.3201, 0.3004, 0.2902, 0.2874, 0.3075, 0.549, 1.559",\
                 "0.5276, 0.5047, 0.4564, 0.4088, 0.3727, 0.3457, 0.3283, 0.3534, 0.6823, 1.964",\
                 "0.7052, 0.6769, 0.6132, 0.5452, 0.4882, 0.4426, 0.4071, 0.453, 0.9571, 2.636",\
                 "0.9323, 0.8986, 0.8189, 0.7317, 0.6493, 0.5847, 0.536, 0.6581, 1.521, 3.729",\
                 "1.211, 1.173, 1.08, 0.9713, 0.8632, 0.7726, 0.7491, 1.135, 2.65, 5.267",\
                 "1.546, 1.503, 1.397, 1.268, 1.14, 1.032, 1.204, 2.365, 4.504, 6.703");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.02014, 0.0873, 0.2156, 0.4154, 0.6958, 1.065, 1.53, 2.097, 2.773");
          values("0.06244, 0.09458, 0.2041, 0.4128, 0.7374, 1.192, 1.792, 2.543, 3.468, 4.567",\
                 "0.08837, 0.1228, 0.2335, 0.4423, 0.767, 1.223, 1.821, 2.577, 3.495, 4.595",\
                 "0.1123, 0.177, 0.3336, 0.5487, 0.8729, 1.329, 1.928, 2.682, 3.603, 4.702",\
                 "0.102, 0.1973, 0.4274, 0.7297, 1.08, 1.534, 2.131, 2.886, 3.808, 4.902",\
                 "0.052, 0.179, 0.4825, 0.8818, 1.345, 1.855, 2.454, 3.207, 4.127, 5.22",\
                 "-0.0408, 0.117, 0.4951, 0.9912, 1.569, 2.21, 2.9, 3.661, 4.579, 5.673",\
                 "-0.1807, 0.008, 0.4592, 1.054, 1.743, 2.513, 3.347, 4.232, 5.179, 6.271",\
                 "-0.3737, -0.1533, 0.3718, 1.066, 1.87, 2.764, 3.738, 4.778, 5.875, 7.025",\
                 "-0.6226, -0.3704, 0.2315, 1.023, 1.942, 2.964, 4.073, 5.266, 6.527, 7.846",\
                 "-0.9312, -0.6473, 0.0311, 0.9201, 1.957, 3.105, 4.354, 5.695, 7.117, 8.612");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.02014, 0.0873, 0.2156, 0.4154, 0.6958, 1.065, 1.53, 2.097, 2.773");
          values("0.09567, 0.1586, 0.3692, 0.7676, 1.388, 2.257, 3.399, 4.841, 6.598, 8.699",\
                 "0.1244, 0.1872, 0.401, 0.8016, 1.422, 2.292, 3.435, 4.877, 6.635, 8.735",\
                 "0.2222, 0.308, 0.529, 0.9283, 1.551, 2.422, 3.566, 5.011, 6.763, 8.869",\
                 "0.3558, 0.4711, 0.7694, 1.185, 1.803, 2.671, 3.818, 5.257, 7.02, 9.114",\
                 "0.5308, 0.6771, 1.05, 1.573, 2.209, 3.069, 4.208, 5.653, 7.406, 9.504",\
                 "0.749, 0.9303, 1.376, 2.004, 2.764, 3.644, 4.774, 6.21, 7.964, 10.06",\
                 "1.015, 1.232, 1.756, 2.478, 3.371, 4.386, 5.534, 6.956, 8.704, 10.79",\
                 "1.331, 1.584, 2.19, 3.011, 4.02, 5.191, 6.477, 7.913, 9.649, 11.72",\
                 "1.702, 1.989, 2.683, 3.607, 4.726, 6.036, 7.497, 9.07, 10.82, 12.89",\
                 "2.132, 2.454, 3.235, 4.268, 5.499, 6.935, 8.557, 10.32, 12.2, 14.28");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.02014, 0.0873, 0.2156, 0.4154, 0.6958, 1.065, 1.53, 2.097, 2.773");
          values("0.0552, 0.1083, 0.2934, 0.6494, 1.204, 1.98, 3.004, 4.284, 5.869, 7.744",\
                 "0.06688, 0.1097, 0.2942, 0.6484, 1.203, 1.982, 3.001, 4.295, 5.853, 7.735",\
                 "0.1334, 0.1967, 0.3495, 0.6496, 1.203, 1.98, 3.001, 4.292, 5.862, 7.739",\
                 "0.2237, 0.3122, 0.5286, 0.8196, 1.24, 1.976, 3, 4.289, 5.866, 7.727",\
                 "0.334, 0.4544, 0.733, 1.107, 1.551, 2.112, 3.013, 4.283, 5.859, 7.723",\
                 "0.4668, 0.6188, 0.9648, 1.416, 1.965, 2.577, 3.296, 4.365, 5.859, 7.729",\
                 "0.6192, 0.8042, 1.228, 1.765, 2.403, 3.132, 3.926, 4.823, 6.065, 7.757",\
                 "0.786, 1.013, 1.515, 2.148, 2.873, 3.714, 4.638, 5.629, 6.718, 8.15",\
                 "0.9716, 1.242, 1.831, 2.567, 3.397, 4.324, 5.374, 6.504, 7.708, 8.998",\
                 "1.176, 1.489, 2.173, 3.008, 3.944, 4.984, 6.136, 7.41, 8.758, 10.18");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.02014, 0.0873, 0.2156, 0.4154, 0.6958, 1.065, 1.53, 2.097, 2.773");
          values("0.1111, 0.2165, 0.5829, 1.283, 2.379, 3.911, 5.922, 8.483, 11.6, 15.26",\
                 "0.1121, 0.2158, 0.5825, 1.281, 2.38, 3.905, 5.942, 8.466, 11.57, 15.27",\
                 "0.1836, 0.2799, 0.5851, 1.285, 2.378, 3.908, 5.932, 8.487, 11.57, 15.29",\
                 "0.2704, 0.3976, 0.7302, 1.299, 2.378, 3.915, 5.935, 8.467, 11.59, 15.3",\
                 "0.3796, 0.5328, 0.9498, 1.523, 2.416, 3.912, 5.932, 8.483, 11.59, 15.26",\
                 "0.5082, 0.6962, 1.169, 1.881, 2.719, 3.982, 5.927, 8.482, 11.59, 15.29",\
                 "0.6512, 0.8762, 1.417, 2.225, 3.22, 4.364, 6.042, 8.473, 11.58, 15.29",\
                 "0.8112, 1.076, 1.696, 2.578, 3.731, 5.011, 6.508, 8.642, 11.59, 15.28",\
                 "0.9902, 1.293, 2.007, 2.973, 4.228, 5.712, 7.284, 9.192, 11.81, 15.31",\
                 "1.196, 1.53, 2.348, 3.398, 4.746, 6.378, 8.18, 10.09, 12.45, 15.6");
        }
      }
    }
  }

