/*
 * 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__dlyb_2) {
    area : 39.513600 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "1.868022e-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.002486 ;
      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.3302 ;
      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.003272, 0.01125, 0.02648, 0.0502, 0.08349, 0.1273, 0.1825, 0.2499, 0.3302");
          values("0.03495, 0.03502, 0.03522, 0.03545, 0.03569, 0.03591, 0.03608, 0.0362, 0.03627, 0.03622",\
                 "0.03489, 0.03496, 0.03515, 0.03539, 0.03563, 0.03584, 0.03601, 0.03613, 0.0362, 0.03614",\
                 "0.03476, 0.03484, 0.03502, 0.03526, 0.0355, 0.03571, 0.03589, 0.036, 0.03606, 0.03596",\
                 "0.03466, 0.03474, 0.03492, 0.03516, 0.0354, 0.03561, 0.03578, 0.03588, 0.03589, 0.03568",\
                 "0.03457, 0.03464, 0.03483, 0.03506, 0.03531, 0.03551, 0.03566, 0.03573, 0.03561, 0.0351",\
                 "0.0344, 0.03448, 0.03466, 0.0349, 0.03512, 0.0353, 0.03538, 0.03523, 0.03463, 0.03381",\
                 "0.03363, 0.0337, 0.03388, 0.03408, 0.03422, 0.03419, 0.03363, 0.03278, 0.03214, 0.03167",\
                 "0.02916, 0.02922, 0.02883, 0.02796, 0.02744, 0.0272, 0.02709, 0.02704, 0.02701, 0.027",\
                 "0.01736, 0.01742, 0.01757, 0.01778, 0.01802, 0.01824, 0.01842, 0.01855, 0.01864, 0.01871",\
                 "0.004712, 0.004711, 0.004708, 0.004706, 0.004705, 0.004704, 0.004703, 0.004702, 0.004702, 0.004701");
        }

        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.003272, 0.01125, 0.02648, 0.0502, 0.08349, 0.1273, 0.1825, 0.2499, 0.3302");
          values("0.0201, 0.02019, 0.02035, 0.02061, 0.02089, 0.02114, 0.02171, 0.03223, 0.1004, 0.2069",\
                 "0.02009, 0.02017, 0.02033, 0.02057, 0.02087, 0.02114, 0.02177, 0.03286, 0.1021, 0.2085",\
                 "0.02002, 0.02011, 0.0203, 0.02054, 0.02074, 0.02111, 0.02179, 0.03547, 0.1102, 0.2136",\
                 "0.0199, 0.02, 0.02017, 0.02041, 0.02061, 0.02111, 0.02208, 0.04194, 0.1255, 0.2218",\
                 "0.01982, 0.01988, 0.02008, 0.02028, 0.02051, 0.02087, 0.02307, 0.05575, 0.1464, 0.2299",\
                 "0.01972, 0.01979, 0.01999, 0.02019, 0.0205, 0.02077, 0.02728, 0.08084, 0.167, 0.2336",\
                 "0.01965, 0.01972, 0.0199, 0.02016, 0.02042, 0.02146, 0.04215, 0.1146, 0.1799, 0.2268",\
                 "0.0196, 0.01968, 0.01989, 0.02011, 0.02045, 0.02834, 0.08058, 0.1357, 0.1741, 0.2009",\
                 "0.01953, 0.01962, 0.01977, 0.02, 0.02689, 0.06609, 0.09891, 0.1203, 0.1345, 0.1443",\
                 "0.01867, 0.01867, 0.02258, 0.03033, 0.03527, 0.03806, 0.03968, 0.04066, 0.04129, 0.04172");
        }
      }

      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.003272, 0.01125, 0.02648, 0.0502, 0.08349, 0.1273, 0.1825, 0.2499, 0.3302");
          values("10.56, 10.75, 11.21, 11.79, 12.43, 13.13, 13.89, 14.74, 15.69, 16.76",\
                 "10.63, 10.82, 11.28, 11.86, 12.5, 13.19, 13.96, 14.81, 15.75, 16.83",\
                 "10.89, 11.08, 11.54, 12.11, 12.75, 13.45, 14.22, 15.06, 16.01, 17.08",\
                 "11.41, 11.59, 12.05, 12.63, 13.27, 13.97, 14.73, 15.58, 16.53, 17.6",\
                 "12.23, 12.41, 12.88, 13.45, 14.09, 14.79, 15.55, 16.4, 17.35, 18.42",\
                 "13.39, 13.58, 14.04, 14.61, 15.25, 15.95, 16.72, 17.56, 18.51, 19.58",\
                 "14.91, 15.09, 15.55, 16.13, 16.77, 17.47, 18.23, 19.08, 20.03, 21.1",\
                 "16.74, 16.92, 17.38, 17.96, 18.6, 19.3, 20.06, 20.91, 21.86, 22.93",\
                 "18.82, 19, 19.46, 20.04, 20.68, 21.38, 22.15, 22.99, 23.94, 25.01",\
                 "21.12, 21.3, 21.76, 22.34, 22.98, 23.68, 24.44, 25.29, 26.24, 27.31");
        }

        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.003272, 0.01125, 0.02648, 0.0502, 0.08349, 0.1273, 0.1825, 0.2499, 0.3302");
          values("7.681, 7.811, 8.183, 8.795, 9.698, 10.95, 12.59, 14.65, 17.16, 20.15",\
                 "7.744, 7.874, 8.246, 8.857, 9.76, 11.01, 12.65, 14.71, 17.22, 20.22",\
                 "7.945, 8.075, 8.448, 9.059, 9.962, 11.21, 12.85, 14.91, 17.42, 20.42",\
                 "8.318, 8.447, 8.82, 9.43, 10.33, 11.58, 13.22, 15.28, 17.8, 20.79",\
                 "8.79, 8.918, 9.291, 9.903, 10.81, 12.05, 13.69, 15.75, 18.27, 21.26",\
                 "9.306, 9.436, 9.807, 10.42, 11.32, 12.57, 14.21, 16.27, 18.78, 21.78",\
                 "9.854, 9.984, 10.36, 10.97, 11.87, 13.12, 14.76, 16.82, 19.33, 22.33",\
                 "10.43, 10.56, 10.93, 11.54, 12.45, 13.7, 15.33, 17.39, 19.91, 22.9",\
                 "11.02, 11.15, 11.53, 12.14, 13.04, 14.29, 15.93, 17.99, 20.5, 23.5",\
                 "11.63, 11.76, 12.13, 12.74, 13.64, 14.89, 16.53, 18.59, 21.1, 24.1");
        }

        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.003272, 0.01125, 0.02648, 0.0502, 0.08349, 0.1273, 0.1825, 0.2499, 0.3302");
          values("1.316, 1.418, 1.692, 2.09, 2.6, 3.24, 4.05, 5.046, 6.294, 7.826",\
                 "1.318, 1.418, 1.694, 2.092, 2.598, 3.244, 4.046, 5.048, 6.292, 7.826",\
                 "1.316, 1.416, 1.692, 2.09, 2.602, 3.244, 4.048, 5.06, 6.294, 7.826",\
                 "1.318, 1.416, 1.692, 2.092, 2.6, 3.244, 4.046, 5.048, 6.292, 7.828",\
                 "1.316, 1.418, 1.69, 2.092, 2.6, 3.246, 4.054, 5.044, 6.29, 7.826",\
                 "1.316, 1.414, 1.694, 2.09, 2.602, 3.244, 4.054, 5.046, 6.296, 7.824",\
                 "1.316, 1.418, 1.69, 2.092, 2.602, 3.244, 4.052, 5.048, 6.29, 7.826",\
                 "1.316, 1.418, 1.69, 2.088, 2.598, 3.242, 4.046, 5.05, 6.29, 7.822",\
                 "1.316, 1.42, 1.692, 2.092, 2.6, 3.24, 4.052, 5.046, 6.294, 7.826",\
                 "1.316, 1.414, 1.692, 2.09, 2.6, 3.244, 4.048, 5.044, 6.296, 7.828");
        }

        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.003272, 0.01125, 0.02648, 0.0502, 0.08349, 0.1273, 0.1825, 0.2499, 0.3302");
          values("0.5876, 0.7242, 1.181, 2.071, 3.514, 5.588, 8.32, 11.77, 15.99, 20.97",\
                 "0.5882, 0.7244, 1.181, 2.07, 3.515, 5.588, 8.32, 11.75, 15.96, 20.97",\
                 "0.5884, 0.7242, 1.181, 2.071, 3.514, 5.588, 8.318, 11.75, 15.96, 20.97",\
                 "0.5884, 0.7238, 1.179, 2.071, 3.514, 5.588, 8.316, 11.76, 15.96, 20.97",\
                 "0.588, 0.724, 1.182, 2.07, 3.514, 5.588, 8.312, 11.77, 15.99, 20.98",\
                 "0.588, 0.724, 1.18, 2.07, 3.514, 5.58, 8.32, 11.75, 15.95, 20.99",\
                 "0.588, 0.724, 1.18, 2.07, 3.52, 5.584, 8.308, 11.76, 15.96, 20.97",\
                 "0.588, 0.726, 1.182, 2.07, 3.52, 5.584, 8.314, 11.75, 15.96, 20.97",\
                 "0.588, 0.724, 1.18, 2.07, 3.514, 5.578, 8.316, 11.77, 15.96, 20.97",\
                 "0.588, 0.724, 1.18, 2.07, 3.514, 5.58, 8.314, 11.75, 15.96, 20.98");
        }
      }
    }
  }

