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

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

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

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

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

    pin(I) {
      capacitance : 0.02731 ;
      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 : 2.725 ;
      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.0198, 0.08579, 0.2118, 0.4081, 0.6836, 1.046, 1.503, 2.06, 2.725");
          values("2.334, 2.278, 2.183, 2.123, 2.09, 2.068, 2.056, 2.047, 2.041, 2.036",\
                 "2.334, 2.279, 2.181, 2.123, 2.09, 2.069, 2.057, 2.048, 2.041, 2.038",\
                 "2.444, 2.386, 2.28, 2.214, 2.177, 2.154, 2.142, 2.131, 2.124, 2.121",\
                 "2.85, 2.776, 2.627, 2.529, 2.473, 2.436, 2.412, 2.396, 2.386, 2.379",\
                 "3.581, 3.485, 3.285, 3.127, 3.024, 2.96, 2.918, 2.89, 2.868, 2.855",\
                 "4.633, 4.519, 4.26, 4.029, 3.866, 3.761, 3.689, 3.639, 3.605, 3.58",\
                 "6.006, 5.877, 5.569, 5.248, 5.02, 4.859, 4.747, 4.671, 4.615, 4.574",\
                 "7.71, 7.567, 7.212, 6.822, 6.514, 6.278, 6.124, 6.007, 5.924, 5.861",\
                 "9.761, 9.607, 9.215, 8.758, 8.36, 8.049, 7.827, 7.667, 7.55, 7.459",\
                 "12.18, 12.01, 11.58, 11.06, 10.59, 10.19, 9.897, 9.678, 9.515, 9.393");
        }

        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.0198, 0.08579, 0.2118, 0.4081, 0.6836, 1.046, 1.503, 2.06, 2.725");
          values("1.405, 1.363, 1.317, 1.299, 1.289, 1.294, 1.302, 1.316, 1.323, 1.359",\
                 "1.406, 1.365, 1.316, 1.296, 1.292, 1.297, 1.301, 1.313, 1.334, 1.348",\
                 "1.506, 1.46, 1.397, 1.37, 1.355, 1.352, 1.351, 1.372, 1.384, 1.408",\
                 "1.858, 1.798, 1.703, 1.634, 1.598, 1.571, 1.575, 1.57, 1.593, 1.601",\
                 "2.481, 2.398, 2.26, 2.148, 2.073, 2.023, 2.004, 1.995, 1.994, 1.997",\
                 "3.386, 3.288, 3.094, 2.928, 2.815, 2.731, 2.686, 2.65, 2.632, 2.635",\
                 "4.585, 4.469, 4.229, 3.996, 3.828, 3.715, 3.64, 3.579, 3.54, 3.509",\
                 "6.09, 5.954, 5.665, 5.391, 5.147, 4.968, 4.864, 4.79, 4.728, 4.686",\
                 "7.911, 7.76, 7.427, 7.085, 6.793, 6.553, 6.394, 6.284, 6.207, 6.127",\
                 "10.05, 9.901, 9.524, 9.133, 8.777, 8.482, 8.251, 8.079, 7.978, 7.904");
        }
      }

      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.0198, 0.08579, 0.2118, 0.4081, 0.6836, 1.046, 1.503, 2.06, 2.725");
          values("0.121, 0.1358, 0.1766, 0.2411, 0.3339, 0.4614, 0.6289, 0.8403, 1.098, 1.406",\
                 "0.1262, 0.1409, 0.1818, 0.2462, 0.3389, 0.4665, 0.634, 0.8452, 1.103, 1.411",\
                 "0.1504, 0.1649, 0.2054, 0.2697, 0.3623, 0.4897, 0.6572, 0.8686, 1.126, 1.434",\
                 "0.1977, 0.2126, 0.253, 0.3169, 0.409, 0.536, 0.7031, 0.9144, 1.172, 1.48",\
                 "0.2594, 0.2753, 0.3178, 0.383, 0.475, 0.601, 0.7676, 0.9781, 1.235, 1.543",\
                 "0.3322, 0.3493, 0.3949, 0.4632, 0.5568, 0.6834, 0.8488, 1.059, 1.316, 1.622",\
                 "0.4156, 0.4347, 0.4835, 0.5554, 0.6526, 0.7819, 0.9477, 1.157, 1.413, 1.719",\
                 "0.511, 0.5313, 0.584, 0.6596, 0.7606, 0.8933, 1.063, 1.274, 1.529, 1.835",\
                 "0.6182, 0.6401, 0.6966, 0.7763, 0.8812, 1.018, 1.192, 1.408, 1.666, 1.971",\
                 "0.7384, 0.7619, 0.8225, 0.9067, 1.016, 1.156, 1.334, 1.555, 1.819, 2.128");
        }

        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.0198, 0.08579, 0.2118, 0.4081, 0.6836, 1.046, 1.503, 2.06, 2.725");
          values("0.1146, 0.1292, 0.1744, 0.2581, 0.3891, 0.573, 0.8155, 1.121, 1.494, 1.938",\
                 "0.1179, 0.1325, 0.1777, 0.2614, 0.3923, 0.5762, 0.8188, 1.124, 1.496, 1.942",\
                 "0.1325, 0.1468, 0.1914, 0.2748, 0.4054, 0.5892, 0.8317, 1.137, 1.508, 1.953",\
                 "0.1524, 0.1674, 0.2115, 0.2933, 0.4228, 0.6057, 0.8474, 1.153, 1.525, 1.97",\
                 "0.1658, 0.1815, 0.2271, 0.3079, 0.4358, 0.6174, 0.8582, 1.163, 1.535, 1.979",\
                 "0.1697, 0.187, 0.2341, 0.3153, 0.4428, 0.6231, 0.8631, 1.166, 1.538, 1.981",\
                 "0.1626, 0.181, 0.2308, 0.3124, 0.4409, 0.6221, 0.8608, 1.163, 1.533, 1.975",\
                 "0.1434, 0.1632, 0.2163, 0.2996, 0.4276, 0.6104, 0.8507, 1.153, 1.522, 1.963",\
                 "0.1109, 0.1322, 0.1884, 0.2738, 0.403, 0.5866, 0.8291, 1.133, 1.503, 1.943",\
                 "0.0649, 0.0882, 0.1476, 0.2361, 0.3654, 0.5499, 0.7951, 1.102, 1.474, 1.916");
        }

        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.0198, 0.08579, 0.2118, 0.4081, 0.6836, 1.046, 1.503, 2.06, 2.725");
          values("0.0493, 0.0662, 0.1154, 0.2063, 0.3532, 0.5674, 0.8535, 1.216, 1.655, 2.182",\
                 "0.0494, 0.06614, 0.1155, 0.2065, 0.3533, 0.5676, 0.8532, 1.216, 1.655, 2.185",\
                 "0.04978, 0.06656, 0.1157, 0.2064, 0.3532, 0.5679, 0.8531, 1.216, 1.656, 2.184",\
                 "0.05604, 0.07238, 0.1196, 0.2088, 0.3544, 0.5676, 0.8538, 1.215, 1.656, 2.184",\
                 "0.06796, 0.08506, 0.1319, 0.2165, 0.3581, 0.569, 0.8539, 1.214, 1.656, 2.184",\
                 "0.08322, 0.1012, 0.1495, 0.233, 0.369, 0.573, 0.8552, 1.216, 1.656, 2.185",\
                 "0.1, 0.1202, 0.1696, 0.2522, 0.388, 0.5876, 0.8612, 1.217, 1.657, 2.182",\
                 "0.1192, 0.1402, 0.1912, 0.2748, 0.4104, 0.612, 0.8824, 1.228, 1.659, 2.182",\
                 "0.1382, 0.1624, 0.2166, 0.3018, 0.4362, 0.6386, 0.9118, 1.256, 1.677, 2.188",\
                 "0.159, 0.1844, 0.243, 0.3286, 0.4628, 0.6658, 0.9452, 1.293, 1.714, 2.213");
        }

        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.0198, 0.08579, 0.2118, 0.4081, 0.6836, 1.046, 1.503, 2.06, 2.725");
          values("0.05074, 0.07068, 0.1454, 0.2976, 0.5385, 0.8768, 1.324, 1.882, 2.568, 3.384",\
                 "0.0507, 0.07082, 0.1454, 0.2976, 0.5393, 0.877, 1.324, 1.882, 2.567, 3.383",\
                 "0.05088, 0.0711, 0.1456, 0.2976, 0.5381, 0.877, 1.322, 1.884, 2.567, 3.383",\
                 "0.05652, 0.07586, 0.1481, 0.2981, 0.5383, 0.8772, 1.321, 1.886, 2.57, 3.382",\
                 "0.06514, 0.08458, 0.1534, 0.3007, 0.5396, 0.877, 1.323, 1.883, 2.567, 3.383",\
                 "0.07576, 0.09558, 0.162, 0.3068, 0.5442, 0.8792, 1.323, 1.882, 2.567, 3.383",\
                 "0.08792, 0.1086, 0.1737, 0.3156, 0.5528, 0.8864, 1.326, 1.886, 2.572, 3.38",\
                 "0.1006, 0.123, 0.188, 0.3254, 0.564, 0.8996, 1.337, 1.89, 2.569, 3.389",\
                 "0.1144, 0.1382, 0.204, 0.3376, 0.5752, 0.9152, 1.357, 1.906, 2.578, 3.39",\
                 "0.1302, 0.1548, 0.2232, 0.3522, 0.5882, 0.9314, 1.378, 1.929, 2.6, 3.4");
        }
      }
    }
  }

