/*
 * 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_2) {
    area : 17.561600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.4701 ;
      max_transition : 2.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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004238, 0.0156, 0.03731, 0.07112, 0.1186, 0.181, 0.2596, 0.3557, 0.4701");
          values("0.3146, 0.3068, 0.2966, 0.2912, 0.2878, 0.2858, 0.2845, 0.284, 0.2835, 0.2834",\
                 "0.3159, 0.3077, 0.2977, 0.2917, 0.2886, 0.2868, 0.2855, 0.2849, 0.2844, 0.2842",\
                 "0.3271, 0.3185, 0.3073, 0.3009, 0.2975, 0.2952, 0.2938, 0.2932, 0.2927, 0.2925",\
                 "0.3713, 0.3608, 0.3448, 0.334, 0.3277, 0.3237, 0.3213, 0.3198, 0.3189, 0.3182",\
                 "0.4517, 0.4382, 0.4154, 0.397, 0.3857, 0.3778, 0.3733, 0.3702, 0.3681, 0.3667",\
                 "0.5662, 0.5502, 0.5197, 0.4943, 0.4748, 0.4621, 0.4542, 0.449, 0.4452, 0.4425",\
                 "0.7145, 0.6962, 0.6571, 0.6235, 0.5974, 0.5783, 0.5655, 0.5569, 0.551, 0.5467",\
                 "0.8968, 0.8761, 0.8304, 0.7881, 0.7534, 0.7274, 0.7099, 0.6968, 0.6876, 0.6813",\
                 "1.115, 1.091, 1.039, 0.9881, 0.9459, 0.9124, 0.8876, 0.8702, 0.8576, 0.8484",\
                 "1.368, 1.344, 1.286, 1.226, 1.176, 1.133, 1.102, 1.079, 1.062, 1.05");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004238, 0.0156, 0.03731, 0.07112, 0.1186, 0.181, 0.2596, 0.3557, 0.4701");
          values("0.2293, 0.2193, 0.2059, 0.1972, 0.1927, 0.191, 0.1895, 0.1907, 0.1931, 0.198",\
                 "0.2293, 0.2192, 0.2056, 0.1978, 0.1925, 0.1918, 0.1911, 0.1913, 0.1959, 0.198",\
                 "0.2372, 0.2272, 0.2129, 0.2038, 0.1979, 0.1961, 0.1944, 0.1968, 0.2014, 0.2018",\
                 "0.2758, 0.2646, 0.2461, 0.2328, 0.2245, 0.2208, 0.2197, 0.2188, 0.2239, 0.2255",\
                 "0.3474, 0.3332, 0.3099, 0.2913, 0.2778, 0.2706, 0.2648, 0.2644, 0.2674, 0.27",\
                 "0.4525, 0.4356, 0.4055, 0.3792, 0.3636, 0.3492, 0.3391, 0.3376, 0.3378, 0.3377",\
                 "0.5903, 0.5705, 0.533, 0.4967, 0.4737, 0.4612, 0.4458, 0.436, 0.4346, 0.4345",\
                 "0.7603, 0.739, 0.6944, 0.6501, 0.6171, 0.5976, 0.5833, 0.5702, 0.5638, 0.5566",\
                 "0.9643, 0.9406, 0.8892, 0.8394, 0.798, 0.7685, 0.7483, 0.7369, 0.7255, 0.715",\
                 "1.204, 1.179, 1.121, 1.063, 1.014, 0.9729, 0.9446, 0.931, 0.9197, 0.9102");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004238, 0.0156, 0.03731, 0.07112, 0.1186, 0.181, 0.2596, 0.3557, 0.4701");
          values("0.1127, 0.1269, 0.168, 0.2377, 0.3434, 0.4916, 0.687, 0.9332, 1.234, 1.593",\
                 "0.1167, 0.1309, 0.1719, 0.2417, 0.3474, 0.4956, 0.6909, 0.9372, 1.238, 1.597",\
                 "0.1335, 0.1476, 0.1883, 0.2579, 0.3634, 0.5116, 0.7069, 0.9532, 1.254, 1.613",\
                 "0.1663, 0.1804, 0.2207, 0.2895, 0.3944, 0.5422, 0.7372, 0.9832, 1.284, 1.643",\
                 "0.2067, 0.2216, 0.263, 0.3316, 0.4354, 0.5822, 0.7766, 1.022, 1.323, 1.681",\
                 "0.2508, 0.2669, 0.3099, 0.3795, 0.4832, 0.6291, 0.8225, 1.067, 1.368, 1.725",\
                 "0.2974, 0.3148, 0.3599, 0.4312, 0.5363, 0.6819, 0.8745, 1.119, 1.418, 1.775",\
                 "0.3464, 0.3651, 0.4131, 0.486, 0.5922, 0.7402, 0.9332, 1.177, 1.475, 1.832",\
                 "0.3975, 0.4176, 0.4685, 0.5436, 0.6514, 0.8005, 0.9964, 1.241, 1.539, 1.895",\
                 "0.4507, 0.4719, 0.5262, 0.6041, 0.7132, 0.8636, 1.062, 1.31, 1.61, 1.965");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004238, 0.0156, 0.03731, 0.07112, 0.1186, 0.181, 0.2596, 0.3557, 0.4701");
          values("0.1191, 0.1323, 0.1708, 0.2386, 0.3447, 0.4942, 0.6918, 0.9409, 1.245, 1.607",\
                 "0.1218, 0.1349, 0.1733, 0.2412, 0.3472, 0.4968, 0.6944, 0.9431, 1.247, 1.61",\
                 "0.1341, 0.1473, 0.1855, 0.2532, 0.3591, 0.5087, 0.7061, 0.9551, 1.259, 1.622",\
                 "0.1595, 0.1729, 0.2107, 0.2778, 0.383, 0.5322, 0.7293, 0.9786, 1.282, 1.645",\
                 "0.1889, 0.2032, 0.242, 0.3084, 0.4128, 0.561, 0.7576, 1.006, 1.309, 1.671",\
                 "0.2186, 0.2342, 0.2751, 0.3415, 0.4447, 0.5921, 0.7872, 1.036, 1.339, 1.7",\
                 "0.2468, 0.2639, 0.3074, 0.3746, 0.4778, 0.6245, 0.819, 1.066, 1.369, 1.73",\
                 "0.2729, 0.2914, 0.3382, 0.4071, 0.5105, 0.6576, 0.8517, 1.098, 1.4, 1.76",\
                 "0.2968, 0.3165, 0.3663, 0.4375, 0.5421, 0.6898, 0.885, 1.131, 1.432, 1.792",\
                 "0.3179, 0.3388, 0.3921, 0.4657, 0.5709, 0.7197, 0.9169, 1.165, 1.465, 1.825");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004238, 0.0156, 0.03731, 0.07112, 0.1186, 0.181, 0.2596, 0.3557, 0.4701");
          values("0.04278, 0.05914, 0.1126, 0.217, 0.3888, 0.6344, 0.9563, 1.363, 1.858, 2.456",\
                 "0.04288, 0.05934, 0.1126, 0.217, 0.3889, 0.6347, 0.9572, 1.363, 1.856, 2.456",\
                 "0.04296, 0.0594, 0.1128, 0.2175, 0.3889, 0.6338, 0.9561, 1.364, 1.858, 2.456",\
                 "0.04584, 0.062, 0.1147, 0.218, 0.3894, 0.6337, 0.9571, 1.364, 1.859, 2.446",\
                 "0.05284, 0.0691, 0.1202, 0.2205, 0.389, 0.6343, 0.9571, 1.364, 1.857, 2.449",\
                 "0.06176, 0.07866, 0.1295, 0.2277, 0.3922, 0.6345, 0.9563, 1.363, 1.858, 2.449",\
                 "0.07174, 0.08936, 0.1403, 0.2381, 0.4006, 0.637, 0.9556, 1.363, 1.859, 2.453",\
                 "0.082, 0.1014, 0.153, 0.2488, 0.4126, 0.6488, 0.9618, 1.362, 1.856, 2.448",\
                 "0.093, 0.1136, 0.1674, 0.2616, 0.4244, 0.6644, 0.9774, 1.371, 1.859, 2.447",\
                 "0.1046, 0.1274, 0.1822, 0.2748, 0.4368, 0.6788, 0.9978, 1.391, 1.871, 2.451");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004238, 0.0156, 0.03731, 0.07112, 0.1186, 0.181, 0.2596, 0.3557, 0.4701");
          values("0.04538, 0.06116, 0.1155, 0.2292, 0.4134, 0.674, 1.017, 1.45, 1.978, 2.604",\
                 "0.0454, 0.06114, 0.1154, 0.2291, 0.4133, 0.6748, 1.016, 1.451, 1.978, 2.606",\
                 "0.0453, 0.0609, 0.1154, 0.2292, 0.4141, 0.6749, 1.017, 1.449, 1.978, 2.609",\
                 "0.04814, 0.06344, 0.1168, 0.2296, 0.4133, 0.6736, 1.017, 1.451, 1.978, 2.606",\
                 "0.05476, 0.06994, 0.1207, 0.2308, 0.4136, 0.6743, 1.017, 1.449, 1.975, 2.606",\
                 "0.06282, 0.07868, 0.1281, 0.2339, 0.415, 0.6735, 1.017, 1.448, 1.976, 2.607",\
                 "0.07266, 0.08892, 0.1374, 0.2403, 0.4181, 0.6752, 1.017, 1.446, 1.976, 2.606",\
                 "0.082, 0.0998, 0.1498, 0.2484, 0.4262, 0.6814, 1.018, 1.447, 1.972, 2.6",\
                 "0.0916, 0.1112, 0.1628, 0.2584, 0.4346, 0.6914, 1.026, 1.452, 1.973, 2.603",\
                 "0.1018, 0.1238, 0.1772, 0.2694, 0.4436, 0.7022, 1.04, 1.462, 1.98, 2.601");
        }
      }
    }
  }

