/*
 * 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_16) {
    area : 74.636800 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.07477 ;
      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 : 3.691 ;
      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.02647, 0.1159, 0.2866, 0.5526, 0.9257, 1.417, 2.035, 2.791, 3.691");
          values("-0.1686, -0.1515, -0.1277, -0.1166, -0.1116, -0.1086, -0.1073, -0.1068, -0.1061, -0.1057",\
                 "-0.1695, -0.1579, -0.1355, -0.1209, -0.1144, -0.1107, -0.1088, -0.1078, -0.1069, -0.1065",\
                 "-0.03069, -0.04737, -0.06858, -0.08094, -0.08947, -0.09395, -0.09718, -0.09927, -0.1001, -0.1011",\
                 "0.3904, 0.3326, 0.2206, 0.1272, 0.06142, 0.0165, -0.01485, -0.03699, -0.05267, -0.06369",\
                 "1.137, 1.042, 0.824, 0.6089, 0.438, 0.3113, 0.2175, 0.1475, 0.09661, 0.05676",\
                 "2.228, 2.103, 1.793, 1.434, 1.124, 0.8766, 0.6814, 0.5315, 0.4127, 0.3213",\
                 "3.689, 3.544, 3.15, 2.657, 2.183, 1.781, 1.452, 1.187, 0.9722, 0.7983",\
                 "5.547, 5.382, 4.923, 4.308, 3.665, 3.089, 2.593, 2.181, 1.837, 1.553",\
                 "7.827, 7.644, 7.128, 6.404, 5.606, 4.838, 4.154, 3.568, 3.068, 2.642",\
                 "10.55, 10.35, 9.79, 8.969, 8.02, 7.074, 6.186, 5.405, 4.72, 4.128");
        }

        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.02647, 0.1159, 0.2866, 0.5526, 0.9257, 1.417, 2.035, 2.791, 3.691");
          values("1.366, 1.393, 1.443, 1.464, 1.486, 1.476, 1.511, 1.484, 1.518, 1.559",\
                 "1.381, 1.391, 1.418, 1.45, 1.474, 1.481, 1.507, 1.529, 1.548, 1.594",\
                 "1.602, 1.572, 1.526, 1.499, 1.492, 1.504, 1.513, 1.539, 1.548, 1.594",\
                 "2.124, 2.057, 1.922, 1.794, 1.703, 1.642, 1.618, 1.614, 1.623, 1.639",\
                 "2.987, 2.89, 2.658, 2.43, 2.212, 2.051, 1.938, 1.864, 1.813, 1.774",\
                 "4.221, 4.103, 3.792, 3.434, 3.102, 2.798, 2.551, 2.384, 2.238, 2.144",\
                 "5.861, 5.73, 5.359, 4.872, 4.401, 3.977, 3.58, 3.254, 2.993, 2.779",\
                 "7.938, 7.79, 7.366, 6.774, 6.154, 5.58, 5.053, 4.564, 4.128, 3.809",\
                 "10.48, 10.32, 9.854, 9.18, 8.414, 7.664, 6.989, 6.344, 5.763, 5.234",\
                 "13.52, 13.35, 12.84, 12.09, 11.2, 10.29, 9.438, 8.639, 7.883, 7.189");
        }
      }

      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.02647, 0.1159, 0.2866, 0.5526, 0.9257, 1.417, 2.035, 2.791, 3.691");
          values("0.02865, 0.03867, 0.07252, 0.1361, 0.235, 0.3734, 0.5553, 0.7848, 1.064, 1.398",\
                 "0.03301, 0.04361, 0.07739, 0.141, 0.2399, 0.3784, 0.5604, 0.7893, 1.069, 1.404",\
                 "0.03667, 0.05276, 0.09573, 0.1603, 0.2586, 0.3969, 0.5787, 0.8079, 1.087, 1.421",\
                 "0.03207, 0.05441, 0.1126, 0.1946, 0.2974, 0.4341, 0.6149, 0.8436, 1.123, 1.456",\
                 "0.01658, 0.04533, 0.1195, 0.2229, 0.3486, 0.4961, 0.6755, 0.9023, 1.181, 1.513",\
                 "-0.01085, 0.02406, 0.1146, 0.2397, 0.3907, 0.5648, 0.7625, 0.989, 1.265, 1.596",\
                 "-0.05133, -0.01012, 0.09613, 0.2432, 0.4203, 0.6224, 0.8491, 1.101, 1.38, 1.709",\
                 "-0.1064, -0.0588, 0.0626, 0.2324, 0.4351, 0.6667, 0.924, 1.208, 1.518, 1.855",\
                 "-0.177, -0.123, 0.0157, 0.2052, 0.4344, 0.6953, 0.9846, 1.3, 1.644, 2.017",\
                 "-0.2639, -0.2035, -0.0492, 0.1629, 0.4169, 0.7073, 1.03, 1.38, 1.758, 2.166");
        }

        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.02647, 0.1159, 0.2866, 0.5526, 0.9257, 1.417, 2.035, 2.791, 3.691");
          values("0.035, 0.0511, 0.1054, 0.2063, 0.3629, 0.5811, 0.8685, 1.229, 1.675, 2.201",\
                 "0.04245, 0.05771, 0.1114, 0.2125, 0.3692, 0.5872, 0.8748, 1.237, 1.68, 2.209",\
                 "0.06721, 0.08581, 0.1395, 0.2381, 0.3938, 0.6119, 0.8983, 1.262, 1.704, 2.229",\
                 "0.1041, 0.1291, 0.1949, 0.2961, 0.4476, 0.663, 0.9489, 1.309, 1.751, 2.278",\
                 "0.1525, 0.1845, 0.2667, 0.3848, 0.5401, 0.751, 1.032, 1.39, 1.829, 2.355",\
                 "0.2127, 0.2522, 0.3527, 0.4919, 0.667, 0.8824, 1.158, 1.512, 1.947, 2.469",\
                 "0.2857, 0.3333, 0.4524, 0.6154, 0.8135, 1.052, 1.333, 1.681, 2.109, 2.626",\
                 "0.3724, 0.4275, 0.5671, 0.7548, 0.9804, 1.242, 1.548, 1.9, 2.324, 2.834",\
                 "0.4744, 0.5372, 0.6964, 0.9106, 1.165, 1.455, 1.786, 2.165, 2.593, 3.097",\
                 "0.5923, 0.6625, 0.8413, 1.083, 1.366, 1.688, 2.048, 2.454, 2.91, 3.419");
        }

        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.02647, 0.1159, 0.2866, 0.5526, 0.9257, 1.417, 2.035, 2.791, 3.691");
          values("0.02271, 0.03857, 0.0938, 0.199, 0.3639, 0.5946, 0.8993, 1.277, 1.742, 2.296",\
                 "0.0271, 0.03962, 0.09401, 0.1997, 0.3643, 0.5947, 0.8972, 1.278, 1.744, 2.297",\
                 "0.04516, 0.06178, 0.1082, 0.1997, 0.3637, 0.5942, 0.8993, 1.276, 1.744, 2.296",\
                 "0.07398, 0.09632, 0.1536, 0.2403, 0.3728, 0.5932, 0.897, 1.281, 1.742, 2.299",\
                 "0.1118, 0.1411, 0.2136, 0.3133, 0.4459, 0.624, 0.8987, 1.279, 1.747, 2.304",\
                 "0.1574, 0.1946, 0.2848, 0.4034, 0.5512, 0.7339, 0.9638, 1.295, 1.746, 2.302",\
                 "0.2108, 0.257, 0.3686, 0.5082, 0.6746, 0.8754, 1.113, 1.4, 1.789, 2.306",\
                 "0.2714, 0.3278, 0.4588, 0.625, 0.8162, 1.036, 1.291, 1.592, 1.938, 2.39",\
                 "0.3398, 0.4074, 0.56, 0.754, 0.9728, 1.216, 1.494, 1.81, 2.174, 2.588",\
                 "0.415, 0.4926, 0.6722, 0.8932, 1.141, 1.416, 1.717, 2.056, 2.437, 2.87");
        }

        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.02647, 0.1159, 0.2866, 0.5526, 0.9257, 1.417, 2.035, 2.791, 3.691");
          values("0.04019, 0.06661, 0.1596, 0.3367, 0.6131, 1, 1.511, 2.152, 2.942, 3.872",\
                 "0.04161, 0.0666, 0.1594, 0.3382, 0.6136, 1, 1.51, 2.152, 2.936, 3.872",\
                 "0.05896, 0.08292, 0.1616, 0.3375, 0.613, 1.002, 1.51, 2.153, 2.942, 3.872",\
                 "0.08736, 0.1149, 0.196, 0.3447, 0.6127, 1.001, 1.511, 2.152, 2.936, 3.869",\
                 "0.1236, 0.1583, 0.2491, 0.3972, 0.6295, 1.001, 1.51, 2.152, 2.939, 3.875",\
                 "0.1661, 0.2097, 0.3184, 0.476, 0.701, 1.03, 1.514, 2.153, 2.938, 3.871",\
                 "0.214, 0.268, 0.3964, 0.574, 0.8084, 1.122, 1.559, 2.157, 2.935, 3.869",\
                 "0.2702, 0.3314, 0.484, 0.6878, 0.9374, 1.259, 1.67, 2.219, 2.954, 3.877",\
                 "0.3288, 0.4038, 0.5804, 0.81, 1.087, 1.417, 1.837, 2.354, 3.035, 3.891",\
                 "0.399, 0.4804, 0.6824, 0.9468, 1.249, 1.603, 2.031, 2.552, 3.187, 4.001");
        }
      }
    }
  }

