/*
 * 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__nand3_2) {
    area : 28.537600 ;

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

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

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

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

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.678048e-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.007839 ;
      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.01049, 0.01046, 0.01038, 0.01032, 0.01031, 0.01031, 0.01032, \
                  0.0103, 0.01031, 0.01029");
        }

        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.006529, -0.006523, -0.006509, -0.006514, -0.006528, -0.006545, \
                  -0.006545, -0.006552, -0.006536, -0.006561");
        }
      }

      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.01046, 0.01045, 0.01039, 0.01034, 0.01033, 0.01032, 0.01031, \
                  0.01031, 0.01032, 0.01032");
        }

        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.006525, -0.006529, -0.006518, -0.006522, -0.006527, -0.00655, \
                  -0.006551, -0.006551, -0.006556, -0.006554");
        }
      }

      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.01035, 0.01036, 0.01033, 0.01031, 0.0103, 0.01032, 0.01032, \
                  0.0103, 0.0103, 0.01031");
        }

        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.00387, 0.00386, 0.003859, 0.003841, 0.003813, 0.003778, 0.003757, \
                  0.003751, 0.003713, 0.003679");
        }
      }
    }

    pin(A2) {
      capacitance : 0.008316 ;
      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.01192, 0.01197, 0.01209, 0.01223, 0.01236, 0.01245, 0.01252, \
                  0.01255, 0.01259, 0.0126");
        }

        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.00886, -0.008842, -0.0088, -0.008781, -0.008763, -0.008763, \
                  -0.008759, -0.008747, -0.008748, -0.00874");
        }
      }

      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.01004, 0.009222, 0.00884, 0.008817, 0.008787, 0.008788, 0.008789, \
                  0.008792, 0.008788, 0.008783");
        }

        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.008828, -0.008817, -0.008807, -0.008772, -0.008748, -0.008777, \
                  -0.00877, -0.008763, -0.008757, -0.008758");
        }
      }

      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.009949, 0.009943, 0.009919, 0.009905, 0.009893, 0.009901, 0.009895, \
                  0.009883, 0.009878, 0.009867");
        }

        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.007644, -0.007646, -0.007629, -0.007629, -0.007624, -0.007647, \
                  -0.007659, -0.007658, -0.007681, -0.007709");
        }
      }
    }

    pin(A3) {
      capacitance : 0.008654 ;
      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.008916, 0.008912, 0.008853, 0.008811, 0.008791, 0.008798, 0.008804, \
                  0.008797, 0.0088, 0.008787");
        }

        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.008859, -0.008837, -0.008784, -0.008762, -0.008757, -0.008751, \
                  -0.008757, -0.008741, -0.008735, -0.008737");
        }
      }

      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.008893, 0.008868, 0.008842, 0.008814, 0.008791, 0.008797, 0.00879, \
                  0.008789, 0.008789, 0.008789");
        }

        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.008824, -0.008827, -0.008817, -0.008783, -0.00877, -0.008782, \
                  -0.00877, -0.008764, -0.008762, -0.008757");
        }
      }

      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.008976, 0.008901, 0.008854, 0.008817, 0.008799, 0.008807, 0.008804, \
                  0.008805, 0.008803, 0.008792");
        }

        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.008839, -0.008836, -0.008803, -0.00878, -0.008767, -0.008767, \
                  -0.008767, -0.008756, -0.008755, -0.008737");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2)|(!A3))" ;
      max_capacitance : 0.3752 ;
      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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.006185, 0.006234, 0.006303, 0.006335, 0.006357, 0.006372, 0.006374, 0.006379, 0.006382, 0.006391",\
                 "0.005756, 0.005874, 0.006083, 0.006197, 0.006266, 0.006308, 0.006331, 0.00634, 0.006355, 0.006353",\
                 "0.005063, 0.005219, 0.005574, 0.005873, 0.006065, 0.006172, 0.00623, 0.006274, 0.006298, 0.006314",\
                 "0.004926, 0.005006, 0.005277, 0.00558, 0.005834, 0.006002, 0.006115, 0.006184, 0.006235, 0.006264",\
                 "0.005711, 0.005642, 0.00557, 0.005656, 0.005808, 0.005945, 0.006053, 0.006132, 0.006185, 0.006229",\
                 "0.007482, 0.007257, 0.006755, 0.006396, 0.006258, 0.006247, 0.006239, 0.006254, 0.006278, 0.006289",\
                 "0.01034, 0.009919, 0.008955, 0.00802, 0.007391, 0.007048, 0.006826, 0.006692, 0.006603, 0.006549",\
                 "0.01428, 0.01367, 0.01221, 0.01066, 0.009392, 0.00854, 0.007978, 0.007562, 0.007287, 0.007089",\
                 "0.01943, 0.01863, 0.01662, 0.01436, 0.01239, 0.01092, 0.009857, 0.00907, 0.008519, 0.00806",\
                 "0.02575, 0.02478, 0.02226, 0.01927, 0.0165, 0.01428, 0.0126, 0.01131, 0.01035, 0.009627");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.03184, 0.0321, 0.03245, 0.0326, 0.03284, 0.03304, 0.03341, 0.03383, 0.03398, 0.03474",\
                 "0.03112, 0.03149, 0.0322, 0.03274, 0.03315, 0.03337, 0.03379, 0.03405, 0.03458, 0.03522",\
                 "0.03004, 0.03032, 0.03116, 0.03207, 0.0326, 0.03325, 0.03371, 0.03407, 0.03466, 0.03502",\
                 "0.02989, 0.03004, 0.03048, 0.03118, 0.03187, 0.03272, 0.03326, 0.03379, 0.0341, 0.0352",\
                 "0.03097, 0.03079, 0.03081, 0.03104, 0.03155, 0.03207, 0.03278, 0.03332, 0.03412, 0.03474",\
                 "0.03304, 0.0328, 0.03217, 0.03188, 0.03177, 0.03211, 0.03266, 0.03318, 0.034, 0.03441",\
                 "0.03626, 0.0358, 0.03475, 0.03356, 0.03323, 0.03298, 0.03314, 0.03324, 0.03379, 0.03455",\
                 "0.04068, 0.04006, 0.03845, 0.03661, 0.03533, 0.03478, 0.03431, 0.03441, 0.03452, 0.03498",\
                 "0.04639, 0.04547, 0.04329, 0.04086, 0.03862, 0.03731, 0.03646, 0.03587, 0.03568, 0.03562",\
                 "0.05347, 0.05234, 0.04948, 0.04634, 0.04325, 0.04086, 0.03971, 0.03864, 0.03784, 0.038");
        }
      }

      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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.006194, 0.006238, 0.006294, 0.006322, 0.006349, 0.006361, 0.006378, 0.006384, 0.00638, 0.00638",\
                 "0.005855, 0.005956, 0.006138, 0.006233, 0.006288, 0.006323, 0.006337, 0.006356, 0.006361, 0.00636",\
                 "0.005101, 0.005273, 0.005633, 0.00592, 0.006092, 0.006186, 0.006245, 0.006279, 0.006302, 0.006321",\
                 "0.004608, 0.004745, 0.005126, 0.005511, 0.005795, 0.005978, 0.006095, 0.00617, 0.006219, 0.006251",\
                 "0.004842, 0.004906, 0.005068, 0.005374, 0.005629, 0.005836, 0.005974, 0.006083, 0.006148, 0.006199",\
                 "0.006034, 0.005928, 0.005767, 0.005735, 0.005824, 0.005928, 0.006023, 0.0061, 0.006159, 0.006198",\
                 "0.008259, 0.007995, 0.007412, 0.006899, 0.006613, 0.006473, 0.006409, 0.006381, 0.006368, 0.006364",\
                 "0.01167, 0.01121, 0.0101, 0.008999, 0.008186, 0.007649, 0.007308, 0.007059, 0.006893, 0.006777",\
                 "0.01629, 0.01563, 0.01396, 0.01217, 0.0107, 0.009576, 0.008846, 0.008279, 0.007889, 0.007579",\
                 "0.02215, 0.02128, 0.01904, 0.01648, 0.01426, 0.0125, 0.01117, 0.0102, 0.00945, 0.008877");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.0424, 0.04245, 0.04254, 0.04264, 0.0427, 0.04292, 0.04318, 0.0434, 0.04361, 0.04411",\
                 "0.04179, 0.04195, 0.04221, 0.0424, 0.0426, 0.0428, 0.04314, 0.0433, 0.04363, 0.04409",\
                 "0.04066, 0.04086, 0.04134, 0.04183, 0.04215, 0.04261, 0.043, 0.04318, 0.04351, 0.04398",\
                 "0.04042, 0.04052, 0.0408, 0.04125, 0.04173, 0.04227, 0.04261, 0.04297, 0.04355, 0.04417",\
                 "0.04126, 0.04117, 0.04116, 0.04122, 0.04149, 0.04205, 0.04235, 0.04285, 0.04308, 0.04364",\
                 "0.04327, 0.04301, 0.04244, 0.04218, 0.04199, 0.04225, 0.04253, 0.04283, 0.04316, 0.04412",\
                 "0.04634, 0.04599, 0.04499, 0.04395, 0.04345, 0.0432, 0.04308, 0.04334, 0.04361, 0.04393",\
                 "0.05062, 0.05011, 0.04865, 0.04706, 0.04579, 0.0451, 0.04455, 0.04435, 0.04458, 0.04476",\
                 "0.05617, 0.05549, 0.05365, 0.0513, 0.04912, 0.04771, 0.04687, 0.04606, 0.04583, 0.04592",\
                 "0.06296, 0.06219, 0.05991, 0.05696, 0.05403, 0.05162, 0.05017, 0.04891, 0.04824, 0.04832");
        }
      }

      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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.006201, 0.006233, 0.006297, 0.00634, 0.006341, 0.00637, 0.006374, 0.006371, 0.006381, 0.006382",\
                 "0.005852, 0.005945, 0.006121, 0.006234, 0.006302, 0.006329, 0.006347, 0.00636, 0.006368, 0.006371",\
                 "0.005076, 0.005258, 0.005618, 0.005913, 0.006092, 0.006193, 0.006251, 0.006283, 0.006309, 0.006325",\
                 "0.004479, 0.004641, 0.005057, 0.005475, 0.005783, 0.005979, 0.006092, 0.006167, 0.00622, 0.006249",\
                 "0.004482, 0.004557, 0.00483, 0.005195, 0.005522, 0.005761, 0.005932, 0.006046, 0.006126, 0.006182",\
                 "0.005316, 0.005291, 0.005281, 0.005406, 0.005606, 0.00578, 0.005922, 0.006028, 0.006106, 0.006161",\
                 "0.007258, 0.00708, 0.006688, 0.006389, 0.006263, 0.00623, 0.006241, 0.006258, 0.006279, 0.006295",\
                 "0.01044, 0.01008, 0.009194, 0.008346, 0.007737, 0.007337, 0.007089, 0.006937, 0.006801, 0.006712",\
                 "0.01499, 0.0144, 0.01296, 0.01144, 0.01019, 0.009293, 0.008625, 0.008144, 0.007807, 0.007536",\
                 "0.02091, 0.02012, 0.01809, 0.01579, 0.01379, 0.01221, 0.01098, 0.0101, 0.009413, 0.008889");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.05196, 0.05196, 0.05201, 0.05205, 0.05212, 0.05234, 0.05248, 0.05294, 0.05313, 0.05354",\
                 "0.05128, 0.05132, 0.05142, 0.05152, 0.05161, 0.05187, 0.05209, 0.05235, 0.05268, 0.05312",\
                 "0.0505, 0.05055, 0.05077, 0.05098, 0.05117, 0.05147, 0.05173, 0.05205, 0.0523, 0.05284",\
                 "0.05036, 0.05041, 0.05048, 0.0507, 0.05092, 0.05127, 0.05159, 0.05187, 0.0522, 0.05284",\
                 "0.05114, 0.05108, 0.05099, 0.05087, 0.05097, 0.05126, 0.05157, 0.05197, 0.05218, 0.05254",\
                 "0.05312, 0.05292, 0.05239, 0.05198, 0.05165, 0.05157, 0.05179, 0.05195, 0.0522, 0.05238",\
                 "0.05618, 0.05584, 0.0549, 0.05388, 0.05325, 0.05272, 0.05252, 0.05262, 0.05283, 0.0531",\
                 "0.06046, 0.06003, 0.05871, 0.057, 0.05563, 0.05478, 0.05413, 0.05375, 0.0537, 0.05388",\
                 "0.06605, 0.06548, 0.06369, 0.06146, 0.05913, 0.05769, 0.05656, 0.05579, 0.05531, 0.05538",\
                 "0.07305, 0.07233, 0.07017, 0.06719, 0.06426, 0.06169, 0.06007, 0.05885, 0.05766, 0.05799");
        }
      }

      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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1093, 0.1333, 0.2165, 0.3749, 0.6209, 0.9668, 1.42, 1.994, 2.691, 3.527",\
                 "0.1191, 0.1433, 0.2272, 0.3859, 0.6323, 0.9779, 1.433, 2.005, 2.704, 3.537",\
                 "0.1562, 0.1821, 0.2662, 0.4254, 0.6725, 1.018, 1.474, 2.046, 2.745, 3.577",\
                 "0.1922, 0.2291, 0.3373, 0.5038, 0.7508, 1.096, 1.551, 2.124, 2.823, 3.655",\
                 "0.2123, 0.2598, 0.4001, 0.6105, 0.8744, 1.22, 1.674, 2.247, 2.944, 3.779",\
                 "0.2165, 0.2736, 0.4446, 0.7029, 1.023, 1.395, 1.849, 2.42, 3.119, 3.952",\
                 "0.2038, 0.2707, 0.4699, 0.7751, 1.154, 1.591, 2.08, 2.652, 3.349, 4.181",\
                 "0.1722, 0.2484, 0.4777, 0.8258, 1.263, 1.768, 2.329, 2.942, 3.641, 4.471",\
                 "0.1208, 0.2075, 0.4649, 0.8556, 1.348, 1.921, 2.557, 3.248, 3.995, 4.829",\
                 "0.0469, 0.1452, 0.4314, 0.8659, 1.412, 2.05, 2.761, 3.532, 4.363, 5.25");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1215, 0.149, 0.2431, 0.4196, 0.6943, 1.079, 1.587, 2.224, 3.002, 3.934",\
                 "0.1365, 0.1646, 0.2601, 0.4389, 0.7144, 1.1, 1.605, 2.245, 3.025, 3.951",\
                 "0.1956, 0.2234, 0.3195, 0.4995, 0.7769, 1.163, 1.67, 2.309, 3.087, 4.018",\
                 "0.2909, 0.3294, 0.4386, 0.6187, 0.8968, 1.284, 1.793, 2.432, 3.212, 4.141",\
                 "0.3983, 0.4494, 0.5967, 0.8077, 1.086, 1.472, 1.982, 2.62, 3.399, 4.332",\
                 "0.5205, 0.5836, 0.7675, 1.036, 1.354, 1.742, 2.25, 2.888, 3.668, 4.594",\
                 "0.6625, 0.7359, 0.9535, 1.277, 1.666, 2.097, 2.607, 3.244, 4.024, 4.95",\
                 "0.824, 0.9087, 1.158, 1.534, 1.993, 2.504, 3.055, 3.695, 4.472, 5.401",\
                 "1.007, 1.102, 1.383, 1.809, 2.336, 2.928, 3.566, 4.244, 5.023, 5.951",\
                 "1.211, 1.318, 1.633, 2.105, 2.696, 3.368, 4.096, 4.866, 5.679, 6.607");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.147, 0.1876, 0.3293, 0.5993, 1.02, 1.609, 2.382, 3.356, 4.542, 5.972",\
                 "0.1465, 0.1874, 0.3294, 0.599, 1.019, 1.607, 2.382, 3.354, 4.55, 5.969",\
                 "0.1632, 0.1962, 0.3292, 0.5992, 1.019, 1.609, 2.384, 3.359, 4.549, 5.964",\
                 "0.2265, 0.2654, 0.3839, 0.6085, 1.018, 1.607, 2.379, 3.355, 4.55, 5.964",\
                 "0.3011, 0.3497, 0.4927, 0.7172, 1.053, 1.608, 2.382, 3.356, 4.546, 5.967",\
                 "0.38, 0.4392, 0.6136, 0.8756, 1.215, 1.679, 2.388, 3.356, 4.546, 5.966",\
                 "0.4668, 0.5346, 0.7424, 1.05, 1.435, 1.898, 2.507, 3.38, 4.546, 5.964",\
                 "0.5626, 0.6402, 0.8714, 1.232, 1.67, 2.183, 2.781, 3.55, 4.597, 5.969",\
                 "0.6684, 0.7542, 1.012, 1.413, 1.915, 2.494, 3.14, 3.884, 4.818, 6.055",\
                 "0.7858, 0.8794, 1.164, 1.602, 2.163, 2.809, 3.526, 4.32, 5.219, 6.331");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1542, 0.1994, 0.3591, 0.6627, 1.138, 1.805, 2.683, 3.788, 5.124, 6.75",\
                 "0.1542, 0.1997, 0.3586, 0.6633, 1.139, 1.802, 2.681, 3.785, 5.14, 6.742",\
                 "0.1617, 0.2014, 0.3585, 0.6627, 1.137, 1.804, 2.682, 3.782, 5.132, 6.738",\
                 "0.2371, 0.2718, 0.3841, 0.6643, 1.136, 1.805, 2.679, 3.785, 5.139, 6.746",\
                 "0.3255, 0.3733, 0.5072, 0.7206, 1.141, 1.804, 2.68, 3.783, 5.133, 6.746",\
                 "0.4132, 0.4754, 0.6518, 0.8972, 1.229, 1.812, 2.675, 3.785, 5.135, 6.74",\
                 "0.5058, 0.5786, 0.7964, 1.102, 1.457, 1.928, 2.698, 3.78, 5.13, 6.741",\
                 "0.6082, 0.6904, 0.9412, 1.313, 1.738, 2.204, 2.844, 3.813, 5.13, 6.736",\
                 "0.7192, 0.813, 1.095, 1.52, 2.024, 2.57, 3.163, 3.992, 5.174, 6.729",\
                 "0.8384, 0.9426, 1.252, 1.731, 2.313, 2.943, 3.607, 4.35, 5.379, 6.791");
        }
      }

      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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1375, 0.1612, 0.2442, 0.4025, 0.6486, 0.9942, 1.449, 2.021, 2.72, 3.551",\
                 "0.148, 0.1721, 0.2561, 0.4144, 0.6607, 1.007, 1.46, 2.033, 2.733, 3.567",\
                 "0.1784, 0.2041, 0.2889, 0.4483, 0.695, 1.041, 1.496, 2.069, 2.767, 3.601",\
                 "0.2102, 0.243, 0.3439, 0.5108, 0.7585, 1.105, 1.56, 2.132, 2.832, 3.665",\
                 "0.2293, 0.2719, 0.3979, 0.5936, 0.8564, 1.204, 1.659, 2.232, 2.933, 3.765",\
                 "0.2309, 0.2835, 0.4385, 0.6726, 0.9719, 1.342, 1.799, 2.372, 3.072, 3.907",\
                 "0.2142, 0.2766, 0.4604, 0.7377, 1.083, 1.494, 1.98, 2.557, 3.257, 4.09",\
                 "0.1786, 0.2506, 0.4634, 0.7828, 1.181, 1.643, 2.174, 2.784, 3.49, 4.324",\
                 "0.1222, 0.2042, 0.4461, 0.8081, 1.259, 1.779, 2.364, 3.022, 3.765, 4.608",\
                 "0.0441, 0.136, 0.4068, 0.8113, 1.314, 1.895, 2.542, 3.258, 4.052, 4.936");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.163, 0.1902, 0.284, 0.4612, 0.736, 1.121, 1.627, 2.264, 3.042, 3.97",\
                 "0.1784, 0.2061, 0.3007, 0.4786, 0.7538, 1.139, 1.645, 2.283, 3.061, 3.988",\
                 "0.2376, 0.2654, 0.361, 0.5401, 0.8163, 1.202, 1.709, 2.346, 3.125, 4.052",\
                 "0.3495, 0.3822, 0.4818, 0.6607, 0.9372, 1.324, 1.831, 2.468, 3.247, 4.175",\
                 "0.4791, 0.5227, 0.6542, 0.8521, 1.128, 1.515, 2.021, 2.659, 3.437, 4.365",\
                 "0.6231, 0.678, 0.8425, 1.093, 1.399, 1.785, 2.292, 2.929, 3.706, 4.635",\
                 "0.7857, 0.8496, 1.046, 1.349, 1.721, 2.142, 2.649, 3.286, 4.063, 4.991",\
                 "0.9694, 1.043, 1.268, 1.62, 2.06, 2.558, 3.1, 3.738, 4.515, 5.441",\
                 "1.177, 1.26, 1.512, 1.91, 2.415, 2.992, 3.618, 4.289, 5.067, 5.991",\
                 "1.408, 1.5, 1.78, 2.222, 2.789, 3.443, 4.157, 4.917, 5.724, 6.652");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1473, 0.1878, 0.3291, 0.5994, 1.02, 1.608, 2.382, 3.358, 4.548, 5.962",\
                 "0.147, 0.1875, 0.3295, 0.5988, 1.018, 1.609, 2.38, 3.358, 4.545, 5.968",\
                 "0.1603, 0.1955, 0.3295, 0.5999, 1.018, 1.608, 2.383, 3.357, 4.546, 5.969",\
                 "0.2097, 0.2453, 0.3688, 0.6083, 1.019, 1.606, 2.381, 3.359, 4.551, 5.968",\
                 "0.2795, 0.3203, 0.4491, 0.6808, 1.046, 1.609, 2.38, 3.355, 4.547, 5.968",\
                 "0.3594, 0.4072, 0.5528, 0.7952, 1.152, 1.661, 2.389, 3.355, 4.546, 5.967",\
                 "0.4498, 0.5024, 0.6694, 0.937, 1.306, 1.804, 2.469, 3.377, 4.547, 5.965",\
                 "0.5466, 0.6066, 0.7934, 1.095, 1.491, 1.999, 2.651, 3.49, 4.591, 5.97",\
                 "0.6516, 0.7182, 0.9284, 1.262, 1.697, 2.232, 2.892, 3.71, 4.735, 6.041",\
                 "0.7654, 0.8396, 1.07, 1.437, 1.916, 2.49, 3.173, 4, 4.996, 6.222");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1989, 0.2445, 0.4036, 0.7084, 1.181, 1.845, 2.719, 3.818, 5.16, 6.762",\
                 "0.1987, 0.2443, 0.404, 0.7076, 1.181, 1.845, 2.718, 3.817, 5.158, 6.766",\
                 "0.1993, 0.2441, 0.4036, 0.7078, 1.182, 1.845, 2.718, 3.818, 5.162, 6.76",\
                 "0.258, 0.2904, 0.4164, 0.7078, 1.182, 1.845, 2.719, 3.821, 5.16, 6.759",\
                 "0.3526, 0.3982, 0.5264, 0.75, 1.184, 1.845, 2.719, 3.819, 5.16, 6.765",\
                 "0.4498, 0.508, 0.6742, 0.9144, 1.258, 1.853, 2.722, 3.82, 5.163, 6.761",\
                 "0.5456, 0.6182, 0.8264, 1.123, 1.475, 1.962, 2.736, 3.82, 5.164, 6.766",\
                 "0.6454, 0.728, 0.9756, 1.339, 1.756, 2.225, 2.874, 3.851, 5.165, 6.764",\
                 "0.7516, 0.8452, 1.126, 1.549, 2.046, 2.586, 3.186, 4.019, 5.209, 6.77",\
                 "0.865, 0.9688, 1.279, 1.759, 2.337, 2.96, 3.624, 4.374, 5.408, 6.83");
        }
      }

      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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.15, 0.1737, 0.2568, 0.4149, 0.6612, 1.007, 1.462, 2.033, 2.731, 3.567",\
                 "0.1615, 0.1857, 0.2692, 0.4279, 0.6747, 1.019, 1.474, 2.046, 2.747, 3.578",\
                 "0.1887, 0.2137, 0.2983, 0.4576, 0.7047, 1.051, 1.505, 2.077, 2.777, 3.611",\
                 "0.2129, 0.2425, 0.3376, 0.5024, 0.7499, 1.096, 1.551, 2.124, 2.822, 3.655",\
                 "0.2251, 0.2612, 0.3721, 0.5566, 0.8169, 1.164, 1.619, 2.192, 2.892, 3.726",\
                 "0.2187, 0.2631, 0.3958, 0.605, 0.8902, 1.257, 1.714, 2.287, 2.987, 3.82",\
                 "0.1907, 0.2444, 0.4029, 0.6433, 0.9578, 1.353, 1.835, 2.413, 3.112, 3.946",\
                 "0.1395, 0.2029, 0.3885, 0.6652, 1.016, 1.443, 1.957, 2.563, 3.271, 4.104",\
                 "0.0646, 0.1381, 0.3516, 0.6671, 1.059, 1.524, 2.072, 2.714, 3.453, 4.299",\
                 "-0.0355, 0.0482, 0.2892, 0.6458, 1.083, 1.592, 2.179, 2.857, 3.633, 4.514");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1925, 0.2208, 0.3173, 0.4973, 0.7741, 1.16, 1.668, 2.306, 3.084, 4.012",\
                 "0.2076, 0.236, 0.3328, 0.513, 0.7899, 1.176, 1.684, 2.322, 3.1, 4.028",\
                 "0.2682, 0.2968, 0.3942, 0.5749, 0.8522, 1.239, 1.746, 2.384, 3.163, 4.091",\
                 "0.3886, 0.4188, 0.5163, 0.6968, 0.9742, 1.361, 1.869, 2.507, 3.286, 4.213",\
                 "0.5367, 0.577, 0.6994, 0.8899, 1.167, 1.553, 2.06, 2.699, 3.477, 4.405",\
                 "0.6996, 0.7492, 0.9035, 1.141, 1.439, 1.825, 2.331, 2.969, 3.747, 4.674",\
                 "0.8807, 0.9393, 1.123, 1.411, 1.771, 2.183, 2.69, 3.327, 4.104, 5.031",\
                 "1.083, 1.15, 1.361, 1.696, 2.121, 2.607, 3.143, 3.78, 4.555, 5.482",\
                 "1.31, 1.386, 1.621, 2, 2.488, 3.051, 3.667, 4.332, 5.11, 6.033",\
                 "1.566, 1.649, 1.908, 2.328, 2.875, 3.513, 4.215, 4.965, 5.769, 6.693");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.1473, 0.1875, 0.3293, 0.5993, 1.019, 1.608, 2.381, 3.356, 4.542, 5.967",\
                 "0.1471, 0.1874, 0.3296, 0.5998, 1.02, 1.606, 2.379, 3.353, 4.548, 5.96",\
                 "0.1539, 0.191, 0.3292, 0.6, 1.019, 1.608, 2.383, 3.355, 4.549, 5.968",\
                 "0.1875, 0.2258, 0.3568, 0.6061, 1.019, 1.608, 2.381, 3.356, 4.551, 5.961",\
                 "0.24, 0.2788, 0.4125, 0.6608, 1.042, 1.61, 2.379, 3.355, 4.547, 5.965",\
                 "0.311, 0.3522, 0.4886, 0.7404, 1.125, 1.657, 2.391, 3.355, 4.546, 5.968",\
                 "0.3972, 0.4428, 0.5856, 0.841, 1.231, 1.769, 2.466, 3.384, 4.549, 5.966",\
                 "0.4962, 0.5448, 0.7008, 0.9654, 1.36, 1.905, 2.61, 3.487, 4.6, 5.973",\
                 "0.6062, 0.6584, 0.8292, 1.111, 1.513, 2.063, 2.777, 3.663, 4.732, 6.054",\
                 "0.726, 0.783, 0.9674, 1.272, 1.692, 2.245, 2.966, 3.864, 4.944, 6.215");
        }

        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.003583, 0.01265, 0.02996, 0.05694, 0.09478, 0.1446, 0.2073, 0.2839, 0.3752");
          values("0.2394, 0.286, 0.4476, 0.7517, 1.225, 1.889, 2.764, 3.866, 5.21, 6.807",\
                 "0.2392, 0.2858, 0.447, 0.7517, 1.226, 1.89, 2.763, 3.864, 5.209, 6.805",\
                 "0.239, 0.2859, 0.4475, 0.7516, 1.225, 1.89, 2.764, 3.864, 5.206, 6.806",\
                 "0.276, 0.3124, 0.4517, 0.7524, 1.226, 1.89, 2.764, 3.866, 5.21, 6.807",\
                 "0.377, 0.4198, 0.544, 0.7814, 1.227, 1.89, 2.763, 3.863, 5.207, 6.811",\
                 "0.4814, 0.5362, 0.6972, 0.9314, 1.288, 1.896, 2.763, 3.864, 5.207, 6.811",\
                 "0.584, 0.6528, 0.8532, 1.144, 1.491, 1.991, 2.778, 3.864, 5.21, 6.811",\
                 "0.6868, 0.7682, 1.008, 1.361, 1.774, 2.243, 2.906, 3.892, 5.208, 6.812",\
                 "0.792, 0.8844, 1.159, 1.576, 2.066, 2.603, 3.206, 4.05, 5.252, 6.813",\
                 "0.9028, 1.006, 1.313, 1.787, 2.359, 2.978, 3.639, 4.397, 5.441, 6.869");
        }
      }
    }
  }

