/*
 * 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__addh_1) {
    area : 39.513600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A&!B" ;
      value : "0.00522252" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A&B" ;
      value : "0.0037926" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A&!B" ;
      value : "0.00407808" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A&B" ;
      value : "0.00415008" ;
    }

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

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

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

    pin(A) {
      capacitance : 0.006354 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(B) {
      capacitance : 0.005343 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(CO) {
      direction : output ;
      function : "(A&B)" ;
      max_capacitance : 0.3604 ;
      max_transition : 7.4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A" ;
        when : "B" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1378, 0.1346, 0.129, 0.1251, 0.1227, 0.1209, 0.1199, 0.1192, 0.1188, 0.1184",\
                 "0.1376, 0.1346, 0.1289, 0.125, 0.1225, 0.1207, 0.1197, 0.1191, 0.1186, 0.1183",\
                 "0.139, 0.1359, 0.1302, 0.1262, 0.1238, 0.1219, 0.1209, 0.1203, 0.1198, 0.1196",\
                 "0.1484, 0.1448, 0.1377, 0.1326, 0.1295, 0.1273, 0.126, 0.1251, 0.1246, 0.1242",\
                 "0.1689, 0.1645, 0.155, 0.1474, 0.1424, 0.139, 0.137, 0.1357, 0.1347, 0.1341",\
                 "0.1994, 0.194, 0.1818, 0.1709, 0.1635, 0.1582, 0.1549, 0.1526, 0.1511, 0.15",\
                 "0.2396, 0.2332, 0.2184, 0.2038, 0.1932, 0.1859, 0.1807, 0.1773, 0.1748, 0.173",\
                 "0.2883, 0.2814, 0.2642, 0.246, 0.2319, 0.2214, 0.2142, 0.2093, 0.2057, 0.2029",\
                 "0.3468, 0.3395, 0.3199, 0.2977, 0.2801, 0.2667, 0.257, 0.2498, 0.2446, 0.2408",\
                 "0.4148, 0.407, 0.3854, 0.36, 0.3381, 0.3212, 0.3088, 0.2993, 0.2921, 0.2868");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1097, 0.1072, 0.1028, 0.1003, 0.0994, 0.09952, 0.09934, 0.09945, 0.09982, 0.1022",\
                 "0.1096, 0.1069, 0.1028, 0.1001, 0.09923, 0.09942, 0.09934, 0.09942, 0.1, 0.1017",\
                 "0.1104, 0.1078, 0.1032, 0.1004, 0.09954, 0.09955, 0.09944, 0.09959, 0.1001, 0.1024",\
                 "0.1169, 0.114, 0.1087, 0.105, 0.1034, 0.103, 0.1027, 0.1025, 0.103, 0.1055",\
                 "0.1321, 0.1282, 0.1211, 0.1159, 0.1131, 0.1117, 0.1109, 0.1104, 0.1106, 0.1126",\
                 "0.1554, 0.1508, 0.142, 0.1346, 0.13, 0.1274, 0.1256, 0.1242, 0.1242, 0.127",\
                 "0.1874, 0.182, 0.1712, 0.1612, 0.1542, 0.1504, 0.1474, 0.1459, 0.1447, 0.1464",\
                 "0.2274, 0.2213, 0.2083, 0.1964, 0.1869, 0.18, 0.1765, 0.1743, 0.1731, 0.1749",\
                 "0.2751, 0.2685, 0.2529, 0.2387, 0.2272, 0.2176, 0.2116, 0.2088, 0.2072, 0.2106",\
                 "0.3313, 0.3239, 0.3066, 0.2897, 0.2755, 0.2632, 0.255, 0.2495, 0.2475, 0.2533");
        }
      }

      internal_power() {
        related_pin : "B" ;
        when : "A" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1258, 0.1231, 0.1183, 0.115, 0.113, 0.1115, 0.1107, 0.1102, 0.1097, 0.1096",\
                 "0.1257, 0.123, 0.1182, 0.1149, 0.1129, 0.1114, 0.1106, 0.11, 0.1097, 0.1094",\
                 "0.127, 0.1242, 0.1192, 0.1158, 0.1138, 0.1123, 0.1115, 0.1109, 0.1106, 0.1103",\
                 "0.1365, 0.133, 0.1266, 0.1221, 0.1193, 0.1174, 0.1163, 0.1155, 0.115, 0.1147",\
                 "0.1568, 0.1523, 0.1432, 0.1362, 0.1317, 0.1286, 0.1267, 0.1255, 0.1247, 0.1242",\
                 "0.1863, 0.181, 0.169, 0.1587, 0.1518, 0.1469, 0.1438, 0.1418, 0.1404, 0.1395",\
                 "0.2245, 0.2183, 0.2037, 0.1896, 0.1796, 0.1726, 0.168, 0.1647, 0.1624, 0.1608",\
                 "0.2712, 0.2641, 0.2469, 0.2292, 0.2158, 0.2063, 0.1996, 0.1948, 0.1914, 0.189",\
                 "0.3259, 0.3185, 0.2991, 0.2779, 0.2611, 0.2481, 0.2395, 0.2326, 0.2281, 0.2245",\
                 "0.3904, 0.3823, 0.3605, 0.336, 0.315, 0.299, 0.2874, 0.2786, 0.2722, 0.2674");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1061, 0.1036, 0.09932, 0.09678, 0.09595, 0.09607, 0.09585, 0.09603, 0.09648, 0.09889",\
                 "0.1059, 0.1034, 0.09895, 0.09639, 0.09563, 0.09574, 0.09563, 0.09575, 0.09648, 0.09781",\
                 "0.1072, 0.1045, 0.09986, 0.09716, 0.09615, 0.09627, 0.09616, 0.09631, 0.09689, 0.0992",\
                 "0.1153, 0.1122, 0.1068, 0.1026, 0.1008, 0.1003, 0.09986, 0.09962, 0.1001, 0.1019",\
                 "0.1311, 0.1273, 0.1202, 0.1142, 0.1108, 0.1091, 0.108, 0.1074, 0.1075, 0.1102",\
                 "0.1547, 0.1499, 0.141, 0.1332, 0.128, 0.1248, 0.1225, 0.121, 0.1205, 0.1229",\
                 "0.1866, 0.1811, 0.1695, 0.1596, 0.1518, 0.147, 0.1437, 0.1413, 0.1395, 0.142",\
                 "0.2261, 0.2196, 0.2061, 0.1934, 0.1833, 0.1758, 0.1717, 0.1687, 0.1666, 0.1676",\
                 "0.2731, 0.2662, 0.2501, 0.2349, 0.2224, 0.2124, 0.2058, 0.2024, 0.1993, 0.2024",\
                 "0.3283, 0.3207, 0.3021, 0.2845, 0.2696, 0.2574, 0.2476, 0.2413, 0.239, 0.2448");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.3095, 0.3431, 0.4329, 0.5668, 0.7491, 0.9908, 1.304, 1.698, 2.178, 2.752",\
                 "0.3215, 0.3551, 0.4449, 0.5789, 0.7611, 1.003, 1.316, 1.71, 2.191, 2.764",\
                 "0.3746, 0.4081, 0.4977, 0.6316, 0.8139, 1.056, 1.369, 1.762, 2.243, 2.817",\
                 "0.4864, 0.5198, 0.6092, 0.7428, 0.9248, 1.166, 1.479, 1.873, 2.353, 2.927",\
                 "0.6402, 0.6759, 0.7699, 0.9067, 1.09, 1.331, 1.643, 2.036, 2.516, 3.089",\
                 "0.8266, 0.8657, 0.9671, 1.11, 1.297, 1.539, 1.851, 2.243, 2.723, 3.295",\
                 "1.045, 1.087, 1.198, 1.35, 1.545, 1.791, 2.103, 2.494, 2.973, 3.544",\
                 "1.296, 1.342, 1.462, 1.626, 1.83, 2.084, 2.401, 2.793, 3.271, 3.841",\
                 "1.583, 1.632, 1.762, 1.937, 2.153, 2.417, 2.742, 3.139, 3.619, 4.189",\
                 "1.907, 1.96, 2.099, 2.286, 2.513, 2.788, 3.123, 3.53, 4.017, 4.59");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.3295, 0.3652, 0.4737, 0.6628, 0.951, 1.353, 1.881, 2.547, 3.361, 4.332",\
                 "0.3345, 0.3702, 0.4788, 0.6676, 0.9559, 1.358, 1.886, 2.553, 3.368, 4.34",\
                 "0.3486, 0.3843, 0.4924, 0.6812, 0.9691, 1.371, 1.899, 2.566, 3.381, 4.352",\
                 "0.3759, 0.4119, 0.5199, 0.7082, 0.9952, 1.396, 1.924, 2.59, 3.404, 4.375",\
                 "0.3954, 0.4332, 0.5432, 0.7319, 1.018, 1.417, 1.945, 2.61, 3.424, 4.395",\
                 "0.393, 0.4335, 0.5478, 0.74, 1.027, 1.425, 1.951, 2.615, 3.429, 4.399",\
                 "0.362, 0.4051, 0.5255, 0.7226, 1.015, 1.416, 1.94, 2.603, 3.414, 4.386",\
                 "0.2993, 0.3453, 0.472, 0.6749, 0.9735, 1.381, 1.911, 2.573, 3.383, 4.35",\
                 "0.2017, 0.2508, 0.3836, 0.5929, 0.8979, 1.314, 1.853, 2.522, 3.332, 4.298",\
                 "0.0672, 0.1197, 0.2604, 0.4752, 0.786, 1.21, 1.759, 2.439, 3.257, 4.224");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1294, 0.1628, 0.2574, 0.4254, 0.6903, 1.079, 1.607, 2.281, 3.107, 4.095",\
                 "0.1293, 0.163, 0.2573, 0.4248, 0.6901, 1.079, 1.607, 2.282, 3.108, 4.096",\
                 "0.1294, 0.1633, 0.2579, 0.4256, 0.6905, 1.079, 1.607, 2.283, 3.108, 4.095",\
                 "0.1367, 0.1691, 0.2624, 0.4282, 0.6922, 1.079, 1.607, 2.282, 3.108, 4.094",\
                 "0.161, 0.1942, 0.2848, 0.4426, 0.6996, 1.082, 1.608, 2.283, 3.108, 4.094",\
                 "0.1934, 0.229, 0.3198, 0.4724, 0.7188, 1.093, 1.611, 2.284, 3.109, 4.095",\
                 "0.2298, 0.2686, 0.3634, 0.5134, 0.753, 1.112, 1.621, 2.287, 3.11, 4.093",\
                 "0.269, 0.3116, 0.4128, 0.564, 0.801, 1.152, 1.645, 2.297, 3.115, 4.096",\
                 "0.3074, 0.3566, 0.466, 0.6214, 0.8564, 1.206, 1.693, 2.33, 3.131, 4.103",\
                 "0.3536, 0.406, 0.5236, 0.684, 0.9172, 1.267, 1.755, 2.391, 3.176, 4.131");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1348, 0.1817, 0.3465, 0.6678, 1.184, 1.918, 2.89, 4.112, 5.595, 7.377",\
                 "0.1349, 0.1816, 0.3465, 0.668, 1.184, 1.917, 2.889, 4.113, 5.596, 7.375",\
                 "0.1347, 0.1814, 0.3455, 0.6683, 1.184, 1.918, 2.888, 4.112, 5.599, 7.374",\
                 "0.1406, 0.1869, 0.3494, 0.6697, 1.185, 1.917, 2.889, 4.107, 5.596, 7.378",\
                 "0.1542, 0.2004, 0.36, 0.6758, 1.187, 1.918, 2.89, 4.113, 5.598, 7.375",\
                 "0.1728, 0.2202, 0.3788, 0.6934, 1.196, 1.921, 2.891, 4.113, 5.599, 7.378",\
                 "0.1956, 0.244, 0.4022, 0.7182, 1.22, 1.933, 2.89, 4.109, 5.598, 7.374",\
                 "0.217, 0.268, 0.4278, 0.746, 1.254, 1.969, 2.912, 4.115, 5.61, 7.379",\
                 "0.2422, 0.297, 0.457, 0.776, 1.291, 2.015, 2.959, 4.148, 5.614, 7.379",\
                 "0.2702, 0.3258, 0.4894, 0.8066, 1.328, 2.063, 3.021, 4.208, 5.655, 7.4");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.2878, 0.3199, 0.4072, 0.5394, 0.7208, 0.9621, 1.275, 1.669, 2.15, 2.723",\
                 "0.3002, 0.3324, 0.4196, 0.5518, 0.7332, 0.9745, 1.288, 1.681, 2.162, 2.736",\
                 "0.352, 0.384, 0.4709, 0.6032, 0.7846, 1.026, 1.339, 1.733, 2.214, 2.787",\
                 "0.4581, 0.4902, 0.5775, 0.7096, 0.8908, 1.132, 1.445, 1.838, 2.319, 2.892",\
                 "0.5971, 0.6321, 0.7241, 0.86, 1.043, 1.283, 1.595, 1.988, 2.469, 3.042",\
                 "0.7596, 0.7979, 0.898, 1.041, 1.229, 1.471, 1.783, 2.175, 2.654, 3.227",\
                 "0.9434, 0.9856, 1.095, 1.248, 1.445, 1.692, 2.005, 2.397, 2.876, 3.447",\
                 "1.15, 1.196, 1.315, 1.479, 1.686, 1.944, 2.263, 2.657, 3.135, 3.706",\
                 "1.381, 1.43, 1.558, 1.734, 1.953, 2.221, 2.551, 2.954, 3.436, 4.007",\
                 "1.636, 1.689, 1.826, 2.015, 2.245, 2.524, 2.865, 3.279, 3.773, 4.35");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.3164, 0.3522, 0.4607, 0.6499, 0.9382, 1.34, 1.868, 2.535, 3.348, 4.319",\
                 "0.3239, 0.3595, 0.4678, 0.657, 0.9453, 1.347, 1.876, 2.542, 3.357, 4.325",\
                 "0.3551, 0.3907, 0.4987, 0.6874, 0.9756, 1.377, 1.906, 2.572, 3.387, 4.359",\
                 "0.4095, 0.4455, 0.5532, 0.7407, 1.027, 1.428, 1.956, 2.622, 3.437, 4.408",\
                 "0.4568, 0.4942, 0.6032, 0.7902, 1.075, 1.474, 2.001, 2.667, 3.48, 4.45",\
                 "0.4872, 0.527, 0.6398, 0.8289, 1.113, 1.511, 2.037, 2.701, 3.512, 4.481",\
                 "0.4964, 0.5401, 0.6572, 0.8505, 1.138, 1.536, 2.06, 2.722, 3.533, 4.503",\
                 "0.4824, 0.5286, 0.6527, 0.8503, 1.143, 1.545, 2.071, 2.732, 3.542, 4.509",\
                 "0.4419, 0.4915, 0.6224, 0.8255, 1.123, 1.531, 2.064, 2.729, 3.537, 4.503",\
                 "0.3738, 0.4268, 0.5653, 0.7748, 1.077, 1.491, 2.031, 2.704, 3.519, 4.483");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1208, 0.1535, 0.2491, 0.4198, 0.6873, 1.077, 1.606, 2.282, 3.108, 4.093",\
                 "0.1212, 0.1538, 0.2489, 0.4198, 0.6867, 1.077, 1.606, 2.282, 3.108, 4.094",\
                 "0.121, 0.1541, 0.2494, 0.42, 0.6875, 1.077, 1.606, 2.282, 3.108, 4.095",\
                 "0.1307, 0.1623, 0.2553, 0.423, 0.6888, 1.078, 1.606, 2.282, 3.108, 4.096",\
                 "0.1566, 0.1884, 0.2782, 0.4402, 0.6976, 1.08, 1.607, 2.283, 3.109, 4.095",\
                 "0.1894, 0.2236, 0.314, 0.4706, 0.719, 1.091, 1.611, 2.282, 3.108, 4.093",\
                 "0.2254, 0.264, 0.3588, 0.5146, 0.758, 1.117, 1.622, 2.286, 3.109, 4.097",\
                 "0.2644, 0.3062, 0.4078, 0.5656, 0.8088, 1.164, 1.655, 2.303, 3.115, 4.099",\
                 "0.3042, 0.3508, 0.4616, 0.6212, 0.864, 1.222, 1.713, 2.349, 3.144, 4.107",\
                 "0.347, 0.397, 0.5186, 0.6844, 0.9242, 1.283, 1.78, 2.421, 3.206, 4.15");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003481, 0.01219, 0.02882, 0.05472, 0.09107, 0.1389, 0.1992, 0.2727, 0.3604");
          values("0.1353, 0.1816, 0.3463, 0.6678, 1.184, 1.918, 2.888, 4.107, 5.595, 7.377",\
                 "0.1348, 0.1816, 0.3456, 0.6676, 1.185, 1.918, 2.89, 4.113, 5.598, 7.375",\
                 "0.1348, 0.1815, 0.3464, 0.668, 1.184, 1.918, 2.888, 4.104, 5.598, 7.375",\
                 "0.1411, 0.1872, 0.3499, 0.6697, 1.185, 1.918, 2.89, 4.112, 5.598, 7.372",\
                 "0.155, 0.2002, 0.3586, 0.6768, 1.188, 1.918, 2.889, 4.111, 5.595, 7.378",\
                 "0.1754, 0.2208, 0.3756, 0.688, 1.194, 1.922, 2.89, 4.109, 5.594, 7.375",\
                 "0.1974, 0.2442, 0.3982, 0.711, 1.212, 1.93, 2.892, 4.108, 5.597, 7.375",\
                 "0.2248, 0.2748, 0.4242, 0.7362, 1.24, 1.956, 2.905, 4.114, 5.615, 7.377",\
                 "0.2512, 0.3022, 0.4554, 0.763, 1.272, 1.994, 2.942, 4.137, 5.609, 7.395",\
                 "0.2802, 0.3344, 0.4898, 0.7932, 1.304, 2.034, 2.995, 4.182, 5.641, 7.393");
        }
      }
    }

    pin(S) {
      direction : output ;
      function : "(A^B)" ;
      max_capacitance : 0.3599 ;
      max_transition : 7.4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A" ;
        when : "!B" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1436, 0.1397, 0.1317, 0.1256, 0.1217, 0.1192, 0.1175, 0.1164, 0.1156, 0.115",\
                 "0.1424, 0.1384, 0.1304, 0.1244, 0.1205, 0.118, 0.1163, 0.1151, 0.1144, 0.1138",\
                 "0.1432, 0.1392, 0.1312, 0.1251, 0.1212, 0.1188, 0.1171, 0.1159, 0.1151, 0.1146",\
                 "0.1526, 0.1483, 0.1397, 0.133, 0.1287, 0.126, 0.1241, 0.1229, 0.122, 0.1214",\
                 "0.1757, 0.1708, 0.1603, 0.1517, 0.1461, 0.1424, 0.14, 0.1384, 0.1372, 0.1363",\
                 "0.2115, 0.2059, 0.1931, 0.1818, 0.1739, 0.1687, 0.1653, 0.1629, 0.1612, 0.16",\
                 "0.2602, 0.2539, 0.239, 0.2243, 0.2137, 0.2064, 0.2013, 0.1978, 0.1953, 0.1935",\
                 "0.3217, 0.3147, 0.2977, 0.2794, 0.2655, 0.2557, 0.2487, 0.2438, 0.2402, 0.2376",\
                 "0.3958, 0.388, 0.3688, 0.3473, 0.33, 0.3173, 0.308, 0.3013, 0.2963, 0.2927",\
                 "0.4824, 0.4743, 0.4535, 0.429, 0.4077, 0.3917, 0.3799, 0.3711, 0.3645, 0.3596");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.06292, 0.0608, 0.05779, 0.05614, 0.05552, 0.05546, 0.05586, 0.05616, 0.0573, 0.05923",\
                 "0.06319, 0.06117, 0.05812, 0.05642, 0.05585, 0.05596, 0.05619, 0.05645, 0.05734, 0.05949",\
                 "0.06563, 0.06351, 0.06012, 0.05837, 0.05758, 0.05751, 0.05784, 0.05817, 0.05878, 0.06093",\
                 "0.07641, 0.07388, 0.06952, 0.06629, 0.06467, 0.06417, 0.06414, 0.06451, 0.06479, 0.06757",\
                 "0.09667, 0.09314, 0.08695, 0.08238, 0.07928, 0.07749, 0.07682, 0.0765, 0.07696, 0.07997",\
                 "0.1271, 0.1228, 0.1147, 0.1073, 0.1031, 0.1001, 0.09831, 0.09738, 0.0964, 0.09936",\
                 "0.1681, 0.1628, 0.1526, 0.1431, 0.1361, 0.132, 0.1295, 0.1276, 0.1261, 0.1284",\
                 "0.2197, 0.2135, 0.2014, 0.1894, 0.1802, 0.1733, 0.1699, 0.1674, 0.1655, 0.1679",\
                 "0.2826, 0.2758, 0.2613, 0.2474, 0.2355, 0.226, 0.2199, 0.2169, 0.2147, 0.2178",\
                 "0.3572, 0.3497, 0.333, 0.3165, 0.3024, 0.2903, 0.2812, 0.2762, 0.2736, 0.2802");
        }
      }

      internal_power() {
        related_pin : "A" ;
        when : "B" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1143, 0.1111, 0.1054, 0.1011, 0.0984, 0.09674, 0.09613, 0.09562, 0.0953, 0.09498",\
                 "0.1141, 0.111, 0.1051, 0.1009, 0.09817, 0.09644, 0.09583, 0.0954, 0.095, 0.09471",\
                 "0.1145, 0.1113, 0.1055, 0.1012, 0.09852, 0.0968, 0.09618, 0.09572, 0.09532, 0.09503",\
                 "0.1187, 0.1156, 0.1098, 0.1055, 0.1028, 0.1011, 0.1004, 0.09998, 0.09955, 0.09926",\
                 "0.1294, 0.1262, 0.1203, 0.116, 0.1129, 0.1114, 0.1107, 0.1102, 0.1098, 0.1095",\
                 "0.1482, 0.1446, 0.1385, 0.1339, 0.1308, 0.1289, 0.128, 0.1274, 0.127, 0.1268",\
                 "0.175, 0.1714, 0.1645, 0.1594, 0.1562, 0.1545, 0.1533, 0.1526, 0.1522, 0.1517",\
                 "0.2103, 0.2067, 0.1994, 0.1937, 0.1899, 0.1878, 0.1867, 0.1859, 0.1853, 0.1848",\
                 "0.2531, 0.2491, 0.2412, 0.2353, 0.2314, 0.2285, 0.227, 0.2262, 0.2254, 0.225",\
                 "0.3048, 0.3004, 0.2921, 0.2853, 0.2805, 0.2777, 0.2761, 0.275, 0.2742, 0.2737");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1348, 0.1322, 0.1277, 0.1247, 0.1232, 0.1227, 0.1226, 0.1229, 0.1237, 0.1256",\
                 "0.1346, 0.132, 0.1274, 0.1245, 0.1231, 0.1226, 0.1225, 0.1223, 0.1231, 0.1256",\
                 "0.1358, 0.1333, 0.1287, 0.1257, 0.1243, 0.1237, 0.1239, 0.124, 0.1244, 0.1268",\
                 "0.1422, 0.1395, 0.1348, 0.1318, 0.1304, 0.1299, 0.1298, 0.1296, 0.1303, 0.1332",\
                 "0.1563, 0.1535, 0.149, 0.1458, 0.1441, 0.1435, 0.1433, 0.1434, 0.1439, 0.1477",\
                 "0.1792, 0.1765, 0.1716, 0.1684, 0.1663, 0.1655, 0.1653, 0.1651, 0.1658, 0.1697",\
                 "0.2119, 0.2089, 0.2038, 0.1998, 0.1977, 0.1967, 0.1964, 0.1963, 0.1969, 0.2019",\
                 "0.2542, 0.251, 0.2453, 0.2407, 0.238, 0.2372, 0.2369, 0.2368, 0.2371, 0.2441",\
                 "0.3065, 0.303, 0.2964, 0.2912, 0.2875, 0.2862, 0.2864, 0.2868, 0.2871, 0.2975",\
                 "0.3681, 0.3646, 0.3575, 0.3517, 0.3475, 0.3446, 0.3441, 0.3452, 0.3469, 0.3638");
        }
      }

      internal_power() {
        related_pin : "B" ;
        when : "!A" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1518, 0.1479, 0.1398, 0.1338, 0.1299, 0.1274, 0.1257, 0.1245, 0.1237, 0.1232",\
                 "0.1513, 0.1474, 0.1394, 0.1333, 0.1294, 0.1269, 0.1252, 0.1241, 0.1233, 0.1227",\
                 "0.1513, 0.1473, 0.1393, 0.1332, 0.1294, 0.1268, 0.1252, 0.124, 0.1232, 0.1226",\
                 "0.1604, 0.1561, 0.1474, 0.1407, 0.1364, 0.1337, 0.1319, 0.1306, 0.1297, 0.1291",\
                 "0.185, 0.1802, 0.1697, 0.161, 0.1553, 0.1517, 0.1491, 0.1474, 0.1463, 0.1454",\
                 "0.226, 0.2205, 0.2077, 0.1961, 0.188, 0.1825, 0.1788, 0.1762, 0.1744, 0.1731",\
                 "0.282, 0.2758, 0.2608, 0.2456, 0.2345, 0.2267, 0.2213, 0.2174, 0.2147, 0.2127",\
                 "0.3522, 0.3453, 0.3284, 0.3098, 0.2952, 0.2847, 0.2772, 0.2716, 0.2676, 0.2647",\
                 "0.4367, 0.4294, 0.4106, 0.3887, 0.3704, 0.3569, 0.3469, 0.3395, 0.334, 0.3299",\
                 "0.5364, 0.5286, 0.5082, 0.4835, 0.4613, 0.4441, 0.4313, 0.4217, 0.4144, 0.4089");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.07701, 0.07454, 0.07067, 0.06835, 0.06727, 0.06706, 0.06725, 0.06733, 0.06815, 0.07045",\
                 "0.07629, 0.07397, 0.07003, 0.06767, 0.06662, 0.06638, 0.0666, 0.06654, 0.06739, 0.06973",\
                 "0.07767, 0.07524, 0.07127, 0.06871, 0.06756, 0.06721, 0.06729, 0.06765, 0.06829, 0.07107",\
                 "0.08873, 0.08597, 0.08099, 0.07717, 0.07508, 0.07419, 0.07369, 0.07417, 0.07459, 0.07673",\
                 "0.1112, 0.1076, 0.1008, 0.0956, 0.09186, 0.08989, 0.08878, 0.08843, 0.08863, 0.09118",\
                 "0.1458, 0.1415, 0.1331, 0.125, 0.1199, 0.1163, 0.1139, 0.1126, 0.1122, 0.1146",\
                 "0.1938, 0.1885, 0.1777, 0.1673, 0.1594, 0.1544, 0.151, 0.1486, 0.1471, 0.1493",\
                 "0.2553, 0.249, 0.2363, 0.2235, 0.2126, 0.2047, 0.1996, 0.1961, 0.1938, 0.1963",\
                 "0.3305, 0.3235, 0.3084, 0.2933, 0.2798, 0.2687, 0.2605, 0.256, 0.2532, 0.2564",\
                 "0.4202, 0.4126, 0.3952, 0.3774, 0.3612, 0.3467, 0.3364, 0.3287, 0.3247, 0.3296");
        }
      }

      internal_power() {
        related_pin : "B" ;
        when : "A" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1108, 0.1077, 0.1019, 0.09766, 0.09485, 0.09327, 0.09258, 0.09215, 0.09175, 0.09147",\
                 "0.1105, 0.1073, 0.1015, 0.0973, 0.09456, 0.09294, 0.0923, 0.09176, 0.0914, 0.09111",\
                 "0.1111, 0.108, 0.1022, 0.098, 0.09519, 0.09354, 0.09292, 0.09246, 0.0921, 0.09174",\
                 "0.1164, 0.1132, 0.1074, 0.1031, 0.1003, 0.09858, 0.09796, 0.09742, 0.09706, 0.09674",\
                 "0.1276, 0.1243, 0.1183, 0.1139, 0.1111, 0.1094, 0.1088, 0.1083, 0.1078, 0.1076",\
                 "0.1464, 0.1429, 0.1366, 0.1321, 0.1291, 0.1272, 0.1263, 0.1258, 0.1255, 0.125",\
                 "0.1727, 0.1692, 0.1621, 0.1572, 0.1543, 0.1523, 0.1512, 0.1504, 0.1499, 0.1495",\
                 "0.2069, 0.2034, 0.1959, 0.1904, 0.1867, 0.1848, 0.1833, 0.1825, 0.182, 0.1815",\
                 "0.2491, 0.2453, 0.2373, 0.2312, 0.227, 0.2245, 0.2233, 0.2223, 0.2214, 0.2208",\
                 "0.2995, 0.2952, 0.2869, 0.2798, 0.2751, 0.2724, 0.2709, 0.2698, 0.269, 0.2685");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.123, 0.1206, 0.1168, 0.1145, 0.1136, 0.1133, 0.1135, 0.1133, 0.1144, 0.117",\
                 "0.123, 0.1206, 0.1168, 0.1144, 0.1135, 0.1134, 0.1133, 0.1135, 0.1141, 0.1167",\
                 "0.1238, 0.1213, 0.1177, 0.1153, 0.1144, 0.1142, 0.1142, 0.1143, 0.115, 0.1175",\
                 "0.1298, 0.1275, 0.1236, 0.1212, 0.1202, 0.12, 0.12, 0.12, 0.1207, 0.1236",\
                 "0.1438, 0.1413, 0.1372, 0.1346, 0.1335, 0.1331, 0.1332, 0.1332, 0.1338, 0.1373",\
                 "0.1662, 0.1635, 0.159, 0.1562, 0.1546, 0.1537, 0.1538, 0.1537, 0.1546, 0.1578",\
                 "0.1979, 0.1949, 0.1896, 0.1856, 0.1841, 0.1834, 0.183, 0.1828, 0.1836, 0.1878",\
                 "0.2379, 0.2348, 0.2289, 0.2243, 0.2215, 0.2208, 0.2209, 0.2208, 0.2204, 0.2266",\
                 "0.2868, 0.2833, 0.277, 0.2718, 0.2681, 0.2663, 0.2665, 0.2674, 0.2674, 0.2759",\
                 "0.345, 0.3412, 0.3342, 0.3282, 0.3239, 0.3212, 0.3202, 0.3213, 0.3233, 0.3387");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.5875, 0.62, 0.7069, 0.8354, 1.012, 1.251, 1.563, 1.957, 2.437, 3.009",\
                 "0.5924, 0.6248, 0.7115, 0.8402, 1.017, 1.256, 1.568, 1.961, 2.442, 3.014",\
                 "0.6043, 0.6365, 0.7235, 0.8519, 1.029, 1.268, 1.58, 1.973, 2.453, 3.026",\
                 "0.626, 0.6584, 0.7452, 0.8737, 1.051, 1.289, 1.602, 1.995, 2.475, 3.047",\
                 "0.6494, 0.6815, 0.7672, 0.895, 1.072, 1.311, 1.623, 2.016, 2.497, 3.069",\
                 "0.6555, 0.687, 0.7732, 0.9017, 1.078, 1.317, 1.628, 2.022, 2.502, 3.075",\
                 "0.6334, 0.6657, 0.7524, 0.8818, 1.06, 1.299, 1.611, 2.004, 2.484, 3.056",\
                 "0.58, 0.6133, 0.7013, 0.8319, 1.011, 1.254, 1.57, 1.965, 2.444, 3.016",\
                 "0.4938, 0.5271, 0.6159, 0.7478, 0.9296, 1.175, 1.491, 1.884, 2.363, 2.934",\
                 "0.3701, 0.4037, 0.4949, 0.6282, 0.8119, 1.059, 1.373, 1.766, 2.245, 2.817");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.6359, 0.671, 0.7774, 0.9643, 1.25, 1.65, 2.177, 2.842, 3.656, 4.627",\
                 "0.6483, 0.6833, 0.79, 0.9765, 1.262, 1.662, 2.19, 2.856, 3.67, 4.637",\
                 "0.701, 0.7363, 0.8428, 1.029, 1.315, 1.715, 2.243, 2.908, 3.722, 4.692",\
                 "0.8095, 0.8446, 0.9508, 1.138, 1.423, 1.823, 2.351, 3.018, 3.831, 4.8",\
                 "0.9658, 1.001, 1.108, 1.294, 1.579, 1.979, 2.507, 3.172, 3.984, 4.955",\
                 "1.16, 1.196, 1.302, 1.489, 1.773, 2.174, 2.701, 3.367, 4.179, 5.146",\
                 "1.392, 1.428, 1.535, 1.72, 2.005, 2.404, 2.932, 3.597, 4.409, 5.379",\
                 "1.66, 1.697, 1.804, 1.989, 2.273, 2.672, 3.198, 3.863, 4.675, 5.643",\
                 "1.965, 2.002, 2.11, 2.296, 2.579, 2.977, 3.503, 4.168, 4.979, 5.947",\
                 "2.308, 2.347, 2.456, 2.642, 2.924, 3.322, 3.847, 4.511, 5.322, 6.289");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1308, 0.1626, 0.2516, 0.4123, 0.6788, 1.072, 1.606, 2.281, 3.104, 4.088",\
                 "0.131, 0.1628, 0.2516, 0.4122, 0.6785, 1.074, 1.605, 2.281, 3.103, 4.091",\
                 "0.1305, 0.1628, 0.2516, 0.4127, 0.6788, 1.074, 1.607, 2.281, 3.106, 4.094",\
                 "0.1317, 0.163, 0.252, 0.4134, 0.6788, 1.074, 1.605, 2.281, 3.106, 4.094",\
                 "0.1304, 0.162, 0.25, 0.4124, 0.6792, 1.075, 1.606, 2.281, 3.105, 4.094",\
                 "0.1324, 0.1638, 0.2524, 0.415, 0.6788, 1.071, 1.606, 2.28, 3.107, 4.093",\
                 "0.1368, 0.1684, 0.2568, 0.419, 0.6836, 1.075, 1.604, 2.276, 3.105, 4.093",\
                 "0.1428, 0.174, 0.2624, 0.4236, 0.6924, 1.091, 1.618, 2.284, 3.103, 4.087",\
                 "0.1476, 0.1796, 0.2674, 0.4302, 0.7018, 1.097, 1.618, 2.28, 3.101, 4.083",\
                 "0.1554, 0.1866, 0.2748, 0.4366, 0.7092, 1.1, 1.618, 2.281, 3.1, 4.084");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1385, 0.1836, 0.3459, 0.6648, 1.182, 1.914, 2.887, 4.101, 5.592, 7.364",\
                 "0.1377, 0.1837, 0.3456, 0.6651, 1.181, 1.918, 2.882, 4.102, 5.591, 7.361",\
                 "0.1382, 0.1836, 0.3459, 0.6652, 1.183, 1.915, 2.887, 4.1, 5.592, 7.366",\
                 "0.138, 0.1838, 0.3464, 0.6652, 1.181, 1.918, 2.885, 4.101, 5.591, 7.365",\
                 "0.1382, 0.1844, 0.348, 0.6654, 1.183, 1.914, 2.887, 4.102, 5.588, 7.367",\
                 "0.1392, 0.1858, 0.3482, 0.6664, 1.182, 1.914, 2.887, 4.102, 5.59, 7.364",\
                 "0.1432, 0.1884, 0.3494, 0.667, 1.182, 1.917, 2.888, 4.111, 5.59, 7.367",\
                 "0.1472, 0.1922, 0.3532, 0.6686, 1.182, 1.915, 2.884, 4.11, 5.593, 7.365",\
                 "0.1532, 0.1982, 0.3584, 0.6702, 1.183, 1.916, 2.884, 4.103, 5.598, 7.381",\
                 "0.1594, 0.2052, 0.3632, 0.6736, 1.184, 1.917, 2.883, 4.105, 5.592, 7.369");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.3906, 0.427, 0.5262, 0.6727, 0.8668, 1.116, 1.433, 1.827, 2.307, 2.879",\
                 "0.3993, 0.4357, 0.5348, 0.6812, 0.8756, 1.125, 1.441, 1.836, 2.315, 2.888",\
                 "0.443, 0.4793, 0.5785, 0.7248, 0.919, 1.168, 1.485, 1.879, 2.359, 2.931",\
                 "0.5512, 0.5873, 0.6857, 0.8317, 1.026, 1.275, 1.591, 1.985, 2.465, 3.037",\
                 "0.7185, 0.7552, 0.8552, 1.002, 1.197, 1.446, 1.762, 2.156, 2.635, 3.207",\
                 "0.9329, 0.9718, 1.076, 1.226, 1.423, 1.674, 1.99, 2.383, 2.862, 3.434",\
                 "1.188, 1.231, 1.341, 1.5, 1.702, 1.956, 2.274, 2.666, 3.145, 3.716",\
                 "1.485, 1.53, 1.649, 1.817, 2.029, 2.291, 2.614, 3.008, 3.487, 4.057",\
                 "1.823, 1.872, 2, 2.178, 2.4, 2.674, 3.007, 3.409, 3.889, 4.459",\
                 "2.207, 2.259, 2.395, 2.584, 2.818, 3.104, 3.449, 3.863, 4.353, 4.926");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.278, 0.3123, 0.4186, 0.6056, 0.8916, 1.293, 1.821, 2.487, 3.302, 4.272",\
                 "0.2869, 0.3215, 0.4279, 0.6147, 0.9007, 1.302, 1.831, 2.497, 3.311, 4.279",\
                 "0.3189, 0.3531, 0.459, 0.6456, 0.9313, 1.333, 1.861, 2.526, 3.341, 4.31",\
                 "0.3616, 0.3963, 0.5017, 0.6874, 0.9719, 1.372, 1.9, 2.566, 3.378, 4.351",\
                 "0.3844, 0.4202, 0.5267, 0.7123, 0.9953, 1.394, 1.92, 2.587, 3.4, 4.368",\
                 "0.3761, 0.4144, 0.5241, 0.7111, 0.9943, 1.392, 1.917, 2.581, 3.393, 4.362",\
                 "0.3324, 0.373, 0.4868, 0.678, 0.9641, 1.364, 1.887, 2.55, 3.36, 4.326",\
                 "0.249, 0.2926, 0.4127, 0.6068, 0.8968, 1.301, 1.83, 2.491, 3.3, 4.265",\
                 "0.125, 0.1725, 0.2979, 0.496, 0.7894, 1.199, 1.734, 2.402, 3.212, 4.177",\
                 "-0.0424, 0.0077, 0.1413, 0.3442, 0.6402, 1.053, 1.596, 2.274, 3.09, 4.057");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1579, 0.1947, 0.2982, 0.472, 0.736, 1.114, 1.629, 2.295, 3.118, 4.1",\
                 "0.1577, 0.1948, 0.2987, 0.472, 0.7368, 1.113, 1.629, 2.292, 3.118, 4.098",\
                 "0.1576, 0.1945, 0.2985, 0.4717, 0.7367, 1.113, 1.629, 2.295, 3.118, 4.098",\
                 "0.1598, 0.1969, 0.2996, 0.474, 0.7378, 1.113, 1.629, 2.294, 3.118, 4.096",\
                 "0.176, 0.213, 0.3146, 0.4828, 0.7428, 1.118, 1.631, 2.296, 3.117, 4.098",\
                 "0.2036, 0.2412, 0.34, 0.5054, 0.7596, 1.127, 1.635, 2.294, 3.116, 4.103",\
                 "0.2382, 0.278, 0.3804, 0.5436, 0.7886, 1.148, 1.648, 2.301, 3.12, 4.1",\
                 "0.2762, 0.321, 0.4286, 0.5918, 0.8374, 1.191, 1.675, 2.316, 3.125, 4.105",\
                 "0.3188, 0.3658, 0.4796, 0.6464, 0.896, 1.25, 1.731, 2.355, 3.146, 4.11",\
                 "0.3608, 0.412, 0.534, 0.7052, 0.9574, 1.318, 1.806, 2.427, 3.199, 4.141");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1287, 0.1752, 0.3403, 0.6612, 1.181, 1.917, 2.882, 4.101, 5.594, 7.37",\
                 "0.1289, 0.1752, 0.3397, 0.6618, 1.181, 1.916, 2.882, 4.101, 5.594, 7.372",\
                 "0.1286, 0.1754, 0.3397, 0.661, 1.181, 1.917, 2.882, 4.101, 5.589, 7.369",\
                 "0.1359, 0.1815, 0.345, 0.664, 1.181, 1.915, 2.887, 4.103, 5.591, 7.366",\
                 "0.1504, 0.1944, 0.3542, 0.6702, 1.185, 1.916, 2.881, 4.102, 5.589, 7.37",\
                 "0.1708, 0.2144, 0.3704, 0.6846, 1.191, 1.92, 2.89, 4.101, 5.589, 7.364",\
                 "0.195, 0.2396, 0.3914, 0.7044, 1.212, 1.933, 2.89, 4.109, 5.594, 7.367",\
                 "0.2204, 0.2676, 0.4158, 0.7282, 1.239, 1.963, 2.915, 4.115, 5.598, 7.375",\
                 "0.2478, 0.2952, 0.4442, 0.7514, 1.268, 1.998, 2.955, 4.149, 5.612, 7.378",\
                 "0.2778, 0.3318, 0.4788, 0.7772, 1.295, 2.039, 3.002, 4.202, 5.659, 7.398");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.5727, 0.6052, 0.6921, 0.8206, 0.9974, 1.236, 1.548, 1.942, 2.422, 2.994",\
                 "0.5806, 0.6129, 0.6998, 0.8283, 1.005, 1.244, 1.556, 1.949, 2.429, 3.002",\
                 "0.6114, 0.6435, 0.7305, 0.859, 1.036, 1.275, 1.587, 1.98, 2.46, 3.033",\
                 "0.6612, 0.6936, 0.7804, 0.9088, 1.086, 1.324, 1.637, 2.03, 2.51, 3.083",\
                 "0.7101, 0.742, 0.8279, 0.9562, 1.133, 1.372, 1.684, 2.077, 2.557, 3.13",\
                 "0.7473, 0.7793, 0.8649, 0.9934, 1.17, 1.409, 1.721, 2.114, 2.594, 3.167",\
                 "0.765, 0.7971, 0.8832, 1.012, 1.19, 1.428, 1.74, 2.133, 2.613, 3.185",\
                 "0.7605, 0.7932, 0.8808, 1.01, 1.188, 1.426, 1.738, 2.131, 2.611, 3.183",\
                 "0.7314, 0.7642, 0.8527, 0.983, 1.161, 1.399, 1.711, 2.104, 2.584, 3.156",\
                 "0.6744, 0.7088, 0.7982, 0.9298, 1.108, 1.347, 1.658, 2.051, 2.53, 3.103");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.5784, 0.6132, 0.7193, 0.906, 1.192, 1.592, 2.12, 2.787, 3.598, 4.568",\
                 "0.5909, 0.6258, 0.7318, 0.9185, 1.204, 1.605, 2.133, 2.799, 3.61, 4.582",\
                 "0.6421, 0.6766, 0.7829, 0.9697, 1.255, 1.656, 2.184, 2.85, 3.663, 4.634",\
                 "0.7454, 0.7805, 0.8869, 1.073, 1.359, 1.759, 2.287, 2.954, 3.766, 4.736",\
                 "0.8888, 0.9237, 1.03, 1.216, 1.501, 1.902, 2.429, 3.096, 3.908, 4.879",\
                 "1.062, 1.097, 1.203, 1.389, 1.674, 2.073, 2.601, 3.266, 4.079, 5.048",\
                 "1.261, 1.297, 1.403, 1.589, 1.873, 2.272, 2.799, 3.464, 4.278, 5.244",\
                 "1.485, 1.521, 1.628, 1.814, 2.097, 2.495, 3.021, 3.685, 4.498, 5.467",\
                 "1.734, 1.771, 1.879, 2.065, 2.347, 2.745, 3.27, 3.934, 4.745, 5.713",\
                 "2.008, 2.046, 2.156, 2.343, 2.624, 3.021, 3.546, 4.209, 5.02, 5.987");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1307, 0.1624, 0.2515, 0.4123, 0.6787, 1.073, 1.606, 2.279, 3.105, 4.088",\
                 "0.1307, 0.1627, 0.2513, 0.413, 0.6786, 1.072, 1.606, 2.28, 3.105, 4.088",\
                 "0.1303, 0.1628, 0.2516, 0.4126, 0.6786, 1.074, 1.605, 2.281, 3.108, 4.091",\
                 "0.131, 0.1634, 0.252, 0.413, 0.6788, 1.074, 1.607, 2.281, 3.108, 4.094",\
                 "0.1308, 0.1618, 0.25, 0.4128, 0.6788, 1.074, 1.606, 2.28, 3.107, 4.089",\
                 "0.1322, 0.1628, 0.252, 0.4132, 0.6794, 1.071, 1.606, 2.281, 3.108, 4.093",\
                 "0.1356, 0.1672, 0.2558, 0.4168, 0.68, 1.073, 1.604, 2.278, 3.106, 4.094",\
                 "0.1414, 0.1726, 0.2608, 0.4206, 0.6824, 1.076, 1.604, 2.278, 3.103, 4.088",\
                 "0.1462, 0.178, 0.2662, 0.424, 0.6862, 1.075, 1.608, 2.28, 3.104, 4.088",\
                 "0.1534, 0.1844, 0.272, 0.4286, 0.6878, 1.078, 1.608, 2.281, 3.105, 4.087");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1333, 0.1793, 0.3425, 0.6628, 1.18, 1.915, 2.887, 4.101, 5.589, 7.37",\
                 "0.1333, 0.1793, 0.3425, 0.6625, 1.181, 1.917, 2.886, 4.102, 5.588, 7.365",\
                 "0.1334, 0.1797, 0.3424, 0.6625, 1.181, 1.914, 2.882, 4.101, 5.59, 7.365",\
                 "0.134, 0.1798, 0.3426, 0.6626, 1.181, 1.914, 2.882, 4.101, 5.59, 7.364",\
                 "0.1344, 0.1808, 0.3444, 0.663, 1.18, 1.918, 2.887, 4.1, 5.589, 7.368",\
                 "0.138, 0.184, 0.3456, 0.6644, 1.18, 1.917, 2.887, 4.102, 5.592, 7.364",\
                 "0.142, 0.1872, 0.3494, 0.6652, 1.18, 1.913, 2.886, 4.099, 5.602, 7.364",\
                 "0.148, 0.1938, 0.3534, 0.6672, 1.18, 1.913, 2.882, 4.108, 5.59, 7.363",\
                 "0.1538, 0.1998, 0.3584, 0.6698, 1.182, 1.914, 2.881, 4.1, 5.599, 7.364",\
                 "0.1614, 0.2068, 0.364, 0.674, 1.183, 1.917, 2.881, 4.099, 5.588, 7.364");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.4267, 0.4632, 0.5624, 0.7087, 0.9029, 1.153, 1.469, 1.863, 2.343, 2.915",\
                 "0.4353, 0.4717, 0.5708, 0.7173, 0.9116, 1.161, 1.478, 1.872, 2.352, 2.924",\
                 "0.4608, 0.497, 0.5962, 0.7424, 0.9366, 1.186, 1.503, 1.897, 2.377, 2.949",\
                 "0.5302, 0.5664, 0.6651, 0.8114, 1.005, 1.255, 1.571, 1.965, 2.445, 3.017",\
                 "0.6486, 0.6865, 0.7881, 0.9366, 1.131, 1.381, 1.697, 2.091, 2.57, 3.142",\
                 "0.804, 0.8447, 0.9534, 1.109, 1.309, 1.561, 1.877, 2.271, 2.749, 3.321",\
                 "0.9853, 1.03, 1.148, 1.315, 1.526, 1.787, 2.107, 2.5, 2.978, 3.549",\
                 "1.193, 1.24, 1.366, 1.547, 1.773, 2.049, 2.38, 2.778, 3.257, 3.826",\
                 "1.425, 1.475, 1.611, 1.805, 2.046, 2.338, 2.687, 3.1, 3.586, 4.157",\
                 "1.685, 1.739, 1.883, 2.089, 2.345, 2.653, 3.022, 3.455, 3.959, 4.54");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.315, 0.3497, 0.4562, 0.6435, 0.9295, 1.33, 1.858, 2.525, 3.339, 4.308",\
                 "0.3215, 0.3564, 0.4629, 0.6502, 0.9359, 1.337, 1.865, 2.532, 3.345, 4.314",\
                 "0.3512, 0.3858, 0.4922, 0.6793, 0.965, 1.365, 1.895, 2.559, 3.371, 4.343",\
                 "0.4023, 0.4371, 0.5428, 0.7285, 1.013, 1.413, 1.941, 2.606, 3.417, 4.388",\
                 "0.4416, 0.4776, 0.5842, 0.7692, 1.052, 1.45, 1.977, 2.64, 3.454, 4.422",\
                 "0.4583, 0.4967, 0.6061, 0.7929, 1.075, 1.472, 1.997, 2.66, 3.471, 4.439",\
                 "0.4502, 0.4908, 0.605, 0.7952, 1.08, 1.478, 2.001, 2.663, 3.472, 4.438",\
                 "0.4147, 0.4585, 0.5786, 0.7727, 1.062, 1.464, 1.99, 2.651, 3.458, 4.423",\
                 "0.3508, 0.3983, 0.5247, 0.7237, 1.017, 1.425, 1.956, 2.621, 3.428, 4.392",\
                 "0.2582, 0.3088, 0.4431, 0.6466, 0.9439, 1.356, 1.897, 2.569, 3.383, 4.345");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1575, 0.1949, 0.2983, 0.4717, 0.7357, 1.113, 1.629, 2.295, 3.117, 4.096",\
                 "0.1576, 0.195, 0.2981, 0.472, 0.7359, 1.114, 1.628, 2.292, 3.118, 4.104",\
                 "0.158, 0.1946, 0.2982, 0.472, 0.7368, 1.112, 1.628, 2.294, 3.118, 4.096",\
                 "0.1615, 0.1982, 0.3012, 0.4734, 0.737, 1.115, 1.627, 2.295, 3.114, 4.103",\
                 "0.1794, 0.2168, 0.3186, 0.4864, 0.7454, 1.118, 1.631, 2.295, 3.114, 4.103",\
                 "0.2106, 0.2504, 0.3548, 0.5182, 0.7674, 1.132, 1.638, 2.296, 3.119, 4.099",\
                 "0.247, 0.2914, 0.4044, 0.5712, 0.8172, 1.168, 1.656, 2.306, 3.121, 4.099",\
                 "0.2848, 0.3342, 0.456, 0.6352, 0.8874, 1.237, 1.709, 2.333, 3.128, 4.106",\
                 "0.3252, 0.378, 0.5096, 0.6994, 0.9626, 1.324, 1.8, 2.407, 3.173, 4.12",\
                 "0.3674, 0.4254, 0.568, 0.7686, 1.044, 1.417, 1.907, 2.524, 3.272, 4.184");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003477, 0.01217, 0.02877, 0.05464, 0.09093, 0.1387, 0.1989, 0.2723, 0.3599");
          values("0.1338, 0.1801, 0.3438, 0.665, 1.182, 1.918, 2.883, 4.102, 5.589, 7.366",\
                 "0.1344, 0.18, 0.3438, 0.6646, 1.182, 1.918, 2.883, 4.103, 5.591, 7.365",\
                 "0.1336, 0.18, 0.3437, 0.6635, 1.182, 1.917, 2.888, 4.1, 5.589, 7.366",\
                 "0.1391, 0.1845, 0.3474, 0.6662, 1.183, 1.918, 2.883, 4.103, 5.589, 7.364",\
                 "0.1524, 0.1972, 0.3564, 0.6726, 1.185, 1.919, 2.889, 4.102, 5.591, 7.363",\
                 "0.172, 0.2164, 0.3734, 0.6868, 1.195, 1.921, 2.889, 4.11, 5.591, 7.367",\
                 "0.1954, 0.2416, 0.3936, 0.7078, 1.214, 1.934, 2.891, 4.106, 5.592, 7.365",\
                 "0.2252, 0.2698, 0.4202, 0.7326, 1.242, 1.963, 2.911, 4.114, 5.601, 7.371",\
                 "0.2526, 0.3014, 0.4516, 0.7588, 1.273, 2.003, 2.953, 4.143, 5.611, 7.377",\
                 "0.2862, 0.3378, 0.487, 0.7896, 1.306, 2.045, 3.006, 4.198, 5.65, 7.394");
        }
      }
    }
  }

