/*
 * 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_1) {
    area : 13.171200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.2388 ;
      max_transition : 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002641, 0.008403, 0.01941, 0.03655, 0.0606, 0.09225, 0.1321, 0.1808, 0.2388");
          values("0.1778, 0.1752, 0.1713, 0.1687, 0.1668, 0.1656, 0.1648, 0.1644, 0.164, 0.1637",\
                 "0.1775, 0.1748, 0.1709, 0.1681, 0.1661, 0.1651, 0.1644, 0.164, 0.1636, 0.1633",\
                 "0.181, 0.1786, 0.1744, 0.1713, 0.1695, 0.1683, 0.1676, 0.1672, 0.1668, 0.1666",\
                 "0.1982, 0.1951, 0.1895, 0.1852, 0.183, 0.1813, 0.1801, 0.1795, 0.1791, 0.1788",\
                 "0.2324, 0.2284, 0.2203, 0.2138, 0.2096, 0.2068, 0.2051, 0.2038, 0.2029, 0.2026",\
                 "0.2831, 0.278, 0.2668, 0.2574, 0.2506, 0.2462, 0.2433, 0.2412, 0.2399, 0.2389",\
                 "0.3501, 0.344, 0.3299, 0.3169, 0.3074, 0.3008, 0.2962, 0.2931, 0.291, 0.2894",\
                 "0.4342, 0.4271, 0.4101, 0.3934, 0.3808, 0.3718, 0.3654, 0.3606, 0.3575, 0.3551",\
                 "0.5357, 0.5278, 0.5084, 0.4876, 0.4713, 0.4594, 0.4507, 0.4446, 0.44, 0.4367",\
                 "0.6553, 0.6469, 0.625, 0.6003, 0.5803, 0.5652, 0.5539, 0.5456, 0.5397, 0.5351");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002641, 0.008403, 0.01941, 0.03655, 0.0606, 0.09225, 0.1321, 0.1808, 0.2388");
          values("0.106, 0.1051, 0.1035, 0.1032, 0.1027, 0.103, 0.1031, 0.1025, 0.1028, 0.101",\
                 "0.1058, 0.1049, 0.1033, 0.1028, 0.1029, 0.1031, 0.1031, 0.1032, 0.1019, 0.1025",\
                 "0.1095, 0.1083, 0.1061, 0.105, 0.1048, 0.1049, 0.1048, 0.1044, 0.1038, 0.104",\
                 "0.1252, 0.1231, 0.119, 0.1163, 0.1147, 0.114, 0.1139, 0.1132, 0.1133, 0.1125",\
                 "0.1531, 0.1506, 0.1449, 0.1393, 0.1356, 0.1338, 0.1333, 0.1319, 0.1319, 0.13",\
                 "0.195, 0.1917, 0.1842, 0.1765, 0.1709, 0.1666, 0.1643, 0.1622, 0.1606, 0.1595",\
                 "0.2518, 0.2473, 0.2379, 0.2278, 0.22, 0.2137, 0.2089, 0.2055, 0.2044, 0.2025",\
                 "0.3237, 0.318, 0.3067, 0.2948, 0.2839, 0.2766, 0.2695, 0.264, 0.2609, 0.258",\
                 "0.4109, 0.4045, 0.3907, 0.3765, 0.3639, 0.353, 0.3453, 0.3386, 0.331, 0.3265",\
                 "0.515, 0.5077, 0.4913, 0.4745, 0.4586, 0.4453, 0.4363, 0.4284, 0.4204, 0.4135");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002641, 0.008403, 0.01941, 0.03655, 0.0606, 0.09225, 0.1321, 0.1808, 0.2388");
          values("0.1852, 0.201, 0.2471, 0.3212, 0.4258, 0.568, 0.754, 0.9886, 1.275, 1.617",\
                 "0.1915, 0.2072, 0.2534, 0.3274, 0.4321, 0.5742, 0.7604, 0.9949, 1.282, 1.623",\
                 "0.2203, 0.2359, 0.2819, 0.3561, 0.4605, 0.6028, 0.7889, 1.024, 1.31, 1.652",\
                 "0.2808, 0.2965, 0.3422, 0.416, 0.5203, 0.6622, 0.8483, 1.083, 1.369, 1.711",\
                 "0.3642, 0.3807, 0.428, 0.5029, 0.6074, 0.7489, 0.9343, 1.169, 1.455, 1.796",\
                 "0.4655, 0.483, 0.533, 0.6101, 0.7161, 0.8576, 1.043, 1.276, 1.562, 1.904",\
                 "0.5829, 0.6021, 0.6556, 0.7363, 0.8453, 0.9879, 1.173, 1.406, 1.692, 2.032",\
                 "0.7169, 0.7377, 0.7952, 0.8803, 0.9933, 1.14, 1.327, 1.559, 1.844, 2.184",\
                 "0.8684, 0.8907, 0.9522, 1.042, 1.159, 1.31, 1.502, 1.737, 2.022, 2.362",\
                 "1.038, 1.062, 1.128, 1.222, 1.344, 1.5, 1.695, 1.936, 2.225, 2.566");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002641, 0.008403, 0.01941, 0.03655, 0.0606, 0.09225, 0.1321, 0.1808, 0.2388");
          values("0.1577, 0.1744, 0.2292, 0.3319, 0.4914, 0.7152, 1.01, 1.381, 1.834, 2.375",\
                 "0.1625, 0.1793, 0.2341, 0.3365, 0.4965, 0.7206, 1.015, 1.386, 1.839, 2.379",\
                 "0.182, 0.1984, 0.2528, 0.3548, 0.5144, 0.7381, 1.033, 1.404, 1.857, 2.398",\
                 "0.2099, 0.2263, 0.2805, 0.3812, 0.5397, 0.7632, 1.057, 1.428, 1.881, 2.421",\
                 "0.2306, 0.2474, 0.3017, 0.4015, 0.5586, 0.7812, 1.075, 1.445, 1.898, 2.439",\
                 "0.2393, 0.2571, 0.3124, 0.4121, 0.568, 0.7891, 1.082, 1.451, 1.904, 2.444",\
                 "0.234, 0.2529, 0.3101, 0.4104, 0.5665, 0.7872, 1.079, 1.447, 1.899, 2.438",\
                 "0.213, 0.2332, 0.2926, 0.3943, 0.5511, 0.7728, 1.064, 1.432, 1.883, 2.421",\
                 "0.1752, 0.1969, 0.2587, 0.3623, 0.52, 0.7427, 1.037, 1.405, 1.854, 2.392",\
                 "0.1195, 0.1425, 0.2072, 0.3127, 0.4716, 0.6954, 0.9916, 1.363, 1.814, 2.35");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002641, 0.008403, 0.01941, 0.03655, 0.0606, 0.09225, 0.1321, 0.1808, 0.2388");
          values("0.07928, 0.09612, 0.1498, 0.2466, 0.4027, 0.6321, 0.9406, 1.331, 1.808, 2.377",\
                 "0.07914, 0.09624, 0.1494, 0.2468, 0.4026, 0.632, 0.9404, 1.331, 1.808, 2.377",\
                 "0.07948, 0.09642, 0.1497, 0.2469, 0.4029, 0.6322, 0.9403, 1.331, 1.807, 2.377",\
                 "0.08296, 0.09966, 0.1518, 0.2482, 0.4034, 0.6317, 0.9402, 1.331, 1.808, 2.377",\
                 "0.09392, 0.1105, 0.1617, 0.255, 0.4064, 0.6333, 0.9402, 1.331, 1.807, 2.377",\
                 "0.1094, 0.126, 0.1766, 0.2676, 0.414, 0.6358, 0.9412, 1.331, 1.808, 2.376",\
                 "0.127, 0.1444, 0.195, 0.2856, 0.4292, 0.6442, 0.9436, 1.331, 1.807, 2.376",\
                 "0.1454, 0.1644, 0.2172, 0.3076, 0.4512, 0.6626, 0.955, 1.335, 1.808, 2.376",\
                 "0.1646, 0.1854, 0.2418, 0.3318, 0.4756, 0.6874, 0.9784, 1.351, 1.814, 2.376",\
                 "0.185, 0.2076, 0.2664, 0.3578, 0.501, 0.7152, 1.009, 1.381, 1.837, 2.388");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002641, 0.008403, 0.01941, 0.03655, 0.0606, 0.09225, 0.1321, 0.1808, 0.2388");
          values("0.08046, 0.1056, 0.1953, 0.375, 0.6589, 1.057, 1.579, 2.238, 3.043, 3.999",\
                 "0.08072, 0.1059, 0.1955, 0.3745, 0.6589, 1.056, 1.579, 2.238, 3.042, 4",\
                 "0.0808, 0.1061, 0.1954, 0.3747, 0.6586, 1.056, 1.578, 2.238, 3.042, 3.998",\
                 "0.08512, 0.1095, 0.1975, 0.3753, 0.6578, 1.057, 1.579, 2.238, 3.042, 4.003",\
                 "0.092, 0.1163, 0.2019, 0.3764, 0.6581, 1.055, 1.578, 2.238, 3.043, 3.999",\
                 "0.1021, 0.1258, 0.2098, 0.3806, 0.6592, 1.056, 1.577, 2.237, 3.042, 3.999",\
                 "0.1142, 0.1364, 0.2194, 0.388, 0.6654, 1.058, 1.577, 2.237, 3.04, 4.001",\
                 "0.1276, 0.1502, 0.2306, 0.3978, 0.6752, 1.068, 1.582, 2.236, 3.04, 3.999",\
                 "0.141, 0.1646, 0.243, 0.4086, 0.6862, 1.081, 1.598, 2.244, 3.041, 3.998",\
                 "0.156, 0.181, 0.257, 0.4208, 0.698, 1.096, 1.615, 2.262, 3.051, 4");
        }
      }
    }
  }

