/*
 * 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_1) {
    area : 13.171200 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.003626 ;
      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.2343 ;
      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.002611, 0.008264, 0.01906, 0.03588, 0.05948, 0.09053, 0.1297, 0.1774, 0.2343");
          values("0.1996, 0.199, 0.1981, 0.1977, 0.1977, 0.1976, 0.1975, 0.1976, 0.1975, 0.1975",\
                 "0.2007, 0.2001, 0.1993, 0.1989, 0.1989, 0.1987, 0.1987, 0.1987, 0.1986, 0.1987",\
                 "0.214, 0.2129, 0.2111, 0.2101, 0.2098, 0.2096, 0.2094, 0.2094, 0.2093, 0.2093",\
                 "0.2508, 0.2487, 0.2448, 0.2421, 0.2405, 0.2394, 0.2389, 0.2385, 0.2384, 0.2382",\
                 "0.3145, 0.311, 0.305, 0.2988, 0.295, 0.293, 0.2915, 0.2906, 0.2901, 0.2897",\
                 "0.4061, 0.4017, 0.3924, 0.383, 0.3769, 0.3729, 0.3702, 0.3683, 0.3671, 0.3664",\
                 "0.5274, 0.5218, 0.5093, 0.4973, 0.4874, 0.481, 0.4767, 0.4737, 0.4715, 0.4701",\
                 "0.6794, 0.6726, 0.6571, 0.6417, 0.6286, 0.6194, 0.6126, 0.6083, 0.6051, 0.6027",\
                 "0.8637, 0.856, 0.8377, 0.8187, 0.8022, 0.7896, 0.7807, 0.7739, 0.7694, 0.766",\
                 "1.082, 1.074, 1.053, 1.03, 1.01, 0.994, 0.982, 0.9732, 0.9666, 0.9619");
        }

        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.002611, 0.008264, 0.01906, 0.03588, 0.05948, 0.09053, 0.1297, 0.1774, 0.2343");
          values("0.1077, 0.1065, 0.1038, 0.1023, 0.102, 0.1016, 0.1015, 0.1012, 0.09966, 0.1009",\
                 "0.1077, 0.1059, 0.1035, 0.102, 0.1018, 0.1014, 0.1014, 0.1009, 0.09977, 0.1009",\
                 "0.1169, 0.1152, 0.1117, 0.1096, 0.1084, 0.1082, 0.1081, 0.108, 0.1066, 0.1075",\
                 "0.1489, 0.1462, 0.1404, 0.1364, 0.1342, 0.1334, 0.1326, 0.1313, 0.1318, 0.1317",\
                 "0.2063, 0.2027, 0.1947, 0.1876, 0.1827, 0.1799, 0.1796, 0.1784, 0.1778, 0.1757",\
                 "0.2909, 0.2856, 0.2758, 0.2668, 0.2588, 0.2527, 0.2509, 0.2487, 0.2482, 0.2461",\
                 "0.4038, 0.3974, 0.3848, 0.3716, 0.3627, 0.3545, 0.3487, 0.3451, 0.3434, 0.3429",\
                 "0.546, 0.5388, 0.5233, 0.5072, 0.4949, 0.4856, 0.4769, 0.4703, 0.4677, 0.465",\
                 "0.7194, 0.7109, 0.6924, 0.6738, 0.6573, 0.6451, 0.6363, 0.6267, 0.6206, 0.6168",\
                 "0.9246, 0.9155, 0.8941, 0.8721, 0.8526, 0.8375, 0.8257, 0.8153, 0.8081, 0.801");
        }
      }

      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.002611, 0.008264, 0.01906, 0.03588, 0.05948, 0.09053, 0.1297, 0.1774, 0.2343");
          values("0.09232, 0.1042, 0.1416, 0.2087, 0.3124, 0.4579, 0.6493, 0.8904, 1.185, 1.536",\
                 "0.09653, 0.1083, 0.1456, 0.2129, 0.3166, 0.4622, 0.6535, 0.8948, 1.189, 1.54",\
                 "0.1133, 0.125, 0.162, 0.2289, 0.3324, 0.4779, 0.6693, 0.9104, 1.205, 1.556",\
                 "0.1407, 0.1525, 0.1896, 0.256, 0.3588, 0.504, 0.695, 0.9362, 1.23, 1.582",\
                 "0.1726, 0.185, 0.2229, 0.2895, 0.392, 0.5364, 0.7271, 0.9678, 1.262, 1.613",\
                 "0.2072, 0.22, 0.2593, 0.3272, 0.43, 0.5738, 0.7638, 1.004, 1.298, 1.649",\
                 "0.2438, 0.2576, 0.2981, 0.3672, 0.4715, 0.6167, 0.8064, 1.046, 1.34, 1.69",\
                 "0.2818, 0.2967, 0.3391, 0.4096, 0.5152, 0.6625, 0.8543, 1.094, 1.387, 1.737",\
                 "0.3215, 0.3374, 0.3819, 0.4537, 0.5607, 0.7103, 0.905, 1.147, 1.44, 1.79",\
                 "0.3627, 0.3798, 0.4268, 0.5004, 0.6084, 0.7597, 0.9574, 1.203, 1.5, 1.849");
        }

        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.002611, 0.008264, 0.01906, 0.03588, 0.05948, 0.09053, 0.1297, 0.1774, 0.2343");
          values("0.0979, 0.1091, 0.1451, 0.213, 0.3193, 0.4687, 0.6654, 0.9127, 1.215, 1.576",\
                 "0.1005, 0.1115, 0.1476, 0.2156, 0.322, 0.4713, 0.6679, 0.9152, 1.218, 1.578",\
                 "0.1134, 0.1242, 0.16, 0.2277, 0.3339, 0.4833, 0.6797, 0.9273, 1.23, 1.59",\
                 "0.1351, 0.146, 0.1817, 0.2486, 0.3542, 0.5031, 0.6995, 0.9471, 1.249, 1.609",\
                 "0.1591, 0.1707, 0.2064, 0.2726, 0.3772, 0.5256, 0.7217, 0.969, 1.271, 1.631",\
                 "0.1833, 0.1956, 0.2324, 0.2989, 0.4028, 0.5502, 0.7455, 0.9923, 1.295, 1.655",\
                 "0.2059, 0.2192, 0.2576, 0.3246, 0.4291, 0.5765, 0.771, 1.017, 1.319, 1.678",\
                 "0.2266, 0.241, 0.2816, 0.3495, 0.4549, 0.6035, 0.7981, 1.044, 1.344, 1.704",\
                 "0.2451, 0.2607, 0.3034, 0.3728, 0.479, 0.6292, 0.8259, 1.072, 1.372, 1.73",\
                 "0.261, 0.2777, 0.3233, 0.3942, 0.5011, 0.6528, 0.8518, 1.1, 1.401, 1.76");
        }

        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.002611, 0.008264, 0.01906, 0.03588, 0.05948, 0.09053, 0.1297, 0.1774, 0.2343");
          values("0.04518, 0.0607, 0.1139, 0.2202, 0.3912, 0.6301, 0.9471, 1.345, 1.828, 2.407",\
                 "0.04522, 0.06074, 0.1139, 0.2202, 0.3913, 0.63, 0.9454, 1.345, 1.83, 2.406",\
                 "0.04584, 0.06126, 0.1142, 0.2204, 0.3913, 0.6301, 0.9454, 1.345, 1.828, 2.407",\
                 "0.04986, 0.06486, 0.1167, 0.2211, 0.3912, 0.6305, 0.9473, 1.345, 1.828, 2.406",\
                 "0.0562, 0.07106, 0.1228, 0.2238, 0.3916, 0.6309, 0.9451, 1.345, 1.828, 2.406",\
                 "0.06372, 0.0787, 0.1302, 0.231, 0.3946, 0.6313, 0.9459, 1.343, 1.829, 2.406",\
                 "0.0728, 0.0881, 0.1387, 0.2399, 0.4049, 0.637, 0.9476, 1.344, 1.829, 2.406",\
                 "0.0826, 0.098, 0.148, 0.2492, 0.4158, 0.6516, 0.9566, 1.345, 1.828, 2.407",\
                 "0.093, 0.1088, 0.1588, 0.259, 0.427, 0.666, 0.9744, 1.359, 1.832, 2.406",\
                 "0.1038, 0.1208, 0.1708, 0.2696, 0.4386, 0.6814, 0.9954, 1.381, 1.85, 2.413");
        }

        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.002611, 0.008264, 0.01906, 0.03588, 0.05948, 0.09053, 0.1297, 0.1774, 0.2343");
          values("0.04808, 0.06406, 0.1222, 0.2393, 0.4247, 0.6835, 1.025, 1.455, 1.978, 2.603",\
                 "0.0481, 0.06406, 0.1222, 0.2392, 0.4247, 0.6837, 1.025, 1.454, 1.978, 2.603",\
                 "0.04828, 0.06422, 0.1223, 0.2392, 0.4245, 0.6839, 1.024, 1.454, 1.978, 2.602",\
                 "0.05172, 0.067, 0.1234, 0.2393, 0.4239, 0.6839, 1.025, 1.454, 1.978, 2.602",\
                 "0.05762, 0.07206, 0.1263, 0.2403, 0.4243, 0.6832, 1.025, 1.454, 1.978, 2.603",\
                 "0.06506, 0.079, 0.1319, 0.2432, 0.425, 0.683, 1.024, 1.454, 1.978, 2.603",\
                 "0.07316, 0.08766, 0.1391, 0.2496, 0.4299, 0.6848, 1.024, 1.453, 1.977, 2.601",\
                 "0.082, 0.0974, 0.1472, 0.256, 0.4388, 0.6928, 1.027, 1.452, 1.975, 2.6",\
                 "0.0918, 0.1076, 0.1564, 0.2636, 0.4472, 0.7048, 1.037, 1.459, 1.975, 2.6",\
                 "0.1016, 0.1186, 0.1678, 0.2718, 0.4558, 0.7168, 1.053, 1.47, 1.985, 2.601");
        }
      }
    }
  }

