/*
 * 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_2) {
    area : 17.561600 ;

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.4753 ;
      max_transition : 6.8 ;
      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.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004274, 0.01577, 0.03771, 0.0719, 0.1199, 0.183, 0.2625, 0.3596, 0.4753");
          values("0.04119, 0.04142, 0.04195, 0.04248, 0.04277, 0.04292, 0.04301, 0.04307, 0.04311, 0.04313",\
                 "0.04084, 0.04103, 0.04163, 0.04208, 0.04237, 0.04254, 0.04263, 0.04269, 0.04273, 0.04275",\
                 "0.04019, 0.04038, 0.04087, 0.04142, 0.04176, 0.04196, 0.04206, 0.04213, 0.04217, 0.0422",\
                 "0.04026, 0.04034, 0.04073, 0.04121, 0.0416, 0.04181, 0.04196, 0.04204, 0.0421, 0.04215",\
                 "0.04122, 0.0411, 0.04135, 0.04168, 0.042, 0.04226, 0.04242, 0.04251, 0.0426, 0.04265",\
                 "0.04293, 0.04272, 0.04261, 0.04286, 0.04313, 0.04338, 0.04358, 0.04367, 0.04376, 0.04381",\
                 "0.04537, 0.04499, 0.04467, 0.04473, 0.04488, 0.04514, 0.04528, 0.04546, 0.0455, 0.04559",\
                 "0.04862, 0.04808, 0.04743, 0.04738, 0.04746, 0.0476, 0.04779, 0.0479, 0.048, 0.04805",\
                 "0.0527, 0.05199, 0.05121, 0.05076, 0.0508, 0.0509, 0.05103, 0.05113, 0.05124, 0.05132",\
                 "0.05779, 0.05681, 0.05572, 0.05524, 0.05501, 0.05506, 0.05517, 0.05525, 0.05533, 0.05542");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004274, 0.01577, 0.03771, 0.0719, 0.1199, 0.183, 0.2625, 0.3596, 0.4753");
          values("0.02344, 0.02378, 0.02474, 0.0254, 0.02584, 0.02644, 0.02677, 0.02729, 0.02812, 0.02865",\
                 "0.02328, 0.02361, 0.02453, 0.02527, 0.02572, 0.0263, 0.02673, 0.02686, 0.02761, 0.02818",\
                 "0.02288, 0.02316, 0.02382, 0.02457, 0.02509, 0.02574, 0.02617, 0.02654, 0.02693, 0.0281",\
                 "0.02285, 0.02294, 0.02343, 0.02405, 0.02467, 0.02543, 0.02582, 0.02636, 0.02671, 0.02727",\
                 "0.02345, 0.02343, 0.02363, 0.02434, 0.02475, 0.02547, 0.02598, 0.0265, 0.02737, 0.02806",\
                 "0.02471, 0.02473, 0.02459, 0.0251, 0.02582, 0.02634, 0.02673, 0.02716, 0.02806, 0.02826",\
                 "0.02671, 0.02658, 0.02653, 0.0265, 0.02699, 0.02794, 0.02851, 0.02868, 0.02913, 0.0306",\
                 "0.02946, 0.02931, 0.02897, 0.02901, 0.02925, 0.02988, 0.03101, 0.03125, 0.03166, 0.03209",\
                 "0.03304, 0.0327, 0.03237, 0.03219, 0.0323, 0.03263, 0.0331, 0.03442, 0.03527, 0.03501",\
                 "0.03755, 0.0371, 0.03645, 0.03632, 0.03632, 0.03661, 0.03681, 0.03747, 0.03933, 0.03984");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004274, 0.01577, 0.03771, 0.0719, 0.1199, 0.183, 0.2625, 0.3596, 0.4753");
          values("0.2641, 0.2904, 0.3577, 0.456, 0.5918, 0.776, 1.016, 1.319, 1.689, 2.129",\
                 "0.2794, 0.3057, 0.373, 0.4715, 0.6074, 0.7915, 1.032, 1.335, 1.704, 2.145",\
                 "0.34, 0.3661, 0.4334, 0.5319, 0.6679, 0.8521, 1.093, 1.395, 1.765, 2.206",\
                 "0.459, 0.4856, 0.5536, 0.6525, 0.7889, 0.973, 1.214, 1.516, 1.886, 2.326",\
                 "0.6068, 0.6374, 0.7124, 0.816, 0.9539, 1.139, 1.379, 1.681, 2.051, 2.492",\
                 "0.7665, 0.8015, 0.8858, 0.9955, 1.137, 1.323, 1.564, 1.866, 2.236, 2.676",\
                 "0.942, 0.9803, 1.074, 1.191, 1.337, 1.524, 1.765, 2.069, 2.438, 2.877",\
                 "1.137, 1.179, 1.28, 1.407, 1.556, 1.746, 1.988, 2.29, 2.659, 3.1",\
                 "1.356, 1.4, 1.509, 1.644, 1.8, 1.992, 2.233, 2.536, 2.905, 3.346",\
                 "1.599, 1.646, 1.763, 1.908, 2.071, 2.264, 2.507, 2.809, 3.179, 3.619");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004274, 0.01577, 0.03771, 0.0719, 0.1199, 0.183, 0.2625, 0.3596, 0.4753");
          values("0.1937, 0.2251, 0.3248, 0.5083, 0.7912, 1.186, 1.706, 2.36, 3.155, 4.105",\
                 "0.2081, 0.2393, 0.339, 0.5225, 0.8055, 1.201, 1.72, 2.375, 3.172, 4.124",\
                 "0.2585, 0.2893, 0.3884, 0.5719, 0.8554, 1.251, 1.77, 2.425, 3.222, 4.171",\
                 "0.3269, 0.3593, 0.4589, 0.6417, 0.9249, 1.32, 1.84, 2.493, 3.291, 4.244",\
                 "0.3808, 0.4158, 0.5172, 0.7004, 0.9831, 1.378, 1.898, 2.553, 3.351, 4.301",\
                 "0.4158, 0.4543, 0.559, 0.7417, 1.025, 1.42, 1.94, 2.595, 3.391, 4.346",\
                 "0.4308, 0.473, 0.5826, 0.7654, 1.048, 1.443, 1.963, 2.616, 3.414, 4.366",\
                 "0.4246, 0.4706, 0.5864, 0.7703, 1.052, 1.447, 1.966, 2.62, 3.418, 4.368",\
                 "0.3958, 0.4454, 0.5696, 0.7552, 1.036, 1.43, 1.95, 2.603, 3.402, 4.351",\
                 "0.3433, 0.3959, 0.5285, 0.7188, 0.9992, 1.393, 1.912, 2.567, 3.363, 4.314");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004274, 0.01577, 0.03771, 0.0719, 0.1199, 0.183, 0.2625, 0.3596, 0.4753");
          values("0.0875, 0.1107, 0.1805, 0.3076, 0.5135, 0.8157, 1.221, 1.733, 2.359, 3.104",\
                 "0.08766, 0.1107, 0.1805, 0.3073, 0.513, 0.8159, 1.219, 1.734, 2.36, 3.109",\
                 "0.08766, 0.1106, 0.1807, 0.3073, 0.5126, 0.8147, 1.22, 1.734, 2.36, 3.11",\
                 "0.09298, 0.1149, 0.1831, 0.3083, 0.514, 0.816, 1.221, 1.731, 2.36, 3.109",\
                 "0.114, 0.1374, 0.2008, 0.3202, 0.5184, 0.8162, 1.221, 1.732, 2.361, 3.107",\
                 "0.1352, 0.1622, 0.226, 0.3392, 0.531, 0.8234, 1.223, 1.733, 2.359, 3.108",\
                 "0.155, 0.1854, 0.2524, 0.3608, 0.5442, 0.8308, 1.227, 1.736, 2.36, 3.105",\
                 "0.173, 0.2062, 0.28, 0.3842, 0.5602, 0.8384, 1.231, 1.74, 2.361, 3.105",\
                 "0.1918, 0.2272, 0.3074, 0.41, 0.578, 0.8484, 1.237, 1.741, 2.363, 3.108",\
                 "0.2116, 0.249, 0.3358, 0.4396, 0.5998, 0.8618, 1.242, 1.745, 2.365, 3.109");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004274, 0.01577, 0.03771, 0.0719, 0.1199, 0.183, 0.2625, 0.3596, 0.4753");
          values("0.09054, 0.1322, 0.2893, 0.5995, 1.087, 1.767, 2.662, 3.794, 5.174, 6.815",\
                 "0.08996, 0.1322, 0.2892, 0.6006, 1.087, 1.768, 2.665, 3.798, 5.172, 6.819",\
                 "0.09054, 0.1328, 0.2896, 0.6007, 1.085, 1.769, 2.666, 3.796, 5.168, 6.81",\
                 "0.1007, 0.1407, 0.2918, 0.6002, 1.086, 1.769, 2.663, 3.796, 5.169, 6.81",\
                 "0.115, 0.1528, 0.2968, 0.6024, 1.086, 1.766, 2.664, 3.794, 5.177, 6.816",\
                 "0.1308, 0.169, 0.304, 0.6036, 1.087, 1.765, 2.66, 3.791, 5.173, 6.808",\
                 "0.148, 0.1864, 0.314, 0.606, 1.089, 1.767, 2.659, 3.789, 5.169, 6.812",\
                 "0.165, 0.2056, 0.3284, 0.6098, 1.09, 1.769, 2.661, 3.785, 5.162, 6.809",\
                 "0.1818, 0.2258, 0.3466, 0.616, 1.092, 1.769, 2.664, 3.787, 5.16, 6.808",\
                 "0.1994, 0.2464, 0.3676, 0.6252, 1.094, 1.769, 2.662, 3.788, 5.161, 6.799");
        }
      }
    }
  }

