/*
 * 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 : "0.00038742" ;
    }

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

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

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

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

    pin(I) {
      capacitance : 0.004949 ;
      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.7097 ;
      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.005891, 0.02306, 0.05585, 0.1069, 0.1786, 0.2729, 0.3917, 0.5368, 0.7097");
          values("0.1061, 0.1059, 0.1063, 0.1069, 0.1072, 0.1073, 0.1074, 0.1074, 0.1074, 0.1074",\
                 "0.105, 0.1047, 0.1052, 0.1056, 0.106, 0.1061, 0.1062, 0.1062, 0.1063, 0.1063",\
                 "0.1049, 0.1045, 0.1048, 0.1054, 0.1058, 0.106, 0.1061, 0.1062, 0.1063, 0.1063",\
                 "0.112, 0.1107, 0.1097, 0.1098, 0.1102, 0.1102, 0.1104, 0.1105, 0.1105, 0.1105",\
                 "0.1251, 0.1227, 0.1205, 0.1197, 0.1196, 0.1195, 0.1196, 0.1196, 0.1197, 0.1197",\
                 "0.1442, 0.1408, 0.137, 0.1352, 0.1345, 0.1344, 0.1342, 0.1341, 0.1342, 0.1341",\
                 "0.1699, 0.1655, 0.16, 0.157, 0.1557, 0.155, 0.1547, 0.1546, 0.1544, 0.1543",\
                 "0.203, 0.1977, 0.1902, 0.1858, 0.1835, 0.1823, 0.1817, 0.1813, 0.1812, 0.181",\
                 "0.2435, 0.2374, 0.2278, 0.2219, 0.2185, 0.2167, 0.2156, 0.215, 0.2146, 0.2141",\
                 "0.2917, 0.2848, 0.2732, 0.2655, 0.261, 0.2584, 0.2567, 0.2558, 0.2551, 0.2539");
        }

        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.005891, 0.02306, 0.05585, 0.1069, 0.1786, 0.2729, 0.3917, 0.5368, 0.7097");
          values("0.05938, 0.0599, 0.0616, 0.06334, 0.06446, 0.06559, 0.06664, 0.0714, 0.116, 0.3256",\
                 "0.05876, 0.05923, 0.06096, 0.06274, 0.06395, 0.06499, 0.06568, 0.07104, 0.1165, 0.3296",\
                 "0.05952, 0.05945, 0.06046, 0.06199, 0.0635, 0.06472, 0.06574, 0.07138, 0.119, 0.3441",\
                 "0.06467, 0.06404, 0.06407, 0.06487, 0.06602, 0.06748, 0.06862, 0.07445, 0.1304, 0.3706",\
                 "0.07514, 0.07373, 0.07232, 0.07264, 0.07364, 0.07423, 0.07592, 0.0832, 0.1467, 0.4223",\
                 "0.09142, 0.08946, 0.08653, 0.08554, 0.08657, 0.08773, 0.08846, 0.0979, 0.1781, 0.4953",\
                 "0.114, 0.1113, 0.1075, 0.105, 0.1044, 0.106, 0.1074, 0.1209, 0.2252, 0.6031",\
                 "0.1431, 0.1395, 0.1346, 0.131, 0.1289, 0.1287, 0.1322, 0.1549, 0.3029, 0.7594",\
                 "0.1789, 0.1744, 0.1681, 0.1639, 0.1608, 0.1594, 0.1624, 0.2043, 0.4243, 0.9821",\
                 "0.222, 0.2167, 0.2093, 0.203, 0.1994, 0.1966, 0.2029, 0.2841, 0.6182, 1.272");
        }
      }

      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.005891, 0.02306, 0.05585, 0.1069, 0.1786, 0.2729, 0.3917, 0.5368, 0.7097");
          values("0.4205, 0.4822, 0.6396, 0.8761, 1.214, 1.679, 2.289, 3.057, 3.996, 5.115",\
                 "0.4513, 0.5128, 0.6703, 0.9072, 1.245, 1.71, 2.319, 3.089, 4.026, 5.147",\
                 "0.58, 0.6413, 0.7986, 1.036, 1.373, 1.838, 2.449, 3.216, 4.155, 5.274",\
                 "0.8068, 0.8717, 1.035, 1.275, 1.613, 2.078, 2.688, 3.457, 4.393, 5.514",\
                 "1.071, 1.142, 1.319, 1.569, 1.911, 2.377, 2.986, 3.755, 4.691, 5.808",\
                 "1.38, 1.46, 1.649, 1.908, 2.255, 2.722, 3.333, 4.1, 5.037, 6.157",\
                 "1.743, 1.829, 2.033, 2.305, 2.657, 3.126, 3.736, 4.505, 5.442, 6.559",\
                 "2.158, 2.252, 2.472, 2.76, 3.122, 3.595, 4.206, 4.974, 5.912, 7.03",\
                 "2.626, 2.728, 2.965, 3.272, 3.648, 4.13, 4.746, 5.515, 6.452, 7.569",\
                 "3.151, 3.26, 3.516, 3.844, 4.236, 4.73, 5.355, 6.13, 7.07, 8.187");
        }

        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.005891, 0.02306, 0.05585, 0.1069, 0.1786, 0.2729, 0.3917, 0.5368, 0.7097");
          values("0.3276, 0.3985, 0.6197, 1.03, 1.665, 2.553, 3.72, 5.195, 6.986, 9.136",\
                 "0.3567, 0.4273, 0.6485, 1.059, 1.693, 2.582, 3.749, 5.226, 7.021, 9.159",\
                 "0.4577, 0.5276, 0.7471, 1.157, 1.792, 2.682, 3.848, 5.325, 7.123, 9.263",\
                 "0.5626, 0.6375, 0.8589, 1.267, 1.901, 2.791, 3.957, 5.433, 7.226, 9.367",\
                 "0.633, 0.7126, 0.9382, 1.345, 1.978, 2.865, 4.035, 5.507, 7.299, 9.444",\
                 "0.6644, 0.7507, 0.9835, 1.389, 2.02, 2.908, 4.073, 5.545, 7.338, 9.483",\
                 "0.6512, 0.7444, 0.9897, 1.397, 2.027, 2.913, 4.079, 5.548, 7.342, 9.485",\
                 "0.5893, 0.6885, 0.9474, 1.362, 1.996, 2.882, 4.047, 5.515, 7.31, 9.446",\
                 "0.475, 0.5808, 0.8542, 1.278, 1.917, 2.809, 3.975, 5.443, 7.237, 9.373",\
                 "0.3067, 0.4186, 0.7071, 1.139, 1.786, 2.686, 3.859, 5.329, 7.122, 9.258");
        }

        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.005891, 0.02306, 0.05585, 0.1069, 0.1786, 0.2729, 0.3917, 0.5368, 0.7097");
          values("0.146, 0.2094, 0.3892, 0.7189, 1.258, 2.038, 3.077, 4.39, 5.992, 7.902",\
                 "0.146, 0.2095, 0.3887, 0.7191, 1.259, 2.039, 3.076, 4.384, 5.993, 7.889",\
                 "0.1469, 0.2107, 0.3896, 0.7192, 1.258, 2.038, 3.078, 4.389, 5.993, 7.903",\
                 "0.1706, 0.2318, 0.4046, 0.7256, 1.259, 2.04, 3.077, 4.382, 5.992, 7.89",\
                 "0.2044, 0.2682, 0.4402, 0.7518, 1.273, 2.041, 3.076, 4.387, 5.99, 7.901",\
                 "0.2382, 0.3046, 0.4774, 0.7794, 1.288, 2.053, 3.081, 4.383, 5.984, 7.89",\
                 "0.2748, 0.3454, 0.5206, 0.8146, 1.31, 2.06, 3.086, 4.388, 5.985, 7.884",\
                 "0.3156, 0.3922, 0.5738, 0.8614, 1.343, 2.079, 3.096, 4.394, 5.985, 7.886",\
                 "0.3584, 0.4426, 0.6344, 0.918, 1.392, 2.116, 3.12, 4.408, 5.99, 7.89",\
                 "0.402, 0.494, 0.698, 0.984, 1.45, 2.168, 3.164, 4.438, 6.008, 7.896");
        }

        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.005891, 0.02306, 0.05585, 0.1069, 0.1786, 0.2729, 0.3917, 0.5368, 0.7097");
          values("0.1537, 0.2516, 0.6127, 1.329, 2.444, 4.011, 6.068, 8.67, 11.84, 15.64",\
                 "0.1533, 0.251, 0.6124, 1.33, 2.444, 4.012, 6.066, 8.678, 11.84, 15.61",\
                 "0.1569, 0.2533, 0.6131, 1.327, 2.443, 4.009, 6.068, 8.673, 11.84, 15.62",\
                 "0.1784, 0.2722, 0.62, 1.327, 2.442, 4.01, 6.067, 8.672, 11.84, 15.61",\
                 "0.2012, 0.296, 0.6298, 1.332, 2.446, 4.008, 6.068, 8.667, 11.82, 15.62",\
                 "0.2276, 0.3246, 0.646, 1.336, 2.446, 4.009, 6.071, 8.672, 11.83, 15.6",\
                 "0.2576, 0.3596, 0.673, 1.348, 2.45, 4.011, 6.067, 8.672, 11.82, 15.6",\
                 "0.2878, 0.3946, 0.7068, 1.369, 2.469, 4.017, 6.069, 8.658, 11.84, 15.59",\
                 "0.3212, 0.4306, 0.7472, 1.399, 2.497, 4.041, 6.082, 8.662, 11.83, 15.61",\
                 "0.3554, 0.4676, 0.7916, 1.43, 2.53, 4.076, 6.114, 8.682, 11.83, 15.6");
        }
      }
    }
  }

