/*
 * 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_1) {
    area : 13.171200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.2273 ;
      max_transition : 3.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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002562, 0.008044, 0.01851, 0.03482, 0.05771, 0.08782, 0.1258, 0.1721, 0.2273");
          values("0.2294, 0.2258, 0.2183, 0.2123, 0.2085, 0.2061, 0.2045, 0.2033, 0.2024, 0.2019",\
                 "0.2294, 0.2256, 0.2178, 0.2122, 0.2083, 0.2059, 0.2041, 0.2033, 0.2022, 0.2019",\
                 "0.2374, 0.2338, 0.2256, 0.2193, 0.2154, 0.2127, 0.2111, 0.2099, 0.2089, 0.2083",\
                 "0.2692, 0.2643, 0.2539, 0.2452, 0.2396, 0.2359, 0.2336, 0.2319, 0.2307, 0.2299",\
                 "0.33, 0.324, 0.3097, 0.2968, 0.2875, 0.2814, 0.277, 0.2742, 0.2721, 0.2707",\
                 "0.4195, 0.412, 0.3938, 0.3751, 0.3609, 0.351, 0.3441, 0.3391, 0.3356, 0.3331",\
                 "0.5371, 0.5284, 0.5063, 0.4815, 0.4619, 0.4474, 0.4368, 0.4294, 0.4238, 0.4195",\
                 "0.684, 0.6743, 0.6485, 0.6178, 0.5917, 0.5718, 0.5569, 0.5459, 0.5381, 0.5319",\
                 "0.8615, 0.8506, 0.8216, 0.7856, 0.7525, 0.7266, 0.7067, 0.6917, 0.6803, 0.6715",\
                 "1.07, 1.059, 1.027, 0.9862, 0.9465, 0.9133, 0.8875, 0.8677, 0.8526, 0.8408");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002562, 0.008044, 0.01851, 0.03482, 0.05771, 0.08782, 0.1258, 0.1721, 0.2273");
          values("0.1383, 0.1361, 0.1326, 0.1294, 0.1285, 0.1272, 0.1266, 0.1264, 0.126, 0.1246",\
                 "0.1387, 0.1363, 0.1326, 0.1299, 0.1283, 0.1272, 0.1266, 0.1266, 0.1261, 0.1252",\
                 "0.146, 0.1434, 0.1388, 0.1353, 0.1331, 0.1321, 0.1317, 0.1311, 0.1305, 0.1296",\
                 "0.174, 0.1705, 0.163, 0.1569, 0.1525, 0.1501, 0.1489, 0.1479, 0.1468, 0.1455",\
                 "0.224, 0.2194, 0.2096, 0.1995, 0.1917, 0.1866, 0.1839, 0.182, 0.1785, 0.178",\
                 "0.2985, 0.2922, 0.2794, 0.2657, 0.2544, 0.2451, 0.2392, 0.2354, 0.2326, 0.228",\
                 "0.3984, 0.3908, 0.3741, 0.3566, 0.3426, 0.3291, 0.3193, 0.3115, 0.3062, 0.3034",\
                 "0.5244, 0.5156, 0.4956, 0.4735, 0.4542, 0.438, 0.4247, 0.4144, 0.4041, 0.398",\
                 "0.6776, 0.6681, 0.6442, 0.6179, 0.5945, 0.5746, 0.5568, 0.5435, 0.5312, 0.5212",\
                 "0.8596, 0.8489, 0.8222, 0.7914, 0.7626, 0.7376, 0.7174, 0.6988, 0.6846, 0.6713");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002562, 0.008044, 0.01851, 0.03482, 0.05771, 0.08782, 0.1258, 0.1721, 0.2273");
          values("0.154, 0.1674, 0.2074, 0.2724, 0.3654, 0.4922, 0.6583, 0.8683, 1.124, 1.43",\
                 "0.1591, 0.1726, 0.2125, 0.2775, 0.3705, 0.4972, 0.6634, 0.8732, 1.129, 1.435",\
                 "0.1836, 0.1968, 0.2365, 0.3014, 0.3943, 0.5212, 0.6874, 0.8969, 1.153, 1.458",\
                 "0.2341, 0.2474, 0.2868, 0.3512, 0.4437, 0.5701, 0.7359, 0.9455, 1.201, 1.507",\
                 "0.3033, 0.3173, 0.3583, 0.4235, 0.5158, 0.6413, 0.8065, 1.015, 1.271, 1.576",\
                 "0.386, 0.4012, 0.4448, 0.5131, 0.6072, 0.7328, 0.897, 1.105, 1.36, 1.665",\
                 "0.4815, 0.4981, 0.5448, 0.6166, 0.7146, 0.8428, 1.008, 1.214, 1.468, 1.772",\
                 "0.5906, 0.6083, 0.6587, 0.7346, 0.8364, 0.9686, 1.137, 1.346, 1.599, 1.902",\
                 "0.7138, 0.7328, 0.7865, 0.867, 0.9728, 1.109, 1.282, 1.496, 1.752, 2.054",\
                 "0.8518, 0.8721, 0.9297, 1.014, 1.125, 1.265, 1.443, 1.661, 1.923, 2.23");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002562, 0.008044, 0.01851, 0.03482, 0.05771, 0.08782, 0.1258, 0.1721, 0.2273");
          values("0.1417, 0.1553, 0.2001, 0.283, 0.4128, 0.5952, 0.8353, 1.138, 1.508, 1.948",\
                 "0.1451, 0.1586, 0.2034, 0.2862, 0.416, 0.5982, 0.8386, 1.142, 1.511, 1.952",\
                 "0.1593, 0.1727, 0.217, 0.2997, 0.4288, 0.6114, 0.8516, 1.154, 1.524, 1.965",\
                 "0.1804, 0.1939, 0.2377, 0.3191, 0.4475, 0.6291, 0.8688, 1.171, 1.54, 1.981",\
                 "0.1948, 0.2089, 0.2532, 0.3339, 0.4607, 0.641, 0.8797, 1.181, 1.55, 1.991",\
                 "0.1983, 0.2134, 0.2591, 0.3401, 0.4664, 0.6451, 0.8826, 1.183, 1.552, 1.991",\
                 "0.1896, 0.2056, 0.2533, 0.3352, 0.4623, 0.6411, 0.8777, 1.177, 1.545, 1.984",\
                 "0.1668, 0.184, 0.2344, 0.3177, 0.4452, 0.6255, 0.8633, 1.163, 1.529, 1.966",\
                 "0.1292, 0.1477, 0.2009, 0.2864, 0.4146, 0.5965, 0.8361, 1.138, 1.504, 1.941",\
                 "0.0765, 0.0963, 0.1526, 0.2406, 0.3696, 0.5525, 0.7944, 1.098, 1.468, 1.906");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002562, 0.008044, 0.01851, 0.03482, 0.05771, 0.08782, 0.1258, 0.1721, 0.2273");
          values("0.07386, 0.08916, 0.1375, 0.227, 0.3709, 0.581, 0.8633, 1.222, 1.659, 2.181",\
                 "0.07398, 0.08896, 0.137, 0.2271, 0.3707, 0.5812, 0.8632, 1.222, 1.659, 2.181",\
                 "0.07414, 0.08968, 0.1378, 0.2271, 0.3709, 0.5807, 0.8639, 1.222, 1.66, 2.181",\
                 "0.07888, 0.09356, 0.1406, 0.229, 0.3719, 0.5814, 0.8635, 1.222, 1.659, 2.182",\
                 "0.09186, 0.1068, 0.1528, 0.2366, 0.3754, 0.5825, 0.864, 1.222, 1.66, 2.181",\
                 "0.1092, 0.1246, 0.1711, 0.2541, 0.387, 0.5876, 0.8652, 1.222, 1.659, 2.181",\
                 "0.1288, 0.1452, 0.193, 0.2754, 0.4088, 0.6032, 0.872, 1.224, 1.66, 2.181",\
                 "0.15, 0.1676, 0.2172, 0.3016, 0.4336, 0.6294, 0.8942, 1.235, 1.662, 2.181",\
                 "0.1722, 0.1916, 0.2436, 0.329, 0.4616, 0.658, 0.9256, 1.265, 1.681, 2.188",\
                 "0.197, 0.218, 0.2734, 0.3598, 0.492, 0.6888, 0.9594, 1.304, 1.72, 2.214");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002562, 0.008044, 0.01851, 0.03482, 0.05771, 0.08782, 0.1258, 0.1721, 0.2273");
          values("0.07586, 0.09586, 0.1708, 0.3217, 0.5603, 0.8966, 1.34, 1.898, 2.577, 3.388",\
                 "0.07576, 0.09618, 0.1711, 0.3212, 0.5603, 0.8973, 1.34, 1.898, 2.577, 3.387",\
                 "0.0759, 0.0963, 0.1713, 0.3211, 0.5601, 0.8965, 1.34, 1.895, 2.576, 3.386",\
                 "0.08072, 0.1003, 0.1731, 0.3217, 0.5614, 0.8973, 1.339, 1.895, 2.577, 3.387",\
                 "0.08964, 0.1087, 0.1792, 0.3241, 0.5613, 0.8957, 1.34, 1.895, 2.577, 3.388",\
                 "0.1011, 0.1196, 0.188, 0.3314, 0.5649, 0.8973, 1.34, 1.896, 2.575, 3.388",\
                 "0.114, 0.1329, 0.1998, 0.341, 0.5738, 0.9046, 1.341, 1.897, 2.576, 3.385",\
                 "0.1286, 0.1482, 0.2142, 0.352, 0.5858, 0.9184, 1.352, 1.9, 2.577, 3.386",\
                 "0.1444, 0.165, 0.2306, 0.365, 0.5984, 0.9338, 1.372, 1.918, 2.585, 3.389",\
                 "0.1624, 0.183, 0.2496, 0.3806, 0.6112, 0.9496, 1.393, 1.941, 2.605, 3.401");
        }
      }
    }
  }

