/*
 * 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_3) {
    area : 17.561600 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.682 ;
      max_transition : 2.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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.0057, 0.0222, 0.05371, 0.1028, 0.1717, 0.2623, 0.3765, 0.5159, 0.682");
          values("-0.03116, -0.02817, -0.0231, -0.01952, -0.0179, -0.01737, -0.01698, -0.01689, -0.01674, -0.01654",\
                 "-0.02637, -0.02468, -0.02161, -0.01957, -0.01816, -0.01719, -0.01708, -0.01683, -0.01667, -0.01648",\
                 "0.02133, 0.01578, 0.006497, -0.001136, -0.005757, -0.008827, -0.01092, -0.01272, -0.01344, -0.01396",\
                 "0.1455, 0.1309, 0.09845, 0.06865, 0.04691, 0.0307, 0.01929, 0.01081, 0.004916, 0.0006541",\
                 "0.358, 0.3357, 0.2799, 0.2191, 0.1684, 0.1285, 0.09824, 0.07497, 0.05708, 0.04346",\
                 "0.666, 0.6382, 0.5625, 0.4676, 0.3806, 0.3077, 0.2491, 0.2013, 0.1632, 0.1333",\
                 "1.077, 1.045, 0.9514, 0.8271, 0.6997, 0.5862, 0.4908, 0.4109, 0.3446, 0.2899",\
                 "1.599, 1.563, 1.457, 1.305, 1.139, 0.9799, 0.8421, 0.7225, 0.6194, 0.5326",\
                 "2.239, 2.199, 2.081, 1.909, 1.706, 1.503, 1.315, 1.15, 1.005, 0.8794",\
                 "3.004, 2.961, 2.832, 2.639, 2.407, 2.162, 1.925, 1.707, 1.513, 1.34");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.0057, 0.0222, 0.05371, 0.1028, 0.1717, 0.2623, 0.3765, 0.5159, 0.682");
          values("0.312, 0.3159, 0.323, 0.3305, 0.3335, 0.3366, 0.339, 0.3446, 0.3533, 0.3497",\
                 "0.324, 0.3237, 0.3253, 0.3298, 0.3332, 0.335, 0.3374, 0.3451, 0.3528, 0.3486",\
                 "0.391, 0.3827, 0.3667, 0.3554, 0.3538, 0.3454, 0.3462, 0.3468, 0.3577, 0.3712",\
                 "0.539, 0.5225, 0.4883, 0.4504, 0.4186, 0.3988, 0.3902, 0.3858, 0.3836, 0.3717",\
                 "0.7825, 0.7604, 0.7025, 0.6407, 0.5794, 0.5302, 0.493, 0.4683, 0.4507, 0.4416",\
                 "1.13, 1.104, 1.027, 0.9352, 0.8473, 0.7607, 0.6866, 0.6333, 0.5931, 0.5587",\
                 "1.59, 1.56, 1.472, 1.35, 1.227, 1.112, 1.001, 0.9078, 0.8296, 0.7655",\
                 "2.174, 2.139, 2.041, 1.895, 1.737, 1.586, 1.444, 1.306, 1.184, 1.083",\
                 "2.887, 2.851, 2.744, 2.579, 2.385, 2.195, 2.015, 1.837, 1.672, 1.526",\
                 "3.738, 3.7, 3.586, 3.406, 3.184, 2.952, 2.727, 2.518, 2.306, 2.114");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.0057, 0.0222, 0.05371, 0.1028, 0.1717, 0.2623, 0.3765, 0.5159, 0.682");
          values("0.02109, 0.0277, 0.05034, 0.09296, 0.159, 0.2514, 0.373, 0.526, 0.713, 0.9359",\
                 "0.0234, 0.03074, 0.0532, 0.09572, 0.1617, 0.254, 0.3756, 0.5288, 0.7154, 0.9385",\
                 "0.02577, 0.03599, 0.06405, 0.107, 0.1723, 0.2643, 0.3857, 0.5386, 0.7256, 0.9479",\
                 "0.02326, 0.03721, 0.07433, 0.1277, 0.1956, 0.2864, 0.4069, 0.5591, 0.7453, 0.9676",\
                 "0.01362, 0.0315, 0.07872, 0.145, 0.2267, 0.3238, 0.4426, 0.5933, 0.7788, 1",\
                 "-0.0036, 0.01783, 0.0752, 0.1554, 0.2529, 0.3658, 0.4953, 0.6452, 0.8283, 1.048",\
                 "-0.0298, -0.00428, 0.06272, 0.1571, 0.2711, 0.4019, 0.5489, 0.7137, 0.8984, 1.116",\
                 "-0.06541, -0.03581, 0.04077, 0.1482, 0.2797, 0.4288, 0.5957, 0.7795, 0.9821, 1.205",\
                 "-0.1115, -0.078, 0.0094, 0.131, 0.2783, 0.4455, 0.6335, 0.838, 1.061, 1.304",\
                 "-0.1688, -0.1311, -0.033, 0.1027, 0.266, 0.4528, 0.6605, 0.8872, 1.132, 1.396");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.0057, 0.0222, 0.05371, 0.1028, 0.1717, 0.2623, 0.3765, 0.5159, 0.682");
          values("0.02654, 0.037, 0.07281, 0.1403, 0.2442, 0.3898, 0.5812, 0.824, 1.117, 1.468",\
                 "0.03176, 0.04168, 0.07674, 0.1437, 0.2477, 0.3935, 0.585, 0.826, 1.121, 1.471",\
                 "0.04852, 0.06027, 0.09503, 0.1601, 0.2632, 0.4078, 0.5995, 0.8396, 1.136, 1.487",\
                 "0.07395, 0.08959, 0.1316, 0.1971, 0.2968, 0.4393, 0.6286, 0.8685, 1.164, 1.511",\
                 "0.1075, 0.1276, 0.1799, 0.2554, 0.3561, 0.4949, 0.6812, 0.9184, 1.209, 1.559",\
                 "0.1491, 0.1738, 0.2379, 0.3275, 0.4393, 0.5789, 0.7606, 0.9942, 1.281, 1.628",\
                 "0.1995, 0.2288, 0.3055, 0.4105, 0.5382, 0.6899, 0.8728, 1.101, 1.383, 1.725",\
                 "0.2592, 0.2936, 0.3825, 0.504, 0.6498, 0.8177, 1.013, 1.242, 1.52, 1.857",\
                 "0.329, 0.3685, 0.4702, 0.6087, 0.7732, 0.9609, 1.172, 1.415, 1.694, 2.024",\
                 "0.4094, 0.4538, 0.569, 0.7243, 0.9077, 1.117, 1.349, 1.607, 1.9, 2.232");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.0057, 0.0222, 0.05371, 0.1028, 0.1717, 0.2623, 0.3765, 0.5159, 0.682");
          values("0.0175, 0.02784, 0.06458, 0.1346, 0.2435, 0.3945, 0.5958, 0.8465, 1.154, 1.519",\
                 "0.02182, 0.02984, 0.06436, 0.1344, 0.2435, 0.3942, 0.5943, 0.8493, 1.155, 1.521",\
                 "0.03388, 0.04453, 0.075, 0.1346, 0.2423, 0.3942, 0.5949, 0.8465, 1.155, 1.521",\
                 "0.05382, 0.06816, 0.105, 0.1617, 0.2495, 0.3942, 0.5944, 0.8484, 1.154, 1.521",\
                 "0.07996, 0.0986, 0.1456, 0.2105, 0.2964, 0.4153, 0.5979, 0.8477, 1.154, 1.521",\
                 "0.1105, 0.1353, 0.1937, 0.2712, 0.3664, 0.4857, 0.6385, 0.8589, 1.154, 1.52",\
                 "0.1467, 0.1768, 0.2485, 0.342, 0.4508, 0.5789, 0.7355, 0.925, 1.185, 1.526",\
                 "0.187, 0.2239, 0.3095, 0.4199, 0.5462, 0.6888, 0.8538, 1.048, 1.279, 1.581",\
                 "0.2326, 0.2756, 0.3776, 0.5078, 0.6518, 0.8154, 0.9902, 1.194, 1.431, 1.705",\
                 "0.2822, 0.333, 0.452, 0.5988, 0.7646, 0.9458, 1.144, 1.36, 1.606, 1.889");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.0057, 0.0222, 0.05371, 0.1028, 0.1717, 0.2623, 0.3765, 0.5159, 0.682");
          values("0.0304, 0.04752, 0.1078, 0.2234, 0.4021, 0.6535, 0.9889, 1.406, 1.918, 2.518",\
                 "0.03187, 0.04767, 0.108, 0.2237, 0.4037, 0.6539, 0.9856, 1.404, 1.919, 2.518",\
                 "0.04356, 0.05836, 0.1095, 0.2234, 0.4038, 0.6555, 0.9879, 1.405, 1.917, 2.526",\
                 "0.06306, 0.0805, 0.1311, 0.2281, 0.4031, 0.6556, 0.9876, 1.409, 1.917, 2.522",\
                 "0.08726, 0.1099, 0.1679, 0.2608, 0.4129, 0.6556, 0.9879, 1.407, 1.92, 2.527",\
                 "0.1172, 0.144, 0.2149, 0.3144, 0.4571, 0.6732, 0.9875, 1.405, 1.916, 2.523",\
                 "0.1494, 0.1842, 0.2672, 0.3822, 0.5268, 0.7286, 1.015, 1.407, 1.914, 2.526",\
                 "0.1852, 0.2248, 0.3238, 0.457, 0.6162, 0.8174, 1.082, 1.444, 1.921, 2.523",\
                 "0.2256, 0.2728, 0.387, 0.5382, 0.717, 0.926, 1.188, 1.523, 1.97, 2.535",\
                 "0.2706, 0.3234, 0.4554, 0.6268, 0.8248, 1.055, 1.318, 1.648, 2.061, 2.593");
        }
      }
    }
  }

