/*
 * 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_1) {
    area : 54.880000 ;

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3578 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.003463, 0.01211, 0.02862, 0.05434, 0.09042, 0.1379, 0.1977, 0.2708, 0.3578");
          values("0.1823, 0.181, 0.1794, 0.1787, 0.1783, 0.1783, 0.1783, 0.1783, 0.1783, 0.1782",\
                 "0.1818, 0.1806, 0.179, 0.1782, 0.178, 0.1778, 0.1779, 0.1778, 0.1778, 0.1778",\
                 "0.1815, 0.1802, 0.1786, 0.1779, 0.1776, 0.1775, 0.1775, 0.1775, 0.1775, 0.1775",\
                 "0.1821, 0.1808, 0.1793, 0.1785, 0.1782, 0.1781, 0.1781, 0.1781, 0.1781, 0.1781",\
                 "0.184, 0.1827, 0.1811, 0.1804, 0.1802, 0.18, 0.18, 0.18, 0.18, 0.18",\
                 "0.1871, 0.1858, 0.1843, 0.1835, 0.1833, 0.1832, 0.1832, 0.1831, 0.1831, 0.1831",\
                 "0.1917, 0.1905, 0.1889, 0.1881, 0.1878, 0.1878, 0.1878, 0.1877, 0.1877, 0.1877",\
                 "0.1978, 0.1965, 0.195, 0.1942, 0.1939, 0.1938, 0.1938, 0.1938, 0.1938, 0.1938",\
                 "0.2055, 0.2042, 0.2027, 0.2019, 0.2016, 0.2015, 0.2016, 0.2015, 0.2015, 0.2015",\
                 "0.215, 0.2137, 0.2122, 0.2114, 0.2112, 0.211, 0.211, 0.211, 0.211, 0.2109");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.003463, 0.01211, 0.02862, 0.05434, 0.09042, 0.1379, 0.1977, 0.2708, 0.3578");
          values("0.1528, 0.1525, 0.1522, 0.1524, 0.153, 0.1538, 0.1543, 0.1549, 0.1573, 0.1827",\
                 "0.1527, 0.1523, 0.1521, 0.1524, 0.153, 0.1536, 0.1543, 0.1549, 0.1574, 0.1811",\
                 "0.1524, 0.1521, 0.1518, 0.1521, 0.1527, 0.1533, 0.1539, 0.1549, 0.1576, 0.1838",\
                 "0.1523, 0.1521, 0.1518, 0.1521, 0.1527, 0.1532, 0.1539, 0.1549, 0.1581, 0.1871",\
                 "0.1534, 0.1531, 0.1529, 0.1531, 0.1537, 0.1543, 0.155, 0.156, 0.1598, 0.1932",\
                 "0.1556, 0.1554, 0.1551, 0.1553, 0.1562, 0.1567, 0.1571, 0.158, 0.163, 0.2046",\
                 "0.1591, 0.1588, 0.1586, 0.1588, 0.1595, 0.1601, 0.1607, 0.1614, 0.1683, 0.2224",\
                 "0.164, 0.1638, 0.1635, 0.1636, 0.1645, 0.1652, 0.1656, 0.1668, 0.1776, 0.2499",\
                 "0.1706, 0.1702, 0.1701, 0.1702, 0.1705, 0.1714, 0.1727, 0.1734, 0.1905, 0.2936",\
                 "0.1785, 0.1783, 0.178, 0.1781, 0.1787, 0.1789, 0.1794, 0.1835, 0.2134, 0.3644");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.003463, 0.01211, 0.02862, 0.05434, 0.09042, 0.1379, 0.1977, 0.2708, 0.3578");
          values("3.517, 3.589, 3.779, 4.042, 4.366, 4.762, 5.251, 5.852, 6.579, 7.443",\
                 "3.539, 3.611, 3.802, 4.064, 4.388, 4.785, 5.273, 5.873, 6.6, 7.465",\
                 "3.632, 3.705, 3.895, 4.158, 4.481, 4.878, 5.366, 5.966, 6.693, 7.559",\
                 "3.827, 3.899, 4.09, 4.352, 4.675, 5.072, 5.561, 6.161, 6.888, 7.753",\
                 "4.117, 4.189, 4.38, 4.643, 4.966, 5.363, 5.852, 6.452, 7.179, 8.044",\
                 "4.461, 4.534, 4.724, 4.987, 5.31, 5.706, 6.195, 6.796, 7.523, 8.388",\
                 "4.851, 4.923, 5.113, 5.376, 5.7, 6.096, 6.585, 7.185, 7.912, 8.777",\
                 "5.297, 5.37, 5.56, 5.823, 6.147, 6.543, 7.032, 7.632, 8.359, 9.224",\
                 "5.808, 5.881, 6.07, 6.333, 6.657, 7.053, 7.542, 8.142, 8.869, 9.734",\
                 "6.389, 6.462, 6.652, 6.914, 7.238, 7.634, 8.123, 8.723, 9.45, 10.31");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.003463, 0.01211, 0.02862, 0.05434, 0.09042, 0.1379, 0.1977, 0.2708, 0.3578");
          values("3.264, 3.326, 3.505, 3.807, 4.268, 4.912, 5.759, 6.826, 8.127, 9.678",\
                 "3.285, 3.347, 3.526, 3.828, 4.289, 4.933, 5.78, 6.847, 8.148, 9.702",\
                 "3.352, 3.414, 3.593, 3.895, 4.356, 5, 5.847, 6.914, 8.215, 9.769",\
                 "3.435, 3.498, 3.677, 3.979, 4.439, 5.084, 5.931, 6.997, 8.299, 9.853",\
                 "3.491, 3.553, 3.732, 4.034, 4.495, 5.139, 5.986, 7.053, 8.354, 9.907",\
                 "3.508, 3.571, 3.75, 4.052, 4.514, 5.158, 6.005, 7.071, 8.372, 9.925",\
                 "3.486, 3.549, 3.727, 4.029, 4.49, 5.135, 5.982, 7.048, 8.35, 9.902",\
                 "3.419, 3.482, 3.66, 3.963, 4.424, 5.068, 5.914, 6.981, 8.283, 9.837",\
                 "3.303, 3.366, 3.544, 3.846, 4.307, 4.951, 5.799, 6.864, 8.166, 9.72",\
                 "3.134, 3.196, 3.375, 3.677, 4.138, 4.782, 5.629, 6.696, 7.996, 9.547");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.003463, 0.01211, 0.02862, 0.05434, 0.09042, 0.1379, 0.1977, 0.2708, 0.3578");
          values("0.2832, 0.3482, 0.5246, 0.7846, 1.155, 1.683, 2.409, 3.358, 4.537, 5.953",\
                 "0.283, 0.348, 0.5246, 0.7838, 1.156, 1.684, 2.407, 3.354, 4.536, 5.958",\
                 "0.2832, 0.3482, 0.5244, 0.7836, 1.155, 1.682, 2.407, 3.354, 4.536, 5.957",\
                 "0.283, 0.3482, 0.5244, 0.7836, 1.155, 1.682, 2.409, 3.358, 4.533, 5.958",\
                 "0.283, 0.3482, 0.5246, 0.7836, 1.156, 1.682, 2.409, 3.358, 4.538, 5.956",\
                 "0.283, 0.3484, 0.5244, 0.7844, 1.155, 1.685, 2.41, 3.357, 4.538, 5.959",\
                 "0.283, 0.3484, 0.5246, 0.7834, 1.155, 1.685, 2.409, 3.358, 4.538, 5.959",\
                 "0.283, 0.348, 0.5242, 0.7834, 1.157, 1.683, 2.41, 3.356, 4.538, 5.956",\
                 "0.284, 0.348, 0.524, 0.782, 1.156, 1.682, 2.41, 3.356, 4.536, 5.958",\
                 "0.284, 0.348, 0.524, 0.782, 1.154, 1.682, 2.408, 3.354, 4.532, 5.954");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.003463, 0.01211, 0.02862, 0.05434, 0.09042, 0.1379, 0.1977, 0.2708, 0.3578");
          values("0.2068, 0.2764, 0.51, 0.9866, 1.764, 2.862, 4.307, 6.127, 8.358, 11.03",\
                 "0.2082, 0.2762, 0.5104, 0.9872, 1.763, 2.86, 4.309, 6.135, 8.364, 11.02",\
                 "0.2068, 0.2764, 0.5094, 0.987, 1.762, 2.861, 4.309, 6.136, 8.365, 11.02",\
                 "0.2066, 0.2762, 0.5092, 0.9866, 1.763, 2.859, 4.31, 6.136, 8.366, 11.02",\
                 "0.2068, 0.2764, 0.5104, 0.9866, 1.763, 2.861, 4.309, 6.135, 8.364, 11.02",\
                 "0.207, 0.276, 0.5102, 0.987, 1.762, 2.861, 4.307, 6.133, 8.361, 11.03",\
                 "0.207, 0.2764, 0.5096, 0.9868, 1.764, 2.863, 4.307, 6.128, 8.368, 11.02",\
                 "0.2078, 0.276, 0.5098, 0.9874, 1.762, 2.858, 4.308, 6.136, 8.367, 11.01",\
                 "0.2068, 0.2762, 0.51, 0.9862, 1.764, 2.862, 4.302, 6.128, 8.35, 11.02",\
                 "0.207, 0.2762, 0.5108, 0.986, 1.764, 2.864, 4.31, 6.122, 8.346, 11");
        }
      }
    }
  }

