/*
 * 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__dlya_1) {
    area : 24.147200 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "1.5937722e-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.002094 ;
      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.0061, 0.01368, 0.02549, 0.04206, 0.06386, 0.09133, 0.1249, 0.1648");
          values("0.02415, 0.02422, 0.02434, 0.02448, 0.02456, 0.02463, 0.02467, 0.0247, 0.02472, 0.02473",\
                 "0.02407, 0.02412, 0.02425, 0.02438, 0.02447, 0.02454, 0.02458, 0.02461, 0.02462, 0.02464",\
                 "0.02392, 0.02397, 0.0241, 0.02423, 0.02433, 0.02439, 0.02444, 0.02446, 0.02448, 0.02449",\
                 "0.02384, 0.02388, 0.02401, 0.02414, 0.02424, 0.02431, 0.02435, 0.02438, 0.02439, 0.0244",\
                 "0.02378, 0.02382, 0.02395, 0.02408, 0.02418, 0.02424, 0.02429, 0.02432, 0.02433, 0.02434",\
                 "0.02373, 0.02378, 0.0239, 0.02404, 0.02413, 0.0242, 0.02424, 0.02427, 0.02428, 0.02429",\
                 "0.02369, 0.02374, 0.02386, 0.02399, 0.02409, 0.02415, 0.0242, 0.02422, 0.02422, 0.02418",\
                 "0.02365, 0.02369, 0.02382, 0.02395, 0.02405, 0.02411, 0.02416, 0.02417, 0.02404, 0.02358",\
                 "0.02362, 0.02366, 0.02379, 0.02392, 0.02401, 0.02401, 0.02365, 0.02289, 0.02229, 0.02186",\
                 "0.01256, 0.01261, 0.01275, 0.0129, 0.01301, 0.01309, 0.01313, 0.01316, 0.01318, 0.0132");
        }

        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.0061, 0.01368, 0.02549, 0.04206, 0.06386, 0.09133, 0.1249, 0.1648");
          values("0.01867, 0.01871, 0.01882, 0.01897, 0.01919, 0.0193, 0.0194, 0.01998, 0.02939, 0.073",\
                 "0.01864, 0.0187, 0.01881, 0.01899, 0.01917, 0.01922, 0.01941, 0.02013, 0.02996, 0.07418",\
                 "0.01856, 0.0186, 0.01873, 0.01891, 0.01903, 0.01918, 0.01921, 0.02004, 0.03164, 0.07827",\
                 "0.01847, 0.0185, 0.01863, 0.01879, 0.01893, 0.01909, 0.01922, 0.02034, 0.03526, 0.0857",\
                 "0.01839, 0.01843, 0.01855, 0.01871, 0.01885, 0.01896, 0.01912, 0.02107, 0.04179, 0.09584",\
                 "0.01833, 0.01839, 0.0185, 0.01867, 0.01881, 0.01895, 0.01906, 0.02326, 0.05316, 0.1074",\
                 "0.01829, 0.01833, 0.01844, 0.01859, 0.01879, 0.01894, 0.01937, 0.02895, 0.07036, 0.1179",\
                 "0.01825, 0.01829, 0.01844, 0.01857, 0.01873, 0.01892, 0.02105, 0.04337, 0.08771, 0.124",\
                 "0.01821, 0.01826, 0.0184, 0.01854, 0.01871, 0.0192, 0.03034, 0.06594, 0.09775, 0.1207",\
                 "0.01825, 0.01829, 0.01841, 0.01859, 0.0189, 0.02726, 0.05405, 0.07589, 0.09089, 0.1014");
        }
      }

      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.0061, 0.01368, 0.02549, 0.04206, 0.06386, 0.09133, 0.1249, 0.1648");
          values("4.086, 4.159, 4.358, 4.649, 5.015, 5.47, 6.035, 6.728, 7.567, 8.565",\
                 "4.148, 4.22, 4.42, 4.71, 5.077, 5.533, 6.097, 6.79, 7.629, 8.627",\
                 "4.401, 4.473, 4.673, 4.962, 5.33, 5.785, 6.35, 7.042, 7.882, 8.879",\
                 "4.921, 4.993, 5.193, 5.483, 5.85, 6.306, 6.87, 7.563, 8.402, 9.401",\
                 "5.747, 5.818, 6.018, 6.308, 6.675, 7.13, 7.695, 8.388, 9.227, 10.22",\
                 "6.889, 6.96, 7.159, 7.45, 7.817, 8.273, 8.837, 9.53, 10.37, 11.37",\
                 "8.288, 8.359, 8.558, 8.846, 9.215, 9.672, 10.24, 10.93, 11.77, 12.76",\
                 "9.886, 9.957, 10.16, 10.45, 10.82, 11.27, 11.84, 12.53, 13.37, 14.37",\
                 "11.68, 11.75, 11.95, 12.24, 12.6, 13.06, 13.62, 14.32, 15.16, 16.15",\
                 "13.66, 13.73, 13.93, 14.22, 14.58, 15.04, 15.6, 16.3, 17.14, 18.13");
        }

        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.0061, 0.01368, 0.02549, 0.04206, 0.06386, 0.09133, 0.1249, 0.1648");
          values("2.702, 2.791, 3.094, 3.668, 4.554, 5.795, 7.423, 9.477, 11.98, 14.96",\
                 "2.763, 2.853, 3.158, 3.731, 4.618, 5.858, 7.487, 9.538, 12.04, 15.01",\
                 "2.972, 3.061, 3.367, 3.94, 4.827, 6.067, 7.694, 9.749, 12.25, 15.24",\
                 "3.315, 3.403, 3.709, 4.283, 5.169, 6.41, 8.038, 10.09, 12.59, 15.58",\
                 "3.702, 3.791, 4.095, 4.669, 5.556, 6.796, 8.425, 10.48, 12.98, 15.96",\
                 "4.114, 4.203, 4.509, 5.08, 5.967, 7.208, 8.839, 10.88, 13.39, 16.37",\
                 "4.546, 4.634, 4.939, 5.512, 6.399, 7.641, 9.268, 11.32, 13.83, 16.81",\
                 "4.99, 5.079, 5.384, 5.958, 6.844, 8.084, 9.711, 11.76, 14.26, 17.24",\
                 "5.437, 5.526, 5.831, 6.405, 7.292, 8.532, 10.16, 12.21, 14.71, 17.69",\
                 "5.884, 5.972, 6.278, 6.85, 7.737, 8.977, 10.61, 12.65, 15.15, 18.13");
        }

        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.0061, 0.01368, 0.02549, 0.04206, 0.06386, 0.09133, 0.1249, 0.1648");
          values("0.5398, 0.596, 0.7668, 1.058, 1.493, 2.118, 2.974, 4.09, 5.473, 7.148",\
                 "0.5406, 0.5956, 0.766, 1.057, 1.493, 2.118, 2.974, 4.09, 5.473, 7.152",\
                 "0.5394, 0.5956, 0.766, 1.058, 1.495, 2.118, 2.974, 4.09, 5.477, 7.148",\
                 "0.5398, 0.5954, 0.7668, 1.058, 1.493, 2.117, 2.974, 4.089, 5.472, 7.143",\
                 "0.5394, 0.5952, 0.7672, 1.058, 1.493, 2.118, 2.973, 4.091, 5.471, 7.15",\
                 "0.5396, 0.5944, 0.768, 1.058, 1.492, 2.118, 2.974, 4.088, 5.474, 7.142",\
                 "0.54, 0.594, 0.766, 1.054, 1.494, 2.116, 2.974, 4.09, 5.474, 7.148",\
                 "0.538, 0.594, 0.768, 1.056, 1.492, 2.118, 2.974, 4.088, 5.476, 7.14",\
                 "0.54, 0.596, 0.766, 1.058, 1.496, 2.116, 2.972, 4.088, 5.478, 7.144",\
                 "0.54, 0.596, 0.766, 1.056, 1.494, 2.118, 2.972, 4.088, 5.476, 7.138");
        }

        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.0061, 0.01368, 0.02549, 0.04206, 0.06386, 0.09133, 0.1249, 0.1648");
          values("0.5326, 0.669, 1.156, 2.1, 3.578, 5.64, 8.363, 11.82, 15.99, 20.97",\
                 "0.5314, 0.669, 1.156, 2.101, 3.579, 5.646, 8.363, 11.79, 15.98, 20.97",\
                 "0.5316, 0.668, 1.156, 2.1, 3.573, 5.647, 8.361, 11.82, 15.99, 20.96",\
                 "0.5328, 0.6692, 1.156, 2.101, 3.574, 5.65, 8.364, 11.79, 15.99, 20.96",\
                 "0.5312, 0.6688, 1.156, 2.101, 3.574, 5.646, 8.365, 11.8, 15.98, 20.97",\
                 "0.5322, 0.6684, 1.156, 2.099, 3.58, 5.642, 8.367, 11.79, 15.98, 20.99",\
                 "0.533, 0.6688, 1.155, 2.099, 3.572, 5.642, 8.366, 11.8, 16.02, 20.97",\
                 "0.532, 0.666, 1.16, 2.1, 3.574, 5.64, 8.364, 11.79, 15.98, 20.97",\
                 "0.532, 0.67, 1.156, 2.1, 3.578, 5.642, 8.362, 11.79, 15.99, 20.96",\
                 "0.532, 0.668, 1.156, 2.102, 3.574, 5.646, 8.364, 11.79, 15.97, 20.99");
        }
      }
    }
  }

