/*
 * 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 : "0.00044547" ;
    }

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.418 ;
      max_transition : 15.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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04512, 0.1107, 0.2129, 0.3562, 0.5449, 0.7825, 1.073, 1.418");
          values("0.1542, 0.1535, 0.1546, 0.1557, 0.1564, 0.1568, 0.157, 0.1571, 0.1572, 0.1567",\
                 "0.1537, 0.153, 0.1541, 0.1552, 0.1559, 0.1563, 0.1565, 0.1566, 0.1566, 0.1562",\
                 "0.1537, 0.1527, 0.1534, 0.1547, 0.1556, 0.156, 0.1564, 0.1565, 0.1566, 0.1561",\
                 "0.1619, 0.1593, 0.1577, 0.1582, 0.1589, 0.1593, 0.1596, 0.1597, 0.1598, 0.1592",\
                 "0.1779, 0.1733, 0.1688, 0.1673, 0.1673, 0.1675, 0.1677, 0.1679, 0.1678, 0.167",\
                 "0.201, 0.1943, 0.1866, 0.183, 0.182, 0.1814, 0.1815, 0.1816, 0.1813, 0.1802",\
                 "0.232, 0.2232, 0.2123, 0.2062, 0.2035, 0.2024, 0.2018, 0.2016, 0.2011, 0.1994",\
                 "0.2715, 0.2606, 0.2459, 0.237, 0.2327, 0.2303, 0.2293, 0.2286, 0.2275, 0.2246",\
                 "0.3193, 0.3062, 0.2882, 0.2762, 0.2695, 0.2657, 0.2639, 0.2626, 0.2603, 0.2559",\
                 "0.3755, 0.3609, 0.3388, 0.3239, 0.3148, 0.3096, 0.3065, 0.3039, 0.2993, 0.2931");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04512, 0.1107, 0.2129, 0.3562, 0.5449, 0.7825, 1.073, 1.418");
          values("0.1066, 0.1049, 0.1048, 0.1058, 0.1072, 0.1093, 0.1108, 0.1214, 0.2097, 0.645",\
                 "0.1061, 0.1043, 0.1041, 0.1053, 0.1063, 0.1087, 0.1111, 0.1198, 0.2149, 0.6529",\
                 "0.1059, 0.1039, 0.1032, 0.104, 0.1057, 0.1072, 0.1099, 0.1198, 0.2213, 0.6842",\
                 "0.1139, 0.1106, 0.1075, 0.1074, 0.1085, 0.1099, 0.1126, 0.1247, 0.2388, 0.7428",\
                 "0.1287, 0.1232, 0.1176, 0.1165, 0.1161, 0.118, 0.1199, 0.135, 0.2735, 0.8519",\
                 "0.1502, 0.143, 0.1344, 0.1306, 0.1318, 0.1318, 0.1322, 0.1539, 0.3336, 1.014",\
                 "0.1795, 0.1699, 0.1588, 0.1523, 0.1499, 0.1525, 0.1536, 0.1852, 0.4296, 1.252",\
                 "0.2165, 0.2045, 0.1901, 0.1806, 0.1759, 0.1752, 0.1818, 0.2391, 0.592, 1.6",\
                 "0.2613, 0.2473, 0.2296, 0.218, 0.2115, 0.2087, 0.2154, 0.3317, 0.8683, 2.081",\
                 "0.3144, 0.2981, 0.2765, 0.2625, 0.2539, 0.2495, 0.2706, 0.5087, 1.323, 2.688");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04512, 0.1107, 0.2129, 0.3562, 0.5449, 0.7825, 1.073, 1.418");
          values("0.4985, 0.5918, 0.8334, 1.221, 1.801, 2.61, 3.675, 5.018, 6.658, 8.607",\
                 "0.5334, 0.6266, 0.8684, 1.256, 1.835, 2.645, 3.71, 5.054, 6.689, 8.636",\
                 "0.6626, 0.7557, 0.997, 1.384, 1.964, 2.774, 3.839, 5.183, 6.819, 8.769",\
                 "0.8946, 0.9894, 1.233, 1.62, 2.2, 3.009, 4.075, 5.417, 7.051, 9.001",\
                 "1.155, 1.257, 1.514, 1.908, 2.488, 3.296, 4.359, 5.7, 7.336, 9.288",\
                 "1.437, 1.548, 1.818, 2.219, 2.8, 3.61, 4.673, 6.015, 7.655, 9.603",\
                 "1.745, 1.865, 2.152, 2.563, 3.146, 3.954, 5.017, 6.357, 7.997, 9.947",\
                 "2.079, 2.208, 2.514, 2.94, 3.528, 4.336, 5.398, 6.738, 8.373, 10.32",\
                 "2.438, 2.576, 2.903, 3.346, 3.946, 4.757, 5.821, 7.158, 8.794, 10.74",\
                 "2.823, 2.971, 3.318, 3.783, 4.395, 5.216, 6.284, 7.622, 9.256, 11.21");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04512, 0.1107, 0.2129, 0.3562, 0.5449, 0.7825, 1.073, 1.418");
          values("0.4881, 0.5779, 0.8206, 1.233, 1.866, 2.756, 3.925, 5.4, 7.198, 9.345",\
                 "0.5159, 0.6059, 0.8483, 1.26, 1.894, 2.783, 3.95, 5.426, 7.227, 9.362",\
                 "0.6207, 0.7103, 0.9517, 1.364, 1.998, 2.887, 4.054, 5.527, 7.33, 9.468",\
                 "0.7943, 0.8877, 1.132, 1.543, 2.177, 3.064, 4.234, 5.707, 7.509, 9.646",\
                 "0.9512, 1.053, 1.31, 1.725, 2.356, 3.244, 4.414, 5.888, 7.681, 9.821",\
                 "1.091, 1.201, 1.47, 1.889, 2.521, 3.407, 4.573, 6.045, 7.846, 9.976",\
                 "1.213, 1.331, 1.617, 2.042, 2.672, 3.557, 4.723, 6.192, 7.99, 10.13",\
                 "1.313, 1.44, 1.744, 2.18, 2.813, 3.696, 4.861, 6.331, 8.123, 10.26",\
                 "1.387, 1.524, 1.848, 2.3, 2.938, 3.824, 4.987, 6.455, 8.25, 10.39",\
                 "1.435, 1.581, 1.924, 2.395, 3.044, 3.937, 5.103, 6.57, 8.364, 10.5");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04512, 0.1107, 0.2129, 0.3562, 0.5449, 0.7825, 1.073, 1.418");
          values("0.1785, 0.2818, 0.5862, 1.183, 2.154, 3.536, 5.369, 7.668, 10.48, 13.84",\
                 "0.1778, 0.2819, 0.5862, 1.182, 2.155, 3.538, 5.37, 7.665, 10.49, 13.84",\
                 "0.1785, 0.2817, 0.5858, 1.182, 2.156, 3.539, 5.365, 7.666, 10.48, 13.84",\
                 "0.1956, 0.2976, 0.5942, 1.185, 2.154, 3.541, 5.365, 7.669, 10.49, 13.84",\
                 "0.2316, 0.336, 0.628, 1.199, 2.159, 3.542, 5.367, 7.672, 10.49, 13.84",\
                 "0.27, 0.3768, 0.667, 1.222, 2.17, 3.543, 5.367, 7.669, 10.47, 13.82",\
                 "0.3112, 0.4224, 0.7122, 1.25, 2.182, 3.547, 5.365, 7.664, 10.47, 13.83",\
                 "0.3564, 0.4752, 0.7696, 1.291, 2.2, 3.556, 5.367, 7.656, 10.47, 13.81",\
                 "0.4028, 0.5304, 0.835, 1.346, 2.238, 3.576, 5.384, 7.664, 10.46, 13.8",\
                 "0.45, 0.586, 0.906, 1.412, 2.292, 3.618, 5.408, 7.676, 10.47, 13.8");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04512, 0.1107, 0.2129, 0.3562, 0.5449, 0.7825, 1.073, 1.418");
          values("0.1824, 0.2865, 0.6254, 1.321, 2.431, 4.005, 6.065, 8.666, 11.84, 15.63",\
                 "0.1825, 0.2864, 0.6255, 1.321, 2.433, 4.004, 6.063, 8.666, 11.84, 15.62",\
                 "0.182, 0.2854, 0.6256, 1.321, 2.433, 3.999, 6.062, 8.672, 11.84, 15.62",\
                 "0.203, 0.3042, 0.6344, 1.322, 2.434, 3.999, 6.065, 8.667, 11.84, 15.61",\
                 "0.2394, 0.3396, 0.6612, 1.33, 2.436, 4.001, 6.061, 8.662, 11.83, 15.61",\
                 "0.2724, 0.3768, 0.6924, 1.341, 2.439, 4.005, 6.068, 8.654, 11.83, 15.61",\
                 "0.3106, 0.4188, 0.7314, 1.359, 2.444, 4.004, 6.064, 8.652, 11.82, 15.61",\
                 "0.3516, 0.4662, 0.783, 1.389, 2.459, 4.008, 6.072, 8.656, 11.83, 15.63",\
                 "0.3988, 0.516, 0.8384, 1.432, 2.479, 4.02, 6.072, 8.66, 11.82, 15.63",\
                 "0.444, 0.568, 0.902, 1.486, 2.522, 4.05, 6.082, 8.664, 11.83, 15.6");
        }
      }
    }
  }

