/*
 * 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.0001463616" ;
    }

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.7107 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.5378, 0.5224, 0.488, 0.457, 0.4387, 0.4268, 0.4186, 0.4129, 0.4086, 0.4057",\
                 "0.5373, 0.522, 0.4876, 0.4566, 0.4382, 0.4262, 0.418, 0.4123, 0.4082, 0.4053",\
                 "0.5389, 0.5236, 0.4892, 0.4582, 0.4395, 0.4276, 0.4197, 0.4139, 0.4098, 0.4069",\
                 "0.5452, 0.5299, 0.4955, 0.4645, 0.4458, 0.4341, 0.426, 0.4202, 0.4162, 0.4132",\
                 "0.5577, 0.5423, 0.5079, 0.4768, 0.4585, 0.4466, 0.4384, 0.4327, 0.4285, 0.4257",\
                 "0.5763, 0.5609, 0.5265, 0.4954, 0.477, 0.4651, 0.457, 0.4513, 0.4472, 0.4441",\
                 "0.6023, 0.5871, 0.5526, 0.5216, 0.5032, 0.4912, 0.4832, 0.4774, 0.4732, 0.4703",\
                 "0.6363, 0.6209, 0.5865, 0.5556, 0.537, 0.525, 0.517, 0.5114, 0.5073, 0.5043",\
                 "0.6786, 0.6632, 0.6288, 0.5979, 0.5792, 0.5674, 0.5593, 0.5536, 0.5494, 0.5465",\
                 "0.7296, 0.7143, 0.6798, 0.6489, 0.6305, 0.6187, 0.6105, 0.6047, 0.6007, 0.5975");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.394, 0.3846, 0.3714, 0.3638, 0.3594, 0.3575, 0.3573, 0.3575, 0.3589, 0.3607",\
                 "0.3942, 0.3845, 0.3716, 0.3634, 0.3593, 0.3577, 0.3573, 0.3578, 0.3589, 0.3609",\
                 "0.395, 0.3852, 0.3726, 0.3643, 0.3603, 0.3581, 0.358, 0.3586, 0.3603, 0.3613",\
                 "0.3988, 0.3893, 0.3769, 0.3685, 0.3647, 0.3628, 0.3634, 0.3629, 0.3636, 0.3663",\
                 "0.4082, 0.3983, 0.3861, 0.3782, 0.3732, 0.372, 0.3721, 0.3737, 0.3729, 0.3753",\
                 "0.4233, 0.4133, 0.4014, 0.3929, 0.3883, 0.3879, 0.3868, 0.3874, 0.388, 0.3897",\
                 "0.4448, 0.4347, 0.4217, 0.4141, 0.4098, 0.4082, 0.4092, 0.409, 0.4093, 0.4109",\
                 "0.4728, 0.463, 0.4503, 0.4423, 0.4391, 0.4366, 0.4369, 0.4374, 0.4381, 0.4397",\
                 "0.5079, 0.498, 0.4854, 0.4774, 0.4724, 0.4717, 0.4729, 0.4723, 0.4726, 0.475",\
                 "0.5505, 0.5407, 0.5279, 0.5193, 0.5153, 0.5124, 0.5136, 0.518, 0.5169, 0.5175");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("2.003, 2.042, 2.135, 2.265, 2.426, 2.622, 2.86, 3.148, 3.495, 3.907",\
                 "2.011, 2.049, 2.143, 2.273, 2.434, 2.631, 2.868, 3.156, 3.503, 3.916",\
                 "2.051, 2.089, 2.183, 2.312, 2.474, 2.67, 2.908, 3.196, 3.543, 3.955",\
                 "2.136, 2.174, 2.268, 2.397, 2.559, 2.755, 2.993, 3.281, 3.628, 4.04",\
                 "2.262, 2.3, 2.394, 2.523, 2.685, 2.881, 3.119, 3.407, 3.754, 4.166",\
                 "2.422, 2.46, 2.553, 2.682, 2.844, 3.041, 3.278, 3.566, 3.914, 4.326",\
                 "2.617, 2.655, 2.749, 2.878, 3.04, 3.236, 3.474, 3.761, 4.109, 4.521",\
                 "2.846, 2.885, 2.979, 3.108, 3.269, 3.466, 3.703, 3.991, 4.338, 4.751",\
                 "3.11, 3.148, 3.242, 3.371, 3.533, 3.73, 3.967, 4.255, 4.602, 5.014",\
                 "3.411, 3.448, 3.542, 3.672, 3.833, 4.03, 4.267, 4.555, 4.902, 5.315");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("1.849, 1.88, 1.963, 2.103, 2.315, 2.612, 3.004, 3.499, 4.104, 4.826",\
                 "1.856, 1.887, 1.97, 2.11, 2.321, 2.619, 3.011, 3.506, 4.111, 4.832",\
                 "1.877, 1.907, 1.99, 2.13, 2.342, 2.639, 3.031, 3.526, 4.131, 4.852",\
                 "1.892, 1.922, 2.006, 2.145, 2.357, 2.654, 3.047, 3.542, 4.147, 4.868",\
                 "1.891, 1.921, 2.005, 2.144, 2.356, 2.653, 3.046, 3.541, 4.146, 4.867",\
                 "1.87, 1.9, 1.983, 2.123, 2.335, 2.632, 3.025, 3.519, 4.124, 4.843",\
                 "1.825, 1.855, 1.938, 2.078, 2.29, 2.587, 2.98, 3.474, 4.079, 4.801",\
                 "1.752, 1.782, 1.865, 2.005, 2.217, 2.514, 2.907, 3.402, 4.006, 4.729",\
                 "1.648, 1.678, 1.761, 1.902, 2.113, 2.411, 2.802, 3.297, 3.901, 4.623",\
                 "1.513, 1.543, 1.626, 1.766, 1.978, 2.275, 2.667, 3.162, 3.766, 4.486");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1516, 0.1898, 0.2802, 0.411, 0.5934, 0.8428, 1.181, 1.626, 2.188, 2.865",\
                 "0.1516, 0.1898, 0.28, 0.4108, 0.594, 0.843, 1.182, 1.626, 2.185, 2.862",\
                 "0.1518, 0.19, 0.28, 0.4106, 0.5942, 0.8436, 1.181, 1.626, 2.186, 2.864",\
                 "0.1516, 0.1898, 0.28, 0.411, 0.594, 0.8432, 1.182, 1.625, 2.187, 2.865",\
                 "0.1514, 0.1898, 0.28, 0.4106, 0.5938, 0.8432, 1.182, 1.626, 2.184, 2.864",\
                 "0.1516, 0.19, 0.2808, 0.411, 0.5936, 0.843, 1.181, 1.626, 2.186, 2.865",\
                 "0.1522, 0.1898, 0.2804, 0.4104, 0.5942, 0.843, 1.182, 1.625, 2.188, 2.865",\
                 "0.152, 0.1904, 0.28, 0.4104, 0.5938, 0.8428, 1.182, 1.626, 2.187, 2.865",\
                 "0.1516, 0.1896, 0.2802, 0.4106, 0.594, 0.8438, 1.181, 1.628, 2.185, 2.865",\
                 "0.1518, 0.1898, 0.28, 0.4108, 0.5946, 0.843, 1.181, 1.627, 2.187, 2.863");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.0832, 0.1176, 0.2324, 0.4536, 0.8142, 1.332, 2.014, 2.876, 3.934, 5.192",\
                 "0.0826, 0.117, 0.2324, 0.4536, 0.8146, 1.332, 2.014, 2.878, 3.934, 5.191",\
                 "0.083, 0.1176, 0.2324, 0.4532, 0.8158, 1.332, 2.014, 2.878, 3.934, 5.188",\
                 "0.0836, 0.1174, 0.2322, 0.4532, 0.8144, 1.332, 2.015, 2.879, 3.934, 5.192",\
                 "0.0836, 0.117, 0.2322, 0.4538, 0.8158, 1.332, 2.017, 2.879, 3.934, 5.192",\
                 "0.0828, 0.1178, 0.2322, 0.4536, 0.8144, 1.333, 2.014, 2.879, 3.934, 5.181",\
                 "0.0828, 0.1178, 0.2324, 0.4534, 0.8142, 1.333, 2.016, 2.878, 3.933, 5.19",\
                 "0.083, 0.1174, 0.2326, 0.4532, 0.8138, 1.333, 2.015, 2.877, 3.933, 5.182",\
                 "0.0828, 0.118, 0.2328, 0.4538, 0.8148, 1.332, 2.014, 2.876, 3.924, 5.186",\
                 "0.0828, 0.118, 0.232, 0.454, 0.815, 1.332, 2.016, 2.876, 3.924, 5.184");
        }
      }
    }
  }

