/*
 * 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__or3_4) {
    area : 62.092800 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.08597, 0.08597, 0.08597, 0.08591, 0.08584, 0.08582, 0.08582, \
                  0.08578, 0.08571, 0.08562");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01751, -0.01767, -0.01776, -0.01779, -0.01781, -0.01778, -0.01788, \
                  -0.01788, -0.01787, -0.01787");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.04538, 0.04538, 0.04546, 0.04535, 0.04538, 0.04539, 0.04547, \
                  0.04546, 0.0454, 0.04535");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01773, -0.01788, -0.01796, -0.01799, -0.01797, -0.01804, -0.01807, \
                  -0.01808, -0.01809, -0.01809");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.04502, 0.04508, 0.04513, 0.04511, 0.04509, 0.04508, 0.04517, \
                  0.04513, 0.0451, 0.04505");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01774, -0.01788, -0.01796, -0.01801, -0.01799, -0.01803, -0.01809, \
                  -0.0181, -0.01808, -0.01807");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.04017, 0.04021, 0.0403, 0.04024, 0.04024, 0.04023, 0.04036, \
                  0.04027, 0.0402, 0.04009");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.02014, -0.02021, -0.02035, -0.02032, -0.02038, -0.02042, -0.02051, \
                  -0.02052, -0.02053, -0.02059");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.06165, 0.06166, 0.06165, 0.0615, 0.0615, 0.06155, 0.0617, 0.0617, \
                  0.06167, 0.06166");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.04803, -0.04921, -0.05457, -0.05809, -0.05971, -0.0604, -0.06078, \
                  -0.06091, -0.06098, -0.06108");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.03734, 0.03746, 0.03758, 0.03754, 0.03764, 0.0376, 0.03773, \
                  0.0377, 0.03771, 0.03772");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.03969, -0.03915, -0.03752, -0.03594, -0.03469, -0.03384, -0.03327, \
                  -0.03279, -0.03232, -0.03195");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.06147, 0.06147, 0.06156, 0.06149, 0.06147, 0.06155, 0.06173, \
                  0.06161, 0.06162, 0.06162");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.05148, -0.05426, -0.05859, -0.05976, -0.05994, -0.06022, -0.06052, \
                  -0.06055, -0.06073, -0.06074");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.06242, 0.06249, 0.06238, 0.06231, 0.06235, 0.06245, 0.06256, \
                  0.06254, 0.06252, 0.06254");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.04854, -0.05104, -0.05501, -0.05722, -0.05832, -0.05893, -0.05945, \
                  -0.0597, -0.05991, -0.06004");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.06132, 0.06137, 0.06151, 0.06132, 0.06139, 0.06139, 0.06154, \
                  0.06152, 0.06149, 0.06149");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.05686, -0.05842, -0.05936, -0.05991, -0.06007, -0.06027, -0.06046, \
                  -0.06064, -0.06069, -0.06072");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2|A3)" ;
      max_capacitance : 1.513 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.7407, 0.7127, 0.6507, 0.5915, 0.5528, 0.5278, 0.5109, 0.4994, 0.4905, 0.4842",\
                 "0.7378, 0.71, 0.6479, 0.5886, 0.55, 0.5252, 0.5083, 0.4968, 0.4879, 0.4816",\
                 "0.7401, 0.712, 0.6501, 0.5911, 0.5526, 0.5279, 0.5111, 0.4993, 0.4909, 0.4846",\
                 "0.764, 0.7359, 0.6735, 0.6139, 0.5746, 0.5504, 0.5336, 0.5217, 0.5133, 0.5069",\
                 "0.8298, 0.801, 0.7351, 0.6711, 0.628, 0.6012, 0.5828, 0.5698, 0.5603, 0.5532",\
                 "0.9406, 0.909, 0.8378, 0.7651, 0.7153, 0.6832, 0.6612, 0.6457, 0.635, 0.6268",\
                 "1.095, 1.061, 0.9821, 0.899, 0.8386, 0.7992, 0.772, 0.7525, 0.7391, 0.7284",\
                 "1.297, 1.261, 1.173, 1.078, 1.005, 0.9558, 0.9203, 0.8956, 0.878, 0.8647",\
                 "1.546, 1.508, 1.412, 1.304, 1.216, 1.155, 1.11, 1.078, 1.054, 1.037",\
                 "1.841, 1.801, 1.698, 1.577, 1.472, 1.396, 1.342, 1.301, 1.27, 1.248");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.2677, 0.2602, 0.2541, 0.2539, 0.2557, 0.2581, 0.2615, 0.265, 0.2702, 0.2731",\
                 "0.2697, 0.2623, 0.256, 0.2556, 0.2573, 0.2599, 0.2633, 0.2668, 0.272, 0.2753",\
                 "0.2826, 0.2746, 0.2655, 0.2631, 0.2649, 0.2657, 0.2697, 0.274, 0.2774, 0.281",\
                 "0.3283, 0.3164, 0.3005, 0.2906, 0.2872, 0.288, 0.2903, 0.2923, 0.2954, 0.3005",\
                 "0.4018, 0.3851, 0.3593, 0.3425, 0.3334, 0.3287, 0.3284, 0.329, 0.3311, 0.3343",\
                 "0.5082, 0.4852, 0.4486, 0.4216, 0.4069, 0.3989, 0.3932, 0.391, 0.3901, 0.3937",\
                 "0.6491, 0.6206, 0.5747, 0.5354, 0.5068, 0.4954, 0.4879, 0.4828, 0.4776, 0.4776",\
                 "0.8256, 0.7928, 0.7348, 0.684, 0.6468, 0.6228, 0.6117, 0.6052, 0.6004, 0.5957",\
                 "1.04, 1.004, 0.9347, 0.8727, 0.8235, 0.7873, 0.7669, 0.7582, 0.7559, 0.7458",\
                 "1.292, 1.253, 1.171, 1.102, 1.044, 0.9943, 0.9588, 0.9407, 0.9344, 0.9334");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.7884, 0.7603, 0.698, 0.6388, 0.5994, 0.5744, 0.5576, 0.5458, 0.537, 0.5306",\
                 "0.7853, 0.7574, 0.6949, 0.6353, 0.5965, 0.5715, 0.5544, 0.5428, 0.5339, 0.5274",\
                 "0.7818, 0.7536, 0.6912, 0.6318, 0.592, 0.5672, 0.5508, 0.5387, 0.5299, 0.5236",\
                 "0.8011, 0.7724, 0.7088, 0.6477, 0.6073, 0.5819, 0.5643, 0.5524, 0.5433, 0.5368",\
                 "0.8677, 0.8379, 0.771, 0.705, 0.6606, 0.6323, 0.6131, 0.5993, 0.5894, 0.5821",\
                 "0.9833, 0.9525, 0.8805, 0.8067, 0.7548, 0.721, 0.6987, 0.6823, 0.6707, 0.662",\
                 "1.155, 1.121, 1.043, 0.9586, 0.896, 0.8535, 0.8253, 0.8045, 0.7897, 0.7781",\
                 "1.382, 1.347, 1.26, 1.163, 1.086, 1.034, 0.9965, 0.9692, 0.9498, 0.9346",\
                 "1.662, 1.624, 1.531, 1.422, 1.329, 1.262, 1.215, 1.18, 1.153, 1.133",\
                 "1.991, 1.953, 1.853, 1.732, 1.622, 1.541, 1.48, 1.437, 1.403, 1.377");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.3231, 0.3133, 0.3026, 0.2984, 0.2988, 0.3004, 0.3041, 0.3051, 0.3089, 0.3136",\
                 "0.3227, 0.3132, 0.3024, 0.2985, 0.2984, 0.2997, 0.3034, 0.3065, 0.3086, 0.3132",\
                 "0.3283, 0.3186, 0.3068, 0.3013, 0.3002, 0.3026, 0.3056, 0.3083, 0.3122, 0.319",\
                 "0.3717, 0.3589, 0.3415, 0.3286, 0.323, 0.3224, 0.3239, 0.3252, 0.3273, 0.3323",\
                 "0.4507, 0.4334, 0.4049, 0.3865, 0.3726, 0.3656, 0.3653, 0.3659, 0.3673, 0.3698",\
                 "0.5667, 0.5443, 0.5064, 0.4752, 0.4556, 0.4455, 0.4373, 0.4336, 0.4342, 0.4356",\
                 "0.7226, 0.6954, 0.6473, 0.6038, 0.5742, 0.5568, 0.5453, 0.5394, 0.5336, 0.531",\
                 "0.921, 0.8891, 0.8285, 0.778, 0.7344, 0.7036, 0.6904, 0.6795, 0.6693, 0.6632",\
                 "1.164, 1.128, 1.056, 0.9925, 0.94, 0.8973, 0.8711, 0.8559, 0.8439, 0.8392",\
                 "1.453, 1.414, 1.331, 1.256, 1.193, 1.137, 1.098, 1.071, 1.059, 1.049");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.8334, 0.8055, 0.7432, 0.6838, 0.6449, 0.6198, 0.6026, 0.5911, 0.5821, 0.5757",\
                 "0.8302, 0.8021, 0.7401, 0.6809, 0.6416, 0.6165, 0.5995, 0.5875, 0.5789, 0.5725",\
                 "0.8252, 0.7971, 0.7344, 0.6754, 0.6359, 0.6109, 0.5941, 0.5824, 0.5735, 0.5672",\
                 "0.8355, 0.8068, 0.7442, 0.6837, 0.6435, 0.618, 0.6013, 0.5889, 0.5802, 0.5737",\
                 "0.8944, 0.8653, 0.7989, 0.7341, 0.6909, 0.6633, 0.6447, 0.6314, 0.6216, 0.6144",\
                 "1.022, 0.9908, 0.9187, 0.8451, 0.7936, 0.7604, 0.7376, 0.7213, 0.7094, 0.7007",\
                 "1.224, 1.192, 1.111, 1.026, 0.9604, 0.9164, 0.8855, 0.8641, 0.8485, 0.8366",\
                 "1.495, 1.46, 1.371, 1.271, 1.19, 1.132, 1.091, 1.062, 1.04, 1.023",\
                 "1.826, 1.789, 1.694, 1.58, 1.48, 1.407, 1.353, 1.314, 1.283, 1.261",\
                 "2.217, 2.179, 2.078, 1.951, 1.833, 1.741, 1.673, 1.622, 1.583, 1.553");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.3743, 0.3626, 0.3482, 0.3408, 0.3392, 0.3401, 0.3424, 0.3455, 0.3483, 0.3522",\
                 "0.3705, 0.3589, 0.344, 0.3378, 0.3361, 0.3365, 0.3395, 0.3419, 0.3454, 0.349",\
                 "0.3701, 0.3588, 0.3434, 0.336, 0.3333, 0.3347, 0.337, 0.3404, 0.3436, 0.3464",\
                 "0.4127, 0.3989, 0.3783, 0.3623, 0.3555, 0.3531, 0.3539, 0.3548, 0.3598, 0.363",\
                 "0.4989, 0.4801, 0.4481, 0.4269, 0.4107, 0.4024, 0.3989, 0.3984, 0.399, 0.4026",\
                 "0.6314, 0.6072, 0.566, 0.5298, 0.5093, 0.4928, 0.4838, 0.478, 0.4764, 0.4782",\
                 "0.8139, 0.7838, 0.7308, 0.6847, 0.6493, 0.6278, 0.6127, 0.6025, 0.5963, 0.5927",\
                 "1.05, 1.016, 0.951, 0.892, 0.8418, 0.8096, 0.787, 0.7721, 0.7605, 0.754",\
                 "1.341, 1.304, 1.226, 1.155, 1.092, 1.043, 1.009, 0.9917, 0.9736, 0.9657",\
                 "1.691, 1.651, 1.56, 1.473, 1.399, 1.341, 1.29, 1.258, 1.235, 1.22");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.3724, 0.4052, 0.4905, 0.6113, 0.7637, 0.9509, 1.178, 1.452, 1.781, 2.17",\
                 "0.3748, 0.4077, 0.493, 0.6139, 0.7662, 0.9533, 1.18, 1.455, 1.783, 2.172",\
                 "0.4026, 0.4355, 0.5205, 0.6414, 0.7936, 0.9808, 1.208, 1.482, 1.811, 2.2",\
                 "0.4802, 0.513, 0.5978, 0.7183, 0.8706, 1.058, 1.285, 1.559, 1.888, 2.277",\
                 "0.6128, 0.6452, 0.7293, 0.8493, 1.001, 1.188, 1.415, 1.689, 2.017, 2.406",\
                 "0.7901, 0.8225, 0.9067, 1.027, 1.18, 1.367, 1.594, 1.868, 2.196, 2.585",\
                 "1.01, 1.044, 1.13, 1.251, 1.404, 1.593, 1.82, 2.095, 2.423, 2.812",\
                 "1.272, 1.307, 1.397, 1.522, 1.677, 1.868, 2.097, 2.372, 2.701, 3.089",\
                 "1.575, 1.612, 1.707, 1.836, 1.997, 2.192, 2.424, 2.701, 3.03, 3.418",\
                 "1.92, 1.959, 2.059, 2.195, 2.362, 2.564, 2.803, 3.084, 3.414, 3.804");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.1663, 0.19, 0.2622, 0.3929, 0.5958, 0.8802, 1.254, 1.725, 2.3, 2.987",\
                 "0.1741, 0.1976, 0.27, 0.4006, 0.6035, 0.888, 1.262, 1.733, 2.308, 2.995",\
                 "0.2015, 0.225, 0.2966, 0.4266, 0.6294, 0.9138, 1.287, 1.759, 2.335, 3.02",\
                 "0.2356, 0.2595, 0.3308, 0.4597, 0.6608, 0.9447, 1.318, 1.788, 2.362, 3.047",\
                 "0.2485, 0.2743, 0.3471, 0.4749, 0.6747, 0.9564, 1.33, 1.8, 2.373, 3.058",\
                 "0.2336, 0.2614, 0.3369, 0.465, 0.6639, 0.9444, 1.316, 1.785, 2.358, 3.043",\
                 "0.1865, 0.2166, 0.2957, 0.4253, 0.6237, 0.9049, 1.275, 1.743, 2.316, 3",\
                 "0.1045, 0.1369, 0.2202, 0.3519, 0.5513, 0.833, 1.205, 1.673, 2.245, 2.926",\
                 "-0.0145, 0.0206, 0.1095, 0.2441, 0.4434, 0.7261, 1.101, 1.57, 2.142, 2.824",\
                 "-0.1726, -0.1351, -0.0401, 0.0983, 0.299, 0.5818, 0.9584, 1.431, 2.007, 2.689");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.1401, 0.1755, 0.2627, 0.3913, 0.5747, 0.8249, 1.159, 1.592, 2.133, 2.792",\
                 "0.1403, 0.1754, 0.2625, 0.3907, 0.5748, 0.8249, 1.159, 1.592, 2.133, 2.791",\
                 "0.1402, 0.1754, 0.2626, 0.391, 0.5748, 0.825, 1.159, 1.592, 2.135, 2.791",\
                 "0.1392, 0.1743, 0.2619, 0.3917, 0.5734, 0.8254, 1.159, 1.592, 2.134, 2.789",\
                 "0.1428, 0.1778, 0.2652, 0.394, 0.5772, 0.8266, 1.161, 1.593, 2.135, 2.79",\
                 "0.1542, 0.1878, 0.275, 0.4036, 0.584, 0.8328, 1.162, 1.594, 2.135, 2.794",\
                 "0.1722, 0.2068, 0.2908, 0.4174, 0.5962, 0.8436, 1.173, 1.6, 2.137, 2.793",\
                 "0.1976, 0.2332, 0.317, 0.4404, 0.6158, 0.8586, 1.185, 1.609, 2.145, 2.797",\
                 "0.2248, 0.2632, 0.3508, 0.4768, 0.6492, 0.887, 1.206, 1.623, 2.154, 2.805",\
                 "0.2554, 0.2966, 0.3898, 0.5152, 0.6896, 0.9278, 1.244, 1.654, 2.173, 2.816");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.0655, 0.09828, 0.214, 0.4465, 0.8168, 1.337, 2.024, 2.882, 3.934, 5.184",\
                 "0.06542, 0.09822, 0.214, 0.4465, 0.8175, 1.338, 2.023, 2.882, 3.933, 5.187",\
                 "0.06534, 0.09838, 0.2143, 0.4466, 0.8163, 1.338, 2.02, 2.88, 3.931, 5.185",\
                 "0.07358, 0.105, 0.218, 0.4474, 0.816, 1.336, 2.022, 2.88, 3.932, 5.191",\
                 "0.08488, 0.1163, 0.2256, 0.4511, 0.8189, 1.337, 2.022, 2.88, 3.93, 5.186",\
                 "0.1, 0.1312, 0.2374, 0.4586, 0.8218, 1.338, 2.023, 2.884, 3.93, 5.187",\
                 "0.117, 0.1492, 0.2526, 0.4692, 0.8308, 1.344, 2.023, 2.889, 3.94, 5.182",\
                 "0.135, 0.1698, 0.2704, 0.4822, 0.8432, 1.359, 2.034, 2.887, 3.934, 5.196",\
                 "0.1568, 0.1936, 0.292, 0.4986, 0.8564, 1.374, 2.052, 2.903, 3.944, 5.188",\
                 "0.1786, 0.2162, 0.3176, 0.5172, 0.8718, 1.391, 2.075, 2.928, 3.963, 5.201");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.4553, 0.4882, 0.5734, 0.6942, 0.8465, 1.034, 1.261, 1.535, 1.863, 2.253",\
                 "0.4567, 0.4897, 0.5749, 0.6959, 0.8481, 1.035, 1.262, 1.537, 1.865, 2.254",\
                 "0.4684, 0.5012, 0.5863, 0.707, 0.8593, 1.047, 1.274, 1.548, 1.876, 2.265",\
                 "0.5121, 0.5449, 0.6295, 0.7498, 0.9021, 1.089, 1.316, 1.59, 1.919, 2.308",\
                 "0.6055, 0.6384, 0.7243, 0.8449, 0.9973, 1.185, 1.412, 1.686, 2.014, 2.403",\
                 "0.7477, 0.7818, 0.8691, 0.9917, 1.146, 1.334, 1.561, 1.836, 2.164, 2.552",\
                 "0.9335, 0.9686, 1.059, 1.185, 1.341, 1.532, 1.76, 2.035, 2.364, 2.752",\
                 "1.154, 1.192, 1.287, 1.419, 1.581, 1.775, 2.006, 2.283, 2.612, 3",\
                 "1.408, 1.447, 1.548, 1.689, 1.859, 2.061, 2.299, 2.578, 2.908, 3.297",\
                 "1.697, 1.738, 1.845, 1.994, 2.174, 2.387, 2.635, 2.922, 3.256, 3.646");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.193, 0.2167, 0.2892, 0.4196, 0.6222, 0.9065, 1.281, 1.751, 2.326, 3.011",\
                 "0.1998, 0.2236, 0.2962, 0.4267, 0.6295, 0.9137, 1.287, 1.758, 2.333, 3.018",\
                 "0.2257, 0.2495, 0.3215, 0.4516, 0.654, 0.9378, 1.312, 1.782, 2.358, 3.043",\
                 "0.2664, 0.2907, 0.3622, 0.4907, 0.6917, 0.9745, 1.348, 1.819, 2.394, 3.078",\
                 "0.29, 0.3159, 0.3887, 0.5163, 0.7152, 0.9969, 1.37, 1.839, 2.414, 3.098",\
                 "0.2885, 0.3163, 0.3914, 0.5191, 0.717, 0.9976, 1.368, 1.838, 2.412, 3.094",\
                 "0.258, 0.2882, 0.3668, 0.4956, 0.6941, 0.9741, 1.344, 1.811, 2.384, 3.068",\
                 "0.1963, 0.2292, 0.312, 0.4435, 0.642, 0.9229, 1.294, 1.761, 2.332, 3.014",\
                 "0.103, 0.1381, 0.2264, 0.3599, 0.5592, 0.8422, 1.215, 1.683, 2.254, 2.936",\
                 "-0.0249, 0.0132, 0.1074, 0.2445, 0.4454, 0.728, 1.104, 1.575, 2.148, 2.83");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.1402, 0.1755, 0.2629, 0.3915, 0.5738, 0.8262, 1.159, 1.592, 2.135, 2.793",\
                 "0.1401, 0.176, 0.2633, 0.3909, 0.5742, 0.8252, 1.159, 1.591, 2.135, 2.79",\
                 "0.1405, 0.1758, 0.2628, 0.3916, 0.575, 0.8259, 1.16, 1.593, 2.135, 2.793",\
                 "0.1411, 0.176, 0.2636, 0.3925, 0.575, 0.8262, 1.159, 1.592, 2.135, 2.793",\
                 "0.1494, 0.1848, 0.271, 0.3978, 0.5796, 0.828, 1.16, 1.594, 2.136, 2.792",\
                 "0.1586, 0.1952, 0.2842, 0.4106, 0.5892, 0.8354, 1.166, 1.596, 2.135, 2.792",\
                 "0.178, 0.216, 0.3054, 0.4302, 0.6072, 0.8504, 1.177, 1.601, 2.139, 2.793",\
                 "0.203, 0.2438, 0.3376, 0.4646, 0.6372, 0.8734, 1.194, 1.614, 2.146, 2.798",\
                 "0.2328, 0.2754, 0.3758, 0.5094, 0.6836, 0.9172, 1.228, 1.638, 2.161, 2.805",\
                 "0.262, 0.3082, 0.4162, 0.5574, 0.7388, 0.9762, 1.285, 1.686, 2.192, 2.822");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.06866, 0.1013, 0.2168, 0.448, 0.8172, 1.338, 2.023, 2.881, 3.932, 5.185",\
                 "0.06858, 0.1013, 0.2167, 0.4479, 0.8186, 1.338, 2.023, 2.88, 3.932, 5.184",\
                 "0.06818, 0.1011, 0.2167, 0.4481, 0.8175, 1.336, 2.023, 2.88, 3.932, 5.186",\
                 "0.07486, 0.1061, 0.2192, 0.4486, 0.8187, 1.336, 2.019, 2.881, 3.932, 5.184",\
                 "0.0867, 0.1172, 0.2263, 0.4521, 0.82, 1.339, 2.021, 2.881, 3.932, 5.183",\
                 "0.101, 0.1322, 0.2376, 0.4592, 0.823, 1.339, 2.024, 2.886, 3.93, 5.182",\
                 "0.1172, 0.1502, 0.2524, 0.471, 0.8316, 1.346, 2.024, 2.888, 3.94, 5.185",\
                 "0.1368, 0.171, 0.271, 0.4848, 0.845, 1.36, 2.036, 2.889, 3.939, 5.194",\
                 "0.1566, 0.1938, 0.2924, 0.5008, 0.8602, 1.376, 2.055, 2.904, 3.943, 5.196",\
                 "0.1816, 0.2186, 0.3176, 0.5196, 0.8756, 1.397, 2.078, 2.929, 3.964, 5.202");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.4872, 0.52, 0.6052, 0.726, 0.8785, 1.066, 1.293, 1.567, 1.896, 2.284",\
                 "0.4903, 0.5231, 0.6083, 0.7293, 0.8816, 1.069, 1.296, 1.57, 1.898, 2.288",\
                 "0.5002, 0.5331, 0.6183, 0.7389, 0.8912, 1.078, 1.306, 1.58, 1.908, 2.297",\
                 "0.5268, 0.5596, 0.6444, 0.7648, 0.917, 1.104, 1.331, 1.605, 1.934, 2.323",\
                 "0.5937, 0.6267, 0.7123, 0.8329, 0.9855, 1.172, 1.4, 1.674, 2.002, 2.391",\
                 "0.71, 0.7439, 0.8309, 0.9534, 1.107, 1.296, 1.523, 1.797, 2.125, 2.514",\
                 "0.8676, 0.9037, 0.995, 1.122, 1.279, 1.469, 1.698, 1.973, 2.301, 2.689",\
                 "1.056, 1.094, 1.191, 1.326, 1.492, 1.688, 1.921, 2.197, 2.525, 2.913",\
                 "1.271, 1.312, 1.415, 1.56, 1.736, 1.943, 2.185, 2.466, 2.797, 3.185",\
                 "1.514, 1.557, 1.668, 1.822, 2.01, 2.229, 2.484, 2.777, 3.115, 3.505");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.2048, 0.2296, 0.3036, 0.4355, 0.6391, 0.9232, 1.297, 1.768, 2.343, 3.026",\
                 "0.2106, 0.2355, 0.3094, 0.4415, 0.6447, 0.9291, 1.304, 1.774, 2.348, 3.033",\
                 "0.2357, 0.2603, 0.3339, 0.4655, 0.6687, 0.9533, 1.327, 1.797, 2.373, 3.057",\
                 "0.2807, 0.3054, 0.378, 0.5074, 0.7091, 0.9927, 1.366, 1.836, 2.412, 3.097",\
                 "0.3118, 0.3382, 0.4116, 0.5403, 0.7399, 1.022, 1.394, 1.864, 2.437, 3.122",\
                 "0.3199, 0.3486, 0.4251, 0.5535, 0.7524, 1.033, 1.404, 1.872, 2.446, 3.13",\
                 "0.3024, 0.3332, 0.4137, 0.5445, 0.7434, 1.023, 1.393, 1.861, 2.433, 3.116",\
                 "0.257, 0.2911, 0.3768, 0.5098, 0.7094, 0.992, 1.362, 1.829, 2.399, 3.081",\
                 "0.1828, 0.22, 0.3122, 0.449, 0.6499, 0.9336, 1.307, 1.776, 2.346, 3.027",\
                 "0.0797, 0.12, 0.2192, 0.3601, 0.5635, 0.8499, 1.226, 1.698, 2.272, 2.952");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.1405, 0.1761, 0.2631, 0.3916, 0.5746, 0.825, 1.159, 1.593, 2.135, 2.793",\
                 "0.1401, 0.1754, 0.2635, 0.391, 0.5747, 0.8252, 1.158, 1.593, 2.135, 2.791",\
                 "0.1407, 0.1757, 0.2627, 0.3916, 0.575, 0.826, 1.159, 1.592, 2.135, 2.793",\
                 "0.1408, 0.1758, 0.2639, 0.3922, 0.5756, 0.826, 1.159, 1.592, 2.135, 2.793",\
                 "0.1466, 0.1824, 0.2684, 0.3964, 0.5778, 0.8268, 1.16, 1.593, 2.135, 2.791",\
                 "0.158, 0.1948, 0.283, 0.4092, 0.5878, 0.8348, 1.164, 1.595, 2.137, 2.793",\
                 "0.1824, 0.221, 0.3112, 0.4362, 0.6098, 0.852, 1.176, 1.601, 2.137, 2.793",\
                 "0.2114, 0.2542, 0.3492, 0.48, 0.6512, 0.885, 1.2, 1.616, 2.147, 2.795",\
                 "0.2434, 0.2874, 0.3932, 0.5324, 0.7078, 0.941, 1.25, 1.65, 2.165, 2.806",\
                 "0.2774, 0.3246, 0.4384, 0.5884, 0.7752, 1.014, 1.322, 1.717, 2.212, 2.831");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.01143, 0.04805, 0.118, 0.2269, 0.3798, 0.581, 0.8344, 1.144, 1.513");
          values("0.07334, 0.1061, 0.2221, 0.453, 0.8222, 1.341, 2.023, 2.887, 3.931, 5.182",\
                 "0.07346, 0.106, 0.2219, 0.4528, 0.8202, 1.341, 2.021, 2.886, 3.931, 5.182",\
                 "0.07262, 0.1054, 0.2215, 0.4529, 0.8206, 1.341, 2.022, 2.887, 3.931, 5.185",\
                 "0.0777, 0.1097, 0.223, 0.4527, 0.8201, 1.338, 2.024, 2.885, 3.932, 5.184",\
                 "0.09028, 0.1217, 0.2308, 0.4567, 0.8214, 1.339, 2.021, 2.882, 3.933, 5.185",\
                 "0.1066, 0.1382, 0.2432, 0.4646, 0.8274, 1.343, 2.026, 2.886, 3.938, 5.184",\
                 "0.1258, 0.1588, 0.2598, 0.4772, 0.8384, 1.35, 2.027, 2.89, 3.942, 5.196",\
                 "0.148, 0.1834, 0.2826, 0.4934, 0.8534, 1.368, 2.039, 2.891, 3.939, 5.185",\
                 "0.1734, 0.2096, 0.3094, 0.5148, 0.8732, 1.389, 2.066, 2.908, 3.947, 5.198",\
                 "0.2016, 0.2394, 0.3416, 0.5398, 0.895, 1.416, 2.094, 2.942, 3.969, 5.205");
        }
      }
    }
  }

