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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "2.658096e-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.002487 ;
      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.1648 ;
      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.002131, 0.006101, 0.01368, 0.02549, 0.04206, 0.06387, 0.09134, 0.1249, 0.1648");
          values("0.01732, 0.01736, 0.01744, 0.01753, 0.01755, 0.01725, 0.01654, 0.01599, 0.01561, 0.01533",\
                 "0.01721, 0.01724, 0.01732, 0.0174, 0.01741, 0.01703, 0.01632, 0.0158, 0.01544, 0.01518",\
                 "0.01679, 0.01683, 0.0169, 0.01697, 0.01684, 0.01616, 0.01556, 0.01515, 0.01486, 0.01466",\
                 "0.01572, 0.01574, 0.0158, 0.01553, 0.01477, 0.01427, 0.01396, 0.01376, 0.01362, 0.01353",\
                 "0.01132, 0.01115, 0.01086, 0.01073, 0.01071, 0.01074, 0.01077, 0.0108, 0.01082, 0.01083",\
                 "0.005574, 0.005604, 0.005693, 0.005819, 0.005945, 0.006051, 0.006125, 0.006175, 0.006211, 0.006234",\
                 "-0.002283, -0.002284, -0.002287, -0.002296, -0.0023, -0.002307, -0.002312, -0.002315, -0.002318, -0.00232",\
                 "-0.01153, -0.01154, -0.01153, -0.01153, -0.01153, -0.01153, -0.01153, -0.01153, -0.01153, -0.01153",\
                 "-0.02427, -0.02427, -0.02427, -0.02426, -0.02427, -0.02427, -0.02427, -0.02427, -0.02427, -0.02427",\
                 "-0.03857, -0.03857, -0.03857, -0.03857, -0.03857, -0.03857, -0.03857, -0.03857, -0.03857, -0.03857");
        }

        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.002131, 0.006101, 0.01368, 0.02549, 0.04206, 0.06387, 0.09134, 0.1249, 0.1648");
          values("-0.00982, -0.009795, -0.009702, -0.009587, -0.008125, 0.009071, 0.02989, 0.04398, 0.05352, 0.06012",\
                 "-0.009841, -0.009804, -0.009722, -0.009595, -0.007791, 0.01005, 0.02992, 0.0433, 0.05232, 0.05858",\
                 "-0.009914, -0.009877, -0.00982, -0.009679, -0.006348, 0.01276, 0.02947, 0.04054, 0.04799, 0.05312",\
                 "-0.01006, -0.01005, -0.009955, -0.009669, -0.001231, 0.01523, 0.02639, 0.03363, 0.03846, 0.04178",\
                 "-0.01032, -0.01029, -0.01021, -0.006862, 0.004097, 0.01177, 0.01657, 0.01961, 0.02162, 0.023",\
                 "-0.01187, -0.01177, -0.01032, -0.008592, -0.007463, -0.006812, -0.006424, -0.006195, -0.006026, -0.005918",\
                 "-0.02369, -0.02369, -0.02369, -0.02369, -0.02369, -0.0237, -0.0237, -0.0237, -0.0237, -0.0237",\
                 "-0.02955, -0.02955, -0.02955, -0.02955, -0.02955, -0.02955, -0.02956, -0.02955, -0.02955, -0.02955",\
                 "-0.03817, -0.03817, -0.03817, -0.03817, -0.03817, -0.03817, -0.03817, -0.03817, -0.03817, -0.03818",\
                 "-0.04634, -0.04634, -0.04634, -0.04634, -0.04634, -0.04634, -0.04634, -0.04634, -0.04634, -0.04634");
        }
      }

      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.002131, 0.006101, 0.01368, 0.02549, 0.04206, 0.06387, 0.09134, 0.1249, 0.1648");
          values("21.56, 21.68, 22, 22.43, 22.94, 23.52, 24.18, 24.94, 25.82, 26.85",\
                 "21.63, 21.75, 22.06, 22.5, 23.01, 23.59, 24.25, 25.01, 25.89, 26.91",\
                 "21.89, 22.01, 22.32, 22.75, 23.26, 23.84, 24.51, 25.27, 26.15, 27.17",\
                 "22.41, 22.52, 22.84, 23.27, 23.78, 24.36, 25.02, 25.79, 26.67, 27.69",\
                 "23.23, 23.35, 23.66, 24.09, 24.6, 25.18, 25.85, 26.61, 27.49, 28.51",\
                 "24.39, 24.51, 24.82, 25.26, 25.77, 26.35, 27.01, 27.77, 28.65, 29.67",\
                 "25.91, 26.02, 26.34, 26.77, 27.28, 27.86, 28.53, 29.29, 30.17, 31.19",\
                 "27.74, 27.86, 28.17, 28.61, 29.12, 29.69, 30.36, 31.12, 32, 33.02",\
                 "29.82, 29.94, 30.25, 30.69, 31.19, 31.78, 32.44, 33.2, 34.08, 35.1",\
                 "32.12, 32.23, 32.55, 32.98, 33.49, 34.08, 34.74, 35.5, 36.38, 37.4");
        }

        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.002131, 0.006101, 0.01368, 0.02549, 0.04206, 0.06387, 0.09134, 0.1249, 0.1648");
          values("19.89, 19.99, 20.32, 20.91, 21.8, 23.04, 24.67, 26.72, 29.23, 32.21",\
                 "19.96, 20.06, 20.38, 20.97, 21.86, 23.1, 24.73, 26.79, 29.29, 32.27",\
                 "20.16, 20.26, 20.59, 21.17, 22.06, 23.3, 24.93, 26.99, 29.49, 32.47",\
                 "20.53, 20.63, 20.96, 21.54, 22.43, 23.68, 25.3, 27.36, 29.86, 32.84",\
                 "21, 21.1, 21.43, 22.01, 22.9, 24.15, 25.78, 27.83, 30.33, 33.31",\
                 "21.52, 21.62, 21.94, 22.53, 23.42, 24.66, 26.29, 28.34, 30.85, 33.83",\
                 "22.06, 22.17, 22.49, 23.08, 23.97, 25.21, 26.84, 28.89, 31.39, 34.38",\
                 "22.64, 22.74, 23.07, 23.65, 24.54, 25.79, 27.42, 29.47, 31.97, 34.95",\
                 "23.23, 23.34, 23.66, 24.25, 25.14, 26.38, 28.01, 30.06, 32.56, 35.55",\
                 "23.84, 23.94, 24.27, 24.85, 25.74, 26.98, 28.61, 30.67, 33.17, 36.15");
        }

        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.002131, 0.006101, 0.01368, 0.02549, 0.04206, 0.06387, 0.09134, 0.1249, 0.1648");
          values("0.954, 1.03, 1.252, 1.596, 2.066, 2.678, 3.474, 4.5, 5.79, 7.376",\
                 "0.952, 1.03, 1.252, 1.596, 2.066, 2.678, 3.476, 4.506, 5.792, 7.376",\
                 "0.954, 1.03, 1.252, 1.596, 2.062, 2.682, 3.474, 4.504, 5.788, 7.378",\
                 "0.954, 1.028, 1.252, 1.596, 2.064, 2.678, 3.472, 4.496, 5.788, 7.378",\
                 "0.954, 1.03, 1.252, 1.598, 2.068, 2.68, 3.472, 4.498, 5.792, 7.378",\
                 "0.952, 1.028, 1.252, 1.596, 2.064, 2.68, 3.474, 4.5, 5.79, 7.376",\
                 "0.952, 1.03, 1.252, 1.596, 2.066, 2.682, 3.474, 4.498, 5.788, 7.378",\
                 "0.95, 1.028, 1.252, 1.596, 2.062, 2.68, 3.472, 4.496, 5.786, 7.378",\
                 "0.954, 1.03, 1.25, 1.596, 2.062, 2.678, 3.476, 4.498, 5.788, 7.372",\
                 "0.952, 1.03, 1.252, 1.596, 2.062, 2.68, 3.474, 4.496, 5.788, 7.38");
        }

        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.002131, 0.006101, 0.01368, 0.02549, 0.04206, 0.06387, 0.09134, 0.1249, 0.1648");
          values("0.644, 0.774, 1.232, 2.146, 3.606, 5.676, 8.4, 11.82, 16, 21.02",\
                 "0.646, 0.774, 1.23, 2.144, 3.616, 5.678, 8.386, 11.83, 16, 21",\
                 "0.646, 0.774, 1.232, 2.144, 3.608, 5.67, 8.386, 11.83, 16, 21",\
                 "0.646, 0.774, 1.232, 2.146, 3.614, 5.668, 8.398, 11.83, 16.03, 21.01",\
                 "0.646, 0.776, 1.23, 2.148, 3.608, 5.678, 8.39, 11.83, 16.01, 21",\
                 "0.646, 0.774, 1.232, 2.148, 3.606, 5.676, 8.394, 11.83, 16.03, 21",\
                 "0.646, 0.774, 1.232, 2.148, 3.606, 5.676, 8.39, 11.82, 16, 21.02",\
                 "0.646, 0.774, 1.23, 2.144, 3.612, 5.676, 8.388, 11.84, 16.01, 21.02",\
                 "0.646, 0.774, 1.234, 2.146, 3.606, 5.674, 8.396, 11.83, 16, 21.03",\
                 "0.644, 0.776, 1.232, 2.144, 3.614, 5.674, 8.39, 11.82, 16, 21.01");
        }
      }
    }
  }

