/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
  cell(gf180mcu_fd_sc_mcu9t5v0__and3_1) {
    area : 28.224000 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.004179, 0.004168, 0.004154, 0.00415, 0.004149, 0.004152, 0.004152, \
                  0.00415, 0.004149, 0.004152");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.002148, -0.002155, -0.00216, -0.002159, -0.002163, -0.002175, \
                  -0.002181, -0.002188, -0.002198, -0.002215");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.004177, 0.004168, 0.004158, 0.00415, 0.004149, 0.004152, 0.004153, \
                  0.004149, 0.004151, 0.004152");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.0021, -0.002107, -0.002115, -0.002112, -0.002117, -0.002132, \
                  -0.002134, -0.002144, -0.002155, -0.002167");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.004178, 0.004173, 0.004159, 0.00415, 0.004149, 0.004153, 0.004153, \
                  0.00415, 0.004152, 0.004151");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.002875, 0.00287, 0.002857, 0.002848, 0.002839, 0.002819, 0.002802, \
                  0.002785, 0.002763, 0.002727");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.005144, 0.005148, 0.005185, 0.005231, 0.005281, 0.005322, 0.005349, \
                  0.005368, 0.005377, 0.005371");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.003538, -0.003533, -0.003523, -0.00352, -0.003515, -0.003523, \
                  -0.003523, -0.003524, -0.00352, -0.003523");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.00451, 0.004084, 0.00373, 0.003618, 0.003569, 0.003552, 0.003534, \
                  0.003524, 0.003512, 0.003506");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.003526, -0.003529, -0.003524, -0.00352, -0.003516, -0.003525, \
                  -0.003524, -0.003524, -0.003523, -0.003526");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.004008, 0.004004, 0.003996, 0.003988, 0.003979, 0.003978, 0.003974, \
                  0.003971, 0.003961, 0.003954");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.002473, -0.002476, -0.002473, -0.002473, -0.002479, -0.002496, \
                  -0.002506, -0.002521, -0.002544, -0.002572");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.003664, 0.00356, 0.003537, 0.003528, 0.003526, 0.003533, 0.003533, \
                  0.003533, 0.003531, 0.00353");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.00353, -0.003532, -0.003522, -0.003517, -0.003517, -0.003523, \
                  -0.003521, -0.003522, -0.003521, -0.003527");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.004108, 0.003842, 0.003605, 0.003552, 0.003527, 0.003528, 0.003521, \
                  0.003515, 0.003512, 0.003512");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.003523, -0.003528, -0.003528, -0.003522, -0.003521, -0.003526, \
                  -0.003526, -0.003525, -0.003523, -0.003523");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.004089, 0.003732, 0.003562, 0.003529, 0.00352, 0.003524, 0.003522, \
                  0.003521, 0.00352, 0.003521");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0.003531, -0.003528, -0.003526, -0.003522, -0.003518, -0.003526, \
                  -0.003523, -0.003523, -0.003521, -0.003521");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 0.3281 ;
      max_transition : 8.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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.04234, 0.04205, 0.04166, 0.04148, 0.04143, 0.04139, 0.04136, 0.04136, 0.04133, 0.04134",\
                 "0.04235, 0.04203, 0.04166, 0.04151, 0.04144, 0.0414, 0.04138, 0.04138, 0.04135, 0.04135",\
                 "0.0421, 0.04179, 0.04139, 0.04127, 0.04119, 0.04116, 0.04116, 0.04114, 0.04113, 0.04113",\
                 "0.0424, 0.04205, 0.04157, 0.04137, 0.04132, 0.0413, 0.04129, 0.04127, 0.04127, 0.04126",\
                 "0.0446, 0.04405, 0.04324, 0.04273, 0.04249, 0.04241, 0.04236, 0.04231, 0.0423, 0.0423",\
                 "0.04829, 0.04758, 0.04629, 0.04543, 0.04495, 0.04467, 0.04454, 0.04447, 0.04439, 0.04438",\
                 "0.05337, 0.05248, 0.05075, 0.04949, 0.04866, 0.04823, 0.04799, 0.04783, 0.04768, 0.04764",\
                 "0.05996, 0.05889, 0.05668, 0.05497, 0.05387, 0.05319, 0.05277, 0.05249, 0.05232, 0.05219",\
                 "0.06812, 0.06689, 0.06428, 0.06201, 0.06053, 0.05951, 0.05894, 0.05855, 0.0583, 0.05809",\
                 "0.07796, 0.07657, 0.07345, 0.07068, 0.06877, 0.0675, 0.06667, 0.06609, 0.06568, 0.06542");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.02632, 0.02598, 0.02548, 0.02533, 0.0255, 0.02572, 0.02602, 0.02625, 0.02663, 0.02828",\
                 "0.02622, 0.02593, 0.02544, 0.02525, 0.02542, 0.02566, 0.02594, 0.02617, 0.02661, 0.02806",\
                 "0.02612, 0.02584, 0.02531, 0.02515, 0.02528, 0.02552, 0.02582, 0.02619, 0.02659, 0.02815",\
                 "0.02656, 0.02622, 0.02565, 0.02532, 0.02542, 0.02566, 0.0259, 0.02623, 0.02684, 0.02826",\
                 "0.02829, 0.02785, 0.02711, 0.02657, 0.02649, 0.02663, 0.02681, 0.02708, 0.02771, 0.02938",\
                 "0.03106, 0.03056, 0.02951, 0.02888, 0.02861, 0.02847, 0.02861, 0.02882, 0.0292, 0.03155",\
                 "0.03512, 0.03449, 0.03327, 0.03217, 0.0317, 0.03164, 0.03164, 0.03165, 0.03193, 0.03499",\
                 "0.04062, 0.03984, 0.03819, 0.03696, 0.03597, 0.03578, 0.03584, 0.03584, 0.03624, 0.03957",\
                 "0.04748, 0.04651, 0.04466, 0.04309, 0.04166, 0.04105, 0.04081, 0.04139, 0.04163, 0.04699",\
                 "0.05585, 0.05475, 0.05258, 0.05052, 0.0491, 0.04798, 0.04738, 0.0475, 0.04877, 0.05646");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.04798, 0.04759, 0.04699, 0.04673, 0.04657, 0.04648, 0.04645, 0.04642, 0.0464, 0.04638",\
                 "0.04791, 0.04749, 0.04693, 0.04664, 0.04647, 0.04638, 0.04634, 0.04632, 0.0463, 0.04629",\
                 "0.04764, 0.04724, 0.04665, 0.04639, 0.04624, 0.04617, 0.04611, 0.04608, 0.04607, 0.04606",\
                 "0.04788, 0.04745, 0.0468, 0.04649, 0.04635, 0.04628, 0.04624, 0.04623, 0.04622, 0.04621",\
                 "0.04996, 0.0494, 0.04844, 0.04784, 0.04757, 0.04743, 0.04736, 0.04731, 0.04728, 0.04726",\
                 "0.05381, 0.05307, 0.05169, 0.05068, 0.05009, 0.04977, 0.0496, 0.04949, 0.04943, 0.04938",\
                 "0.05905, 0.05813, 0.05632, 0.05487, 0.054, 0.05347, 0.05315, 0.05297, 0.05283, 0.05275",\
                 "0.06577, 0.06464, 0.06241, 0.06052, 0.05928, 0.05857, 0.05805, 0.05777, 0.05756, 0.05743",\
                 "0.0741, 0.07285, 0.0701, 0.06778, 0.06615, 0.0651, 0.06444, 0.06401, 0.06372, 0.06352",\
                 "0.08401, 0.08264, 0.07947, 0.07663, 0.07459, 0.0732, 0.07229, 0.07169, 0.07128, 0.07099");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.02629, 0.02595, 0.02552, 0.02532, 0.02548, 0.02574, 0.02596, 0.02621, 0.02657, 0.02804",\
                 "0.02622, 0.02593, 0.0254, 0.02529, 0.02542, 0.02566, 0.02594, 0.02617, 0.02649, 0.02815",\
                 "0.02604, 0.02573, 0.02522, 0.02509, 0.02522, 0.02548, 0.02572, 0.02613, 0.02641, 0.02818",\
                 "0.02628, 0.02594, 0.02539, 0.02511, 0.0252, 0.02544, 0.02572, 0.02593, 0.02645, 0.02801",\
                 "0.02759, 0.02717, 0.02649, 0.02603, 0.02599, 0.02614, 0.02638, 0.02678, 0.02724, 0.02888",\
                 "0.02993, 0.02944, 0.02844, 0.02791, 0.02774, 0.02766, 0.0278, 0.02819, 0.02849, 0.03088",\
                 "0.03368, 0.03306, 0.03191, 0.03091, 0.03053, 0.03059, 0.03049, 0.03062, 0.03092, 0.03365",\
                 "0.03885, 0.03812, 0.03665, 0.03536, 0.03455, 0.03435, 0.03459, 0.03479, 0.03498, 0.03846",\
                 "0.04551, 0.04463, 0.04294, 0.04135, 0.04025, 0.03952, 0.03944, 0.03992, 0.04034, 0.04532",\
                 "0.05368, 0.05262, 0.05055, 0.0488, 0.04736, 0.04625, 0.04578, 0.04603, 0.0474, 0.05472");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.05352, 0.05303, 0.05225, 0.05185, 0.05165, 0.0515, 0.05141, 0.05134, 0.0513, 0.05129",\
                 "0.05324, 0.05275, 0.05197, 0.05158, 0.05135, 0.05122, 0.05113, 0.05107, 0.05104, 0.05101",\
                 "0.05301, 0.05252, 0.05175, 0.05134, 0.05113, 0.05099, 0.05091, 0.05086, 0.05082, 0.0508",\
                 "0.05327, 0.05278, 0.05197, 0.05146, 0.05126, 0.05117, 0.0511, 0.05105, 0.05103, 0.05102",\
                 "0.05523, 0.05463, 0.05355, 0.05287, 0.05249, 0.05232, 0.05221, 0.05216, 0.05212, 0.0521",\
                 "0.05923, 0.05845, 0.05697, 0.05584, 0.05518, 0.05478, 0.05459, 0.05446, 0.05437, 0.05431",\
                 "0.06466, 0.06371, 0.06175, 0.06022, 0.05923, 0.05864, 0.05827, 0.05808, 0.05792, 0.05782",\
                 "0.0716, 0.07049, 0.06813, 0.06613, 0.06481, 0.06397, 0.06345, 0.06311, 0.06289, 0.06273",\
                 "0.08018, 0.07895, 0.07615, 0.07371, 0.07198, 0.07089, 0.07012, 0.06967, 0.06937, 0.06912",\
                 "0.09049, 0.08911, 0.08594, 0.08298, 0.08088, 0.07941, 0.07845, 0.07782, 0.07738, 0.07707");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.0263, 0.02598, 0.02547, 0.0253, 0.02548, 0.02576, 0.02598, 0.02619, 0.02655, 0.0281",\
                 "0.02622, 0.02589, 0.02539, 0.02528, 0.02542, 0.02564, 0.02586, 0.02623, 0.02651, 0.02805",\
                 "0.02604, 0.02575, 0.02521, 0.02508, 0.02522, 0.02546, 0.02574, 0.02597, 0.02643, 0.02804",\
                 "0.02609, 0.02578, 0.02524, 0.02498, 0.02508, 0.02531, 0.02558, 0.02583, 0.02633, 0.02789",\
                 "0.02708, 0.02667, 0.02603, 0.02567, 0.0257, 0.02586, 0.0261, 0.0265, 0.0268, 0.02864",\
                 "0.02912, 0.02863, 0.02776, 0.02725, 0.0272, 0.02725, 0.02747, 0.02767, 0.02807, 0.03041",\
                 "0.03262, 0.032, 0.03089, 0.03005, 0.02974, 0.03004, 0.0301, 0.03017, 0.0305, 0.03344",\
                 "0.03769, 0.03696, 0.03565, 0.03451, 0.03387, 0.03372, 0.03414, 0.03428, 0.0345, 0.03794",\
                 "0.04439, 0.04354, 0.04196, 0.04053, 0.03948, 0.03907, 0.03909, 0.03954, 0.04008, 0.04481",\
                 "0.05266, 0.0517, 0.04984, 0.04815, 0.04676, 0.04598, 0.0456, 0.04582, 0.04707, 0.05409");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.4933, 0.5279, 0.6256, 0.768, 0.9508, 1.181, 1.469, 1.826, 2.26, 2.777",\
                 "0.5128, 0.5476, 0.6453, 0.7877, 0.9706, 1.201, 1.489, 1.846, 2.28, 2.797",\
                 "0.5777, 0.6125, 0.7101, 0.8528, 1.035, 1.265, 1.554, 1.911, 2.345, 2.862",\
                 "0.7099, 0.7448, 0.8418, 0.9843, 1.167, 1.397, 1.686, 2.043, 2.477, 2.993",\
                 "0.9022, 0.9386, 1.039, 1.185, 1.369, 1.6, 1.888, 2.245, 2.679, 3.195",\
                 "1.116, 1.155, 1.264, 1.418, 1.61, 1.845, 2.135, 2.492, 2.925, 3.442",\
                 "1.352, 1.395, 1.512, 1.676, 1.876, 2.117, 2.411, 2.769, 3.203, 3.718",\
                 "1.616, 1.663, 1.789, 1.963, 2.172, 2.419, 2.717, 3.078, 3.512, 4.029",\
                 "1.908, 1.957, 2.092, 2.278, 2.499, 2.755, 3.058, 3.421, 3.856, 4.374",\
                 "2.228, 2.282, 2.425, 2.623, 2.855, 3.122, 3.434, 3.802, 4.24, 4.758");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.5859, 0.6348, 0.7814, 1.02, 1.362, 1.831, 2.444, 3.216, 4.156, 5.281",\
                 "0.5966, 0.6453, 0.7919, 1.031, 1.373, 1.842, 2.454, 3.226, 4.166, 5.288",\
                 "0.6357, 0.6845, 0.8312, 1.07, 1.412, 1.88, 2.493, 3.266, 4.208, 5.331",\
                 "0.7151, 0.7641, 0.9099, 1.148, 1.49, 1.958, 2.571, 3.343, 4.286, 5.406",\
                 "0.8075, 0.8571, 1.005, 1.245, 1.586, 2.054, 2.667, 3.438, 4.381, 5.501",\
                 "0.8845, 0.935, 1.085, 1.326, 1.67, 2.139, 2.751, 3.523, 4.462, 5.583",\
                 "0.9456, 0.9971, 1.15, 1.393, 1.737, 2.205, 2.82, 3.59, 4.53, 5.655",\
                 "0.9881, 1.042, 1.197, 1.444, 1.788, 2.257, 2.87, 3.641, 4.583, 5.704",\
                 "1.007, 1.062, 1.224, 1.477, 1.824, 2.292, 2.903, 3.675, 4.616, 5.738",\
                 "0.9992, 1.058, 1.226, 1.485, 1.839, 2.309, 2.922, 3.691, 4.633, 5.755");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.1755, 0.2096, 0.3103, 0.4731, 0.7112, 1.053, 1.523, 2.126, 2.878, 3.772",\
                 "0.1762, 0.2094, 0.3103, 0.4726, 0.7115, 1.053, 1.521, 2.128, 2.877, 3.776",\
                 "0.1756, 0.2098, 0.3108, 0.4727, 0.712, 1.054, 1.52, 2.127, 2.879, 3.777",\
                 "0.1768, 0.211, 0.3122, 0.4724, 0.711, 1.054, 1.523, 2.128, 2.878, 3.779",\
                 "0.1996, 0.2316, 0.3276, 0.4844, 0.7194, 1.057, 1.524, 2.128, 2.877, 3.779",\
                 "0.232, 0.2658, 0.3634, 0.519, 0.746, 1.073, 1.531, 2.129, 2.878, 3.777",\
                 "0.265, 0.3014, 0.4006, 0.5568, 0.7802, 1.101, 1.549, 2.141, 2.88, 3.779",\
                 "0.301, 0.3396, 0.443, 0.5996, 0.8194, 1.132, 1.571, 2.153, 2.889, 3.78",\
                 "0.3384, 0.38, 0.4886, 0.649, 0.8644, 1.171, 1.6, 2.175, 2.902, 3.788",\
                 "0.3778, 0.423, 0.5378, 0.7018, 0.919, 1.222, 1.642, 2.204, 2.924, 3.8");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.2336, 0.2938, 0.4858, 0.8373, 1.402, 2.221, 3.321, 4.695, 6.38, 8.392",\
                 "0.2327, 0.2949, 0.4868, 0.8368, 1.402, 2.221, 3.313, 4.693, 6.38, 8.387",\
                 "0.2327, 0.2944, 0.4851, 0.8372, 1.401, 2.221, 3.313, 4.697, 6.381, 8.405",\
                 "0.234, 0.2942, 0.4866, 0.8374, 1.402, 2.221, 3.32, 4.704, 6.392, 8.388",\
                 "0.2452, 0.3058, 0.4976, 0.8444, 1.404, 2.222, 3.32, 4.695, 6.39, 8.388",\
                 "0.2566, 0.3168, 0.51, 0.8586, 1.417, 2.231, 3.312, 4.703, 6.376, 8.391",\
                 "0.2736, 0.3344, 0.5262, 0.8696, 1.423, 2.237, 3.326, 4.695, 6.38, 8.404",\
                 "0.2964, 0.3564, 0.5456, 0.8848, 1.431, 2.242, 3.328, 4.706, 6.396, 8.391",\
                 "0.3216, 0.3814, 0.574, 0.9074, 1.448, 2.249, 3.332, 4.709, 6.39, 8.408",\
                 "0.35, 0.4118, 0.6046, 0.9382, 1.474, 2.265, 3.342, 4.709, 6.397, 8.401");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.5563, 0.593, 0.6937, 0.8391, 1.024, 1.256, 1.545, 1.903, 2.337, 2.854",\
                 "0.5741, 0.6107, 0.7115, 0.857, 1.042, 1.274, 1.563, 1.92, 2.355, 2.872",\
                 "0.639, 0.6755, 0.7764, 0.9219, 1.107, 1.339, 1.628, 1.985, 2.42, 2.937",\
                 "0.7725, 0.809, 0.9095, 1.055, 1.24, 1.472, 1.761, 2.119, 2.553, 3.07",\
                 "0.9766, 1.014, 1.116, 1.263, 1.449, 1.681, 1.97, 2.328, 2.762, 3.279",\
                 "1.21, 1.251, 1.362, 1.517, 1.709, 1.944, 2.234, 2.591, 3.026, 3.542",\
                 "1.469, 1.513, 1.633, 1.797, 1.997, 2.238, 2.532, 2.891, 3.325, 3.841",\
                 "1.759, 1.807, 1.935, 2.11, 2.318, 2.565, 2.863, 3.223, 3.658, 4.174",\
                 "2.084, 2.135, 2.271, 2.456, 2.675, 2.929, 3.23, 3.593, 4.029, 4.546",\
                 "2.442, 2.496, 2.642, 2.839, 3.068, 3.33, 3.639, 4.005, 4.443, 4.961");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.6318, 0.6806, 0.8275, 1.066, 1.409, 1.877, 2.49, 3.261, 4.203, 5.326",\
                 "0.6435, 0.6923, 0.8389, 1.078, 1.42, 1.888, 2.502, 3.273, 4.215, 5.336",\
                 "0.6733, 0.7223, 0.8688, 1.108, 1.45, 1.918, 2.531, 3.304, 4.244, 5.369",\
                 "0.728, 0.7767, 0.923, 1.161, 1.503, 1.971, 2.584, 3.356, 4.299, 5.42",\
                 "0.7929, 0.843, 0.9918, 1.232, 1.574, 2.042, 2.654, 3.427, 4.369, 5.492",\
                 "0.8475, 0.8987, 1.05, 1.293, 1.638, 2.107, 2.719, 3.491, 4.431, 5.552",\
                 "0.8869, 0.9393, 1.094, 1.341, 1.686, 2.155, 2.768, 3.539, 4.48, 5.601",\
                 "0.9043, 0.959, 1.118, 1.369, 1.716, 2.185, 2.798, 3.57, 4.51, 5.631",\
                 "0.895, 0.9517, 1.117, 1.375, 1.728, 2.198, 2.81, 3.58, 4.521, 5.642",\
                 "0.8558, 0.9148, 1.086, 1.352, 1.712, 2.186, 2.8, 3.571, 4.511, 5.633");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.1901, 0.2233, 0.323, 0.4825, 0.7201, 1.059, 1.526, 2.131, 2.881, 3.777",\
                 "0.1901, 0.2234, 0.3232, 0.4825, 0.719, 1.059, 1.527, 2.13, 2.881, 3.78",\
                 "0.1899, 0.2234, 0.3231, 0.4836, 0.719, 1.06, 1.527, 2.129, 2.88, 3.781",\
                 "0.1904, 0.2242, 0.324, 0.4834, 0.7196, 1.061, 1.527, 2.131, 2.881, 3.78",\
                 "0.2066, 0.239, 0.3338, 0.491, 0.7232, 1.061, 1.525, 2.132, 2.879, 3.78",\
                 "0.2412, 0.275, 0.3698, 0.5214, 0.7456, 1.074, 1.531, 2.134, 2.882, 3.775",\
                 "0.2758, 0.312, 0.4084, 0.5598, 0.7808, 1.1, 1.548, 2.142, 2.883, 3.777",\
                 "0.3096, 0.3486, 0.449, 0.5998, 0.8168, 1.13, 1.57, 2.153, 2.89, 3.786",\
                 "0.3456, 0.3872, 0.4934, 0.6434, 0.8582, 1.165, 1.593, 2.17, 2.902, 3.79",\
                 "0.3834, 0.4296, 0.541, 0.6948, 0.9044, 1.205, 1.627, 2.193, 2.918, 3.797");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.2334, 0.2939, 0.4856, 0.837, 1.401, 2.221, 3.319, 4.694, 6.379, 8.396",\
                 "0.2327, 0.2947, 0.4859, 0.837, 1.402, 2.22, 3.322, 4.695, 6.379, 8.394",\
                 "0.2333, 0.2938, 0.486, 0.837, 1.401, 2.221, 3.314, 4.698, 6.382, 8.397",\
                 "0.2342, 0.2948, 0.4874, 0.8376, 1.402, 2.221, 3.313, 4.694, 6.395, 8.391",\
                 "0.245, 0.305, 0.498, 0.8436, 1.404, 2.223, 3.313, 4.7, 6.39, 8.395",\
                 "0.257, 0.319, 0.5112, 0.8586, 1.416, 2.227, 3.313, 4.699, 6.376, 8.388",\
                 "0.273, 0.3342, 0.5292, 0.8726, 1.423, 2.235, 3.325, 4.696, 6.38, 8.391",\
                 "0.2926, 0.3544, 0.5506, 0.8916, 1.434, 2.239, 3.325, 4.704, 6.395, 8.388",\
                 "0.3168, 0.3814, 0.5768, 0.9162, 1.455, 2.25, 3.33, 4.707, 6.389, 8.407",\
                 "0.3446, 0.4094, 0.607, 0.95, 1.485, 2.273, 3.34, 4.711, 6.396, 8.395");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.6108, 0.6489, 0.7532, 0.9024, 1.091, 1.324, 1.615, 1.974, 2.409, 2.926",\
                 "0.6255, 0.6636, 0.7679, 0.917, 1.105, 1.339, 1.63, 1.988, 2.423, 2.941",\
                 "0.6907, 0.7286, 0.8331, 0.9822, 1.17, 1.404, 1.695, 2.054, 2.489, 3.006",\
                 "0.8254, 0.8635, 0.9674, 1.117, 1.305, 1.538, 1.829, 2.188, 2.623, 3.14",\
                 "1.038, 1.076, 1.181, 1.33, 1.519, 1.753, 2.044, 2.402, 2.837, 3.355",\
                 "1.291, 1.333, 1.445, 1.602, 1.795, 2.031, 2.322, 2.681, 3.115, 3.632",\
                 "1.571, 1.617, 1.738, 1.904, 2.105, 2.347, 2.641, 3, 3.435, 3.952",\
                 "1.887, 1.935, 2.065, 2.241, 2.45, 2.698, 2.995, 3.357, 3.792, 4.309",\
                 "2.242, 2.294, 2.433, 2.619, 2.837, 3.091, 3.393, 3.755, 4.191, 4.709",\
                 "2.641, 2.696, 2.843, 3.04, 3.268, 3.529, 3.837, 4.202, 4.639, 5.158");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.6534, 0.7022, 0.8488, 1.087, 1.43, 1.898, 2.512, 3.282, 4.224, 5.347",\
                 "0.6669, 0.7154, 0.8622, 1.101, 1.443, 1.911, 2.525, 3.297, 4.237, 5.362",\
                 "0.6934, 0.7421, 0.8885, 1.127, 1.47, 1.938, 2.551, 3.323, 4.263, 5.388",\
                 "0.7261, 0.7748, 0.9211, 1.159, 1.502, 1.97, 2.583, 3.354, 4.298, 5.418",\
                 "0.7576, 0.8074, 0.9563, 1.196, 1.539, 2.007, 2.62, 3.392, 4.334, 5.455",\
                 "0.7744, 0.8256, 0.9781, 1.222, 1.566, 2.035, 2.648, 3.42, 4.36, 5.481",\
                 "0.7741, 0.8264, 0.9826, 1.23, 1.577, 2.046, 2.659, 3.43, 4.372, 5.495",\
                 "0.7476, 0.8024, 0.964, 1.218, 1.568, 2.038, 2.651, 3.422, 4.362, 5.483",\
                 "0.6895, 0.7459, 0.9136, 1.175, 1.533, 2.007, 2.62, 3.39, 4.331, 5.451",\
                 "0.5951, 0.654, 0.8281, 1.099, 1.465, 1.946, 2.563, 3.336, 4.275, 5.396");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.203, 0.2369, 0.3365, 0.4958, 0.7301, 1.068, 1.533, 2.136, 2.882, 3.784",\
                 "0.2029, 0.2369, 0.3362, 0.4963, 0.7301, 1.069, 1.531, 2.135, 2.885, 3.784",\
                 "0.2033, 0.2368, 0.3364, 0.496, 0.731, 1.067, 1.531, 2.135, 2.882, 3.784",\
                 "0.2032, 0.2374, 0.3372, 0.496, 0.73, 1.068, 1.534, 2.134, 2.885, 3.783",\
                 "0.2132, 0.2468, 0.3434, 0.5012, 0.7348, 1.07, 1.534, 2.135, 2.88, 3.778",\
                 "0.2486, 0.2818, 0.3764, 0.5268, 0.75, 1.079, 1.539, 2.139, 2.881, 3.784",\
                 "0.2848, 0.3202, 0.4154, 0.5652, 0.7846, 1.104, 1.552, 2.143, 2.888, 3.782",\
                 "0.317, 0.3566, 0.4564, 0.6046, 0.8192, 1.131, 1.571, 2.158, 2.892, 3.787",\
                 "0.3526, 0.394, 0.499, 0.6466, 0.8588, 1.164, 1.595, 2.172, 2.903, 3.79",\
                 "0.3884, 0.4336, 0.5446, 0.695, 0.9006, 1.201, 1.624, 2.194, 2.917, 3.802");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.003258, 0.01118, 0.02632, 0.0499, 0.08298, 0.1265, 0.1814, 0.2483, 0.3281");
          values("0.2327, 0.2939, 0.4858, 0.8372, 1.401, 2.22, 3.32, 4.694, 6.378, 8.388",\
                 "0.2339, 0.2943, 0.4859, 0.8368, 1.402, 2.221, 3.315, 4.703, 6.378, 8.391",\
                 "0.2327, 0.2947, 0.4854, 0.8368, 1.402, 2.22, 3.321, 4.695, 6.378, 8.389",\
                 "0.2338, 0.2952, 0.4874, 0.8372, 1.402, 2.22, 3.32, 4.693, 6.395, 8.392",\
                 "0.2442, 0.3048, 0.4964, 0.8428, 1.404, 2.221, 3.312, 4.7, 6.395, 8.392",\
                 "0.2562, 0.3178, 0.5106, 0.8566, 1.413, 2.228, 3.311, 4.694, 6.383, 8.387",\
                 "0.2686, 0.3322, 0.527, 0.873, 1.423, 2.231, 3.319, 4.695, 6.377, 8.398",\
                 "0.2892, 0.3514, 0.5512, 0.895, 1.439, 2.237, 3.323, 4.698, 6.391, 8.383",\
                 "0.3104, 0.3746, 0.5782, 0.9254, 1.465, 2.253, 3.327, 4.701, 6.382, 8.398",\
                 "0.3344, 0.4014, 0.6068, 0.9608, 1.503, 2.285, 3.347, 4.709, 6.389, 8.392");
        }
      }
    }
  }

