/*
 * 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_3) {
    area : 30.732800 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.9637 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007644, 0.03097, 0.07551, 0.1449, 0.2423, 0.3704, 0.5318, 0.7288, 0.9637");
          values("0.3752, 0.3685, 0.362, 0.3594, 0.3585, 0.3583, 0.3577, 0.3577, 0.3577, 0.3575",\
                 "0.3744, 0.368, 0.3612, 0.3588, 0.3579, 0.3576, 0.3571, 0.3573, 0.3571, 0.3571",\
                 "0.3767, 0.3696, 0.3624, 0.3602, 0.3593, 0.359, 0.359, 0.3587, 0.3588, 0.3588",\
                 "0.3996, 0.391, 0.3798, 0.3741, 0.3721, 0.3714, 0.3709, 0.3707, 0.3705, 0.3705",\
                 "0.4511, 0.4381, 0.4191, 0.4075, 0.4021, 0.3995, 0.3979, 0.3969, 0.3962, 0.3959",\
                 "0.5256, 0.5092, 0.4821, 0.4639, 0.4523, 0.4466, 0.4431, 0.4407, 0.4394, 0.4385",\
                 "0.625, 0.6048, 0.5695, 0.5428, 0.5253, 0.5141, 0.5078, 0.5046, 0.5016, 0.4999",\
                 "0.7485, 0.7251, 0.6802, 0.6449, 0.6205, 0.6045, 0.5943, 0.5883, 0.584, 0.5814",\
                 "0.8967, 0.8705, 0.8175, 0.7723, 0.7398, 0.7181, 0.7038, 0.6945, 0.6882, 0.6834",\
                 "1.07, 1.04, 0.9797, 0.9254, 0.8848, 0.8558, 0.8367, 0.8237, 0.8146, 0.8086");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007644, 0.03097, 0.07551, 0.1449, 0.2423, 0.3704, 0.5318, 0.7288, 0.9637");
          values("0.2836, 0.2723, 0.2589, 0.2534, 0.2513, 0.2512, 0.253, 0.2552, 0.2593, 0.2664",\
                 "0.2823, 0.271, 0.2587, 0.2522, 0.2499, 0.2508, 0.2521, 0.2543, 0.2571, 0.2655",\
                 "0.2828, 0.2717, 0.2574, 0.2516, 0.249, 0.2503, 0.2516, 0.2543, 0.2566, 0.2645",\
                 "0.3032, 0.2906, 0.2728, 0.2634, 0.2596, 0.2598, 0.2602, 0.2647, 0.2674, 0.2735",\
                 "0.3517, 0.3353, 0.3116, 0.2969, 0.289, 0.2863, 0.2867, 0.2863, 0.2908, 0.2969",\
                 "0.4219, 0.4022, 0.3698, 0.35, 0.3382, 0.3313, 0.3295, 0.3277, 0.3291, 0.3382",\
                 "0.5162, 0.4929, 0.4533, 0.4224, 0.4065, 0.3988, 0.3925, 0.3911, 0.3891, 0.3938",\
                 "0.6331, 0.6067, 0.558, 0.5219, 0.4939, 0.4816, 0.4775, 0.4712, 0.4688, 0.4737",\
                 "0.7734, 0.7443, 0.6874, 0.6409, 0.6067, 0.586, 0.577, 0.5743, 0.5704, 0.5805",\
                 "0.9384, 0.9068, 0.8401, 0.7876, 0.7442, 0.7188, 0.7003, 0.6944, 0.695, 0.7098");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007644, 0.03097, 0.07551, 0.1449, 0.2423, 0.3704, 0.5318, 0.7288, 0.9637");
          values("0.3225, 0.3662, 0.4901, 0.6907, 0.9866, 1.398, 1.94, 2.623, 3.458, 4.452",\
                 "0.3355, 0.3792, 0.5031, 0.7037, 0.9998, 1.412, 1.954, 2.636, 3.47, 4.465",\
                 "0.3858, 0.4294, 0.553, 0.7535, 1.05, 1.461, 2.003, 2.686, 3.521, 4.515",\
                 "0.4846, 0.5277, 0.6504, 0.8501, 1.145, 1.557, 2.099, 2.782, 3.615, 4.608",\
                 "0.6062, 0.6513, 0.7766, 0.9776, 1.272, 1.682, 2.223, 2.905, 3.74, 4.734",\
                 "0.7386, 0.7862, 0.9155, 1.12, 1.414, 1.823, 2.364, 3.046, 3.878, 4.871",\
                 "0.8791, 0.9303, 1.065, 1.274, 1.57, 1.979, 2.518, 3.197, 4.031, 5.023",\
                 "1.026, 1.082, 1.223, 1.439, 1.74, 2.15, 2.687, 3.367, 4.196, 5.189",\
                 "1.18, 1.239, 1.389, 1.612, 1.918, 2.334, 2.872, 3.551, 4.381, 5.371",\
                 "1.341, 1.403, 1.562, 1.792, 2.106, 2.527, 3.073, 3.753, 4.582, 5.572");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007644, 0.03097, 0.07551, 0.1449, 0.2423, 0.3704, 0.5318, 0.7288, 0.9637");
          values("0.3466, 0.3867, 0.4972, 0.6782, 0.9494, 1.329, 1.827, 2.458, 3.226, 4.142",\
                 "0.3557, 0.3956, 0.5066, 0.6874, 0.9584, 1.337, 1.837, 2.467, 3.236, 4.151",\
                 "0.3931, 0.4332, 0.5436, 0.7245, 0.995, 1.375, 1.874, 2.504, 3.273, 4.191",\
                 "0.4711, 0.5111, 0.6208, 0.8008, 1.071, 1.45, 1.949, 2.579, 3.349, 4.266",\
                 "0.5606, 0.6035, 0.7167, 0.8977, 1.167, 1.545, 2.044, 2.673, 3.44, 4.358",\
                 "0.6482, 0.6944, 0.8128, 0.9964, 1.265, 1.641, 2.139, 2.767, 3.536, 4.453",\
                 "0.7324, 0.7824, 0.9081, 1.095, 1.365, 1.74, 2.236, 2.862, 3.63, 4.546",\
                 "0.8106, 0.8643, 0.9983, 1.193, 1.464, 1.84, 2.335, 2.961, 3.726, 4.641",\
                 "0.8819, 0.9396, 1.083, 1.284, 1.56, 1.939, 2.435, 3.059, 3.825, 4.738",\
                 "0.9457, 1.007, 1.159, 1.369, 1.651, 2.034, 2.535, 3.159, 3.925, 4.835");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007644, 0.03097, 0.07551, 0.1449, 0.2423, 0.3704, 0.5318, 0.7288, 0.9637");
          values("0.1203, 0.1712, 0.3297, 0.6267, 1.111, 1.807, 2.73, 3.891, 5.31, 6.997",\
                 "0.1203, 0.1712, 0.3299, 0.6261, 1.11, 1.806, 2.73, 3.893, 5.312, 7.006",\
                 "0.1207, 0.1715, 0.3296, 0.6256, 1.111, 1.808, 2.73, 3.894, 5.31, 7",\
                 "0.1249, 0.175, 0.3324, 0.6278, 1.112, 1.807, 2.729, 3.892, 5.314, 7.007",\
                 "0.1426, 0.1928, 0.3468, 0.6344, 1.112, 1.807, 2.729, 3.894, 5.31, 6.999",\
                 "0.1644, 0.2148, 0.3672, 0.6492, 1.119, 1.809, 2.73, 3.888, 5.313, 7.001",\
                 "0.19, 0.2428, 0.3938, 0.6724, 1.13, 1.813, 2.729, 3.891, 5.31, 6.999",\
                 "0.2178, 0.2728, 0.425, 0.703, 1.152, 1.822, 2.732, 3.888, 5.302, 6.999",\
                 "0.248, 0.306, 0.4602, 0.7372, 1.186, 1.851, 2.745, 3.892, 5.305, 6.989",\
                 "0.2778, 0.3402, 0.498, 0.7732, 1.224, 1.888, 2.778, 3.91, 5.308, 6.991");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007644, 0.03097, 0.07551, 0.1449, 0.2423, 0.3704, 0.5318, 0.7288, 0.9637");
          values("0.1278, 0.1727, 0.3195, 0.6102, 1.087, 1.768, 2.668, 3.795, 5.184, 6.83",\
                 "0.1282, 0.1735, 0.3193, 0.6101, 1.087, 1.769, 2.663, 3.8, 5.18, 6.83",\
                 "0.1282, 0.1729, 0.3198, 0.6092, 1.088, 1.769, 2.668, 3.8, 5.181, 6.836",\
                 "0.1316, 0.1756, 0.3218, 0.6112, 1.087, 1.768, 2.667, 3.796, 5.183, 6.835",\
                 "0.1512, 0.1954, 0.336, 0.6168, 1.087, 1.768, 2.664, 3.798, 5.18, 6.834",\
                 "0.1728, 0.2188, 0.354, 0.6274, 1.092, 1.771, 2.663, 3.799, 5.18, 6.833",\
                 "0.1982, 0.2446, 0.3794, 0.6442, 1.099, 1.771, 2.666, 3.797, 5.184, 6.826",\
                 "0.2232, 0.2752, 0.4098, 0.6688, 1.114, 1.777, 2.668, 3.798, 5.187, 6.831",\
                 "0.2498, 0.3044, 0.4418, 0.6994, 1.138, 1.795, 2.679, 3.8, 5.178, 6.828",\
                 "0.2784, 0.3364, 0.48, 0.7328, 1.167, 1.825, 2.7, 3.816, 5.182, 6.824");
        }
      }
    }
  }

