/*
 * 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 : "8.2449e-05" ;
    }

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "8.2449e-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.002675 ;
      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.7161 ;
      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.005936, 0.02326, 0.05635, 0.1079, 0.1802, 0.2754, 0.3953, 0.5417, 0.7161");
          values("0.2344, 0.2274, 0.2171, 0.2123, 0.2098, 0.2085, 0.2078, 0.2074, 0.2071, 0.2069",\
                 "0.234, 0.2269, 0.2167, 0.2118, 0.2094, 0.2081, 0.2074, 0.207, 0.2066, 0.2065",\
                 "0.2337, 0.2266, 0.2164, 0.2115, 0.2091, 0.2077, 0.207, 0.2066, 0.2063, 0.2061",\
                 "0.2342, 0.2272, 0.217, 0.2121, 0.2097, 0.2084, 0.2077, 0.2073, 0.207, 0.2068",\
                 "0.2362, 0.2291, 0.2188, 0.2141, 0.2116, 0.2103, 0.2096, 0.2092, 0.2089, 0.2086",\
                 "0.2394, 0.2323, 0.2221, 0.2171, 0.2148, 0.2134, 0.2127, 0.2123, 0.212, 0.2118",\
                 "0.2439, 0.2369, 0.2267, 0.2219, 0.2193, 0.218, 0.2173, 0.2168, 0.2166, 0.2164",\
                 "0.25, 0.243, 0.2328, 0.2279, 0.2254, 0.2241, 0.2234, 0.223, 0.2227, 0.2225",\
                 "0.2577, 0.2507, 0.2405, 0.2356, 0.2331, 0.2318, 0.2311, 0.2307, 0.2304, 0.2301",\
                 "0.2672, 0.2601, 0.25, 0.2451, 0.2426, 0.2413, 0.2406, 0.2401, 0.2399, 0.2395");
        }

        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.005936, 0.02326, 0.05635, 0.1079, 0.1802, 0.2754, 0.3953, 0.5417, 0.7161");
          values("0.1769, 0.1753, 0.1736, 0.1732, 0.1741, 0.1753, 0.1766, 0.1783, 0.1843, 0.233",\
                 "0.1769, 0.1753, 0.1739, 0.1731, 0.1742, 0.1752, 0.1765, 0.1783, 0.1837, 0.2344",\
                 "0.1764, 0.175, 0.1736, 0.1728, 0.1739, 0.1751, 0.1761, 0.178, 0.1835, 0.2388",\
                 "0.1765, 0.1751, 0.1732, 0.1729, 0.1738, 0.1754, 0.1764, 0.1783, 0.1843, 0.2466",\
                 "0.1775, 0.1761, 0.1743, 0.1738, 0.1752, 0.1764, 0.1779, 0.1792, 0.1869, 0.2587",\
                 "0.1797, 0.1783, 0.1768, 0.1762, 0.1772, 0.1787, 0.1802, 0.1815, 0.1918, 0.2795",\
                 "0.1832, 0.1818, 0.1802, 0.1799, 0.1806, 0.1823, 0.1838, 0.1858, 0.2006, 0.3136",\
                 "0.1882, 0.1868, 0.1853, 0.1846, 0.1858, 0.1871, 0.1883, 0.1901, 0.212, 0.3671",\
                 "0.1947, 0.1933, 0.1913, 0.1909, 0.1912, 0.1933, 0.1957, 0.1981, 0.2344, 0.4522",\
                 "0.2027, 0.2012, 0.1997, 0.1991, 0.1995, 0.2004, 0.2024, 0.2103, 0.2744, 0.591");
        }
      }

      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.005936, 0.02326, 0.05635, 0.1079, 0.1802, 0.2754, 0.3953, 0.5417, 0.7161");
          values("3.873, 3.972, 4.211, 4.529, 4.902, 5.336, 5.852, 6.468, 7.203, 8.072",\
                 "3.896, 3.995, 4.234, 4.551, 4.923, 5.358, 5.874, 6.49, 7.225, 8.094",\
                 "3.989, 4.088, 4.327, 4.644, 5.016, 5.451, 5.967, 6.583, 7.318, 8.187",\
                 "4.183, 4.283, 4.522, 4.839, 5.212, 5.646, 6.162, 6.778, 7.513, 8.382",\
                 "4.473, 4.573, 4.812, 5.13, 5.502, 5.936, 6.451, 7.067, 7.803, 8.672",\
                 "4.817, 4.916, 5.155, 5.472, 5.844, 6.279, 6.795, 7.411, 8.146, 9.015",\
                 "5.206, 5.306, 5.545, 5.862, 6.234, 6.669, 7.184, 7.801, 8.536, 9.406",\
                 "5.652, 5.751, 5.991, 6.307, 6.679, 7.114, 7.63, 8.246, 8.981, 9.851",\
                 "6.162, 6.262, 6.502, 6.818, 7.191, 7.625, 8.141, 8.757, 9.492, 10.36",\
                 "6.743, 6.842, 7.081, 7.399, 7.771, 8.206, 8.721, 9.337, 10.07, 10.94");
        }

        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.005936, 0.02326, 0.05635, 0.1079, 0.1802, 0.2754, 0.3953, 0.5417, 0.7161");
          values("3.39, 3.469, 3.672, 3.986, 4.45, 5.096, 5.944, 7.013, 8.317, 9.874",\
                 "3.411, 3.49, 3.693, 4.007, 4.471, 5.117, 5.966, 7.034, 8.338, 9.895",\
                 "3.478, 3.557, 3.759, 4.074, 4.538, 5.184, 6.032, 7.1, 8.406, 9.958",\
                 "3.562, 3.64, 3.842, 4.157, 4.621, 5.267, 6.115, 7.184, 8.489, 10.04",\
                 "3.616, 3.695, 3.897, 4.212, 4.676, 5.322, 6.17, 7.239, 8.542, 10.1",\
                 "3.633, 3.712, 3.915, 4.229, 4.693, 5.338, 6.187, 7.256, 8.559, 10.12",\
                 "3.61, 3.689, 3.892, 4.206, 4.67, 5.316, 6.164, 7.233, 8.537, 10.09",\
                 "3.542, 3.622, 3.824, 4.138, 4.602, 5.248, 6.096, 7.165, 8.47, 10.02",\
                 "3.425, 3.505, 3.707, 4.021, 4.484, 5.131, 5.98, 7.048, 8.351, 9.905",\
                 "3.256, 3.334, 3.537, 3.852, 4.315, 4.962, 5.81, 6.878, 8.182, 9.735");
        }

        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.005936, 0.02326, 0.05635, 0.1079, 0.1802, 0.2754, 0.3953, 0.5417, 0.7161");
          values("0.335, 0.4222, 0.6362, 0.9278, 1.308, 1.825, 2.525, 3.442, 4.6, 6.004",\
                 "0.3354, 0.4216, 0.6358, 0.9274, 1.309, 1.825, 2.523, 3.441, 4.599, 6.004",\
                 "0.3348, 0.421, 0.636, 0.9276, 1.309, 1.826, 2.525, 3.444, 4.6, 6.004",\
                 "0.3354, 0.4214, 0.6358, 0.9276, 1.309, 1.825, 2.524, 3.441, 4.599, 6.004",\
                 "0.3348, 0.4218, 0.636, 0.9264, 1.308, 1.824, 2.526, 3.443, 4.599, 6.003",\
                 "0.3346, 0.4218, 0.6358, 0.9272, 1.308, 1.827, 2.526, 3.442, 4.599, 6.002",\
                 "0.335, 0.421, 0.6356, 0.9274, 1.308, 1.826, 2.523, 3.443, 4.596, 6.004",\
                 "0.335, 0.4214, 0.636, 0.9268, 1.308, 1.828, 2.524, 3.444, 4.598, 6.004",\
                 "0.334, 0.422, 0.636, 0.928, 1.308, 1.826, 2.526, 3.442, 4.596, 6.004",\
                 "0.336, 0.422, 0.636, 0.928, 1.308, 1.824, 2.524, 3.438, 4.598, 6.006");
        }

        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.005936, 0.02326, 0.05635, 0.1079, 0.1802, 0.2754, 0.3953, 0.5417, 0.7161");
          values("0.185, 0.2704, 0.5094, 0.9696, 1.734, 2.833, 4.28, 6.114, 8.35, 11",\
                 "0.1856, 0.2702, 0.5094, 0.9694, 1.734, 2.833, 4.279, 6.113, 8.35, 11",\
                 "0.1858, 0.2696, 0.5102, 0.9698, 1.736, 2.83, 4.284, 6.112, 8.346, 11.01",\
                 "0.185, 0.2696, 0.509, 0.97, 1.736, 2.833, 4.284, 6.111, 8.347, 11.01",\
                 "0.1848, 0.2702, 0.5092, 0.9698, 1.734, 2.833, 4.278, 6.111, 8.348, 11.01",\
                 "0.185, 0.2696, 0.5082, 0.97, 1.735, 2.833, 4.279, 6.113, 8.35, 11.02",\
                 "0.185, 0.2698, 0.5098, 0.9694, 1.735, 2.83, 4.282, 6.115, 8.35, 11",\
                 "0.185, 0.2692, 0.5082, 0.9684, 1.734, 2.83, 4.282, 6.107, 8.344, 11.01",\
                 "0.1854, 0.2692, 0.5092, 0.9682, 1.734, 2.83, 4.276, 6.104, 8.338, 11.01",\
                 "0.185, 0.269, 0.51, 0.97, 1.736, 2.836, 4.278, 6.1, 8.328, 10.99");
        }
      }
    }
  }

