/*
 * 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_20) {
    area : 136.102400 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 4.643 ;
      max_transition : 8.9 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.03304, 0.1455, 0.3603, 0.6949, 1.164, 1.782, 2.561, 3.511, 4.643");
          values("0.3368, 0.3345, 0.3343, 0.3358, 0.3368, 0.3374, 0.338, 0.3383, 0.3385, 0.3385",\
                 "0.3356, 0.3335, 0.3334, 0.3349, 0.3358, 0.3366, 0.3369, 0.3372, 0.3374, 0.3375",\
                 "0.3352, 0.3326, 0.3318, 0.3336, 0.335, 0.3358, 0.3363, 0.3365, 0.3368, 0.337",\
                 "0.3465, 0.3425, 0.3391, 0.3392, 0.3402, 0.3411, 0.3418, 0.3422, 0.3425, 0.3427",\
                 "0.3771, 0.3695, 0.3611, 0.3575, 0.3569, 0.357, 0.3572, 0.3574, 0.3575, 0.3577",\
                 "0.4225, 0.4117, 0.397, 0.3895, 0.3863, 0.3851, 0.3844, 0.3844, 0.3843, 0.3842",\
                 "0.4843, 0.4699, 0.4493, 0.4366, 0.4301, 0.4269, 0.4252, 0.4247, 0.424, 0.424",\
                 "0.5634, 0.5458, 0.5187, 0.5005, 0.4895, 0.484, 0.481, 0.4791, 0.478, 0.4773",\
                 "0.6614, 0.6409, 0.6064, 0.5819, 0.5662, 0.5574, 0.5521, 0.5493, 0.5474, 0.5461",\
                 "0.7781, 0.7551, 0.7135, 0.682, 0.6614, 0.6486, 0.6408, 0.6358, 0.6326, 0.6305");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.03304, 0.1455, 0.3603, 0.6949, 1.164, 1.782, 2.561, 3.511, 4.643");
          values("0.2386, 0.2362, 0.2372, 0.2393, 0.2418, 0.2453, 0.2475, 0.2509, 0.257, 0.2887",\
                 "0.2376, 0.2352, 0.2363, 0.238, 0.241, 0.2433, 0.2469, 0.2511, 0.2561, 0.2876",\
                 "0.2371, 0.2347, 0.2341, 0.2369, 0.2392, 0.2417, 0.2451, 0.2481, 0.2539, 0.2873",\
                 "0.2502, 0.2455, 0.2414, 0.242, 0.2437, 0.2474, 0.2505, 0.2531, 0.2588, 0.2952",\
                 "0.2758, 0.2686, 0.2596, 0.2575, 0.2578, 0.2603, 0.2626, 0.2657, 0.2729, 0.3176",\
                 "0.315, 0.3046, 0.2907, 0.2852, 0.2861, 0.2859, 0.2867, 0.2895, 0.2947, 0.343",\
                 "0.3696, 0.3566, 0.3373, 0.3257, 0.3206, 0.3247, 0.3263, 0.3259, 0.3329, 0.3893",\
                 "0.4407, 0.4233, 0.3993, 0.3822, 0.373, 0.3714, 0.3774, 0.3796, 0.3862, 0.4582",\
                 "0.528, 0.508, 0.4775, 0.4552, 0.4419, 0.4363, 0.4362, 0.4422, 0.4565, 0.5602",\
                 "0.6316, 0.6074, 0.5708, 0.544, 0.5259, 0.5173, 0.5122, 0.5155, 0.5426, 0.6976");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.03304, 0.1455, 0.3603, 0.6949, 1.164, 1.782, 2.561, 3.511, 4.643");
          values("0.3833, 0.4315, 0.5604, 0.7549, 1.03, 1.405, 1.898, 2.518, 3.276, 4.18",\
                 "0.4024, 0.4506, 0.5796, 0.7742, 1.049, 1.425, 1.917, 2.537, 3.295, 4.196",\
                 "0.4744, 0.5224, 0.6512, 0.8459, 1.121, 1.496, 1.989, 2.609, 3.367, 4.271",\
                 "0.6153, 0.6632, 0.7921, 0.9866, 1.261, 1.637, 2.129, 2.75, 3.508, 4.411",\
                 "0.7932, 0.8443, 0.9796, 1.178, 1.454, 1.829, 2.321, 2.941, 3.699, 4.602",\
                 "0.9901, 1.045, 1.188, 1.394, 1.674, 2.05, 2.541, 3.161, 3.918, 4.821",\
                 "1.211, 1.27, 1.422, 1.636, 1.92, 2.298, 2.79, 3.409, 4.165, 5.069",\
                 "1.456, 1.519, 1.681, 1.906, 2.196, 2.577, 3.069, 3.689, 4.444, 5.344",\
                 "1.725, 1.793, 1.966, 2.203, 2.503, 2.889, 3.384, 4.003, 4.76, 5.661",\
                 "2.02, 2.093, 2.277, 2.527, 2.839, 3.233, 3.734, 4.356, 5.114, 6.014");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.03304, 0.1455, 0.3603, 0.6949, 1.164, 1.782, 2.561, 3.511, 4.643");
          values("0.3384, 0.3872, 0.526, 0.7592, 1.114, 1.611, 2.265, 3.088, 4.093, 5.294",\
                 "0.3535, 0.402, 0.5408, 0.7742, 1.129, 1.627, 2.279, 3.104, 4.11, 5.308",\
                 "0.4089, 0.4574, 0.5954, 0.8288, 1.184, 1.681, 2.334, 3.159, 4.164, 5.358",\
                 "0.5028, 0.5523, 0.691, 0.924, 1.279, 1.776, 2.43, 3.252, 4.256, 5.457",\
                 "0.5827, 0.6359, 0.7811, 1.016, 1.371, 1.867, 2.521, 3.344, 4.349, 5.548",\
                 "0.6431, 0.6995, 0.8518, 1.091, 1.446, 1.941, 2.593, 3.415, 4.42, 5.621",\
                 "0.6842, 0.745, 0.9053, 1.149, 1.503, 1.998, 2.65, 3.471, 4.475, 5.671",\
                 "0.703, 0.7679, 0.9377, 1.188, 1.545, 2.039, 2.69, 3.512, 4.514, 5.71",\
                 "0.697, 0.7665, 0.9461, 1.207, 1.569, 2.064, 2.715, 3.536, 4.538, 5.733",\
                 "0.6634, 0.737, 0.928, 1.2, 1.569, 2.069, 2.723, 3.543, 4.546, 5.74");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.03304, 0.1455, 0.3603, 0.6949, 1.164, 1.782, 2.561, 3.511, 4.643");
          values("0.1412, 0.1943, 0.3452, 0.6183, 1.062, 1.709, 2.567, 3.661, 4.986, 6.568",\
                 "0.1412, 0.1953, 0.3451, 0.618, 1.062, 1.71, 2.571, 3.662, 4.988, 6.579",\
                 "0.1419, 0.1948, 0.3459, 0.6178, 1.062, 1.71, 2.567, 3.659, 4.988, 6.568",\
                 "0.147, 0.1994, 0.35, 0.62, 1.063, 1.71, 2.569, 3.661, 4.982, 6.574",\
                 "0.1726, 0.2244, 0.3718, 0.6328, 1.067, 1.709, 2.567, 3.661, 4.984, 6.575",\
                 "0.2004, 0.2538, 0.403, 0.6568, 1.083, 1.717, 2.572, 3.661, 4.983, 6.575",\
                 "0.2324, 0.287, 0.4378, 0.6862, 1.099, 1.724, 2.576, 3.656, 4.984, 6.573",\
                 "0.266, 0.3236, 0.477, 0.724, 1.127, 1.74, 2.582, 3.662, 4.989, 6.56",\
                 "0.303, 0.3644, 0.5234, 0.7696, 1.165, 1.766, 2.597, 3.671, 4.988, 6.568",\
                 "0.3424, 0.4078, 0.5746, 0.8228, 1.211, 1.807, 2.632, 3.691, 5.001, 6.572");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.03304, 0.1455, 0.3603, 0.6949, 1.164, 1.782, 2.561, 3.511, 4.643");
          values("0.1415, 0.2003, 0.3947, 0.7845, 1.417, 2.304, 3.477, 4.953, 6.756, 8.907",\
                 "0.1417, 0.2003, 0.3948, 0.7845, 1.414, 2.303, 3.476, 4.958, 6.75, 8.897",\
                 "0.1415, 0.2004, 0.395, 0.7862, 1.415, 2.303, 3.474, 4.954, 6.757, 8.897",\
                 "0.1535, 0.21, 0.3992, 0.7874, 1.414, 2.307, 3.481, 4.952, 6.754, 8.903",\
                 "0.1748, 0.234, 0.4194, 0.7936, 1.417, 2.303, 3.475, 4.952, 6.754, 8.913",\
                 "0.1996, 0.2574, 0.441, 0.805, 1.422, 2.306, 3.474, 4.95, 6.754, 8.897",\
                 "0.2248, 0.2852, 0.4686, 0.8202, 1.426, 2.31, 3.479, 4.949, 6.762, 8.897",\
                 "0.255, 0.3152, 0.5, 0.8446, 1.439, 2.314, 3.486, 4.952, 6.758, 8.9",\
                 "0.2872, 0.3516, 0.538, 0.8764, 1.458, 2.326, 3.485, 4.956, 6.751, 8.909",\
                 "0.3214, 0.387, 0.579, 0.916, 1.491, 2.35, 3.498, 4.962, 6.754, 8.897");
        }
      }
    }
  }

