/*
 * 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 : "4.52859e-05" ;
    }

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "4.52859e-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.003561 ;
      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 : 0.36 ;
      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.003478, 0.01218, 0.02879, 0.05467, 0.09098, 0.1388, 0.1989, 0.2724, 0.36");
          values("0.06998, 0.07033, 0.07075, 0.07109, 0.07126, 0.07137, 0.07141, 0.07143, 0.07145, 0.07146",\
                 "0.06944, 0.06979, 0.0703, 0.07059, 0.0708, 0.07088, 0.07096, 0.07097, 0.07099, 0.07102",\
                 "0.07152, 0.07158, 0.07188, 0.07227, 0.07253, 0.07267, 0.07275, 0.07277, 0.0728, 0.07284",\
                 "0.07955, 0.07927, 0.07909, 0.07922, 0.07936, 0.07949, 0.07955, 0.07961, 0.07964, 0.07967",\
                 "0.09466, 0.09398, 0.09301, 0.09259, 0.09257, 0.09259, 0.0926, 0.09263, 0.09267, 0.09269",\
                 "0.1174, 0.1162, 0.1144, 0.1134, 0.113, 0.1128, 0.1128, 0.1127, 0.1127, 0.1127",\
                 "0.1482, 0.1466, 0.1439, 0.142, 0.1411, 0.1406, 0.1404, 0.1403, 0.1402, 0.1402",\
                 "0.1875, 0.1853, 0.1816, 0.1788, 0.1773, 0.1765, 0.176, 0.1758, 0.1756, 0.1755",\
                 "0.2358, 0.233, 0.2284, 0.2246, 0.2223, 0.221, 0.2202, 0.2197, 0.2194, 0.2192",\
                 "0.2935, 0.2902, 0.2845, 0.2797, 0.2765, 0.2745, 0.2733, 0.2726, 0.2722, 0.2718");
        }

        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.003478, 0.01218, 0.02879, 0.05467, 0.09098, 0.1388, 0.1989, 0.2724, 0.36");
          values("0.03715, 0.03734, 0.03756, 0.03773, 0.038, 0.03779, 0.03795, 0.03779, 0.03766, 0.04046",\
                 "0.03649, 0.03653, 0.03683, 0.03707, 0.03717, 0.03729, 0.03722, 0.03666, 0.037, 0.0398",\
                 "0.03769, 0.03749, 0.03744, 0.03773, 0.03777, 0.03795, 0.03795, 0.03782, 0.03703, 0.04061",\
                 "0.04466, 0.04409, 0.04331, 0.04308, 0.04331, 0.04337, 0.04333, 0.0427, 0.04312, 0.04627",\
                 "0.05794, 0.05697, 0.05564, 0.05482, 0.0545, 0.05429, 0.05438, 0.05432, 0.05431, 0.05778",\
                 "0.07817, 0.07685, 0.07474, 0.0736, 0.07265, 0.07208, 0.07184, 0.07161, 0.07173, 0.07651",\
                 "0.1059, 0.1043, 0.1012, 0.09924, 0.09822, 0.09735, 0.09639, 0.09587, 0.09604, 0.1021",\
                 "0.1412, 0.1391, 0.1353, 0.1326, 0.1311, 0.1303, 0.129, 0.1276, 0.1276, 0.1353",\
                 "0.1847, 0.182, 0.1775, 0.1739, 0.1715, 0.17, 0.1689, 0.1678, 0.1672, 0.1777",\
                 "0.2366, 0.2334, 0.228, 0.2234, 0.2206, 0.2186, 0.2171, 0.2159, 0.2163, 0.2333");
        }
      }

      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.003478, 0.01218, 0.02879, 0.05467, 0.09098, 0.1388, 0.1989, 0.2724, 0.36");
          values("0.1997, 0.2363, 0.3461, 0.5415, 0.8433, 1.266, 1.823, 2.524, 3.379, 4.399",\
                 "0.2168, 0.2535, 0.3633, 0.5587, 0.8605, 1.283, 1.84, 2.54, 3.396, 4.417",\
                 "0.281, 0.3178, 0.4276, 0.6231, 0.925, 1.348, 1.905, 2.605, 3.461, 4.48",\
                 "0.3744, 0.413, 0.526, 0.7219, 1.024, 1.446, 2.003, 2.704, 3.56, 4.579",\
                 "0.4843, 0.5255, 0.6423, 0.8398, 1.142, 1.564, 2.12, 2.822, 3.676, 4.696",\
                 "0.6085, 0.6533, 0.7768, 0.9785, 1.281, 1.704, 2.259, 2.96, 3.815, 4.835",\
                 "0.7461, 0.7949, 0.926, 1.135, 1.442, 1.865, 2.422, 3.122, 3.976, 4.995",\
                 "0.8978, 0.9507, 1.09, 1.307, 1.622, 2.051, 2.608, 3.309, 4.164, 5.182",\
                 "1.065, 1.122, 1.271, 1.495, 1.818, 2.258, 2.822, 3.524, 4.378, 5.397",\
                 "1.249, 1.31, 1.468, 1.7, 2.031, 2.48, 3.057, 3.768, 4.624, 5.643");
        }

        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.003478, 0.01218, 0.02879, 0.05467, 0.09098, 0.1388, 0.1989, 0.2724, 0.36");
          values("0.2044, 0.2422, 0.3621, 0.5862, 0.9347, 1.423, 2.065, 2.875, 3.863, 5.042",\
                 "0.2167, 0.2543, 0.3743, 0.5985, 0.9468, 1.435, 2.078, 2.888, 3.875, 5.054",\
                 "0.2634, 0.3008, 0.4204, 0.6446, 0.993, 1.482, 2.124, 2.934, 3.923, 5.099",\
                 "0.3161, 0.3552, 0.4759, 0.6995, 1.048, 1.536, 2.179, 2.989, 3.977, 5.154",\
                 "0.361, 0.4021, 0.5245, 0.7472, 1.095, 1.583, 2.225, 3.034, 4.022, 5.2",\
                 "0.3946, 0.439, 0.566, 0.7889, 1.136, 1.623, 2.265, 3.074, 4.063, 5.239",\
                 "0.4149, 0.4625, 0.5958, 0.8226, 1.171, 1.658, 2.299, 3.107, 4.095, 5.273",\
                 "0.4187, 0.4701, 0.6104, 0.843, 1.196, 1.685, 2.326, 3.134, 4.121, 5.299",\
                 "0.405, 0.4602, 0.608, 0.8473, 1.206, 1.702, 2.346, 3.154, 4.141, 5.316",\
                 "0.373, 0.4324, 0.5887, 0.834, 1.2, 1.704, 2.356, 3.166, 4.152, 5.328");
        }

        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.003478, 0.01218, 0.02879, 0.05467, 0.09098, 0.1388, 0.1989, 0.2724, 0.36");
          values("0.09798, 0.1437, 0.3024, 0.6213, 1.128, 1.841, 2.779, 3.961, 5.404, 7.123",\
                 "0.09804, 0.1437, 0.3024, 0.6215, 1.129, 1.841, 2.779, 3.961, 5.404, 7.123",\
                 "0.1006, 0.1456, 0.3028, 0.6218, 1.129, 1.841, 2.779, 3.961, 5.403, 7.123",\
                 "0.1126, 0.1578, 0.3108, 0.6227, 1.129, 1.841, 2.779, 3.961, 5.403, 7.124",\
                 "0.129, 0.1738, 0.3222, 0.6286, 1.13, 1.84, 2.778, 3.961, 5.403, 7.124",\
                 "0.1488, 0.1952, 0.342, 0.6396, 1.134, 1.842, 2.778, 3.958, 5.402, 7.121",\
                 "0.1724, 0.2194, 0.3664, 0.6624, 1.15, 1.847, 2.778, 3.957, 5.401, 7.122",\
                 "0.1964, 0.2466, 0.3952, 0.6896, 1.179, 1.869, 2.787, 3.959, 5.398, 7.119",\
                 "0.2216, 0.274, 0.4254, 0.7194, 1.214, 1.91, 2.817, 3.971, 5.401, 7.115",\
                 "0.248, 0.304, 0.4588, 0.75, 1.25, 1.957, 2.868, 4.007, 5.417, 7.118");
        }

        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.003478, 0.01218, 0.02879, 0.05467, 0.09098, 0.1388, 0.1989, 0.2724, 0.36");
          values("0.1068, 0.1603, 0.3588, 0.7512, 1.366, 2.227, 3.361, 4.789, 6.533, 8.61",\
                 "0.1073, 0.1604, 0.3583, 0.7513, 1.367, 2.227, 3.36, 4.788, 6.533, 8.61",\
                 "0.1093, 0.1619, 0.3591, 0.7522, 1.367, 2.227, 3.361, 4.789, 6.532, 8.612",\
                 "0.1208, 0.1722, 0.3624, 0.7513, 1.365, 2.227, 3.361, 4.788, 6.531, 8.612",\
                 "0.134, 0.1846, 0.368, 0.7532, 1.365, 2.225, 3.361, 4.79, 6.533, 8.612",\
                 "0.1496, 0.201, 0.3798, 0.7566, 1.369, 2.226, 3.358, 4.788, 6.533, 8.613",\
                 "0.1694, 0.2214, 0.3976, 0.769, 1.373, 2.227, 3.358, 4.783, 6.527, 8.606",\
                 "0.1906, 0.2428, 0.4188, 0.7892, 1.391, 2.237, 3.359, 4.783, 6.526, 8.606",\
                 "0.2122, 0.2658, 0.4422, 0.8108, 1.417, 2.259, 3.371, 4.787, 6.523, 8.601",\
                 "0.236, 0.2914, 0.4696, 0.8352, 1.446, 2.297, 3.402, 4.804, 6.53, 8.6");
        }
      }
    }
  }

