/*
 * 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_8) {
    area : 57.075200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "0.00256311" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "0.004508262" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.004508262" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(I) {
      capacitance : 0.01747 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 8.9 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.864 ;
      max_transition : 8.9 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.01386, 0.05901, 0.1452, 0.2795, 0.468, 0.716, 1.028, 1.41, 1.864");
          values("0.1701, 0.1694, 0.1698, 0.1703, 0.1709, 0.171, 0.1712, 0.1713, 0.1714, 0.1714",\
                 "0.1684, 0.1678, 0.1682, 0.1687, 0.1693, 0.1694, 0.1696, 0.1697, 0.1698, 0.1698",\
                 "0.1673, 0.1666, 0.1667, 0.1675, 0.1681, 0.1684, 0.1687, 0.1688, 0.1688, 0.1689",\
                 "0.1751, 0.1734, 0.1721, 0.1721, 0.1726, 0.1729, 0.1731, 0.1732, 0.1733, 0.1734",\
                 "0.1919, 0.1888, 0.1855, 0.1842, 0.1838, 0.1838, 0.1839, 0.184, 0.184, 0.184",\
                 "0.2171, 0.2127, 0.2067, 0.2038, 0.203, 0.2023, 0.2021, 0.2021, 0.202, 0.202",\
                 "0.2512, 0.2455, 0.2371, 0.2325, 0.2301, 0.2289, 0.2283, 0.2281, 0.2278, 0.2277",\
                 "0.295, 0.2882, 0.2772, 0.27, 0.2664, 0.2645, 0.2632, 0.2626, 0.2622, 0.2619",\
                 "0.3495, 0.3416, 0.3277, 0.3183, 0.3128, 0.3094, 0.3076, 0.3065, 0.3058, 0.3055",\
                 "0.4148, 0.4062, 0.3892, 0.377, 0.3696, 0.3648, 0.3622, 0.3603, 0.3593, 0.3585");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.01386, 0.05901, 0.1452, 0.2795, 0.468, 0.716, 1.028, 1.41, 1.864");
          values("0.09823, 0.09913, 0.102, 0.1045, 0.1065, 0.1083, 0.1098, 0.1116, 0.1142, 0.1277",\
                 "0.09748, 0.09829, 0.1011, 0.1036, 0.106, 0.1074, 0.109, 0.1106, 0.1128, 0.1246",\
                 "0.09766, 0.0978, 0.09969, 0.1025, 0.1045, 0.1065, 0.1081, 0.1098, 0.113, 0.1247",\
                 "0.1037, 0.103, 0.1033, 0.1048, 0.1069, 0.1091, 0.1108, 0.1122, 0.1159, 0.1289",\
                 "0.1163, 0.1148, 0.1128, 0.114, 0.1154, 0.1169, 0.1186, 0.1205, 0.1242, 0.1384",\
                 "0.137, 0.1346, 0.1313, 0.1299, 0.1316, 0.1333, 0.134, 0.1354, 0.1386, 0.1558",\
                 "0.1662, 0.1632, 0.1578, 0.1547, 0.154, 0.1564, 0.1578, 0.1588, 0.1617, 0.1828",\
                 "0.2045, 0.2002, 0.1932, 0.1887, 0.1865, 0.1863, 0.1892, 0.1916, 0.1943, 0.2211",\
                 "0.2521, 0.2464, 0.238, 0.2314, 0.2268, 0.2253, 0.2257, 0.2296, 0.2347, 0.272",\
                 "0.3094, 0.3024, 0.2919, 0.2833, 0.2786, 0.2748, 0.274, 0.2754, 0.2854, 0.3399");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.01386, 0.05901, 0.1452, 0.2795, 0.468, 0.716, 1.028, 1.41, 1.864");
          values("0.3098, 0.3439, 0.434, 0.5657, 0.7448, 0.9844, 1.296, 1.689, 2.168, 2.738",\
                 "0.3264, 0.3605, 0.4507, 0.5823, 0.7614, 1.001, 1.313, 1.705, 2.184, 2.754",\
                 "0.3969, 0.431, 0.5209, 0.6526, 0.8318, 1.072, 1.383, 1.776, 2.255, 2.824",\
                 "0.5332, 0.5681, 0.6599, 0.7924, 0.972, 1.211, 1.524, 1.916, 2.394, 2.965",\
                 "0.6972, 0.7355, 0.8343, 0.9737, 1.157, 1.398, 1.709, 2.101, 2.58, 3.151",\
                 "0.8869, 0.929, 1.035, 1.181, 1.369, 1.613, 1.926, 2.318, 2.795, 3.366",\
                 "1.107, 1.153, 1.267, 1.422, 1.615, 1.861, 2.174, 2.567, 3.046, 3.615",\
                 "1.36, 1.409, 1.532, 1.697, 1.898, 2.148, 2.463, 2.857, 3.335, 3.906",\
                 "1.646, 1.699, 1.831, 2.007, 2.217, 2.475, 2.794, 3.19, 3.669, 4.24",\
                 "1.966, 2.023, 2.165, 2.354, 2.575, 2.841, 3.169, 3.568, 4.05, 4.621");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.01386, 0.05901, 0.1452, 0.2795, 0.468, 0.716, 1.028, 1.41, 1.864");
          values("0.2347, 0.2752, 0.4014, 0.632, 0.9883, 1.485, 2.14, 2.965, 3.969, 5.17",\
                 "0.2509, 0.2911, 0.4174, 0.6483, 1.005, 1.502, 2.156, 2.98, 3.983, 5.188",\
                 "0.3082, 0.3479, 0.4731, 0.7039, 1.06, 1.558, 2.212, 3.038, 4.044, 5.237",\
                 "0.3742, 0.4159, 0.5417, 0.7716, 1.127, 1.626, 2.279, 3.102, 4.108, 5.309",\
                 "0.4168, 0.4612, 0.5898, 0.8192, 1.174, 1.671, 2.325, 3.148, 4.154, 5.356",\
                 "0.4358, 0.4831, 0.6166, 0.8454, 1.199, 1.696, 2.349, 3.172, 4.179, 5.376",\
                 "0.4268, 0.4778, 0.6177, 0.848, 1.201, 1.698, 2.351, 3.173, 4.177, 5.375",\
                 "0.3869, 0.4413, 0.5886, 0.8244, 1.179, 1.675, 2.327, 3.15, 4.154, 5.35",\
                 "0.3147, 0.3721, 0.5286, 0.7695, 1.127, 1.627, 2.279, 3.101, 4.104, 5.3",\
                 "0.2076, 0.2687, 0.4333, 0.6812, 1.044, 1.548, 2.204, 3.027, 4.03, 5.226");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.01386, 0.05901, 0.1452, 0.2795, 0.468, 0.716, 1.028, 1.41, 1.864");
          values("0.1098, 0.1454, 0.2457, 0.4168, 0.6908, 1.093, 1.631, 2.316, 3.154, 4.152",\
                 "0.1097, 0.1454, 0.2454, 0.4177, 0.6904, 1.091, 1.631, 2.316, 3.148, 4.153",\
                 "0.1102, 0.146, 0.2457, 0.4169, 0.6906, 1.093, 1.63, 2.315, 3.151, 4.153",\
                 "0.122, 0.1563, 0.2528, 0.421, 0.692, 1.093, 1.632, 2.316, 3.153, 4.151",\
                 "0.1468, 0.1814, 0.2786, 0.4406, 0.704, 1.095, 1.632, 2.315, 3.151, 4.147",\
                 "0.1728, 0.208, 0.3052, 0.4646, 0.722, 1.109, 1.638, 2.318, 3.15, 4.152",\
                 "0.2, 0.2374, 0.3376, 0.4926, 0.7428, 1.121, 1.645, 2.321, 3.154, 4.15",\
                 "0.229, 0.2696, 0.3726, 0.5276, 0.771, 1.139, 1.658, 2.328, 3.158, 4.15",\
                 "0.2614, 0.3058, 0.4142, 0.5706, 0.8078, 1.171, 1.678, 2.342, 3.166, 4.155",\
                 "0.297, 0.3438, 0.4574, 0.6196, 0.8536, 1.211, 1.715, 2.372, 3.189, 4.169");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.01386, 0.05901, 0.1452, 0.2795, 0.468, 0.716, 1.028, 1.41, 1.864");
          values("0.1165, 0.1722, 0.3762, 0.7813, 1.416, 2.305, 3.477, 4.953, 6.756, 8.899",\
                 "0.1166, 0.1722, 0.3759, 0.7803, 1.419, 2.307, 3.479, 4.958, 6.756, 8.916",\
                 "0.1176, 0.1733, 0.3765, 0.7804, 1.416, 2.306, 3.479, 4.955, 6.758, 8.893",\
                 "0.1314, 0.1852, 0.3814, 0.7814, 1.419, 2.309, 3.477, 4.949, 6.75, 8.903",\
                 "0.1468, 0.2008, 0.3898, 0.786, 1.417, 2.304, 3.477, 4.951, 6.753, 8.905",\
                 "0.1644, 0.2208, 0.4028, 0.7906, 1.42, 2.308, 3.476, 4.961, 6.75, 8.904",\
                 "0.1862, 0.243, 0.4218, 0.7984, 1.424, 2.311, 3.478, 4.955, 6.747, 8.923",\
                 "0.2082, 0.2682, 0.4476, 0.814, 1.435, 2.318, 3.482, 4.953, 6.758, 8.895",\
                 "0.232, 0.2928, 0.476, 0.8362, 1.451, 2.328, 3.488, 4.957, 6.756, 8.908",\
                 "0.2588, 0.32, 0.5074, 0.8608, 1.475, 2.353, 3.507, 4.969, 6.757, 8.898");
        }
      }
    }
  }

