/*
 * 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_12) {
    area : 83.417600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 4.331 ;
      max_transition : 7.4 ;
      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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.03089, 0.1358, 0.3361, 0.6482, 1.086, 1.662, 2.388, 3.275, 4.331");
          values("0.9441, 0.92, 0.8939, 0.8833, 0.8774, 0.8736, 0.8716, 0.8709, 0.8698, 0.8696",\
                 "0.94, 0.9156, 0.89, 0.8793, 0.8734, 0.8702, 0.8683, 0.867, 0.8665, 0.8656",\
                 "1.002, 0.9721, 0.9402, 0.9261, 0.9183, 0.9145, 0.9114, 0.9108, 0.9094, 0.9088",\
                 "1.212, 1.169, 1.11, 1.08, 1.064, 1.056, 1.05, 1.047, 1.045, 1.044",\
                 "1.569, 1.511, 1.418, 1.362, 1.332, 1.315, 1.304, 1.297, 1.292, 1.289",\
                 "2.076, 2.006, 1.877, 1.786, 1.735, 1.702, 1.684, 1.671, 1.663, 1.657",\
                 "2.738, 2.656, 2.493, 2.365, 2.284, 2.234, 2.202, 2.181, 2.166, 2.158",\
                 "3.561, 3.471, 3.278, 3.109, 2.995, 2.918, 2.869, 2.836, 2.815, 2.799",\
                 "4.553, 4.456, 4.235, 4.026, 3.874, 3.77, 3.698, 3.65, 3.618, 3.594",\
                 "5.723, 5.619, 5.375, 5.124, 4.935, 4.8, 4.701, 4.632, 4.585, 4.552");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.03089, 0.1358, 0.3361, 0.6482, 1.086, 1.662, 2.388, 3.275, 4.331");
          values("0.5482, 0.54, 0.5397, 0.5443, 0.5508, 0.559, 0.5648, 0.5746, 0.5926, 0.6132",\
                 "0.5472, 0.5365, 0.5373, 0.5421, 0.549, 0.5565, 0.5655, 0.5728, 0.5854, 0.6236",\
                 "0.6106, 0.5948, 0.5789, 0.5774, 0.5814, 0.5885, 0.5961, 0.6055, 0.6142, 0.656",\
                 "0.7847, 0.7556, 0.7207, 0.7041, 0.6937, 0.698, 0.7041, 0.7135, 0.7258, 0.7558",\
                 "1.089, 1.045, 0.9822, 0.9453, 0.9302, 0.919, 0.9183, 0.9216, 0.9274, 0.9636",\
                 "1.528, 1.469, 1.38, 1.312, 1.281, 1.268, 1.258, 1.249, 1.251, 1.286",\
                 "2.107, 2.033, 1.92, 1.825, 1.764, 1.737, 1.724, 1.714, 1.707, 1.73",\
                 "2.834, 2.748, 2.604, 2.482, 2.39, 2.338, 2.314, 2.31, 2.293, 2.327",\
                 "3.717, 3.618, 3.443, 3.296, 3.18, 3.098, 3.048, 3.028, 3.019, 3.074",\
                 "4.759, 4.653, 4.447, 4.275, 4.13, 4.019, 3.926, 3.89, 3.886, 3.978");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.03089, 0.1358, 0.3361, 0.6482, 1.086, 1.662, 2.388, 3.275, 4.331");
          values("0.1654, 0.1944, 0.2698, 0.3877, 0.5595, 0.7982, 1.112, 1.508, 1.991, 2.568",\
                 "0.1775, 0.2065, 0.2818, 0.3998, 0.5717, 0.8104, 1.124, 1.52, 2.004, 2.58",\
                 "0.2333, 0.2619, 0.3369, 0.4547, 0.6265, 0.8651, 1.179, 1.574, 2.057, 2.634",\
                 "0.3277, 0.3581, 0.4357, 0.5546, 0.726, 0.9642, 1.278, 1.673, 2.157, 2.732",\
                 "0.4479, 0.4816, 0.5642, 0.6869, 0.8599, 1.097, 1.41, 1.805, 2.289, 2.864",\
                 "0.5917, 0.6292, 0.7196, 0.8496, 1.027, 1.265, 1.578, 1.972, 2.454, 3.028",\
                 "0.7604, 0.8017, 0.9005, 1.038, 1.224, 1.469, 1.783, 2.177, 2.658, 3.233",\
                 "0.9555, 1.001, 1.108, 1.255, 1.449, 1.703, 2.027, 2.424, 2.905, 3.479",\
                 "1.179, 1.227, 1.344, 1.5, 1.703, 1.967, 2.302, 2.711, 3.197, 3.771",\
                 "1.432, 1.484, 1.609, 1.777, 1.988, 2.262, 2.607, 3.03, 3.529, 4.109");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.03089, 0.1358, 0.3361, 0.6482, 1.086, 1.662, 2.388, 3.275, 4.331");
          values("0.1422, 0.1736, 0.2728, 0.4591, 0.749, 1.155, 1.688, 2.36, 3.186, 4.163",\
                 "0.1518, 0.1832, 0.2825, 0.4686, 0.7586, 1.165, 1.7, 2.37, 3.191, 4.174",\
                 "0.1858, 0.2167, 0.3145, 0.4997, 0.7893, 1.195, 1.73, 2.403, 3.225, 4.2",\
                 "0.2134, 0.2458, 0.3433, 0.5263, 0.8141, 1.22, 1.753, 2.426, 3.248, 4.225",\
                 "0.2222, 0.2567, 0.3564, 0.5381, 0.8245, 1.228, 1.76, 2.433, 3.255, 4.234",\
                 "0.2075, 0.2451, 0.3476, 0.5312, 0.8182, 1.22, 1.752, 2.422, 3.244, 4.223",\
                 "0.1668, 0.2081, 0.3154, 0.5012, 0.7913, 1.196, 1.726, 2.396, 3.215, 4.193",\
                 "0.0987, 0.1434, 0.2561, 0.444, 0.7369, 1.147, 1.682, 2.351, 3.168, 4.144",\
                 "0.0006, 0.0489, 0.1681, 0.3594, 0.6556, 1.071, 1.612, 2.285, 3.104, 4.079",\
                 "-0.1299, -0.0776, 0.0493, 0.2448, 0.5425, 0.9635, 1.512, 2.193, 3.017, 3.993");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.03089, 0.1358, 0.3361, 0.6482, 1.086, 1.662, 2.388, 3.275, 4.331");
          values("0.06432, 0.09618, 0.1886, 0.3616, 0.6445, 1.054, 1.595, 2.277, 3.108, 4.102",\
                 "0.06442, 0.09594, 0.1887, 0.3614, 0.6442, 1.054, 1.595, 2.275, 3.109, 4.102",\
                 "0.06664, 0.09782, 0.1899, 0.3621, 0.6445, 1.053, 1.595, 2.277, 3.111, 4.101",\
                 "0.08104, 0.1118, 0.2003, 0.3666, 0.6458, 1.052, 1.594, 2.277, 3.106, 4.102",\
                 "0.1034, 0.135, 0.2206, 0.3814, 0.6518, 1.056, 1.594, 2.276, 3.108, 4.098",\
                 "0.1282, 0.1636, 0.2498, 0.4084, 0.6698, 1.062, 1.595, 2.275, 3.108, 4.1",\
                 "0.155, 0.1938, 0.2844, 0.443, 0.7046, 1.087, 1.606, 2.276, 3.107, 4.099",\
                 "0.186, 0.229, 0.3236, 0.4808, 0.7454, 1.134, 1.643, 2.296, 3.11, 4.099",\
                 "0.2172, 0.2652, 0.3674, 0.524, 0.7892, 1.186, 1.706, 2.347, 3.143, 4.107",\
                 "0.2508, 0.3022, 0.415, 0.572, 0.8364, 1.237, 1.771, 2.423, 3.208, 4.152");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.03089, 0.1358, 0.3361, 0.6482, 1.086, 1.662, 2.388, 3.275, 4.331");
          values("0.06548, 0.112, 0.2834, 0.6224, 1.153, 1.899, 2.871, 4.107, 5.609, 7.402",\
                 "0.06562, 0.1124, 0.2834, 0.6224, 1.152, 1.899, 2.871, 4.108, 5.614, 7.401",\
                 "0.06898, 0.1147, 0.2838, 0.6225, 1.153, 1.899, 2.871, 4.104, 5.604, 7.427",\
                 "0.0793, 0.1235, 0.2883, 0.6238, 1.154, 1.898, 2.873, 4.104, 5.611, 7.407",\
                 "0.09488, 0.1372, 0.2968, 0.6274, 1.154, 1.896, 2.872, 4.103, 5.608, 7.397",\
                 "0.113, 0.1554, 0.3114, 0.64, 1.161, 1.898, 2.874, 4.102, 5.606, 7.399",\
                 "0.1324, 0.1764, 0.3274, 0.6564, 1.182, 1.911, 2.878, 4.107, 5.607, 7.396",\
                 "0.1544, 0.1998, 0.3476, 0.6734, 1.206, 1.937, 2.896, 4.113, 5.619, 7.404",\
                 "0.1782, 0.2264, 0.3712, 0.6928, 1.229, 1.971, 2.932, 4.137, 5.62, 7.409",\
                 "0.204, 0.257, 0.4002, 0.7158, 1.255, 2.007, 2.977, 4.182, 5.656, 7.419");
        }
      }
    }
  }

