/*
 * 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_3) {
    area : 21.952000 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "6.74586e-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.004869 ;
      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 : 1.082 ;
      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.008458, 0.03464, 0.08463, 0.1625, 0.2718, 0.4156, 0.5968, 0.8179, 1.082");
          values("0.1806, 0.1766, 0.1735, 0.1723, 0.1719, 0.1715, 0.1713, 0.1712, 0.1713, 0.1713",\
                 "0.1796, 0.1755, 0.1723, 0.1713, 0.1706, 0.1706, 0.1704, 0.1703, 0.1704, 0.1703",\
                 "0.1808, 0.1764, 0.1727, 0.1719, 0.1714, 0.1712, 0.1712, 0.1712, 0.1711, 0.1712",\
                 "0.1968, 0.1907, 0.1841, 0.1813, 0.1801, 0.1796, 0.1794, 0.1792, 0.1791, 0.1791",\
                 "0.2254, 0.2167, 0.2061, 0.2009, 0.198, 0.1966, 0.196, 0.1957, 0.1953, 0.1952",\
                 "0.2653, 0.2546, 0.2393, 0.2306, 0.226, 0.2238, 0.2221, 0.2215, 0.2209, 0.2205",\
                 "0.3185, 0.3058, 0.2855, 0.2727, 0.2658, 0.2617, 0.2593, 0.2577, 0.2568, 0.2562",\
                 "0.3852, 0.3706, 0.3449, 0.3282, 0.318, 0.3121, 0.3083, 0.3058, 0.3044, 0.3031",\
                 "0.4658, 0.4498, 0.4189, 0.3972, 0.3837, 0.3748, 0.3695, 0.3661, 0.3636, 0.3621",\
                 "0.5608, 0.5434, 0.5076, 0.4804, 0.463, 0.4514, 0.4443, 0.4393, 0.4358, 0.4337");
        }

        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.008458, 0.03464, 0.08463, 0.1625, 0.2718, 0.4156, 0.5968, 0.8179, 1.082");
          values("0.1162, 0.1152, 0.1161, 0.1181, 0.1203, 0.1225, 0.1245, 0.1267, 0.13, 0.1405",\
                 "0.1155, 0.1144, 0.1155, 0.1174, 0.1193, 0.1219, 0.1239, 0.1257, 0.1293, 0.1395",\
                 "0.1184, 0.1168, 0.1161, 0.1176, 0.1195, 0.122, 0.1242, 0.1261, 0.1297, 0.1406",\
                 "0.132, 0.1287, 0.1256, 0.1245, 0.1256, 0.1276, 0.1301, 0.1317, 0.1356, 0.147",\
                 "0.1548, 0.15, 0.1429, 0.1414, 0.14, 0.1411, 0.1427, 0.1445, 0.147, 0.1605",\
                 "0.1888, 0.1825, 0.1725, 0.1654, 0.1646, 0.1644, 0.1648, 0.1663, 0.1701, 0.1853",\
                 "0.2348, 0.226, 0.2134, 0.203, 0.1989, 0.1987, 0.1988, 0.1977, 0.2002, 0.2216",\
                 "0.2929, 0.2812, 0.2654, 0.2527, 0.2449, 0.2416, 0.2437, 0.2439, 0.2449, 0.2675",\
                 "0.3634, 0.3492, 0.3293, 0.3142, 0.3036, 0.2982, 0.2955, 0.2994, 0.3025, 0.3359",\
                 "0.4472, 0.4306, 0.4074, 0.3871, 0.3739, 0.3646, 0.3582, 0.3601, 0.3702, 0.4183");
        }
      }

      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.008458, 0.03464, 0.08463, 0.1625, 0.2718, 0.4156, 0.5968, 0.8179, 1.082");
          values("0.2742, 0.3111, 0.4066, 0.5477, 0.7455, 1.016, 1.371, 1.818, 2.364, 3.016",\
                 "0.29, 0.327, 0.4224, 0.5635, 0.7614, 1.032, 1.387, 1.834, 2.38, 3.031",\
                 "0.3566, 0.3935, 0.4887, 0.6298, 0.8277, 1.098, 1.453, 1.901, 2.446, 3.097",\
                 "0.483, 0.5209, 0.6177, 0.7593, 0.9571, 1.228, 1.583, 2.03, 2.576, 3.227",\
                 "0.6368, 0.6786, 0.7813, 0.9285, 1.128, 1.399, 1.753, 2.199, 2.745, 3.395",\
                 "0.8205, 0.8656, 0.9757, 1.128, 1.33, 1.601, 1.956, 2.402, 2.947, 3.598",\
                 "1.034, 1.083, 1.202, 1.362, 1.568, 1.84, 2.194, 2.641, 3.185, 3.835",\
                 "1.278, 1.332, 1.46, 1.63, 1.843, 2.118, 2.472, 2.919, 3.463, 4.113",\
                 "1.553, 1.611, 1.748, 1.93, 2.153, 2.435, 2.793, 3.239, 3.784, 4.433",\
                 "1.861, 1.922, 2.07, 2.264, 2.498, 2.788, 3.153, 3.604, 4.15, 4.798");
        }

        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.008458, 0.03464, 0.08463, 0.1625, 0.2718, 0.4156, 0.5968, 0.8179, 1.082");
          values("0.2166, 0.2563, 0.3786, 0.6043, 0.9548, 1.446, 2.093, 2.906, 3.897, 5.083",\
                 "0.2307, 0.2703, 0.3927, 0.6184, 0.9696, 1.46, 2.104, 2.917, 3.912, 5.097",\
                 "0.2826, 0.3219, 0.443, 0.6684, 1.019, 1.511, 2.156, 2.967, 3.961, 5.148",\
                 "0.3452, 0.3864, 0.5081, 0.7318, 1.082, 1.572, 2.217, 3.032, 4.021, 5.21",\
                 "0.3889, 0.4323, 0.5564, 0.7791, 1.127, 1.616, 2.262, 3.074, 4.065, 5.248",\
                 "0.4105, 0.457, 0.5859, 0.807, 1.153, 1.642, 2.285, 3.098, 4.091, 5.275",\
                 "0.4063, 0.4563, 0.5913, 0.8143, 1.161, 1.647, 2.29, 3.101, 4.092, 5.276",\
                 "0.3736, 0.4269, 0.5687, 0.7962, 1.143, 1.631, 2.274, 3.084, 4.073, 5.253",\
                 "0.3104, 0.3678, 0.5165, 0.7487, 1.098, 1.589, 2.232, 3.042, 4.031, 5.212",\
                 "0.2156, 0.2764, 0.4324, 0.6697, 1.024, 1.518, 2.165, 2.976, 3.965, 5.145");
        }

        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.008458, 0.03464, 0.08463, 0.1625, 0.2718, 0.4156, 0.5968, 0.8179, 1.082");
          values("0.09776, 0.1339, 0.2388, 0.4239, 0.7291, 1.173, 1.768, 2.519, 3.441, 4.534",\
                 "0.09752, 0.1341, 0.2388, 0.4246, 0.7293, 1.173, 1.769, 2.519, 3.438, 4.534",\
                 "0.09776, 0.1343, 0.2387, 0.4238, 0.7285, 1.174, 1.769, 2.52, 3.441, 4.538",\
                 "0.1102, 0.1454, 0.2462, 0.4274, 0.7306, 1.173, 1.769, 2.52, 3.441, 4.538",\
                 "0.131, 0.1674, 0.2678, 0.4422, 0.736, 1.177, 1.769, 2.521, 3.441, 4.536",\
                 "0.1536, 0.1922, 0.291, 0.4612, 0.747, 1.182, 1.771, 2.52, 3.439, 4.531",\
                 "0.1786, 0.2202, 0.3228, 0.4874, 0.763, 1.189, 1.773, 2.521, 3.437, 4.527",\
                 "0.2068, 0.2514, 0.358, 0.5236, 0.7882, 1.201, 1.779, 2.523, 3.436, 4.528",\
                 "0.2358, 0.2854, 0.3982, 0.5654, 0.8276, 1.233, 1.799, 2.531, 3.441, 4.529",\
                 "0.2682, 0.3204, 0.4424, 0.6112, 0.8696, 1.273, 1.833, 2.558, 3.454, 4.532");
        }

        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.008458, 0.03464, 0.08463, 0.1625, 0.2718, 0.4156, 0.5968, 0.8179, 1.082");
          values("0.09166, 0.1456, 0.3415, 0.7339, 1.35, 2.218, 3.354, 4.788, 6.541, 8.627",\
                 "0.0919, 0.1457, 0.3413, 0.7336, 1.35, 2.218, 3.356, 4.791, 6.536, 8.628",\
                 "0.09254, 0.1469, 0.3423, 0.7341, 1.35, 2.216, 3.353, 4.793, 6.537, 8.629",\
                 "0.1045, 0.1576, 0.346, 0.7342, 1.35, 2.218, 3.351, 4.788, 6.534, 8.623",\
                 "0.1188, 0.1716, 0.3528, 0.7382, 1.352, 2.213, 3.352, 4.793, 6.536, 8.627",\
                 "0.1374, 0.1892, 0.3652, 0.7402, 1.352, 2.215, 3.353, 4.782, 6.536, 8.624",\
                 "0.1564, 0.2098, 0.3838, 0.7494, 1.356, 2.215, 3.351, 4.789, 6.531, 8.619",\
                 "0.1794, 0.2326, 0.4068, 0.7648, 1.368, 2.221, 3.352, 4.781, 6.533, 8.613",\
                 "0.2014, 0.2558, 0.4324, 0.7834, 1.388, 2.24, 3.362, 4.784, 6.531, 8.611",\
                 "0.2246, 0.2828, 0.4596, 0.8044, 1.408, 2.266, 3.383, 4.798, 6.533, 8.614");
        }
      }
    }
  }

