/*
 * 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_2) {
    area : 17.561600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3866 ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003662, 0.013, 0.03085, 0.05864, 0.09764, 0.149, 0.2136, 0.2925, 0.3866");
          values("0.02853, 0.02874, 0.02916, 0.0295, 0.02968, 0.02979, 0.02985, 0.02988, 0.02991, 0.02992",\
                 "0.02834, 0.02855, 0.02899, 0.02933, 0.02952, 0.02963, 0.02969, 0.02972, 0.02973, 0.02974",\
                 "0.02797, 0.02818, 0.0286, 0.02895, 0.02915, 0.02926, 0.02932, 0.02935, 0.02938, 0.02938",\
                 "0.02765, 0.02783, 0.02821, 0.02857, 0.02881, 0.02894, 0.02902, 0.02907, 0.0291, 0.02911",\
                 "0.02742, 0.02755, 0.02789, 0.02827, 0.02854, 0.02871, 0.02883, 0.02889, 0.02893, 0.02892",\
                 "0.02728, 0.02741, 0.02771, 0.02806, 0.02836, 0.02857, 0.02869, 0.02879, 0.02883, 0.02877",\
                 "0.02726, 0.02736, 0.02763, 0.02795, 0.02826, 0.02849, 0.02864, 0.02875, 0.02875, 0.02849",\
                 "0.02732, 0.02741, 0.02763, 0.02794, 0.02823, 0.02846, 0.02864, 0.02867, 0.02832, 0.02743",\
                 "0.02722, 0.02728, 0.02747, 0.02775, 0.02802, 0.02822, 0.02797, 0.02694, 0.0259, 0.02514",\
                 "0.02194, 0.02194, 0.02121, 0.01999, 0.01937, 0.01909, 0.01898, 0.01896, 0.01893, 0.01894");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003662, 0.013, 0.03085, 0.05864, 0.09764, 0.149, 0.2136, 0.2925, 0.3866");
          values("0.01574, 0.01598, 0.01647, 0.01691, 0.01716, 0.01745, 0.01808, 0.02667, 0.0765, 0.1889",\
                 "0.01566, 0.0159, 0.01641, 0.01686, 0.01713, 0.01735, 0.01811, 0.02692, 0.0778, 0.1911",\
                 "0.01542, 0.01561, 0.01606, 0.01652, 0.01682, 0.01706, 0.01796, 0.02849, 0.08409, 0.199",\
                 "0.01504, 0.01519, 0.01556, 0.01606, 0.01642, 0.01674, 0.01779, 0.03195, 0.09608, 0.2135",\
                 "0.01476, 0.01489, 0.01523, 0.01561, 0.01601, 0.01633, 0.01868, 0.03845, 0.1153, 0.2318",\
                 "0.01462, 0.01473, 0.01497, 0.01535, 0.0158, 0.01613, 0.01993, 0.05154, 0.1419, 0.2506",\
                 "0.01455, 0.01463, 0.01488, 0.01512, 0.01554, 0.01628, 0.02492, 0.0764, 0.1737, 0.2637",\
                 "0.01457, 0.01466, 0.01486, 0.0152, 0.01537, 0.01743, 0.04107, 0.1151, 0.1992, 0.2619",\
                 "0.01476, 0.01482, 0.01501, 0.01522, 0.01586, 0.02695, 0.08055, 0.1491, 0.199, 0.2337",\
                 "0.01525, 0.01532, 0.01549, 0.01586, 0.02556, 0.06837, 0.1088, 0.135, 0.1523, 0.1641");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003662, 0.013, 0.03085, 0.05864, 0.09764, 0.149, 0.2136, 0.2925, 0.3866");
          values("1.34, 1.425, 1.652, 1.984, 2.427, 3.007, 3.754, 4.689, 5.829, 7.189",\
                 "1.412, 1.498, 1.725, 2.057, 2.499, 3.079, 3.826, 4.762, 5.902, 7.262",\
                 "1.684, 1.769, 1.997, 2.329, 2.771, 3.352, 4.098, 5.033, 6.174, 7.533",\
                 "2.226, 2.311, 2.538, 2.871, 3.313, 3.894, 4.641, 5.576, 6.716, 8.076",\
                 "3.057, 3.144, 3.376, 3.711, 4.156, 4.737, 5.484, 6.419, 7.56, 8.919",\
                 "4.058, 4.159, 4.412, 4.764, 5.222, 5.807, 6.553, 7.489, 8.629, 9.988",\
                 "5.161, 5.276, 5.56, 5.938, 6.412, 7.007, 7.761, 8.693, 9.835, 11.19",\
                 "6.358, 6.49, 6.809, 7.218, 7.709, 8.316, 9.074, 10.01, 11.16, 12.51",\
                 "7.648, 7.797, 8.154, 8.599, 9.111, 9.733, 10.5, 11.44, 12.58, 13.94",\
                 "9.028, 9.197, 9.595, 10.08, 10.62, 11.26, 12.03, 12.97, 14.12, 15.47");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003662, 0.013, 0.03085, 0.05864, 0.09764, 0.149, 0.2136, 0.2925, 0.3866");
          values("0.8598, 0.9746, 1.348, 2.036, 3.097, 4.579, 6.52, 8.964, 11.95, 15.51",\
                 "0.9304, 1.045, 1.42, 2.108, 3.168, 4.645, 6.588, 9.034, 12.04, 15.58",\
                 "1.178, 1.292, 1.665, 2.353, 3.414, 4.897, 6.836, 9.287, 12.27, 15.83",\
                 "1.617, 1.731, 2.102, 2.791, 3.852, 5.333, 7.278, 9.726, 12.72, 16.27",\
                 "2.115, 2.235, 2.612, 3.301, 4.361, 5.844, 7.794, 10.24, 13.23, 16.79",\
                 "2.628, 2.756, 3.14, 3.83, 4.892, 6.372, 8.32, 10.77, 13.76, 17.32",\
                 "3.139, 3.277, 3.674, 4.365, 5.426, 6.908, 8.857, 11.31, 14.3, 17.85",\
                 "3.638, 3.79, 4.203, 4.897, 5.957, 7.439, 9.388, 11.84, 14.83, 18.39",\
                 "4.11, 4.276, 4.714, 5.413, 6.473, 7.952, 9.9, 12.35, 15.34, 18.9",\
                 "4.543, 4.729, 5.196, 5.905, 6.962, 8.443, 10.39, 12.84, 15.83, 19.39");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003662, 0.013, 0.03085, 0.05864, 0.09764, 0.149, 0.2136, 0.2925, 0.3866");
          values("0.3712, 0.4472, 0.6802, 1.087, 1.717, 2.635, 3.885, 5.476, 7.427, 9.77",\
                 "0.3712, 0.4474, 0.6786, 1.086, 1.717, 2.636, 3.886, 5.478, 7.426, 9.77",\
                 "0.3712, 0.448, 0.6788, 1.087, 1.718, 2.635, 3.886, 5.473, 7.42, 9.77",\
                 "0.3724, 0.4488, 0.6816, 1.088, 1.717, 2.637, 3.886, 5.474, 7.42, 9.77",\
                 "0.3948, 0.4672, 0.6942, 1.094, 1.722, 2.64, 3.879, 5.479, 7.435, 9.754",\
                 "0.4774, 0.547, 0.7622, 1.147, 1.754, 2.654, 3.89, 5.477, 7.424, 9.758",\
                 "0.572, 0.646, 0.854, 1.226, 1.818, 2.696, 3.91, 5.486, 7.432, 9.744",\
                 "0.678, 0.756, 0.964, 1.318, 1.896, 2.752, 3.946, 5.51, 7.438, 9.758",\
                 "0.788, 0.872, 1.088, 1.428, 1.978, 2.808, 3.988, 5.53, 7.462, 9.774",\
                 "0.906, 0.998, 1.226, 1.56, 2.082, 2.884, 4.03, 5.558, 7.476, 9.786");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003662, 0.013, 0.03085, 0.05864, 0.09764, 0.149, 0.2136, 0.2925, 0.3866");
          values("0.4126, 0.5734, 1.154, 2.289, 4.064, 6.556, 9.85, 13.96, 18.99, 24.97",\
                 "0.4124, 0.574, 1.155, 2.287, 4.064, 6.555, 9.842, 13.96, 19, 24.98",\
                 "0.4128, 0.573, 1.155, 2.288, 4.064, 6.556, 9.836, 13.96, 18.99, 24.99",\
                 "0.4264, 0.58, 1.155, 2.289, 4.061, 6.558, 9.836, 13.97, 18.99, 25.02",\
                 "0.4654, 0.6132, 1.17, 2.292, 4.064, 6.552, 9.86, 13.96, 19.02, 24.98",\
                 "0.5182, 0.6568, 1.191, 2.307, 4.07, 6.555, 9.838, 13.96, 19, 24.99",\
                 "0.5818, 0.7154, 1.221, 2.318, 4.082, 6.56, 9.838, 13.96, 18.99, 25.05",\
                 "0.662, 0.784, 1.262, 2.328, 4.09, 6.578, 9.84, 13.96, 19.02, 25.02",\
                 "0.754, 0.876, 1.318, 2.35, 4.1, 6.584, 9.844, 13.96, 19.01, 25.01",\
                 "0.852, 0.974, 1.39, 2.378, 4.104, 6.596, 9.864, 13.97, 19, 25.01");
        }
      }
    }
  }

