/*
 * 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_20) {
    area : 136.102400 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.04369 ;
      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 : 4.644 ;
      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.03305, 0.1455, 0.3604, 0.695, 1.165, 1.783, 2.561, 3.511, 4.644");
          values("0.4296, 0.4284, 0.4286, 0.4299, 0.4313, 0.4316, 0.4319, 0.4321, 0.4323, 0.4323",\
                 "0.4255, 0.4241, 0.4241, 0.4265, 0.4273, 0.4277, 0.428, 0.4283, 0.4285, 0.4286",\
                 "0.4228, 0.421, 0.4214, 0.4231, 0.4243, 0.425, 0.4256, 0.4258, 0.4262, 0.4262",\
                 "0.4417, 0.4376, 0.4344, 0.4348, 0.4355, 0.4363, 0.4367, 0.4369, 0.4371, 0.4372",\
                 "0.4838, 0.4759, 0.4676, 0.4648, 0.4634, 0.4632, 0.4633, 0.4633, 0.4634, 0.4635",\
                 "0.5463, 0.5353, 0.5205, 0.5135, 0.5107, 0.5092, 0.5083, 0.5081, 0.508, 0.5079",\
                 "0.6308, 0.6171, 0.5962, 0.5842, 0.5783, 0.5753, 0.5734, 0.5722, 0.572, 0.5715",\
                 "0.7397, 0.723, 0.6954, 0.6778, 0.6677, 0.6628, 0.6595, 0.6578, 0.6567, 0.6558",\
                 "0.8752, 0.8562, 0.821, 0.7969, 0.7827, 0.7738, 0.7687, 0.7659, 0.7643, 0.7631",\
                 "1.038, 1.016, 0.9744, 0.943, 0.9239, 0.9111, 0.9035, 0.899, 0.8961, 0.8936");
        }

        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.03305, 0.1455, 0.3604, 0.695, 1.165, 1.783, 2.561, 3.511, 4.644");
          values("0.2565, 0.2583, 0.2651, 0.2708, 0.2766, 0.2804, 0.2837, 0.287, 0.2942, 0.3226",\
                 "0.2545, 0.2564, 0.2628, 0.2694, 0.274, 0.2786, 0.2817, 0.2864, 0.2948, 0.323",\
                 "0.2551, 0.2553, 0.2598, 0.2657, 0.2709, 0.2763, 0.2795, 0.2838, 0.2934, 0.3251",\
                 "0.27, 0.2685, 0.2692, 0.2723, 0.2772, 0.2822, 0.2861, 0.2902, 0.2964, 0.3316",\
                 "0.3012, 0.2973, 0.2931, 0.2951, 0.2984, 0.3022, 0.3063, 0.3111, 0.3173, 0.3557",\
                 "0.3525, 0.3466, 0.3373, 0.3342, 0.339, 0.3414, 0.3441, 0.3476, 0.3538, 0.3977",\
                 "0.4256, 0.4169, 0.4038, 0.3962, 0.3944, 0.3992, 0.4017, 0.4054, 0.4122, 0.4657",\
                 "0.5204, 0.5094, 0.492, 0.4811, 0.4746, 0.4735, 0.4795, 0.4842, 0.4922, 0.5576",\
                 "0.6386, 0.6247, 0.6037, 0.587, 0.5752, 0.5715, 0.5736, 0.5804, 0.593, 0.6861",\
                 "0.7814, 0.7641, 0.7372, 0.7169, 0.7005, 0.6919, 0.6902, 0.6951, 0.7203, 0.8543");
        }
      }

      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.03305, 0.1455, 0.3604, 0.695, 1.165, 1.783, 2.561, 3.511, 4.644");
          values("0.315, 0.349, 0.4395, 0.5716, 0.7513, 0.9917, 1.304, 1.697, 2.177, 2.749",\
                 "0.3316, 0.3657, 0.456, 0.5882, 0.768, 1.008, 1.321, 1.714, 2.194, 2.766",\
                 "0.402, 0.436, 0.5262, 0.6585, 0.8384, 1.079, 1.391, 1.784, 2.264, 2.835",\
                 "0.5388, 0.5733, 0.6651, 0.7984, 0.9787, 1.219, 1.532, 1.925, 2.405, 2.977",\
                 "0.7035, 0.7417, 0.8408, 0.9805, 1.164, 1.406, 1.718, 2.11, 2.59, 3.162",\
                 "0.8941, 0.9358, 1.042, 1.189, 1.377, 1.621, 1.935, 2.327, 2.806, 3.377",\
                 "1.115, 1.161, 1.275, 1.429, 1.623, 1.87, 2.184, 2.577, 3.057, 3.628",\
                 "1.369, 1.417, 1.54, 1.705, 1.906, 2.157, 2.472, 2.867, 3.346, 3.918",\
                 "1.655, 1.708, 1.84, 2.016, 2.226, 2.484, 2.803, 3.199, 3.68, 4.251",\
                 "1.976, 2.032, 2.174, 2.363, 2.583, 2.849, 3.175, 3.576, 4.06, 4.632");
        }

        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.03305, 0.1455, 0.3604, 0.695, 1.165, 1.783, 2.561, 3.511, 4.644");
          values("0.2394, 0.2797, 0.4058, 0.6365, 0.9924, 1.49, 2.143, 2.966, 3.974, 5.175",\
                 "0.2555, 0.2956, 0.4218, 0.6527, 1.008, 1.506, 2.16, 2.984, 3.991, 5.185",\
                 "0.3128, 0.3528, 0.4777, 0.7081, 1.064, 1.563, 2.217, 3.042, 4.043, 5.249",\
                 "0.3797, 0.4213, 0.5475, 0.7771, 1.132, 1.631, 2.285, 3.108, 4.111, 5.313",\
                 "0.4235, 0.4675, 0.5968, 0.8259, 1.18, 1.678, 2.332, 3.157, 4.16, 5.36",\
                 "0.4434, 0.4905, 0.6234, 0.8524, 1.206, 1.703, 2.356, 3.179, 4.184, 5.381",\
                 "0.4359, 0.4859, 0.6255, 0.8561, 1.209, 1.706, 2.358, 3.18, 4.184, 5.381",\
                 "0.3969, 0.4506, 0.598, 0.8336, 1.188, 1.683, 2.336, 3.158, 4.161, 5.357",\
                 "0.3257, 0.3827, 0.5389, 0.78, 1.137, 1.636, 2.288, 3.109, 4.113, 5.309",\
                 "0.2202, 0.2804, 0.4444, 0.6928, 1.054, 1.557, 2.214, 3.036, 4.039, 5.235");
        }

        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.03305, 0.1455, 0.3604, 0.695, 1.165, 1.783, 2.561, 3.511, 4.644");
          values("0.1125, 0.1481, 0.2488, 0.4204, 0.6939, 1.097, 1.636, 2.321, 3.159, 4.163",\
                 "0.1125, 0.1477, 0.2486, 0.4204, 0.6945, 1.095, 1.636, 2.322, 3.16, 4.161",\
                 "0.113, 0.1483, 0.2492, 0.4206, 0.6945, 1.097, 1.636, 2.321, 3.16, 4.164",\
                 "0.1243, 0.1581, 0.2554, 0.4242, 0.696, 1.096, 1.637, 2.321, 3.157, 4.158",\
                 "0.1494, 0.1832, 0.2812, 0.4442, 0.7086, 1.101, 1.636, 2.321, 3.159, 4.162",\
                 "0.1754, 0.2106, 0.3078, 0.4678, 0.7252, 1.113, 1.643, 2.323, 3.155, 4.161",\
                 "0.2026, 0.24, 0.3386, 0.4956, 0.7458, 1.125, 1.652, 2.327, 3.162, 4.161",\
                 "0.2318, 0.272, 0.3754, 0.5306, 0.774, 1.145, 1.662, 2.335, 3.165, 4.158",\
                 "0.265, 0.3088, 0.4148, 0.5718, 0.8106, 1.174, 1.683, 2.348, 3.175, 4.165",\
                 "0.2992, 0.3464, 0.4604, 0.6198, 0.8562, 1.212, 1.717, 2.375, 3.19, 4.183");
        }

        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.03305, 0.1455, 0.3604, 0.695, 1.165, 1.783, 2.561, 3.511, 4.644");
          values("0.1198, 0.1755, 0.3792, 0.7839, 1.419, 2.313, 3.48, 4.955, 6.759, 8.907",\
                 "0.1198, 0.1755, 0.3789, 0.7838, 1.418, 2.313, 3.481, 4.958, 6.757, 8.908",\
                 "0.1211, 0.1769, 0.3795, 0.7843, 1.418, 2.313, 3.479, 4.958, 6.757, 8.91",\
                 "0.1344, 0.1885, 0.3847, 0.784, 1.418, 2.309, 3.481, 4.957, 6.76, 8.913",\
                 "0.1508, 0.2044, 0.3932, 0.7888, 1.422, 2.306, 3.48, 4.958, 6.756, 8.908",\
                 "0.1688, 0.2238, 0.406, 0.7938, 1.423, 2.311, 3.479, 4.965, 6.757, 8.901",\
                 "0.1882, 0.246, 0.4254, 0.8008, 1.425, 2.313, 3.481, 4.957, 6.765, 8.895",\
                 "0.2118, 0.2704, 0.4508, 0.8174, 1.436, 2.322, 3.484, 4.956, 6.763, 8.899",\
                 "0.2358, 0.2956, 0.4776, 0.8386, 1.453, 2.331, 3.49, 4.958, 6.757, 8.906",\
                 "0.262, 0.3234, 0.511, 0.863, 1.478, 2.357, 3.511, 4.976, 6.758, 8.902");
        }
      }
    }
  }

