/*
 * 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__clkbuf_12) {
    area : 83.417600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 2.708 ;
      max_transition : 3.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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.01968, 0.08527, 0.2105, 0.4057, 0.6794, 1.04, 1.494, 2.048, 2.708");
          values("1.892, 1.83, 1.731, 1.673, 1.642, 1.621, 1.61, 1.602, 1.596, 1.593",\
                 "1.894, 1.83, 1.732, 1.676, 1.644, 1.625, 1.613, 1.605, 1.599, 1.595",\
                 "1.949, 1.885, 1.781, 1.72, 1.684, 1.662, 1.65, 1.642, 1.636, 1.632",\
                 "2.197, 2.121, 1.988, 1.896, 1.843, 1.81, 1.79, 1.777, 1.767, 1.761",\
                 "2.681, 2.585, 2.401, 2.258, 2.165, 2.105, 2.066, 2.041, 2.023, 2.011",\
                 "3.378, 3.267, 3.025, 2.817, 2.673, 2.573, 2.509, 2.465, 2.433, 2.411",\
                 "4.277, 4.149, 3.861, 3.582, 3.376, 3.232, 3.129, 3.058, 3.008, 2.971",\
                 "5.384, 5.245, 4.911, 4.563, 4.29, 4.085, 3.94, 3.834, 3.759, 3.705",\
                 "6.702, 6.551, 6.18, 5.767, 5.424, 5.154, 4.958, 4.81, 4.704, 4.621",\
                 "8.244, 8.082, 7.676, 7.207, 6.788, 6.45, 6.19, 5.997, 5.85, 5.739");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.01968, 0.08527, 0.2105, 0.4057, 0.6794, 1.04, 1.494, 2.048, 2.708");
          values("1.558, 1.476, 1.344, 1.268, 1.225, 1.204, 1.192, 1.201, 1.208, 1.217",\
                 "1.557, 1.474, 1.336, 1.266, 1.222, 1.2, 1.19, 1.201, 1.213, 1.217",\
                 "1.593, 1.512, 1.374, 1.289, 1.244, 1.22, 1.208, 1.219, 1.224, 1.239",\
                 "1.801, 1.713, 1.548, 1.441, 1.379, 1.346, 1.33, 1.329, 1.329, 1.343",\
                 "2.232, 2.128, 1.928, 1.779, 1.681, 1.621, 1.588, 1.571, 1.576, 1.574",\
                 "2.872, 2.755, 2.503, 2.293, 2.157, 2.06, 1.997, 1.962, 1.95, 1.932",\
                 "3.713, 3.58, 3.281, 2.994, 2.81, 2.681, 2.586, 2.521, 2.484, 2.449",\
                 "4.75, 4.609, 4.264, 3.914, 3.652, 3.485, 3.361, 3.261, 3.188, 3.147",\
                 "5.991, 5.837, 5.461, 5.051, 4.708, 4.47, 4.298, 4.197, 4.095, 4.033",\
                 "7.443, 7.284, 6.871, 6.407, 6.012, 5.677, 5.453, 5.296, 5.195, 5.1");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.01968, 0.08527, 0.2105, 0.4057, 0.6794, 1.04, 1.494, 2.048, 2.708");
          values("0.1533, 0.1737, 0.2311, 0.3263, 0.4674, 0.6648, 0.9247, 1.253, 1.653, 2.132",\
                 "0.1586, 0.1791, 0.2365, 0.3316, 0.4728, 0.6701, 0.9303, 1.259, 1.659, 2.137",\
                 "0.1807, 0.201, 0.2581, 0.3529, 0.4941, 0.6913, 0.9513, 1.279, 1.68, 2.159",\
                 "0.2248, 0.2449, 0.3011, 0.3948, 0.535, 0.7317, 0.9913, 1.319, 1.719, 2.197",\
                 "0.2793, 0.3005, 0.3582, 0.4517, 0.5903, 0.7856, 1.044, 1.371, 1.771, 2.249",\
                 "0.338, 0.3609, 0.4216, 0.5168, 0.6555, 0.8492, 1.106, 1.433, 1.832, 2.308",\
                 "0.4003, 0.4247, 0.4885, 0.5868, 0.7282, 0.9224, 1.178, 1.502, 1.901, 2.376",\
                 "0.4652, 0.4909, 0.5588, 0.6608, 0.8045, 1.002, 1.259, 1.582, 1.979, 2.454",\
                 "0.5325, 0.5605, 0.6323, 0.7377, 0.8846, 1.085, 1.346, 1.672, 2.068, 2.541",\
                 "0.603, 0.6327, 0.7087, 0.8182, 0.9686, 1.171, 1.437, 1.768, 2.168, 2.64");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.01968, 0.08527, 0.2105, 0.4057, 0.6794, 1.04, 1.494, 2.048, 2.708");
          values("0.1666, 0.1853, 0.2368, 0.322, 0.4511, 0.6331, 0.873, 1.175, 1.546, 1.987",\
                 "0.1697, 0.1883, 0.2396, 0.325, 0.454, 0.636, 0.8757, 1.179, 1.549, 1.991",\
                 "0.1843, 0.2031, 0.2543, 0.3391, 0.468, 0.6495, 0.8901, 1.192, 1.563, 2.005",\
                 "0.2164, 0.235, 0.2856, 0.3697, 0.498, 0.6793, 0.9185, 1.221, 1.592, 2.033",\
                 "0.2532, 0.2734, 0.3256, 0.409, 0.5364, 0.7162, 0.9553, 1.258, 1.626, 2.067",\
                 "0.2886, 0.3105, 0.3666, 0.4513, 0.5772, 0.7558, 0.9931, 1.295, 1.663, 2.103",\
                 "0.3205, 0.3445, 0.4044, 0.492, 0.6194, 0.7972, 1.034, 1.333, 1.701, 2.141",\
                 "0.3488, 0.3746, 0.4387, 0.5305, 0.6591, 0.8392, 1.075, 1.374, 1.74, 2.179",\
                 "0.3723, 0.3999, 0.469, 0.5653, 0.6961, 0.8776, 1.117, 1.417, 1.783, 2.22",\
                 "0.3915, 0.4212, 0.4949, 0.5964, 0.7301, 0.9126, 1.155, 1.458, 1.826, 2.263");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.01968, 0.08527, 0.2105, 0.4057, 0.6794, 1.04, 1.494, 2.048, 2.708");
          values("0.06228, 0.08684, 0.161, 0.3042, 0.5379, 0.8765, 1.322, 1.886, 2.575, 3.396",\
                 "0.06218, 0.0866, 0.1609, 0.3044, 0.5381, 0.8769, 1.323, 1.885, 2.571, 3.396",\
                 "0.06244, 0.08672, 0.1611, 0.3046, 0.5389, 0.8752, 1.324, 1.885, 2.573, 3.393",\
                 "0.06654, 0.09016, 0.1634, 0.306, 0.5391, 0.8747, 1.323, 1.887, 2.576, 3.397",\
                 "0.0784, 0.1025, 0.1739, 0.3114, 0.5407, 0.877, 1.322, 1.886, 2.576, 3.396",\
                 "0.09322, 0.1194, 0.191, 0.3244, 0.5464, 0.8776, 1.321, 1.886, 2.576, 3.395",\
                 "0.1102, 0.1376, 0.2112, 0.3436, 0.5636, 0.8854, 1.324, 1.886, 2.571, 3.393",\
                 "0.1288, 0.1582, 0.2332, 0.3662, 0.5852, 0.908, 1.337, 1.887, 2.573, 3.392",\
                 "0.1476, 0.1792, 0.258, 0.3904, 0.61, 0.934, 1.364, 1.906, 2.577, 3.393",\
                 "0.1684, 0.2016, 0.2848, 0.4168, 0.635, 0.9608, 1.397, 1.941, 2.601, 3.4");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.01968, 0.08527, 0.2105, 0.4057, 0.6794, 1.04, 1.494, 2.048, 2.708");
          values("0.06782, 0.08984, 0.159, 0.3008, 0.5365, 0.8714, 1.313, 1.871, 2.553, 3.363",\
                 "0.06784, 0.0899, 0.159, 0.3007, 0.5365, 0.8709, 1.314, 1.871, 2.55, 3.362",\
                 "0.06774, 0.09002, 0.1589, 0.3007, 0.5357, 0.8709, 1.316, 1.87, 2.554, 3.362",\
                 "0.07118, 0.09258, 0.1607, 0.3014, 0.5357, 0.8717, 1.313, 1.872, 2.554, 3.368",\
                 "0.08216, 0.1034, 0.169, 0.3053, 0.5363, 0.8707, 1.313, 1.873, 2.552, 3.363",\
                 "0.09534, 0.1192, 0.1835, 0.3136, 0.54, 0.873, 1.315, 1.872, 2.552, 3.363",\
                 "0.1114, 0.1356, 0.2026, 0.3272, 0.5498, 0.8768, 1.316, 1.873, 2.553, 3.365",\
                 "0.1282, 0.1554, 0.224, 0.3454, 0.5648, 0.8904, 1.324, 1.874, 2.552, 3.366",\
                 "0.1476, 0.1738, 0.2464, 0.3668, 0.581, 0.9074, 1.342, 1.887, 2.557, 3.364",\
                 "0.1672, 0.1966, 0.2712, 0.3916, 0.6014, 0.9282, 1.364, 1.909, 2.573, 3.372");
        }
      }
    }
  }

