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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.9325 ;
      max_transition : 8.9 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.007429, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.08436, 0.08406, 0.08426, 0.08468, 0.08478, 0.0849, 0.085, 0.08503, 0.08507, 0.08511",\
                 "0.08352, 0.08327, 0.08343, 0.08379, 0.08397, 0.08412, 0.08419, 0.08423, 0.08424, 0.08427",\
                 "0.08298, 0.0826, 0.08279, 0.08313, 0.08344, 0.08363, 0.08369, 0.08376, 0.08381, 0.08384",\
                 "0.08685, 0.08604, 0.08546, 0.08546, 0.08565, 0.08585, 0.08596, 0.08603, 0.08606, 0.08608",\
                 "0.09534, 0.0938, 0.09207, 0.0915, 0.09139, 0.0913, 0.09139, 0.0914, 0.09144, 0.09144",\
                 "0.1079, 0.1057, 0.1028, 0.1014, 0.1008, 0.1006, 0.1006, 0.1004, 0.1004, 0.1005",\
                 "0.125, 0.1222, 0.118, 0.1156, 0.1145, 0.114, 0.1137, 0.1135, 0.1134, 0.1134",\
                 "0.1469, 0.1435, 0.138, 0.1346, 0.1327, 0.1318, 0.1312, 0.1309, 0.1307, 0.1306",\
                 "0.1742, 0.1703, 0.1633, 0.1587, 0.1559, 0.1543, 0.1535, 0.153, 0.1526, 0.1524",\
                 "0.2068, 0.2025, 0.1941, 0.1881, 0.1844, 0.1822, 0.1808, 0.1799, 0.1793, 0.179");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.007429, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.04753, 0.04796, 0.04934, 0.05076, 0.05185, 0.05257, 0.05331, 0.05415, 0.05558, 0.06188",\
                 "0.04702, 0.04752, 0.04892, 0.05038, 0.0513, 0.05227, 0.05288, 0.05376, 0.05519, 0.06069",\
                 "0.04721, 0.04736, 0.04826, 0.04963, 0.05072, 0.05177, 0.05246, 0.05336, 0.05487, 0.06103",\
                 "0.05022, 0.04991, 0.05011, 0.05082, 0.05203, 0.0529, 0.05379, 0.05494, 0.05626, 0.0631",\
                 "0.05657, 0.05577, 0.05485, 0.05541, 0.05609, 0.05682, 0.05763, 0.05871, 0.0607, 0.06771",\
                 "0.0668, 0.06575, 0.06402, 0.06329, 0.06429, 0.06512, 0.06581, 0.06663, 0.06751, 0.0764",\
                 "0.0815, 0.07981, 0.07736, 0.07596, 0.07569, 0.07668, 0.07757, 0.07812, 0.07896, 0.0901",\
                 "0.1006, 0.09841, 0.09518, 0.09269, 0.09143, 0.09127, 0.09282, 0.09396, 0.09516, 0.1083",\
                 "0.1244, 0.1216, 0.1173, 0.1142, 0.112, 0.1114, 0.1118, 0.1138, 0.1162, 0.1344",\
                 "0.1531, 0.1497, 0.1443, 0.14, 0.1379, 0.1359, 0.1354, 0.1363, 0.1414, 0.1682");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.007429, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.3082, 0.3421, 0.4317, 0.5627, 0.7414, 0.9806, 1.292, 1.684, 2.162, 2.732",\
                 "0.3248, 0.3587, 0.4484, 0.5795, 0.758, 0.9974, 1.309, 1.7, 2.179, 2.748",\
                 "0.3955, 0.4292, 0.5186, 0.6498, 0.8284, 1.068, 1.379, 1.771, 2.249, 2.819",\
                 "0.5314, 0.5661, 0.6574, 0.7895, 0.968, 1.208, 1.519, 1.911, 2.389, 2.959",\
                 "0.6949, 0.7331, 0.8314, 0.9703, 1.153, 1.393, 1.704, 2.096, 2.573, 3.144",\
                 "0.8843, 0.926, 1.032, 1.178, 1.365, 1.607, 1.92, 2.311, 2.788, 3.357",\
                 "1.105, 1.15, 1.263, 1.417, 1.61, 1.856, 2.169, 2.561, 3.038, 3.606",\
                 "1.357, 1.406, 1.528, 1.692, 1.892, 2.142, 2.458, 2.849, 3.328, 3.897",\
                 "1.642, 1.695, 1.827, 2.003, 2.212, 2.468, 2.788, 3.182, 3.662, 4.23",\
                 "1.962, 2.019, 2.16, 2.348, 2.569, 2.834, 3.16, 3.561, 4.042, 4.612");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.007429, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.2338, 0.2741, 0.4, 0.6305, 0.9864, 1.484, 2.136, 2.961, 3.963, 5.164",\
                 "0.25, 0.2902, 0.416, 0.6469, 1.003, 1.5, 2.151, 2.977, 3.981, 5.179",\
                 "0.3072, 0.3468, 0.4716, 0.7022, 1.057, 1.556, 2.208, 3.033, 4.039, 5.232",\
                 "0.3725, 0.4139, 0.5403, 0.7697, 1.125, 1.623, 2.275, 3.098, 4.104, 5.302",\
                 "0.4151, 0.459, 0.5874, 0.8164, 1.171, 1.667, 2.321, 3.142, 4.149, 5.348",\
                 "0.4329, 0.4805, 0.6132, 0.8413, 1.195, 1.692, 2.345, 3.168, 4.171, 5.368",\
                 "0.4239, 0.474, 0.6138, 0.844, 1.197, 1.692, 2.345, 3.166, 4.169, 5.367",\
                 "0.3834, 0.4374, 0.5848, 0.8197, 1.174, 1.67, 2.321, 3.143, 4.145, 5.341",\
                 "0.3105, 0.3676, 0.523, 0.7645, 1.122, 1.621, 2.273, 3.094, 4.096, 5.291",\
                 "0.2032, 0.2637, 0.4276, 0.6753, 1.039, 1.541, 2.198, 3.019, 4.021, 5.216");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.007429, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.1099, 0.1451, 0.245, 0.416, 0.6896, 1.09, 1.629, 2.312, 3.148, 4.143",\
                 "0.11, 0.145, 0.2452, 0.4164, 0.6896, 1.09, 1.629, 2.311, 3.144, 4.145",\
                 "0.1105, 0.1453, 0.2456, 0.4158, 0.6896, 1.089, 1.629, 2.312, 3.148, 4.144",\
                 "0.1221, 0.1559, 0.252, 0.42, 0.691, 1.091, 1.629, 2.312, 3.147, 4.144",\
                 "0.1468, 0.1814, 0.2776, 0.4402, 0.7026, 1.094, 1.629, 2.312, 3.147, 4.143",\
                 "0.1728, 0.2088, 0.3042, 0.4634, 0.7202, 1.107, 1.636, 2.314, 3.146, 4.144",\
                 "0.1996, 0.2374, 0.3354, 0.4914, 0.742, 1.119, 1.645, 2.317, 3.148, 4.143",\
                 "0.2296, 0.2692, 0.3718, 0.527, 0.77, 1.14, 1.655, 2.325, 3.152, 4.142",\
                 "0.2626, 0.305, 0.4128, 0.5692, 0.8062, 1.169, 1.68, 2.338, 3.16, 4.148",\
                 "0.2972, 0.3436, 0.458, 0.617, 0.8528, 1.209, 1.712, 2.369, 3.179, 4.164");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.007429, 0.03, 0.0731, 0.1402, 0.2345, 0.3584, 0.5146, 0.7053, 0.9325");
          values("0.1169, 0.1724, 0.3765, 0.7812, 1.415, 2.304, 3.474, 4.948, 6.749, 8.891",\
                 "0.1169, 0.1726, 0.3761, 0.7804, 1.417, 2.31, 3.473, 4.95, 6.747, 8.894",\
                 "0.118, 0.1733, 0.3766, 0.7804, 1.414, 2.308, 3.475, 4.948, 6.752, 8.895",\
                 "0.1316, 0.1857, 0.3818, 0.7808, 1.416, 2.304, 3.472, 4.948, 6.748, 8.898",\
                 "0.1476, 0.2014, 0.3902, 0.7862, 1.417, 2.309, 3.474, 4.947, 6.749, 8.891",\
                 "0.1654, 0.22, 0.4028, 0.7898, 1.42, 2.306, 3.479, 4.957, 6.747, 8.888",\
                 "0.1864, 0.243, 0.4216, 0.7984, 1.423, 2.31, 3.476, 4.951, 6.762, 8.907",\
                 "0.2088, 0.2676, 0.4474, 0.8152, 1.433, 2.317, 3.479, 4.948, 6.748, 8.889",\
                 "0.2326, 0.2932, 0.4758, 0.8364, 1.451, 2.327, 3.489, 4.952, 6.75, 8.894",\
                 "0.2592, 0.321, 0.5074, 0.8598, 1.474, 2.354, 3.502, 4.962, 6.752, 8.89");
        }
      }
    }
  }

