/*
 * 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_4) {
    area : 30.732800 ;

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

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

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

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

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

    pin(I) {
      capacitance : 0.009208 ;
      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 : 1.446 ;
      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.01097, 0.04598, 0.1128, 0.217, 0.3631, 0.5555, 0.7977, 1.093, 1.446");
          values("0.3101, 0.3022, 0.2939, 0.2905, 0.2887, 0.2877, 0.2871, 0.2867, 0.2865, 0.2863",\
                 "0.3089, 0.301, 0.2926, 0.2892, 0.2875, 0.2864, 0.2858, 0.2854, 0.2852, 0.2851",\
                 "0.3298, 0.3198, 0.3094, 0.3049, 0.3025, 0.3012, 0.3006, 0.3001, 0.2997, 0.2996",\
                 "0.4004, 0.386, 0.3663, 0.357, 0.3519, 0.349, 0.3475, 0.3464, 0.3457, 0.3452",\
                 "0.5199, 0.5005, 0.4699, 0.4521, 0.4415, 0.4358, 0.4323, 0.4302, 0.4287, 0.4277",\
                 "0.6896, 0.6662, 0.6236, 0.5945, 0.5769, 0.5666, 0.5604, 0.5563, 0.5535, 0.5517",\
                 "0.9107, 0.8836, 0.8297, 0.7885, 0.7622, 0.7454, 0.7349, 0.7282, 0.7234, 0.7202",\
                 "1.186, 1.156, 1.092, 1.036, 0.9998, 0.9749, 0.9596, 0.9491, 0.942, 0.9368",\
                 "1.517, 1.485, 1.412, 1.343, 1.294, 1.261, 1.239, 1.223, 1.213, 1.205",\
                 "1.908, 1.874, 1.793, 1.711, 1.65, 1.606, 1.575, 1.553, 1.539, 1.528");
        }

        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.01097, 0.04598, 0.1128, 0.217, 0.3631, 0.5555, 0.7977, 1.093, 1.446");
          values("0.1733, 0.1707, 0.1707, 0.173, 0.1754, 0.1776, 0.1815, 0.1844, 0.1892, 0.1992",\
                 "0.173, 0.1702, 0.1699, 0.172, 0.1748, 0.1772, 0.1804, 0.1826, 0.1866, 0.1985",\
                 "0.194, 0.1888, 0.184, 0.1838, 0.1846, 0.1877, 0.1901, 0.1941, 0.1974, 0.2078",\
                 "0.2527, 0.2431, 0.2314, 0.2261, 0.2237, 0.2258, 0.2279, 0.2309, 0.2345, 0.2427",\
                 "0.3542, 0.34, 0.319, 0.308, 0.302, 0.2996, 0.2992, 0.3003, 0.3044, 0.3175",\
                 "0.5012, 0.4816, 0.4524, 0.4309, 0.4206, 0.4155, 0.4133, 0.4109, 0.412, 0.4261",\
                 "0.6952, 0.6706, 0.6314, 0.6015, 0.5815, 0.5736, 0.5703, 0.5664, 0.5654, 0.5745",\
                 "0.9379, 0.9088, 0.8614, 0.8211, 0.7918, 0.7752, 0.7694, 0.7662, 0.7624, 0.7744",\
                 "1.233, 1.2, 1.142, 1.092, 1.055, 1.029, 1.012, 1.007, 1.008, 1.025",\
                 "1.581, 1.545, 1.477, 1.42, 1.372, 1.335, 1.311, 1.299, 1.298, 1.326");
        }
      }

      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.01097, 0.04598, 0.1128, 0.217, 0.3631, 0.5555, 0.7977, 1.093, 1.446");
          values("0.1631, 0.1919, 0.2668, 0.3842, 0.5555, 0.7937, 1.107, 1.502, 1.983, 2.56",\
                 "0.1752, 0.204, 0.2789, 0.3963, 0.5677, 0.8059, 1.119, 1.514, 1.996, 2.572",\
                 "0.2311, 0.2594, 0.334, 0.4513, 0.6226, 0.8607, 1.174, 1.568, 2.051, 2.626",\
                 "0.3252, 0.3554, 0.4325, 0.5511, 0.722, 0.9597, 1.273, 1.667, 2.148, 2.724",\
                 "0.4445, 0.4785, 0.5608, 0.6837, 0.8555, 1.093, 1.404, 1.799, 2.281, 2.855",\
                 "0.5882, 0.6256, 0.7156, 0.8454, 1.022, 1.26, 1.572, 1.966, 2.447, 3.02",\
                 "0.7563, 0.7979, 0.8961, 1.034, 1.22, 1.465, 1.778, 2.172, 2.651, 3.224",\
                 "0.9505, 0.9962, 1.104, 1.25, 1.445, 1.7, 2.022, 2.419, 2.899, 3.472",\
                 "1.174, 1.223, 1.339, 1.496, 1.698, 1.963, 2.298, 2.706, 3.191, 3.765",\
                 "1.426, 1.479, 1.604, 1.771, 1.984, 2.257, 2.603, 3.026, 3.524, 4.104");
        }

        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.01097, 0.04598, 0.1128, 0.217, 0.3631, 0.5555, 0.7977, 1.093, 1.446");
          values("0.1402, 0.1714, 0.2705, 0.4565, 0.7458, 1.151, 1.685, 2.357, 3.178, 4.157",\
                 "0.1498, 0.1811, 0.2802, 0.4661, 0.7555, 1.161, 1.695, 2.367, 3.187, 4.167",\
                 "0.1834, 0.2143, 0.312, 0.4968, 0.7861, 1.191, 1.723, 2.397, 3.217, 4.196",\
                 "0.2106, 0.2428, 0.34, 0.5231, 0.8102, 1.216, 1.748, 2.42, 3.242, 4.218",\
                 "0.2183, 0.2531, 0.3522, 0.5341, 0.8198, 1.223, 1.754, 2.426, 3.246, 4.225",\
                 "0.2029, 0.2409, 0.343, 0.5269, 0.8136, 1.215, 1.746, 2.415, 3.234, 4.21",\
                 "0.1621, 0.203, 0.3098, 0.496, 0.7849, 1.19, 1.72, 2.388, 3.205, 4.18",\
                 "0.0932, 0.1375, 0.2502, 0.4376, 0.7309, 1.141, 1.675, 2.343, 3.159, 4.133",\
                 "-0.0059, 0.0424, 0.1613, 0.3517, 0.6482, 1.063, 1.604, 2.277, 3.094, 4.068",\
                 "-0.1369, -0.0853, 0.0418, 0.2368, 0.5352, 0.9554, 1.504, 2.185, 3.008, 3.981");
        }

        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.01097, 0.04598, 0.1128, 0.217, 0.3631, 0.5555, 0.7977, 1.093, 1.446");
          values("0.0634, 0.09502, 0.1874, 0.3608, 0.6422, 1.051, 1.589, 2.268, 3.102, 4.086",\
                 "0.06352, 0.09476, 0.1874, 0.3599, 0.6422, 1.051, 1.591, 2.268, 3.1, 4.088",\
                 "0.06558, 0.09678, 0.1888, 0.36, 0.6422, 1.051, 1.59, 2.27, 3.1, 4.092",\
                 "0.08012, 0.111, 0.1989, 0.3652, 0.6437, 1.051, 1.59, 2.27, 3.102, 4.091",\
                 "0.1022, 0.1334, 0.2198, 0.3798, 0.6498, 1.051, 1.589, 2.27, 3.102, 4.088",\
                 "0.1268, 0.1626, 0.2498, 0.4074, 0.6684, 1.059, 1.591, 2.269, 3.099, 4.088",\
                 "0.1544, 0.1936, 0.2836, 0.443, 0.703, 1.085, 1.602, 2.27, 3.097, 4.087",\
                 "0.1854, 0.2274, 0.3214, 0.4798, 0.7456, 1.133, 1.642, 2.291, 3.101, 4.083",\
                 "0.2164, 0.2646, 0.3664, 0.5234, 0.789, 1.184, 1.702, 2.345, 3.135, 4.096",\
                 "0.2502, 0.3014, 0.4144, 0.572, 0.836, 1.238, 1.77, 2.422, 3.202, 4.142");
        }

        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.01097, 0.04598, 0.1128, 0.217, 0.3631, 0.5555, 0.7977, 1.093, 1.446");
          values("0.0646, 0.1111, 0.2825, 0.621, 1.15, 1.891, 2.868, 4.099, 5.599, 7.39",\
                 "0.06466, 0.1113, 0.2825, 0.6209, 1.151, 1.896, 2.867, 4.097, 5.594, 7.39",\
                 "0.06818, 0.1142, 0.2829, 0.621, 1.151, 1.891, 2.867, 4.099, 5.599, 7.387",\
                 "0.07854, 0.1226, 0.287, 0.6229, 1.151, 1.894, 2.868, 4.098, 5.597, 7.386",\
                 "0.09398, 0.1366, 0.2957, 0.627, 1.152, 1.892, 2.866, 4.096, 5.599, 7.387",\
                 "0.1122, 0.1544, 0.3096, 0.6384, 1.159, 1.894, 2.868, 4.096, 5.599, 7.39",\
                 "0.1312, 0.1758, 0.3262, 0.6554, 1.18, 1.909, 2.873, 4.104, 5.608, 7.384",\
                 "0.153, 0.2006, 0.3468, 0.6724, 1.204, 1.936, 2.892, 4.105, 5.603, 7.393",\
                 "0.1784, 0.2252, 0.3702, 0.6914, 1.227, 1.968, 2.928, 4.132, 5.61, 7.393",\
                 "0.2034, 0.2562, 0.3992, 0.7146, 1.254, 2.006, 2.971, 4.177, 5.645, 7.406");
        }
      }
    }
  }

