/*
 * 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_mcu9t5v0__clkbuf_8) {
    area : 73.382400 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 2.641 ;
      max_transition : 8.4 ;
      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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01922, 0.0832, 0.2054, 0.3957, 0.6627, 1.014, 1.457, 1.997, 2.641");
          values("0.1984, 0.199, 0.2012, 0.2034, 0.2044, 0.205, 0.2053, 0.2056, 0.2057, 0.2059",\
                 "0.1972, 0.1977, 0.2001, 0.202, 0.2031, 0.2038, 0.2042, 0.2044, 0.2045, 0.2046",\
                 "0.1962, 0.1964, 0.1985, 0.2006, 0.202, 0.2028, 0.2033, 0.2036, 0.2037, 0.2038",\
                 "0.204, 0.2031, 0.2032, 0.2045, 0.206, 0.2068, 0.2073, 0.2076, 0.2079, 0.208",\
                 "0.2216, 0.2186, 0.2165, 0.2164, 0.2173, 0.2178, 0.2184, 0.2188, 0.219, 0.2192",\
                 "0.249, 0.2442, 0.239, 0.2373, 0.2373, 0.2375, 0.2378, 0.2382, 0.2384, 0.2384",\
                 "0.2871, 0.2805, 0.2721, 0.268, 0.2666, 0.2663, 0.2664, 0.2666, 0.2665, 0.2667",\
                 "0.3368, 0.3282, 0.3167, 0.3099, 0.3067, 0.3053, 0.3047, 0.3046, 0.3045, 0.3044",\
                 "0.3983, 0.3881, 0.3728, 0.3631, 0.3578, 0.3551, 0.3538, 0.3532, 0.3528, 0.3528",\
                 "0.4718, 0.4598, 0.4408, 0.4282, 0.4207, 0.4165, 0.4141, 0.413, 0.4123, 0.4118");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01922, 0.0832, 0.2054, 0.3957, 0.6627, 1.014, 1.457, 1.997, 2.641");
          values("0.1228, 0.1231, 0.1254, 0.1279, 0.1299, 0.1321, 0.1341, 0.1358, 0.1388, 0.151",\
                 "0.1216, 0.1217, 0.1242, 0.1266, 0.1287, 0.1309, 0.1321, 0.1344, 0.1378, 0.1492",\
                 "0.1207, 0.1205, 0.1219, 0.1244, 0.1265, 0.1293, 0.1305, 0.1326, 0.1363, 0.1485",\
                 "0.128, 0.1266, 0.1258, 0.1274, 0.1294, 0.1317, 0.1333, 0.136, 0.1394, 0.1538",\
                 "0.1434, 0.1402, 0.1375, 0.138, 0.1389, 0.141, 0.143, 0.1457, 0.1499, 0.1627",\
                 "0.168, 0.1636, 0.1581, 0.1559, 0.1581, 0.159, 0.1596, 0.1621, 0.1652, 0.1828",\
                 "0.203, 0.1967, 0.1891, 0.184, 0.1834, 0.1865, 0.1884, 0.189, 0.1919, 0.2122",\
                 "0.2487, 0.2404, 0.2306, 0.2234, 0.2202, 0.2206, 0.2248, 0.2278, 0.2293, 0.2544",\
                 "0.3055, 0.2949, 0.2813, 0.2723, 0.268, 0.2659, 0.2668, 0.2722, 0.2784, 0.3134",\
                 "0.373, 0.3606, 0.344, 0.3323, 0.3265, 0.323, 0.3216, 0.3237, 0.3364, 0.3908");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01922, 0.0832, 0.2054, 0.3957, 0.6627, 1.014, 1.457, 1.997, 2.641");
          values("0.2807, 0.322, 0.431, 0.6008, 0.8483, 1.192, 1.642, 2.21, 2.901, 3.727",\
                 "0.2983, 0.3396, 0.4485, 0.6184, 0.866, 1.209, 1.66, 2.227, 2.921, 3.746",\
                 "0.3656, 0.4066, 0.5154, 0.6854, 0.9331, 1.276, 1.727, 2.295, 2.987, 3.815",\
                 "0.4852, 0.5277, 0.6384, 0.8091, 1.057, 1.4, 1.851, 2.418, 3.113, 3.939",\
                 "0.621, 0.6666, 0.7843, 0.96, 1.209, 1.552, 2.003, 2.57, 3.265, 4.09",\
                 "0.771, 0.82, 0.9445, 1.125, 1.378, 1.722, 2.172, 2.739, 3.432, 4.257",\
                 "0.9379, 0.9908, 1.124, 1.311, 1.566, 1.911, 2.362, 2.93, 3.622, 4.446",\
                 "1.121, 1.178, 1.321, 1.517, 1.777, 2.124, 2.575, 3.143, 3.836, 4.66",\
                 "1.321, 1.383, 1.535, 1.742, 2.009, 2.362, 2.815, 3.383, 4.076, 4.901",\
                 "1.538, 1.603, 1.767, 1.986, 2.263, 2.622, 3.081, 3.652, 4.345, 5.171");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01922, 0.0832, 0.2054, 0.3957, 0.6627, 1.014, 1.457, 1.997, 2.641");
          values("0.2624, 0.306, 0.4308, 0.6494, 0.9852, 1.456, 2.074, 2.851, 3.805, 4.939",\
                 "0.2769, 0.3201, 0.4451, 0.6636, 0.9995, 1.47, 2.088, 2.867, 3.817, 4.953",\
                 "0.3312, 0.3744, 0.4987, 0.7171, 1.053, 1.524, 2.142, 2.922, 3.872, 5.008",\
                 "0.4123, 0.4577, 0.5836, 0.8018, 1.137, 1.608, 2.226, 3.005, 3.956, 5.089",\
                 "0.4793, 0.5278, 0.6592, 0.8784, 1.214, 1.684, 2.302, 3.082, 4.032, 5.164",\
                 "0.5331, 0.5852, 0.7224, 0.9429, 1.278, 1.747, 2.364, 3.144, 4.093, 5.226",\
                 "0.5735, 0.6293, 0.7742, 0.998, 1.332, 1.802, 2.42, 3.197, 4.146, 5.278",\
                 "0.5976, 0.6575, 0.8122, 1.042, 1.377, 1.846, 2.463, 3.24, 4.188, 5.321",\
                 "0.6042, 0.6676, 0.8317, 1.07, 1.41, 1.879, 2.496, 3.274, 4.223, 5.354",\
                 "0.5908, 0.6586, 0.8328, 1.08, 1.426, 1.902, 2.52, 3.299, 4.245, 5.377");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01922, 0.0832, 0.2054, 0.3957, 0.6627, 1.014, 1.457, 1.997, 2.641");
          values("0.1027, 0.1487, 0.2832, 0.5375, 0.9513, 1.548, 2.335, 3.324, 4.542, 5.987",\
                 "0.1029, 0.1488, 0.2835, 0.5374, 0.9513, 1.547, 2.332, 3.329, 4.541, 5.99",\
                 "0.1033, 0.1496, 0.2836, 0.5375, 0.9515, 1.548, 2.335, 3.328, 4.542, 5.985",\
                 "0.1143, 0.1595, 0.2902, 0.5394, 0.9516, 1.545, 2.331, 3.329, 4.533, 5.978",\
                 "0.1352, 0.1814, 0.3116, 0.5536, 0.9572, 1.548, 2.335, 3.328, 4.535, 5.978",\
                 "0.158, 0.2052, 0.3342, 0.5698, 0.968, 1.554, 2.336, 3.324, 4.54, 5.983",\
                 "0.184, 0.2322, 0.362, 0.5914, 0.9816, 1.56, 2.338, 3.326, 4.538, 5.98",\
                 "0.213, 0.2636, 0.3978, 0.6208, 1.001, 1.57, 2.345, 3.33, 4.536, 5.978",\
                 "0.2428, 0.2976, 0.4364, 0.6578, 1.03, 1.594, 2.358, 3.337, 4.54, 5.976",\
                 "0.274, 0.3322, 0.4786, 0.6988, 1.068, 1.629, 2.39, 3.359, 4.548, 5.982");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01922, 0.0832, 0.2054, 0.3957, 0.6627, 1.014, 1.457, 1.997, 2.641");
          values("0.1111, 0.1646, 0.3507, 0.728, 1.33, 2.173, 3.279, 4.67, 6.373, 8.401",\
                 "0.1111, 0.1645, 0.351, 0.7278, 1.33, 2.167, 3.277, 4.672, 6.373, 8.402",\
                 "0.111, 0.1651, 0.3511, 0.7276, 1.327, 2.172, 3.276, 4.67, 6.375, 8.405",\
                 "0.1254, 0.1779, 0.3572, 0.7286, 1.326, 2.167, 3.276, 4.671, 6.379, 8.408",\
                 "0.1422, 0.1956, 0.3708, 0.735, 1.328, 2.172, 3.281, 4.677, 6.383, 8.406",\
                 "0.1622, 0.2168, 0.3864, 0.7414, 1.332, 2.17, 3.274, 4.675, 6.373, 8.397",\
                 "0.1844, 0.2394, 0.4092, 0.751, 1.337, 2.173, 3.277, 4.666, 6.368, 8.4",\
                 "0.2098, 0.266, 0.4362, 0.7684, 1.345, 2.175, 3.279, 4.671, 6.382, 8.418",\
                 "0.236, 0.2956, 0.469, 0.7936, 1.36, 2.186, 3.283, 4.674, 6.373, 8.404",\
                 "0.264, 0.3262, 0.5036, 0.824, 1.386, 2.206, 3.295, 4.681, 6.377, 8.399");
        }
      }
    }
  }

