/*
 * 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_8) {
    area : 57.075200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "3.50649e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "3.713202e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.713202e-05" ;
    }

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.324 ;
      max_transition : 21 ;
      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.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04217, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.07698, 0.07753, 0.07878, 0.07983, 0.08046, 0.08078, 0.08099, 0.08112, 0.08122, 0.08117",\
                 "0.07678, 0.07738, 0.07865, 0.07971, 0.08037, 0.08069, 0.08087, 0.08098, 0.08108, 0.08105",\
                 "0.07642, 0.07694, 0.07821, 0.07928, 0.07992, 0.08029, 0.08049, 0.08061, 0.08067, 0.08063",\
                 "0.07594, 0.07639, 0.07752, 0.0786, 0.07933, 0.07977, 0.08001, 0.08015, 0.08023, 0.08014",\
                 "0.07533, 0.07579, 0.07681, 0.07785, 0.07864, 0.07917, 0.0795, 0.07972, 0.07982, 0.07958",\
                 "0.07484, 0.07523, 0.07617, 0.07718, 0.07802, 0.07862, 0.07904, 0.07927, 0.07937, 0.07878",\
                 "0.07449, 0.07487, 0.07573, 0.07671, 0.07755, 0.0782, 0.07868, 0.07896, 0.07873, 0.0769",\
                 "0.07425, 0.07462, 0.07542, 0.07631, 0.07713, 0.07783, 0.07831, 0.07816, 0.07601, 0.07248",\
                 "0.07403, 0.07438, 0.07511, 0.07596, 0.0768, 0.07734, 0.0761, 0.07201, 0.06854, 0.06612",\
                 "0.0687, 0.06896, 0.06876, 0.06295, 0.0588, 0.05674, 0.05568, 0.05514, 0.05487, 0.05469");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04217, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.05109, 0.05159, 0.05279, 0.05367, 0.05458, 0.05481, 0.05538, 0.05772, 0.1055, 0.3933",\
                 "0.05097, 0.05153, 0.0527, 0.05362, 0.05433, 0.0549, 0.05534, 0.0582, 0.1068, 0.4011",\
                 "0.05069, 0.05119, 0.05233, 0.05315, 0.05414, 0.05485, 0.05512, 0.05824, 0.117, 0.4348",\
                 "0.05009, 0.05048, 0.05131, 0.05247, 0.05307, 0.05377, 0.05448, 0.05878, 0.1383, 0.4977",\
                 "0.04949, 0.04986, 0.05075, 0.05171, 0.05249, 0.05323, 0.05399, 0.06421, 0.1838, 0.5982",\
                 "0.04908, 0.04939, 0.05008, 0.05098, 0.05182, 0.05244, 0.05376, 0.07509, 0.275, 0.7211",\
                 "0.04878, 0.04908, 0.04971, 0.05033, 0.05174, 0.05216, 0.0551, 0.1153, 0.4243, 0.8345",\
                 "0.04857, 0.04884, 0.04942, 0.05018, 0.05066, 0.05263, 0.0657, 0.2346, 0.5979, 0.9021",\
                 "0.04834, 0.04864, 0.04915, 0.04986, 0.05053, 0.0545, 0.1489, 0.4409, 0.6928, 0.8723",\
                 "0.04873, 0.04902, 0.04957, 0.05033, 0.05337, 0.1479, 0.3572, 0.507, 0.6078, 0.6773");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04217, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("1.413, 1.507, 1.755, 2.129, 2.656, 3.378, 4.322, 5.51, 6.96, 8.695",\
                 "1.491, 1.585, 1.833, 2.207, 2.734, 3.456, 4.4, 5.588, 7.038, 8.77",\
                 "1.769, 1.862, 2.11, 2.484, 3.012, 3.733, 4.678, 5.867, 7.316, 9.052",\
                 "2.306, 2.4, 2.647, 3.021, 3.548, 4.271, 5.215, 6.404, 7.857, 9.59",\
                 "3.149, 3.242, 3.489, 3.863, 4.391, 5.113, 6.058, 7.247, 8.698, 10.43",\
                 "4.31, 4.406, 4.657, 5.033, 5.562, 6.284, 7.229, 8.419, 9.87, 11.6",\
                 "5.727, 5.835, 6.103, 6.49, 7.021, 7.743, 8.689, 9.877, 11.33, 13.06",\
                 "7.348, 7.47, 7.766, 8.169, 8.709, 9.433, 10.38, 11.56, 13.01, 14.75",\
                 "9.175, 9.314, 9.641, 10.07, 10.62, 11.34, 12.29, 13.47, 14.93, 16.65",\
                 "11.21, 11.37, 11.73, 12.18, 12.75, 13.47, 14.42, 15.61, 17.06, 18.78");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04217, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("1.011, 1.117, 1.442, 2.024, 2.919, 4.171, 5.813, 7.881, 10.41, 13.44",\
                 "1.075, 1.181, 1.506, 2.088, 2.983, 4.235, 5.876, 7.953, 10.47, 13.5",\
                 "1.3, 1.405, 1.729, 2.312, 3.207, 4.459, 6.107, 8.178, 10.7, 13.72",\
                 "1.729, 1.834, 2.158, 2.74, 3.636, 4.887, 6.538, 8.61, 11.14, 14.15",\
                 "2.343, 2.452, 2.778, 3.36, 4.255, 5.507, 7.151, 9.225, 11.76, 14.76",\
                 "3.034, 3.149, 3.485, 4.07, 4.964, 6.215, 7.86, 9.935, 12.46, 15.48",\
                 "3.779, 3.904, 4.252, 4.841, 5.737, 6.987, 8.63, 10.7, 13.23, 16.25",\
                 "4.577, 4.711, 5.074, 5.667, 6.563, 7.815, 9.458, 11.53, 14.05, 17.06",\
                 "5.415, 5.562, 5.942, 6.543, 7.439, 8.689, 10.34, 12.4, 14.93, 17.94",\
                 "6.294, 6.454, 6.855, 7.465, 8.36, 9.611, 11.25, 13.32, 15.85, 18.86");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04217, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.3578, 0.4414, 0.7038, 1.202, 2.015, 3.207, 4.79, 6.788, 9.248, 12.17",\
                 "0.3574, 0.4414, 0.7038, 1.202, 2.015, 3.205, 4.789, 6.784, 9.248, 12.16",\
                 "0.3578, 0.4416, 0.704, 1.202, 2.017, 3.205, 4.79, 6.8, 9.245, 12.15",\
                 "0.3584, 0.4414, 0.704, 1.201, 2.016, 3.206, 4.789, 6.79, 9.241, 12.15",\
                 "0.361, 0.4438, 0.7064, 1.203, 2.017, 3.202, 4.789, 6.791, 9.25, 12.15",\
                 "0.3812, 0.4616, 0.7178, 1.209, 2.018, 3.206, 4.794, 6.8, 9.244, 12.17",\
                 "0.448, 0.524, 0.764, 1.234, 2.03, 3.206, 4.784, 6.796, 9.242, 12.17",\
                 "0.526, 0.61, 0.84, 1.286, 2.056, 3.22, 4.79, 6.794, 9.242, 12.14",\
                 "0.612, 0.702, 0.93, 1.354, 2.096, 3.24, 4.8, 6.786, 9.234, 12.15",\
                 "0.702, 0.796, 1.036, 1.434, 2.146, 3.264, 4.822, 6.8, 9.232, 12.14");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04217, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.3629, 0.4922, 0.9672, 1.909, 3.397, 5.49, 8.24, 11.7, 15.94, 21.01",\
                 "0.3612, 0.492, 0.967, 1.909, 3.397, 5.495, 8.24, 11.7, 15.94, 20.97",\
                 "0.3626, 0.492, 0.9678, 1.909, 3.397, 5.49, 8.236, 11.71, 15.94, 21.02",\
                 "0.3638, 0.4934, 0.9668, 1.913, 3.398, 5.488, 8.262, 11.7, 15.94, 20.97",\
                 "0.3852, 0.5108, 0.9734, 1.913, 3.401, 5.489, 8.238, 11.7, 15.93, 20.97",\
                 "0.4278, 0.551, 1, 1.922, 3.4, 5.495, 8.247, 11.73, 15.96, 21.04",\
                 "0.4788, 0.5974, 1.03, 1.94, 3.412, 5.492, 8.244, 11.72, 15.96, 20.98",\
                 "0.536, 0.652, 1.07, 1.958, 3.424, 5.506, 8.244, 11.71, 15.93, 20.98",\
                 "0.604, 0.718, 1.116, 1.98, 3.438, 5.514, 8.258, 11.71, 15.95, 20.97",\
                 "0.68, 0.79, 1.172, 2.008, 3.45, 5.524, 8.272, 11.72, 15.94, 20.98");
        }
      }
    }
  }

