/*
 * 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__dlyc_4) {
    area : 68.051200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.428 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01085, 0.04541, 0.1114, 0.2143, 0.3586, 0.5484, 0.7876, 1.08, 1.428");
          values("0.4094, 0.3875, 0.3437, 0.3154, 0.3007, 0.2918, 0.2861, 0.2824, 0.2799, 0.2782",\
                 "0.4089, 0.3871, 0.3433, 0.315, 0.3003, 0.2913, 0.2859, 0.2822, 0.2795, 0.2776",\
                 "0.4086, 0.3867, 0.3429, 0.3146, 0.2999, 0.291, 0.2854, 0.2816, 0.2791, 0.2773",\
                 "0.4093, 0.3874, 0.3436, 0.3152, 0.3004, 0.2916, 0.2859, 0.2822, 0.2797, 0.278",\
                 "0.4112, 0.3893, 0.3455, 0.317, 0.3024, 0.2935, 0.288, 0.2842, 0.2816, 0.2798",\
                 "0.4143, 0.3924, 0.3485, 0.3201, 0.3054, 0.2965, 0.2908, 0.2874, 0.2847, 0.2829",\
                 "0.419, 0.397, 0.3534, 0.3248, 0.3102, 0.3014, 0.2957, 0.2918, 0.2893, 0.2875",\
                 "0.425, 0.4031, 0.3593, 0.3308, 0.316, 0.3072, 0.3015, 0.2979, 0.2953, 0.2934",\
                 "0.4327, 0.411, 0.3672, 0.3385, 0.3239, 0.3149, 0.3092, 0.3055, 0.303, 0.3009",\
                 "0.4422, 0.4203, 0.3766, 0.3483, 0.3335, 0.3246, 0.3189, 0.3152, 0.3124, 0.3094");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01085, 0.04541, 0.1114, 0.2143, 0.3586, 0.5484, 0.7876, 1.08, 1.428");
          values("0.2517, 0.2448, 0.2379, 0.2341, 0.234, 0.2358, 0.2372, 0.2411, 0.2517, 0.365",\
                 "0.2516, 0.2446, 0.2376, 0.2339, 0.2339, 0.2355, 0.2372, 0.2408, 0.2518, 0.368",\
                 "0.2513, 0.2444, 0.2377, 0.2336, 0.2337, 0.2355, 0.2369, 0.2416, 0.2528, 0.3761",\
                 "0.2513, 0.2444, 0.2376, 0.2336, 0.2334, 0.2358, 0.2375, 0.2413, 0.2583, 0.3933",\
                 "0.2524, 0.2455, 0.2387, 0.2348, 0.2348, 0.2367, 0.2387, 0.2424, 0.2625, 0.4239",\
                 "0.2547, 0.2477, 0.2408, 0.2376, 0.237, 0.2391, 0.2414, 0.2447, 0.2709, 0.4711",\
                 "0.2581, 0.2512, 0.2446, 0.2406, 0.2406, 0.2424, 0.2444, 0.2488, 0.2848, 0.5374",\
                 "0.263, 0.2562, 0.2494, 0.2452, 0.2465, 0.2472, 0.2493, 0.2543, 0.3079, 0.6506",\
                 "0.2695, 0.2626, 0.2558, 0.2521, 0.2509, 0.2538, 0.2571, 0.263, 0.3464, 0.8345",\
                 "0.2776, 0.2707, 0.2635, 0.2598, 0.2589, 0.2598, 0.2631, 0.2799, 0.4286, 1.13");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01085, 0.04541, 0.1114, 0.2143, 0.3586, 0.5484, 0.7876, 1.08, 1.428");
          values("4.723, 4.848, 5.147, 5.543, 6.002, 6.515, 7.095, 7.759, 8.526, 9.412",\
                 "4.745, 4.87, 5.169, 5.564, 6.023, 6.537, 7.117, 7.781, 8.548, 9.433",\
                 "4.838, 4.963, 5.262, 5.658, 6.117, 6.631, 7.211, 7.875, 8.641, 9.526",\
                 "5.033, 5.158, 5.457, 5.853, 6.312, 6.825, 7.405, 8.07, 8.835, 9.72",\
                 "5.323, 5.447, 5.746, 6.142, 6.602, 7.115, 7.695, 8.36, 9.125, 10.01",\
                 "5.667, 5.791, 6.09, 6.485, 6.945, 7.459, 8.039, 8.703, 9.469, 10.36",\
                 "6.056, 6.181, 6.48, 6.875, 7.335, 7.848, 8.429, 9.092, 9.858, 10.74",\
                 "6.502, 6.626, 6.925, 7.321, 7.78, 8.293, 8.874, 9.539, 10.3, 11.19",\
                 "7.012, 7.137, 7.436, 7.832, 8.291, 8.804, 9.386, 10.05, 10.81, 11.7",\
                 "7.593, 7.718, 8.016, 8.412, 8.87, 9.384, 9.966, 10.63, 11.4, 12.28");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01085, 0.04541, 0.1114, 0.2143, 0.3586, 0.5484, 0.7876, 1.08, 1.428");
          values("3.713, 3.805, 4.04, 4.383, 4.858, 5.505, 6.353, 7.42, 8.722, 10.28",\
                 "3.734, 3.826, 4.06, 4.404, 4.879, 5.526, 6.374, 7.441, 8.743, 10.3",\
                 "3.801, 3.892, 4.128, 4.47, 4.945, 5.593, 6.44, 7.508, 8.809, 10.37",\
                 "3.884, 3.975, 4.211, 4.553, 5.028, 5.676, 6.523, 7.591, 8.892, 10.45",\
                 "3.939, 4.03, 4.265, 4.607, 5.083, 5.73, 6.578, 7.645, 8.948, 10.5",\
                 "3.955, 4.047, 4.282, 4.625, 5.1, 5.747, 6.595, 7.663, 8.965, 10.52",\
                 "3.932, 4.023, 4.259, 4.602, 5.076, 5.724, 6.572, 7.639, 8.942, 10.5",\
                 "3.864, 3.955, 4.19, 4.533, 5.009, 5.656, 6.504, 7.571, 8.873, 10.43",\
                 "3.747, 3.839, 4.074, 4.417, 4.892, 5.539, 6.387, 7.454, 8.758, 10.31",\
                 "3.577, 3.669, 3.904, 4.247, 4.722, 5.369, 6.217, 7.283, 8.585, 10.14");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01085, 0.04541, 0.1114, 0.2143, 0.3586, 0.5484, 0.7876, 1.08, 1.428");
          values("0.5324, 0.6348, 0.892, 1.25, 1.669, 2.193, 2.869, 3.738, 4.831, 6.181",\
                 "0.531, 0.635, 0.894, 1.251, 1.67, 2.193, 2.87, 3.738, 4.834, 6.181",\
                 "0.531, 0.635, 0.8928, 1.251, 1.669, 2.192, 2.87, 3.738, 4.832, 6.18",\
                 "0.531, 0.6346, 0.8938, 1.251, 1.67, 2.193, 2.87, 3.735, 4.833, 6.182",\
                 "0.5316, 0.635, 0.8924, 1.25, 1.669, 2.193, 2.87, 3.737, 4.837, 6.181",\
                 "0.5324, 0.6348, 0.8928, 1.249, 1.669, 2.193, 2.871, 3.739, 4.831, 6.178",\
                 "0.5316, 0.6346, 0.8926, 1.25, 1.668, 2.192, 2.87, 3.736, 4.834, 6.182",\
                 "0.532, 0.634, 0.894, 1.25, 1.67, 2.192, 2.87, 3.736, 4.832, 6.18",\
                 "0.532, 0.634, 0.892, 1.25, 1.668, 2.194, 2.87, 3.736, 4.832, 6.18",\
                 "0.532, 0.632, 0.892, 1.25, 1.67, 2.192, 2.87, 3.74, 4.83, 6.182");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01085, 0.04541, 0.1114, 0.2143, 0.3586, 0.5484, 0.7876, 1.08, 1.428");
          values("0.2306, 0.3274, 0.5898, 1.039, 1.773, 2.853, 4.295, 6.119, 8.353, 11",\
                 "0.2304, 0.3274, 0.5898, 1.039, 1.774, 2.853, 4.295, 6.119, 8.357, 11",\
                 "0.2304, 0.3274, 0.5896, 1.039, 1.773, 2.853, 4.295, 6.118, 8.354, 11",\
                 "0.2304, 0.3274, 0.5902, 1.039, 1.773, 2.85, 4.296, 6.118, 8.354, 11.01",\
                 "0.2304, 0.3274, 0.5896, 1.039, 1.773, 2.853, 4.297, 6.119, 8.346, 11.02",\
                 "0.2304, 0.3274, 0.5908, 1.037, 1.772, 2.849, 4.291, 6.122, 8.358, 11",\
                 "0.2306, 0.3272, 0.5922, 1.04, 1.771, 2.853, 4.296, 6.124, 8.354, 11.02",\
                 "0.2304, 0.3274, 0.591, 1.037, 1.771, 2.853, 4.294, 6.123, 8.356, 11",\
                 "0.2306, 0.3276, 0.5898, 1.038, 1.774, 2.85, 4.288, 6.12, 8.35, 11.01",\
                 "0.23, 0.328, 0.59, 1.038, 1.774, 2.848, 4.294, 6.11, 8.336, 10.99");
        }
      }
    }
  }

