/*
 * 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_4) {
    area : 56.448000 ;

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

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

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

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

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

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

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

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

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

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

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

    pin(A1) {
      capacitance : 0.01215 ;
      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.05689, 0.05686, 0.05662, 0.05648, 0.05661, 0.0566, 0.05649, \
                  0.05655, 0.05651, 0.05655");
        }

        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.02984, -0.02996, -0.0299, -0.02996, -0.02986, -0.03012, -0.03001, \
                  -0.0301, -0.03018, -0.03024");
        }
      }

      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.05685, 0.05692, 0.05676, 0.05651, 0.05647, 0.05659, 0.0566, \
                  0.0566, 0.05654, 0.05654");
        }

        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.0295, -0.02962, -0.02957, -0.0296, -0.02965, -0.02973, -0.02971, \
                  -0.02979, -0.02984, -0.02991");
        }
      }

      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.05674, 0.0568, 0.05673, 0.05654, 0.05647, 0.05659, 0.05658, \
                  0.05659, 0.05658, 0.05653");
        }

        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.03486, 0.03483, 0.03484, 0.03466, 0.03443, 0.03431, 0.03439, \
                  0.03421, 0.03413, 0.03398");
        }
      }
    }

    pin(A2) {
      capacitance : 0.01248 ;
      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.07479, 0.07647, 0.07806, 0.07968, 0.08126, 0.08235, 0.0831, \
                  0.08374, 0.08417, 0.08439");
        }

        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.04911, -0.04915, -0.04908, -0.04888, -0.04889, -0.04904, -0.04899, \
                  -0.04898, -0.04906, -0.04898");
        }
      }

      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.06306, 0.05713, 0.05195, 0.05048, 0.04995, 0.04965, 0.04947, \
                  0.04928, 0.04919, 0.04908");
        }

        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.049, -0.04903, -0.04901, -0.049, -0.04893, -0.04901, -0.04892, \
                  -0.04906, -0.04904, -0.04908");
        }
      }

      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.05628, 0.05629, 0.05615, 0.05612, 0.05598, 0.05605, 0.05604, \
                  0.05601, 0.05595, 0.05592");
        }

        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.0371, -0.03714, -0.03701, -0.03702, -0.03708, -0.03726, -0.03717, \
                  -0.03733, -0.0374, -0.03752");
        }
      }
    }

    pin(A3) {
      capacitance : 0.0131 ;
      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.05193, 0.04975, 0.04917, 0.04911, 0.04906, 0.04915, 0.04905, \
                  0.04911, 0.04914, 0.04911");
        }

        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.04899, -0.04907, -0.04899, -0.04892, -0.04892, -0.04901, -0.0489, \
                  -0.04891, -0.04901, -0.04901");
        }
      }

      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.05974, 0.05548, 0.05085, 0.04958, 0.04916, 0.04905, 0.04892, \
                  0.04891, 0.04881, 0.04876");
        }

        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.04893, -0.04908, -0.049, -0.04895, -0.04892, -0.04903, -0.04894, \
                  -0.049, -0.04906, -0.04898");
        }
      }

      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.05687, 0.05267, 0.05011, 0.04921, 0.04894, 0.04891, 0.04876, \
                  0.04877, 0.04874, 0.0487");
        }

        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.04901, -0.04908, -0.04906, -0.04894, -0.04893, -0.04903, -0.04897, \
                  -0.04899, -0.04901, -0.04901");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 1.511 ;
      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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.5105, 0.4956, 0.4719, 0.4577, 0.4508, 0.4461, 0.443, 0.441, 0.4398, 0.4386",\
                 "0.5102, 0.4956, 0.4711, 0.4573, 0.4502, 0.4454, 0.4426, 0.4406, 0.4394, 0.4382",\
                 "0.5157, 0.5002, 0.4757, 0.4616, 0.4541, 0.4496, 0.4468, 0.445, 0.4436, 0.4425",\
                 "0.5609, 0.5429, 0.512, 0.4924, 0.4818, 0.4756, 0.4717, 0.4691, 0.4674, 0.4662",\
                 "0.663, 0.6406, 0.5957, 0.5646, 0.5471, 0.5357, 0.529, 0.5241, 0.5209, 0.5187",\
                 "0.8152, 0.7879, 0.7305, 0.6841, 0.6547, 0.6361, 0.6241, 0.6158, 0.6102, 0.6064",\
                 "1.016, 0.9846, 0.9151, 0.8513, 0.8081, 0.7793, 0.7608, 0.7478, 0.7386, 0.7322",\
                 "1.263, 1.229, 1.148, 1.067, 1.009, 0.9683, 0.9408, 0.9215, 0.9075, 0.8975",\
                 "1.558, 1.522, 1.431, 1.333, 1.258, 1.205, 1.167, 1.139, 1.12, 1.105",\
                 "1.902, 1.863, 1.765, 1.652, 1.559, 1.491, 1.441, 1.404, 1.377, 1.358");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.3875, 0.3671, 0.3356, 0.3177, 0.3079, 0.3046, 0.3047, 0.3053, 0.3079, 0.3097",\
                 "0.3865, 0.366, 0.335, 0.3163, 0.3068, 0.3046, 0.3033, 0.3049, 0.3076, 0.3082",\
                 "0.3903, 0.3697, 0.3382, 0.3191, 0.3096, 0.3064, 0.3065, 0.3081, 0.3108, 0.3115",\
                 "0.4277, 0.4062, 0.3712, 0.3478, 0.3352, 0.3298, 0.3285, 0.3283, 0.3303, 0.3313",\
                 "0.5058, 0.4822, 0.4407, 0.4123, 0.3929, 0.3831, 0.3782, 0.3769, 0.3767, 0.3784",\
                 "0.6309, 0.6034, 0.5529, 0.5151, 0.4911, 0.4731, 0.4624, 0.4568, 0.4527, 0.4529",\
                 "0.8013, 0.7704, 0.71, 0.6607, 0.6246, 0.6016, 0.5873, 0.5774, 0.5715, 0.5671",\
                 "1.015, 0.9817, 0.9114, 0.8498, 0.8026, 0.7698, 0.7508, 0.7365, 0.7252, 0.719",\
                 "1.274, 1.238, 1.156, 1.083, 1.027, 0.9814, 0.9524, 0.9353, 0.921, 0.9116",\
                 "1.577, 1.537, 1.447, 1.363, 1.295, 1.24, 1.2, 1.17, 1.158, 1.144");
        }
      }

      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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.6017, 0.5848, 0.5541, 0.5354, 0.525, 0.5182, 0.5139, 0.5114, 0.5093, 0.508",\
                 "0.6001, 0.5831, 0.5532, 0.5341, 0.5231, 0.5167, 0.5127, 0.5098, 0.508, 0.5065",\
                 "0.6039, 0.5868, 0.5561, 0.5366, 0.5262, 0.5199, 0.5155, 0.5128, 0.5109, 0.5096",\
                 "0.646, 0.6269, 0.5909, 0.5673, 0.5541, 0.5459, 0.5407, 0.5372, 0.5348, 0.5331",\
                 "0.7508, 0.7278, 0.6801, 0.6444, 0.6228, 0.6094, 0.6007, 0.5951, 0.5913, 0.5885",\
                 "0.9099, 0.8824, 0.8228, 0.7717, 0.7388, 0.7164, 0.7026, 0.6929, 0.6864, 0.6818",\
                 "1.122, 1.091, 1.019, 0.9504, 0.9029, 0.8701, 0.8481, 0.8336, 0.8226, 0.8153",\
                 "1.384, 1.35, 1.268, 1.182, 1.118, 1.073, 1.041, 1.018, 1.003, 0.9909",\
                 "1.697, 1.66, 1.569, 1.467, 1.385, 1.325, 1.282, 1.251, 1.228, 1.212",\
                 "2.063, 2.024, 1.923, 1.806, 1.706, 1.631, 1.574, 1.533, 1.503, 1.48");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.3874, 0.3671, 0.3353, 0.3172, 0.308, 0.3054, 0.3051, 0.3067, 0.3058, 0.3097",\
                 "0.3857, 0.3655, 0.3334, 0.3161, 0.3062, 0.3039, 0.3022, 0.3049, 0.304, 0.3082",\
                 "0.3868, 0.3666, 0.3344, 0.3158, 0.3059, 0.3028, 0.3029, 0.3035, 0.3058, 0.3071",\
                 "0.419, 0.3973, 0.3622, 0.339, 0.3271, 0.3226, 0.3213, 0.3218, 0.3205, 0.3273",\
                 "0.4938, 0.4699, 0.4287, 0.4016, 0.3827, 0.3734, 0.3692, 0.3679, 0.3695, 0.3694",\
                 "0.6192, 0.5923, 0.5421, 0.5029, 0.48, 0.463, 0.453, 0.4475, 0.4444, 0.4461",\
                 "0.791, 0.7616, 0.702, 0.6522, 0.6162, 0.5952, 0.5816, 0.5706, 0.5625, 0.5588",\
                 "1.009, 0.9753, 0.9062, 0.8453, 0.7986, 0.7651, 0.7472, 0.734, 0.7248, 0.7168",\
                 "1.271, 1.236, 1.157, 1.084, 1.025, 0.9832, 0.9545, 0.9374, 0.9261, 0.9156",\
                 "1.58, 1.543, 1.456, 1.372, 1.3, 1.246, 1.206, 1.179, 1.167, 1.156");
        }
      }

      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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.683, 0.6642, 0.6288, 0.6048, 0.5914, 0.5824, 0.5768, 0.5733, 0.5709, 0.569",\
                 "0.68, 0.6612, 0.6259, 0.602, 0.5881, 0.5795, 0.5739, 0.5705, 0.5679, 0.5661",\
                 "0.6839, 0.665, 0.6291, 0.6047, 0.5914, 0.5826, 0.5769, 0.5733, 0.571, 0.5692",\
                 "0.7246, 0.7041, 0.6644, 0.6368, 0.6205, 0.6098, 0.6036, 0.5994, 0.5966, 0.5945",\
                 "0.8331, 0.8092, 0.7585, 0.719, 0.6938, 0.6782, 0.6683, 0.6617, 0.6572, 0.6539",\
                 "1.001, 0.9737, 0.9116, 0.8564, 0.8187, 0.7938, 0.7779, 0.7669, 0.7592, 0.7539",\
                 "1.228, 1.197, 1.123, 1.051, 0.9989, 0.9621, 0.9378, 0.9208, 0.9083, 0.8996",\
                 "1.513, 1.478, 1.395, 1.304, 1.235, 1.184, 1.15, 1.124, 1.106, 1.093",\
                 "1.855, 1.818, 1.725, 1.618, 1.531, 1.464, 1.416, 1.381, 1.355, 1.336",\
                 "2.256, 2.217, 2.116, 1.994, 1.886, 1.805, 1.741, 1.694, 1.659, 1.633");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.3874, 0.3671, 0.3361, 0.3172, 0.308, 0.3054, 0.3047, 0.3067, 0.3051, 0.31",\
                 "0.3858, 0.3655, 0.3331, 0.3161, 0.3062, 0.3039, 0.3022, 0.3049, 0.304, 0.3082",\
                 "0.3844, 0.3638, 0.3328, 0.3136, 0.3041, 0.3007, 0.3004, 0.3013, 0.3018, 0.3061",\
                 "0.4097, 0.3883, 0.354, 0.3326, 0.3211, 0.3165, 0.3159, 0.3146, 0.318, 0.3201",\
                 "0.4813, 0.4573, 0.4173, 0.3922, 0.3745, 0.3658, 0.3623, 0.3618, 0.3634, 0.364",\
                 "0.6074, 0.5811, 0.5321, 0.4934, 0.472, 0.458, 0.448, 0.4449, 0.4429, 0.4432",\
                 "0.7848, 0.7554, 0.6956, 0.646, 0.613, 0.5944, 0.5816, 0.5717, 0.5664, 0.5613",\
                 "1.011, 0.9799, 0.9107, 0.85, 0.804, 0.7741, 0.7569, 0.7437, 0.7367, 0.728",\
                 "1.287, 1.253, 1.176, 1.102, 1.044, 1.002, 0.974, 0.9612, 0.9513, 0.9411",\
                 "1.612, 1.578, 1.493, 1.407, 1.335, 1.281, 1.242, 1.217, 1.205, 1.201");
        }
      }

      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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.2052, 0.2291, 0.2907, 0.382, 0.5055, 0.6691, 0.8813, 1.148, 1.474, 1.862",\
                 "0.2143, 0.2381, 0.2999, 0.3911, 0.5146, 0.6782, 0.8904, 1.157, 1.483, 1.871",\
                 "0.2493, 0.273, 0.3346, 0.4257, 0.5492, 0.7128, 0.9249, 1.192, 1.517, 1.905",\
                 "0.3197, 0.3435, 0.4051, 0.4961, 0.6194, 0.7827, 0.9947, 1.261, 1.587, 1.975",\
                 "0.4088, 0.4349, 0.4997, 0.5935, 0.7179, 0.881, 1.093, 1.359, 1.684, 2.072",\
                 "0.5108, 0.5394, 0.61, 0.7081, 0.8359, 1, 1.212, 1.477, 1.802, 2.19",\
                 "0.6238, 0.6552, 0.732, 0.8365, 0.9705, 1.139, 1.352, 1.617, 1.941, 2.327",\
                 "0.7487, 0.7829, 0.8661, 0.9783, 1.118, 1.293, 1.511, 1.778, 2.102, 2.489",\
                 "0.8855, 0.9212, 1.012, 1.132, 1.279, 1.461, 1.685, 1.958, 2.285, 2.672",\
                 "1.035, 1.073, 1.169, 1.298, 1.452, 1.641, 1.871, 2.153, 2.488, 2.88");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.2699, 0.2995, 0.382, 0.5198, 0.7236, 1.007, 1.379, 1.849, 2.422, 3.108",\
                 "0.2742, 0.3038, 0.3862, 0.5239, 0.7278, 1.011, 1.383, 1.854, 2.428, 3.112",\
                 "0.2931, 0.3229, 0.4053, 0.5429, 0.7466, 1.03, 1.402, 1.873, 2.447, 3.131",\
                 "0.3325, 0.3625, 0.4445, 0.5813, 0.7842, 1.067, 1.439, 1.908, 2.481, 3.167",\
                 "0.3737, 0.404, 0.4865, 0.6234, 0.826, 1.107, 1.479, 1.948, 2.522, 3.204",\
                 "0.4113, 0.4427, 0.5267, 0.6636, 0.8654, 1.146, 1.516, 1.984, 2.556, 3.242",\
                 "0.4393, 0.4725, 0.5597, 0.6989, 0.9017, 1.182, 1.552, 2.019, 2.59, 3.271",\
                 "0.4561, 0.4913, 0.5825, 0.7243, 0.9302, 1.213, 1.583, 2.049, 2.62, 3.301",\
                 "0.4603, 0.4976, 0.5928, 0.7373, 0.9473, 1.234, 1.609, 2.076, 2.646, 3.327",\
                 "0.4499, 0.4896, 0.5897, 0.7382, 0.9505, 1.242, 1.622, 2.096, 2.668, 3.347");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.073, 0.09796, 0.1659, 0.2811, 0.4618, 0.7268, 1.084, 1.541, 2.1, 2.765",\
                 "0.07304, 0.09802, 0.1656, 0.2808, 0.4618, 0.7269, 1.085, 1.54, 2.099, 2.766",\
                 "0.07318, 0.09816, 0.1655, 0.2814, 0.4617, 0.727, 1.085, 1.542, 2.101, 2.766",\
                 "0.08032, 0.1046, 0.1699, 0.2842, 0.4628, 0.7257, 1.084, 1.54, 2.1, 2.766",\
                 "0.09834, 0.1236, 0.1872, 0.297, 0.4704, 0.729, 1.085, 1.542, 2.098, 2.769",\
                 "0.122, 0.1496, 0.2138, 0.3192, 0.4866, 0.7376, 1.087, 1.542, 2.099, 2.764",\
                 "0.1478, 0.1784, 0.2462, 0.3502, 0.5142, 0.7578, 1.098, 1.545, 2.102, 2.768",\
                 "0.1758, 0.2094, 0.2828, 0.3874, 0.5506, 0.792, 1.124, 1.56, 2.105, 2.768",\
                 "0.2066, 0.2416, 0.3212, 0.4272, 0.5888, 0.8316, 1.165, 1.595, 2.128, 2.779",\
                 "0.2362, 0.274, 0.362, 0.4728, 0.6314, 0.873, 1.21, 1.644, 2.177, 2.811");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.0978, 0.1338, 0.249, 0.4725, 0.8276, 1.342, 2.026, 2.888, 3.934, 5.185",\
                 "0.09782, 0.1337, 0.2491, 0.4711, 0.8289, 1.344, 2.026, 2.888, 3.941, 5.184",\
                 "0.09812, 0.1335, 0.2486, 0.4713, 0.829, 1.344, 2.026, 2.888, 3.941, 5.186",\
                 "0.1013, 0.1361, 0.2507, 0.4727, 0.8295, 1.344, 2.026, 2.888, 3.934, 5.184",\
                 "0.107, 0.1431, 0.2567, 0.4788, 0.8328, 1.344, 2.025, 2.881, 3.938, 5.183",\
                 "0.1194, 0.1552, 0.2668, 0.4852, 0.8388, 1.348, 2.025, 2.888, 3.933, 5.185",\
                 "0.1358, 0.1728, 0.2822, 0.499, 0.849, 1.354, 2.031, 2.891, 3.936, 5.183",\
                 "0.1532, 0.1906, 0.3006, 0.5166, 0.8694, 1.37, 2.04, 2.893, 3.943, 5.197",\
                 "0.1736, 0.2138, 0.3222, 0.5366, 0.8928, 1.399, 2.065, 2.906, 3.944, 5.199",\
                 "0.1946, 0.2346, 0.3456, 0.5588, 0.9158, 1.43, 2.102, 2.938, 3.966, 5.199");
        }
      }

      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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.2344, 0.2601, 0.3254, 0.4189, 0.5434, 0.7074, 0.9196, 1.186, 1.512, 1.901",\
                 "0.2426, 0.2683, 0.3336, 0.427, 0.5516, 0.7156, 0.9278, 1.195, 1.52, 1.909",\
                 "0.2768, 0.3025, 0.3676, 0.4611, 0.5856, 0.7496, 0.9618, 1.229, 1.554, 1.943",\
                 "0.3506, 0.3762, 0.441, 0.534, 0.6585, 0.8223, 1.034, 1.301, 1.627, 2.015",\
                 "0.4511, 0.4782, 0.5463, 0.6415, 0.7664, 0.9298, 1.141, 1.408, 1.733, 2.121",\
                 "0.5694, 0.599, 0.6721, 0.7721, 0.9, 1.064, 1.276, 1.541, 1.866, 2.253",\
                 "0.7038, 0.7364, 0.8163, 0.9221, 1.055, 1.222, 1.434, 1.699, 2.023, 2.41",\
                 "0.8553, 0.8909, 0.9773, 1.091, 1.23, 1.403, 1.618, 1.883, 2.207, 2.593",\
                 "1.026, 1.063, 1.156, 1.279, 1.425, 1.604, 1.824, 2.094, 2.419, 2.805",\
                 "1.214, 1.255, 1.354, 1.485, 1.639, 1.824, 2.051, 2.327, 2.657, 3.047");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.2972, 0.3268, 0.4094, 0.5472, 0.751, 1.034, 1.407, 1.877, 2.45, 3.136",\
                 "0.3004, 0.3301, 0.4124, 0.5504, 0.7542, 1.037, 1.41, 1.88, 2.454, 3.139",\
                 "0.3097, 0.3396, 0.4219, 0.5596, 0.7632, 1.046, 1.419, 1.889, 2.461, 3.147",\
                 "0.3324, 0.3624, 0.4445, 0.5817, 0.7847, 1.067, 1.439, 1.909, 2.482, 3.168",\
                 "0.3582, 0.3891, 0.4724, 0.6097, 0.8124, 1.094, 1.466, 1.935, 2.509, 3.192",\
                 "0.3786, 0.411, 0.4972, 0.6354, 0.8377, 1.119, 1.489, 1.957, 2.529, 3.214",\
                 "0.3861, 0.4204, 0.5107, 0.652, 0.8571, 1.138, 1.507, 1.974, 2.545, 3.23",\
                 "0.378, 0.4141, 0.509, 0.6545, 0.8635, 1.149, 1.519, 1.985, 2.556, 3.237",\
                 "0.3513, 0.3897, 0.4897, 0.6392, 0.8524, 1.143, 1.52, 1.988, 2.558, 3.239",\
                 "0.3058, 0.3468, 0.4517, 0.6056, 0.8225, 1.119, 1.503, 1.979, 2.553, 3.233");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.08238, 0.1085, 0.1756, 0.2885, 0.4662, 0.7284, 1.085, 1.542, 2.102, 2.769",\
                 "0.08246, 0.1086, 0.1762, 0.2887, 0.4664, 0.729, 1.085, 1.542, 2.101, 2.77",\
                 "0.08252, 0.1086, 0.1766, 0.2888, 0.4659, 0.7278, 1.085, 1.541, 2.099, 2.769",\
                 "0.08696, 0.1124, 0.1792, 0.2908, 0.4676, 0.7282, 1.085, 1.543, 2.099, 2.768",\
                 "0.1047, 0.1312, 0.1954, 0.3014, 0.4728, 0.7316, 1.085, 1.541, 2.102, 2.766",\
                 "0.1284, 0.1566, 0.2216, 0.3238, 0.488, 0.7388, 1.089, 1.542, 2.102, 2.764",\
                 "0.1548, 0.1866, 0.2546, 0.3538, 0.5132, 0.755, 1.097, 1.546, 2.102, 2.768",\
                 "0.1824, 0.2186, 0.2928, 0.3922, 0.5468, 0.7836, 1.116, 1.555, 2.105, 2.768",\
                 "0.2138, 0.2506, 0.3326, 0.4348, 0.5866, 0.8218, 1.153, 1.582, 2.121, 2.774",\
                 "0.2464, 0.2872, 0.3744, 0.4804, 0.6304, 0.8632, 1.195, 1.625, 2.155, 2.797");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.09832, 0.1338, 0.2489, 0.4712, 0.8286, 1.344, 2.026, 2.888, 3.938, 5.186",\
                 "0.09792, 0.1339, 0.249, 0.4725, 0.8285, 1.344, 2.024, 2.888, 3.938, 5.196",\
                 "0.09766, 0.1335, 0.2489, 0.4712, 0.8276, 1.344, 2.026, 2.888, 3.934, 5.184",\
                 "0.1016, 0.1366, 0.2508, 0.4721, 0.828, 1.344, 2.026, 2.888, 3.939, 5.196",\
                 "0.1084, 0.1445, 0.2575, 0.4786, 0.8326, 1.345, 2.026, 2.888, 3.941, 5.192",\
                 "0.1212, 0.1582, 0.2702, 0.4866, 0.8378, 1.348, 2.027, 2.885, 3.934, 5.185",\
                 "0.1376, 0.1756, 0.2874, 0.5054, 0.8514, 1.354, 2.03, 2.887, 3.938, 5.184",\
                 "0.1544, 0.1948, 0.3076, 0.5252, 0.8774, 1.375, 2.041, 2.891, 3.942, 5.184",\
                 "0.1732, 0.2146, 0.3304, 0.5476, 0.9022, 1.409, 2.071, 2.909, 3.944, 5.188",\
                 "0.1928, 0.2366, 0.3556, 0.5712, 0.9298, 1.444, 2.116, 2.948, 3.969, 5.2");
        }
      }

      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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.2558, 0.2827, 0.3509, 0.4471, 0.5734, 0.7383, 0.9509, 1.218, 1.544, 1.932",\
                 "0.2631, 0.29, 0.3582, 0.4542, 0.5807, 0.7456, 0.9582, 1.225, 1.551, 1.939",\
                 "0.2974, 0.3242, 0.3924, 0.4885, 0.6148, 0.7797, 0.9923, 1.259, 1.585, 1.973",\
                 "0.3739, 0.4003, 0.4679, 0.5637, 0.6897, 0.8546, 1.067, 1.334, 1.659, 2.048",\
                 "0.484, 0.5123, 0.5826, 0.6794, 0.8059, 0.9701, 1.182, 1.448, 1.773, 2.162",\
                 "0.6173, 0.6482, 0.7234, 0.8246, 0.9535, 1.118, 1.33, 1.595, 1.919, 2.307",\
                 "0.774, 0.8074, 0.8889, 0.9967, 1.13, 1.297, 1.508, 1.773, 2.097, 2.484",\
                 "0.954, 0.9902, 1.078, 1.194, 1.333, 1.504, 1.718, 1.983, 2.307, 2.693",\
                 "1.159, 1.198, 1.293, 1.417, 1.563, 1.741, 1.959, 2.227, 2.552, 2.938",\
                 "1.392, 1.433, 1.534, 1.667, 1.821, 2.005, 2.23, 2.504, 2.832, 3.22");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.3097, 0.3393, 0.4218, 0.5596, 0.7635, 1.046, 1.419, 1.889, 2.463, 3.148",\
                 "0.313, 0.3426, 0.4249, 0.563, 0.7668, 1.05, 1.422, 1.893, 2.466, 3.151",\
                 "0.3161, 0.3458, 0.4282, 0.5659, 0.7696, 1.053, 1.425, 1.895, 2.469, 3.151",\
                 "0.3223, 0.3521, 0.4343, 0.5715, 0.7748, 1.058, 1.43, 1.899, 2.473, 3.157",\
                 "0.3274, 0.358, 0.4418, 0.5793, 0.7822, 1.064, 1.435, 1.905, 2.479, 3.163",\
                 "0.3212, 0.3543, 0.4418, 0.5818, 0.7853, 1.066, 1.437, 1.905, 2.477, 3.162",\
                 "0.2977, 0.3329, 0.4253, 0.5696, 0.7776, 1.06, 1.43, 1.897, 2.469, 3.153",\
                 "0.2531, 0.2905, 0.3879, 0.5373, 0.7509, 1.04, 1.413, 1.879, 2.45, 3.131",\
                 "0.1858, 0.2252, 0.328, 0.4824, 0.701, 0.9978, 1.379, 1.851, 2.421, 3.102",\
                 "0.0929, 0.1349, 0.2423, 0.4027, 0.6261, 0.9292, 1.32, 1.802, 2.379, 3.06");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.09076, 0.1179, 0.1859, 0.2973, 0.4722, 0.7318, 1.088, 1.541, 2.103, 2.77",\
                 "0.09098, 0.1181, 0.1861, 0.2967, 0.4733, 0.7328, 1.088, 1.542, 2.1, 2.768",\
                 "0.09072, 0.1178, 0.186, 0.2974, 0.4725, 0.7316, 1.088, 1.544, 2.103, 2.77",\
                 "0.09304, 0.1202, 0.1886, 0.2993, 0.474, 0.7322, 1.088, 1.542, 2.103, 2.77",\
                 "0.1105, 0.1382, 0.203, 0.308, 0.4788, 0.7348, 1.089, 1.544, 2.102, 2.77",\
                 "0.1338, 0.1628, 0.229, 0.3298, 0.4922, 0.7418, 1.091, 1.542, 2.102, 2.77",\
                 "0.1598, 0.1918, 0.2626, 0.3592, 0.5166, 0.7566, 1.098, 1.547, 2.101, 2.769",\
                 "0.1904, 0.2256, 0.3004, 0.3972, 0.5492, 0.7838, 1.115, 1.556, 2.106, 2.769",\
                 "0.221, 0.2588, 0.3402, 0.441, 0.59, 0.819, 1.146, 1.578, 2.118, 2.773",\
                 "0.2542, 0.2954, 0.3852, 0.4886, 0.633, 0.8632, 1.189, 1.615, 2.146, 2.793");
        }

        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.01142, 0.04801, 0.1179, 0.2267, 0.3794, 0.5804, 0.8336, 1.143, 1.511");
          values("0.0984, 0.1338, 0.2495, 0.4715, 0.8285, 1.344, 2.026, 2.889, 3.938, 5.196",\
                 "0.0984, 0.1339, 0.2487, 0.4726, 0.8284, 1.344, 2.025, 2.888, 3.938, 5.196",\
                 "0.09768, 0.1337, 0.2493, 0.4712, 0.8291, 1.342, 2.025, 2.883, 3.939, 5.184",\
                 "0.1001, 0.1357, 0.2503, 0.4722, 0.8292, 1.344, 2.027, 2.887, 3.933, 5.185",\
                 "0.1085, 0.1453, 0.2572, 0.4778, 0.8316, 1.342, 2.026, 2.888, 3.941, 5.191",\
                 "0.1222, 0.16, 0.2722, 0.4892, 0.8378, 1.347, 2.024, 2.886, 3.931, 5.191",\
                 "0.1368, 0.1772, 0.292, 0.5102, 0.8598, 1.356, 2.029, 2.888, 3.933, 5.194",\
                 "0.1548, 0.1966, 0.3154, 0.5348, 0.8876, 1.387, 2.046, 2.89, 3.935, 5.188",\
                 "0.1728, 0.2184, 0.3386, 0.5602, 0.9198, 1.424, 2.086, 2.917, 3.948, 5.189",\
                 "0.1924, 0.2366, 0.3642, 0.5876, 0.9508, 1.468, 2.136, 2.969, 3.981, 5.205");
        }
      }
    }
  }

