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

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

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

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

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

    pin(I) {
      capacitance : 0.01656 ;
      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(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 4.243 ;
      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.03028, 0.1331, 0.3293, 0.6351, 1.064, 1.629, 2.34, 3.208, 4.243");
          values("0.4606, 0.4585, 0.4613, 0.4644, 0.4664, 0.4674, 0.4682, 0.4685, 0.4686, 0.4676",\
                 "0.4588, 0.4562, 0.4593, 0.4626, 0.4649, 0.4659, 0.4666, 0.4669, 0.467, 0.4659",\
                 "0.4601, 0.457, 0.4586, 0.4625, 0.4649, 0.4667, 0.4675, 0.468, 0.4682, 0.467",\
                 "0.4883, 0.4804, 0.4756, 0.4766, 0.4785, 0.4798, 0.4809, 0.4815, 0.4816, 0.4802",\
                 "0.5434, 0.5293, 0.5152, 0.5111, 0.5111, 0.512, 0.5123, 0.5127, 0.5127, 0.511",\
                 "0.6246, 0.6039, 0.5806, 0.5695, 0.5659, 0.5645, 0.5651, 0.565, 0.5644, 0.5615",\
                 "0.7349, 0.7066, 0.6729, 0.6538, 0.6453, 0.6422, 0.6403, 0.6395, 0.6382, 0.6339",\
                 "0.8737, 0.8394, 0.7946, 0.7665, 0.7521, 0.745, 0.7414, 0.7393, 0.7361, 0.7285",\
                 "1.043, 1.002, 0.9457, 0.9084, 0.8868, 0.8745, 0.8684, 0.8643, 0.8581, 0.8454",\
                 "1.242, 1.196, 1.127, 1.079, 1.05, 1.034, 1.024, 1.016, 1.002, 0.9835");
        }

        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.03028, 0.1331, 0.3293, 0.6351, 1.064, 1.629, 2.34, 3.208, 4.243");
          values("0.3317, 0.327, 0.3276, 0.3311, 0.3359, 0.3407, 0.3464, 0.374, 0.64, 1.934",\
                 "0.3295, 0.3249, 0.3262, 0.329, 0.3347, 0.3386, 0.3476, 0.3718, 0.6449, 1.957",\
                 "0.3309, 0.3261, 0.3237, 0.3275, 0.3317, 0.3383, 0.3428, 0.3735, 0.6665, 2.043",\
                 "0.3585, 0.3489, 0.3408, 0.3401, 0.344, 0.3488, 0.3585, 0.3924, 0.7351, 2.246",\
                 "0.407, 0.3913, 0.3744, 0.3728, 0.3722, 0.3734, 0.3819, 0.4266, 0.8307, 2.533",\
                 "0.4796, 0.4579, 0.4332, 0.4211, 0.4253, 0.425, 0.4282, 0.4877, 1.009, 3.01",\
                 "0.5782, 0.55, 0.5167, 0.4964, 0.4901, 0.4985, 0.5023, 0.5866, 1.288, 3.684",\
                 "0.7038, 0.6682, 0.6247, 0.5978, 0.5861, 0.5825, 0.6027, 0.7544, 1.75, 4.672",\
                 "0.8558, 0.8134, 0.7606, 0.7256, 0.7052, 0.695, 0.716, 1.03, 2.531, 6.068",\
                 "1.035, 0.9866, 0.9235, 0.881, 0.8528, 0.84, 0.8925, 1.515, 3.799, 7.838");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_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.03028, 0.1331, 0.3293, 0.6351, 1.064, 1.629, 2.34, 3.208, 4.243");
          values("0.4893, 0.5804, 0.8145, 1.186, 1.74, 2.513, 3.53, 4.812, 6.377, 8.241",\
                 "0.5241, 0.6152, 0.8494, 1.221, 1.775, 2.548, 3.565, 4.847, 6.412, 8.275",\
                 "0.6551, 0.7458, 0.9796, 1.351, 1.905, 2.678, 3.696, 4.974, 6.536, 8.399",\
                 "0.8932, 0.9859, 1.222, 1.594, 2.147, 2.92, 3.936, 5.217, 6.78, 8.642",\
                 "1.17, 1.27, 1.519, 1.898, 2.451, 3.223, 4.239, 5.52, 7.08, 8.944",\
                 "1.482, 1.59, 1.853, 2.239, 2.796, 3.568, 4.582, 5.864, 7.429, 9.293",\
                 "1.831, 1.949, 2.229, 2.627, 3.185, 3.957, 4.972, 6.251, 7.812, 9.68",\
                 "2.217, 2.344, 2.644, 3.058, 3.625, 4.399, 5.413, 6.691, 8.254, 10.11",\
                 "2.641, 2.777, 3.098, 3.531, 4.112, 4.894, 5.911, 7.188, 8.748, 10.61",\
                 "3.103, 3.25, 3.591, 4.048, 4.644, 5.438, 6.465, 7.746, 9.305, 11.17");
        }

        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.03028, 0.1331, 0.3293, 0.6351, 1.064, 1.629, 2.34, 3.208, 4.243");
          values("0.4577, 0.5465, 0.7874, 1.2, 1.834, 2.723, 3.893, 5.367, 7.165, 9.298",\
                 "0.4839, 0.5727, 0.8135, 1.226, 1.86, 2.748, 3.916, 5.393, 7.19, 9.328",\
                 "0.5831, 0.6714, 0.911, 1.323, 1.957, 2.847, 4.017, 5.491, 7.289, 9.429",\
                 "0.733, 0.8262, 1.07, 1.481, 2.115, 3.002, 4.171, 5.642, 7.447, 9.584",\
                 "0.8557, 0.9559, 1.211, 1.626, 2.258, 3.144, 4.313, 5.789, 7.584, 9.726",\
                 "0.9531, 1.061, 1.328, 1.747, 2.378, 3.264, 4.43, 5.9, 7.703, 9.845",\
                 "1.021, 1.137, 1.42, 1.845, 2.476, 3.361, 4.527, 5.996, 7.793, 9.938",\
                 "1.055, 1.18, 1.481, 1.918, 2.553, 3.438, 4.602, 6.071, 7.865, 10",\
                 "1.05, 1.185, 1.505, 1.959, 2.602, 3.489, 4.655, 6.123, 7.916, 10.05",\
                 "1.005, 1.149, 1.489, 1.96, 2.615, 3.513, 4.683, 6.151, 7.946, 10.08");
        }

        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.03028, 0.1331, 0.3293, 0.6351, 1.064, 1.629, 2.34, 3.208, 4.243");
          values("0.1729, 0.2736, 0.564, 1.131, 2.059, 3.374, 5.123, 7.313, 9.99, 13.2",\
                 "0.1728, 0.2727, 0.5638, 1.131, 2.058, 3.374, 5.123, 7.316, 9.995, 13.2",\
                 "0.1731, 0.2739, 0.5648, 1.132, 2.058, 3.379, 5.116, 7.321, 10.01, 13.2",\
                 "0.1904, 0.289, 0.573, 1.133, 2.059, 3.378, 5.12, 7.321, 10, 13.2",\
                 "0.2252, 0.3254, 0.6064, 1.148, 2.062, 3.378, 5.122, 7.316, 10.01, 13.2",\
                 "0.2642, 0.3662, 0.6442, 1.173, 2.073, 3.382, 5.12, 7.307, 9.994, 13.19",\
                 "0.307, 0.415, 0.6942, 1.204, 2.086, 3.386, 5.117, 7.311, 9.988, 13.17",\
                 "0.3536, 0.4688, 0.7536, 1.253, 2.115, 3.399, 5.123, 7.306, 9.976, 13.17",\
                 "0.4026, 0.5262, 0.822, 1.316, 2.166, 3.436, 5.138, 7.316, 9.98, 13.16",\
                 "0.45, 0.584, 0.896, 1.384, 2.23, 3.494, 5.182, 7.336, 9.988, 13.16");
        }

        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.03028, 0.1331, 0.3293, 0.6351, 1.064, 1.629, 2.34, 3.208, 4.243");
          values("0.1753, 0.2797, 0.621, 1.318, 2.432, 3.999, 6.064, 8.664, 11.84, 15.62",\
                 "0.1744, 0.2787, 0.6207, 1.318, 2.434, 3.997, 6.062, 8.666, 11.83, 15.62",\
                 "0.1756, 0.2795, 0.6212, 1.319, 2.435, 3.999, 6.064, 8.666, 11.84, 15.62",\
                 "0.1986, 0.2996, 0.6312, 1.318, 2.432, 4.002, 6.062, 8.663, 11.84, 15.62",\
                 "0.2304, 0.3324, 0.6564, 1.329, 2.431, 4.003, 6.062, 8.662, 11.82, 15.61",\
                 "0.2628, 0.3684, 0.6862, 1.339, 2.437, 3.999, 6.058, 8.656, 11.83, 15.62",\
                 "0.3016, 0.4092, 0.7258, 1.359, 2.444, 4.003, 6.061, 8.662, 11.82, 15.6",\
                 "0.3438, 0.4572, 0.777, 1.392, 2.458, 4.007, 6.061, 8.655, 11.83, 15.59",\
                 "0.3884, 0.506, 0.832, 1.437, 2.49, 4.03, 6.068, 8.658, 11.82, 15.61",\
                 "0.432, 0.556, 0.89, 1.488, 2.536, 4.064, 6.09, 8.666, 11.83, 15.6");
        }
      }
    }
  }

