/*
 * 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_mcu9t5v0__buf_4) {
    area : 39.513600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.813 ;
      max_transition : 4.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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4552, 0.6964, 1, 1.371, 1.813");
          values("0.4141, 0.4053, 0.3995, 0.3984, 0.3978, 0.3975, 0.3975, 0.3974, 0.3975, 0.3974",\
                 "0.4116, 0.4028, 0.3966, 0.3965, 0.3954, 0.3952, 0.395, 0.3951, 0.3952, 0.3951",\
                 "0.4286, 0.418, 0.4103, 0.4083, 0.4077, 0.4073, 0.4073, 0.4073, 0.4073, 0.4072",\
                 "0.4938, 0.4776, 0.4616, 0.4551, 0.4519, 0.451, 0.4496, 0.4492, 0.4492, 0.449",\
                 "0.6027, 0.5816, 0.5548, 0.541, 0.534, 0.53, 0.528, 0.5272, 0.5263, 0.5259",\
                 "0.7606, 0.735, 0.6947, 0.6724, 0.6598, 0.6522, 0.6475, 0.645, 0.6435, 0.6426",\
                 "0.968, 0.938, 0.8849, 0.8509, 0.8313, 0.8193, 0.8119, 0.8071, 0.8045, 0.8029",\
                 "1.227, 1.193, 1.128, 1.082, 1.053, 1.035, 1.025, 1.017, 1.012, 1.009",\
                 "1.539, 1.502, 1.425, 1.366, 1.329, 1.304, 1.287, 1.276, 1.269, 1.264",\
                 "1.906, 1.868, 1.78, 1.707, 1.66, 1.626, 1.603, 1.589, 1.578, 1.572");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4552, 0.6964, 1, 1.371, 1.813");
          values("0.2274, 0.2262, 0.2301, 0.2358, 0.2401, 0.2419, 0.2501, 0.2539, 0.2577, 0.2683",\
                 "0.2265, 0.2247, 0.2285, 0.2341, 0.2383, 0.2419, 0.249, 0.2539, 0.2581, 0.2672",\
                 "0.2441, 0.2405, 0.2384, 0.2412, 0.2452, 0.2498, 0.2544, 0.2614, 0.2646, 0.2719",\
                 "0.296, 0.2878, 0.2792, 0.2751, 0.2776, 0.2812, 0.285, 0.2917, 0.2959, 0.3104",\
                 "0.3878, 0.3759, 0.3569, 0.3517, 0.3485, 0.3467, 0.3512, 0.3554, 0.361, 0.3705",\
                 "0.5233, 0.5063, 0.4795, 0.4618, 0.4572, 0.4543, 0.452, 0.4569, 0.4593, 0.4634",\
                 "0.7028, 0.6787, 0.6455, 0.6182, 0.6044, 0.6008, 0.6022, 0.6016, 0.6022, 0.6052",\
                 "0.9291, 0.898, 0.8568, 0.8217, 0.7996, 0.7909, 0.7908, 0.7899, 0.7876, 0.7878",\
                 "1.203, 1.166, 1.116, 1.074, 1.043, 1.024, 1.019, 1.022, 1.021, 1.017",\
                 "1.529, 1.487, 1.425, 1.376, 1.336, 1.311, 1.293, 1.29, 1.3, 1.295");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4552, 0.6964, 1, 1.371, 1.813");
          values("0.1144, 0.1319, 0.1773, 0.2472, 0.3491, 0.4909, 0.6774, 0.9123, 1.199, 1.541",\
                 "0.1215, 0.139, 0.1845, 0.2543, 0.3563, 0.498, 0.6845, 0.9194, 1.206, 1.548",\
                 "0.1544, 0.1717, 0.2168, 0.2866, 0.3885, 0.5303, 0.7167, 0.9516, 1.238, 1.581",\
                 "0.2115, 0.2299, 0.2765, 0.3468, 0.4486, 0.5901, 0.7764, 1.011, 1.298, 1.64",\
                 "0.2853, 0.3052, 0.354, 0.4262, 0.5283, 0.6695, 0.8555, 1.09, 1.377, 1.718",\
                 "0.3744, 0.3966, 0.4492, 0.524, 0.627, 0.7682, 0.9541, 1.188, 1.475, 1.816",\
                 "0.4789, 0.5033, 0.5604, 0.6398, 0.7458, 0.8877, 1.073, 1.308, 1.594, 1.935",\
                 "0.5995, 0.626, 0.6879, 0.7719, 0.8817, 1.027, 1.214, 1.449, 1.735, 2.076",\
                 "0.7368, 0.7654, 0.8324, 0.9214, 1.035, 1.186, 1.377, 1.614, 1.9, 2.241",\
                 "0.8917, 0.9225, 0.9945, 1.089, 1.208, 1.361, 1.558, 1.8, 2.09, 2.431");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4552, 0.6964, 1, 1.371, 1.813");
          values("0.09291, 0.1124, 0.175, 0.2925, 0.475, 0.7293, 1.065, 1.486, 2.001, 2.618",\
                 "0.09924, 0.1186, 0.1811, 0.2986, 0.4809, 0.7363, 1.071, 1.494, 2.01, 2.623",\
                 "0.1208, 0.1401, 0.2016, 0.3186, 0.5009, 0.7556, 1.092, 1.514, 2.028, 2.645",\
                 "0.1406, 0.1605, 0.2215, 0.3373, 0.5185, 0.774, 1.109, 1.53, 2.045, 2.663",\
                 "0.1513, 0.1724, 0.2336, 0.3485, 0.5288, 0.7827, 1.118, 1.54, 2.056, 2.671",\
                 "0.1501, 0.1725, 0.2352, 0.3496, 0.5291, 0.7827, 1.117, 1.538, 2.054, 2.667",\
                 "0.1346, 0.1585, 0.2238, 0.3383, 0.5184, 0.7711, 1.105, 1.526, 2.041, 2.655",\
                 "0.1034, 0.1294, 0.1973, 0.3127, 0.4945, 0.7486, 1.082, 1.502, 2.016, 2.63",\
                 "0.056, 0.0841, 0.1546, 0.2712, 0.454, 0.7105, 1.046, 1.467, 1.98, 2.592",\
                 "-0.0096, 0.0206, 0.0945, 0.2126, 0.3959, 0.6561, 0.9938, 1.417, 1.931, 2.543");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4552, 0.6964, 1, 1.371, 1.813");
          values("0.03828, 0.05656, 0.109, 0.2069, 0.3695, 0.6024, 0.9113, 1.301, 1.78, 2.348",\
                 "0.03836, 0.05658, 0.1091, 0.2068, 0.3696, 0.6026, 0.9114, 1.303, 1.779, 2.348",\
                 "0.0391, 0.05712, 0.1096, 0.2077, 0.3695, 0.6029, 0.9119, 1.302, 1.78, 2.349",\
                 "0.04634, 0.064, 0.1149, 0.2099, 0.3701, 0.6037, 0.9118, 1.302, 1.781, 2.349",\
                 "0.05612, 0.07414, 0.1235, 0.2153, 0.3723, 0.604, 0.9128, 1.302, 1.776, 2.344",\
                 "0.068, 0.0878, 0.1374, 0.2246, 0.3762, 0.6058, 0.913, 1.302, 1.777, 2.343",\
                 "0.0812, 0.1028, 0.1532, 0.2408, 0.3878, 0.6106, 0.9148, 1.302, 1.777, 2.342",\
                 "0.0948, 0.119, 0.172, 0.2586, 0.4056, 0.6256, 0.9224, 1.304, 1.776, 2.342",\
                 "0.1096, 0.1354, 0.1922, 0.2784, 0.4242, 0.6472, 0.943, 1.317, 1.782, 2.343",\
                 "0.125, 0.153, 0.214, 0.301, 0.446, 0.669, 0.9706, 1.344, 1.799, 2.351");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4552, 0.6964, 1, 1.371, 1.813");
          values("0.0375, 0.06552, 0.1682, 0.3704, 0.6861, 1.127, 1.711, 2.447, 3.344, 4.408",\
                 "0.03758, 0.06562, 0.1681, 0.3704, 0.6861, 1.128, 1.713, 2.445, 3.341, 4.414",\
                 "0.03918, 0.06682, 0.1682, 0.3705, 0.6858, 1.128, 1.71, 2.444, 3.343, 4.408",\
                 "0.04408, 0.07106, 0.1701, 0.3702, 0.6854, 1.128, 1.714, 2.446, 3.344, 4.409",\
                 "0.05122, 0.07756, 0.1726, 0.3717, 0.6856, 1.126, 1.708, 2.442, 3.343, 4.404",\
                 "0.06006, 0.0854, 0.1786, 0.3744, 0.6866, 1.127, 1.708, 2.441, 3.337, 4.408",\
                 "0.07, 0.0968, 0.1862, 0.3808, 0.6924, 1.13, 1.708, 2.443, 3.335, 4.4",\
                 "0.0806, 0.1074, 0.1954, 0.3882, 0.7022, 1.137, 1.711, 2.44, 3.34, 4.4",\
                 "0.0914, 0.118, 0.2058, 0.3962, 0.7128, 1.15, 1.721, 2.445, 3.335, 4.398",\
                 "0.1042, 0.1316, 0.218, 0.4048, 0.723, 1.167, 1.74, 2.457, 3.34, 4.4");
        }
      }
    }
  }

