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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.435 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0109, 0.04563, 0.112, 0.2153, 0.3603, 0.5511, 0.7915, 1.085, 1.435");
          values("0.1389, 0.1399, 0.1427, 0.145, 0.1462, 0.1468, 0.1472, 0.1475, 0.1475, 0.1476",\
                 "0.1383, 0.1393, 0.1421, 0.1445, 0.1456, 0.1462, 0.1466, 0.1468, 0.1469, 0.147",\
                 "0.1375, 0.1381, 0.1408, 0.1432, 0.1446, 0.1454, 0.1458, 0.1462, 0.1463, 0.1464",\
                 "0.1408, 0.1402, 0.1414, 0.1435, 0.1451, 0.146, 0.1466, 0.147, 0.1471, 0.1473",\
                 "0.1483, 0.1465, 0.1457, 0.1471, 0.1483, 0.1493, 0.15, 0.1504, 0.1507, 0.1508",\
                 "0.1594, 0.1563, 0.1538, 0.1541, 0.1548, 0.1558, 0.1564, 0.1569, 0.1572, 0.1574",\
                 "0.1743, 0.1699, 0.1657, 0.1646, 0.1648, 0.1654, 0.1661, 0.1665, 0.1668, 0.1669",\
                 "0.1937, 0.188, 0.1816, 0.1792, 0.1788, 0.179, 0.1794, 0.1797, 0.18, 0.18",\
                 "0.2177, 0.2103, 0.2022, 0.1979, 0.1967, 0.1964, 0.1965, 0.1968, 0.197, 0.1968",\
                 "0.2466, 0.2373, 0.2272, 0.2214, 0.2191, 0.2182, 0.218, 0.2181, 0.2181, 0.2175");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0109, 0.04563, 0.112, 0.2153, 0.3603, 0.5511, 0.7915, 1.085, 1.435");
          values("0.09543, 0.09489, 0.09627, 0.09824, 0.1003, 0.1026, 0.105, 0.1069, 0.1139, 0.1524",\
                 "0.09456, 0.09417, 0.09564, 0.0977, 0.09971, 0.1023, 0.1035, 0.1063, 0.1112, 0.1521",\
                 "0.09366, 0.09307, 0.09417, 0.09593, 0.09833, 0.1008, 0.1023, 0.1051, 0.11, 0.1566",\
                 "0.09674, 0.09547, 0.09498, 0.09608, 0.09842, 0.1005, 0.1029, 0.106, 0.1113, 0.1648",\
                 "0.1038, 0.1014, 0.09894, 0.09947, 0.1011, 0.1035, 0.1053, 0.1084, 0.1145, 0.1783",\
                 "0.1143, 0.1105, 0.1067, 0.1058, 0.1079, 0.1092, 0.1104, 0.1129, 0.122, 0.1982",\
                 "0.1284, 0.1231, 0.1181, 0.1157, 0.1163, 0.12, 0.1197, 0.1218, 0.1315, 0.2374",\
                 "0.1466, 0.1396, 0.1325, 0.1297, 0.1288, 0.1296, 0.1341, 0.137, 0.1514, 0.2963",\
                 "0.1692, 0.1604, 0.1526, 0.1478, 0.1469, 0.1461, 0.1482, 0.1558, 0.1823, 0.4015",\
                 "0.1964, 0.186, 0.1755, 0.17, 0.1682, 0.1665, 0.1665, 0.1742, 0.237, 0.6013");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0109, 0.04563, 0.112, 0.2153, 0.3603, 0.5511, 0.7915, 1.085, 1.435");
          values("0.3528, 0.4222, 0.6007, 0.8973, 1.35, 1.982, 2.814, 3.863, 5.141, 6.667",\
                 "0.379, 0.4485, 0.627, 0.9235, 1.376, 2.008, 2.84, 3.887, 5.165, 6.693",\
                 "0.4754, 0.5446, 0.7228, 1.02, 1.472, 2.104, 2.937, 3.985, 5.264, 6.791",\
                 "0.6494, 0.721, 0.9004, 1.197, 1.649, 2.282, 3.114, 4.163, 5.443, 6.964",\
                 "0.8451, 0.9253, 1.115, 1.414, 1.866, 2.499, 3.33, 4.379, 5.659, 7.183",\
                 "1.053, 1.141, 1.343, 1.646, 2.098, 2.731, 3.562, 4.611, 5.889, 7.416",\
                 "1.278, 1.374, 1.589, 1.897, 2.349, 2.981, 3.812, 4.859, 6.137, 7.661",\
                 "1.525, 1.627, 1.856, 2.171, 2.623, 3.254, 4.085, 5.133, 6.411, 7.935",\
                 "1.792, 1.9, 2.146, 2.469, 2.923, 3.553, 4.384, 5.432, 6.71, 8.233",\
                 "2.079, 2.193, 2.457, 2.793, 3.25, 3.881, 4.711, 5.757, 7.035, 8.559");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0109, 0.04563, 0.112, 0.2153, 0.3603, 0.5511, 0.7915, 1.085, 1.435");
          values("0.3535, 0.4185, 0.5901, 0.889, 1.351, 1.998, 2.851, 3.92, 5.234, 6.791",\
                 "0.3743, 0.4394, 0.611, 0.9099, 1.372, 2.019, 2.871, 3.943, 5.253, 6.81",\
                 "0.4519, 0.5169, 0.688, 0.9868, 1.449, 2.097, 2.948, 4.02, 5.331, 6.893",\
                 "0.585, 0.6536, 0.8264, 1.125, 1.586, 2.234, 3.086, 4.16, 5.47, 7.03",\
                 "0.7076, 0.7841, 0.9674, 1.266, 1.727, 2.374, 3.227, 4.299, 5.609, 7.171",\
                 "0.8116, 0.8956, 1.091, 1.392, 1.852, 2.498, 3.348, 4.422, 5.731, 7.293",\
                 "0.9004, 0.9913, 1.199, 1.503, 1.963, 2.608, 3.459, 4.53, 5.838, 7.399",\
                 "0.9756, 1.073, 1.294, 1.603, 2.062, 2.706, 3.556, 4.628, 5.934, 7.493",\
                 "1.036, 1.138, 1.374, 1.691, 2.149, 2.793, 3.642, 4.712, 6.02, 7.578",\
                 "1.076, 1.186, 1.436, 1.764, 2.223, 2.867, 3.715, 4.786, 6.093, 7.652");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0109, 0.04563, 0.112, 0.2153, 0.3603, 0.5511, 0.7915, 1.085, 1.435");
          values("0.1197, 0.1905, 0.4154, 0.8748, 1.616, 2.661, 4.04, 5.771, 7.878, 10.4",\
                 "0.1198, 0.1903, 0.4164, 0.8753, 1.615, 2.659, 4.043, 5.777, 7.883, 10.4",\
                 "0.1199, 0.1907, 0.4165, 0.8754, 1.616, 2.66, 4.044, 5.784, 7.879, 10.4",\
                 "0.132, 0.2004, 0.4198, 0.8758, 1.616, 2.662, 4.037, 5.773, 7.877, 10.4",\
                 "0.1576, 0.229, 0.439, 0.8806, 1.615, 2.663, 4.036, 5.769, 7.878, 10.4",\
                 "0.1818, 0.2614, 0.4636, 0.8918, 1.619, 2.661, 4.039, 5.774, 7.896, 10.42",\
                 "0.205, 0.2918, 0.4912, 0.9032, 1.624, 2.663, 4.035, 5.763, 7.88, 10.4",\
                 "0.23, 0.323, 0.5222, 0.918, 1.629, 2.669, 4.036, 5.765, 7.882, 10.41",\
                 "0.2574, 0.3556, 0.562, 0.9396, 1.635, 2.669, 4.041, 5.764, 7.872, 10.39",\
                 "0.2834, 0.3878, 0.608, 0.9702, 1.648, 2.67, 4.04, 5.766, 7.876, 10.39");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0109, 0.04563, 0.112, 0.2153, 0.3603, 0.5511, 0.7915, 1.085, 1.435");
          values("0.1197, 0.1888, 0.4261, 0.9211, 1.709, 2.82, 4.279, 6.12, 8.37, 11.02",\
                 "0.1197, 0.1888, 0.4255, 0.9223, 1.711, 2.82, 4.274, 6.117, 8.353, 11.03",\
                 "0.12, 0.1889, 0.4264, 0.9213, 1.71, 2.82, 4.277, 6.116, 8.353, 11.05",\
                 "0.1348, 0.2002, 0.4298, 0.9212, 1.711, 2.819, 4.275, 6.119, 8.361, 11.04",\
                 "0.1584, 0.229, 0.4454, 0.9248, 1.711, 2.816, 4.274, 6.109, 8.351, 11.04",\
                 "0.1828, 0.2584, 0.4672, 0.9322, 1.711, 2.818, 4.268, 6.108, 8.346, 11.02",\
                 "0.2056, 0.2856, 0.4926, 0.939, 1.715, 2.816, 4.271, 6.108, 8.353, 11.02",\
                 "0.2286, 0.313, 0.521, 0.9488, 1.717, 2.818, 4.272, 6.102, 8.348, 11.02",\
                 "0.2544, 0.3432, 0.5562, 0.964, 1.719, 2.825, 4.273, 6.101, 8.337, 11.02",\
                 "0.2814, 0.374, 0.5948, 0.9854, 1.728, 2.823, 4.275, 6.111, 8.338, 11");
        }
      }
    }
  }

