/*
 * 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 : "0.0001483152" ;
    }

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

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

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

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

    pin(I) {
      capacitance : 0.01097 ;
      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 : 2.878 ;
      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.02086, 0.09057, 0.2237, 0.4311, 0.7221, 1.105, 1.587, 2.176, 2.878");
          values("0.3682, 0.3637, 0.363, 0.3644, 0.3653, 0.3658, 0.3662, 0.3665, 0.3667, 0.3669",\
                 "0.3667, 0.3619, 0.3616, 0.3628, 0.3641, 0.3648, 0.3651, 0.3654, 0.3655, 0.3656",\
                 "0.3716, 0.3658, 0.3639, 0.3654, 0.3664, 0.3674, 0.3679, 0.3682, 0.3685, 0.3687",\
                 "0.4067, 0.3961, 0.387, 0.3846, 0.3845, 0.3846, 0.385, 0.3854, 0.3853, 0.3855",\
                 "0.4689, 0.452, 0.4338, 0.4253, 0.4229, 0.4217, 0.4213, 0.4212, 0.421, 0.4212",\
                 "0.5597, 0.5366, 0.5084, 0.4927, 0.4847, 0.4812, 0.4799, 0.4795, 0.4785, 0.4785",\
                 "0.6805, 0.6506, 0.612, 0.5878, 0.574, 0.5671, 0.5635, 0.5617, 0.5605, 0.5596",\
                 "0.8316, 0.7959, 0.7458, 0.7118, 0.6916, 0.68, 0.6742, 0.67, 0.6678, 0.666",\
                 "1.013, 0.972, 0.91, 0.8663, 0.8381, 0.8213, 0.812, 0.8076, 0.8023, 0.7996",\
                 "1.226, 1.181, 1.107, 1.053, 1.016, 0.9939, 0.9798, 0.971, 0.9652, 0.9616");
        }

        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.02086, 0.09057, 0.2237, 0.4311, 0.7221, 1.105, 1.587, 2.176, 2.878");
          values("0.2629, 0.2558, 0.2534, 0.2539, 0.2559, 0.2591, 0.2631, 0.273, 0.2768, 0.3046",\
                 "0.2615, 0.2547, 0.2504, 0.2523, 0.2546, 0.2581, 0.2634, 0.2693, 0.2771, 0.3036",\
                 "0.2655, 0.2569, 0.252, 0.2525, 0.2546, 0.2587, 0.2624, 0.2677, 0.2771, 0.3051",\
                 "0.2994, 0.2855, 0.2737, 0.2701, 0.2714, 0.2742, 0.2773, 0.2832, 0.292, 0.3236",\
                 "0.3555, 0.337, 0.3151, 0.3083, 0.3054, 0.3076, 0.309, 0.3149, 0.3215, 0.3572",\
                 "0.4386, 0.4133, 0.3838, 0.3661, 0.3658, 0.3633, 0.3631, 0.3667, 0.3744, 0.4155",\
                 "0.5488, 0.5164, 0.4757, 0.4508, 0.4414, 0.4465, 0.4426, 0.4446, 0.4474, 0.4969",\
                 "0.6867, 0.6477, 0.5971, 0.5633, 0.5476, 0.5419, 0.5459, 0.5453, 0.5514, 0.6256",\
                 "0.8525, 0.8075, 0.7468, 0.7038, 0.6793, 0.6643, 0.663, 0.6766, 0.6837, 0.7832",\
                 "1.047, 0.998, 0.9247, 0.8761, 0.8413, 0.8243, 0.8135, 0.8163, 0.8439, 0.99");
        }
      }

      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.02086, 0.09057, 0.2237, 0.4311, 0.7221, 1.105, 1.587, 2.176, 2.878");
          values("0.2564, 0.3076, 0.4435, 0.6672, 1.007, 1.482, 2.108, 2.898, 3.86, 5.008",\
                 "0.2737, 0.3249, 0.4608, 0.6846, 1.024, 1.5, 2.126, 2.914, 3.875, 5.024",\
                 "0.3405, 0.3913, 0.5268, 0.7505, 1.09, 1.566, 2.192, 2.98, 3.942, 5.091",\
                 "0.4571, 0.5093, 0.6462, 0.8695, 1.208, 1.684, 2.31, 3.098, 4.062, 5.208",\
                 "0.5925, 0.6479, 0.7902, 1.015, 1.354, 1.828, 2.454, 3.242, 4.204, 5.352",\
                 "0.7449, 0.805, 0.9542, 1.183, 1.521, 1.995, 2.619, 3.407, 4.368, 5.515",\
                 "0.9135, 0.9787, 1.137, 1.372, 1.711, 2.185, 2.809, 3.596, 4.556, 5.703",\
                 "1.097, 1.168, 1.337, 1.581, 1.925, 2.4, 3.024, 3.81, 4.771, 5.915",\
                 "1.297, 1.374, 1.553, 1.807, 2.16, 2.641, 3.266, 4.053, 5.012, 6.157",\
                 "1.515, 1.596, 1.787, 2.052, 2.413, 2.903, 3.536, 4.324, 5.283, 6.428");
        }

        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.02086, 0.09057, 0.2237, 0.4311, 0.7221, 1.105, 1.587, 2.176, 2.878");
          values("0.2427, 0.2894, 0.4187, 0.6445, 0.994, 1.484, 2.13, 2.943, 3.934, 5.119",\
                 "0.2556, 0.3024, 0.4314, 0.6575, 1.007, 1.498, 2.143, 2.955, 3.95, 5.133",\
                 "0.3067, 0.3528, 0.4814, 0.7072, 1.057, 1.546, 2.192, 3.005, 3.999, 5.184",\
                 "0.3818, 0.4307, 0.5612, 0.7862, 1.135, 1.625, 2.271, 3.081, 4.076, 5.259",\
                 "0.4461, 0.4993, 0.6349, 0.8601, 1.208, 1.697, 2.341, 3.154, 4.148, 5.331",\
                 "0.5002, 0.5585, 0.7003, 0.926, 1.273, 1.761, 2.405, 3.218, 4.208, 5.39",\
                 "0.5407, 0.6034, 0.7538, 0.9846, 1.33, 1.819, 2.461, 3.272, 4.263, 5.446",\
                 "0.5652, 0.6336, 0.7934, 1.03, 1.38, 1.867, 2.509, 3.319, 4.31, 5.492",\
                 "0.5713, 0.645, 0.8159, 1.061, 1.415, 1.907, 2.549, 3.36, 4.348, 5.529",\
                 "0.5587, 0.6377, 0.819, 1.075, 1.433, 1.932, 2.579, 3.389, 4.379, 5.558");
        }

        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.02086, 0.09057, 0.2237, 0.4311, 0.7221, 1.105, 1.587, 2.176, 2.878");
          values("0.09176, 0.1499, 0.3253, 0.6742, 1.242, 2.045, 3.105, 4.439, 6.068, 8.013",\
                 "0.09164, 0.1499, 0.3252, 0.6747, 1.242, 2.042, 3.1, 4.431, 6.062, 8.005",\
                 "0.09192, 0.1504, 0.3258, 0.6751, 1.24, 2.043, 3.101, 4.439, 6.06, 8.01",\
                 "0.1034, 0.1606, 0.3311, 0.6764, 1.241, 2.044, 3.103, 4.434, 6.07, 8.005",\
                 "0.122, 0.1798, 0.3474, 0.6818, 1.243, 2.044, 3.103, 4.437, 6.06, 8",\
                 "0.1442, 0.2036, 0.3694, 0.693, 1.247, 2.045, 3.101, 4.431, 6.066, 7.997",\
                 "0.1692, 0.2308, 0.3986, 0.7126, 1.254, 2.047, 3.1, 4.426, 6.06, 7.995",\
                 "0.1956, 0.2624, 0.4322, 0.7436, 1.274, 2.054, 3.102, 4.426, 6.049, 7.989",\
                 "0.2222, 0.294, 0.4694, 0.7782, 1.308, 2.085, 3.116, 4.431, 6.051, 7.99",\
                 "0.2498, 0.3272, 0.5102, 0.8166, 1.347, 2.126, 3.149, 4.451, 6.054, 7.981");
        }

        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.02086, 0.09057, 0.2237, 0.4311, 0.7221, 1.105, 1.587, 2.176, 2.878");
          values("0.09078, 0.1462, 0.3343, 0.7221, 1.335, 2.203, 3.342, 4.771, 6.525, 8.611",\
                 "0.09118, 0.1457, 0.3345, 0.7223, 1.336, 2.204, 3.339, 4.769, 6.525, 8.602",\
                 "0.09082, 0.1466, 0.3346, 0.7221, 1.335, 2.2, 3.338, 4.771, 6.524, 8.611",\
                 "0.1066, 0.1593, 0.3409, 0.7208, 1.335, 2.2, 3.338, 4.777, 6.523, 8.61",\
                 "0.1252, 0.1774, 0.3526, 0.7252, 1.336, 2.202, 3.338, 4.769, 6.521, 8.607",\
                 "0.1448, 0.1992, 0.3694, 0.7312, 1.339, 2.201, 3.339, 4.768, 6.521, 8.612",\
                 "0.1676, 0.2266, 0.394, 0.7424, 1.342, 2.203, 3.338, 4.768, 6.522, 8.614",\
                 "0.1926, 0.2526, 0.4222, 0.7642, 1.355, 2.206, 3.338, 4.767, 6.512, 8.593",\
                 "0.2184, 0.2826, 0.4542, 0.79, 1.378, 2.223, 3.343, 4.769, 6.515, 8.61",\
                 "0.245, 0.3138, 0.488, 0.8202, 1.403, 2.251, 3.366, 4.777, 6.516, 8.596");
        }
      }
    }
  }

