/*
 * 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__dlyb_4) {
    area : 48.294400 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "2.416716e-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.002505 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 21 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.6564 ;
      max_transition : 21 ;
      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.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.005524, 0.0214, 0.05173, 0.09897, 0.1653, 0.2525, 0.3624, 0.4965, 0.6564");
          values("0.01542, 0.01554, 0.01583, 0.01619, 0.01653, 0.01681, 0.01691, 0.0166, 0.01547, 0.01403",\
                 "0.0153, 0.01542, 0.01571, 0.01607, 0.0164, 0.01667, 0.01676, 0.01641, 0.01521, 0.01379",\
                 "0.01489, 0.01501, 0.01531, 0.01566, 0.01599, 0.01623, 0.01626, 0.0157, 0.01433, 0.01299",\
                 "0.01411, 0.01424, 0.01451, 0.01486, 0.01516, 0.01534, 0.01516, 0.01406, 0.01262, 0.0115",\
                 "0.01248, 0.0126, 0.01287, 0.01319, 0.01344, 0.01337, 0.01221, 0.01083, 0.009771, 0.008989",\
                 "0.009088, 0.009196, 0.009457, 0.009703, 0.008806, 0.007372, 0.006365, 0.005692, 0.005239, 0.004928",\
                 "0.002172, 0.001516, 0.0001454, -0.0009368, -0.001468, -0.001614, -0.001577, -0.001465, -0.00135, -0.001245",\
                 "-0.01147, -0.0113, -0.01093, -0.01052, -0.0101, -0.009678, -0.009291, -0.008967, -0.008708, -0.008509",\
                 "-0.01803, -0.018, -0.01789, -0.01772, -0.01749, -0.01723, -0.017, -0.0168, -0.01665, -0.01654",\
                 "-0.03041, -0.03041, -0.03042, -0.03042, -0.03042, -0.03043, -0.03043, -0.03043, -0.03043, -0.03043");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.005524, 0.0214, 0.05173, 0.09897, 0.1653, 0.2525, 0.3624, 0.4965, 0.6564");
          values("-0.01262, -0.01246, -0.01213, -0.01176, -0.01125, -0.01071, -0.00883, 0.02501, 0.1842, 0.3815",\
                 "-0.0126, -0.01248, -0.01216, -0.01184, -0.01139, -0.01071, -0.009055, 0.02753, 0.189, 0.384",\
                 "-0.01269, -0.01254, -0.01221, -0.01186, -0.01133, -0.01078, -0.00822, 0.03569, 0.205, 0.3916",\
                 "-0.01281, -0.01267, -0.01234, -0.01191, -0.0116, -0.01103, -0.007085, 0.05542, 0.2335, 0.4026",\
                 "-0.01291, -0.01275, -0.01245, -0.01196, -0.01162, -0.01108, -0.0022, 0.09074, 0.2677, 0.4109",\
                 "-0.01299, -0.01286, -0.01251, -0.01214, -0.01173, -0.01074, 0.01443, 0.1471, 0.2968, 0.4076",\
                 "-0.01306, -0.01291, -0.0126, -0.01223, -0.01172, -0.007102, 0.06373, 0.201, 0.3056, 0.3801",\
                 "-0.01313, -0.01301, -0.01266, -0.01235, -0.01097, 0.02791, 0.1345, 0.216, 0.272, 0.3111",\
                 "-0.01324, -0.01307, -0.01276, -0.01118, 0.03029, 0.08785, 0.1254, 0.1497, 0.1659, 0.177",\
                 "-0.02938, -0.02875, -0.02764, -0.02699, -0.02674, -0.02655, -0.02654, -0.0265, -0.02647, -0.02647");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.005524, 0.0214, 0.05173, 0.09897, 0.1653, 0.2525, 0.3624, 0.4965, 0.6564");
          values("14.96, 15.23, 15.88, 16.67, 17.53, 18.43, 19.39, 20.4, 21.5, 22.7",\
                 "15.03, 15.3, 15.95, 16.74, 17.59, 18.5, 19.45, 20.48, 21.57, 22.77",\
                 "15.28, 15.56, 16.2, 17, 17.85, 18.75, 19.71, 20.73, 21.83, 23.02",\
                 "15.8, 16.07, 16.72, 17.51, 18.37, 19.27, 20.22, 21.25, 22.34, 23.54",\
                 "16.62, 16.89, 17.54, 18.34, 19.19, 20.09, 21.05, 22.07, 23.17, 24.37",\
                 "17.78, 18.06, 18.7, 19.5, 20.35, 21.26, 22.21, 23.23, 24.33, 25.53",\
                 "19.3, 19.57, 20.22, 21.01, 21.87, 22.77, 23.73, 24.75, 25.84, 27.04",\
                 "21.13, 21.4, 22.05, 22.84, 23.7, 24.6, 25.56, 26.57, 27.68, 28.87",\
                 "23.21, 23.48, 24.13, 24.92, 25.78, 26.68, 27.64, 28.66, 29.76, 30.96",\
                 "25.51, 25.78, 26.43, 27.22, 28.08, 28.98, 29.94, 30.96, 32.05, 33.25");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.005524, 0.0214, 0.05173, 0.09897, 0.1653, 0.2525, 0.3624, 0.4965, 0.6564");
          values("8.718, 8.877, 9.313, 9.979, 10.91, 12.17, 13.8, 15.86, 18.36, 21.35",\
                 "8.782, 8.942, 9.377, 10.04, 10.97, 12.23, 13.87, 15.92, 18.43, 21.41",\
                 "8.982, 9.142, 9.578, 10.24, 11.17, 12.43, 14.07, 16.12, 18.63, 21.61",\
                 "9.354, 9.515, 9.95, 10.62, 11.55, 12.8, 14.44, 16.49, 19, 21.98",\
                 "9.826, 9.985, 10.42, 11.09, 12.02, 13.27, 14.91, 16.97, 19.47, 22.45",\
                 "10.34, 10.5, 10.94, 11.6, 12.53, 13.79, 15.43, 17.48, 19.99, 22.97",\
                 "10.89, 11.05, 11.49, 12.15, 13.08, 14.34, 15.98, 18.03, 20.54, 23.52",\
                 "11.47, 11.62, 12.06, 12.73, 13.66, 14.91, 16.55, 18.61, 21.11, 24.1",\
                 "12.06, 12.22, 12.66, 13.32, 14.25, 15.51, 17.15, 19.2, 21.7, 24.69",\
                 "12.66, 12.82, 13.26, 13.92, 14.86, 16.11, 17.75, 19.8, 22.31, 25.29");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.005524, 0.0214, 0.05173, 0.09897, 0.1653, 0.2525, 0.3624, 0.4965, 0.6564");
          values("2.266, 2.386, 2.71, 3.18, 3.766, 4.464, 5.306, 6.32, 7.526, 8.978",\
                 "2.268, 2.382, 2.71, 3.178, 3.764, 4.464, 5.31, 6.322, 7.526, 8.976",\
                 "2.27, 2.384, 2.712, 3.18, 3.764, 4.462, 5.31, 6.318, 7.524, 8.98",\
                 "2.268, 2.384, 2.712, 3.18, 3.766, 4.466, 5.312, 6.324, 7.524, 8.982",\
                 "2.268, 2.384, 2.71, 3.18, 3.764, 4.468, 5.304, 6.314, 7.524, 8.982",\
                 "2.268, 2.386, 2.712, 3.182, 3.766, 4.464, 5.304, 6.31, 7.524, 8.994",\
                 "2.268, 2.384, 2.712, 3.18, 3.766, 4.462, 5.318, 6.326, 7.534, 8.996",\
                 "2.268, 2.384, 2.71, 3.18, 3.762, 4.466, 5.306, 6.32, 7.522, 8.996",\
                 "2.27, 2.384, 2.714, 3.18, 3.768, 4.466, 5.306, 6.32, 7.526, 8.978",\
                 "2.27, 2.384, 2.708, 3.178, 3.766, 4.466, 5.31, 6.322, 7.532, 8.996");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.005524, 0.0214, 0.05173, 0.09897, 0.1653, 0.2525, 0.3624, 0.4965, 0.6564");
          values("0.7526, 0.9034, 1.375, 2.246, 3.644, 5.674, 8.382, 11.81, 16.01, 20.97",\
                 "0.7522, 0.9034, 1.375, 2.242, 3.64, 5.674, 8.372, 11.82, 15.99, 20.97",\
                 "0.7528, 0.9028, 1.374, 2.246, 3.642, 5.674, 8.372, 11.82, 15.99, 20.98",\
                 "0.752, 0.904, 1.374, 2.244, 3.638, 5.67, 8.372, 11.82, 16.02, 20.98",\
                 "0.752, 0.904, 1.374, 2.244, 3.64, 5.668, 8.372, 11.8, 15.98, 20.97",\
                 "0.752, 0.902, 1.374, 2.244, 3.638, 5.664, 8.386, 11.81, 15.99, 20.97",\
                 "0.752, 0.904, 1.376, 2.244, 3.642, 5.664, 8.376, 11.8, 16, 20.97",\
                 "0.752, 0.902, 1.374, 2.24, 3.64, 5.67, 8.374, 11.8, 16, 20.97",\
                 "0.754, 0.904, 1.376, 2.244, 3.638, 5.668, 8.388, 11.81, 15.98, 21",\
                 "0.752, 0.902, 1.378, 2.244, 3.64, 5.668, 8.372, 11.81, 16.01, 20.98");
        }
      }
    }
  }

