/*
 * 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 : "3.76893e-05" ;
    }

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.76893e-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.01503 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 21 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.324 ;
      max_transition : 21 ;
      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.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04218, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.1007, 0.1015, 0.1029, 0.1039, 0.1044, 0.1047, 0.1049, 0.105, 0.1051, 0.1051",\
                 "0.1001, 0.1009, 0.1023, 0.1034, 0.1039, 0.1042, 0.1044, 0.1044, 0.1045, 0.1045",\
                 "0.0989, 0.09966, 0.101, 0.1022, 0.1028, 0.103, 0.1032, 0.1033, 0.1034, 0.1034",\
                 "0.09797, 0.09862, 0.09985, 0.101, 0.1017, 0.1021, 0.1023, 0.1025, 0.1025, 0.1025",\
                 "0.09714, 0.09763, 0.09876, 0.09988, 0.1007, 0.1013, 0.1017, 0.1018, 0.102, 0.1021",\
                 "0.09639, 0.09691, 0.098, 0.09906, 0.1, 0.1007, 0.1011, 0.1013, 0.1015, 0.1017",\
                 "0.09597, 0.09642, 0.09741, 0.09849, 0.09935, 0.1001, 0.1006, 0.1009, 0.1012, 0.1013",\
                 "0.09568, 0.09608, 0.09697, 0.09795, 0.09889, 0.09964, 0.1002, 0.1006, 0.1008, 0.1004",\
                 "0.0953, 0.09571, 0.0966, 0.09753, 0.09849, 0.09919, 0.09986, 0.09979, 0.09746, 0.09332",\
                 "0.09124, 0.09159, 0.09234, 0.09249, 0.0884, 0.08336, 0.08039, 0.07846, 0.07728, 0.07649");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04218, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.05885, 0.05957, 0.0613, 0.06276, 0.06394, 0.06426, 0.06469, 0.06696, 0.109, 0.3816",\
                 "0.05858, 0.05933, 0.06106, 0.06277, 0.06377, 0.06457, 0.06542, 0.06776, 0.1109, 0.3907",\
                 "0.05789, 0.05853, 0.05993, 0.06151, 0.06258, 0.06326, 0.06383, 0.06772, 0.1189, 0.4217",\
                 "0.05664, 0.05715, 0.05839, 0.05979, 0.06098, 0.06242, 0.06275, 0.06794, 0.1384, 0.4861",\
                 "0.05572, 0.05621, 0.05735, 0.05866, 0.05976, 0.06072, 0.06129, 0.06957, 0.1805, 0.5825",\
                 "0.05508, 0.0555, 0.05634, 0.05762, 0.05882, 0.06059, 0.06163, 0.08013, 0.2604, 0.7052",\
                 "0.05461, 0.05504, 0.05571, 0.05657, 0.05832, 0.05946, 0.06171, 0.1122, 0.4033, 0.824",\
                 "0.05428, 0.05458, 0.05536, 0.05629, 0.05704, 0.05879, 0.06919, 0.2181, 0.5831, 0.9027",\
                 "0.05399, 0.0543, 0.05489, 0.05586, 0.05694, 0.05991, 0.1382, 0.4268, 0.6945, 0.8857",\
                 "0.05455, 0.05485, 0.05558, 0.05621, 0.05873, 0.1368, 0.3529, 0.5162, 0.6262, 0.7023");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04218, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("1.177, 1.239, 1.4, 1.637, 1.956, 2.383, 2.935, 3.629, 4.475, 5.485",\
                 "1.25, 1.311, 1.473, 1.71, 2.03, 2.456, 3.008, 3.702, 4.549, 5.556",\
                 "1.521, 1.583, 1.745, 1.981, 2.301, 2.727, 3.28, 3.974, 4.82, 5.83",\
                 "2.06, 2.121, 2.283, 2.519, 2.839, 3.265, 3.818, 4.512, 5.359, 6.369",\
                 "2.907, 2.968, 3.13, 3.367, 3.688, 4.114, 4.667, 5.361, 6.208, 7.215",\
                 "4.054, 4.119, 4.287, 4.527, 4.85, 5.277, 5.83, 6.525, 7.371, 8.381",\
                 "5.426, 5.501, 5.687, 5.941, 6.271, 6.7, 7.253, 7.947, 8.793, 9.8",\
                 "7.001, 7.086, 7.295, 7.567, 7.907, 8.342, 8.896, 9.591, 10.44, 11.44",\
                 "8.784, 8.881, 9.115, 9.409, 9.763, 10.2, 10.76, 11.45, 12.3, 13.31",\
                 "10.78, 10.89, 11.15, 11.47, 11.84, 12.29, 12.85, 13.54, 14.38, 15.39");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04218, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.6886, 0.7824, 1.096, 1.677, 2.572, 3.823, 5.467, 7.539, 10.06, 13.09",\
                 "0.7568, 0.8508, 1.164, 1.747, 2.641, 3.894, 5.541, 7.612, 10.13, 13.15",\
                 "0.9976, 1.091, 1.402, 1.984, 2.879, 4.137, 5.784, 7.851, 10.37, 13.39",\
                 "1.441, 1.534, 1.844, 2.425, 3.322, 4.576, 6.222, 8.291, 10.82, 13.85",\
                 "2.01, 2.105, 2.417, 2.997, 3.893, 5.147, 6.797, 8.874, 11.4, 14.41",\
                 "2.668, 2.765, 3.077, 3.657, 4.555, 5.808, 7.453, 9.525, 12.06, 15.08",\
                 "3.41, 3.512, 3.826, 4.406, 5.303, 6.555, 8.201, 10.27, 12.8, 15.82",\
                 "4.232, 4.339, 4.66, 5.237, 6.133, 7.386, 9.033, 11.1, 13.63, 16.65",\
                 "5.132, 5.246, 5.573, 6.152, 7.046, 8.299, 9.945, 12.02, 14.54, 17.55",\
                 "6.106, 6.23, 6.569, 7.147, 8.04, 9.291, 10.94, 13.01, 15.54, 18.55");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04218, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.271, 0.3228, 0.4838, 0.7732, 1.236, 1.912, 2.828, 3.992, 5.411, 7.1",\
                 "0.2716, 0.3232, 0.484, 0.7748, 1.237, 1.911, 2.824, 3.99, 5.417, 7.115",\
                 "0.2712, 0.323, 0.4836, 0.7746, 1.237, 1.911, 2.826, 3.991, 5.412, 7.101",\
                 "0.2716, 0.3238, 0.4848, 0.775, 1.237, 1.913, 2.828, 3.991, 5.417, 7.105",\
                 "0.2752, 0.327, 0.4868, 0.7754, 1.237, 1.913, 2.827, 3.986, 5.417, 7.113",\
                 "0.307, 0.354, 0.5066, 0.7878, 1.243, 1.916, 2.826, 3.99, 5.415, 7.116",\
                 "0.37, 0.42, 0.566, 0.83, 1.27, 1.928, 2.83, 3.99, 5.41, 7.104",\
                 "0.442, 0.496, 0.64, 0.892, 1.314, 1.956, 2.848, 3.996, 5.41, 7.108",\
                 "0.52, 0.576, 0.726, 0.964, 1.366, 1.988, 2.87, 4.01, 5.42, 7.106",\
                 "0.598, 0.662, 0.82, 1.05, 1.428, 2.028, 2.892, 4.026, 5.436, 7.118");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.01013, 0.04218, 0.1034, 0.1987, 0.3325, 0.5085, 0.7303, 1.001, 1.324");
          values("0.3199, 0.4583, 0.9558, 1.91, 3.401, 5.49, 8.244, 11.71, 15.94, 20.95",\
                 "0.3209, 0.4585, 0.9546, 1.911, 3.401, 5.489, 8.242, 11.71, 15.94, 20.99",\
                 "0.3212, 0.4592, 0.9546, 1.91, 3.4, 5.489, 8.241, 11.71, 15.95, 20.98",\
                 "0.3236, 0.4604, 0.9544, 1.912, 3.4, 5.491, 8.238, 11.71, 15.94, 20.98",\
                 "0.3432, 0.475, 0.9622, 1.911, 3.399, 5.492, 8.237, 11.7, 15.97, 20.98",\
                 "0.3666, 0.4956, 0.9744, 1.921, 3.404, 5.494, 8.24, 11.71, 15.94, 21.01",\
                 "0.3994, 0.5194, 0.9836, 1.927, 3.413, 5.496, 8.24, 11.71, 15.94, 20.99",\
                 "0.442, 0.556, 1, 1.936, 3.42, 5.508, 8.248, 11.72, 15.94, 20.97",\
                 "0.494, 0.6, 1.022, 1.944, 3.426, 5.51, 8.262, 11.71, 15.95, 20.97",\
                 "0.554, 0.654, 1.052, 1.954, 3.432, 5.522, 8.26, 11.72, 15.94, 21.01");
        }
      }
    }
  }

