/*
 * 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_mcu9t5v0__dlyd_2) {
    area : 81.849600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.6562 ;
      max_transition : 8.4 ;
      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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.005523, 0.0214, 0.05171, 0.09894, 0.1652, 0.2524, 0.3623, 0.4964, 0.6562");
          values("0.1753, 0.1708, 0.1592, 0.1467, 0.138, 0.1325, 0.129, 0.1265, 0.1248, 0.1235",\
                 "0.1752, 0.1706, 0.159, 0.1465, 0.1377, 0.1324, 0.1288, 0.1263, 0.1246, 0.1233",\
                 "0.175, 0.1705, 0.1589, 0.1464, 0.1377, 0.1322, 0.1287, 0.1262, 0.1245, 0.1232",\
                 "0.1755, 0.1709, 0.1593, 0.1468, 0.1381, 0.1327, 0.1291, 0.1266, 0.1249, 0.1236",\
                 "0.1766, 0.1721, 0.1605, 0.148, 0.1392, 0.1338, 0.1302, 0.1278, 0.126, 0.1247",\
                 "0.1786, 0.174, 0.1624, 0.15, 0.1412, 0.1358, 0.1322, 0.1298, 0.128, 0.1267",\
                 "0.1814, 0.1768, 0.1653, 0.1527, 0.144, 0.1386, 0.135, 0.1326, 0.1308, 0.1295",\
                 "0.1852, 0.1806, 0.169, 0.1565, 0.1478, 0.1424, 0.1388, 0.1363, 0.1346, 0.1333",\
                 "0.1899, 0.1854, 0.1738, 0.1613, 0.1525, 0.1472, 0.1436, 0.1411, 0.1393, 0.1381",\
                 "0.1958, 0.1913, 0.1797, 0.1672, 0.1585, 0.1531, 0.1495, 0.1471, 0.1453, 0.144");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.005523, 0.0214, 0.05171, 0.09894, 0.1652, 0.2524, 0.3623, 0.4964, 0.6562");
          values("0.1202, 0.1178, 0.1143, 0.1121, 0.111, 0.1109, 0.111, 0.1114, 0.1132, 0.1232",\
                 "0.1201, 0.1178, 0.1143, 0.1122, 0.111, 0.1108, 0.111, 0.1113, 0.1126, 0.1232",\
                 "0.1201, 0.1177, 0.1144, 0.112, 0.1109, 0.1107, 0.1109, 0.1113, 0.1126, 0.124",\
                 "0.1202, 0.1178, 0.1144, 0.1122, 0.1112, 0.1109, 0.111, 0.1115, 0.113, 0.1254",\
                 "0.1209, 0.1185, 0.1151, 0.1128, 0.1118, 0.1117, 0.1118, 0.112, 0.1137, 0.1281",\
                 "0.1223, 0.1199, 0.1166, 0.1143, 0.1133, 0.1132, 0.1133, 0.114, 0.1161, 0.1323",\
                 "0.1245, 0.1221, 0.1186, 0.1165, 0.1154, 0.1153, 0.1155, 0.116, 0.1189, 0.1388",\
                 "0.1276, 0.1251, 0.1218, 0.1196, 0.1185, 0.1183, 0.1186, 0.1192, 0.1228, 0.1488",\
                 "0.1315, 0.1292, 0.1257, 0.1236, 0.1227, 0.1223, 0.1224, 0.1231, 0.1279, 0.1617",\
                 "0.1364, 0.134, 0.1306, 0.1284, 0.1271, 0.127, 0.1276, 0.1283, 0.1362, 0.1817");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.005523, 0.0214, 0.05171, 0.09894, 0.1652, 0.2524, 0.3623, 0.4964, 0.6562");
          values("5.404, 5.47, 5.651, 5.906, 6.216, 6.572, 6.968, 7.408, 7.902, 8.458",\
                 "5.417, 5.484, 5.665, 5.92, 6.229, 6.585, 6.981, 7.422, 7.915, 8.471",\
                 "5.481, 5.549, 5.73, 5.985, 6.294, 6.65, 7.046, 7.487, 7.98, 8.536",\
                 "5.625, 5.692, 5.873, 6.128, 6.438, 6.793, 7.19, 7.63, 8.123, 8.679",\
                 "5.848, 5.915, 6.096, 6.351, 6.66, 7.016, 7.413, 7.854, 8.347, 8.902",\
                 "6.126, 6.194, 6.375, 6.63, 6.939, 7.295, 7.691, 8.132, 8.625, 9.181",\
                 "6.454, 6.52, 6.702, 6.957, 7.266, 7.622, 8.018, 8.458, 8.952, 9.508",\
                 "6.836, 6.902, 7.083, 7.339, 7.648, 8.003, 8.4, 8.84, 9.333, 9.889",\
                 "7.276, 7.343, 7.524, 7.779, 8.088, 8.444, 8.84, 9.281, 9.774, 10.33",\
                 "7.776, 7.844, 8.025, 8.281, 8.59, 8.945, 9.342, 9.781, 10.27, 10.83");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.005523, 0.0214, 0.05171, 0.09894, 0.1652, 0.2524, 0.3623, 0.4964, 0.6562");
          values("4.812, 4.869, 5.031, 5.284, 5.633, 6.104, 6.718, 7.491, 8.432, 9.557",\
                 "4.826, 4.883, 5.045, 5.298, 5.648, 6.119, 6.732, 7.505, 8.447, 9.571",\
                 "4.87, 4.926, 5.088, 5.341, 5.691, 6.162, 6.775, 7.547, 8.49, 9.614",\
                 "4.92, 4.976, 5.138, 5.391, 5.74, 6.211, 6.825, 7.597, 8.54, 9.664",\
                 "4.942, 4.999, 5.161, 5.414, 5.764, 6.235, 6.849, 7.621, 8.564, 9.688",\
                 "4.933, 4.989, 5.151, 5.404, 5.754, 6.225, 6.839, 7.611, 8.552, 9.676",\
                 "4.886, 4.942, 5.104, 5.358, 5.707, 6.178, 6.792, 7.564, 8.507, 9.63",\
                 "4.8, 4.856, 5.018, 5.271, 5.621, 6.091, 6.705, 7.478, 8.42, 9.541",\
                 "4.668, 4.724, 4.886, 5.139, 5.489, 5.959, 6.573, 7.345, 8.288, 9.411",\
                 "4.486, 4.543, 4.705, 4.959, 5.308, 5.779, 6.393, 7.165, 8.106, 9.232");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.005523, 0.0214, 0.05171, 0.09894, 0.1652, 0.2524, 0.3623, 0.4964, 0.6562");
          values("0.5358, 0.597, 0.7626, 0.9994, 1.304, 1.672, 2.114, 2.652, 3.321, 4.146",\
                 "0.536, 0.5962, 0.7636, 0.998, 1.304, 1.673, 2.116, 2.655, 3.322, 4.147",\
                 "0.5354, 0.5962, 0.7626, 0.997, 1.302, 1.672, 2.114, 2.653, 3.322, 4.143",\
                 "0.536, 0.5964, 0.762, 0.9994, 1.302, 1.672, 2.114, 2.653, 3.322, 4.147",\
                 "0.5366, 0.597, 0.7624, 0.9988, 1.302, 1.673, 2.114, 2.652, 3.322, 4.148",\
                 "0.5352, 0.5968, 0.7624, 0.9982, 1.302, 1.672, 2.114, 2.652, 3.323, 4.144",\
                 "0.536, 0.5964, 0.762, 0.9978, 1.302, 1.674, 2.114, 2.652, 3.322, 4.144",\
                 "0.5358, 0.5968, 0.762, 0.9964, 1.302, 1.674, 2.114, 2.654, 3.322, 4.144",\
                 "0.536, 0.598, 0.762, 0.996, 1.302, 1.672, 2.114, 2.652, 3.324, 4.142",\
                 "0.536, 0.598, 0.762, 0.996, 1.302, 1.674, 2.114, 2.652, 3.326, 4.146");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.005523, 0.0214, 0.05171, 0.09894, 0.1652, 0.2524, 0.3623, 0.4964, 0.6562");
          values("0.252, 0.3146, 0.516, 0.8658, 1.417, 2.224, 3.307, 4.694, 6.376, 8.384",\
                 "0.2524, 0.3146, 0.5162, 0.8644, 1.417, 2.224, 3.312, 4.686, 6.371, 8.384",\
                 "0.252, 0.3152, 0.517, 0.8648, 1.417, 2.225, 3.307, 4.686, 6.371, 8.384",\
                 "0.2516, 0.3152, 0.5168, 0.8644, 1.414, 2.221, 3.306, 4.686, 6.372, 8.4",\
                 "0.2516, 0.315, 0.5178, 0.8658, 1.413, 2.221, 3.306, 4.694, 6.371, 8.398",\
                 "0.2516, 0.315, 0.5162, 0.8662, 1.414, 2.22, 3.31, 4.687, 6.375, 8.387",\
                 "0.2516, 0.315, 0.5174, 0.8636, 1.417, 2.221, 3.311, 4.69, 6.374, 8.398",\
                 "0.252, 0.315, 0.5172, 0.8646, 1.414, 2.221, 3.308, 4.686, 6.373, 8.384",\
                 "0.2518, 0.3156, 0.517, 0.8636, 1.415, 2.22, 3.314, 4.686, 6.374, 8.4",\
                 "0.2516, 0.315, 0.5166, 0.8646, 1.416, 2.224, 3.308, 4.688, 6.378, 8.4");
        }
      }
    }
  }

