/*
 * 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_3) {
    area : 30.732800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "7.89987e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "8.95224e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "8.95224e-05" ;
    }

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.441 ;
      max_transition : 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01094, 0.04584, 0.1125, 0.2163, 0.362, 0.5537, 0.7952, 1.09, 1.441");
          values("0.1877, 0.185, 0.1845, 0.1852, 0.1855, 0.1858, 0.186, 0.1861, 0.1861, 0.1862",\
                 "0.1869, 0.1843, 0.184, 0.1846, 0.185, 0.1851, 0.1855, 0.1855, 0.1857, 0.1857",\
                 "0.189, 0.1859, 0.1846, 0.1852, 0.1858, 0.1862, 0.1865, 0.1866, 0.1868, 0.1868",\
                 "0.2058, 0.2, 0.1949, 0.1936, 0.1934, 0.1936, 0.1937, 0.1939, 0.1939, 0.194",\
                 "0.235, 0.226, 0.2168, 0.2122, 0.2106, 0.2101, 0.2099, 0.2099, 0.2098, 0.2097",\
                 "0.2774, 0.2653, 0.251, 0.2427, 0.239, 0.2371, 0.2361, 0.2355, 0.2354, 0.2352",\
                 "0.3341, 0.3187, 0.2987, 0.286, 0.279, 0.2755, 0.2738, 0.2727, 0.2721, 0.2715",\
                 "0.4043, 0.3863, 0.36, 0.343, 0.3324, 0.3268, 0.3236, 0.3216, 0.3203, 0.3195",\
                 "0.4886, 0.468, 0.4364, 0.4139, 0.3998, 0.3913, 0.3864, 0.3832, 0.3814, 0.3799",\
                 "0.5878, 0.5651, 0.5272, 0.4995, 0.4813, 0.4698, 0.4628, 0.4581, 0.4553, 0.4533");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01094, 0.04584, 0.1125, 0.2163, 0.362, 0.5537, 0.7952, 1.09, 1.441");
          values("0.1321, 0.1276, 0.1254, 0.1257, 0.1268, 0.1288, 0.1321, 0.1342, 0.1371, 0.1533",\
                 "0.1311, 0.1269, 0.1243, 0.1249, 0.1263, 0.1278, 0.1305, 0.1323, 0.1368, 0.1502",\
                 "0.1324, 0.1278, 0.1244, 0.1245, 0.1256, 0.1278, 0.1298, 0.1326, 0.1365, 0.1502",\
                 "0.1485, 0.1417, 0.1352, 0.1326, 0.1331, 0.1344, 0.1371, 0.1395, 0.1431, 0.1609",\
                 "0.1758, 0.1659, 0.1544, 0.1506, 0.1487, 0.1502, 0.1513, 0.154, 0.157, 0.1753",\
                 "0.2149, 0.2023, 0.1862, 0.177, 0.176, 0.1753, 0.1753, 0.1778, 0.1808, 0.2013",\
                 "0.2674, 0.2508, 0.2299, 0.2174, 0.2112, 0.2146, 0.2113, 0.2125, 0.2142, 0.2423",\
                 "0.3329, 0.3132, 0.2868, 0.2692, 0.2605, 0.2572, 0.2618, 0.2602, 0.2609, 0.298",\
                 "0.4117, 0.3891, 0.3576, 0.3363, 0.3226, 0.3149, 0.3146, 0.3206, 0.3245, 0.3748",\
                 "0.5038, 0.4792, 0.4411, 0.4159, 0.398, 0.3875, 0.3813, 0.3841, 0.3994, 0.4833");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01094, 0.04584, 0.1125, 0.2163, 0.362, 0.5537, 0.7952, 1.09, 1.441");
          values("0.2586, 0.3086, 0.4406, 0.6556, 0.9806, 1.436, 2.034, 2.789, 3.711, 4.807",\
                 "0.2759, 0.3259, 0.4579, 0.6729, 0.998, 1.453, 2.052, 2.806, 3.728, 4.825",\
                 "0.342, 0.3917, 0.5232, 0.7382, 1.063, 1.518, 2.116, 2.872, 3.793, 4.891",\
                 "0.4564, 0.5074, 0.6405, 0.8551, 1.18, 1.634, 2.233, 2.988, 3.906, 5.004",\
                 "0.5853, 0.6399, 0.7785, 0.996, 1.32, 1.774, 2.372, 3.126, 4.046, 5.141",\
                 "0.7284, 0.7873, 0.9333, 1.153, 1.478, 1.932, 2.529, 3.282, 4.201, 5.299",\
                 "0.8835, 0.9476, 1.102, 1.329, 1.654, 2.107, 2.704, 3.456, 4.375, 5.472",\
                 "1.05, 1.12, 1.285, 1.52, 1.851, 2.304, 2.9, 3.652, 4.57, 5.667",\
                 "1.229, 1.303, 1.479, 1.725, 2.063, 2.522, 3.119, 3.87, 4.789, 5.884",\
                 "1.419, 1.499, 1.686, 1.943, 2.288, 2.755, 3.36, 4.113, 5.031, 6.126");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01094, 0.04584, 0.1125, 0.2163, 0.362, 0.5537, 0.7952, 1.09, 1.441");
          values("0.2625, 0.3096, 0.4401, 0.6661, 1.016, 1.507, 2.15, 2.964, 3.954, 5.142",\
                 "0.2756, 0.323, 0.4532, 0.6793, 1.029, 1.519, 2.165, 2.976, 3.971, 5.156",\
                 "0.328, 0.3749, 0.5047, 0.7306, 1.08, 1.57, 2.216, 3.03, 4.023, 5.206",\
                 "0.4123, 0.4618, 0.5927, 0.8177, 1.167, 1.657, 2.302, 3.114, 4.109, 5.292",\
                 "0.4894, 0.5429, 0.679, 0.9046, 1.252, 1.742, 2.387, 3.199, 4.193, 5.376",\
                 "0.5597, 0.6177, 0.7603, 0.9865, 1.333, 1.822, 2.465, 3.277, 4.271, 5.451",\
                 "0.6204, 0.6832, 0.834, 1.065, 1.41, 1.898, 2.54, 3.351, 4.344, 5.524",\
                 "0.67, 0.738, 0.8979, 1.135, 1.483, 1.969, 2.612, 3.423, 4.412, 5.592",\
                 "0.706, 0.7789, 0.9501, 1.195, 1.547, 2.036, 2.678, 3.487, 4.477, 5.659",\
                 "0.7268, 0.8058, 0.9869, 1.242, 1.599, 2.094, 2.739, 3.549, 4.538, 5.718");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01094, 0.04584, 0.1125, 0.2163, 0.362, 0.5537, 0.7952, 1.09, 1.441");
          values("0.09236, 0.1484, 0.3159, 0.6485, 1.189, 1.954, 2.967, 4.246, 5.804, 7.657",\
                 "0.09214, 0.1483, 0.3157, 0.6475, 1.189, 1.956, 2.968, 4.238, 5.801, 7.66",\
                 "0.0925, 0.1491, 0.3161, 0.6485, 1.188, 1.956, 2.969, 4.24, 5.804, 7.661",\
                 "0.1044, 0.1595, 0.3215, 0.6494, 1.188, 1.956, 2.965, 4.242, 5.795, 7.654",\
                 "0.1236, 0.1784, 0.34, 0.6568, 1.191, 1.955, 2.969, 4.241, 5.791, 7.651",\
                 "0.1458, 0.2034, 0.3622, 0.6672, 1.195, 1.957, 2.963, 4.235, 5.794, 7.645",\
                 "0.1714, 0.2312, 0.3908, 0.6868, 1.202, 1.958, 2.964, 4.234, 5.794, 7.644",\
                 "0.1976, 0.2628, 0.425, 0.7166, 1.221, 1.966, 2.967, 4.233, 5.788, 7.636",\
                 "0.224, 0.294, 0.4632, 0.7532, 1.252, 1.988, 2.976, 4.238, 5.784, 7.635",\
                 "0.2528, 0.327, 0.504, 0.7912, 1.289, 2.03, 3.009, 4.251, 5.79, 7.632");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.01094, 0.04584, 0.1125, 0.2163, 0.362, 0.5537, 0.7952, 1.09, 1.441");
          values("0.09516, 0.1509, 0.3379, 0.723, 1.336, 2.206, 3.341, 4.776, 6.534, 8.616",\
                 "0.09492, 0.1506, 0.338, 0.7223, 1.337, 2.204, 3.341, 4.78, 6.525, 8.608",\
                 "0.09526, 0.1504, 0.3383, 0.7237, 1.338, 2.202, 3.339, 4.774, 6.527, 8.606",\
                 "0.1102, 0.1623, 0.3439, 0.7228, 1.339, 2.203, 3.34, 4.775, 6.523, 8.612",\
                 "0.1278, 0.1808, 0.357, 0.7278, 1.339, 2.203, 3.338, 4.772, 6.523, 8.612",\
                 "0.1474, 0.2026, 0.3734, 0.7332, 1.341, 2.203, 3.341, 4.77, 6.518, 8.618",\
                 "0.171, 0.2272, 0.3978, 0.7442, 1.343, 2.205, 3.338, 4.769, 6.516, 8.603",\
                 "0.195, 0.2558, 0.4262, 0.764, 1.352, 2.207, 3.341, 4.769, 6.515, 8.6",\
                 "0.2202, 0.2874, 0.4578, 0.7902, 1.373, 2.221, 3.344, 4.773, 6.517, 8.602",\
                 "0.2486, 0.3158, 0.4934, 0.8196, 1.399, 2.247, 3.363, 4.778, 6.517, 8.599");
        }
      }
    }
  }

