/*
 * 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_20) {
    area : 136.102400 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "8.495766e-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.02342 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 21 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 3.302 ;
      max_transition : 21 ;
      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.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.02378, 0.1038, 0.2565, 0.4944, 0.8283, 1.268, 1.821, 2.497, 3.302");
          values("0.1967, 0.1981, 0.2012, 0.2038, 0.2054, 0.2063, 0.2068, 0.2071, 0.2073, 0.2074",\
                 "0.1964, 0.1977, 0.2009, 0.2035, 0.2051, 0.206, 0.2065, 0.2068, 0.207, 0.207",\
                 "0.195, 0.1965, 0.1997, 0.2024, 0.204, 0.205, 0.2055, 0.2057, 0.206, 0.2059",\
                 "0.1939, 0.1952, 0.198, 0.2007, 0.2025, 0.2035, 0.2043, 0.2046, 0.2049, 0.2047",\
                 "0.1925, 0.1937, 0.1962, 0.1988, 0.2008, 0.2021, 0.203, 0.2035, 0.2038, 0.2036",\
                 "0.1913, 0.1924, 0.1947, 0.1971, 0.1993, 0.2007, 0.2018, 0.2024, 0.2028, 0.2018",\
                 "0.1903, 0.1914, 0.1935, 0.196, 0.1981, 0.1997, 0.2009, 0.2016, 0.2013, 0.1978",\
                 "0.1898, 0.1907, 0.1927, 0.1949, 0.197, 0.1987, 0.2001, 0.2001, 0.1957, 0.1872",\
                 "0.1892, 0.1901, 0.192, 0.194, 0.1961, 0.1976, 0.1954, 0.1857, 0.1771, 0.1711",\
                 "0.1732, 0.1737, 0.1724, 0.1583, 0.1494, 0.1451, 0.1429, 0.1418, 0.1412, 0.141");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.02378, 0.1038, 0.2565, 0.4944, 0.8283, 1.268, 1.821, 2.497, 3.302");
          values("0.1382, 0.1395, 0.1424, 0.1451, 0.1465, 0.1478, 0.1491, 0.1551, 0.2757, 0.9889",\
                 "0.1381, 0.1393, 0.142, 0.1447, 0.1465, 0.1485, 0.1492, 0.1551, 0.2801, 1.012",\
                 "0.1374, 0.1385, 0.1411, 0.1434, 0.1456, 0.1469, 0.1486, 0.1562, 0.3027, 1.093",\
                 "0.1358, 0.1367, 0.1389, 0.1416, 0.1438, 0.1451, 0.1483, 0.1586, 0.3567, 1.252",\
                 "0.1344, 0.1351, 0.1374, 0.1398, 0.1419, 0.1438, 0.147, 0.1685, 0.4708, 1.497",\
                 "0.1334, 0.1339, 0.1356, 0.1382, 0.1399, 0.1418, 0.1451, 0.1978, 0.6865, 1.8",\
                 "0.1324, 0.1331, 0.1346, 0.1364, 0.1398, 0.1411, 0.1482, 0.2899, 1.053, 2.08",\
                 "0.1319, 0.1325, 0.1339, 0.1362, 0.1377, 0.1413, 0.1721, 0.5746, 1.482, 2.253",\
                 "0.1314, 0.1321, 0.1332, 0.1347, 0.1371, 0.144, 0.3583, 1.082, 1.73, 2.193",\
                 "0.1324, 0.133, 0.1345, 0.1359, 0.1416, 0.338, 0.8778, 1.281, 1.554, 1.742");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.02378, 0.1038, 0.2565, 0.4944, 0.8283, 1.268, 1.821, 2.497, 3.302");
          values("1.455, 1.546, 1.787, 2.147, 2.65, 3.334, 4.229, 5.355, 6.728, 8.365",\
                 "1.533, 1.624, 1.865, 2.225, 2.728, 3.412, 4.307, 5.433, 6.808, 8.443",\
                 "1.81, 1.901, 2.142, 2.502, 3.005, 3.689, 4.584, 5.71, 7.083, 8.721",\
                 "2.348, 2.438, 2.678, 3.038, 3.542, 4.226, 5.121, 6.247, 7.622, 9.263",\
                 "3.19, 3.281, 3.52, 3.881, 4.385, 5.069, 5.964, 7.091, 8.464, 10.11",\
                 "4.355, 4.448, 4.691, 5.053, 5.558, 6.243, 7.138, 8.265, 9.638, 11.28",\
                 "5.784, 5.887, 6.147, 6.519, 7.026, 7.711, 8.607, 9.732, 11.1, 12.74",\
                 "7.419, 7.536, 7.823, 8.211, 8.727, 9.414, 10.31, 11.43, 12.81, 14.44",\
                 "9.262, 9.394, 9.711, 10.12, 10.65, 11.34, 12.24, 13.36, 14.73, 16.37",\
                 "11.32, 11.46, 11.81, 12.25, 12.79, 13.49, 14.38, 15.51, 16.88, 18.52");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.02378, 0.1038, 0.2565, 0.4944, 0.8283, 1.268, 1.821, 2.497, 3.302");
          values("1.021, 1.125, 1.45, 2.033, 2.928, 4.179, 5.821, 7.892, 10.43, 13.44",\
                 "1.083, 1.188, 1.513, 2.095, 2.99, 4.243, 5.885, 7.964, 10.48, 13.49",\
                 "1.304, 1.409, 1.733, 2.315, 3.211, 4.461, 6.111, 8.184, 10.7, 13.72",\
                 "1.725, 1.83, 2.153, 2.735, 3.632, 4.882, 6.53, 8.607, 11.13, 14.14",\
                 "2.32, 2.428, 2.755, 3.336, 4.232, 5.485, 7.132, 9.209, 11.73, 14.75",\
                 "2.981, 3.096, 3.431, 4.017, 4.912, 6.163, 7.81, 9.875, 12.4, 15.42",\
                 "3.687, 3.81, 4.159, 4.747, 5.644, 6.894, 8.537, 10.61, 13.13, 16.14",\
                 "4.434, 4.567, 4.928, 5.522, 6.418, 7.67, 9.314, 11.38, 13.91, 16.92",\
                 "5.212, 5.355, 5.734, 6.335, 7.231, 8.482, 10.13, 12.2, 14.72, 17.73",\
                 "6.017, 6.173, 6.571, 7.181, 8.079, 9.328, 10.97, 13.04, 15.57, 18.58");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.02378, 0.1038, 0.2565, 0.4944, 0.8283, 1.268, 1.821, 2.497, 3.302");
          values("0.364, 0.4442, 0.6938, 1.164, 1.93, 3.051, 4.549, 6.445, 8.766, 11.53",\
                 "0.3634, 0.4434, 0.694, 1.164, 1.929, 3.047, 4.55, 6.445, 8.747, 11.53",\
                 "0.364, 0.444, 0.6942, 1.164, 1.93, 3.051, 4.55, 6.446, 8.766, 11.53",\
                 "0.3638, 0.4438, 0.6942, 1.164, 1.93, 3.048, 4.55, 6.445, 8.764, 11.52",\
                 "0.3658, 0.4466, 0.696, 1.165, 1.929, 3.047, 4.551, 6.446, 8.757, 11.53",\
                 "0.3842, 0.4628, 0.7066, 1.168, 1.932, 3.051, 4.546, 6.445, 8.764, 11.52",\
                 "0.448, 0.522, 0.75, 1.196, 1.94, 3.054, 4.548, 6.434, 8.756, 11.53",\
                 "0.528, 0.604, 0.826, 1.252, 1.972, 3.066, 4.548, 6.444, 8.76, 11.51",\
                 "0.612, 0.696, 0.918, 1.316, 2.018, 3.088, 4.562, 6.44, 8.742, 11.51",\
                 "0.7, 0.792, 1.018, 1.398, 2.068, 3.118, 4.578, 6.456, 8.75, 11.51");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.02378, 0.1038, 0.2565, 0.4944, 0.8283, 1.268, 1.821, 2.497, 3.302");
          values("0.3716, 0.503, 0.9794, 1.923, 3.409, 5.5, 8.251, 11.72, 15.97, 20.98",\
                 "0.372, 0.5034, 0.9786, 1.921, 3.412, 5.501, 8.249, 11.74, 15.94, 20.99",\
                 "0.3718, 0.5038, 0.978, 1.921, 3.408, 5.498, 8.247, 11.71, 15.94, 20.99",\
                 "0.3732, 0.5064, 0.9786, 1.923, 3.409, 5.498, 8.248, 11.71, 15.94, 20.99",\
                 "0.3962, 0.5228, 0.9848, 1.925, 3.414, 5.502, 8.258, 11.71, 15.95, 20.99",\
                 "0.4386, 0.562, 1.013, 1.935, 3.411, 5.499, 8.264, 11.72, 15.94, 21.03",\
                 "0.489, 0.609, 1.044, 1.953, 3.424, 5.504, 8.252, 11.71, 15.94, 20.98",\
                 "0.546, 0.662, 1.082, 1.972, 3.436, 5.518, 8.256, 11.73, 15.94, 20.99",\
                 "0.614, 0.728, 1.13, 1.994, 3.452, 5.528, 8.268, 11.72, 15.96, 20.98",\
                 "0.688, 0.798, 1.184, 2.024, 3.462, 5.536, 8.282, 11.74, 15.95, 20.99");
        }
      }
    }
  }

