/*
 * 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.00038517" ;
    }

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3539 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.003436, 0.01199, 0.02831, 0.05375, 0.08944, 0.1364, 0.1956, 0.2678, 0.3539");
          values("0.06005, 0.05991, 0.05994, 0.06002, 0.06008, 0.06011, 0.06013, 0.06014, 0.06015, 0.06016",\
                 "0.0596, 0.05949, 0.05956, 0.05963, 0.05968, 0.05971, 0.05973, 0.05974, 0.05974, 0.05975",\
                 "0.05975, 0.05957, 0.05957, 0.05965, 0.05977, 0.05982, 0.05986, 0.05989, 0.05989, 0.0599",\
                 "0.06316, 0.06273, 0.0623, 0.06221, 0.06222, 0.06228, 0.06231, 0.0623, 0.06232, 0.06232",\
                 "0.07012, 0.06932, 0.06823, 0.06775, 0.06757, 0.0675, 0.06747, 0.06749, 0.06742, 0.06744",\
                 "0.08043, 0.07919, 0.07748, 0.07644, 0.07597, 0.07571, 0.07562, 0.07556, 0.07553, 0.0755",\
                 "0.09456, 0.09289, 0.09041, 0.08873, 0.08782, 0.08737, 0.08713, 0.08699, 0.08692, 0.08684",\
                 "0.1127, 0.1107, 0.1073, 0.1049, 0.1035, 0.1027, 0.1023, 0.102, 0.1019, 0.1017",\
                 "0.1351, 0.1326, 0.1283, 0.1251, 0.1231, 0.122, 0.1213, 0.1209, 0.1206, 0.1202",\
                 "0.1619, 0.1591, 0.1537, 0.1497, 0.1471, 0.1454, 0.1444, 0.1437, 0.1432, 0.1423");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.003436, 0.01199, 0.02831, 0.05375, 0.08944, 0.1364, 0.1956, 0.2678, 0.3539");
          values("0.03689, 0.03704, 0.03766, 0.03826, 0.03857, 0.03871, 0.03876, 0.04062, 0.06272, 0.1703",\
                 "0.03668, 0.03685, 0.03743, 0.03803, 0.03836, 0.03853, 0.03837, 0.0405, 0.06311, 0.1713",\
                 "0.03707, 0.03705, 0.03734, 0.03789, 0.03824, 0.03841, 0.03831, 0.04079, 0.06524, 0.1792",\
                 "0.0398, 0.03953, 0.03919, 0.03939, 0.03971, 0.03988, 0.04013, 0.04272, 0.07042, 0.1945",\
                 "0.04508, 0.04456, 0.04388, 0.0434, 0.04337, 0.04342, 0.04367, 0.04703, 0.07942, 0.2185",\
                 "0.05354, 0.05273, 0.05142, 0.05057, 0.05018, 0.04981, 0.04978, 0.05435, 0.09542, 0.2562",\
                 "0.06526, 0.06423, 0.0623, 0.06104, 0.06047, 0.05965, 0.05921, 0.06584, 0.12, 0.3095",\
                 "0.0804, 0.07913, 0.0767, 0.07475, 0.07352, 0.07288, 0.07278, 0.08269, 0.1572, 0.3853",\
                 "0.09925, 0.09764, 0.09465, 0.09203, 0.09053, 0.0895, 0.08995, 0.1089, 0.2155, 0.4899",\
                 "0.1219, 0.12, 0.1164, 0.1131, 0.1108, 0.1095, 0.1119, 0.1499, 0.309, 0.6284");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.003436, 0.01199, 0.02831, 0.05375, 0.08944, 0.1364, 0.1956, 0.2678, 0.3539");
          values("0.533, 0.5917, 0.752, 0.9951, 1.336, 1.8, 2.408, 3.173, 4.107, 5.22",\
                 "0.5649, 0.6235, 0.784, 1.027, 1.368, 1.832, 2.44, 3.205, 4.139, 5.252",\
                 "0.6966, 0.7552, 0.9154, 1.159, 1.5, 1.964, 2.572, 3.337, 4.271, 5.383",\
                 "0.9517, 1.011, 1.174, 1.419, 1.76, 2.224, 2.832, 3.597, 4.53, 5.643",\
                 "1.271, 1.336, 1.511, 1.765, 2.11, 2.575, 3.182, 3.946, 4.881, 5.994",\
                 "1.652, 1.724, 1.91, 2.175, 2.526, 2.994, 3.601, 4.365, 5.298, 6.411",\
                 "2.103, 2.18, 2.381, 2.659, 3.019, 3.489, 4.097, 4.861, 5.794, 6.907",\
                 "2.623, 2.708, 2.924, 3.22, 3.592, 4.068, 4.678, 5.442, 6.377, 7.487",\
                 "3.217, 3.309, 3.542, 3.856, 4.245, 4.733, 5.35, 6.116, 7.049, 8.161",\
                 "3.888, 3.986, 4.237, 4.573, 4.98, 5.483, 6.112, 6.887, 7.824, 8.935");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.003436, 0.01199, 0.02831, 0.05375, 0.08944, 0.1364, 0.1956, 0.2678, 0.3539");
          values("0.4043, 0.4724, 0.6922, 1.1, 1.731, 2.616, 3.78, 5.244, 7.03, 9.164",\
                 "0.4315, 0.4997, 0.7194, 1.127, 1.759, 2.644, 3.806, 5.272, 7.06, 9.19",\
                 "0.5269, 0.5944, 0.8128, 1.22, 1.852, 2.737, 3.9, 5.366, 7.152, 9.284",\
                 "0.629, 0.6994, 0.9195, 1.325, 1.956, 2.84, 4.005, 5.47, 7.256, 9.39",\
                 "0.6845, 0.759, 0.9823, 1.387, 2.018, 2.901, 4.063, 5.528, 7.318, 9.449",\
                 "0.6892, 0.7689, 0.9997, 1.403, 2.032, 2.915, 4.076, 5.541, 7.329, 9.458",\
                 "0.6351, 0.7205, 0.9623, 1.37, 1.998, 2.88, 4.041, 5.503, 7.291, 9.423",\
                 "0.5166, 0.6083, 0.8623, 1.279, 1.911, 2.794, 3.954, 5.416, 7.2, 9.33",\
                 "0.3311, 0.4276, 0.6953, 1.121, 1.761, 2.651, 3.812, 5.273, 7.059, 9.186",\
                 "0.0713, 0.1739, 0.4567, 0.8931, 1.54, 2.44, 3.612, 5.076, 6.86, 8.987");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.003436, 0.01199, 0.02831, 0.05375, 0.08944, 0.1364, 0.1956, 0.2678, 0.3539");
          values("0.2083, 0.269, 0.4483, 0.773, 1.3, 2.07, 3.099, 4.403, 5.993, 7.89",\
                 "0.2085, 0.2691, 0.4485, 0.7728, 1.3, 2.07, 3.099, 4.402, 5.993, 7.89",\
                 "0.2087, 0.2695, 0.4486, 0.7728, 1.299, 2.07, 3.099, 4.402, 5.994, 7.892",\
                 "0.2244, 0.2834, 0.4584, 0.7778, 1.302, 2.07, 3.098, 4.402, 5.993, 7.892",\
                 "0.2618, 0.3218, 0.4958, 0.8038, 1.314, 2.073, 3.1, 4.402, 5.993, 7.889",\
                 "0.301, 0.3626, 0.5366, 0.8382, 1.336, 2.084, 3.104, 4.403, 5.991, 7.891",\
                 "0.3458, 0.4098, 0.5842, 0.8786, 1.364, 2.1, 3.112, 4.405, 5.993, 7.886",\
                 "0.3928, 0.4618, 0.643, 0.9358, 1.407, 2.125, 3.124, 4.413, 5.994, 7.888",\
                 "0.442, 0.518, 0.708, 1.002, 1.468, 2.174, 3.156, 4.428, 6.004, 7.892",\
                 "0.498, 0.576, 0.78, 1.076, 1.54, 2.24, 3.214, 4.472, 6.028, 7.906");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.003436, 0.01199, 0.02831, 0.05375, 0.08944, 0.1364, 0.1956, 0.2678, 0.3539");
          values("0.2243, 0.3215, 0.6806, 1.391, 2.503, 4.062, 6.115, 8.702, 11.86, 15.62",\
                 "0.2244, 0.3217, 0.6806, 1.391, 2.503, 4.062, 6.117, 8.701, 11.86, 15.63",\
                 "0.2262, 0.3234, 0.6802, 1.39, 2.503, 4.064, 6.117, 8.702, 11.86, 15.62",\
                 "0.2478, 0.3414, 0.6866, 1.392, 2.502, 4.063, 6.116, 8.702, 11.86, 15.62",\
                 "0.2724, 0.3654, 0.6988, 1.396, 2.503, 4.061, 6.116, 8.704, 11.86, 15.62",\
                 "0.3034, 0.3954, 0.719, 1.401, 2.506, 4.059, 6.109, 8.697, 11.86, 15.63",\
                 "0.3354, 0.4324, 0.7492, 1.416, 2.513, 4.063, 6.109, 8.692, 11.85, 15.61",\
                 "0.37, 0.4716, 0.786, 1.444, 2.533, 4.073, 6.118, 8.691, 11.84, 15.61",\
                 "0.4054, 0.5106, 0.8298, 1.477, 2.568, 4.104, 6.131, 8.704, 11.84, 15.6",\
                 "0.4456, 0.5544, 0.8786, 1.515, 2.608, 4.15, 6.17, 8.72, 11.86, 15.6");
        }
      }
    }
  }

