/*
 * 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_12) {
    area : 83.417600 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.02618 ;
      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 : 2.793 ;
      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.02027, 0.08791, 0.2171, 0.4183, 0.7007, 1.072, 1.54, 2.112, 2.793");
          values("0.2568, 0.2558, 0.2566, 0.2574, 0.2579, 0.2582, 0.2585, 0.2585, 0.2586, 0.2587",\
                 "0.2543, 0.2533, 0.2538, 0.255, 0.2556, 0.2558, 0.2562, 0.2562, 0.2563, 0.2563",\
                 "0.2528, 0.2515, 0.2517, 0.2529, 0.2537, 0.2542, 0.2546, 0.2548, 0.2548, 0.255",\
                 "0.2642, 0.2618, 0.2595, 0.2599, 0.2606, 0.2609, 0.2611, 0.2613, 0.2614, 0.2616",\
                 "0.2894, 0.2849, 0.2797, 0.2777, 0.2771, 0.2772, 0.2773, 0.2773, 0.2774, 0.2774",\
                 "0.327, 0.3204, 0.3117, 0.3075, 0.3057, 0.3049, 0.3047, 0.3044, 0.3043, 0.3043",\
                 "0.378, 0.3697, 0.3572, 0.35, 0.3462, 0.3444, 0.3437, 0.3433, 0.3428, 0.3428",\
                 "0.4436, 0.4335, 0.4169, 0.4065, 0.4007, 0.3975, 0.3958, 0.3949, 0.3943, 0.3939",\
                 "0.5251, 0.5136, 0.4927, 0.4783, 0.4694, 0.465, 0.4623, 0.4604, 0.4595, 0.4589",\
                 "0.6232, 0.6102, 0.5847, 0.5663, 0.5551, 0.548, 0.5437, 0.5407, 0.5392, 0.5381");
        }

        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.02027, 0.08791, 0.2171, 0.4183, 0.7007, 1.072, 1.54, 2.112, 2.793");
          values("0.1509, 0.1522, 0.1563, 0.1601, 0.1635, 0.1656, 0.1677, 0.1701, 0.1747, 0.1936",\
                 "0.1497, 0.1508, 0.1548, 0.1592, 0.1619, 0.1648, 0.1667, 0.1687, 0.1725, 0.192",\
                 "0.1501, 0.1505, 0.153, 0.1566, 0.1603, 0.1628, 0.1655, 0.1687, 0.1727, 0.1918",\
                 "0.1589, 0.1582, 0.1584, 0.1606, 0.1635, 0.1665, 0.1694, 0.1729, 0.1759, 0.1968",\
                 "0.1779, 0.1757, 0.1732, 0.1741, 0.1765, 0.1786, 0.1809, 0.1838, 0.188, 0.2106",\
                 "0.2088, 0.2055, 0.1997, 0.1979, 0.2006, 0.2026, 0.2043, 0.2065, 0.2104, 0.2375",\
                 "0.2527, 0.2476, 0.2398, 0.2353, 0.235, 0.2374, 0.2393, 0.2428, 0.2448, 0.278",\
                 "0.3098, 0.3032, 0.2929, 0.2859, 0.2822, 0.2828, 0.2871, 0.2891, 0.2936, 0.3323",\
                 "0.381, 0.3726, 0.3595, 0.3506, 0.3433, 0.3416, 0.3423, 0.3471, 0.3544, 0.4108",\
                 "0.467, 0.4565, 0.4404, 0.4278, 0.4207, 0.4137, 0.414, 0.4162, 0.4311, 0.5124");
        }
      }

      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.02027, 0.08791, 0.2171, 0.4183, 0.7007, 1.072, 1.54, 2.112, 2.793");
          values("0.3124, 0.3466, 0.4366, 0.5685, 0.7478, 0.9876, 1.3, 1.692, 2.171, 2.741",\
                 "0.329, 0.3631, 0.4534, 0.5851, 0.7646, 1.005, 1.317, 1.709, 2.188, 2.759",\
                 "0.3995, 0.4335, 0.5236, 0.6555, 0.8349, 1.075, 1.387, 1.779, 2.258, 2.828",\
                 "0.5361, 0.5709, 0.6626, 0.7954, 0.9751, 1.215, 1.527, 1.92, 2.399, 2.97",\
                 "0.7005, 0.7387, 0.8377, 0.9774, 1.16, 1.402, 1.713, 2.105, 2.584, 3.155",\
                 "0.8907, 0.9326, 1.039, 1.185, 1.373, 1.617, 1.93, 2.322, 2.801, 3.371",\
                 "1.112, 1.156, 1.271, 1.426, 1.619, 1.866, 2.18, 2.572, 3.051, 3.621",\
                 "1.365, 1.413, 1.537, 1.701, 1.902, 2.152, 2.468, 2.861, 3.341, 3.912",\
                 "1.651, 1.704, 1.837, 2.013, 2.222, 2.48, 2.8, 3.195, 3.675, 4.246",\
                 "1.972, 2.028, 2.17, 2.359, 2.58, 2.846, 3.172, 3.573, 4.056, 4.627");
        }

        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.02027, 0.08791, 0.2171, 0.4183, 0.7007, 1.072, 1.54, 2.112, 2.793");
          values("0.237, 0.2773, 0.4035, 0.634, 0.9902, 1.487, 2.142, 2.966, 3.97, 5.167",\
                 "0.2531, 0.2933, 0.4195, 0.6503, 1.006, 1.504, 2.157, 2.979, 3.989, 5.188",\
                 "0.3105, 0.3501, 0.4752, 0.7059, 1.062, 1.56, 2.214, 3.038, 4.046, 5.24",\
                 "0.3768, 0.4186, 0.5446, 0.7746, 1.13, 1.628, 2.281, 3.105, 4.111, 5.312",\
                 "0.4204, 0.4645, 0.5936, 0.8223, 1.177, 1.674, 2.327, 3.152, 4.158, 5.354",\
                 "0.4397, 0.487, 0.6199, 0.8489, 1.203, 1.7, 2.353, 3.175, 4.182, 5.377",\
                 "0.4313, 0.4818, 0.6218, 0.8523, 1.206, 1.702, 2.354, 3.176, 4.181, 5.377",\
                 "0.3923, 0.4461, 0.5937, 0.8289, 1.184, 1.68, 2.332, 3.153, 4.157, 5.354",\
                 "0.3203, 0.3774, 0.5337, 0.7751, 1.133, 1.632, 2.284, 3.106, 4.108, 5.304",\
                 "0.2143, 0.2745, 0.4389, 0.6869, 1.05, 1.552, 2.21, 3.032, 4.034, 5.23");
        }

        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.02027, 0.08791, 0.2171, 0.4183, 0.7007, 1.072, 1.54, 2.112, 2.793");
          values("0.1112, 0.1463, 0.2472, 0.4185, 0.6924, 1.092, 1.63, 2.317, 3.152, 4.156",\
                 "0.1112, 0.1462, 0.2473, 0.4181, 0.6918, 1.093, 1.631, 2.316, 3.155, 4.154",\
                 "0.1117, 0.147, 0.2477, 0.4185, 0.6922, 1.094, 1.631, 2.316, 3.152, 4.155",\
                 "0.1234, 0.1572, 0.2534, 0.4226, 0.6938, 1.094, 1.633, 2.317, 3.156, 4.153",\
                 "0.1486, 0.1822, 0.2798, 0.4418, 0.7054, 1.097, 1.633, 2.317, 3.149, 4.154",\
                 "0.1742, 0.2088, 0.3068, 0.4662, 0.7228, 1.111, 1.638, 2.319, 3.151, 4.154",\
                 "0.2008, 0.239, 0.338, 0.4946, 0.7436, 1.121, 1.647, 2.322, 3.156, 4.153",\
                 "0.2306, 0.2708, 0.3742, 0.5286, 0.7728, 1.142, 1.657, 2.329, 3.16, 4.151",\
                 "0.2636, 0.307, 0.4148, 0.5718, 0.8088, 1.171, 1.683, 2.343, 3.17, 4.157",\
                 "0.2976, 0.3446, 0.4596, 0.6206, 0.8556, 1.211, 1.717, 2.373, 3.19, 4.171");
        }

        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.02027, 0.08791, 0.2171, 0.4183, 0.7007, 1.072, 1.54, 2.112, 2.793");
          values("0.1181, 0.1738, 0.3776, 0.7824, 1.417, 2.307, 3.48, 4.953, 6.756, 8.899",\
                 "0.118, 0.1737, 0.3774, 0.7846, 1.417, 2.309, 3.479, 4.954, 6.756, 8.905",\
                 "0.1194, 0.1745, 0.3776, 0.7822, 1.417, 2.308, 3.479, 4.956, 6.755, 8.903",\
                 "0.133, 0.1868, 0.3828, 0.7826, 1.416, 2.308, 3.477, 4.952, 6.756, 8.911",\
                 "0.1488, 0.2026, 0.3914, 0.7874, 1.419, 2.306, 3.477, 4.952, 6.756, 8.905",\
                 "0.1662, 0.2224, 0.4042, 0.7906, 1.422, 2.308, 3.482, 4.962, 6.756, 8.896",\
                 "0.187, 0.2444, 0.4228, 0.8004, 1.425, 2.311, 3.479, 4.959, 6.768, 8.901",\
                 "0.21, 0.2684, 0.4482, 0.815, 1.435, 2.318, 3.482, 4.954, 6.763, 8.893",\
                 "0.2336, 0.294, 0.4768, 0.8364, 1.454, 2.329, 3.491, 4.957, 6.754, 8.913",\
                 "0.2612, 0.3224, 0.5092, 0.862, 1.475, 2.354, 3.507, 4.97, 6.758, 8.9");
        }
      }
    }
  }

