/*
 * 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__dlyc_2) {
    area : 59.270400 ;

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.619638e-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.002614 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.474 ;
      max_transition : 6.8 ;
      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.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004264, 0.01572, 0.03761, 0.0717, 0.1195, 0.1825, 0.2618, 0.3586, 0.474");
          values("0.09448, 0.09281, 0.09031, 0.08912, 0.08861, 0.08841, 0.08836, 0.08831, 0.08831, 0.08831",\
                 "0.09434, 0.0926, 0.09011, 0.08889, 0.08844, 0.0882, 0.08819, 0.08816, 0.08815, 0.08814",\
                 "0.0941, 0.0924, 0.08987, 0.08867, 0.08816, 0.08798, 0.08796, 0.08793, 0.0879, 0.0879",\
                 "0.09408, 0.09239, 0.08989, 0.08866, 0.08819, 0.08798, 0.08791, 0.08789, 0.08789, 0.0879",\
                 "0.09439, 0.09268, 0.09023, 0.08894, 0.08849, 0.08827, 0.0882, 0.0882, 0.0882, 0.08818",\
                 "0.09504, 0.09328, 0.09081, 0.08959, 0.08915, 0.08893, 0.08884, 0.08885, 0.0888, 0.08881",\
                 "0.09601, 0.09431, 0.09179, 0.09057, 0.09006, 0.08988, 0.08982, 0.08984, 0.08979, 0.0898",\
                 "0.09741, 0.0957, 0.0932, 0.09201, 0.09149, 0.09129, 0.0912, 0.09119, 0.0912, 0.09119",\
                 "0.09921, 0.09752, 0.09501, 0.09381, 0.09329, 0.09312, 0.09307, 0.09304, 0.09304, 0.09302",\
                 "0.1015, 0.09978, 0.0973, 0.09608, 0.09559, 0.09541, 0.09534, 0.09532, 0.09528, 0.0953");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004264, 0.01572, 0.03761, 0.0717, 0.1195, 0.1825, 0.2618, 0.3586, 0.474");
          values("0.07473, 0.07459, 0.07434, 0.07446, 0.07483, 0.0754, 0.07602, 0.07651, 0.07701, 0.07751",\
                 "0.07468, 0.07447, 0.07425, 0.0744, 0.07481, 0.07542, 0.07604, 0.07649, 0.07723, 0.07773",\
                 "0.07448, 0.0743, 0.07407, 0.07418, 0.07465, 0.07519, 0.07579, 0.07629, 0.07679, 0.07772",\
                 "0.07435, 0.07412, 0.07393, 0.07396, 0.07446, 0.07513, 0.07561, 0.07619, 0.07655, 0.07728",\
                 "0.07445, 0.07427, 0.07405, 0.07408, 0.07463, 0.07521, 0.07573, 0.07619, 0.07655, 0.07728",\
                 "0.07485, 0.07466, 0.0745, 0.07446, 0.07501, 0.07562, 0.0762, 0.0766, 0.07693, 0.07775",\
                 "0.07556, 0.07541, 0.0752, 0.07529, 0.07588, 0.07643, 0.07705, 0.0774, 0.07784, 0.07861",\
                 "0.07669, 0.07645, 0.07634, 0.07652, 0.07679, 0.07742, 0.078, 0.07849, 0.07895, 0.07991",\
                 "0.07828, 0.07812, 0.07784, 0.07782, 0.07834, 0.07911, 0.07967, 0.08005, 0.08061, 0.08156",\
                 "0.08029, 0.08004, 0.07992, 0.07986, 0.08022, 0.08073, 0.082, 0.08262, 0.0825, 0.08391");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004264, 0.01572, 0.03761, 0.0717, 0.1195, 0.1825, 0.2618, 0.3586, 0.474");
          values("3.119, 3.176, 3.323, 3.52, 3.745, 3.998, 4.286, 4.618, 5.003, 5.451",\
                 "3.133, 3.19, 3.337, 3.534, 3.758, 4.012, 4.3, 4.632, 5.017, 5.464",\
                 "3.19, 3.247, 3.395, 3.591, 3.816, 4.069, 4.357, 4.689, 5.074, 5.521",\
                 "3.311, 3.368, 3.515, 3.712, 3.937, 4.19, 4.478, 4.81, 5.195, 5.642",\
                 "3.5, 3.557, 3.705, 3.901, 4.126, 4.379, 4.668, 4.999, 5.385, 5.832",\
                 "3.737, 3.794, 3.942, 4.138, 4.363, 4.616, 4.904, 5.236, 5.621, 6.069",\
                 "3.999, 4.056, 4.204, 4.4, 4.625, 4.878, 5.167, 5.498, 5.884, 6.331",\
                 "4.29, 4.347, 4.495, 4.691, 4.916, 5.169, 5.457, 5.789, 6.174, 6.622",\
                 "4.614, 4.672, 4.819, 5.015, 5.24, 5.493, 5.782, 6.114, 6.499, 6.946",\
                 "4.978, 5.035, 5.183, 5.379, 5.603, 5.857, 6.146, 6.478, 6.862, 7.309");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004264, 0.01572, 0.03761, 0.0717, 0.1195, 0.1825, 0.2618, 0.3586, 0.474");
          values("2.756, 2.804, 2.933, 3.133, 3.419, 3.815, 4.334, 4.985, 5.781, 6.73",\
                 "2.769, 2.818, 2.947, 3.146, 3.433, 3.828, 4.346, 4.999, 5.795, 6.742",\
                 "2.811, 2.86, 2.989, 3.188, 3.475, 3.871, 4.389, 5.041, 5.836, 6.785",\
                 "2.87, 2.918, 3.047, 3.247, 3.533, 3.929, 4.447, 5.099, 5.895, 6.844",\
                 "2.914, 2.962, 3.092, 3.291, 3.577, 3.973, 4.492, 5.144, 5.939, 6.888",\
                 "2.936, 2.985, 3.114, 3.312, 3.599, 3.995, 4.514, 5.166, 5.961, 6.91",\
                 "2.933, 2.981, 3.11, 3.31, 3.596, 3.992, 4.51, 5.162, 5.958, 6.907",\
                 "2.901, 2.95, 3.079, 3.279, 3.565, 3.961, 4.479, 5.131, 5.926, 6.874",\
                 "2.841, 2.89, 3.019, 3.218, 3.505, 3.901, 4.419, 5.071, 5.867, 6.815",\
                 "2.749, 2.798, 2.927, 3.126, 3.413, 3.808, 4.327, 4.979, 5.774, 6.721");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004264, 0.01572, 0.03761, 0.0717, 0.1195, 0.1825, 0.2618, 0.3586, 0.474");
          values("0.2862, 0.3344, 0.4612, 0.6284, 0.8382, 1.11, 1.465, 1.92, 2.499, 3.207",\
                 "0.286, 0.3338, 0.4614, 0.6278, 0.8376, 1.11, 1.463, 1.921, 2.498, 3.207",\
                 "0.2862, 0.3342, 0.461, 0.628, 0.8394, 1.11, 1.464, 1.92, 2.499, 3.206",\
                 "0.2862, 0.3346, 0.4614, 0.628, 0.8392, 1.111, 1.465, 1.921, 2.499, 3.205",\
                 "0.2862, 0.3344, 0.461, 0.6288, 0.838, 1.11, 1.466, 1.921, 2.499, 3.205",\
                 "0.2864, 0.3348, 0.4608, 0.629, 0.8392, 1.112, 1.465, 1.92, 2.498, 3.208",\
                 "0.2864, 0.3342, 0.4608, 0.6282, 0.8378, 1.11, 1.465, 1.92, 2.498, 3.208",\
                 "0.286, 0.3338, 0.4608, 0.6284, 0.8376, 1.11, 1.465, 1.92, 2.497, 3.208",\
                 "0.2864, 0.3338, 0.4608, 0.6286, 0.8392, 1.112, 1.464, 1.921, 2.498, 3.207",\
                 "0.2862, 0.3344, 0.461, 0.6292, 0.8374, 1.11, 1.465, 1.924, 2.498, 3.208");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004264, 0.01572, 0.03761, 0.0717, 0.1195, 0.1825, 0.2618, 0.3586, 0.474");
          values("0.1642, 0.213, 0.36, 0.6406, 1.105, 1.776, 2.664, 3.792, 5.162, 6.796",\
                 "0.1644, 0.213, 0.3598, 0.6398, 1.104, 1.774, 2.667, 3.786, 5.166, 6.806",\
                 "0.1638, 0.2132, 0.3602, 0.6408, 1.105, 1.776, 2.667, 3.792, 5.162, 6.806",\
                 "0.1632, 0.213, 0.36, 0.64, 1.104, 1.775, 2.666, 3.791, 5.165, 6.805",\
                 "0.1642, 0.2136, 0.3604, 0.6412, 1.104, 1.774, 2.666, 3.786, 5.159, 6.797",\
                 "0.1642, 0.2128, 0.36, 0.64, 1.103, 1.774, 2.664, 3.791, 5.158, 6.796",\
                 "0.1636, 0.2132, 0.3602, 0.64, 1.105, 1.773, 2.667, 3.791, 5.166, 6.804",\
                 "0.1632, 0.2134, 0.3608, 0.6402, 1.105, 1.774, 2.666, 3.791, 5.16, 6.804",\
                 "0.163, 0.2136, 0.3606, 0.6408, 1.105, 1.773, 2.662, 3.791, 5.165, 6.803",\
                 "0.1632, 0.2128, 0.3602, 0.6412, 1.104, 1.774, 2.663, 3.787, 5.161, 6.797");
        }
      }
    }
  }

