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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 2.865 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09016, 0.2227, 0.4291, 0.7188, 1.1, 1.58, 2.166, 2.865");
          values("0.2808, 0.2824, 0.2882, 0.2925, 0.2951, 0.2963, 0.2971, 0.2974, 0.2978, 0.2979",\
                 "0.2796, 0.2808, 0.2869, 0.2915, 0.2938, 0.2951, 0.2959, 0.2963, 0.2966, 0.2968",\
                 "0.2783, 0.279, 0.2845, 0.2893, 0.292, 0.2938, 0.2945, 0.2951, 0.2954, 0.2955",\
                 "0.2855, 0.2844, 0.287, 0.2909, 0.2939, 0.2958, 0.297, 0.2978, 0.2981, 0.2983",\
                 "0.3021, 0.2987, 0.2967, 0.2997, 0.3023, 0.3041, 0.3055, 0.3064, 0.3068, 0.3072",\
                 "0.3268, 0.3207, 0.3158, 0.3161, 0.318, 0.3198, 0.321, 0.322, 0.3227, 0.3229",\
                 "0.3606, 0.3522, 0.3435, 0.3411, 0.342, 0.3433, 0.3445, 0.3453, 0.3459, 0.346",\
                 "0.4048, 0.3934, 0.3814, 0.3759, 0.3747, 0.3755, 0.3762, 0.3769, 0.3775, 0.3773",\
                 "0.4593, 0.4448, 0.429, 0.4208, 0.4175, 0.4169, 0.4172, 0.4178, 0.4181, 0.4173",\
                 "0.5245, 0.5071, 0.487, 0.4755, 0.4706, 0.4684, 0.4678, 0.468, 0.4678, 0.4659");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09016, 0.2227, 0.4291, 0.7188, 1.1, 1.58, 2.166, 2.865");
          values("0.196, 0.1953, 0.198, 0.2014, 0.2055, 0.2098, 0.2131, 0.2187, 0.2326, 0.3096",\
                 "0.1944, 0.1939, 0.1971, 0.2001, 0.2043, 0.208, 0.2116, 0.2175, 0.2266, 0.3094",\
                 "0.1927, 0.1923, 0.1938, 0.1975, 0.2019, 0.2059, 0.2089, 0.2145, 0.2249, 0.3186",\
                 "0.1997, 0.1972, 0.1962, 0.198, 0.2028, 0.2077, 0.2116, 0.2202, 0.2278, 0.3319",\
                 "0.2152, 0.21, 0.2062, 0.2079, 0.2097, 0.2146, 0.2179, 0.2235, 0.2362, 0.3562",\
                 "0.2379, 0.2301, 0.2235, 0.2212, 0.225, 0.229, 0.2311, 0.2352, 0.2514, 0.4042",\
                 "0.269, 0.2583, 0.2489, 0.244, 0.2451, 0.2524, 0.253, 0.2568, 0.2752, 0.4834",\
                 "0.3096, 0.2962, 0.2831, 0.2764, 0.2748, 0.2761, 0.2887, 0.2896, 0.3182, 0.5979",\
                 "0.3599, 0.343, 0.3264, 0.3175, 0.3147, 0.3121, 0.3196, 0.3323, 0.3828, 0.8078",\
                 "0.4198, 0.3991, 0.378, 0.3677, 0.3645, 0.3622, 0.3628, 0.3746, 0.4904, 1.183");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09016, 0.2227, 0.4291, 0.7188, 1.1, 1.58, 2.166, 2.865");
          values("0.3569, 0.4284, 0.614, 0.9245, 1.398, 2.062, 2.935, 4.033, 5.377, 6.973",\
                 "0.3831, 0.4548, 0.6403, 0.9505, 1.425, 2.088, 2.961, 4.059, 5.401, 7.003",\
                 "0.48, 0.5513, 0.7366, 1.047, 1.521, 2.184, 3.057, 4.158, 5.5, 7.096",\
                 "0.6558, 0.7296, 0.9159, 1.226, 1.7, 2.364, 3.236, 4.337, 5.68, 7.275",\
                 "0.858, 0.9399, 1.136, 1.448, 1.922, 2.585, 3.457, 4.558, 5.899, 7.497",\
                 "1.077, 1.167, 1.374, 1.69, 2.165, 2.828, 3.7, 4.8, 6.139, 7.737",\
                 "1.32, 1.418, 1.637, 1.958, 2.432, 3.095, 3.967, 5.065, 6.406, 8.005",\
                 "1.59, 1.693, 1.929, 2.255, 2.729, 3.391, 4.263, 5.361, 6.702, 8.299",\
                 "1.885, 1.994, 2.246, 2.583, 3.058, 3.719, 4.591, 5.689, 7.029, 8.627",\
                 "2.204, 2.322, 2.591, 2.94, 3.419, 4.081, 4.952, 6.05, 7.39, 8.988");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09016, 0.2227, 0.4291, 0.7188, 1.1, 1.58, 2.166, 2.865");
          values("0.3412, 0.4062, 0.5778, 0.8766, 1.339, 1.987, 2.838, 3.909, 5.222, 6.778",\
                 "0.3613, 0.4263, 0.598, 0.8966, 1.359, 2.007, 2.858, 3.929, 5.239, 6.797",\
                 "0.4363, 0.501, 0.6721, 0.9711, 1.433, 2.081, 2.933, 4.002, 5.312, 6.878",\
                 "0.5595, 0.6282, 0.8018, 1.1, 1.562, 2.209, 3.061, 4.135, 5.443, 7.008",\
                 "0.6659, 0.7423, 0.9262, 1.226, 1.687, 2.334, 3.185, 4.258, 5.568, 7.13",\
                 "0.7504, 0.8341, 1.03, 1.331, 1.791, 2.438, 3.288, 4.361, 5.669, 7.233",\
                 "0.8175, 0.9075, 1.114, 1.419, 1.879, 2.525, 3.376, 4.445, 5.755, 7.313",\
                 "0.8662, 0.9627, 1.183, 1.492, 1.952, 2.596, 3.446, 4.517, 5.824, 7.383",\
                 "0.8925, 0.9956, 1.231, 1.547, 2.007, 2.651, 3.5, 4.571, 5.879, 7.437",\
                 "0.8947, 1.004, 1.254, 1.583, 2.044, 2.689, 3.537, 4.608, 5.915, 7.474");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09016, 0.2227, 0.4291, 0.7188, 1.1, 1.58, 2.166, 2.865");
          values("0.1222, 0.1959, 0.4338, 0.9169, 1.695, 2.791, 4.242, 6.051, 8.264, 10.92",\
                 "0.1221, 0.196, 0.4337, 0.9157, 1.692, 2.792, 4.242, 6.051, 8.269, 10.94",\
                 "0.1225, 0.1956, 0.4331, 0.9164, 1.695, 2.791, 4.235, 6.056, 8.279, 10.91",\
                 "0.1336, 0.2044, 0.4362, 0.9168, 1.693, 2.793, 4.238, 6.067, 8.262, 10.91",\
                 "0.1586, 0.2328, 0.4546, 0.9214, 1.694, 2.792, 4.232, 6.053, 8.269, 10.91",\
                 "0.1822, 0.2638, 0.4784, 0.9304, 1.697, 2.788, 4.233, 6.061, 8.275, 10.91",\
                 "0.2054, 0.2942, 0.5026, 0.941, 1.702, 2.791, 4.23, 6.054, 8.268, 10.92",\
                 "0.2298, 0.326, 0.5346, 0.9562, 1.707, 2.794, 4.233, 6.045, 8.27, 10.92",\
                 "0.257, 0.3596, 0.575, 0.9774, 1.713, 2.8, 4.234, 6.047, 8.262, 10.92",\
                 "0.2844, 0.3922, 0.6212, 1.009, 1.729, 2.804, 4.238, 6.05, 8.264, 10.9");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09016, 0.2227, 0.4291, 0.7188, 1.1, 1.58, 2.166, 2.865");
          values("0.1182, 0.1872, 0.4259, 0.9209, 1.711, 2.816, 4.276, 6.118, 8.366, 11.02",\
                 "0.1174, 0.1871, 0.4259, 0.9224, 1.711, 2.819, 4.273, 6.119, 8.357, 11.03",\
                 "0.1181, 0.1877, 0.4264, 0.9219, 1.709, 2.818, 4.274, 6.121, 8.361, 11.05",\
                 "0.133, 0.2002, 0.4294, 0.9226, 1.709, 2.82, 4.279, 6.122, 8.348, 11.05",\
                 "0.1576, 0.2282, 0.4462, 0.9262, 1.711, 2.815, 4.278, 6.118, 8.349, 11.03",\
                 "0.1808, 0.2562, 0.4666, 0.9308, 1.711, 2.815, 4.269, 6.114, 8.358, 11.03",\
                 "0.2034, 0.2828, 0.4902, 0.9392, 1.714, 2.817, 4.271, 6.109, 8.355, 11.03",\
                 "0.227, 0.3102, 0.518, 0.9484, 1.716, 2.82, 4.272, 6.101, 8.349, 11.02",\
                 "0.253, 0.3406, 0.5536, 0.9652, 1.721, 2.82, 4.276, 6.104, 8.337, 11.02",\
                 "0.2796, 0.3712, 0.5926, 0.9884, 1.731, 2.825, 4.277, 6.104, 8.34, 11");
        }
      }
    }
  }

