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

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

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

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

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

    pin(I) {
      capacitance : 0.01083 ;
      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 : 1.865 ;
      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.01386, 0.05902, 0.1452, 0.2796, 0.4681, 0.7161, 1.029, 1.41, 1.865");
          values("0.1329, 0.1321, 0.1323, 0.1329, 0.1333, 0.1336, 0.1338, 0.1339, 0.134, 0.1341",\
                 "0.1325, 0.1318, 0.1318, 0.1324, 0.1329, 0.1333, 0.1334, 0.1336, 0.1337, 0.1337",\
                 "0.1322, 0.1314, 0.1312, 0.1319, 0.1325, 0.133, 0.1331, 0.1333, 0.1334, 0.1335",\
                 "0.1367, 0.1351, 0.134, 0.1341, 0.1346, 0.135, 0.1353, 0.1354, 0.1356, 0.1356",\
                 "0.1486, 0.1458, 0.1423, 0.141, 0.1409, 0.141, 0.1411, 0.1412, 0.1413, 0.1413",\
                 "0.1662, 0.162, 0.1564, 0.1534, 0.1522, 0.1519, 0.1517, 0.1517, 0.1517, 0.1516",\
                 "0.19, 0.1844, 0.1765, 0.1716, 0.1692, 0.168, 0.1674, 0.1672, 0.167, 0.167",\
                 "0.2206, 0.2138, 0.2034, 0.1962, 0.1923, 0.1901, 0.1889, 0.1883, 0.188, 0.1876",\
                 "0.2586, 0.2507, 0.2374, 0.2278, 0.2219, 0.2185, 0.2166, 0.2155, 0.2148, 0.2143",\
                 "0.3037, 0.2947, 0.2786, 0.2666, 0.2588, 0.2538, 0.2508, 0.2491, 0.248, 0.2472");
        }

        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.01386, 0.05902, 0.1452, 0.2796, 0.4681, 0.7161, 1.029, 1.41, 1.865");
          values("0.0911, 0.09017, 0.09054, 0.09135, 0.0922, 0.09332, 0.0944, 0.09582, 0.09795, 0.1109",\
                 "0.0906, 0.08979, 0.08976, 0.0909, 0.09182, 0.09312, 0.0942, 0.09523, 0.09755, 0.1097",\
                 "0.09044, 0.08941, 0.08921, 0.09013, 0.09107, 0.09247, 0.0936, 0.09483, 0.09736, 0.1098",\
                 "0.09548, 0.09361, 0.0918, 0.09201, 0.09289, 0.09421, 0.09539, 0.09661, 0.09874, 0.1141",\
                 "0.1057, 0.1027, 0.09935, 0.09846, 0.09832, 0.09938, 0.1001, 0.102, 0.1037, 0.1201",\
                 "0.1212, 0.1169, 0.1114, 0.1086, 0.1087, 0.1092, 0.1096, 0.1111, 0.1137, 0.1314",\
                 "0.1425, 0.1369, 0.1292, 0.125, 0.1228, 0.1243, 0.1245, 0.1247, 0.1281, 0.1519",\
                 "0.1703, 0.1635, 0.154, 0.1471, 0.1431, 0.1433, 0.1449, 0.1461, 0.1478, 0.1775",\
                 "0.2044, 0.1961, 0.1837, 0.1749, 0.1702, 0.1674, 0.1681, 0.1709, 0.1754, 0.2183",\
                 "0.245, 0.2354, 0.2207, 0.2104, 0.2037, 0.1989, 0.1983, 0.1998, 0.21, 0.2737");
        }
      }

      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.01386, 0.05902, 0.1452, 0.2796, 0.4681, 0.7161, 1.029, 1.41, 1.865");
          values("0.382, 0.4317, 0.5651, 0.7689, 1.06, 1.459, 1.984, 2.643, 3.451, 4.414",\
                 "0.4011, 0.4507, 0.5844, 0.7881, 1.079, 1.478, 2.003, 2.663, 3.471, 4.433",\
                 "0.473, 0.5225, 0.656, 0.8598, 1.15, 1.55, 2.074, 2.735, 3.542, 4.502",\
                 "0.6133, 0.6625, 0.7958, 0.9994, 1.29, 1.69, 2.214, 2.874, 3.683, 4.642",\
                 "0.7881, 0.8406, 0.9803, 1.188, 1.479, 1.879, 2.402, 3.064, 3.869, 4.831",\
                 "0.9804, 1.037, 1.185, 1.4, 1.694, 2.094, 2.618, 3.278, 4.085, 5.045",\
                 "1.195, 1.256, 1.413, 1.635, 1.933, 2.335, 2.859, 3.518, 4.322, 5.283",\
                 "1.433, 1.498, 1.664, 1.897, 2.203, 2.605, 3.129, 3.789, 4.594, 5.552",\
                 "1.693, 1.763, 1.94, 2.185, 2.499, 2.907, 3.433, 4.093, 4.897, 5.857",\
                 "1.977, 2.051, 2.24, 2.499, 2.824, 3.24, 3.771, 4.433, 5.239, 6.199");
        }

        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.01386, 0.05902, 0.1452, 0.2796, 0.4681, 0.7161, 1.029, 1.41, 1.865");
          values("0.337, 0.3859, 0.5249, 0.7582, 1.114, 1.61, 2.265, 3.087, 4.094, 5.288",\
                 "0.3519, 0.4009, 0.5397, 0.7733, 1.128, 1.625, 2.279, 3.104, 4.108, 5.303",\
                 "0.4082, 0.4569, 0.5952, 0.8285, 1.184, 1.681, 2.335, 3.159, 4.164, 5.36",\
                 "0.5034, 0.5535, 0.6923, 0.9253, 1.28, 1.776, 2.43, 3.255, 4.26, 5.461",\
                 "0.5859, 0.6398, 0.7856, 1.021, 1.375, 1.872, 2.524, 3.35, 4.354, 5.553",\
                 "0.65, 0.7072, 0.86, 1.099, 1.453, 1.95, 2.602, 3.425, 4.431, 5.629",\
                 "0.6961, 0.7571, 0.9184, 1.163, 1.517, 2.012, 2.664, 3.485, 4.491, 5.689",\
                 "0.7212, 0.7869, 0.958, 1.21, 1.566, 2.06, 2.712, 3.533, 4.535, 5.732",\
                 "0.723, 0.7933, 0.9745, 1.236, 1.598, 2.093, 2.745, 3.566, 4.568, 5.764",\
                 "0.6992, 0.7742, 0.9664, 1.24, 1.609, 2.11, 2.764, 3.584, 4.587, 5.782");
        }

        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.01386, 0.05902, 0.1452, 0.2796, 0.4681, 0.7161, 1.029, 1.41, 1.865");
          values("0.1419, 0.1977, 0.3574, 0.6485, 1.125, 1.817, 2.735, 3.896, 5.318, 7.003",\
                 "0.1419, 0.1976, 0.3569, 0.6482, 1.125, 1.819, 2.738, 3.896, 5.313, 7.004",\
                 "0.142, 0.1977, 0.3575, 0.6487, 1.125, 1.818, 2.733, 3.896, 5.318, 7.009",\
                 "0.1478, 0.2034, 0.361, 0.6506, 1.126, 1.817, 2.737, 3.895, 5.307, 7.009",\
                 "0.1732, 0.2278, 0.3834, 0.6624, 1.129, 1.815, 2.735, 3.898, 5.316, 7.006",\
                 "0.2016, 0.2578, 0.4132, 0.6862, 1.142, 1.821, 2.734, 3.898, 5.307, 7.001",\
                 "0.2322, 0.2886, 0.447, 0.7126, 1.16, 1.831, 2.74, 3.895, 5.305, 7",\
                 "0.2656, 0.3254, 0.4868, 0.7494, 1.184, 1.846, 2.746, 3.898, 5.314, 7.003",\
                 "0.3026, 0.3666, 0.5332, 0.7944, 1.22, 1.871, 2.763, 3.911, 5.313, 7.001",\
                 "0.341, 0.4092, 0.5846, 0.8466, 1.266, 1.908, 2.789, 3.925, 5.328, 6.998");
        }

        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.01386, 0.05902, 0.1452, 0.2796, 0.4681, 0.7161, 1.029, 1.41, 1.865");
          values("0.1408, 0.1994, 0.3937, 0.7838, 1.417, 2.303, 3.477, 4.953, 6.758, 8.901",\
                 "0.1408, 0.1992, 0.3939, 0.784, 1.413, 2.303, 3.476, 4.954, 6.758, 8.905",\
                 "0.1409, 0.2004, 0.3943, 0.7836, 1.414, 2.308, 3.475, 4.954, 6.757, 8.907",\
                 "0.1532, 0.2092, 0.3988, 0.7844, 1.416, 2.305, 3.476, 4.953, 6.757, 8.906",\
                 "0.1764, 0.2334, 0.418, 0.7924, 1.418, 2.308, 3.474, 4.958, 6.757, 8.901",\
                 "0.2, 0.2578, 0.4408, 0.8058, 1.421, 2.309, 3.477, 4.957, 6.761, 8.906",\
                 "0.2268, 0.2852, 0.4684, 0.8188, 1.425, 2.309, 3.478, 4.957, 6.75, 8.917",\
                 "0.2572, 0.318, 0.5002, 0.844, 1.437, 2.313, 3.481, 4.951, 6.762, 8.891",\
                 "0.289, 0.3512, 0.5382, 0.8758, 1.458, 2.325, 3.485, 4.955, 6.753, 8.913",\
                 "0.3234, 0.3892, 0.5788, 0.915, 1.489, 2.35, 3.502, 4.963, 6.758, 8.897");
        }
      }
    }
  }

