/*
 * 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__dlyd_1) {
    area : 74.636800 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3598 ;
      max_transition : 8.6 ;
      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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.003476, 0.01217, 0.02877, 0.05463, 0.09091, 0.1387, 0.1988, 0.2722, 0.3598");
          values("0.317, 0.3136, 0.3071, 0.3029, 0.3003, 0.2987, 0.2977, 0.297, 0.2965, 0.2961",\
                 "0.3165, 0.3131, 0.3066, 0.3024, 0.2999, 0.2982, 0.2972, 0.2964, 0.296, 0.2956",\
                 "0.3169, 0.3135, 0.307, 0.3028, 0.3002, 0.2986, 0.2976, 0.2968, 0.2964, 0.296",\
                 "0.3203, 0.3168, 0.3103, 0.3061, 0.3035, 0.3019, 0.3009, 0.3001, 0.2996, 0.2993",\
                 "0.3271, 0.3236, 0.3171, 0.3129, 0.3103, 0.3087, 0.3076, 0.307, 0.3065, 0.3061",\
                 "0.3377, 0.3342, 0.3278, 0.3235, 0.321, 0.3193, 0.3183, 0.3175, 0.317, 0.3167",\
                 "0.3524, 0.349, 0.3426, 0.3383, 0.3357, 0.3341, 0.3331, 0.3324, 0.3318, 0.3315",\
                 "0.372, 0.3685, 0.3621, 0.3578, 0.3553, 0.3537, 0.3526, 0.3519, 0.3514, 0.351",\
                 "0.3965, 0.393, 0.3866, 0.3823, 0.3797, 0.3781, 0.377, 0.3764, 0.3758, 0.3755",\
                 "0.4262, 0.4228, 0.4163, 0.4121, 0.4095, 0.4079, 0.4068, 0.4061, 0.4056, 0.4052");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.003476, 0.01217, 0.02877, 0.05463, 0.09091, 0.1387, 0.1988, 0.2722, 0.3598");
          values("0.2688, 0.2675, 0.2654, 0.2643, 0.2641, 0.2646, 0.265, 0.2659, 0.2669, 0.2753",\
                 "0.2686, 0.2674, 0.2654, 0.2642, 0.264, 0.2645, 0.2652, 0.2654, 0.2666, 0.2752",\
                 "0.2687, 0.2675, 0.2654, 0.2642, 0.264, 0.2645, 0.265, 0.2655, 0.2668, 0.2764",\
                 "0.2706, 0.2694, 0.2674, 0.2662, 0.2659, 0.2664, 0.2668, 0.2675, 0.2686, 0.2786",\
                 "0.2754, 0.2741, 0.272, 0.2709, 0.2706, 0.2712, 0.2716, 0.2721, 0.2737, 0.2846",\
                 "0.2835, 0.2823, 0.2804, 0.2791, 0.279, 0.2793, 0.28, 0.2803, 0.2818, 0.2956",\
                 "0.2956, 0.2942, 0.2923, 0.2911, 0.2911, 0.2914, 0.2918, 0.2924, 0.2943, 0.3114",\
                 "0.3116, 0.3104, 0.3084, 0.3072, 0.3072, 0.3074, 0.3077, 0.3084, 0.3109, 0.3332",\
                 "0.332, 0.3306, 0.3284, 0.3274, 0.3271, 0.3279, 0.3285, 0.3291, 0.3319, 0.3608",\
                 "0.3567, 0.3554, 0.3534, 0.3523, 0.3521, 0.3518, 0.3527, 0.3552, 0.3599, 0.4006");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.003476, 0.01217, 0.02877, 0.05463, 0.09091, 0.1387, 0.1988, 0.2722, 0.3598");
          values("3.455, 3.506, 3.638, 3.829, 4.07, 4.367, 4.734, 5.183, 5.727, 6.374",\
                 "3.469, 3.52, 3.653, 3.844, 4.085, 4.382, 4.748, 5.198, 5.742, 6.389",\
                 "3.537, 3.587, 3.721, 3.912, 4.153, 4.45, 4.816, 5.266, 5.81, 6.457",\
                 "3.683, 3.733, 3.866, 4.057, 4.298, 4.595, 4.962, 5.411, 5.955, 6.602",\
                 "3.895, 3.945, 4.078, 4.269, 4.51, 4.807, 5.174, 5.623, 6.167, 6.814",\
                 "4.158, 4.209, 4.341, 4.532, 4.773, 5.071, 5.437, 5.886, 6.43, 7.077",\
                 "4.476, 4.527, 4.66, 4.851, 5.092, 5.389, 5.755, 6.204, 6.748, 7.396",\
                 "4.853, 4.904, 5.037, 5.227, 5.469, 5.766, 6.132, 6.581, 7.125, 7.772",\
                 "5.287, 5.338, 5.471, 5.662, 5.903, 6.2, 6.566, 7.015, 7.559, 8.206",\
                 "5.78, 5.831, 5.963, 6.154, 6.395, 6.693, 7.059, 7.508, 8.052, 8.699");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.003476, 0.01217, 0.02877, 0.05463, 0.09091, 0.1387, 0.1988, 0.2722, 0.3598");
          values("3.299, 3.344, 3.476, 3.703, 4.051, 4.539, 5.181, 5.989, 6.976, 8.154",\
                 "3.312, 3.356, 3.489, 3.716, 4.064, 4.552, 5.193, 6.002, 6.988, 8.165",\
                 "3.352, 3.396, 3.529, 3.756, 4.104, 4.592, 5.234, 6.042, 7.029, 8.206",\
                 "3.389, 3.434, 3.566, 3.794, 4.141, 4.629, 5.271, 6.079, 7.067, 8.245",\
                 "3.398, 3.442, 3.574, 3.801, 4.149, 4.638, 5.279, 6.088, 7.073, 8.253",\
                 "3.373, 3.417, 3.55, 3.777, 4.125, 4.612, 5.253, 6.062, 7.05, 8.228",\
                 "3.31, 3.354, 3.487, 3.714, 4.063, 4.55, 5.192, 6, 6.988, 8.166",\
                 "3.204, 3.248, 3.381, 3.608, 3.956, 4.444, 5.085, 5.894, 6.88, 8.056",\
                 "3.051, 3.095, 3.227, 3.454, 3.803, 4.29, 4.932, 5.74, 6.726, 7.905",\
                 "2.844, 2.888, 3.021, 3.248, 3.596, 4.084, 4.726, 5.534, 6.521, 7.696");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.003476, 0.01217, 0.02877, 0.05463, 0.09091, 0.1387, 0.1988, 0.2722, 0.3598");
          values("0.216, 0.2634, 0.3918, 0.5964, 0.8834, 1.287, 1.838, 2.561, 3.46, 4.54",\
                 "0.2166, 0.2636, 0.3922, 0.595, 0.8838, 1.287, 1.84, 2.56, 3.456, 4.542",\
                 "0.216, 0.2638, 0.3918, 0.596, 0.8834, 1.287, 1.839, 2.561, 3.46, 4.542",\
                 "0.2164, 0.2642, 0.392, 0.5956, 0.8832, 1.287, 1.84, 2.558, 3.46, 4.54",\
                 "0.216, 0.2646, 0.3916, 0.5962, 0.8832, 1.288, 1.84, 2.561, 3.457, 4.543",\
                 "0.216, 0.2636, 0.3928, 0.5956, 0.8842, 1.287, 1.839, 2.561, 3.458, 4.543",\
                 "0.2162, 0.264, 0.392, 0.5956, 0.8832, 1.287, 1.839, 2.56, 3.46, 4.538",\
                 "0.217, 0.2632, 0.3918, 0.5964, 0.8828, 1.287, 1.838, 2.558, 3.459, 4.54",\
                 "0.217, 0.2632, 0.3916, 0.5962, 0.8828, 1.288, 1.84, 2.56, 3.458, 4.538",\
                 "0.216, 0.262, 0.392, 0.596, 0.884, 1.286, 1.842, 2.56, 3.458, 4.538");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.003476, 0.01217, 0.02877, 0.05463, 0.09091, 0.1387, 0.1988, 0.2722, 0.3598");
          values("0.1508, 0.2092, 0.3966, 0.7688, 1.376, 2.234, 3.367, 4.786, 6.528, 8.604",\
                 "0.151, 0.2088, 0.3972, 0.7692, 1.376, 2.235, 3.364, 4.788, 6.528, 8.601",\
                 "0.151, 0.2088, 0.3966, 0.7696, 1.376, 2.232, 3.367, 4.787, 6.528, 8.606",\
                 "0.1512, 0.2088, 0.3962, 0.7694, 1.376, 2.235, 3.363, 4.792, 6.529, 8.601",\
                 "0.1516, 0.2086, 0.3968, 0.7702, 1.377, 2.235, 3.367, 4.789, 6.528, 8.605",\
                 "0.151, 0.2084, 0.3962, 0.7688, 1.374, 2.232, 3.364, 4.79, 6.525, 8.608",\
                 "0.1516, 0.2086, 0.397, 0.7686, 1.374, 2.232, 3.36, 4.791, 6.527, 8.607",\
                 "0.151, 0.2086, 0.397, 0.7694, 1.374, 2.234, 3.362, 4.789, 6.528, 8.603",\
                 "0.1506, 0.209, 0.3966, 0.769, 1.375, 2.233, 3.36, 4.795, 6.526, 8.603",\
                 "0.1512, 0.2082, 0.3974, 0.7688, 1.375, 2.234, 3.366, 4.784, 6.522, 8.6");
        }
      }
    }
  }

