/*
 * 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 : "0.002323188" ;
    }

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.084 ;
      max_transition : 7.4 ;
      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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.008473, 0.03471, 0.0848, 0.1628, 0.2724, 0.4165, 0.598, 0.8196, 1.084");
          values("0.2474, 0.2382, 0.2249, 0.218, 0.2143, 0.2122, 0.2108, 0.21, 0.2094, 0.2089",\
                 "0.2466, 0.2374, 0.2242, 0.2173, 0.2137, 0.2115, 0.2103, 0.2094, 0.2086, 0.2084",\
                 "0.2547, 0.2448, 0.2308, 0.2234, 0.2196, 0.2173, 0.216, 0.2151, 0.2144, 0.214",\
                 "0.2936, 0.2813, 0.2614, 0.2498, 0.2439, 0.2402, 0.238, 0.2365, 0.2355, 0.2349",\
                 "0.3636, 0.348, 0.32, 0.3012, 0.2906, 0.284, 0.28, 0.2776, 0.2758, 0.2746",\
                 "0.4636, 0.4446, 0.4077, 0.3799, 0.3625, 0.3523, 0.3454, 0.341, 0.3378, 0.336",\
                 "0.5921, 0.5711, 0.526, 0.488, 0.463, 0.4466, 0.4359, 0.4291, 0.4241, 0.4206",\
                 "0.7508, 0.7278, 0.6748, 0.6257, 0.5922, 0.5691, 0.5537, 0.543, 0.5359, 0.5307",\
                 "0.9404, 0.9154, 0.8558, 0.796, 0.7521, 0.7213, 0.7, 0.6857, 0.6751, 0.6677",\
                 "1.162, 1.136, 1.07, 0.9998, 0.9454, 0.906, 0.8778, 0.8579, 0.8436, 0.8334");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.008473, 0.03471, 0.0848, 0.1628, 0.2724, 0.4165, 0.598, 0.8196, 1.084");
          values("0.1582, 0.154, 0.1504, 0.1495, 0.1501, 0.1518, 0.1534, 0.1554, 0.1587, 0.1656",\
                 "0.1582, 0.1535, 0.1498, 0.1492, 0.1497, 0.1518, 0.1534, 0.1558, 0.1587, 0.1663",\
                 "0.168, 0.1624, 0.1561, 0.154, 0.154, 0.1554, 0.157, 0.1601, 0.1627, 0.1696",\
                 "0.2034, 0.1952, 0.1843, 0.1767, 0.1737, 0.1741, 0.1746, 0.1767, 0.1793, 0.1873",\
                 "0.263, 0.2514, 0.2325, 0.2209, 0.2145, 0.2119, 0.2106, 0.2105, 0.2124, 0.2209",\
                 "0.3487, 0.333, 0.3075, 0.2887, 0.2782, 0.272, 0.2679, 0.2659, 0.2653, 0.2755",\
                 "0.4607, 0.4406, 0.4089, 0.3816, 0.3636, 0.3552, 0.3492, 0.3451, 0.3429, 0.3507",\
                 "0.5994, 0.5768, 0.5372, 0.5036, 0.477, 0.4607, 0.4547, 0.4492, 0.4461, 0.4542",\
                 "0.7665, 0.7417, 0.6941, 0.653, 0.6196, 0.596, 0.5818, 0.576, 0.5723, 0.5824",\
                 "0.9632, 0.9362, 0.8801, 0.8323, 0.7918, 0.7613, 0.7391, 0.7247, 0.7246, 0.7439");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.008473, 0.03471, 0.0848, 0.1628, 0.2724, 0.4165, 0.598, 0.8196, 1.084");
          values("0.2235, 0.2548, 0.3367, 0.4614, 0.6362, 0.8746, 1.187, 1.581, 2.063, 2.636",\
                 "0.2356, 0.2669, 0.3488, 0.4735, 0.6482, 0.8866, 1.199, 1.593, 2.075, 2.647",\
                 "0.2904, 0.3215, 0.4029, 0.5275, 0.7021, 0.9405, 1.253, 1.647, 2.129, 2.702",\
                 "0.3951, 0.4269, 0.5095, 0.634, 0.8085, 1.047, 1.358, 1.752, 2.234, 2.806",\
                 "0.5293, 0.5642, 0.6514, 0.7797, 0.9553, 1.193, 1.504, 1.897, 2.377, 2.952",\
                 "0.6899, 0.7281, 0.8226, 0.9571, 1.137, 1.374, 1.686, 2.078, 2.557, 3.132",\
                 "0.8759, 0.9175, 1.02, 1.163, 1.351, 1.594, 1.906, 2.297, 2.776, 3.348",\
                 "1.088, 1.133, 1.245, 1.398, 1.595, 1.847, 2.164, 2.558, 3.037, 3.608",\
                 "1.33, 1.378, 1.499, 1.662, 1.868, 2.129, 2.458, 2.86, 3.342, 3.914",\
                 "1.6, 1.652, 1.782, 1.955, 2.172, 2.443, 2.782, 3.197, 3.69, 4.266");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.008473, 0.03471, 0.0848, 0.1628, 0.2724, 0.4165, 0.598, 0.8196, 1.084");
          values("0.1911, 0.2234, 0.3235, 0.5086, 0.7965, 1.202, 1.733, 2.404, 3.223, 4.203",\
                 "0.201, 0.233, 0.3331, 0.5183, 0.8062, 1.211, 1.745, 2.416, 3.236, 4.21",\
                 "0.2387, 0.2703, 0.3692, 0.5534, 0.8415, 1.246, 1.779, 2.45, 3.27, 4.247",\
                 "0.2825, 0.3154, 0.4142, 0.5959, 0.8818, 1.286, 1.817, 2.489, 3.309, 4.286",\
                 "0.3084, 0.3438, 0.4441, 0.6246, 0.9083, 1.31, 1.841, 2.512, 3.329, 4.304",\
                 "0.3116, 0.3495, 0.4539, 0.6356, 0.9189, 1.318, 1.847, 2.515, 3.332, 4.309",\
                 "0.2885, 0.3296, 0.4395, 0.6225, 0.9077, 1.309, 1.836, 2.503, 3.318, 4.293",\
                 "0.2367, 0.2821, 0.3975, 0.5848, 0.8718, 1.276, 1.806, 2.472, 3.286, 4.259",\
                 "0.1563, 0.2046, 0.3269, 0.5175, 0.8073, 1.217, 1.752, 2.421, 3.235, 4.206",\
                 "0.0438, 0.0952, 0.2251, 0.4214, 0.7131, 1.126, 1.667, 2.343, 3.162, 4.134");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.008473, 0.03471, 0.0848, 0.1628, 0.2724, 0.4165, 0.598, 0.8196, 1.084");
          values("0.09102, 0.1236, 0.2173, 0.3868, 0.66, 1.061, 1.597, 2.277, 3.106, 4.096",\
                 "0.09092, 0.1236, 0.2174, 0.3864, 0.6597, 1.06, 1.595, 2.277, 3.106, 4.096",\
                 "0.09142, 0.1241, 0.2178, 0.3865, 0.6598, 1.061, 1.598, 2.276, 3.105, 4.096",\
                 "0.105, 0.1363, 0.226, 0.3913, 0.6616, 1.062, 1.596, 2.276, 3.107, 4.095",\
                 "0.1284, 0.161, 0.248, 0.4064, 0.6684, 1.063, 1.596, 2.276, 3.102, 4.091",\
                 "0.158, 0.1924, 0.28, 0.434, 0.6864, 1.07, 1.6, 2.273, 3.101, 4.092",\
                 "0.188, 0.2274, 0.3212, 0.4738, 0.7214, 1.092, 1.608, 2.276, 3.103, 4.092",\
                 "0.2226, 0.2656, 0.3646, 0.5184, 0.766, 1.136, 1.642, 2.292, 3.106, 4.091",\
                 "0.2592, 0.307, 0.411, 0.5662, 0.8154, 1.189, 1.694, 2.338, 3.134, 4.097",\
                 "0.2992, 0.3506, 0.4644, 0.6212, 0.869, 1.247, 1.759, 2.409, 3.19, 4.134");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.008473, 0.03471, 0.0848, 0.1628, 0.2724, 0.4165, 0.598, 0.8196, 1.084");
          values("0.08478, 0.1307, 0.2971, 0.6323, 1.16, 1.903, 2.876, 4.106, 5.608, 7.39",\
                 "0.08452, 0.1307, 0.297, 0.6323, 1.16, 1.9, 2.883, 4.104, 5.601, 7.393",\
                 "0.08538, 0.1313, 0.2974, 0.6332, 1.161, 1.903, 2.882, 4.106, 5.602, 7.391",\
                 "0.0982, 0.141, 0.3026, 0.6329, 1.159, 1.9, 2.876, 4.104, 5.601, 7.393",\
                 "0.1149, 0.157, 0.3122, 0.6364, 1.162, 1.902, 2.88, 4.103, 5.603, 7.396",\
                 "0.1348, 0.1774, 0.3282, 0.6476, 1.167, 1.903, 2.88, 4.102, 5.601, 7.392",\
                 "0.158, 0.203, 0.3484, 0.6644, 1.183, 1.914, 2.879, 4.104, 5.614, 7.385",\
                 "0.1834, 0.2292, 0.3726, 0.6854, 1.205, 1.936, 2.895, 4.11, 5.612, 7.403",\
                 "0.2098, 0.2576, 0.4004, 0.7068, 1.232, 1.969, 2.926, 4.135, 5.615, 7.391",\
                 "0.2388, 0.2894, 0.4326, 0.7314, 1.257, 2.003, 2.969, 4.179, 5.641, 7.406");
        }
      }
    }
  }

