/*
 * 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__buf_16) {
    area : 109.760000 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.03591 ;
      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(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 5.739 ;
      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.04061, 0.1796, 0.4451, 0.8587, 1.439, 2.203, 3.165, 4.339, 5.739");
          values("0.962, 0.9523, 0.9514, 0.9525, 0.9535, 0.954, 0.9544, 0.9547, 0.9549, 0.955",\
                 "0.9518, 0.9419, 0.9404, 0.9429, 0.9442, 0.9443, 0.9448, 0.9452, 0.9455, 0.9457",\
                 "0.9729, 0.9597, 0.9549, 0.9568, 0.9575, 0.9588, 0.9589, 0.9592, 0.9596, 0.9598",\
                 "1.086, 1.06, 1.04, 1.035, 1.032, 1.031, 1.03, 1.031, 1.031, 1.031",\
                 "1.277, 1.238, 1.198, 1.182, 1.173, 1.17, 1.168, 1.168, 1.167, 1.167",\
                 "1.556, 1.504, 1.442, 1.408, 1.393, 1.385, 1.38, 1.378, 1.376, 1.375",\
                 "1.93, 1.867, 1.776, 1.725, 1.698, 1.682, 1.674, 1.669, 1.666, 1.664",\
                 "2.402, 2.329, 2.213, 2.137, 2.094, 2.07, 2.056, 2.047, 2.041, 2.037",\
                 "2.975, 2.893, 2.748, 2.652, 2.59, 2.552, 2.531, 2.519, 2.508, 2.501",\
                 "3.652, 3.562, 3.393, 3.271, 3.192, 3.139, 3.106, 3.086, 3.072, 3.064");
        }

        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.04061, 0.1796, 0.4451, 0.8587, 1.439, 2.203, 3.165, 4.339, 5.739");
          values("0.5612, 0.5633, 0.5776, 0.5893, 0.5994, 0.6106, 0.6238, 0.6367, 0.6433, 0.721",\
                 "0.5563, 0.5563, 0.5703, 0.5823, 0.5954, 0.605, 0.6162, 0.6301, 0.64, 0.6885",\
                 "0.582, 0.577, 0.579, 0.5906, 0.6007, 0.6143, 0.6278, 0.6334, 0.6527, 0.706",\
                 "0.6675, 0.6542, 0.6446, 0.645, 0.6515, 0.6654, 0.6753, 0.6862, 0.7055, 0.7729",\
                 "0.8276, 0.8045, 0.7755, 0.7708, 0.7743, 0.7786, 0.7848, 0.7984, 0.8144, 0.8777",\
                 "1.069, 1.034, 0.9905, 0.9661, 0.9673, 0.9713, 0.9713, 0.9766, 0.9955, 1.063",\
                 "1.394, 1.35, 1.29, 1.249, 1.228, 1.241, 1.237, 1.241, 1.249, 1.345",\
                 "1.807, 1.752, 1.672, 1.617, 1.579, 1.572, 1.585, 1.592, 1.604, 1.704",\
                 "2.314, 2.246, 2.153, 2.081, 2.031, 1.998, 1.996, 2.018, 2.029, 2.2",\
                 "2.919, 2.834, 2.721, 2.632, 2.562, 2.521, 2.496, 2.503, 2.557, 2.813");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_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.04061, 0.1796, 0.4451, 0.8587, 1.439, 2.203, 3.165, 4.339, 5.739");
          values("0.2035, 0.2375, 0.3242, 0.4574, 0.6519, 0.9222, 1.278, 1.726, 2.272, 2.924",\
                 "0.219, 0.253, 0.3398, 0.4729, 0.6675, 0.9378, 1.293, 1.741, 2.288, 2.939",\
                 "0.2864, 0.3201, 0.4067, 0.5399, 0.7345, 1.005, 1.36, 1.807, 2.355, 3.007",\
                 "0.3981, 0.4343, 0.5248, 0.6597, 0.8543, 1.124, 1.48, 1.928, 2.474, 3.126",\
                 "0.5355, 0.5752, 0.6708, 0.8097, 1.006, 1.276, 1.63, 2.078, 2.624, 3.276",\
                 "0.7013, 0.7451, 0.8477, 0.9914, 1.189, 1.459, 1.814, 2.261, 2.807, 3.458",\
                 "0.8955, 0.9431, 1.055, 1.206, 1.407, 1.678, 2.033, 2.481, 3.026, 3.677",\
                 "1.118, 1.17, 1.292, 1.453, 1.661, 1.936, 2.292, 2.739, 3.285, 3.934",\
                 "1.371, 1.428, 1.559, 1.73, 1.947, 2.23, 2.592, 3.04, 3.585, 4.235",\
                 "1.657, 1.717, 1.858, 2.041, 2.268, 2.558, 2.928, 3.383, 3.931, 4.581");
        }

        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.04061, 0.1796, 0.4451, 0.8587, 1.439, 2.203, 3.165, 4.339, 5.739");
          values("0.1634, 0.2017, 0.3229, 0.5489, 0.8995, 1.391, 2.035, 2.849, 3.842, 5.023",\
                 "0.1774, 0.2157, 0.3367, 0.5629, 0.9135, 1.404, 2.05, 2.864, 3.857, 5.034",\
                 "0.2247, 0.2628, 0.3825, 0.6079, 0.9587, 1.449, 2.096, 2.908, 3.9, 5.086",\
                 "0.2666, 0.3068, 0.4269, 0.6508, 1.001, 1.49, 2.136, 2.951, 3.944, 5.125",\
                 "0.2902, 0.3329, 0.4542, 0.6768, 1.026, 1.515, 2.161, 2.974, 3.967, 5.147",\
                 "0.2911, 0.3365, 0.462, 0.6844, 1.032, 1.521, 2.165, 2.977, 3.968, 5.149",\
                 "0.2651, 0.3145, 0.4455, 0.6701, 1.018, 1.506, 2.149, 2.961, 3.951, 5.136",\
                 "0.2112, 0.2641, 0.4012, 0.6291, 0.9796, 1.47, 2.112, 2.923, 3.914, 5.094",\
                 "0.1272, 0.1837, 0.3281, 0.5584, 0.9133, 1.408, 2.052, 2.863, 3.853, 5.033",\
                 "0.0102, 0.07, 0.2218, 0.4568, 0.8144, 1.314, 1.965, 2.778, 3.768, 4.948");
        }

        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.04061, 0.1796, 0.4451, 0.8587, 1.439, 2.203, 3.165, 4.339, 5.739");
          values("0.0705, 0.1059, 0.2078, 0.3981, 0.7121, 1.164, 1.761, 2.513, 3.432, 4.533",\
                 "0.07052, 0.106, 0.2075, 0.3981, 0.7135, 1.164, 1.762, 2.516, 3.438, 4.533",\
                 "0.07206, 0.1072, 0.2084, 0.3987, 0.7136, 1.163, 1.761, 2.516, 3.438, 4.535",\
                 "0.08682, 0.1209, 0.2188, 0.403, 0.7144, 1.164, 1.761, 2.514, 3.433, 4.534",\
                 "0.1034, 0.138, 0.2352, 0.4144, 0.7184, 1.166, 1.761, 2.516, 3.434, 4.534",\
                 "0.1238, 0.1608, 0.2562, 0.4276, 0.7254, 1.169, 1.761, 2.514, 3.433, 4.526",\
                 "0.1466, 0.1868, 0.2842, 0.4518, 0.738, 1.174, 1.765, 2.513, 3.43, 4.527",\
                 "0.1708, 0.2154, 0.3176, 0.4832, 0.7648, 1.191, 1.771, 2.516, 3.432, 4.524",\
                 "0.1972, 0.2452, 0.353, 0.52, 0.798, 1.223, 1.795, 2.527, 3.435, 4.524",\
                 "0.2228, 0.2748, 0.3918, 0.559, 0.835, 1.264, 1.838, 2.56, 3.45, 4.532");
        }

        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.04061, 0.1796, 0.4451, 0.8587, 1.439, 2.203, 3.165, 4.339, 5.739");
          values("0.0725, 0.1265, 0.327, 0.7224, 1.338, 2.203, 3.342, 4.776, 6.526, 8.608",\
                 "0.07248, 0.1267, 0.327, 0.7224, 1.339, 2.203, 3.342, 4.777, 6.526, 8.622",\
                 "0.07532, 0.1286, 0.3271, 0.7221, 1.338, 2.204, 3.341, 4.774, 6.522, 8.613",\
                 "0.08538, 0.1382, 0.3303, 0.7225, 1.338, 2.202, 3.339, 4.773, 6.527, 8.609",\
                 "0.098, 0.1506, 0.3348, 0.724, 1.339, 2.2, 3.339, 4.773, 6.525, 8.611",\
                 "0.1138, 0.1662, 0.3454, 0.7284, 1.339, 2.202, 3.336, 4.768, 6.519, 8.604",\
                 "0.1318, 0.1844, 0.361, 0.7392, 1.346, 2.206, 3.338, 4.778, 6.518, 8.6",\
                 "0.1502, 0.2038, 0.3798, 0.7526, 1.362, 2.212, 3.34, 4.769, 6.522, 8.603",\
                 "0.1694, 0.2248, 0.3996, 0.768, 1.381, 2.233, 3.352, 4.775, 6.518, 8.603",\
                 "0.1908, 0.2484, 0.4246, 0.7858, 1.404, 2.263, 3.379, 4.788, 6.52, 8.599");
        }
      }
    }
  }

