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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "3.656466e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "4.6035e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "3.596076e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "4.892184e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "4.892184e-05" ;
    }

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

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

    pin(A1) {
      capacitance : 0.008542 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(A2) {
      capacitance : 0.008409 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "(A1^A2)" ;
      max_capacitance : 1.26 ;
      max_transition : 6 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "!A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1105, 0.1075, 0.1048, 0.1044, 0.1047, 0.1051, 0.1054, 0.1057, 0.1059, 0.106",\
                 "0.1102, 0.1073, 0.1044, 0.104, 0.1043, 0.1048, 0.1052, 0.1054, 0.1056, 0.1057",\
                 "0.1093, 0.1063, 0.1035, 0.1031, 0.1035, 0.104, 0.1044, 0.1046, 0.1048, 0.1049",\
                 "0.1086, 0.1056, 0.1027, 0.1023, 0.1026, 0.1031, 0.1035, 0.1038, 0.104, 0.1042",\
                 "0.1087, 0.1056, 0.1026, 0.1019, 0.1021, 0.1026, 0.1031, 0.1034, 0.1037, 0.1039",\
                 "0.1119, 0.1084, 0.1045, 0.1031, 0.1029, 0.1032, 0.1036, 0.104, 0.1042, 0.1044",\
                 "0.1182, 0.1136, 0.1081, 0.1059, 0.105, 0.1048, 0.1051, 0.1052, 0.1055, 0.1057",\
                 "0.1252, 0.1201, 0.1128, 0.1095, 0.108, 0.1074, 0.1074, 0.1075, 0.1076, 0.1077",\
                 "0.1331, 0.1274, 0.1184, 0.1139, 0.1119, 0.1108, 0.1105, 0.1104, 0.1104, 0.1105",\
                 "0.1419, 0.1355, 0.125, 0.1194, 0.1165, 0.1152, 0.1145, 0.1143, 0.1142, 0.1142");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.06534, 0.06538, 0.06593, 0.06743, 0.06921, 0.0711, 0.07279, 0.07391, 0.0766, 0.07679",\
                 "0.06543, 0.06539, 0.06587, 0.06745, 0.06929, 0.07126, 0.07303, 0.07391, 0.0762, 0.07679",\
                 "0.06535, 0.06539, 0.06595, 0.06731, 0.06921, 0.07101, 0.07275, 0.07411, 0.0762, 0.07759",\
                 "0.06537, 0.0651, 0.0653, 0.06658, 0.06818, 0.06998, 0.07198, 0.07391, 0.07482, 0.076",\
                 "0.06657, 0.0662, 0.06591, 0.06648, 0.06778, 0.06974, 0.0715, 0.07312, 0.07462, 0.076",\
                 "0.0686, 0.06778, 0.06682, 0.06717, 0.0679, 0.06944, 0.07111, 0.07292, 0.07521, 0.07729",\
                 "0.07167, 0.07026, 0.06908, 0.0679, 0.06919, 0.07067, 0.07142, 0.07312, 0.07521, 0.0765",\
                 "0.07566, 0.07368, 0.07171, 0.07018, 0.07028, 0.07178, 0.07402, 0.0751, 0.07581, 0.07769",\
                 "0.08072, 0.07832, 0.07512, 0.07355, 0.0724, 0.07374, 0.07606, 0.07826, 0.07957, 0.08026",\
                 "0.08701, 0.08371, 0.07995, 0.07812, 0.07723, 0.07687, 0.07709, 0.08005, 0.08293, 0.08413");
        }
      }

      internal_power() {
        related_pin : "A1" ;
        when : "A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1154, 0.1143, 0.114, 0.1146, 0.1156, 0.1163, 0.1168, 0.1171, 0.1174, 0.1175",\
                 "0.1154, 0.1143, 0.1139, 0.1147, 0.1155, 0.1163, 0.1168, 0.1171, 0.1173, 0.1175",\
                 "0.115, 0.114, 0.1137, 0.1141, 0.1151, 0.1159, 0.1164, 0.1167, 0.117, 0.1171",\
                 "0.1138, 0.1128, 0.1124, 0.1131, 0.114, 0.1147, 0.1152, 0.1156, 0.1158, 0.1159",\
                 "0.1129, 0.1119, 0.1114, 0.1121, 0.1131, 0.1138, 0.1143, 0.1147, 0.1149, 0.1151",\
                 "0.1124, 0.1114, 0.1112, 0.1118, 0.1127, 0.1135, 0.1139, 0.1143, 0.1146, 0.1147",\
                 "0.1127, 0.1118, 0.1114, 0.112, 0.1129, 0.1137, 0.1142, 0.1146, 0.1148, 0.115",\
                 "0.1136, 0.1125, 0.1123, 0.1127, 0.1135, 0.1143, 0.1149, 0.1152, 0.1155, 0.1157",\
                 "0.1151, 0.1139, 0.1133, 0.1138, 0.1147, 0.1154, 0.1159, 0.1163, 0.1167, 0.1168",\
                 "0.1169, 0.1157, 0.1151, 0.1155, 0.1163, 0.1171, 0.1176, 0.118, 0.1183, 0.1185");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1118, 0.1116, 0.1115, 0.1126, 0.1141, 0.1158, 0.1176, 0.1189, 0.1206, 0.123",\
                 "0.1118, 0.1116, 0.1118, 0.1124, 0.114, 0.1157, 0.1174, 0.1187, 0.1204, 0.1224",\
                 "0.1117, 0.1115, 0.1114, 0.1126, 0.114, 0.1158, 0.1174, 0.1189, 0.1204, 0.1216",\
                 "0.1114, 0.1112, 0.1116, 0.1124, 0.1139, 0.1156, 0.1174, 0.1189, 0.1204, 0.1226",\
                 "0.1114, 0.1111, 0.1114, 0.1122, 0.114, 0.1157, 0.1172, 0.1187, 0.1202, 0.1229",\
                 "0.1114, 0.111, 0.1112, 0.1122, 0.1135, 0.1154, 0.1172, 0.1185, 0.1202, 0.1217",\
                 "0.1121, 0.1119, 0.1117, 0.1128, 0.1143, 0.1159, 0.1178, 0.1191, 0.1208, 0.1223",\
                 "0.1133, 0.1129, 0.113, 0.1135, 0.1154, 0.1171, 0.1186, 0.1199, 0.1212, 0.1231",\
                 "0.1152, 0.1146, 0.1147, 0.115, 0.1169, 0.1189, 0.1208, 0.1223, 0.1228, 0.1256",\
                 "0.1176, 0.1172, 0.1169, 0.1171, 0.1179, 0.1199, 0.1224, 0.1247, 0.1256, 0.1265");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "!A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1156, 0.1127, 0.11, 0.1095, 0.1098, 0.1103, 0.1106, 0.1108, 0.111, 0.1112",\
                 "0.1155, 0.1125, 0.1097, 0.1094, 0.1097, 0.1102, 0.1106, 0.1108, 0.111, 0.1112",\
                 "0.1149, 0.1119, 0.109, 0.1086, 0.1091, 0.1094, 0.1099, 0.1101, 0.1103, 0.1104",\
                 "0.114, 0.111, 0.1082, 0.1077, 0.108, 0.1086, 0.109, 0.1093, 0.1094, 0.1096",\
                 "0.1138, 0.1107, 0.1078, 0.1071, 0.1074, 0.1079, 0.1083, 0.1086, 0.1089, 0.109",\
                 "0.1159, 0.1125, 0.1088, 0.1077, 0.1077, 0.108, 0.1084, 0.1087, 0.1089, 0.1091",\
                 "0.1195, 0.1154, 0.1108, 0.1089, 0.1086, 0.1089, 0.1091, 0.1094, 0.1096, 0.1098",\
                 "0.1239, 0.1194, 0.1138, 0.1115, 0.1106, 0.1106, 0.1108, 0.111, 0.1112, 0.1114",\
                 "0.1298, 0.1249, 0.1183, 0.1149, 0.1137, 0.1133, 0.1134, 0.1135, 0.1137, 0.1138",\
                 "0.1369, 0.1315, 0.1237, 0.1196, 0.1181, 0.1172, 0.1169, 0.1171, 0.1172, 0.1173");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.07088, 0.07056, 0.07083, 0.07213, 0.07403, 0.07602, 0.07771, 0.07892, 0.08062, 0.0824",\
                 "0.07057, 0.07028, 0.07059, 0.07203, 0.07377, 0.07563, 0.07741, 0.07892, 0.08023, 0.08122",\
                 "0.07013, 0.06986, 0.07051, 0.07151, 0.07322, 0.07511, 0.07688, 0.07813, 0.07983, 0.08161",\
                 "0.06993, 0.0696, 0.06988, 0.07086, 0.07258, 0.07436, 0.07606, 0.07734, 0.07983, 0.08023",\
                 "0.07111, 0.07058, 0.07021, 0.07116, 0.07227, 0.07382, 0.07569, 0.07754, 0.07884, 0.08023",\
                 "0.0732, 0.07242, 0.07136, 0.07183, 0.07236, 0.0739, 0.07553, 0.07714, 0.07845, 0.08053",\
                 "0.07623, 0.07494, 0.0736, 0.07282, 0.07385, 0.07509, 0.0763, 0.07793, 0.07904, 0.08211",\
                 "0.08023, 0.07846, 0.07635, 0.07541, 0.07494, 0.0767, 0.07824, 0.07952, 0.08003, 0.08191",\
                 "0.0853, 0.08294, 0.08051, 0.0788, 0.07836, 0.07868, 0.08101, 0.08308, 0.08399, 0.08508",\
                 "0.09149, 0.08852, 0.08508, 0.08331, 0.08236, 0.08214, 0.0826, 0.08526, 0.08795, 0.08934");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1111, 0.1101, 0.1098, 0.1105, 0.1114, 0.1121, 0.1125, 0.1129, 0.1132, 0.1133",\
                 "0.1111, 0.11, 0.1097, 0.1104, 0.1112, 0.112, 0.1125, 0.1128, 0.1131, 0.1132",\
                 "0.1105, 0.1096, 0.1091, 0.1097, 0.1108, 0.1115, 0.112, 0.1123, 0.1126, 0.1127",\
                 "0.1096, 0.1086, 0.1082, 0.1087, 0.1098, 0.1105, 0.111, 0.1113, 0.1115, 0.1118",\
                 "0.1089, 0.1078, 0.1074, 0.108, 0.1091, 0.1098, 0.1103, 0.1106, 0.1109, 0.1111",\
                 "0.1086, 0.1075, 0.1071, 0.1078, 0.1088, 0.1096, 0.1101, 0.1104, 0.1107, 0.1108",\
                 "0.1091, 0.108, 0.1076, 0.1084, 0.1092, 0.11, 0.1104, 0.1107, 0.111, 0.1112",\
                 "0.11, 0.1091, 0.1086, 0.1091, 0.1099, 0.1107, 0.1112, 0.1116, 0.1118, 0.112",\
                 "0.1116, 0.1105, 0.1098, 0.1101, 0.1112, 0.112, 0.1125, 0.1129, 0.1132, 0.1134",\
                 "0.1138, 0.1125, 0.1118, 0.1122, 0.113, 0.1138, 0.1143, 0.1147, 0.115, 0.1152");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1061, 0.1058, 0.106, 0.1072, 0.109, 0.1108, 0.1126, 0.1139, 0.1158, 0.1174",\
                 "0.106, 0.1059, 0.1061, 0.1073, 0.1088, 0.1107, 0.1126, 0.1141, 0.1156, 0.1176",\
                 "0.1058, 0.1056, 0.1057, 0.1069, 0.1087, 0.1107, 0.1124, 0.1145, 0.1152, 0.1164",\
                 "0.1056, 0.1053, 0.1055, 0.1067, 0.1084, 0.1103, 0.1126, 0.1139, 0.115, 0.1168",\
                 "0.1056, 0.1052, 0.1056, 0.1067, 0.1087, 0.1104, 0.1126, 0.1133, 0.1152, 0.1177",\
                 "0.1061, 0.1058, 0.106, 0.107, 0.1087, 0.1105, 0.1122, 0.1135, 0.1152, 0.1169",\
                 "0.1069, 0.1068, 0.1066, 0.1082, 0.1095, 0.1112, 0.113, 0.1143, 0.117, 0.1185",\
                 "0.1085, 0.108, 0.1079, 0.1086, 0.1107, 0.1125, 0.1138, 0.1155, 0.1168, 0.1183",\
                 "0.1104, 0.11, 0.1097, 0.11, 0.1114, 0.1143, 0.1164, 0.1173, 0.1182, 0.1208",\
                 "0.1129, 0.1124, 0.112, 0.1123, 0.1133, 0.1148, 0.118, 0.1204, 0.1213, 0.1217");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : negative_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.783, 0.818, 0.9009, 1.008, 1.141, 1.308, 1.518, 1.779, 2.098, 2.476",\
                 "0.7932, 0.8283, 0.9112, 1.019, 1.152, 1.318, 1.529, 1.79, 2.108, 2.487",\
                 "0.8191, 0.8542, 0.9369, 1.044, 1.177, 1.344, 1.554, 1.816, 2.134, 2.513",\
                 "0.8622, 0.8972, 0.9801, 1.088, 1.22, 1.387, 1.597, 1.859, 2.177, 2.556",\
                 "0.9171, 0.9522, 1.035, 1.143, 1.276, 1.442, 1.653, 1.914, 2.232, 2.611",\
                 "0.9663, 1.001, 1.084, 1.191, 1.324, 1.491, 1.701, 1.962, 2.28, 2.659",\
                 "1, 1.035, 1.118, 1.225, 1.358, 1.525, 1.734, 1.995, 2.313, 2.692",\
                 "1.014, 1.049, 1.132, 1.24, 1.373, 1.539, 1.749, 2.01, 2.328, 2.706",\
                 "1.006, 1.041, 1.125, 1.233, 1.366, 1.533, 1.743, 2.004, 2.321, 2.7",\
                 "0.9733, 1.009, 1.093, 1.202, 1.336, 1.502, 1.712, 1.973, 2.291, 2.669");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.9013, 0.9441, 1.057, 1.233, 1.487, 1.838, 2.299, 2.877, 3.583, 4.425",\
                 "0.9152, 0.958, 1.071, 1.247, 1.501, 1.852, 2.312, 2.891, 3.596, 4.438",\
                 "0.9683, 1.011, 1.124, 1.3, 1.554, 1.905, 2.365, 2.945, 3.651, 4.49",\
                 "1.074, 1.117, 1.23, 1.406, 1.66, 2.011, 2.472, 3.05, 3.757, 4.598",\
                 "1.242, 1.284, 1.397, 1.573, 1.828, 2.179, 2.639, 3.218, 3.924, 4.765",\
                 "1.458, 1.501, 1.614, 1.79, 2.044, 2.396, 2.856, 3.435, 4.141, 4.982",\
                 "1.699, 1.742, 1.856, 2.032, 2.287, 2.638, 3.099, 3.678, 4.383, 5.224",\
                 "1.962, 2.006, 2.12, 2.296, 2.551, 2.902, 3.363, 3.941, 4.647, 5.488",\
                 "2.25, 2.294, 2.409, 2.586, 2.84, 3.192, 3.652, 4.231, 4.936, 5.777",\
                 "2.568, 2.612, 2.728, 2.905, 3.159, 3.51, 3.971, 4.549, 5.256, 6.096");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1254, 0.153, 0.2192, 0.3257, 0.491, 0.7342, 1.069, 1.502, 2.035, 2.674",\
                 "0.1254, 0.1532, 0.2185, 0.3257, 0.4916, 0.7342, 1.068, 1.501, 2.037, 2.677",\
                 "0.1258, 0.1532, 0.2196, 0.3258, 0.4918, 0.733, 1.069, 1.502, 2.035, 2.678",\
                 "0.1256, 0.1534, 0.2188, 0.3258, 0.4918, 0.7342, 1.069, 1.502, 2.035, 2.674",\
                 "0.1258, 0.1532, 0.2188, 0.326, 0.4914, 0.734, 1.069, 1.502, 2.037, 2.676",\
                 "0.1238, 0.1518, 0.2184, 0.3252, 0.4904, 0.7336, 1.069, 1.502, 2.037, 2.677",\
                 "0.1246, 0.153, 0.2194, 0.3254, 0.4908, 0.7316, 1.066, 1.5, 2.036, 2.677",\
                 "0.126, 0.1542, 0.2202, 0.3268, 0.4912, 0.7322, 1.067, 1.498, 2.032, 2.67",\
                 "0.1274, 0.1556, 0.2216, 0.3272, 0.4922, 0.7336, 1.067, 1.501, 2.033, 2.672",\
                 "0.1292, 0.1578, 0.2232, 0.3304, 0.4932, 0.7346, 1.069, 1.5, 2.034, 2.67");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1284, 0.1733, 0.3054, 0.5564, 0.9714, 1.567, 2.357, 3.352, 4.571, 6.021",\
                 "0.1285, 0.1731, 0.3058, 0.5572, 0.971, 1.566, 2.356, 3.351, 4.569, 6.021",\
                 "0.1284, 0.173, 0.3046, 0.5564, 0.97, 1.566, 2.356, 3.353, 4.564, 6.018",\
                 "0.1286, 0.1728, 0.3056, 0.5564, 0.9704, 1.567, 2.357, 3.354, 4.571, 6.021",\
                 "0.1294, 0.1732, 0.306, 0.556, 0.9706, 1.566, 2.356, 3.352, 4.564, 6.021",\
                 "0.1296, 0.1734, 0.3056, 0.5572, 0.9694, 1.567, 2.356, 3.349, 4.571, 6.015",\
                 "0.1308, 0.175, 0.3068, 0.5588, 0.9706, 1.568, 2.356, 3.351, 4.571, 6.013",\
                 "0.1324, 0.1772, 0.3078, 0.5592, 0.972, 1.566, 2.354, 3.351, 4.564, 6.01",\
                 "0.1338, 0.1784, 0.31, 0.5596, 0.9712, 1.565, 2.354, 3.352, 4.567, 6.018",\
                 "0.136, 0.1812, 0.3114, 0.561, 0.9722, 1.565, 2.359, 3.347, 4.563, 6.009");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.6536, 0.6969, 0.8042, 0.9439, 1.107, 1.298, 1.524, 1.794, 2.116, 2.496",\
                 "0.6655, 0.7088, 0.8163, 0.9559, 1.119, 1.31, 1.536, 1.806, 2.128, 2.508",\
                 "0.7069, 0.7503, 0.8576, 0.9974, 1.16, 1.351, 1.577, 1.847, 2.169, 2.549",\
                 "0.7962, 0.8394, 0.9473, 1.086, 1.249, 1.44, 1.666, 1.936, 2.258, 2.638",\
                 "0.9461, 0.9891, 1.097, 1.236, 1.399, 1.589, 1.815, 2.086, 2.407, 2.788",\
                 "1.155, 1.199, 1.308, 1.448, 1.612, 1.803, 2.029, 2.299, 2.621, 3.001",\
                 "1.386, 1.433, 1.551, 1.699, 1.868, 2.061, 2.289, 2.56, 2.882, 3.262",\
                 "1.632, 1.682, 1.809, 1.967, 2.144, 2.342, 2.573, 2.846, 3.169, 3.548",\
                 "1.895, 1.949, 2.082, 2.253, 2.437, 2.642, 2.876, 3.15, 3.474, 3.856",\
                 "2.179, 2.235, 2.376, 2.556, 2.751, 2.962, 3.2, 3.477, 3.801, 4.182");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.3696, 0.4115, 0.523, 0.698, 0.9523, 1.303, 1.763, 2.342, 3.047, 3.889",\
                 "0.3818, 0.4237, 0.5354, 0.7103, 0.9645, 1.315, 1.776, 2.354, 3.06, 3.901",\
                 "0.4231, 0.4649, 0.5765, 0.7514, 1.006, 1.357, 1.817, 2.396, 3.101, 3.943",\
                 "0.5005, 0.5421, 0.6533, 0.8277, 1.082, 1.433, 1.893, 2.471, 3.179, 4.021",\
                 "0.5978, 0.6412, 0.7548, 0.9297, 1.183, 1.534, 1.994, 2.574, 3.281, 4.123",\
                 "0.6822, 0.7282, 0.8465, 1.024, 1.279, 1.629, 2.089, 2.668, 3.373, 4.216",\
                 "0.7479, 0.7974, 0.922, 1.103, 1.358, 1.709, 2.168, 2.747, 3.453, 4.296",\
                 "0.7939, 0.8467, 0.9789, 1.163, 1.418, 1.769, 2.229, 2.808, 3.513, 4.355",\
                 "0.8193, 0.8749, 1.015, 1.205, 1.462, 1.811, 2.271, 2.849, 3.556, 4.396",\
                 "0.8242, 0.8819, 1.03, 1.227, 1.484, 1.834, 2.292, 2.871, 3.576, 4.417");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1788, 0.2148, 0.3055, 0.4291, 0.6013, 0.8356, 1.149, 1.56, 2.077, 2.708",\
                 "0.1789, 0.215, 0.3054, 0.429, 0.6012, 0.835, 1.149, 1.56, 2.077, 2.708",\
                 "0.1791, 0.2148, 0.3055, 0.4296, 0.6012, 0.835, 1.149, 1.56, 2.076, 2.707",\
                 "0.1788, 0.2148, 0.3056, 0.4292, 0.6012, 0.835, 1.149, 1.56, 2.077, 2.707",\
                 "0.1792, 0.2152, 0.3062, 0.4294, 0.6016, 0.836, 1.15, 1.561, 2.078, 2.707",\
                 "0.1918, 0.2264, 0.3148, 0.436, 0.6046, 0.8384, 1.149, 1.562, 2.079, 2.705",\
                 "0.2216, 0.258, 0.3488, 0.4642, 0.6256, 0.8504, 1.16, 1.566, 2.081, 2.708",\
                 "0.2514, 0.289, 0.387, 0.5036, 0.6584, 0.876, 1.178, 1.578, 2.088, 2.712",\
                 "0.2792, 0.3194, 0.4228, 0.545, 0.6932, 0.9046, 1.199, 1.593, 2.099, 2.719",\
                 "0.3076, 0.349, 0.457, 0.5876, 0.7322, 0.9366, 1.221, 1.611, 2.109, 2.727");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1239, 0.1684, 0.301, 0.5531, 0.9688, 1.566, 2.355, 3.349, 4.573, 6.023",\
                 "0.1239, 0.1674, 0.3012, 0.5532, 0.9676, 1.565, 2.356, 3.35, 4.573, 6.023",\
                 "0.1238, 0.1684, 0.3011, 0.5542, 0.9694, 1.566, 2.355, 3.352, 4.573, 6.027",\
                 "0.1242, 0.1676, 0.3005, 0.5533, 0.9694, 1.566, 2.357, 3.354, 4.571, 6.022",\
                 "0.1344, 0.1782, 0.3072, 0.556, 0.9678, 1.566, 2.355, 3.352, 4.567, 6.016",\
                 "0.151, 0.1958, 0.3214, 0.5656, 0.9752, 1.565, 2.352, 3.353, 4.573, 6.026",\
                 "0.1704, 0.2156, 0.3398, 0.5758, 0.9792, 1.57, 2.359, 3.351, 4.571, 6.014",\
                 "0.1888, 0.2372, 0.3602, 0.588, 0.9836, 1.572, 2.359, 3.352, 4.564, 6.013",\
                 "0.208, 0.2598, 0.3856, 0.604, 0.9914, 1.576, 2.362, 3.355, 4.565, 6.016",\
                 "0.228, 0.2804, 0.413, 0.6236, 0.9984, 1.58, 2.364, 3.357, 4.568, 6.012");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : negative_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.7701, 0.8051, 0.888, 0.9955, 1.128, 1.295, 1.505, 1.767, 2.084, 2.464",\
                 "0.7801, 0.8151, 0.898, 1.006, 1.138, 1.305, 1.515, 1.776, 2.095, 2.473",\
                 "0.815, 0.85, 0.933, 1.04, 1.173, 1.34, 1.55, 1.811, 2.129, 2.509",\
                 "0.8797, 0.9148, 0.9976, 1.105, 1.238, 1.405, 1.615, 1.876, 2.194, 2.573",\
                 "0.956, 0.9911, 1.074, 1.182, 1.315, 1.481, 1.691, 1.953, 2.271, 2.65",\
                 "1.019, 1.054, 1.137, 1.245, 1.378, 1.545, 1.755, 2.016, 2.334, 2.713",\
                 "1.065, 1.1, 1.183, 1.29, 1.423, 1.59, 1.8, 2.061, 2.379, 2.758",\
                 "1.091, 1.126, 1.209, 1.317, 1.45, 1.617, 1.827, 2.087, 2.405, 2.784",\
                 "1.095, 1.13, 1.214, 1.323, 1.456, 1.622, 1.833, 2.094, 2.411, 2.79",\
                 "1.078, 1.114, 1.198, 1.306, 1.439, 1.606, 1.816, 2.078, 2.396, 2.774");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.832, 0.8746, 0.9873, 1.162, 1.416, 1.768, 2.227, 2.807, 3.512, 4.352",\
                 "0.8464, 0.8888, 1.001, 1.177, 1.431, 1.782, 2.242, 2.821, 3.527, 4.369",\
                 "0.8974, 0.9399, 1.053, 1.228, 1.482, 1.833, 2.293, 2.871, 3.579, 4.421",\
                 "1.002, 1.044, 1.157, 1.332, 1.586, 1.937, 2.397, 2.976, 3.683, 4.521",\
                 "1.167, 1.209, 1.322, 1.497, 1.751, 2.102, 2.562, 3.141, 3.847, 4.686",\
                 "1.375, 1.417, 1.531, 1.706, 1.96, 2.311, 2.771, 3.35, 4.057, 4.898",\
                 "1.605, 1.648, 1.761, 1.937, 2.191, 2.541, 3.001, 3.58, 4.286, 5.128",\
                 "1.855, 1.898, 2.013, 2.188, 2.443, 2.793, 3.252, 3.832, 4.538, 5.381",\
                 "2.13, 2.174, 2.289, 2.465, 2.719, 3.069, 3.529, 4.107, 4.813, 5.654",\
                 "2.431, 2.476, 2.592, 2.768, 3.022, 3.373, 3.832, 4.41, 5.116, 5.956");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1252, 0.1531, 0.2186, 0.3263, 0.4916, 0.7344, 1.069, 1.501, 2.037, 2.677",\
                 "0.1255, 0.153, 0.2188, 0.3267, 0.4914, 0.7342, 1.069, 1.502, 2.036, 2.677",\
                 "0.1252, 0.1533, 0.2188, 0.3256, 0.4918, 0.7342, 1.069, 1.502, 2.036, 2.677",\
                 "0.1254, 0.1534, 0.2194, 0.3258, 0.4916, 0.7344, 1.068, 1.501, 2.037, 2.678",\
                 "0.1258, 0.1532, 0.2188, 0.3258, 0.4916, 0.7338, 1.069, 1.502, 2.035, 2.676",\
                 "0.124, 0.1524, 0.2184, 0.3266, 0.4918, 0.7334, 1.068, 1.501, 2.037, 2.676",\
                 "0.125, 0.153, 0.2202, 0.3266, 0.4914, 0.7322, 1.066, 1.499, 2.037, 2.677",\
                 "0.126, 0.1544, 0.2206, 0.3274, 0.4912, 0.7332, 1.068, 1.499, 2.033, 2.671",\
                 "0.1272, 0.156, 0.222, 0.3278, 0.4926, 0.733, 1.067, 1.5, 2.034, 2.67",\
                 "0.1292, 0.1572, 0.2236, 0.3288, 0.493, 0.7342, 1.069, 1.5, 2.035, 2.67");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1281, 0.1718, 0.3038, 0.5548, 0.9692, 1.565, 2.355, 3.35, 4.572, 6.025",\
                 "0.1274, 0.1717, 0.3032, 0.555, 0.968, 1.565, 2.354, 3.352, 4.573, 6.025",\
                 "0.1273, 0.1714, 0.3036, 0.5548, 0.9692, 1.566, 2.356, 3.354, 4.57, 6.02",\
                 "0.1274, 0.1714, 0.3038, 0.5548, 0.9698, 1.564, 2.354, 3.354, 4.572, 6.025",\
                 "0.1276, 0.1716, 0.3034, 0.5556, 0.9698, 1.566, 2.355, 3.351, 4.572, 6.025",\
                 "0.1282, 0.1728, 0.3042, 0.5552, 0.9694, 1.566, 2.356, 3.35, 4.568, 6.015",\
                 "0.1308, 0.1748, 0.3052, 0.5554, 0.969, 1.566, 2.355, 3.351, 4.573, 6.025",\
                 "0.1318, 0.1762, 0.3072, 0.5566, 0.9674, 1.564, 2.354, 3.352, 4.565, 6.02",\
                 "0.1346, 0.1794, 0.3098, 0.5592, 0.9688, 1.563, 2.35, 3.345, 4.562, 6.02",\
                 "0.1372, 0.1832, 0.3114, 0.5588, 0.9704, 1.565, 2.352, 3.346, 4.561, 6.012");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.6914, 0.7346, 0.8425, 0.9815, 1.145, 1.335, 1.562, 1.831, 2.153, 2.533",\
                 "0.7069, 0.7503, 0.8578, 0.9974, 1.16, 1.351, 1.577, 1.847, 2.169, 2.549",\
                 "0.7504, 0.7937, 0.901, 1.041, 1.203, 1.394, 1.621, 1.891, 2.212, 2.592",\
                 "0.8241, 0.8673, 0.9752, 1.114, 1.277, 1.468, 1.694, 1.964, 2.286, 2.666",\
                 "0.9398, 0.983, 1.091, 1.23, 1.393, 1.584, 1.81, 2.08, 2.402, 2.782",\
                 "1.095, 1.139, 1.249, 1.39, 1.554, 1.745, 1.972, 2.242, 2.564, 2.944",\
                 "1.272, 1.318, 1.433, 1.581, 1.75, 1.945, 2.173, 2.444, 2.766, 3.146",\
                 "1.471, 1.519, 1.639, 1.793, 1.969, 2.169, 2.401, 2.674, 2.996, 3.377",\
                 "1.695, 1.745, 1.87, 2.03, 2.212, 2.418, 2.653, 2.928, 3.253, 3.634",\
                 "1.944, 1.996, 2.126, 2.293, 2.481, 2.692, 2.931, 3.209, 3.535, 3.917");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.4046, 0.4468, 0.5591, 0.7345, 0.9893, 1.341, 1.801, 2.38, 3.085, 3.926",\
                 "0.4152, 0.4574, 0.5697, 0.7452, 0.9999, 1.351, 1.811, 2.389, 3.096, 3.937",\
                 "0.4548, 0.4971, 0.6095, 0.7849, 1.04, 1.391, 1.851, 2.43, 3.135, 3.976",\
                 "0.5319, 0.5741, 0.6862, 0.8614, 1.116, 1.467, 1.927, 2.507, 3.212, 4.052",\
                 "0.6373, 0.6805, 0.7938, 0.9692, 1.223, 1.574, 2.035, 2.613, 3.32, 4.159",\
                 "0.7329, 0.7787, 0.8962, 1.074, 1.329, 1.68, 2.139, 2.718, 3.424, 4.265",\
                 "0.811, 0.8599, 0.9835, 1.164, 1.419, 1.77, 2.23, 2.809, 3.514, 4.356",\
                 "0.8704, 0.9221, 1.053, 1.237, 1.492, 1.842, 2.302, 2.881, 3.587, 4.428",\
                 "0.9102, 0.9647, 1.103, 1.291, 1.548, 1.898, 2.358, 2.937, 3.643, 4.483",\
                 "0.9303, 0.9872, 1.133, 1.328, 1.585, 1.935, 2.393, 2.971, 3.678, 4.519");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1788, 0.2149, 0.3058, 0.4299, 0.5996, 0.8344, 1.149, 1.559, 2.078, 2.708",\
                 "0.179, 0.2148, 0.3053, 0.4289, 0.6002, 0.8352, 1.15, 1.559, 2.077, 2.707",\
                 "0.1788, 0.215, 0.3056, 0.429, 0.6014, 0.8352, 1.15, 1.56, 2.076, 2.707",\
                 "0.179, 0.2146, 0.3052, 0.429, 0.601, 0.8356, 1.148, 1.559, 2.076, 2.707",\
                 "0.1792, 0.2154, 0.3062, 0.43, 0.6024, 0.8344, 1.148, 1.56, 2.078, 2.708",\
                 "0.1908, 0.2262, 0.3164, 0.4362, 0.6054, 0.8378, 1.152, 1.56, 2.076, 2.708",\
                 "0.207, 0.2434, 0.3376, 0.4594, 0.6242, 0.8512, 1.16, 1.566, 2.081, 2.707",\
                 "0.2242, 0.2616, 0.359, 0.4848, 0.6506, 0.874, 1.177, 1.577, 2.088, 2.711",\
                 "0.2426, 0.2808, 0.3812, 0.5094, 0.6766, 0.8986, 1.197, 1.593, 2.097, 2.715",\
                 "0.2622, 0.3014, 0.4048, 0.5366, 0.7022, 0.9228, 1.219, 1.608, 2.107, 2.725");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009692, 0.0402, 0.09847, 0.1892, 0.3166, 0.4842, 0.6953, 0.9531, 1.26");
          values("0.1262, 0.1698, 0.3034, 0.5556, 0.9697, 1.565, 2.356, 3.351, 4.569, 6.021",\
                 "0.1259, 0.1698, 0.3032, 0.5559, 0.9697, 1.566, 2.357, 3.354, 4.571, 6.02",\
                 "0.1258, 0.1699, 0.3035, 0.5551, 0.9705, 1.567, 2.356, 3.352, 4.569, 6.022",\
                 "0.1257, 0.17, 0.3025, 0.5556, 0.9706, 1.567, 2.356, 3.349, 4.571, 6.018",\
                 "0.1334, 0.1768, 0.3076, 0.5576, 0.9712, 1.567, 2.358, 3.354, 4.564, 6.018",\
                 "0.149, 0.1934, 0.3202, 0.5656, 0.9754, 1.566, 2.357, 3.348, 4.568, 6.019",\
                 "0.1662, 0.2122, 0.3376, 0.5748, 0.9798, 1.571, 2.356, 3.352, 4.567, 6.019",\
                 "0.1844, 0.2324, 0.3558, 0.5874, 0.9844, 1.573, 2.36, 3.351, 4.564, 6.017",\
                 "0.2022, 0.253, 0.3796, 0.6006, 0.9898, 1.577, 2.361, 3.355, 4.566, 6.011",\
                 "0.2204, 0.2728, 0.4038, 0.6166, 0.9966, 1.579, 2.365, 3.359, 4.568, 6.015");
        }
      }
    }
  }

