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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3614 ;
      max_transition : 7.4 ;
      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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003488, 0.01222, 0.0289, 0.05488, 0.09133, 0.1393, 0.1997, 0.2735, 0.3614");
          values("0.4252, 0.4198, 0.4077, 0.397, 0.39, 0.3856, 0.3825, 0.3804, 0.3788, 0.3777",\
                 "0.4248, 0.4194, 0.4074, 0.3966, 0.3897, 0.3851, 0.3821, 0.38, 0.3784, 0.3773",\
                 "0.4272, 0.4216, 0.4096, 0.3988, 0.3919, 0.3875, 0.3844, 0.3822, 0.3807, 0.3796",\
                 "0.4359, 0.4304, 0.4184, 0.4077, 0.4008, 0.3963, 0.3932, 0.391, 0.3895, 0.3884",\
                 "0.4525, 0.447, 0.4349, 0.4242, 0.4174, 0.4128, 0.4097, 0.4075, 0.406, 0.4049",\
                 "0.4779, 0.4724, 0.4603, 0.4496, 0.4427, 0.4382, 0.4351, 0.433, 0.4314, 0.4303",\
                 "0.513, 0.5076, 0.4954, 0.4847, 0.4778, 0.4733, 0.4702, 0.468, 0.4665, 0.4654",\
                 "0.5586, 0.5531, 0.541, 0.5303, 0.5234, 0.5188, 0.5159, 0.5137, 0.5121, 0.511",\
                 "0.615, 0.6096, 0.5975, 0.5869, 0.58, 0.5755, 0.5724, 0.5702, 0.5687, 0.5676",\
                 "0.6831, 0.6776, 0.6656, 0.6549, 0.648, 0.6435, 0.6405, 0.6383, 0.6367, 0.6356");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003488, 0.01222, 0.0289, 0.05488, 0.09133, 0.1393, 0.1997, 0.2735, 0.3614");
          values("0.3561, 0.3531, 0.3474, 0.3435, 0.3413, 0.3407, 0.3405, 0.3405, 0.3412, 0.3454",\
                 "0.356, 0.3529, 0.3474, 0.3435, 0.3413, 0.3407, 0.3405, 0.3406, 0.3409, 0.3454",\
                 "0.3577, 0.3541, 0.3488, 0.345, 0.3427, 0.342, 0.3419, 0.3421, 0.3427, 0.347",\
                 "0.3633, 0.3601, 0.3547, 0.3507, 0.3486, 0.3478, 0.3479, 0.3476, 0.3486, 0.3529",\
                 "0.3759, 0.3725, 0.3672, 0.3632, 0.361, 0.3604, 0.3602, 0.3604, 0.3609, 0.3668",\
                 "0.3959, 0.3927, 0.3874, 0.3836, 0.3813, 0.3805, 0.3804, 0.3806, 0.3812, 0.3873",\
                 "0.4246, 0.4213, 0.4159, 0.412, 0.4097, 0.4091, 0.409, 0.4092, 0.4095, 0.4175",\
                 "0.4618, 0.4586, 0.4532, 0.4492, 0.4475, 0.4466, 0.4463, 0.4465, 0.447, 0.4572",\
                 "0.5084, 0.5051, 0.4998, 0.4957, 0.4933, 0.4927, 0.4941, 0.4938, 0.4949, 0.5059",\
                 "0.5647, 0.5615, 0.556, 0.5518, 0.5495, 0.5484, 0.5485, 0.5505, 0.5526, 0.5689");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003488, 0.01222, 0.0289, 0.05488, 0.09133, 0.1393, 0.1997, 0.2735, 0.3614");
          values("2.728, 2.768, 2.879, 3.039, 3.245, 3.505, 3.827, 4.223, 4.703, 5.274",\
                 "2.739, 2.78, 2.89, 3.05, 3.257, 3.517, 3.838, 4.234, 4.714, 5.285",\
                 "2.797, 2.838, 2.948, 3.108, 3.315, 3.574, 3.896, 4.292, 4.772, 5.343",\
                 "2.922, 2.962, 3.073, 3.233, 3.44, 3.699, 4.021, 4.417, 4.897, 5.468",\
                 "3.106, 3.146, 3.257, 3.417, 3.624, 3.883, 4.205, 4.601, 5.081, 5.652",\
                 "3.342, 3.382, 3.493, 3.653, 3.86, 4.119, 4.441, 4.837, 5.317, 5.889",\
                 "3.628, 3.669, 3.779, 3.939, 4.146, 4.406, 4.727, 5.123, 5.603, 6.175",\
                 "3.963, 4.004, 4.114, 4.274, 4.481, 4.74, 5.062, 5.458, 5.938, 6.51",\
                 "4.35, 4.39, 4.501, 4.661, 4.868, 5.127, 5.449, 5.845, 6.325, 6.896",\
                 "4.789, 4.83, 4.94, 5.101, 5.307, 5.566, 5.888, 6.284, 6.764, 7.337");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003488, 0.01222, 0.0289, 0.05488, 0.09133, 0.1393, 0.1997, 0.2735, 0.3614");
          values("2.637, 2.673, 2.779, 2.965, 3.251, 3.652, 4.182, 4.85, 5.666, 6.638",\
                 "2.646, 2.682, 2.788, 2.974, 3.26, 3.661, 4.191, 4.859, 5.674, 6.649",\
                 "2.673, 2.708, 2.814, 3, 3.286, 3.687, 4.217, 4.885, 5.701, 6.673",\
                 "2.69, 2.725, 2.832, 3.017, 3.303, 3.705, 4.234, 4.903, 5.719, 6.693",\
                 "2.681, 2.716, 2.823, 3.008, 3.294, 3.696, 4.225, 4.893, 5.71, 6.684",\
                 "2.64, 2.676, 2.782, 2.968, 3.253, 3.655, 4.184, 4.852, 5.669, 6.642",\
                 "2.563, 2.598, 2.704, 2.89, 3.175, 3.577, 4.107, 4.775, 5.59, 6.564",\
                 "2.441, 2.477, 2.583, 2.769, 3.054, 3.456, 3.985, 4.653, 5.47, 6.444",\
                 "2.274, 2.31, 2.416, 2.603, 2.888, 3.29, 3.819, 4.486, 5.302, 6.276",\
                 "2.059, 2.094, 2.201, 2.386, 2.672, 3.073, 3.603, 4.27, 5.085, 6.057");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003488, 0.01222, 0.0289, 0.05488, 0.09133, 0.1393, 0.1997, 0.2735, 0.3614");
          values("0.1996, 0.2412, 0.3526, 0.528, 0.79, 1.159, 1.659, 2.314, 3.124, 4.109",\
                 "0.2, 0.241, 0.352, 0.5278, 0.7894, 1.158, 1.66, 2.314, 3.124, 4.109",\
                 "0.2002, 0.2416, 0.3534, 0.5274, 0.7896, 1.159, 1.66, 2.313, 3.124, 4.108",\
                 "0.2002, 0.241, 0.352, 0.5272, 0.7898, 1.157, 1.659, 2.314, 3.126, 4.109",\
                 "0.1994, 0.2414, 0.3518, 0.5276, 0.789, 1.159, 1.658, 2.314, 3.124, 4.109",\
                 "0.1994, 0.2414, 0.3528, 0.5274, 0.7898, 1.159, 1.658, 2.314, 3.124, 4.107",\
                 "0.1996, 0.2416, 0.352, 0.528, 0.7894, 1.159, 1.659, 2.314, 3.128, 4.104",\
                 "0.2, 0.2412, 0.352, 0.5276, 0.7898, 1.158, 1.659, 2.313, 3.124, 4.108",\
                 "0.1994, 0.2416, 0.352, 0.5274, 0.7886, 1.16, 1.658, 2.313, 3.124, 4.11",\
                 "0.2004, 0.2408, 0.3522, 0.5276, 0.7892, 1.159, 1.661, 2.31, 3.128, 4.108");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003488, 0.01222, 0.0289, 0.05488, 0.09133, 0.1393, 0.1997, 0.2735, 0.3614");
          values("0.141, 0.1864, 0.348, 0.6678, 1.185, 1.921, 2.899, 4.123, 5.61, 7.393",\
                 "0.1412, 0.1866, 0.348, 0.6678, 1.185, 1.922, 2.899, 4.125, 5.614, 7.397",\
                 "0.1406, 0.1868, 0.3478, 0.6678, 1.185, 1.921, 2.899, 4.119, 5.613, 7.396",\
                 "0.1408, 0.1866, 0.3476, 0.668, 1.187, 1.923, 2.899, 4.123, 5.611, 7.396",\
                 "0.1414, 0.186, 0.3478, 0.6672, 1.187, 1.924, 2.893, 4.12, 5.611, 7.411",\
                 "0.1412, 0.1866, 0.348, 0.6678, 1.185, 1.923, 2.894, 4.12, 5.613, 7.395",\
                 "0.1408, 0.1858, 0.3482, 0.6682, 1.185, 1.921, 2.898, 4.127, 5.614, 7.397",\
                 "0.1408, 0.1864, 0.3476, 0.6678, 1.187, 1.922, 2.894, 4.126, 5.613, 7.412",\
                 "0.141, 0.1868, 0.3478, 0.6676, 1.185, 1.923, 2.894, 4.12, 5.623, 7.39",\
                 "0.1408, 0.1862, 0.3478, 0.6676, 1.187, 1.921, 2.896, 4.121, 5.613, 7.406");
        }
      }
    }
  }

