/*
 * 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__nor3_1) {
    area : 17.561600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&!A3" ;
      value : "0.000127225" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&A3" ;
      value : "0.00014747" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&!A3" ;
      value : "0.00011213" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&A3" ;
      value : "0.00011213" ;
    }

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.05256, 0.05257, 0.05247, 0.05235, 0.0523, 0.05229, 0.0523, 0.05234, \
                 0.0523, 0.0523");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.0109, -0.01088, -0.01092, -0.0109, -0.0109, -0.01091, -0.01093, \
                 -0.01094, -0.01093, -0.01094");
        }
      }

      internal_power() {
        when : "A2&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02821, 0.02818, 0.02816, 0.02809, 0.02813, 0.02811, 0.02813, \
                 0.02812, 0.02813, 0.02811");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01123, -0.01122, -0.01125, -0.01128, -0.01125, -0.01128, -0.01128, \
                 -0.0113, -0.01128, -0.01128");
        }
      }

      internal_power() {
        when : "A2&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02821, 0.02818, 0.02815, 0.02809, 0.02813, 0.02811, 0.02814, \
                 0.02813, 0.02813, 0.02812");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01124, -0.01124, -0.01125, -0.01126, -0.01125, -0.01125, -0.01128, \
                 -0.0113, -0.01129, -0.01128");
        }
      }
    }

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

      internal_power() {
        when : "!A1&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02496, 0.02492, 0.025, 0.02495, 0.02501, 0.02496, 0.025, 0.025, \
                 0.02497, 0.02495");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01187, -0.01189, -0.01189, -0.0119, -0.01192, -0.01193, -0.01197, \
                 -0.01198, -0.01198, -0.01198");
        }
      }

      internal_power() {
        when : "A1&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03937, 0.03933, 0.03936, 0.03921, 0.03923, 0.03921, 0.03926, \
                 0.03927, 0.03925, 0.03928");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.03271, -0.03282, -0.03586, -0.03786, -0.03835, -0.03852, -0.03866, \
                 -0.0387, -0.03877, -0.03884");
        }
      }

      internal_power() {
        when : "A1&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02347, 0.02342, 0.0235, 0.02346, 0.02349, 0.02351, 0.02359, \
                 0.02355, 0.02356, 0.02358");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.02897, -0.02834, -0.02671, -0.02469, -0.02301, -0.02196, -0.02142, \
                 -0.021, -0.02067, -0.02038");
        }
      }
    }

    pin(A3) {
      capacitance : 0.00409 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03925, 0.03929, 0.03934, 0.03911, 0.03913, 0.03921, 0.03923, \
                 0.03926, 0.03926, 0.03925");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.03413, -0.03524, -0.03761, -0.03808, -0.03833, -0.03853, -0.03867, \
                 -0.03874, -0.03876, -0.03884");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03926, 0.03925, 0.03938, 0.03917, 0.03916, 0.03919, 0.03927, \
                 0.03926, 0.03926, 0.03926");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.03264, -0.03396, -0.03559, -0.03676, -0.03742, -0.0377, -0.03805, \
                 -0.03818, -0.03826, -0.0384");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03924, 0.03924, 0.03934, 0.03911, 0.03913, 0.0392, 0.03921, \
                 0.03928, 0.03925, 0.03924");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.03721, -0.03734, -0.03775, -0.03808, -0.03833, -0.03852, -0.03867, \
                 -0.03874, -0.03876, -0.03883");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2)&(!A3))" ;
      max_capacitance : 0.08426 ;
      max_transition : 4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.001037, 0.001213, 0.001743, 0.002262, 0.002575, 0.002808, 0.002937, 0.003045, 0.003104, 0.003154",\
                 "0.001817, 0.002099, 0.002738, 0.00336, 0.003898, 0.004293, 0.004514, 0.004698, 0.00477, 0.004868",\
                 "0.006167, 0.006231, 0.006361, 0.006567, 0.006881, 0.007026, 0.007143, 0.007242, 0.007298, 0.00736",\
                 "0.01676, 0.0164, 0.0156, 0.01455, 0.01347, 0.01251, 0.01173, 0.01114, 0.01067, 0.0103",\
                 "0.03716, 0.03639, 0.03402, 0.0308, 0.02755, 0.02454, 0.02196, 0.01982, 0.01805, 0.01659",\
                 "0.07011, 0.06878, 0.06469, 0.0588, 0.05243, 0.04647, 0.04113, 0.03642, 0.03248, 0.02919",\
                 "0.1169, 0.1151, 0.1094, 0.1007, 0.09064, 0.08085, 0.07175, 0.0637, 0.05669, 0.05062",\
                 "0.1785, 0.1762, 0.169, 0.1576, 0.144, 0.1298, 0.1162, 0.1039, 0.09292, 0.08338",\
                 "0.2556, 0.2529, 0.2443, 0.2305, 0.2132, 0.1945, 0.1762, 0.1589, 0.1434, 0.1293",\
                 "0.3488, 0.3458, 0.3361, 0.3199, 0.2993, 0.2764, 0.2529, 0.2306, 0.2095, 0.1904");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.1168, 0.117, 0.1175, 0.1181, 0.1186, 0.1191, 0.1197, 0.1203, 0.121, 0.1217",\
                 "0.116, 0.1162, 0.1167, 0.1174, 0.1181, 0.1188, 0.1194, 0.1201, 0.1208, 0.1215",\
                 "0.12, 0.1198, 0.1195, 0.1192, 0.1191, 0.1194, 0.1198, 0.1203, 0.121, 0.1217",\
                 "0.1349, 0.1343, 0.1324, 0.1299, 0.1275, 0.1258, 0.1248, 0.1242, 0.124, 0.1241",\
                 "0.162, 0.1609, 0.1576, 0.1527, 0.1473, 0.1426, 0.1386, 0.1355, 0.1334, 0.1317",\
                 "0.2025, 0.2009, 0.1962, 0.1892, 0.1809, 0.1726, 0.165, 0.1583, 0.1529, 0.1486",\
                 "0.2578, 0.2558, 0.2495, 0.24, 0.229, 0.2172, 0.2057, 0.1949, 0.1853, 0.1774",\
                 "0.3291, 0.3267, 0.319, 0.3071, 0.2928, 0.2776, 0.2623, 0.2474, 0.2331, 0.2203",\
                 "0.4171, 0.4144, 0.4056, 0.3912, 0.3738, 0.3552, 0.3361, 0.3172, 0.2986, 0.2807",\
                 "0.523, 0.5199, 0.51, 0.494, 0.4733, 0.4507, 0.4274, 0.4041, 0.3815, 0.3595");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.0269, 0.02697, 0.02694, 0.02703, 0.02711, 0.02718, 0.0272, 0.02722, 0.02722, 0.02726",\
                 "0.02675, 0.02679, 0.02687, 0.02694, 0.02704, 0.0271, 0.02715, 0.02717, 0.0272, 0.02722",\
                 "0.02832, 0.02829, 0.0281, 0.02785, 0.02766, 0.02755, 0.02746, 0.02738, 0.02732, 0.02729",\
                 "0.03722, 0.03682, 0.03579, 0.03442, 0.03299, 0.03177, 0.03081, 0.03005, 0.02946, 0.02901",\
                 "0.05809, 0.0572, 0.05469, 0.05118, 0.04746, 0.04398, 0.04099, 0.03853, 0.03653, 0.0349",\
                 "0.09348, 0.09211, 0.08791, 0.08163, 0.07447, 0.06758, 0.06145, 0.05617, 0.05161, 0.04793",\
                 "0.1449, 0.1431, 0.1372, 0.1278, 0.1168, 0.1056, 0.09515, 0.08593, 0.07785, 0.07097",\
                 "0.2132, 0.2109, 0.2033, 0.1911, 0.1761, 0.1603, 0.1448, 0.1306, 0.1179, 0.1067",\
                 "0.2993, 0.2966, 0.2875, 0.2725, 0.2535, 0.2328, 0.2121, 0.1922, 0.174, 0.1577",\
                 "0.4038, 0.4006, 0.3903, 0.3728, 0.35, 0.3246, 0.2982, 0.2726, 0.2484, 0.226");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.1468, 0.1469, 0.1473, 0.1477, 0.1481, 0.1486, 0.1492, 0.1497, 0.1503, 0.1512",\
                 "0.1453, 0.1455, 0.1461, 0.1469, 0.1475, 0.1482, 0.1488, 0.1494, 0.1502, 0.1508",\
                 "0.1446, 0.1447, 0.145, 0.1457, 0.1463, 0.1471, 0.1481, 0.1488, 0.1496, 0.1504",\
                 "0.1547, 0.1543, 0.1532, 0.152, 0.151, 0.1506, 0.1506, 0.1506, 0.151, 0.1515",\
                 "0.1809, 0.18, 0.1769, 0.1729, 0.1687, 0.165, 0.1623, 0.1602, 0.1589, 0.1578",\
                 "0.2244, 0.2229, 0.218, 0.211, 0.2031, 0.1954, 0.1884, 0.1826, 0.178, 0.1743",\
                 "0.2854, 0.2831, 0.2767, 0.2669, 0.2553, 0.2432, 0.2319, 0.2213, 0.2123, 0.2045",\
                 "0.3641, 0.3618, 0.3538, 0.3412, 0.326, 0.31, 0.2937, 0.2784, 0.2643, 0.251",\
                 "0.4619, 0.4592, 0.4502, 0.4352, 0.4163, 0.3958, 0.3751, 0.3552, 0.3356, 0.3174",\
                 "0.5796, 0.5765, 0.5666, 0.5498, 0.5274, 0.5029, 0.4772, 0.4523, 0.4277, 0.4042");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.04852, 0.04851, 0.04848, 0.04847, 0.0485, 0.04859, 0.04856, 0.04859, 0.0486, 0.0486",\
                 "0.04679, 0.0468, 0.04673, 0.04667, 0.04666, 0.04676, 0.04678, 0.04676, 0.04677, 0.0468",\
                 "0.04618, 0.04611, 0.04578, 0.04547, 0.04517, 0.04498, 0.04479, 0.04472, 0.04468, 0.04464",\
                 "0.05419, 0.05376, 0.05265, 0.05098, 0.04938, 0.04802, 0.04702, 0.04628, 0.04566, 0.04521",\
                 "0.07649, 0.07558, 0.07263, 0.06853, 0.06418, 0.06033, 0.0571, 0.05436, 0.05225, 0.05057",\
                 "0.1166, 0.115, 0.1099, 0.1023, 0.09401, 0.08597, 0.0789, 0.07286, 0.06788, 0.06383",\
                 "0.1763, 0.1741, 0.1668, 0.1554, 0.142, 0.1287, 0.1164, 0.1055, 0.0963, 0.08848",\
                 "0.2566, 0.2537, 0.2444, 0.2293, 0.2107, 0.1913, 0.1726, 0.1557, 0.1408, 0.1279",\
                 "0.3582, 0.3548, 0.3437, 0.325, 0.3015, 0.2758, 0.2502, 0.2261, 0.2042, 0.185",\
                 "0.4821, 0.4782, 0.4654, 0.4435, 0.4153, 0.3837, 0.3509, 0.3191, 0.2895, 0.2626");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.176, 0.1761, 0.1766, 0.1769, 0.1774, 0.1779, 0.1783, 0.1788, 0.1795, 0.1803",\
                 "0.1745, 0.1747, 0.1754, 0.176, 0.1767, 0.1773, 0.178, 0.1787, 0.1793, 0.1801",\
                 "0.1726, 0.1727, 0.1732, 0.1741, 0.1751, 0.176, 0.177, 0.1778, 0.1787, 0.1795",\
                 "0.1789, 0.1787, 0.1782, 0.1775, 0.1773, 0.1774, 0.1779, 0.1783, 0.179, 0.1797",\
                 "0.203, 0.2021, 0.1997, 0.1963, 0.193, 0.1901, 0.1881, 0.1867, 0.1857, 0.1852",\
                 "0.2489, 0.2474, 0.2427, 0.2358, 0.2283, 0.2212, 0.2148, 0.2094, 0.2053, 0.202",\
                 "0.3174, 0.3153, 0.3085, 0.298, 0.2859, 0.2737, 0.2623, 0.2517, 0.2426, 0.235",\
                 "0.4082, 0.4057, 0.3974, 0.3837, 0.3671, 0.3497, 0.3327, 0.3164, 0.3017, 0.288",\
                 "0.5213, 0.5186, 0.5091, 0.4929, 0.4722, 0.4493, 0.4266, 0.4042, 0.3837, 0.364",\
                 "0.6579, 0.6546, 0.644, 0.626, 0.6019, 0.5743, 0.5456, 0.5173, 0.4901, 0.4646");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.06826, 0.07412, 0.09425, 0.1323, 0.1912, 0.2737, 0.382, 0.5184, 0.6848, 0.8836",\
                 "0.07399, 0.07972, 0.1, 0.1382, 0.1973, 0.2798, 0.3882, 0.5247, 0.6913, 0.8899",\
                 "0.09305, 0.09952, 0.1206, 0.1585, 0.2173, 0.2996, 0.4079, 0.5444, 0.7107, 0.9091",\
                 "0.1074, 0.1161, 0.1444, 0.1919, 0.256, 0.3379, 0.4455, 0.5812, 0.7473, 0.9451",\
                 "0.1069, 0.1182, 0.1552, 0.2159, 0.296, 0.3934, 0.5062, 0.6411, 0.806, 1.003",\
                 "0.08842, 0.1028, 0.1485, 0.2236, 0.322, 0.4394, 0.5736, 0.7241, 0.8913, 1.087",\
                 "0.05149, 0.06823, 0.1229, 0.2125, 0.3298, 0.4695, 0.6269, 0.8009, 0.9925, 1.2",\
                 "-0.0054, 0.0145, 0.0773, 0.181, 0.3177, 0.4797, 0.6623, 0.8626, 1.08, 1.314",\
                 "-0.0828, -0.0605, 0.0108, 0.1284, 0.2838, 0.4682, 0.6763, 0.9041, 1.15, 1.412",\
                 "-0.1817, -0.1571, -0.077, 0.0544, 0.2269, 0.4327, 0.6677, 0.9228, 1.199, 1.492");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.1264, 0.1407, 0.1905, 0.2852, 0.4315, 0.6359, 0.9046, 1.242, 1.654, 2.146",\
                 "0.13, 0.1442, 0.1942, 0.2889, 0.4356, 0.6404, 0.9085, 1.247, 1.659, 2.152",\
                 "0.1554, 0.1687, 0.2167, 0.3095, 0.4547, 0.6582, 0.9272, 1.264, 1.677, 2.168",\
                 "0.2129, 0.2269, 0.2734, 0.3616, 0.5027, 0.703, 0.9686, 1.304, 1.715, 2.205",\
                 "0.2949, 0.3103, 0.3611, 0.4531, 0.5897, 0.7846, 1.044, 1.376, 1.783, 2.27",\
                 "0.3978, 0.4157, 0.4741, 0.5735, 0.7174, 0.9104, 1.164, 1.488, 1.89, 2.372",\
                 "0.5194, 0.5407, 0.6083, 0.7214, 0.8757, 1.078, 1.332, 1.65, 2.043, 2.518",\
                 "0.6613, 0.6859, 0.7636, 0.8922, 1.064, 1.278, 1.543, 1.862, 2.249, 2.716",\
                 "0.8247, 0.8522, 0.9404, 1.085, 1.277, 1.511, 1.788, 2.121, 2.51, 2.97",\
                 "1.01, 1.041, 1.139, 1.301, 1.515, 1.771, 2.069, 2.414, 2.818, 3.282");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.07747, 0.08675, 0.1198, 0.1824, 0.2805, 0.4177, 0.598, 0.8261, 1.105, 1.437",\
                 "0.07744, 0.08683, 0.1198, 0.1829, 0.2806, 0.4175, 0.5982, 0.8261, 1.105, 1.437",\
                 "0.09046, 0.09776, 0.1247, 0.1831, 0.2805, 0.4181, 0.5984, 0.8275, 1.104, 1.436",\
                 "0.1304, 0.1399, 0.1697, 0.2214, 0.2983, 0.4205, 0.5986, 0.8256, 1.105, 1.436",\
                 "0.1845, 0.196, 0.2322, 0.2926, 0.3757, 0.4811, 0.6254, 0.831, 1.104, 1.436",\
                 "0.2508, 0.2656, 0.3101, 0.3819, 0.476, 0.5932, 0.7346, 0.9052, 1.137, 1.442",\
                 "0.3296, 0.3464, 0.4012, 0.4868, 0.5962, 0.7266, 0.8796, 1.059, 1.265, 1.524",\
                 "0.4204, 0.4412, 0.505, 0.6078, 0.7328, 0.8818, 1.049, 1.242, 1.461, 1.708",\
                 "0.523, 0.5472, 0.6224, 0.7384, 0.8864, 1.054, 1.241, 1.449, 1.683, 1.946",\
                 "0.6342, 0.6634, 0.7516, 0.886, 1.052, 1.243, 1.454, 1.683, 1.933, 2.209");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.2498, 0.2761, 0.3675, 0.5379, 0.8019, 1.169, 1.652, 2.26, 3.004, 3.897",\
                 "0.2487, 0.2754, 0.367, 0.5375, 0.802, 1.17, 1.651, 2.26, 3.011, 3.894",\
                 "0.2449, 0.2715, 0.3649, 0.5372, 0.8019, 1.169, 1.651, 2.265, 3.011, 3.898",\
                 "0.2642, 0.2871, 0.3701, 0.5346, 0.8012, 1.169, 1.654, 2.265, 3.005, 3.898",\
                 "0.2992, 0.3227, 0.4063, 0.5569, 0.8043, 1.168, 1.654, 2.261, 3.004, 3.895",\
                 "0.359, 0.3822, 0.4594, 0.611, 0.8432, 1.184, 1.654, 2.26, 3.004, 3.89",\
                 "0.4358, 0.4606, 0.5426, 0.686, 0.9154, 1.24, 1.681, 2.269, 3.005, 3.892",\
                 "0.5212, 0.5514, 0.6412, 0.7956, 1.014, 1.335, 1.756, 2.312, 3.022, 3.891",\
                 "0.6172, 0.6468, 0.7496, 0.9176, 1.147, 1.454, 1.871, 2.405, 3.083, 3.914",\
                 "0.7214, 0.7556, 0.8692, 1.054, 1.303, 1.612, 2.013, 2.543, 3.192, 3.997");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.09393, 0.09994, 0.1209, 0.1599, 0.2197, 0.3028, 0.4116, 0.5483, 0.715, 0.9137",\
                 "0.09882, 0.1049, 0.1259, 0.1649, 0.2247, 0.3077, 0.4166, 0.5534, 0.7201, 0.9187",\
                 "0.1183, 0.1242, 0.1448, 0.1835, 0.243, 0.3259, 0.4346, 0.5712, 0.7379, 0.9364",\
                 "0.1425, 0.1504, 0.176, 0.2202, 0.2813, 0.3633, 0.4712, 0.6073, 0.7735, 0.9716",\
                 "0.1549, 0.165, 0.1978, 0.2534, 0.3288, 0.4221, 0.5322, 0.6669, 0.8318, 1.029",\
                 "0.1528, 0.1651, 0.2055, 0.2737, 0.3651, 0.4762, 0.606, 0.7527, 0.9183, 1.114",\
                 "0.1354, 0.1498, 0.1974, 0.2776, 0.386, 0.5178, 0.6685, 0.8373, 1.024, 1.228",\
                 "0.1025, 0.119, 0.1732, 0.2658, 0.3908, 0.5427, 0.7165, 0.9091, 1.119, 1.35",\
                 "0.0542, 0.0716, 0.1326, 0.236, 0.3771, 0.5494, 0.7464, 0.9648, 1.202, 1.457",\
                 "-0.0115, 0.009, 0.0756, 0.1895, 0.3462, 0.5379, 0.7575, 1.001, 1.267, 1.551");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.185, 0.1993, 0.2493, 0.3437, 0.4899, 0.6938, 0.9625, 1.3, 1.713, 2.204",\
                 "0.1869, 0.2017, 0.2519, 0.3467, 0.4936, 0.6984, 0.9669, 1.305, 1.718, 2.209",\
                 "0.1987, 0.2131, 0.2629, 0.3578, 0.5045, 0.7094, 0.979, 1.316, 1.729, 2.221",\
                 "0.2309, 0.2456, 0.2955, 0.3876, 0.5313, 0.7341, 1.001, 1.338, 1.75, 2.242",\
                 "0.2898, 0.3049, 0.3551, 0.4485, 0.5897, 0.7865, 1.049, 1.382, 1.791, 2.28",\
                 "0.3707, 0.3877, 0.4435, 0.5403, 0.6828, 0.8777, 1.133, 1.46, 1.862, 2.345",\
                 "0.4681, 0.4874, 0.5508, 0.6586, 0.8079, 1.004, 1.259, 1.578, 1.973, 2.448",\
                 "0.581, 0.6032, 0.675, 0.7951, 0.9591, 1.165, 1.421, 1.74, 2.127, 2.594",\
                 "0.7098, 0.7348, 0.8153, 0.9489, 1.13, 1.353, 1.619, 1.941, 2.328, 2.788",\
                 "0.8554, 0.8825, 0.9727, 1.121, 1.319, 1.563, 1.848, 2.179, 2.569, 3.03");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.1132, 0.1228, 0.157, 0.2208, 0.3194, 0.4571, 0.6388, 0.8662, 1.144, 1.475",\
                 "0.113, 0.1231, 0.1565, 0.2204, 0.3191, 0.4572, 0.6382, 0.8664, 1.144, 1.475",\
                 "0.1176, 0.126, 0.1573, 0.2207, 0.3192, 0.4571, 0.6384, 0.8669, 1.144, 1.476",\
                 "0.1645, 0.1731, 0.2008, 0.2497, 0.3307, 0.4588, 0.6387, 0.8662, 1.144, 1.475",\
                 "0.2294, 0.24, 0.2726, 0.3283, 0.4073, 0.5108, 0.6602, 0.87, 1.144, 1.475",\
                 "0.3107, 0.3237, 0.3617, 0.4272, 0.5145, 0.627, 0.7636, 0.9372, 1.173, 1.481",\
                 "0.4087, 0.4231, 0.4701, 0.5446, 0.644, 0.767, 0.9138, 1.091, 1.295, 1.558",\
                 "0.523, 0.5384, 0.593, 0.6806, 0.7944, 0.9322, 1.091, 1.277, 1.491, 1.737",\
                 "0.6502, 0.6706, 0.7364, 0.8374, 0.966, 1.12, 1.293, 1.491, 1.718, 1.975",\
                 "0.7978, 0.8214, 0.8948, 1.012, 1.157, 1.327, 1.519, 1.734, 1.974, 2.244");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.2572, 0.2822, 0.3701, 0.5388, 0.8018, 1.17, 1.652, 2.261, 3.005, 3.898",\
                 "0.2574, 0.2822, 0.37, 0.5387, 0.8021, 1.17, 1.651, 2.262, 3.006, 3.894",\
                 "0.26, 0.2844, 0.371, 0.5386, 0.8015, 1.17, 1.653, 2.263, 3.004, 3.895",\
                 "0.2852, 0.3073, 0.3858, 0.5427, 0.8009, 1.169, 1.653, 2.261, 3.008, 3.895",\
                 "0.328, 0.3483, 0.4251, 0.5725, 0.8145, 1.17, 1.655, 2.263, 3.011, 3.89",\
                 "0.4038, 0.4219, 0.4888, 0.628, 0.8548, 1.195, 1.657, 2.261, 3.007, 3.896",\
                 "0.4946, 0.5152, 0.5858, 0.717, 0.9284, 1.247, 1.691, 2.278, 3.01, 3.888",\
                 "0.5984, 0.6228, 0.6976, 0.8356, 1.038, 1.338, 1.757, 2.317, 3.031, 3.894",\
                 "0.7118, 0.7368, 0.8206, 0.9702, 1.184, 1.47, 1.866, 2.397, 3.081, 3.926",\
                 "0.834, 0.8638, 0.954, 1.117, 1.348, 1.642, 2.02, 2.527, 3.177, 3.991");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.1023, 0.1091, 0.1325, 0.1747, 0.2379, 0.3236, 0.4344, 0.5726, 0.7405, 0.9398",\
                 "0.1063, 0.1131, 0.1362, 0.1785, 0.2416, 0.3272, 0.438, 0.5763, 0.7441, 0.9436",\
                 "0.1257, 0.1321, 0.1542, 0.1957, 0.2582, 0.3436, 0.4543, 0.5925, 0.7603, 0.9596",\
                 "0.1562, 0.1642, 0.1902, 0.2345, 0.2962, 0.3802, 0.49, 0.6276, 0.795, 0.9941",\
                 "0.177, 0.187, 0.2196, 0.2746, 0.3494, 0.4413, 0.5512, 0.687, 0.8531, 1.051",\
                 "0.1863, 0.1986, 0.238, 0.3043, 0.3941, 0.5032, 0.6302, 0.7746, 0.9396, 1.136",\
                 "0.1839, 0.1982, 0.244, 0.3216, 0.4271, 0.5545, 0.7016, 0.8662, 1.05, 1.252",\
                 "0.1697, 0.1856, 0.2379, 0.3266, 0.4468, 0.5936, 0.7615, 0.9488, 1.155, 1.381",\
                 "0.1443, 0.1616, 0.2186, 0.3181, 0.4532, 0.6185, 0.808, 1.019, 1.249, 1.499",\
                 "0.1078, 0.1265, 0.189, 0.2972, 0.4466, 0.6295, 0.8406, 1.075, 1.331, 1.607");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.2082, 0.2228, 0.2727, 0.367, 0.5133, 0.7176, 0.986, 1.324, 1.736, 2.228",\
                 "0.2111, 0.2257, 0.2762, 0.3711, 0.5177, 0.7224, 0.9911, 1.329, 1.742, 2.233",\
                 "0.2204, 0.2349, 0.2851, 0.3805, 0.5277, 0.7326, 1.002, 1.34, 1.753, 2.246",\
                 "0.2411, 0.2554, 0.3051, 0.398, 0.543, 0.7466, 1.015, 1.353, 1.766, 2.257",\
                 "0.2814, 0.2961, 0.3461, 0.4382, 0.5796, 0.7778, 1.042, 1.376, 1.785, 2.274",\
                 "0.3365, 0.3533, 0.4088, 0.5053, 0.6455, 0.8402, 1.096, 1.423, 1.827, 2.31",\
                 "0.4019, 0.4216, 0.4847, 0.5919, 0.741, 0.935, 1.188, 1.506, 1.901, 2.376",\
                 "0.4781, 0.4999, 0.5714, 0.6911, 0.8548, 1.061, 1.313, 1.628, 2.014, 2.479",\
                 "0.5634, 0.5882, 0.6674, 0.8007, 0.9811, 1.204, 1.47, 1.785, 2.168, 2.624",\
                 "0.6581, 0.6843, 0.7719, 0.9191, 1.118, 1.36, 1.646, 1.975, 2.358, 2.812");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.1415, 0.1521, 0.1885, 0.2541, 0.3542, 0.4927, 0.675, 0.9032, 1.182, 1.514",\
                 "0.1407, 0.1509, 0.1878, 0.2543, 0.354, 0.4937, 0.6746, 0.9032, 1.182, 1.514",\
                 "0.1403, 0.15, 0.1846, 0.2519, 0.3535, 0.4932, 0.6752, 0.9041, 1.182, 1.514",\
                 "0.1929, 0.2009, 0.2278, 0.2758, 0.3601, 0.4927, 0.6753, 0.9036, 1.182, 1.514",\
                 "0.271, 0.2803, 0.3106, 0.3621, 0.4367, 0.5385, 0.6915, 0.9055, 1.182, 1.514",\
                 "0.3707, 0.3814, 0.4166, 0.4746, 0.5544, 0.659, 0.7916, 0.9664, 1.206, 1.518",\
                 "0.4925, 0.5056, 0.5466, 0.6114, 0.6992, 0.8106, 0.949, 1.118, 1.323, 1.589",\
                 "0.638, 0.655, 0.7006, 0.7762, 0.8736, 0.992, 1.139, 1.313, 1.521, 1.763",\
                 "0.8062, 0.8234, 0.881, 0.9696, 1.076, 1.208, 1.361, 1.542, 1.755, 2.005",\
                 "0.9976, 1.018, 1.085, 1.185, 1.309, 1.452, 1.616, 1.806, 2.027, 2.281");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.001575, 0.003592, 0.007444, 0.01345, 0.02187, 0.03295, 0.04691, 0.06395, 0.08426");
          values("0.2575, 0.2825, 0.3703, 0.5388, 0.802, 1.169, 1.651, 2.26, 3.003, 3.898",\
                 "0.2579, 0.2827, 0.3701, 0.5389, 0.8008, 1.17, 1.652, 2.261, 3.003, 3.896",\
                 "0.2595, 0.2839, 0.3707, 0.5387, 0.8021, 1.17, 1.652, 2.262, 3.005, 3.889",\
                 "0.2758, 0.2983, 0.3798, 0.541, 0.8017, 1.169, 1.652, 2.261, 3.003, 3.892",\
                 "0.3202, 0.3401, 0.4145, 0.5638, 0.8107, 1.172, 1.652, 2.262, 3.003, 3.891",\
                 "0.412, 0.432, 0.4947, 0.6232, 0.8486, 1.189, 1.66, 2.265, 3.003, 3.897",\
                 "0.5282, 0.5468, 0.613, 0.7364, 0.935, 1.245, 1.688, 2.277, 3.011, 3.889",\
                 "0.6566, 0.6772, 0.7506, 0.8826, 1.078, 1.356, 1.762, 2.315, 3.031, 3.895",\
                 "0.8002, 0.82, 0.901, 1.045, 1.252, 1.524, 1.896, 2.409, 3.081, 3.927",\
                 "0.9582, 0.983, 1.066, 1.221, 1.446, 1.735, 2.092, 2.566, 3.195, 3.994");
        }
      }
    }
  }

