/*
 * 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_2) {
    area : 30.732800 ;

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

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

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

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

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.412134e-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.00717 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01507, 0.01508, 0.01505, 0.01502, 0.015, 0.015, 0.01498, 0.01496, \
                  0.01493, 0.01489");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.004106, -0.004121, -0.004125, -0.004121, -0.004121, -0.004129, \
                  -0.004132, -0.004132, -0.004129, -0.004131");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.00833, 0.008329, 0.008308, 0.008299, 0.008292, 0.008305, 0.008298, \
                  0.008288, 0.008279, 0.008256");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.004134, -0.004144, -0.004147, -0.004145, -0.004145, -0.004153, \
                  -0.004156, -0.004157, -0.004155, -0.004158");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.008329, 0.008327, 0.008308, 0.008301, 0.008301, 0.00831, 0.008302, \
                  0.008291, 0.008275, 0.008259");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.004134, -0.004147, -0.004143, -0.004138, -0.004145, -0.004157, \
                  -0.004156, -0.004153, -0.004158, -0.004156");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.007207, 0.00722, 0.007217, 0.007209, 0.007213, 0.007212, 0.007204, \
                  0.007185, 0.007165, 0.007125");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.004853, -0.004855, -0.004852, -0.004848, -0.004859, -0.004885, \
                  -0.004891, -0.004898, -0.004909, -0.004921");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01082, 0.01083, 0.01081, 0.0108, 0.01078, 0.01081, 0.0108, 0.01081, \
                  0.0108, 0.0108");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.009384, -0.00976, -0.01014, -0.01033, -0.01041, -0.01048, -0.01052, \
                  -0.01055, -0.01055, -0.01057");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.007012, 0.007028, 0.00702, 0.007014, 0.007021, 0.007037, 0.00704, \
                  0.007046, 0.007048, 0.007039");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.008003, -0.008017, -0.008009, -0.008024, -0.008023, -0.008052, \
                  -0.008064, -0.008075, -0.008083, -0.008097");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0108, 0.01079, 0.01077, 0.01077, 0.01077, 0.01082, 0.01081, \
                  0.0108, 0.0108, 0.01079");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.009817, -0.009983, -0.01022, -0.01036, -0.01044, -0.01048, \
                  -0.01052, -0.01056, -0.01056, -0.01058");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01082, 0.0108, 0.01078, 0.01078, 0.01078, 0.0108, 0.01081, 0.0108, \
                  0.01081, 0.01081");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.009088, -0.009269, -0.009589, -0.009873, -0.01005, -0.01019, \
                  -0.01027, -0.01032, -0.01035, -0.01038");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01081, 0.01079, 0.01077, 0.01078, 0.01078, 0.01081, 0.01081, \
                  0.01079, 0.01081, 0.0108");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.009841, -0.009971, -0.01022, -0.01036, -0.01044, -0.01048, \
                  -0.01053, -0.01055, -0.01056, -0.01058");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2)&(!A3))" ;
      max_capacitance : 0.1576 ;
      max_transition : 6.8 ;
      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.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("-0.001086, -0.001061, -0.0009741, -0.0009126, -0.0008858, -0.0008535, -0.0008344, -0.0008321, -0.0008221, -0.0008143",\
                 "-0.001211, -0.001111, -0.0009424, -0.0007499, -0.0006181, -0.0005433, -0.0004927, -0.0004649, -0.0004396, -0.0004204",\
                 "-0.001486, -0.00138, -0.00108, -0.0007393, -0.0004631, -0.0002622, -0.0001205, -3.63e-05, 2.415e-05, 6.859e-05",\
                 "-0.001541, -0.001477, -0.001234, -0.0008816, -0.0005339, -0.0002698, -7.419e-05, 7.482e-05, 0.0001846, 0.0002621",\
                 "-0.00104, -0.001001, -0.0009242, -0.0007335, -0.0004585, -0.0002321, -2.233e-05, 0.0001265, 0.0002452, 0.0003202",\
                 "0.0003335, 0.0002688, 0.0001539, 7.956e-05, 0.0001062, 0.000196, 0.0002835, 0.000366, 0.0004347, 0.0005062",\
                 "0.002623, 0.002508, 0.002145, 0.001733, 0.001397, 0.001199, 0.001098, 0.001036, 0.0009988, 0.0009662",\
                 "0.005964, 0.005752, 0.005161, 0.00437, 0.003602, 0.003036, 0.002598, 0.002285, 0.002049, 0.001853",\
                 "0.01032, 0.01004, 0.009227, 0.00804, 0.006836, 0.005798, 0.004956, 0.004304, 0.003768, 0.003347",\
                 "0.01578, 0.01544, 0.0144, 0.01286, 0.01116, 0.009621, 0.008284, 0.007183, 0.006284, 0.005546");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.03787, 0.03791, 0.03802, 0.03816, 0.03829, 0.03836, 0.0385, 0.03862, 0.03876, 0.03893",\
                 "0.03722, 0.03733, 0.03755, 0.0378, 0.03801, 0.03821, 0.03838, 0.03854, 0.03872, 0.03889",\
                 "0.0365, 0.03656, 0.0368, 0.03711, 0.03748, 0.03781, 0.03804, 0.03825, 0.03845, 0.03873",\
                 "0.03668, 0.0367, 0.03671, 0.03687, 0.03708, 0.0374, 0.03768, 0.03797, 0.03829, 0.03848",\
                 "0.0377, 0.03766, 0.03753, 0.03737, 0.03732, 0.03741, 0.03758, 0.03789, 0.03807, 0.03836",\
                 "0.03955, 0.03941, 0.03911, 0.03872, 0.03836, 0.03812, 0.03808, 0.03815, 0.03823, 0.03844",\
                 "0.04226, 0.04209, 0.04155, 0.04083, 0.04023, 0.03968, 0.03925, 0.03896, 0.03892, 0.0389",\
                 "0.04597, 0.0457, 0.04497, 0.04392, 0.04289, 0.04205, 0.04127, 0.0406, 0.04021, 0.04007",\
                 "0.0507, 0.05036, 0.0494, 0.04804, 0.04657, 0.04524, 0.0442, 0.04314, 0.04236, 0.04188",\
                 "0.05663, 0.0562, 0.05494, 0.05318, 0.0513, 0.04944, 0.048, 0.04666, 0.04543, 0.04476");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.005902, 0.005894, 0.005884, 0.005893, 0.005907, 0.005911, 0.005915, 0.005925, 0.005934, 0.005925",\
                 "0.005792, 0.005819, 0.005833, 0.005851, 0.005861, 0.00588, 0.005892, 0.005906, 0.005909, 0.005903",\
                 "0.005403, 0.00543, 0.005513, 0.005627, 0.005664, 0.005741, 0.005786, 0.005813, 0.005841, 0.005848",\
                 "0.005068, 0.005086, 0.005187, 0.005332, 0.005465, 0.005579, 0.00566, 0.005719, 0.00575, 0.005792",\
                 "0.005314, 0.005324, 0.005339, 0.005417, 0.005518, 0.005583, 0.005653, 0.005713, 0.005748, 0.005774",\
                 "0.006514, 0.006483, 0.006349, 0.006185, 0.006098, 0.006011, 0.006, 0.005963, 0.005954, 0.005955",\
                 "0.008715, 0.008622, 0.008263, 0.007874, 0.007486, 0.007148, 0.006885, 0.006734, 0.006563, 0.006449",\
                 "0.01203, 0.01184, 0.01137, 0.01059, 0.009842, 0.009125, 0.008553, 0.008099, 0.007741, 0.007454",\
                 "0.01646, 0.01624, 0.01553, 0.01445, 0.01325, 0.01212, 0.01113, 0.01029, 0.009624, 0.009081",\
                 "0.02203, 0.02172, 0.02089, 0.01949, 0.01784, 0.01621, 0.01475, 0.01344, 0.01237, 0.01146");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.04476, 0.04477, 0.04485, 0.04498, 0.04503, 0.04514, 0.04531, 0.04537, 0.04546, 0.0457",\
                 "0.04429, 0.04436, 0.04452, 0.0447, 0.04487, 0.04502, 0.04517, 0.04528, 0.04546, 0.04566",\
                 "0.04367, 0.04375, 0.04391, 0.04417, 0.04447, 0.04472, 0.04491, 0.04516, 0.04532, 0.04556",\
                 "0.04337, 0.0434, 0.0435, 0.04374, 0.044, 0.04429, 0.04457, 0.04486, 0.0451, 0.04535",\
                 "0.04345, 0.04344, 0.04351, 0.04362, 0.04378, 0.04405, 0.0443, 0.04452, 0.04476, 0.04519",\
                 "0.04416, 0.04414, 0.04407, 0.04404, 0.04406, 0.04413, 0.04432, 0.0445, 0.04472, 0.04499",\
                 "0.0461, 0.04599, 0.04568, 0.04532, 0.04512, 0.04496, 0.04491, 0.0449, 0.04504, 0.04521",\
                 "0.04943, 0.04919, 0.04859, 0.04781, 0.04713, 0.04668, 0.04634, 0.04605, 0.04591, 0.04591",\
                 "0.05409, 0.05376, 0.05284, 0.05161, 0.05035, 0.04938, 0.04873, 0.04813, 0.0475, 0.04738",\
                 "0.06017, 0.05973, 0.05843, 0.05672, 0.05494, 0.05334, 0.05204, 0.05116, 0.05026, 0.0498");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.01233, 0.01234, 0.01232, 0.01233, 0.0123, 0.01231, 0.01232, 0.01233, 0.01233, 0.01232",\
                 "0.0119, 0.01188, 0.01186, 0.01185, 0.01187, 0.01187, 0.01188, 0.01189, 0.01188, 0.01188",\
                 "0.01119, 0.0112, 0.01121, 0.01124, 0.01122, 0.01124, 0.01125, 0.01123, 0.01124, 0.01125",\
                 "0.01083, 0.01084, 0.01087, 0.01088, 0.0109, 0.01092, 0.01092, 0.01093, 0.01093, 0.01094",\
                 "0.0111, 0.01108, 0.01103, 0.01095, 0.01091, 0.01091, 0.01088, 0.01088, 0.01086, 0.01086",\
                 "0.01226, 0.01221, 0.01203, 0.01181, 0.01159, 0.01141, 0.01128, 0.01115, 0.01108, 0.01103",\
                 "0.01455, 0.01444, 0.01407, 0.01358, 0.01307, 0.01264, 0.01225, 0.01197, 0.01173, 0.01155",\
                 "0.01805, 0.01789, 0.01729, 0.01649, 0.01559, 0.01475, 0.01406, 0.01347, 0.013, 0.01263",\
                 "0.02285, 0.02262, 0.02181, 0.02067, 0.01928, 0.01799, 0.01683, 0.01584, 0.01504, 0.01439",\
                 "0.02898, 0.02868, 0.02772, 0.02617, 0.02432, 0.02248, 0.02077, 0.01927, 0.01803, 0.01696");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.05133, 0.05136, 0.05146, 0.05154, 0.05162, 0.05173, 0.05184, 0.05195, 0.05209, 0.05224",\
                 "0.05088, 0.05095, 0.05109, 0.05129, 0.05145, 0.05161, 0.05178, 0.05185, 0.05203, 0.05212",\
                 "0.05023, 0.05031, 0.05047, 0.05077, 0.05101, 0.05128, 0.0515, 0.05171, 0.05185, 0.05204",\
                 "0.0499, 0.04994, 0.05006, 0.05026, 0.05056, 0.05082, 0.05113, 0.05137, 0.05165, 0.05196",\
                 "0.04981, 0.0498, 0.04992, 0.05002, 0.05022, 0.05051, 0.05079, 0.05108, 0.05136, 0.05174",\
                 "0.05008, 0.05007, 0.05008, 0.05016, 0.05026, 0.05043, 0.05063, 0.0509, 0.05112, 0.05137",\
                 "0.05135, 0.05128, 0.05112, 0.05092, 0.05087, 0.05092, 0.05095, 0.05108, 0.05122, 0.05151",\
                 "0.05416, 0.05394, 0.05349, 0.05295, 0.05245, 0.05225, 0.05208, 0.05197, 0.05187, 0.05209",\
                 "0.05875, 0.05844, 0.05759, 0.05647, 0.05545, 0.05466, 0.05422, 0.05381, 0.0534, 0.05342",\
                 "0.06526, 0.06482, 0.06351, 0.06177, 0.06005, 0.05854, 0.05744, 0.05672, 0.05606, 0.05563");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.07725, 0.08395, 0.1071, 0.1513, 0.2198, 0.3156, 0.4418, 0.6007, 0.7946, 1.026",\
                 "0.09148, 0.09814, 0.1218, 0.1662, 0.2349, 0.3309, 0.4573, 0.6163, 0.8104, 1.042",\
                 "0.1344, 0.1433, 0.1712, 0.2171, 0.2863, 0.3826, 0.5091, 0.6683, 0.8625, 1.094",\
                 "0.1692, 0.1826, 0.2253, 0.2933, 0.3792, 0.48, 0.6064, 0.7658, 0.9599, 1.191",\
                 "0.1837, 0.202, 0.2601, 0.3528, 0.4707, 0.606, 0.7544, 0.9176, 1.112, 1.343",\
                 "0.1764, 0.1993, 0.2725, 0.3896, 0.5408, 0.7144, 0.9043, 1.108, 1.322, 1.556",\
                 "0.1461, 0.173, 0.2621, 0.4041, 0.5867, 0.7992, 1.033, 1.282, 1.545, 1.82",\
                 "0.0902, 0.123, 0.2266, 0.3934, 0.6084, 0.8582, 1.136, 1.432, 1.745, 2.073",\
                 "0.0066, 0.0447, 0.1643, 0.3569, 0.6038, 0.8913, 1.212, 1.556, 1.921, 2.3",\
                 "-0.1065, -0.0631, 0.0734, 0.291, 0.5703, 0.897, 1.259, 1.652, 2.067, 2.501");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.2366, 0.2629, 0.3548, 0.5295, 0.8003, 1.179, 1.678, 2.306, 3.07, 3.983",\
                 "0.2435, 0.2703, 0.3635, 0.5395, 0.8112, 1.191, 1.69, 2.318, 3.085, 3.997",\
                 "0.2878, 0.3141, 0.4067, 0.5834, 0.857, 1.239, 1.738, 2.369, 3.135, 4.048",\
                 "0.3931, 0.4191, 0.5076, 0.681, 0.953, 1.334, 1.834, 2.463, 3.231, 4.144",\
                 "0.5271, 0.5597, 0.6663, 0.8452, 1.113, 1.491, 1.99, 2.619, 3.385, 4.3",\
                 "0.6789, 0.7177, 0.8448, 1.059, 1.345, 1.72, 2.216, 2.842, 3.608, 4.521",\
                 "0.8533, 0.8975, 1.043, 1.289, 1.622, 2.026, 2.52, 3.142, 3.905, 4.814",\
                 "1.055, 1.104, 1.265, 1.542, 1.918, 2.376, 2.905, 3.527, 4.287, 5.194",\
                 "1.287, 1.34, 1.517, 1.819, 2.235, 2.746, 3.337, 3.998, 4.758, 5.661",\
                 "1.55, 1.609, 1.801, 2.127, 2.578, 3.138, 3.79, 4.519, 5.319, 6.225");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.08998, 0.1009, 0.14, 0.2148, 0.331, 0.4939, 0.7078, 0.9796, 1.31, 1.701",\
                 "0.08982, 0.101, 0.1402, 0.2145, 0.3307, 0.4938, 0.7092, 0.9793, 1.31, 1.703",\
                 "0.1207, 0.1292, 0.1565, 0.2182, 0.331, 0.4935, 0.708, 0.9787, 1.308, 1.702",\
                 "0.1875, 0.1997, 0.2393, 0.3006, 0.3823, 0.5098, 0.7105, 0.9777, 1.308, 1.703",\
                 "0.2631, 0.2801, 0.3328, 0.4164, 0.5223, 0.6448, 0.7914, 1.008, 1.313, 1.703",\
                 "0.3474, 0.3676, 0.4346, 0.542, 0.6772, 0.831, 1.002, 1.186, 1.421, 1.746",\
                 "0.4412, 0.4656, 0.5458, 0.675, 0.84, 1.031, 1.236, 1.458, 1.695, 1.957",\
                 "0.545, 0.5742, 0.6684, 0.8184, 1.011, 1.238, 1.486, 1.749, 2.025, 2.317",\
                 "0.6622, 0.6954, 0.8008, 0.9724, 1.193, 1.454, 1.742, 2.051, 2.374, 2.707",\
                 "0.7896, 0.8276, 0.9472, 1.139, 1.389, 1.68, 2.01, 2.359, 2.731, 3.116");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.3784, 0.4226, 0.5778, 0.8731, 1.329, 1.966, 2.805, 3.865, 5.15, 6.691",\
                 "0.3761, 0.4218, 0.5779, 0.8723, 1.327, 1.966, 2.804, 3.862, 5.151, 6.688",\
                 "0.3689, 0.4162, 0.5764, 0.8722, 1.329, 1.966, 2.803, 3.863, 5.155, 6.688",\
                 "0.3942, 0.4313, 0.573, 0.8688, 1.328, 1.967, 2.805, 3.862, 5.15, 6.686",\
                 "0.482, 0.5208, 0.6508, 0.895, 1.324, 1.966, 2.804, 3.863, 5.15, 6.69",\
                 "0.5778, 0.6226, 0.7736, 1.023, 1.391, 1.971, 2.804, 3.863, 5.15, 6.689",\
                 "0.6746, 0.7266, 0.8984, 1.185, 1.569, 2.078, 2.827, 3.863, 5.153, 6.692",\
                 "0.776, 0.8344, 1.024, 1.348, 1.779, 2.304, 2.972, 3.906, 5.154, 6.691",\
                 "0.8896, 0.9498, 1.155, 1.51, 1.994, 2.574, 3.246, 4.091, 5.224, 6.701",\
                 "1.016, 1.081, 1.294, 1.677, 2.208, 2.848, 3.585, 4.415, 5.447, 6.797");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.1014, 0.1087, 0.1336, 0.1798, 0.2501, 0.3475, 0.4746, 0.6342, 0.8287, 1.06",\
                 "0.1157, 0.123, 0.1479, 0.1941, 0.2645, 0.3618, 0.489, 0.6486, 0.843, 1.075",\
                 "0.1658, 0.1735, 0.1985, 0.2445, 0.3148, 0.4123, 0.5395, 0.6992, 0.8936, 1.125",\
                 "0.2209, 0.2324, 0.2696, 0.3306, 0.4107, 0.5093, 0.6363, 0.7961, 0.9905, 1.222",\
                 "0.2573, 0.2729, 0.3233, 0.4066, 0.5154, 0.6435, 0.7863, 0.9477, 1.142, 1.373",\
                 "0.2732, 0.2928, 0.3561, 0.4615, 0.6002, 0.7642, 0.9467, 1.144, 1.354, 1.587",\
                 "0.2676, 0.291, 0.367, 0.4938, 0.6625, 0.8624, 1.086, 1.328, 1.585, 1.855",\
                 "0.238, 0.2654, 0.3547, 0.5032, 0.7002, 0.9364, 1.201, 1.489, 1.794, 2.115",\
                 "0.1831, 0.2149, 0.3172, 0.4877, 0.7141, 0.9843, 1.29, 1.623, 1.978, 2.352",\
                 "0.1026, 0.1379, 0.2527, 0.4458, 0.7013, 1.006, 1.352, 1.73, 2.135, 2.561");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.3351, 0.3612, 0.4532, 0.6277, 0.8974, 1.276, 1.775, 2.402, 3.167, 4.08",\
                 "0.3448, 0.3715, 0.4641, 0.6392, 0.9104, 1.29, 1.788, 2.416, 3.182, 4.094",\
                 "0.3895, 0.4162, 0.509, 0.6855, 0.9576, 1.338, 1.837, 2.466, 3.232, 4.145",\
                 "0.4716, 0.499, 0.5926, 0.7684, 1.041, 1.422, 1.922, 2.551, 3.319, 4.232",\
                 "0.573, 0.6047, 0.7105, 0.8962, 1.169, 1.55, 2.05, 2.679, 3.446, 4.362",\
                 "0.6954, 0.7314, 0.85, 1.056, 1.35, 1.732, 2.232, 2.86, 3.627, 4.541",\
                 "0.8424, 0.883, 1.016, 1.244, 1.564, 1.973, 2.477, 3.104, 3.869, 4.782",\
                 "1.02, 1.065, 1.212, 1.462, 1.809, 2.249, 2.782, 3.416, 4.18, 5.092",\
                 "1.23, 1.279, 1.439, 1.71, 2.085, 2.558, 3.127, 3.793, 4.564, 5.474",\
                 "1.47, 1.524, 1.699, 1.992, 2.395, 2.901, 3.505, 4.209, 5.016, 5.934");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.117, 0.1287, 0.1684, 0.2433, 0.3597, 0.522, 0.735, 1.006, 1.335, 1.727",\
                 "0.1166, 0.1284, 0.1676, 0.2425, 0.3591, 0.5217, 0.736, 1.005, 1.334, 1.727",\
                 "0.1298, 0.1386, 0.1718, 0.2427, 0.3592, 0.5215, 0.7365, 1.005, 1.334, 1.726",\
                 "0.1988, 0.2106, 0.2484, 0.3091, 0.3932, 0.5307, 0.7359, 1.005, 1.334, 1.727",\
                 "0.2775, 0.294, 0.3449, 0.4258, 0.5294, 0.651, 0.8042, 1.029, 1.337, 1.727",\
                 "0.3612, 0.3826, 0.4472, 0.5518, 0.6848, 0.8374, 1.006, 1.193, 1.435, 1.765",\
                 "0.453, 0.4778, 0.5568, 0.6844, 0.848, 1.038, 1.243, 1.464, 1.699, 1.968",\
                 "0.552, 0.5816, 0.6742, 0.824, 1.02, 1.244, 1.492, 1.752, 2.031, 2.321",\
                 "0.657, 0.6918, 0.7998, 0.9738, 1.196, 1.458, 1.746, 2.053, 2.376, 2.711",\
                 "0.7718, 0.811, 0.9346, 1.132, 1.385, 1.681, 2.011, 2.362, 2.733, 3.118");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.3819, 0.4251, 0.5792, 0.8734, 1.327, 1.966, 2.804, 3.861, 5.152, 6.691",\
                 "0.3817, 0.4257, 0.5785, 0.8715, 1.327, 1.966, 2.805, 3.861, 5.148, 6.691",\
                 "0.3831, 0.4262, 0.5786, 0.8726, 1.327, 1.965, 2.806, 3.862, 5.153, 6.69",\
                 "0.4054, 0.4441, 0.5857, 0.8738, 1.328, 1.965, 2.804, 3.862, 5.154, 6.688",\
                 "0.471, 0.511, 0.6472, 0.9038, 1.332, 1.966, 2.804, 3.862, 5.153, 6.691",\
                 "0.548, 0.5896, 0.7346, 0.9986, 1.393, 1.982, 2.805, 3.861, 5.153, 6.693",\
                 "0.641, 0.6856, 0.8382, 1.111, 1.516, 2.068, 2.838, 3.866, 5.15, 6.692",\
                 "0.747, 0.792, 0.9498, 1.239, 1.662, 2.226, 2.952, 3.915, 5.162, 6.689",\
                 "0.8648, 0.9122, 1.076, 1.377, 1.821, 2.406, 3.141, 4.056, 5.234, 6.707",\
                 "0.9938, 1.044, 1.215, 1.528, 1.989, 2.6, 3.361, 4.279, 5.398, 6.801");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.1061, 0.1143, 0.1421, 0.1924, 0.267, 0.3681, 0.4983, 0.6602, 0.8565, 1.089",\
                 "0.1201, 0.1283, 0.1557, 0.2058, 0.2802, 0.3813, 0.5114, 0.6734, 0.8696, 1.103",\
                 "0.174, 0.1817, 0.2077, 0.256, 0.3296, 0.4303, 0.5604, 0.7224, 0.9186, 1.151",\
                 "0.2415, 0.2528, 0.2888, 0.3491, 0.4278, 0.5275, 0.6569, 0.8186, 1.015, 1.248",\
                 "0.2933, 0.3082, 0.3565, 0.4371, 0.5431, 0.6681, 0.8085, 0.9708, 1.166, 1.399",\
                 "0.3258, 0.3444, 0.4049, 0.506, 0.6397, 0.7986, 0.9775, 1.172, 1.379, 1.613",\
                 "0.3384, 0.3604, 0.4326, 0.5535, 0.7153, 0.9083, 1.126, 1.364, 1.617, 1.884",\
                 "0.3294, 0.355, 0.4384, 0.5785, 0.7669, 0.9947, 1.252, 1.534, 1.834, 2.151",\
                 "0.2979, 0.3269, 0.4217, 0.5814, 0.796, 1.056, 1.353, 1.678, 2.027, 2.394",\
                 "0.2433, 0.2755, 0.3815, 0.561, 0.802, 1.094, 1.428, 1.797, 2.193, 2.613");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.3718, 0.3983, 0.4901, 0.6642, 0.9341, 1.313, 1.811, 2.438, 3.204, 4.116",\
                 "0.385, 0.4116, 0.5044, 0.6793, 0.9505, 1.33, 1.829, 2.456, 3.222, 4.134",\
                 "0.4329, 0.4596, 0.5526, 0.729, 1.001, 1.381, 1.881, 2.509, 3.276, 4.189",\
                 "0.5126, 0.5396, 0.6323, 0.808, 1.08, 1.461, 1.961, 2.59, 3.357, 4.271",\
                 "0.6055, 0.6354, 0.7362, 0.9173, 1.19, 1.571, 2.071, 2.7, 3.467, 4.384",\
                 "0.7056, 0.7383, 0.8487, 1.046, 1.334, 1.716, 2.216, 2.844, 3.611, 4.526",\
                 "0.821, 0.8566, 0.9764, 1.189, 1.497, 1.901, 2.405, 3.033, 3.8, 4.713",\
                 "0.9605, 0.9995, 1.128, 1.355, 1.681, 2.109, 2.638, 3.275, 4.039, 4.951",\
                 "1.127, 1.169, 1.31, 1.55, 1.894, 2.343, 2.898, 3.561, 4.336, 5.247",\
                 "1.321, 1.369, 1.521, 1.78, 2.14, 2.607, 3.186, 3.877, 4.682, 5.605");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.141, 0.1532, 0.1959, 0.2734, 0.3909, 0.5551, 0.7679, 1.036, 1.366, 1.756",\
                 "0.1383, 0.151, 0.1941, 0.2724, 0.3909, 0.5548, 0.7681, 1.036, 1.365, 1.758",\
                 "0.1446, 0.1543, 0.1912, 0.2681, 0.3882, 0.5536, 0.7666, 1.037, 1.365, 1.757",\
                 "0.2173, 0.229, 0.2655, 0.3244, 0.4121, 0.5553, 0.7655, 1.036, 1.366, 1.757",\
                 "0.3, 0.3163, 0.3654, 0.4445, 0.546, 0.6646, 0.8226, 1.053, 1.367, 1.757",\
                 "0.3892, 0.4088, 0.472, 0.573, 0.7026, 0.8524, 1.019, 1.206, 1.453, 1.789",\
                 "0.4844, 0.5074, 0.5852, 0.7078, 0.8676, 1.051, 1.255, 1.478, 1.709, 1.98",\
                 "0.587, 0.6148, 0.7042, 0.8526, 1.04, 1.26, 1.504, 1.763, 2.04, 2.329",\
                 "0.695, 0.7288, 0.8324, 1, 1.218, 1.474, 1.76, 2.064, 2.384, 2.719",\
                 "0.81, 0.847, 0.9664, 1.16, 1.405, 1.695, 2.021, 2.373, 2.742, 3.125");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.002081, 0.005874, 0.01312, 0.0244, 0.04024, 0.06107, 0.08732, 0.1194, 0.1576");
          values("0.3823, 0.426, 0.5793, 0.873, 1.328, 1.967, 2.805, 3.862, 5.152, 6.687",\
                 "0.3826, 0.4258, 0.5798, 0.871, 1.327, 1.966, 2.804, 3.861, 5.151, 6.691",\
                 "0.3831, 0.4262, 0.5795, 0.8736, 1.328, 1.966, 2.805, 3.861, 5.152, 6.689",\
                 "0.3924, 0.4345, 0.5814, 0.8718, 1.327, 1.965, 2.804, 3.862, 5.151, 6.686",\
                 "0.4424, 0.4838, 0.6222, 0.8906, 1.33, 1.967, 2.806, 3.861, 5.152, 6.693",\
                 "0.4972, 0.541, 0.6898, 0.9642, 1.376, 1.978, 2.805, 3.861, 5.15, 6.69",\
                 "0.5628, 0.6078, 0.763, 1.05, 1.477, 2.052, 2.835, 3.866, 5.152, 6.691",\
                 "0.6506, 0.6948, 0.849, 1.143, 1.587, 2.181, 2.936, 3.918, 5.163, 6.687",\
                 "0.7632, 0.8076, 0.958, 1.249, 1.701, 2.318, 3.095, 4.045, 5.239, 6.715",\
                 "0.8924, 0.9368, 1.088, 1.375, 1.83, 2.458, 3.261, 4.232, 5.393, 6.814");
        }
      }
    }
  }

