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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.2394 ;
      max_transition : 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002646, 0.008422, 0.01945, 0.03664, 0.06075, 0.09248, 0.1325, 0.1813, 0.2394");
          values("0.1647, 0.1646, 0.1647, 0.1649, 0.1651, 0.1652, 0.1653, 0.1653, 0.1653, 0.1653",\
                 "0.1648, 0.1647, 0.1648, 0.165, 0.1652, 0.1653, 0.1654, 0.1654, 0.1654, 0.1654",\
                 "0.171, 0.1707, 0.1703, 0.1704, 0.1704, 0.1706, 0.1706, 0.1707, 0.1707, 0.1707",\
                 "0.1931, 0.1919, 0.1902, 0.1891, 0.1887, 0.1886, 0.1884, 0.1884, 0.1883, 0.1883",\
                 "0.2329, 0.2311, 0.2274, 0.2244, 0.223, 0.222, 0.2216, 0.2214, 0.2212, 0.221",\
                 "0.2921, 0.2892, 0.2834, 0.2785, 0.2753, 0.2734, 0.2722, 0.2716, 0.2711, 0.2708",\
                 "0.3712, 0.3672, 0.3592, 0.3519, 0.3469, 0.3436, 0.3416, 0.3402, 0.3394, 0.3388",\
                 "0.471, 0.4661, 0.4559, 0.446, 0.4388, 0.4338, 0.4306, 0.4284, 0.427, 0.4261",\
                 "0.5926, 0.5869, 0.5745, 0.5621, 0.5523, 0.5454, 0.5409, 0.5376, 0.5353, 0.5338",\
                 "0.7371, 0.7308, 0.7161, 0.7011, 0.6888, 0.6797, 0.6732, 0.6687, 0.6656, 0.6632");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002646, 0.008422, 0.01945, 0.03664, 0.06075, 0.09248, 0.1325, 0.1813, 0.2394");
          values("0.09004, 0.08895, 0.08771, 0.08703, 0.08685, 0.08673, 0.08675, 0.08597, 0.08614, 0.08565",\
                 "0.089, 0.08814, 0.08692, 0.08618, 0.0859, 0.08608, 0.08595, 0.08507, 0.08514, 0.08465",\
                 "0.09291, 0.09178, 0.09006, 0.08898, 0.08855, 0.08888, 0.08865, 0.08772, 0.08804, 0.08715",\
                 "0.1116, 0.11, 0.1063, 0.1041, 0.1031, 0.103, 0.1026, 0.1022, 0.1017, 0.1001",\
                 "0.1473, 0.1448, 0.1399, 0.1356, 0.1332, 0.1318, 0.1315, 0.1308, 0.1303, 0.1296",\
                 "0.2013, 0.1981, 0.1913, 0.1857, 0.181, 0.1781, 0.1771, 0.1761, 0.1753, 0.1741",\
                 "0.2744, 0.2699, 0.2616, 0.2533, 0.2476, 0.2437, 0.2402, 0.2383, 0.2369, 0.2356",\
                 "0.3672, 0.3619, 0.3516, 0.3412, 0.3334, 0.3277, 0.3233, 0.3196, 0.3165, 0.3151",\
                 "0.4808, 0.4746, 0.4619, 0.4492, 0.4404, 0.4322, 0.427, 0.4222, 0.4179, 0.4146",\
                 "0.6158, 0.609, 0.5938, 0.5793, 0.5666, 0.5584, 0.5502, 0.5455, 0.5402, 0.5361");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002646, 0.008422, 0.01945, 0.03664, 0.06075, 0.09248, 0.1325, 0.1813, 0.2394");
          values("0.1414, 0.1601, 0.2187, 0.3227, 0.4824, 0.706, 1, 1.371, 1.823, 2.363",\
                 "0.1482, 0.167, 0.2255, 0.3293, 0.489, 0.7127, 1.007, 1.378, 1.83, 2.369",\
                 "0.1749, 0.1935, 0.2518, 0.3554, 0.515, 0.7387, 1.033, 1.403, 1.856, 2.395",\
                 "0.2185, 0.2374, 0.296, 0.3995, 0.5586, 0.7817, 1.076, 1.447, 1.899, 2.438",\
                 "0.2692, 0.2887, 0.349, 0.4528, 0.6117, 0.8342, 1.128, 1.498, 1.951, 2.49",\
                 "0.3244, 0.3449, 0.4071, 0.5134, 0.6724, 0.8949, 1.188, 1.558, 2.01, 2.549",\
                 "0.3828, 0.4047, 0.4692, 0.5781, 0.7402, 0.9635, 1.256, 1.626, 2.077, 2.616",\
                 "0.4441, 0.4676, 0.5349, 0.6467, 0.8116, 1.039, 1.334, 1.703, 2.154, 2.692",\
                 "0.5086, 0.5336, 0.6043, 0.719, 0.8868, 1.118, 1.418, 1.79, 2.241, 2.778",\
                 "0.576, 0.603, 0.6774, 0.7948, 0.9653, 1.2, 1.506, 1.883, 2.338, 2.875");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002646, 0.008422, 0.01945, 0.03664, 0.06075, 0.09248, 0.1325, 0.1813, 0.2394");
          values("0.1522, 0.1695, 0.2252, 0.3279, 0.4879, 0.7123, 1.007, 1.379, 1.833, 2.375",\
                 "0.1564, 0.1737, 0.2294, 0.3321, 0.492, 0.7164, 1.012, 1.383, 1.838, 2.379",\
                 "0.1762, 0.1933, 0.2487, 0.3512, 0.5109, 0.7352, 1.031, 1.402, 1.856, 2.398",\
                 "0.2096, 0.2272, 0.2824, 0.3841, 0.5434, 0.7675, 1.063, 1.434, 1.889, 2.43",\
                 "0.2453, 0.2634, 0.3192, 0.4204, 0.5788, 0.8021, 1.097, 1.468, 1.923, 2.464",\
                 "0.2803, 0.2996, 0.3572, 0.4585, 0.6159, 0.8388, 1.133, 1.504, 1.958, 2.499",\
                 "0.3125, 0.3332, 0.3935, 0.4965, 0.6547, 0.8768, 1.17, 1.541, 1.994, 2.534",\
                 "0.3413, 0.3636, 0.4269, 0.5322, 0.6925, 0.9165, 1.21, 1.58, 2.032, 2.572",\
                 "0.3658, 0.39, 0.4568, 0.5646, 0.7273, 0.954, 1.25, 1.62, 2.072, 2.611",\
                 "0.3856, 0.4116, 0.4824, 0.5932, 0.7576, 0.9878, 1.288, 1.661, 2.114, 2.653");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002646, 0.008422, 0.01945, 0.03664, 0.06075, 0.09248, 0.1325, 0.1813, 0.2394");
          values("0.07202, 0.09656, 0.1795, 0.3445, 0.6093, 0.9821, 1.473, 2.091, 2.847, 3.746",\
                 "0.07208, 0.09648, 0.1795, 0.3442, 0.6091, 0.9823, 1.473, 2.091, 2.847, 3.747",\
                 "0.07274, 0.0972, 0.1798, 0.3446, 0.6092, 0.9822, 1.473, 2.092, 2.846, 3.746",\
                 "0.07848, 0.1022, 0.1831, 0.3453, 0.6093, 0.9821, 1.472, 2.091, 2.846, 3.746",\
                 "0.08736, 0.1114, 0.1915, 0.3494, 0.6098, 0.982, 1.473, 2.092, 2.846, 3.746",\
                 "0.09944, 0.1228, 0.2037, 0.3588, 0.6134, 0.9822, 1.472, 2.091, 2.846, 3.745",\
                 "0.113, 0.1366, 0.217, 0.3728, 0.6268, 0.9886, 1.473, 2.09, 2.845, 3.746",\
                 "0.1278, 0.1518, 0.2308, 0.3882, 0.6448, 1.007, 1.482, 2.092, 2.844, 3.743",\
                 "0.1436, 0.1684, 0.2472, 0.4052, 0.6632, 1.031, 1.507, 2.105, 2.847, 3.743",\
                 "0.1606, 0.1866, 0.2656, 0.4218, 0.6824, 1.055, 1.538, 2.136, 2.866, 3.747");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002646, 0.008422, 0.01945, 0.03664, 0.06075, 0.09248, 0.1325, 0.1813, 0.2394");
          values("0.0766, 0.1011, 0.1899, 0.3695, 0.6542, 1.053, 1.576, 2.238, 3.044, 4.004",\
                 "0.07648, 0.101, 0.1899, 0.3692, 0.6542, 1.052, 1.576, 2.237, 3.044, 4.006",\
                 "0.07664, 0.1012, 0.1901, 0.369, 0.6538, 1.053, 1.576, 2.237, 3.044, 4.006",\
                 "0.08148, 0.1056, 0.1921, 0.3699, 0.6539, 1.052, 1.576, 2.237, 3.041, 4.003",\
                 "0.08946, 0.1129, 0.1968, 0.3709, 0.6536, 1.052, 1.577, 2.237, 3.042, 4.003",\
                 "0.1005, 0.1233, 0.2051, 0.3751, 0.6544, 1.052, 1.576, 2.235, 3.042, 4.003",\
                 "0.113, 0.1352, 0.2158, 0.3842, 0.6602, 1.054, 1.576, 2.236, 3.041, 4.004",\
                 "0.1266, 0.1496, 0.2286, 0.395, 0.6726, 1.062, 1.579, 2.235, 3.041, 4.003",\
                 "0.1416, 0.1656, 0.2426, 0.408, 0.6858, 1.078, 1.591, 2.241, 3.04, 4.002",\
                 "0.1564, 0.182, 0.2594, 0.4214, 0.7008, 1.099, 1.613, 2.256, 3.049, 4.001");
        }
      }
    }
  }

