/*
 * 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__buf_2) {
    area : 17.561600 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "5.59251e-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.004859 ;
      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.7212 ;
      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.005971, 0.02342, 0.05674, 0.1087, 0.1815, 0.2773, 0.3981, 0.5455, 0.7212");
          values("0.1272, 0.126, 0.1255, 0.1258, 0.1257, 0.1258, 0.1259, 0.1259, 0.1259, 0.1259",\
                 "0.1259, 0.1248, 0.1244, 0.1246, 0.1246, 0.1246, 0.1247, 0.1247, 0.1248, 0.1248",\
                 "0.1282, 0.1266, 0.1258, 0.1259, 0.126, 0.1261, 0.1263, 0.1263, 0.1263, 0.1264",\
                 "0.142, 0.1391, 0.1364, 0.1353, 0.1351, 0.135, 0.135, 0.135, 0.135, 0.135",\
                 "0.1657, 0.1611, 0.156, 0.1539, 0.1528, 0.1521, 0.152, 0.152, 0.152, 0.1519",\
                 "0.2003, 0.1945, 0.1867, 0.1824, 0.1803, 0.1794, 0.1787, 0.1783, 0.1782, 0.1781",\
                 "0.2471, 0.2396, 0.2288, 0.2223, 0.219, 0.2169, 0.2158, 0.215, 0.2147, 0.2145",\
                 "0.3062, 0.2975, 0.2834, 0.2744, 0.2688, 0.266, 0.2641, 0.263, 0.2624, 0.2618",\
                 "0.3779, 0.3682, 0.3509, 0.339, 0.3316, 0.3272, 0.3244, 0.3227, 0.3215, 0.3208",\
                 "0.4629, 0.4525, 0.432, 0.417, 0.4073, 0.4013, 0.3974, 0.3949, 0.3932, 0.3922");
        }

        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.005971, 0.02342, 0.05674, 0.1087, 0.1815, 0.2773, 0.3981, 0.5455, 0.7212");
          values("0.07099, 0.07108, 0.07275, 0.07454, 0.07548, 0.07732, 0.07867, 0.07913, 0.08102, 0.09111",\
                 "0.0704, 0.07048, 0.07203, 0.07381, 0.07522, 0.07672, 0.07824, 0.07979, 0.08135, 0.08862",\
                 "0.07333, 0.07285, 0.07307, 0.07424, 0.07545, 0.07732, 0.0789, 0.08045, 0.08171, 0.09254",\
                 "0.08389, 0.08229, 0.08098, 0.08098, 0.08178, 0.08349, 0.08481, 0.08639, 0.08831, 0.09481",\
                 "0.1036, 0.1008, 0.09745, 0.09658, 0.09687, 0.09768, 0.09893, 0.1002, 0.1022, 0.1117",\
                 "0.1335, 0.1297, 0.1244, 0.1208, 0.121, 0.1215, 0.1222, 0.1227, 0.1246, 0.136",\
                 "0.1739, 0.1688, 0.1615, 0.1564, 0.1545, 0.1554, 0.1555, 0.1557, 0.1577, 0.1689",\
                 "0.2255, 0.219, 0.2099, 0.2024, 0.1982, 0.197, 0.1993, 0.2005, 0.2013, 0.2144",\
                 "0.2889, 0.2809, 0.2698, 0.261, 0.2535, 0.2509, 0.2503, 0.2533, 0.2559, 0.277",\
                 "0.3642, 0.3547, 0.3416, 0.3308, 0.3226, 0.3166, 0.315, 0.3153, 0.3224, 0.3552");
        }
      }

      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.005971, 0.02342, 0.05674, 0.1087, 0.1815, 0.2773, 0.3981, 0.5455, 0.7212");
          values("0.2193, 0.2531, 0.341, 0.4751, 0.6698, 0.9396, 1.294, 1.741, 2.286, 2.937",\
                 "0.2349, 0.2686, 0.3565, 0.4907, 0.6854, 0.9552, 1.31, 1.756, 2.302, 2.952",\
                 "0.3021, 0.3357, 0.4232, 0.5575, 0.7522, 1.022, 1.377, 1.824, 2.368, 3.02",\
                 "0.4172, 0.453, 0.5442, 0.68, 0.8748, 1.145, 1.499, 1.946, 2.49, 3.142",\
                 "0.5578, 0.597, 0.6936, 0.8336, 1.03, 1.3, 1.654, 2.101, 2.646, 3.296",\
                 "0.7273, 0.7707, 0.8744, 1.019, 1.217, 1.487, 1.842, 2.287, 2.833, 3.483",\
                 "0.9255, 0.9727, 1.085, 1.238, 1.441, 1.711, 2.066, 2.512, 3.057, 3.706",\
                 "1.153, 1.204, 1.326, 1.49, 1.699, 1.975, 2.329, 2.775, 3.32, 3.969",\
                 "1.41, 1.465, 1.598, 1.772, 1.991, 2.273, 2.634, 3.081, 3.625, 4.275",\
                 "1.699, 1.759, 1.901, 2.087, 2.316, 2.607, 2.976, 3.431, 3.978, 4.627");
        }

        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.005971, 0.02342, 0.05674, 0.1087, 0.1815, 0.2773, 0.3981, 0.5455, 0.7212");
          values("0.1764, 0.2146, 0.3355, 0.5613, 0.9112, 1.402, 2.048, 2.861, 3.851, 5.035",\
                 "0.1904, 0.2286, 0.3495, 0.5756, 0.9259, 1.415, 2.063, 2.876, 3.863, 5.051",\
                 "0.2392, 0.2771, 0.3966, 0.6219, 0.9723, 1.463, 2.109, 2.923, 3.912, 5.097",\
                 "0.2854, 0.3252, 0.4449, 0.6693, 1.019, 1.51, 2.154, 2.969, 3.959, 5.138",\
                 "0.313, 0.3553, 0.4769, 0.6991, 1.048, 1.538, 2.183, 2.996, 3.987, 5.172",\
                 "0.3178, 0.3631, 0.4893, 0.711, 1.058, 1.547, 2.191, 3.004, 3.996, 5.176",\
                 "0.2967, 0.3449, 0.4766, 0.7006, 1.049, 1.536, 2.179, 2.99, 3.981, 5.163",\
                 "0.2468, 0.2985, 0.4368, 0.6636, 1.015, 1.504, 2.146, 2.957, 3.946, 5.126",\
                 "0.1667, 0.222, 0.3671, 0.5981, 0.9513, 1.446, 2.09, 2.9, 3.89, 5.069",\
                 "0.0533, 0.1132, 0.2655, 0.5014, 0.8586, 1.356, 2.007, 2.82, 3.809, 4.989");
        }

        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.005971, 0.02342, 0.05674, 0.1087, 0.1815, 0.2773, 0.3981, 0.5455, 0.7212");
          values("0.07778, 0.1132, 0.2144, 0.4037, 0.7157, 1.165, 1.76, 2.513, 3.432, 4.526",\
                 "0.07786, 0.1132, 0.2147, 0.4036, 0.7163, 1.164, 1.761, 2.513, 3.429, 4.526",\
                 "0.07912, 0.1138, 0.215, 0.4039, 0.7156, 1.164, 1.759, 2.512, 3.43, 4.528",\
                 "0.09354, 0.1274, 0.2251, 0.4081, 0.7158, 1.166, 1.759, 2.51, 3.431, 4.528",\
                 "0.111, 0.1452, 0.2422, 0.4206, 0.7214, 1.167, 1.761, 2.511, 3.429, 4.527",\
                 "0.1318, 0.1684, 0.2642, 0.435, 0.7298, 1.17, 1.761, 2.51, 3.43, 4.517",\
                 "0.1544, 0.1944, 0.2924, 0.4598, 0.743, 1.176, 1.765, 2.51, 3.427, 4.517",\
                 "0.1802, 0.224, 0.3268, 0.4936, 0.7698, 1.191, 1.772, 2.514, 3.427, 4.515",\
                 "0.2062, 0.2542, 0.3632, 0.5302, 0.8054, 1.225, 1.794, 2.525, 3.43, 4.517",\
                 "0.233, 0.2858, 0.4022, 0.5722, 0.8432, 1.265, 1.837, 2.556, 3.446, 4.521");
        }

        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.005971, 0.02342, 0.05674, 0.1087, 0.1815, 0.2773, 0.3981, 0.5455, 0.7212");
          values("0.0803, 0.134, 0.3337, 0.7284, 1.345, 2.207, 3.346, 4.777, 6.533, 8.612",\
                 "0.0799, 0.134, 0.3337, 0.7278, 1.344, 2.209, 3.347, 4.78, 6.524, 8.618",\
                 "0.08266, 0.1359, 0.3338, 0.7279, 1.344, 2.212, 3.346, 4.779, 6.533, 8.613",\
                 "0.09316, 0.1455, 0.3373, 0.7305, 1.344, 2.208, 3.344, 4.779, 6.524, 8.624",\
                 "0.1056, 0.1582, 0.342, 0.7306, 1.344, 2.207, 3.343, 4.777, 6.524, 8.613",\
                 "0.1216, 0.174, 0.3528, 0.735, 1.347, 2.207, 3.342, 4.772, 6.523, 8.621",\
                 "0.1384, 0.1926, 0.3684, 0.7454, 1.352, 2.209, 3.342, 4.781, 6.521, 8.604",\
                 "0.158, 0.2116, 0.3876, 0.7584, 1.366, 2.217, 3.347, 4.773, 6.528, 8.604",\
                 "0.1788, 0.2332, 0.4092, 0.7748, 1.387, 2.237, 3.36, 4.78, 6.519, 8.614",\
                 "0.2002, 0.2554, 0.4342, 0.7922, 1.406, 2.266, 3.383, 4.791, 6.522, 8.601");
        }
      }
    }
  }

