/*
 * 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.00131814" ;
    }

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 3.811 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0273, 0.1196, 0.2959, 0.5705, 0.9559, 1.463, 2.102, 2.882, 3.811");
          values("-0.118, -0.1007, -0.08736, -0.08194, -0.07931, -0.07828, -0.07775, -0.07665, -0.07638, -0.07632",\
                 "-0.1316, -0.1196, -0.1001, -0.08856, -0.08384, -0.08089, -0.07896, -0.07786, -0.07736, -0.07695",\
                 "-0.06943, -0.07355, -0.0755, -0.07592, -0.07597, -0.07584, -0.0757, -0.0756, -0.07554, -0.07552",\
                 "0.1835, 0.1485, 0.08472, 0.03575, 0.003014, -0.01973, -0.03463, -0.04516, -0.05228, -0.05726",\
                 "0.6553, 0.5905, 0.4492, 0.3177, 0.2176, 0.146, 0.09311, 0.05492, 0.02715, 0.006118",\
                 "1.358, 1.27, 1.052, 0.8208, 0.6265, 0.4766, 0.3613, 0.2733, 0.2052, 0.153",\
                 "2.306, 2.199, 1.917, 1.58, 1.272, 1.019, 0.8165, 0.6562, 0.5274, 0.4255",\
                 "3.517, 3.391, 3.054, 2.619, 2.189, 1.816, 1.503, 1.247, 1.036, 0.8646",\
                 "5.002, 4.864, 4.481, 3.955, 3.405, 2.895, 2.458, 2.084, 1.772, 1.509",\
                 "6.78, 6.631, 6.205, 5.601, 4.932, 4.288, 3.708, 3.202, 2.768, 2.393");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0273, 0.1196, 0.2959, 0.5705, 0.9559, 1.463, 2.102, 2.882, 3.811");
          values("1.166, 1.19, 1.222, 1.234, 1.238, 1.247, 1.269, 1.263, 1.319, 1.299",\
                 "1.142, 1.157, 1.194, 1.218, 1.233, 1.25, 1.264, 1.279, 1.296, 1.326",\
                 "1.261, 1.245, 1.228, 1.225, 1.235, 1.248, 1.262, 1.276, 1.301, 1.335",\
                 "1.587, 1.543, 1.456, 1.382, 1.33, 1.317, 1.306, 1.308, 1.332, 1.356",\
                 "2.14, 2.071, 1.912, 1.765, 1.626, 1.535, 1.479, 1.444, 1.436, 1.431",\
                 "2.938, 2.85, 2.631, 2.383, 2.163, 1.979, 1.834, 1.727, 1.643, 1.616",\
                 "4.003, 3.9, 3.63, 3.286, 2.969, 2.683, 2.438, 2.23, 2.082, 1.98",\
                 "5.353, 5.236, 4.925, 4.502, 4.067, 3.681, 3.33, 3.014, 2.75, 2.578",\
                 "7.008, 6.881, 6.525, 6.031, 5.497, 4.986, 4.536, 4.099, 3.719, 3.448",\
                 "8.986, 8.849, 8.461, 7.905, 7.268, 6.628, 6.039, 5.509, 5.019, 4.69");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0273, 0.1196, 0.2959, 0.5705, 0.9559, 1.463, 2.102, 2.882, 3.811");
          values("0.0476, 0.06476, 0.1218, 0.2294, 0.3964, 0.6308, 0.9388, 1.329, 1.802, 2.37",\
                 "0.05726, 0.07417, 0.1315, 0.2395, 0.4067, 0.6413, 0.9503, 1.339, 1.812, 2.38",\
                 "0.06831, 0.09564, 0.1682, 0.2771, 0.4443, 0.6782, 0.9869, 1.375, 1.851, 2.416",\
                 "0.06351, 0.1024, 0.2035, 0.3449, 0.5194, 0.7524, 1.06, 1.448, 1.922, 2.488",\
                 "0.03968, 0.09016, 0.2208, 0.4016, 0.6198, 0.8717, 1.177, 1.563, 2.036, 2.6",\
                 "-0.0048, 0.057, 0.217, 0.4379, 0.7024, 1.006, 1.344, 1.73, 2.2, 2.763",\
                 "-0.0717, 0.0005, 0.1897, 0.4506, 0.7633, 1.117, 1.513, 1.946, 2.423, 2.982",\
                 "-0.1637, -0.0787, 0.1373, 0.4387, 0.7987, 1.207, 1.658, 2.153, 2.688, 3.263",\
                 "-0.2816, -0.1868, 0.0601, 0.3988, 0.8068, 1.27, 1.779, 2.333, 2.933, 3.576",\
                 "-0.428, -0.321, -0.0454, 0.3315, 0.7863, 1.302, 1.872, 2.488, 3.151, 3.864");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0273, 0.1196, 0.2959, 0.5705, 0.9559, 1.463, 2.102, 2.882, 3.811");
          values("0.06069, 0.08868, 0.1816, 0.3555, 0.6251, 1.003, 1.501, 2.129, 2.896, 3.806",\
                 "0.07226, 0.0994, 0.193, 0.3678, 0.6378, 1.017, 1.514, 2.142, 2.908, 3.82",\
                 "0.1176, 0.1504, 0.244, 0.4166, 0.6857, 1.065, 1.563, 2.19, 2.954, 3.869",\
                 "0.1834, 0.2269, 0.3445, 0.5219, 0.7871, 1.162, 1.657, 2.283, 3.05, 3.962",\
                 "0.2687, 0.3246, 0.4705, 0.6828, 0.9556, 1.325, 1.816, 2.439, 3.201, 4.107",\
                 "0.3743, 0.4437, 0.6217, 0.8704, 1.185, 1.564, 2.048, 2.663, 3.421, 4.327",\
                 "0.5023, 0.5853, 0.7965, 1.087, 1.444, 1.87, 2.365, 2.972, 3.721, 4.62",\
                 "0.6541, 0.7506, 0.9971, 1.332, 1.734, 2.208, 2.754, 3.373, 4.114, 5.004",\
                 "0.8314, 0.9409, 1.222, 1.604, 2.057, 2.579, 3.178, 3.853, 4.604, 5.486",\
                 "1.037, 1.159, 1.476, 1.904, 2.41, 2.986, 3.636, 4.368, 5.179, 6.073");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0273, 0.1196, 0.2959, 0.5705, 0.9559, 1.463, 2.102, 2.882, 3.811");
          values("0.04044, 0.06763, 0.1623, 0.3435, 0.6275, 1.022, 1.544, 2.208, 3.008, 3.973",\
                 "0.04314, 0.06766, 0.1628, 0.344, 0.6265, 1.023, 1.548, 2.209, 3.007, 3.973",\
                 "0.07658, 0.1054, 0.1832, 0.3443, 0.6267, 1.025, 1.548, 2.204, 3.012, 3.972",\
                 "0.1262, 0.1645, 0.263, 0.4117, 0.6401, 1.024, 1.546, 2.205, 3.012, 3.972",\
                 "0.1896, 0.2403, 0.3645, 0.5404, 0.7674, 1.074, 1.549, 2.203, 3.007, 3.963",\
                 "0.2683, 0.3312, 0.4862, 0.6928, 0.953, 1.268, 1.66, 2.23, 3.005, 3.964",\
                 "0.3578, 0.436, 0.6248, 0.87, 1.163, 1.514, 1.926, 2.414, 3.081, 3.972",\
                 "0.4598, 0.5542, 0.7782, 1.067, 1.401, 1.788, 2.24, 2.754, 3.345, 4.118",\
                 "0.5722, 0.686, 0.948, 1.283, 1.665, 2.096, 2.581, 3.138, 3.764, 4.47",\
                 "0.6968, 0.8304, 1.137, 1.517, 1.951, 2.433, 2.959, 3.555, 4.226, 4.971");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.0273, 0.1196, 0.2959, 0.5705, 0.9559, 1.463, 2.102, 2.882, 3.811");
          values("0.07198, 0.1183, 0.2809, 0.5919, 1.077, 1.752, 2.649, 3.772, 5.153, 6.786",\
                 "0.07228, 0.1183, 0.2822, 0.5919, 1.076, 1.754, 2.648, 3.773, 5.145, 6.787",\
                 "0.1028, 0.1446, 0.2825, 0.5913, 1.077, 1.76, 2.651, 3.774, 5.149, 6.781",\
                 "0.1511, 0.1987, 0.344, 0.6034, 1.074, 1.754, 2.647, 3.773, 5.146, 6.782",\
                 "0.2141, 0.2729, 0.4366, 0.6986, 1.103, 1.754, 2.654, 3.778, 5.143, 6.789",\
                 "0.2872, 0.3618, 0.5514, 0.8376, 1.235, 1.806, 2.648, 3.772, 5.149, 6.784",\
                 "0.37, 0.462, 0.687, 1.001, 1.43, 1.974, 2.729, 3.779, 5.155, 6.787",\
                 "0.4624, 0.5708, 0.8398, 1.191, 1.644, 2.226, 2.935, 3.885, 5.169, 6.796",\
                 "0.5642, 0.6914, 0.9988, 1.403, 1.894, 2.5, 3.249, 4.139, 5.307, 6.814",\
                 "0.6792, 0.8218, 1.176, 1.631, 2.168, 2.804, 3.589, 4.506, 5.601, 7.01");
        }
      }
    }
  }

