/*
 * 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 : "5.50143e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "5.63805e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "5.63805e-05" ;
    }

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.053 ;
      max_transition : 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.008261, 0.03375, 0.08242, 0.1583, 0.2646, 0.4047, 0.581, 0.7964, 1.053");
          values("-0.005284, -0.003839, -0.002719, -0.002183, -0.002039, -0.001971, -0.001964, -0.001928, -0.001908, -0.001872",\
                 "-0.007598, -0.006088, -0.004011, -0.00298, -0.002473, -0.002316, -0.002188, -0.002108, -0.002032, -0.00197",\
                 "-0.0003542, -0.001215, -0.001833, -0.001885, -0.001893, -0.001883, -0.001934, -0.001978, -0.001902, -0.001898",\
                 "0.02787, 0.02283, 0.01459, 0.009031, 0.005479, 0.003285, 0.001839, 0.000844, 0.0001789, -0.0002892",\
                 "0.0794, 0.07031, 0.05232, 0.03723, 0.02648, 0.01897, 0.01376, 0.0101, 0.007371, 0.005436",\
                 "0.1557, 0.1436, 0.1158, 0.08826, 0.06711, 0.05109, 0.03945, 0.03064, 0.02402, 0.01906",\
                 "0.2586, 0.2436, 0.2072, 0.1666, 0.1318, 0.105, 0.08358, 0.06707, 0.05436, 0.04441",\
                 "0.3895, 0.3723, 0.3284, 0.2752, 0.2255, 0.1844, 0.1513, 0.1244, 0.1033, 0.08609",\
                 "0.5504, 0.5313, 0.4809, 0.4158, 0.351, 0.2939, 0.2465, 0.2069, 0.1747, 0.1478",\
                 "0.7429, 0.7222, 0.6661, 0.5902, 0.5102, 0.4364, 0.3727, 0.3185, 0.2728, 0.2343");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.008261, 0.03375, 0.08242, 0.1583, 0.2646, 0.4047, 0.581, 0.7964, 1.053");
          values("0.1132, 0.116, 0.1184, 0.1199, 0.1215, 0.1239, 0.1249, 0.1286, 0.1315, 0.1373",\
                 "0.1104, 0.1122, 0.1158, 0.118, 0.1208, 0.1227, 0.1255, 0.129, 0.1302, 0.1373",\
                 "0.1233, 0.1213, 0.1185, 0.1188, 0.1207, 0.1233, 0.1242, 0.1266, 0.1315, 0.1381",\
                 "0.1583, 0.1521, 0.1418, 0.133, 0.129, 0.1278, 0.1288, 0.1296, 0.1308, 0.1395",\
                 "0.2176, 0.2076, 0.1878, 0.1707, 0.1558, 0.1475, 0.143, 0.1395, 0.1396, 0.1482",\
                 "0.3043, 0.2912, 0.2619, 0.2329, 0.2087, 0.1887, 0.1757, 0.1666, 0.1626, 0.1704",\
                 "0.4202, 0.4044, 0.3667, 0.3252, 0.2886, 0.2581, 0.2314, 0.2121, 0.1993, 0.207",\
                 "0.5676, 0.5494, 0.504, 0.4505, 0.4002, 0.3568, 0.3189, 0.2861, 0.2624, 0.2719",\
                 "0.7483, 0.7282, 0.6758, 0.61, 0.5452, 0.4869, 0.4377, 0.3923, 0.355, 0.3784",\
                 "0.9648, 0.943, 0.8845, 0.8069, 0.7284, 0.6536, 0.5895, 0.5341, 0.4908, 0.5465");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.008261, 0.03375, 0.08242, 0.1583, 0.2646, 0.4047, 0.581, 0.7964, 1.053");
          values("0.0393, 0.05784, 0.1213, 0.242, 0.4292, 0.6916, 1.038, 1.474, 2.007, 2.639",\
                 "0.0514, 0.07168, 0.1355, 0.2561, 0.4438, 0.7071, 1.053, 1.489, 2.021, 2.655",\
                 "0.06102, 0.09607, 0.1842, 0.3084, 0.4957, 0.758, 1.105, 1.541, 2.071, 2.707",\
                 "0.05174, 0.1022, 0.2269, 0.3966, 0.5979, 0.8593, 1.205, 1.64, 2.171, 2.806",\
                 "0.01934, 0.08507, 0.2479, 0.4665, 0.7268, 1.019, 1.364, 1.798, 2.327, 2.961",\
                 "-0.0379, 0.043, 0.2434, 0.5117, 0.8289, 1.19, 1.585, 2.023, 2.552, 3.183",\
                 "-0.1243, -0.0276, 0.2098, 0.5301, 0.906, 1.331, 1.8, 2.305, 2.85, 3.478",\
                 "-0.2413, -0.1289, 0.1469, 0.5174, 0.9522, 1.442, 1.982, 2.568, 3.193, 3.854",\
                 "-0.3912, -0.263, 0.0512, 0.4711, 0.9679, 1.524, 2.133, 2.795, 3.505, 4.256",\
                 "-0.5761, -0.4325, -0.0788, 0.3912, 0.9436, 1.571, 2.248, 2.989, 3.781, 4.623");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.008261, 0.03375, 0.08242, 0.1583, 0.2646, 0.4047, 0.581, 0.7964, 1.053");
          values("0.05681, 0.09146, 0.2078, 0.4276, 0.7689, 1.245, 1.876, 2.667, 3.63, 4.788",\
                 "0.07294, 0.1067, 0.2236, 0.4438, 0.7853, 1.264, 1.892, 2.682, 3.654, 4.807",\
                 "0.1256, 0.17, 0.2902, 0.5087, 0.8487, 1.327, 1.958, 2.75, 3.713, 4.871",\
                 "0.2018, 0.2599, 0.4152, 0.6417, 0.9781, 1.454, 2.08, 2.872, 3.841, 4.992",\
                 "0.3014, 0.3759, 0.5662, 0.8426, 1.19, 1.66, 2.284, 3.072, 4.038, 5.189",\
                 "0.4261, 0.5188, 0.748, 1.071, 1.478, 1.959, 2.575, 3.359, 4.317, 5.464",\
                 "0.5778, 0.6887, 0.9607, 1.331, 1.796, 2.345, 2.972, 3.747, 4.699, 5.844",\
                 "0.7592, 0.8872, 1.205, 1.628, 2.146, 2.762, 3.462, 4.247, 5.194, 6.327",\
                 "0.9724, 1.118, 1.48, 1.961, 2.535, 3.212, 3.99, 4.85, 5.804, 6.93",\
                 "1.219, 1.382, 1.789, 2.329, 2.966, 3.702, 4.549, 5.497, 6.525, 7.661");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.008261, 0.03375, 0.08242, 0.1583, 0.2646, 0.4047, 0.581, 0.7964, 1.053");
          values("0.03494, 0.06537, 0.1706, 0.3741, 0.689, 1.133, 1.707, 2.443, 3.328, 4.408",\
                 "0.04374, 0.06722, 0.171, 0.3738, 0.6886, 1.127, 1.707, 2.442, 3.329, 4.402",\
                 "0.0811, 0.1158, 0.2043, 0.3744, 0.6879, 1.13, 1.714, 2.437, 3.345, 4.396",\
                 "0.1351, 0.1826, 0.3016, 0.4697, 0.7114, 1.13, 1.713, 2.445, 3.344, 4.411",\
                 "0.203, 0.2658, 0.4158, 0.625, 0.8838, 1.206, 1.72, 2.443, 3.335, 4.403",\
                 "0.2846, 0.365, 0.5516, 0.7982, 1.108, 1.462, 1.879, 2.489, 3.337, 4.403",\
                 "0.3806, 0.4774, 0.7052, 0.9988, 1.346, 1.764, 2.226, 2.748, 3.456, 4.427",\
                 "0.4838, 0.6042, 0.8774, 1.219, 1.623, 2.078, 2.605, 3.185, 3.821, 4.638",\
                 "0.6022, 0.7462, 1.063, 1.462, 1.917, 2.421, 3.004, 3.656, 4.359, 5.113",\
                 "0.7326, 0.8994, 1.267, 1.725, 2.235, 2.8, 3.432, 4.145, 4.925, 5.756");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.008261, 0.03375, 0.08242, 0.1583, 0.2646, 0.4047, 0.581, 0.7964, 1.053");
          values("0.06803, 0.1254, 0.3262, 0.7111, 1.313, 2.154, 3.265, 4.66, 6.362, 8.408",\
                 "0.06972, 0.1255, 0.3267, 0.7115, 1.312, 2.155, 3.263, 4.657, 6.37, 8.401",\
                 "0.1073, 0.161, 0.3294, 0.7121, 1.312, 2.153, 3.265, 4.662, 6.362, 8.399",\
                 "0.1603, 0.2233, 0.4078, 0.7252, 1.312, 2.153, 3.266, 4.664, 6.362, 8.403",\
                 "0.2282, 0.304, 0.5178, 0.8468, 1.339, 2.152, 3.262, 4.655, 6.362, 8.398",\
                 "0.3086, 0.4034, 0.642, 1.022, 1.506, 2.208, 3.262, 4.654, 6.369, 8.39",\
                 "0.3978, 0.514, 0.7924, 1.203, 1.759, 2.419, 3.343, 4.658, 6.355, 8.391",\
                 "0.4998, 0.6386, 0.9672, 1.41, 2.01, 2.746, 3.599, 4.775, 6.371, 8.392",\
                 "0.6168, 0.7734, 1.152, 1.644, 2.278, 3.086, 4.007, 5.082, 6.519, 8.41",\
                 "0.7454, 0.9224, 1.356, 1.909, 2.579, 3.43, 4.441, 5.557, 6.881, 8.606");
        }
      }
    }
  }

