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

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.7093 ;
      max_transition : 15.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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005889, 0.02305, 0.05582, 0.1069, 0.1785, 0.2728, 0.3915, 0.5365, 0.7093");
          values("0.3409, 0.332, 0.3139, 0.3005, 0.2929, 0.2882, 0.2852, 0.2831, 0.2817, 0.2804",\
                 "0.3405, 0.3316, 0.3134, 0.3001, 0.2925, 0.2879, 0.2848, 0.2828, 0.2813, 0.28",\
                 "0.3405, 0.3315, 0.3134, 0.3, 0.2924, 0.2877, 0.2847, 0.2827, 0.2812, 0.2799",\
                 "0.342, 0.3331, 0.315, 0.3016, 0.2941, 0.2894, 0.2864, 0.2843, 0.2828, 0.2814",\
                 "0.3458, 0.3368, 0.3186, 0.3054, 0.2978, 0.293, 0.2901, 0.288, 0.2864, 0.2849",\
                 "0.3517, 0.3428, 0.3246, 0.3113, 0.3038, 0.299, 0.296, 0.2939, 0.2923, 0.2904",\
                 "0.3602, 0.3513, 0.3332, 0.3198, 0.3122, 0.3075, 0.3045, 0.3024, 0.3004, 0.2977",\
                 "0.3713, 0.3623, 0.3442, 0.3309, 0.3233, 0.3187, 0.3155, 0.313, 0.31, 0.3062",\
                 "0.3852, 0.3762, 0.3581, 0.3447, 0.3372, 0.3323, 0.3286, 0.3243, 0.3194, 0.3152",\
                 "0.3999, 0.3909, 0.3728, 0.3591, 0.3508, 0.3433, 0.336, 0.3309, 0.3273, 0.3247");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005889, 0.02305, 0.05582, 0.1069, 0.1785, 0.2728, 0.3915, 0.5365, 0.7093");
          values("0.2558, 0.2521, 0.2475, 0.2448, 0.2441, 0.2442, 0.2471, 0.2825, 0.4853, 1.023",\
                 "0.2557, 0.252, 0.2474, 0.2449, 0.244, 0.2443, 0.2467, 0.2839, 0.4899, 1.034",\
                 "0.2557, 0.252, 0.2473, 0.2445, 0.244, 0.2442, 0.2472, 0.288, 0.508, 1.067",\
                 "0.2564, 0.2527, 0.2481, 0.2454, 0.2448, 0.2451, 0.2486, 0.2976, 0.5417, 1.127",\
                 "0.2587, 0.255, 0.2505, 0.2478, 0.2473, 0.2476, 0.2522, 0.3128, 0.5948, 1.212",\
                 "0.2631, 0.2594, 0.2548, 0.2519, 0.2517, 0.2519, 0.2599, 0.3397, 0.6726, 1.326",\
                 "0.2697, 0.2659, 0.2613, 0.2588, 0.2582, 0.2587, 0.2714, 0.386, 0.7871, 1.47",\
                 "0.2787, 0.2749, 0.2705, 0.2677, 0.2671, 0.2678, 0.2916, 0.466, 0.9495, 1.632",\
                 "0.2902, 0.2864, 0.2819, 0.2789, 0.2784, 0.2816, 0.3318, 0.5993, 1.155, 1.785",\
                 "0.3044, 0.3007, 0.2959, 0.2931, 0.2924, 0.3015, 0.4213, 0.8161, 1.375, 1.872");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005889, 0.02305, 0.05582, 0.1069, 0.1785, 0.2728, 0.3915, 0.5365, 0.7093");
          values("7.798, 7.93, 8.251, 8.685, 9.206, 9.807, 10.5, 11.32, 12.29, 13.41",\
                 "7.827, 7.959, 8.282, 8.715, 9.235, 9.837, 10.53, 11.35, 12.32, 13.44",\
                 "7.957, 8.089, 8.411, 8.844, 9.365, 9.966, 10.66, 11.48, 12.45, 13.57",\
                 "8.233, 8.365, 8.686, 9.12, 9.641, 10.24, 10.94, 11.76, 12.72, 13.85",\
                 "8.645, 8.776, 9.098, 9.531, 10.05, 10.65, 11.35, 12.17, 13.13, 14.26",\
                 "9.146, 9.279, 9.6, 10.03, 10.55, 11.15, 11.85, 12.67, 13.63, 14.76",\
                 "9.739, 9.871, 10.19, 10.63, 11.15, 11.75, 12.45, 13.26, 14.23, 15.35",\
                 "10.43, 10.57, 10.89, 11.32, 11.84, 12.44, 13.14, 13.96, 14.92, 16.05",\
                 "11.24, 11.37, 11.69, 12.12, 12.64, 13.25, 13.94, 14.76, 15.73, 16.85",\
                 "12.15, 12.28, 12.6, 13.04, 13.56, 14.16, 14.86, 15.68, 16.64, 17.77");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005889, 0.02305, 0.05582, 0.1069, 0.1785, 0.2728, 0.3915, 0.5365, 0.7093");
          values("7.142, 7.247, 7.532, 7.974, 8.614, 9.501, 10.67, 12.14, 13.93, 16.06",\
                 "7.169, 7.275, 7.56, 8.002, 8.641, 9.529, 10.69, 12.16, 13.96, 16.09",\
                 "7.254, 7.36, 7.645, 8.086, 8.726, 9.614, 10.78, 12.25, 14.04, 16.17",\
                 "7.345, 7.451, 7.736, 8.177, 8.817, 9.704, 10.87, 12.34, 14.13, 16.27",\
                 "7.386, 7.491, 7.776, 8.218, 8.859, 9.746, 10.91, 12.38, 14.17, 16.31",\
                 "7.365, 7.471, 7.756, 8.198, 8.838, 9.725, 10.89, 12.36, 14.15, 16.29",\
                 "7.279, 7.384, 7.669, 8.111, 8.751, 9.638, 10.8, 12.27, 14.06, 16.2",\
                 "7.117, 7.222, 7.507, 7.949, 8.589, 9.476, 10.64, 12.11, 13.9, 16.04",\
                 "6.87, 6.976, 7.26, 7.702, 8.342, 9.228, 10.39, 11.86, 13.66, 15.79",\
                 "6.532, 6.638, 6.922, 7.364, 8.004, 8.891, 10.06, 11.53, 13.32, 15.45");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005889, 0.02305, 0.05582, 0.1069, 0.1785, 0.2728, 0.3915, 0.5365, 0.7093");
          values("0.523, 0.647, 0.9416, 1.363, 1.904, 2.6, 3.52, 4.716, 6.224, 8.072",\
                 "0.5234, 0.6478, 0.9416, 1.36, 1.905, 2.6, 3.521, 4.714, 6.228, 8.06",\
                 "0.5254, 0.6474, 0.942, 1.361, 1.906, 2.599, 3.522, 4.714, 6.228, 8.07",\
                 "0.523, 0.6472, 0.9418, 1.362, 1.902, 2.602, 3.522, 4.714, 6.226, 8.072",\
                 "0.5226, 0.648, 0.942, 1.362, 1.904, 2.6, 3.518, 4.714, 6.224, 8.066",\
                 "0.524, 0.648, 0.942, 1.362, 1.906, 2.598, 3.522, 4.716, 6.218, 8.062",\
                 "0.524, 0.648, 0.942, 1.362, 1.906, 2.6, 3.528, 4.714, 6.228, 8.06",\
                 "0.524, 0.648, 0.942, 1.362, 1.904, 2.6, 3.52, 4.714, 6.226, 8.066",\
                 "0.524, 0.648, 0.94, 1.36, 1.906, 2.604, 3.52, 4.714, 6.226, 8.062",\
                 "0.522, 0.648, 0.942, 1.362, 1.902, 2.6, 3.52, 4.716, 6.22, 8.072");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005889, 0.02305, 0.05582, 0.1069, 0.1785, 0.2728, 0.3915, 0.5365, 0.7093");
          values("0.2782, 0.3986, 0.7584, 1.408, 2.48, 4.031, 6.084, 8.672, 11.83, 15.6",\
                 "0.2788, 0.3984, 0.7582, 1.408, 2.477, 4.029, 6.089, 8.676, 11.83, 15.61",\
                 "0.2788, 0.3998, 0.759, 1.409, 2.48, 4.028, 6.074, 8.678, 11.83, 15.6",\
                 "0.2784, 0.3998, 0.7578, 1.409, 2.475, 4.032, 6.08, 8.662, 11.83, 15.6",\
                 "0.2784, 0.3998, 0.7572, 1.409, 2.477, 4.024, 6.078, 8.664, 11.85, 15.6",\
                 "0.278, 0.399, 0.7586, 1.41, 2.476, 4.03, 6.088, 8.676, 11.83, 15.6",\
                 "0.278, 0.4, 0.76, 1.41, 2.476, 4.032, 6.076, 8.666, 11.83, 15.61",\
                 "0.28, 0.398, 0.758, 1.408, 2.476, 4.026, 6.084, 8.676, 11.83, 15.6",\
                 "0.278, 0.4, 0.758, 1.41, 2.478, 4.028, 6.074, 8.666, 11.84, 15.61",\
                 "0.278, 0.4, 0.758, 1.408, 2.476, 4.028, 6.076, 8.664, 11.83, 15.61");
        }
      }
    }
  }

