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

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

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

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

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

    pin(I) {
      capacitance : 0.07396 ;
      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 : 5.538 ;
      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.03922, 0.1734, 0.4295, 0.8287, 1.389, 2.126, 3.054, 4.187, 5.538");
          values("-0.03453, -0.0292, -0.02546, -0.02467, -0.02411, -0.0239, -0.02379, -0.02377, -0.02369, -0.02364",\
                 "-0.04993, -0.04201, -0.03233, -0.02799, -0.02597, -0.02507, -0.02459, -0.02431, -0.02403, -0.02389",\
                 "-0.03802, -0.03787, -0.03307, -0.02924, -0.02706, -0.02582, -0.0252, -0.02476, -0.02439, -0.02427",\
                 "0.04295, 0.02765, 0.006916, -0.004429, -0.01094, -0.0148, -0.01748, -0.01902, -0.02024, -0.02112",\
                 "0.199, 0.1692, 0.1136, 0.07179, 0.0435, 0.02478, 0.01218, 0.003436, -0.002711, -0.007094",\
                 "0.434, 0.3913, 0.2998, 0.217, 0.1554, 0.1115, 0.07968, 0.05671, 0.03984, 0.02707",\
                 "0.7523, 0.6984, 0.5746, 0.4454, 0.3412, 0.2613, 0.201, 0.1559, 0.1208, 0.09378",\
                 "1.158, 1.096, 0.9425, 0.7666, 0.6118, 0.4894, 0.391, 0.3139, 0.2533, 0.2055",\
                 "1.66, 1.589, 1.409, 1.189, 0.9811, 0.8054, 0.6633, 0.5466, 0.4515, 0.3756",\
                 "2.258, 2.181, 1.978, 1.718, 1.455, 1.223, 1.027, 0.8646, 0.7282, 0.6119");
        }

        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.03922, 0.1734, 0.4295, 0.8287, 1.389, 2.126, 3.054, 4.187, 5.538");
          values("0.5149, 0.5259, 0.5339, 0.537, 0.5432, 0.5471, 0.5531, 0.5805, 0.8558, 2.286",\
                 "0.49, 0.5012, 0.5191, 0.5313, 0.5405, 0.5456, 0.5507, 0.58, 0.8618, 2.33",\
                 "0.5221, 0.5171, 0.5154, 0.5235, 0.5339, 0.5393, 0.5606, 0.5767, 0.8915, 2.487",\
                 "0.6267, 0.6063, 0.5752, 0.5544, 0.5477, 0.5528, 0.5636, 0.61, 0.9488, 2.695",\
                 "0.8067, 0.7735, 0.7086, 0.6573, 0.6179, 0.5963, 0.5943, 0.639, 1.103, 3.143",\
                 "1.072, 1.025, 0.9294, 0.8337, 0.7634, 0.707, 0.6746, 0.7273, 1.389, 3.949",\
                 "1.427, 1.369, 1.242, 1.108, 0.9923, 0.9047, 0.8335, 0.9214, 1.942, 5.299",\
                 "1.879, 1.812, 1.654, 1.479, 1.313, 1.185, 1.091, 1.337, 3.065, 7.474",\
                 "2.437, 2.36, 2.175, 1.957, 1.742, 1.562, 1.512, 2.286, 5.328, 10.54",\
                 "3.104, 3.021, 2.808, 2.552, 2.291, 2.077, 2.426, 4.753, 9.014, 13.4");
        }
      }

      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.03922, 0.1734, 0.4295, 0.8287, 1.389, 2.126, 3.054, 4.187, 5.538");
          values("0.06347, 0.09563, 0.2057, 0.4146, 0.7401, 1.196, 1.795, 2.552, 3.472, 4.577",\
                 "0.08938, 0.1238, 0.2348, 0.4442, 0.7696, 1.226, 1.825, 2.583, 3.503, 4.608",\
                 "0.1135, 0.1784, 0.3349, 0.5505, 0.8759, 1.332, 1.933, 2.689, 3.61, 4.714",\
                 "0.1034, 0.1989, 0.4287, 0.7315, 1.082, 1.537, 2.137, 2.892, 3.815, 4.911",\
                 "0.0541, 0.1806, 0.4845, 0.8837, 1.348, 1.859, 2.459, 3.213, 4.135, 5.233",\
                 "-0.0381, 0.119, 0.4972, 0.9921, 1.571, 2.213, 2.905, 3.667, 4.586, 5.684",\
                 "-0.1785, 0.0096, 0.4625, 1.056, 1.747, 2.517, 3.351, 4.239, 5.187, 6.281",\
                 "-0.3718, -0.1521, 0.3746, 1.069, 1.873, 2.769, 3.744, 4.786, 5.883, 7.035",\
                 "-0.6196, -0.3682, 0.2335, 1.025, 1.946, 2.968, 4.08, 5.273, 6.536, 7.857",\
                 "-0.9275, -0.6437, 0.0354, 0.9241, 1.96, 3.11, 4.361, 5.702, 7.127, 8.622");
        }

        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.03922, 0.1734, 0.4295, 0.8287, 1.389, 2.126, 3.054, 4.187, 5.538");
          values("0.09702, 0.16, 0.3711, 0.7699, 1.39, 2.261, 3.405, 4.851, 6.608, 8.708",\
                 "0.1257, 0.1886, 0.4029, 0.8041, 1.427, 2.297, 3.441, 4.888, 6.644, 8.748",\
                 "0.2238, 0.3095, 0.5307, 0.9312, 1.554, 2.426, 3.574, 5.015, 6.772, 8.882",\
                 "0.3575, 0.4728, 0.7711, 1.187, 1.805, 2.674, 3.822, 5.264, 7.023, 9.127",\
                 "0.5324, 0.6791, 1.051, 1.575, 2.211, 3.074, 4.213, 5.659, 7.421, 9.517",\
                 "0.7516, 0.9319, 1.378, 2.005, 2.767, 3.647, 4.781, 6.216, 7.97, 10.07",\
                 "1.017, 1.234, 1.758, 2.481, 3.374, 4.39, 5.538, 6.964, 8.708, 10.81",\
                 "1.334, 1.586, 2.195, 3.013, 4.022, 5.194, 6.481, 7.918, 9.657, 11.73",\
                 "1.706, 1.992, 2.684, 3.609, 4.729, 6.039, 7.5, 9.075, 10.83, 12.9",\
                 "2.135, 2.456, 3.239, 4.27, 5.501, 6.939, 8.562, 10.33, 12.21, 14.29");
        }

        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.03922, 0.1734, 0.4295, 0.8287, 1.389, 2.126, 3.054, 4.187, 5.538");
          values("0.05567, 0.1087, 0.2958, 0.6502, 1.207, 1.987, 3.008, 4.299, 5.868, 7.762",\
                 "0.06718, 0.11, 0.2953, 0.6506, 1.208, 1.987, 3.007, 4.304, 5.87, 7.766",\
                 "0.134, 0.1977, 0.3504, 0.6523, 1.205, 1.986, 3.008, 4.303, 5.868, 7.764",\
                 "0.2246, 0.3127, 0.53, 0.8208, 1.244, 1.981, 3.003, 4.292, 5.871, 7.739",\
                 "0.3356, 0.4554, 0.7326, 1.109, 1.553, 2.115, 3.02, 4.293, 5.864, 7.742",\
                 "0.4696, 0.6196, 0.9658, 1.419, 1.968, 2.582, 3.302, 4.374, 5.873, 7.744",\
                 "0.6214, 0.8074, 1.23, 1.766, 2.405, 3.136, 3.932, 4.83, 6.078, 7.78",\
                 "0.7876, 1.016, 1.519, 2.149, 2.876, 3.714, 4.643, 5.638, 6.725, 8.162",\
                 "0.9744, 1.244, 1.836, 2.567, 3.391, 4.325, 5.379, 6.514, 7.722, 9.01",\
                 "1.178, 1.495, 2.174, 3.013, 3.95, 4.986, 6.142, 7.418, 8.772, 10.19");
        }

        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.03922, 0.1734, 0.4295, 0.8287, 1.389, 2.126, 3.054, 4.187, 5.538");
          values("0.1118, 0.2164, 0.5832, 1.285, 2.381, 3.911, 5.933, 8.478, 11.58, 15.28",\
                 "0.1127, 0.2165, 0.5843, 1.287, 2.383, 3.913, 5.933, 8.478, 11.58, 15.29",\
                 "0.184, 0.2802, 0.5874, 1.289, 2.383, 3.912, 5.946, 8.492, 11.61, 15.32",\
                 "0.2712, 0.3982, 0.7306, 1.302, 2.382, 3.919, 5.94, 8.488, 11.58, 15.28",\
                 "0.381, 0.5328, 0.9494, 1.524, 2.419, 3.917, 5.939, 8.494, 11.61, 15.29",\
                 "0.5092, 0.6938, 1.169, 1.882, 2.723, 3.985, 5.946, 8.489, 11.6, 15.31",\
                 "0.653, 0.877, 1.417, 2.227, 3.223, 4.368, 6.048, 8.487, 11.6, 15.31",\
                 "0.8126, 1.078, 1.699, 2.581, 3.732, 5.023, 6.514, 8.664, 11.61, 15.29",\
                 "0.9928, 1.296, 2.01, 2.974, 4.228, 5.702, 7.292, 9.2, 11.83, 15.37",\
                 "1.196, 1.536, 2.346, 3.414, 4.742, 6.382, 8.186, 10.11, 12.46, 15.62");
        }
      }
    }
  }

