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

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

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

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

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

    pin(I) {
      capacitance : 0.0413 ;
      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 : 4.729 ;
      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.03363, 0.1482, 0.3669, 0.7078, 1.186, 1.815, 2.608, 3.576, 4.729");
          values("0.3905, 0.3931, 0.3987, 0.4035, 0.4063, 0.4078, 0.4086, 0.4091, 0.4095, 0.4096",\
                 "0.3862, 0.3885, 0.3948, 0.3996, 0.4023, 0.4038, 0.4046, 0.4052, 0.4056, 0.4058",\
                 "0.3803, 0.3821, 0.3878, 0.393, 0.3963, 0.398, 0.3989, 0.3995, 0.3999, 0.4",\
                 "0.3814, 0.3819, 0.3862, 0.3914, 0.3947, 0.3969, 0.3983, 0.3991, 0.3995, 0.4",\
                 "0.3912, 0.3907, 0.3916, 0.3957, 0.3995, 0.4018, 0.4033, 0.4044, 0.405, 0.4055",\
                 "0.4088, 0.4068, 0.4056, 0.4079, 0.4113, 0.4132, 0.4149, 0.4163, 0.4169, 0.4173",\
                 "0.4338, 0.4292, 0.4262, 0.4276, 0.4289, 0.4313, 0.4329, 0.434, 0.4349, 0.4353",\
                 "0.4671, 0.4607, 0.4549, 0.4536, 0.4544, 0.4561, 0.4578, 0.4589, 0.4598, 0.4603",\
                 "0.508, 0.4999, 0.4915, 0.4873, 0.4878, 0.4889, 0.4906, 0.4915, 0.4925, 0.4931",\
                 "0.5594, 0.5488, 0.5374, 0.5319, 0.5305, 0.5305, 0.5316, 0.5325, 0.5332, 0.534");
        }

        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.03363, 0.1482, 0.3669, 0.7078, 1.186, 1.815, 2.608, 3.576, 4.729");
          values("0.2328, 0.2366, 0.2454, 0.2525, 0.2571, 0.2623, 0.265, 0.2693, 0.2766, 0.286",\
                 "0.2308, 0.235, 0.2434, 0.2508, 0.2553, 0.2609, 0.2637, 0.2672, 0.2727, 0.285",\
                 "0.2266, 0.2293, 0.2365, 0.2441, 0.2491, 0.2548, 0.2603, 0.2628, 0.2695, 0.2784",\
                 "0.2265, 0.2278, 0.2328, 0.2399, 0.2452, 0.2518, 0.2571, 0.2608, 0.2675, 0.2731",\
                 "0.2327, 0.2322, 0.2352, 0.2429, 0.2462, 0.252, 0.2581, 0.2636, 0.2693, 0.2784",\
                 "0.246, 0.2452, 0.2455, 0.2485, 0.2584, 0.2613, 0.2658, 0.2703, 0.2814, 0.2834",\
                 "0.2667, 0.2659, 0.2638, 0.2648, 0.2697, 0.2783, 0.2821, 0.2848, 0.2885, 0.2954",\
                 "0.2946, 0.2922, 0.2902, 0.29, 0.2913, 0.2972, 0.3078, 0.3121, 0.3142, 0.3199",\
                 "0.3312, 0.3274, 0.3226, 0.322, 0.3222, 0.3275, 0.3324, 0.3464, 0.3499, 0.3485",\
                 "0.3763, 0.3715, 0.3657, 0.3619, 0.3626, 0.3627, 0.3688, 0.3763, 0.3879, 0.3976");
        }
      }

      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.03363, 0.1482, 0.3669, 0.7078, 1.186, 1.815, 2.608, 3.576, 4.729");
          values("0.2444, 0.2707, 0.3371, 0.4346, 0.57, 0.7546, 0.9956, 1.3, 1.671, 2.113",\
                 "0.2596, 0.286, 0.3525, 0.4497, 0.5852, 0.7697, 1.011, 1.315, 1.686, 2.128",\
                 "0.3202, 0.3464, 0.4127, 0.5102, 0.6456, 0.8303, 1.072, 1.376, 1.747, 2.189",\
                 "0.4376, 0.4646, 0.5318, 0.63, 0.7659, 0.9505, 1.192, 1.496, 1.867, 2.308",\
                 "0.5793, 0.6109, 0.6854, 0.7881, 0.9254, 1.11, 1.352, 1.656, 2.027, 2.468",\
                 "0.7332, 0.7692, 0.8528, 0.9616, 1.102, 1.289, 1.53, 1.834, 2.205, 2.647",\
                 "0.9031, 0.9426, 1.036, 1.151, 1.296, 1.482, 1.725, 2.029, 2.4, 2.841",\
                 "1.094, 1.136, 1.238, 1.362, 1.51, 1.698, 1.94, 2.244, 2.615, 3.057",\
                 "1.309, 1.354, 1.463, 1.595, 1.748, 1.938, 2.181, 2.485, 2.855, 3.297",\
                 "1.548, 1.596, 1.712, 1.854, 2.013, 2.206, 2.449, 2.752, 3.122, 3.564");
        }

        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.03363, 0.1482, 0.3669, 0.7078, 1.186, 1.815, 2.608, 3.576, 4.729");
          values("0.1788, 0.2103, 0.3103, 0.4939, 0.7767, 1.172, 1.693, 2.348, 3.148, 4.098",\
                 "0.1929, 0.2245, 0.3244, 0.508, 0.7915, 1.187, 1.707, 2.361, 3.162, 4.113",\
                 "0.2428, 0.274, 0.3733, 0.5568, 0.8406, 1.237, 1.757, 2.412, 3.21, 4.166",\
                 "0.3067, 0.3394, 0.4393, 0.6226, 0.9061, 1.302, 1.823, 2.478, 3.277, 4.23",\
                 "0.3552, 0.3907, 0.4924, 0.6758, 0.959, 1.355, 1.876, 2.531, 3.331, 4.283",\
                 "0.385, 0.4239, 0.529, 0.7119, 0.9952, 1.391, 1.911, 2.566, 3.366, 4.321",\
                 "0.3951, 0.438, 0.5477, 0.7301, 1.012, 1.408, 1.928, 2.583, 3.382, 4.335",\
                 "0.3837, 0.4306, 0.547, 0.7303, 1.012, 1.408, 1.927, 2.582, 3.381, 4.332",\
                 "0.35, 0.4006, 0.5245, 0.7099, 0.9913, 1.386, 1.906, 2.561, 3.359, 4.311",\
                 "0.2926, 0.3468, 0.4795, 0.6688, 0.9498, 1.344, 1.863, 2.518, 3.316, 4.268");
        }

        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.03363, 0.1482, 0.3669, 0.7078, 1.186, 1.815, 2.608, 3.576, 4.729");
          values("0.0793, 0.1028, 0.1725, 0.3, 0.5084, 0.8138, 1.221, 1.737, 2.367, 3.113",\
                 "0.07918, 0.1025, 0.1726, 0.3001, 0.5088, 0.8146, 1.22, 1.737, 2.366, 3.114",\
                 "0.07936, 0.1025, 0.1726, 0.3001, 0.5089, 0.8133, 1.22, 1.736, 2.364, 3.117",\
                 "0.08592, 0.1079, 0.1756, 0.3021, 0.5093, 0.8132, 1.222, 1.737, 2.363, 3.115",\
                 "0.107, 0.131, 0.1942, 0.3136, 0.5138, 0.8158, 1.222, 1.737, 2.366, 3.117",\
                 "0.127, 0.1546, 0.2174, 0.3316, 0.5256, 0.822, 1.223, 1.736, 2.362, 3.114",\
                 "0.1458, 0.177, 0.2438, 0.3516, 0.5382, 0.8274, 1.227, 1.739, 2.364, 3.114",\
                 "0.1628, 0.197, 0.27, 0.373, 0.5522, 0.8356, 1.232, 1.742, 2.367, 3.113",\
                 "0.1814, 0.217, 0.2964, 0.398, 0.5678, 0.843, 1.236, 1.744, 2.369, 3.116",\
                 "0.201, 0.2384, 0.3254, 0.4276, 0.5888, 0.854, 1.241, 1.746, 2.371, 3.121");
        }

        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.03363, 0.1482, 0.3669, 0.7078, 1.186, 1.815, 2.608, 3.576, 4.729");
          values("0.0809, 0.1232, 0.2809, 0.5921, 1.08, 1.762, 2.656, 3.793, 5.176, 6.821",\
                 "0.08104, 0.1232, 0.2809, 0.5917, 1.079, 1.761, 2.656, 3.786, 5.175, 6.822",\
                 "0.08144, 0.1238, 0.2812, 0.5929, 1.079, 1.76, 2.66, 3.794, 5.163, 6.826",\
                 "0.09204, 0.1315, 0.2834, 0.5916, 1.079, 1.762, 2.657, 3.785, 5.167, 6.816",\
                 "0.1069, 0.1436, 0.288, 0.5944, 1.078, 1.758, 2.656, 3.788, 5.168, 6.823",\
                 "0.122, 0.1584, 0.2954, 0.5964, 1.081, 1.759, 2.654, 3.781, 5.167, 6.812",\
                 "0.1374, 0.1772, 0.304, 0.5986, 1.081, 1.761, 2.653, 3.785, 5.167, 6.809",\
                 "0.1542, 0.1964, 0.3176, 0.6014, 1.084, 1.762, 2.655, 3.782, 5.161, 6.809",\
                 "0.1702, 0.2152, 0.3352, 0.607, 1.084, 1.763, 2.659, 3.783, 5.158, 6.81",\
                 "0.1862, 0.2354, 0.3576, 0.6166, 1.088, 1.765, 2.657, 3.783, 5.159, 6.8");
        }
      }
    }
  }

