/*
 * 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 : "1.348146e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "1.315026e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "1.348146e-05" ;
    }

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.2066 ;
      max_transition : 12 ;
      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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002419, 0.007402, 0.01692, 0.03174, 0.05254, 0.07991, 0.1144, 0.1565, 0.2066");
          values("0.01954, 0.01964, 0.01987, 0.02005, 0.02018, 0.02025, 0.02028, 0.02031, 0.02033, 0.02034",\
                 "0.01942, 0.01951, 0.01975, 0.01993, 0.02006, 0.02012, 0.02016, 0.02019, 0.0202, 0.02022",\
                 "0.01917, 0.01927, 0.01949, 0.01969, 0.01981, 0.01989, 0.01993, 0.01996, 0.01998, 0.01999",\
                 "0.01902, 0.01909, 0.0193, 0.0195, 0.01965, 0.01974, 0.0198, 0.01983, 0.01986, 0.01987",\
                 "0.01899, 0.01905, 0.01923, 0.01944, 0.01961, 0.01972, 0.01979, 0.01984, 0.01987, 0.01989",\
                 "0.01915, 0.0192, 0.01934, 0.01953, 0.0197, 0.01983, 0.01992, 0.01998, 0.02001, 0.02005",\
                 "0.01945, 0.01948, 0.0196, 0.01977, 0.01994, 0.02006, 0.02016, 0.02023, 0.02028, 0.02032",\
                 "0.01991, 0.01993, 0.02002, 0.02017, 0.02033, 0.02046, 0.02056, 0.02063, 0.02068, 0.02072",\
                 "0.02055, 0.02054, 0.02059, 0.02072, 0.02087, 0.021, 0.0211, 0.02118, 0.02124, 0.02128",\
                 "0.02134, 0.02133, 0.02136, 0.02146, 0.02159, 0.02171, 0.02181, 0.02189, 0.02196, 0.022");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002419, 0.007402, 0.01692, 0.03174, 0.05254, 0.07991, 0.1144, 0.1565, 0.2066");
          values("0.01212, 0.01222, 0.01247, 0.01271, 0.01285, 0.01291, 0.01298, 0.01303, 0.01337, 0.01691",\
                 "0.01206, 0.01218, 0.01246, 0.01269, 0.01284, 0.01289, 0.01298, 0.01303, 0.01333, 0.01697",\
                 "0.0119, 0.01199, 0.01222, 0.01247, 0.01265, 0.01273, 0.01282, 0.01287, 0.01319, 0.01717",\
                 "0.0117, 0.01176, 0.01195, 0.01219, 0.01241, 0.01253, 0.0126, 0.0127, 0.01318, 0.01789",\
                 "0.01164, 0.01169, 0.01186, 0.012, 0.01222, 0.01241, 0.01249, 0.01263, 0.01323, 0.01886",\
                 "0.01171, 0.01176, 0.01187, 0.01208, 0.01216, 0.01232, 0.01246, 0.01261, 0.01342, 0.02054",\
                 "0.01193, 0.01195, 0.01206, 0.01228, 0.01235, 0.01246, 0.01253, 0.01267, 0.0139, 0.02343",\
                 "0.01231, 0.01233, 0.01241, 0.01254, 0.01274, 0.01286, 0.01283, 0.01288, 0.01467, 0.02796",\
                 "0.01285, 0.01286, 0.0129, 0.01302, 0.01321, 0.01332, 0.01341, 0.01346, 0.01632, 0.03608",\
                 "0.01354, 0.01355, 0.01358, 0.01365, 0.01382, 0.01399, 0.01406, 0.01453, 0.02005, 0.04961");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002419, 0.007402, 0.01692, 0.03174, 0.05254, 0.07991, 0.1144, 0.1565, 0.2066");
          values("0.6896, 0.7294, 0.8423, 1.011, 1.238, 1.535, 1.916, 2.394, 2.977, 3.673",\
                 "0.7203, 0.7602, 0.8732, 1.042, 1.269, 1.565, 1.947, 2.425, 3.008, 3.704",\
                 "0.838, 0.8781, 0.9907, 1.16, 1.386, 1.683, 2.065, 2.543, 3.126, 3.821",\
                 "1.076, 1.116, 1.229, 1.398, 1.626, 1.922, 2.304, 2.782, 3.365, 4.061",\
                 "1.436, 1.477, 1.593, 1.765, 1.993, 2.29, 2.672, 3.15, 3.733, 4.428",\
                 "1.852, 1.899, 2.026, 2.208, 2.443, 2.743, 3.125, 3.604, 4.187, 4.882",\
                 "2.302, 2.356, 2.499, 2.693, 2.938, 3.243, 3.629, 4.107, 4.69, 5.385",\
                 "2.79, 2.85, 3.008, 3.218, 3.474, 3.786, 4.173, 4.654, 5.237, 5.931",\
                 "3.321, 3.387, 3.561, 3.788, 4.054, 4.374, 4.764, 5.245, 5.829, 6.523",\
                 "3.899, 3.972, 4.16, 4.406, 4.686, 5.012, 5.407, 5.889, 6.472, 7.167");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002419, 0.007402, 0.01692, 0.03174, 0.05254, 0.07991, 0.1144, 0.1565, 0.2066");
          values("0.448, 0.5, 0.6734, 0.9964, 1.494, 2.19, 3.103, 4.257, 5.662, 7.334",\
                 "0.4755, 0.5276, 0.7015, 1.025, 1.522, 2.218, 3.133, 4.284, 5.69, 7.363",\
                 "0.5718, 0.6235, 0.7966, 1.12, 1.618, 2.315, 3.229, 4.38, 5.787, 7.46",\
                 "0.7234, 0.7757, 0.9489, 1.272, 1.771, 2.468, 3.383, 4.534, 5.941, 7.617",\
                 "0.8593, 0.9141, 1.09, 1.413, 1.911, 2.609, 3.523, 4.677, 6.084, 7.759",\
                 "0.9632, 1.021, 1.2, 1.524, 2.023, 2.72, 3.635, 4.788, 6.195, 7.87",\
                 "1.028, 1.089, 1.275, 1.599, 2.096, 2.794, 3.71, 4.862, 6.267, 7.942",\
                 "1.049, 1.115, 1.307, 1.633, 2.131, 2.828, 3.744, 4.896, 6.301, 7.976",\
                 "1.021, 1.093, 1.295, 1.625, 2.121, 2.817, 3.733, 4.884, 6.289, 7.964",\
                 "0.9425, 1.021, 1.234, 1.568, 2.066, 2.761, 3.675, 4.827, 6.232, 7.907");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002419, 0.007402, 0.01692, 0.03174, 0.05254, 0.07991, 0.1144, 0.1565, 0.2066");
          values("0.232, 0.2682, 0.3827, 0.5858, 0.9038, 1.37, 2.003, 2.814, 3.81, 4.997",\
                 "0.2319, 0.2681, 0.3823, 0.5855, 0.9042, 1.37, 2.003, 2.815, 3.81, 4.996",\
                 "0.2322, 0.2684, 0.3832, 0.5854, 0.904, 1.37, 2.003, 2.814, 3.81, 4.998",\
                 "0.2328, 0.2688, 0.3836, 0.5858, 0.904, 1.37, 2.002, 2.815, 3.81, 4.996",\
                 "0.2502, 0.2844, 0.3946, 0.5926, 0.9076, 1.372, 2.003, 2.813, 3.809, 4.999",\
                 "0.2994, 0.3328, 0.437, 0.6264, 0.9298, 1.381, 2.008, 2.815, 3.808, 4.998",\
                 "0.3506, 0.3864, 0.4882, 0.6718, 0.9664, 1.407, 2.021, 2.821, 3.811, 4.995",\
                 "0.403, 0.4408, 0.5478, 0.723, 1.008, 1.435, 2.039, 2.833, 3.817, 4.999",\
                 "0.452, 0.4948, 0.6074, 0.779, 1.051, 1.468, 2.058, 2.846, 3.828, 5.008",\
                 "0.498, 0.548, 0.668, 0.84, 1.1, 1.5, 2.082, 2.854, 3.832, 5.014");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002419, 0.007402, 0.01692, 0.03174, 0.05254, 0.07991, 0.1144, 0.1565, 0.2066");
          values("0.2606, 0.3371, 0.6145, 1.157, 2.005, 3.196, 4.764, 6.736, 9.144, 12.03",\
                 "0.261, 0.3371, 0.6151, 1.157, 2.006, 3.196, 4.762, 6.738, 9.144, 12.02",\
                 "0.261, 0.3373, 0.6151, 1.158, 2.006, 3.196, 4.764, 6.738, 9.145, 12.02",\
                 "0.2716, 0.344, 0.6168, 1.157, 2.005, 3.196, 4.763, 6.738, 9.146, 12.01",\
                 "0.2926, 0.3618, 0.6262, 1.161, 2.005, 3.196, 4.763, 6.736, 9.145, 12.01",\
                 "0.319, 0.3858, 0.637, 1.165, 2.009, 3.195, 4.761, 6.737, 9.146, 12.02",\
                 "0.3518, 0.414, 0.6542, 1.171, 2.012, 3.199, 4.759, 6.732, 9.142, 12.01",\
                 "0.3894, 0.4484, 0.6754, 1.178, 2.016, 3.202, 4.764, 6.729, 9.138, 12.01",\
                 "0.4314, 0.4888, 0.7026, 1.188, 2.019, 3.205, 4.766, 6.734, 9.133, 12",\
                 "0.4748, 0.5334, 0.7358, 1.203, 2.023, 3.207, 4.768, 6.74, 9.138, 12");
        }
      }
    }
  }

