/*
 * 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_4) {
    area : 37.318400 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.417 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04509, 0.1106, 0.2127, 0.3559, 0.5444, 0.7819, 1.072, 1.417");
          values("0.3013, 0.2836, 0.2495, 0.2275, 0.216, 0.209, 0.2048, 0.2019, 0.1999, 0.1984",\
                 "0.3007, 0.2829, 0.2489, 0.2268, 0.2153, 0.2084, 0.2042, 0.2013, 0.1994, 0.1979",\
                 "0.3009, 0.2831, 0.249, 0.227, 0.2155, 0.2087, 0.2044, 0.2014, 0.1994, 0.1981",\
                 "0.3032, 0.2856, 0.2514, 0.2295, 0.2179, 0.2111, 0.2066, 0.2038, 0.2018, 0.2004",\
                 "0.3077, 0.2899, 0.2559, 0.2339, 0.2223, 0.2155, 0.2111, 0.2083, 0.2063, 0.2049",\
                 "0.3146, 0.2969, 0.2627, 0.2408, 0.2295, 0.2226, 0.2182, 0.2154, 0.2133, 0.2118",\
                 "0.3241, 0.3064, 0.2724, 0.2504, 0.2389, 0.2321, 0.2278, 0.2248, 0.2228, 0.2211",\
                 "0.3365, 0.3187, 0.2848, 0.2627, 0.2513, 0.2445, 0.2401, 0.2373, 0.2351, 0.233",\
                 "0.3519, 0.3342, 0.2999, 0.2781, 0.2667, 0.2598, 0.2555, 0.2525, 0.25, 0.2465",\
                 "0.3704, 0.3527, 0.3184, 0.2966, 0.2851, 0.2783, 0.2738, 0.2704, 0.2658, 0.2589");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04509, 0.1106, 0.2127, 0.3559, 0.5444, 0.7819, 1.072, 1.417");
          values("0.1742, 0.1685, 0.1627, 0.1608, 0.1616, 0.1637, 0.1658, 0.1783, 0.2925, 0.7974",\
                 "0.1742, 0.1684, 0.1624, 0.1605, 0.1614, 0.1637, 0.1658, 0.1779, 0.2946, 0.8095",\
                 "0.1742, 0.1685, 0.1626, 0.1605, 0.1615, 0.1631, 0.1658, 0.1793, 0.3047, 0.8421",\
                 "0.1758, 0.1701, 0.1639, 0.1622, 0.1633, 0.1652, 0.1682, 0.1842, 0.3224, 0.9008",\
                 "0.1792, 0.1733, 0.1679, 0.1661, 0.1664, 0.1685, 0.1718, 0.1908, 0.3534, 0.9926",\
                 "0.1846, 0.1788, 0.1725, 0.1707, 0.1724, 0.1733, 0.177, 0.2022, 0.3991, 1.125",\
                 "0.1924, 0.1867, 0.1805, 0.1785, 0.1796, 0.1835, 0.1864, 0.2196, 0.4722, 1.309",\
                 "0.2026, 0.1971, 0.1908, 0.1884, 0.1886, 0.1915, 0.1986, 0.2519, 0.5894, 1.569",\
                 "0.2153, 0.2097, 0.2035, 0.2009, 0.201, 0.202, 0.2102, 0.306, 0.7784, 1.928",\
                 "0.2309, 0.2251, 0.2191, 0.2158, 0.2167, 0.2175, 0.2314, 0.3987, 1.074, 2.384");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04509, 0.1106, 0.2127, 0.3559, 0.5444, 0.7819, 1.072, 1.417");
          values("2.259, 2.381, 2.677, 3.076, 3.555, 4.115, 4.78, 5.575, 6.523, 7.645",\
                 "2.286, 2.408, 2.704, 3.103, 3.582, 4.142, 4.807, 5.602, 6.55, 7.672",\
                 "2.419, 2.542, 2.837, 3.236, 3.716, 4.276, 4.94, 5.735, 6.684, 7.806",\
                 "2.686, 2.808, 3.104, 3.503, 3.982, 4.543, 5.207, 6.002, 6.951, 8.072",\
                 "3.037, 3.16, 3.456, 3.855, 4.334, 4.893, 5.558, 6.353, 7.302, 8.424",\
                 "3.471, 3.594, 3.89, 4.289, 4.768, 5.327, 5.992, 6.787, 7.736, 8.857",\
                 "3.997, 4.12, 4.416, 4.815, 5.295, 5.855, 6.519, 7.313, 8.262, 9.384",\
                 "4.621, 4.742, 5.038, 5.439, 5.918, 6.477, 7.142, 7.936, 8.884, 10.01",\
                 "5.342, 5.464, 5.76, 6.16, 6.638, 7.198, 7.863, 8.658, 9.607, 10.73",\
                 "6.169, 6.29, 6.587, 6.986, 7.465, 8.025, 8.69, 9.484, 10.43, 11.56");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04509, 0.1106, 0.2127, 0.3559, 0.5444, 0.7819, 1.072, 1.417");
          values("1.442, 1.54, 1.805, 2.231, 2.866, 3.754, 4.921, 6.395, 8.19, 10.33",\
                 "1.469, 1.567, 1.832, 2.258, 2.893, 3.782, 4.947, 6.422, 8.214, 10.36",\
                 "1.548, 1.646, 1.911, 2.336, 2.972, 3.86, 5.027, 6.5, 8.295, 10.44",\
                 "1.6, 1.698, 1.963, 2.389, 3.024, 3.913, 5.079, 6.553, 8.347, 10.49",\
                 "1.597, 1.695, 1.96, 2.386, 3.021, 3.909, 5.077, 6.549, 8.345, 10.49",\
                 "1.529, 1.627, 1.892, 2.318, 2.953, 3.839, 5.007, 6.48, 8.276, 10.41",\
                 "1.387, 1.485, 1.75, 2.175, 2.811, 3.698, 4.864, 6.333, 8.128, 10.26",\
                 "1.163, 1.262, 1.527, 1.953, 2.588, 3.475, 4.641, 6.109, 7.903, 10.04",\
                 "0.8506, 0.9488, 1.215, 1.64, 2.275, 3.162, 4.329, 5.796, 7.589, 9.725",\
                 "0.4439, 0.5416, 0.8081, 1.233, 1.868, 2.755, 3.923, 5.39, 7.183, 9.319");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04509, 0.1106, 0.2127, 0.3559, 0.5444, 0.7819, 1.072, 1.417");
          values("0.4744, 0.587, 0.8574, 1.25, 1.759, 2.449, 3.382, 4.613, 6.158, 8.03",\
                 "0.475, 0.5864, 0.8568, 1.247, 1.76, 2.448, 3.385, 4.613, 6.158, 8.03",\
                 "0.475, 0.5862, 0.857, 1.249, 1.76, 2.449, 3.385, 4.609, 6.158, 8.024",\
                 "0.475, 0.5866, 0.8564, 1.249, 1.759, 2.448, 3.385, 4.613, 6.158, 8.035",\
                 "0.4744, 0.5866, 0.857, 1.248, 1.76, 2.448, 3.383, 4.613, 6.157, 8.029",\
                 "0.474, 0.5864, 0.8572, 1.248, 1.76, 2.449, 3.382, 4.611, 6.15, 8.03",\
                 "0.4744, 0.5868, 0.8564, 1.248, 1.758, 2.45, 3.384, 4.61, 6.16, 8.036",\
                 "0.4742, 0.586, 0.8572, 1.248, 1.758, 2.446, 3.384, 4.608, 6.158, 8.034",\
                 "0.476, 0.588, 0.856, 1.248, 1.76, 2.45, 3.386, 4.608, 6.152, 8.034",\
                 "0.474, 0.588, 0.858, 1.248, 1.76, 2.448, 3.386, 4.614, 6.15, 8.022");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04509, 0.1106, 0.2127, 0.3559, 0.5444, 0.7819, 1.072, 1.417");
          values("0.2416, 0.3566, 0.7036, 1.366, 2.462, 4.024, 6.079, 8.677, 11.85, 15.63",\
                 "0.2426, 0.357, 0.704, 1.368, 2.463, 4.024, 6.087, 8.676, 11.86, 15.63",\
                 "0.2416, 0.3582, 0.7024, 1.369, 2.459, 4.022, 6.08, 8.678, 11.85, 15.63",\
                 "0.242, 0.357, 0.7026, 1.369, 2.459, 4.024, 6.081, 8.672, 11.85, 15.63",\
                 "0.242, 0.3578, 0.703, 1.369, 2.463, 4.018, 6.085, 8.68, 11.85, 15.62",\
                 "0.2416, 0.357, 0.7046, 1.366, 2.459, 4.019, 6.078, 8.673, 11.85, 15.63",\
                 "0.2422, 0.357, 0.7028, 1.367, 2.461, 4.018, 6.082, 8.683, 11.83, 15.62",\
                 "0.242, 0.3572, 0.7034, 1.367, 2.459, 4.019, 6.077, 8.667, 11.85, 15.6",\
                 "0.2428, 0.3582, 0.704, 1.368, 2.463, 4.019, 6.076, 8.668, 11.83, 15.61",\
                 "0.2428, 0.3586, 0.706, 1.366, 2.458, 4.02, 6.078, 8.676, 11.83, 15.6");
        }
      }
    }
  }

