/*
 * 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.0001599912" ;
    }

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.07955, 0.07957, 0.07961, 0.07949, 0.07946, 0.07942, 0.07951, \
                  0.07948, 0.07944, 0.07939");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01804, -0.0181, -0.01818, -0.01818, -0.01823, -0.0182, -0.01829, \
                  -0.01829, -0.0183, -0.01829");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.04243, 0.04248, 0.04249, 0.04243, 0.0425, 0.04249, 0.04253, \
                  0.04253, 0.0425, 0.04251");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01832, -0.01835, -0.01841, -0.01847, -0.01854, -0.01851, -0.01861, \
                  -0.01859, -0.0186, -0.0186");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.04244, 0.04249, 0.04254, 0.04246, 0.04245, 0.04241, 0.04256, \
                  0.04254, 0.04252, 0.0425");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01834, -0.01841, -0.01848, -0.01846, -0.01852, -0.01852, -0.01863, \
                  -0.01861, -0.01859, -0.01858");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.03881, 0.03879, 0.03888, 0.0389, 0.0388, 0.03883, 0.03896, 0.03887, \
                  0.03885, 0.03884");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01971, -0.01976, -0.01982, -0.01993, -0.01991, -0.01995, -0.02002, \
                  -0.02005, -0.02006, -0.0201");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05963, 0.0595, 0.05955, 0.05949, 0.0594, 0.0595, 0.05965, 0.05953, \
                  0.05955, 0.05956");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.04793, -0.0512, -0.0564, -0.05767, -0.05805, -0.05822, -0.05851, \
                  -0.05864, -0.05865, -0.05877");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.03601, 0.03602, 0.03616, 0.03616, 0.03618, 0.03622, 0.03631, \
                  0.03632, 0.03632, 0.0363");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.03471, -0.03447, -0.0345, -0.03418, -0.03391, -0.03349, -0.03318, \
                  -0.03276, -0.03234, -0.03202");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05936, 0.0594, 0.05934, 0.05914, 0.05948, 0.05942, 0.05958, \
                  0.05955, 0.05954, 0.05959");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.05193, -0.05521, -0.05721, -0.05777, -0.05806, -0.05828, -0.05857, \
                  -0.05865, -0.05874, -0.05877");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.0594, 0.05939, 0.05945, 0.05922, 0.05935, 0.05954, 0.05965, \
                  0.05942, 0.05963, 0.05964");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.05041, -0.0518, -0.05428, -0.05577, -0.05659, -0.05712, -0.05757, \
                  -0.05779, -0.05791, -0.0581");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05943, 0.05935, 0.05946, 0.05939, 0.05943, 0.05949, 0.05959, \
                  0.05955, 0.05962, 0.0596");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.05572, -0.05631, -0.05724, -0.0578, -0.05817, -0.05825, -0.05859, \
                  -0.05867, -0.05874, -0.05877");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2|A3)" ;
      max_capacitance : 1.814 ;
      max_transition : 4.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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.6132, 0.5852, 0.533, 0.4993, 0.4805, 0.469, 0.4614, 0.4562, 0.4527, 0.4503",\
                 "0.6103, 0.5824, 0.5298, 0.4963, 0.4778, 0.4664, 0.4588, 0.4536, 0.45, 0.4474",\
                 "0.6132, 0.585, 0.5326, 0.4991, 0.4809, 0.4695, 0.462, 0.4568, 0.4535, 0.451",\
                 "0.6407, 0.6122, 0.559, 0.5235, 0.5042, 0.4925, 0.485, 0.4799, 0.4765, 0.474",\
                 "0.7112, 0.6807, 0.6209, 0.5797, 0.5564, 0.5421, 0.5331, 0.5272, 0.5228, 0.5196",\
                 "0.8149, 0.7812, 0.7138, 0.6642, 0.6352, 0.6174, 0.6055, 0.5981, 0.593, 0.5891",\
                 "0.9567, 0.9197, 0.844, 0.7845, 0.7473, 0.7233, 0.7078, 0.6979, 0.6909, 0.6859",\
                 "1.141, 1.102, 1.015, 0.9437, 0.8966, 0.8651, 0.8446, 0.8302, 0.8204, 0.8133",\
                 "1.366, 1.325, 1.229, 1.143, 1.084, 1.044, 1.016, 0.9972, 0.9837, 0.974",\
                 "1.63, 1.587, 1.482, 1.38, 1.309, 1.26, 1.225, 1.2, 1.182, 1.17");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.2412, 0.2359, 0.2351, 0.2377, 0.2409, 0.2433, 0.2479, 0.2558, 0.2578, 0.2697",\
                 "0.2425, 0.2372, 0.2357, 0.2393, 0.2431, 0.2454, 0.2533, 0.2561, 0.2621, 0.2755",\
                 "0.2552, 0.2496, 0.2435, 0.2448, 0.2474, 0.2505, 0.2569, 0.2637, 0.2682, 0.2722",\
                 "0.2954, 0.2845, 0.2732, 0.2676, 0.2665, 0.2685, 0.2717, 0.2784, 0.2823, 0.2935",\
                 "0.361, 0.3455, 0.3237, 0.3126, 0.3072, 0.3041, 0.3073, 0.3105, 0.3165, 0.3255",\
                 "0.458, 0.4361, 0.4063, 0.3831, 0.3763, 0.37, 0.3682, 0.3681, 0.369, 0.373",\
                 "0.5864, 0.5568, 0.5179, 0.4872, 0.4656, 0.46, 0.4564, 0.4534, 0.454, 0.4544",\
                 "0.7478, 0.7128, 0.6625, 0.6221, 0.5937, 0.5774, 0.5745, 0.5697, 0.5692, 0.5692",\
                 "0.9432, 0.9025, 0.8426, 0.7931, 0.7525, 0.7264, 0.7177, 0.7162, 0.7121, 0.7107",\
                 "1.173, 1.128, 1.055, 0.9959, 0.9483, 0.915, 0.8916, 0.8825, 0.8889, 0.8813");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.6571, 0.629, 0.5765, 0.5428, 0.524, 0.5126, 0.505, 0.4995, 0.496, 0.4934",\
                 "0.6537, 0.6255, 0.5728, 0.5392, 0.5204, 0.5089, 0.5015, 0.4963, 0.4927, 0.4901",\
                 "0.6512, 0.6231, 0.5699, 0.536, 0.5174, 0.5058, 0.4977, 0.4932, 0.4894, 0.4869",\
                 "0.6758, 0.6469, 0.5915, 0.5552, 0.5351, 0.5227, 0.5144, 0.5093, 0.5053, 0.5025",\
                 "0.7401, 0.7099, 0.6505, 0.6086, 0.585, 0.5709, 0.5616, 0.5553, 0.5508, 0.5476",\
                 "0.8437, 0.8119, 0.7465, 0.6976, 0.6694, 0.6512, 0.6393, 0.6319, 0.6264, 0.6224",\
                 "0.9956, 0.9614, 0.8882, 0.8292, 0.7931, 0.7698, 0.7538, 0.743, 0.7354, 0.7303",\
                 "1.195, 1.158, 1.076, 1.004, 0.9574, 0.9265, 0.9055, 0.8904, 0.88, 0.8727",\
                 "1.436, 1.396, 1.307, 1.22, 1.163, 1.123, 1.096, 1.077, 1.063, 1.052",\
                 "1.72, 1.679, 1.582, 1.482, 1.411, 1.361, 1.327, 1.302, 1.284, 1.271");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.2856, 0.2791, 0.2739, 0.2744, 0.2763, 0.2797, 0.2851, 0.2879, 0.2938, 0.2982",\
                 "0.2853, 0.279, 0.2737, 0.2742, 0.2755, 0.2793, 0.2822, 0.29, 0.2935, 0.3011",\
                 "0.2917, 0.2847, 0.2768, 0.2759, 0.2777, 0.2811, 0.2865, 0.29, 0.2953, 0.2989",\
                 "0.3312, 0.3204, 0.3072, 0.2992, 0.2961, 0.2988, 0.3024, 0.3077, 0.3111, 0.3187",\
                 "0.3998, 0.3848, 0.3615, 0.3494, 0.3389, 0.3366, 0.3373, 0.3422, 0.3468, 0.354",\
                 "0.5026, 0.4801, 0.4506, 0.4256, 0.4159, 0.4075, 0.4039, 0.4045, 0.4065, 0.4094",\
                 "0.6413, 0.6134, 0.5734, 0.5392, 0.5171, 0.5101, 0.5032, 0.4985, 0.499, 0.5005",\
                 "0.8166, 0.7821, 0.7332, 0.6916, 0.6597, 0.6415, 0.6364, 0.6299, 0.6261, 0.6258",\
                 "1.031, 0.9906, 0.9313, 0.8812, 0.84, 0.8128, 0.7977, 0.7944, 0.7849, 0.7828",\
                 "1.283, 1.239, 1.167, 1.109, 1.06, 1.022, 0.9928, 0.9812, 0.9822, 0.9793");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.6988, 0.6708, 0.6179, 0.5843, 0.5656, 0.5542, 0.5465, 0.541, 0.5375, 0.535",\
                 "0.6953, 0.6671, 0.6144, 0.5807, 0.562, 0.5505, 0.5431, 0.5377, 0.534, 0.5315",\
                 "0.6909, 0.6626, 0.6096, 0.5753, 0.557, 0.5454, 0.538, 0.5327, 0.5293, 0.5267",\
                 "0.7065, 0.678, 0.6233, 0.5874, 0.5679, 0.5564, 0.548, 0.5426, 0.5389, 0.5362",\
                 "0.7656, 0.7357, 0.6775, 0.6373, 0.6148, 0.601, 0.5919, 0.5859, 0.5817, 0.5788",\
                 "0.8818, 0.8498, 0.785, 0.7372, 0.7082, 0.6901, 0.6783, 0.6704, 0.6647, 0.6607",\
                 "1.06, 1.026, 0.9525, 0.8915, 0.8534, 0.829, 0.812, 0.8009, 0.793, 0.7875",\
                 "1.293, 1.256, 1.174, 1.097, 1.048, 1.015, 0.9923, 0.9761, 0.9652, 0.9568",\
                 "1.575, 1.536, 1.446, 1.354, 1.291, 1.248, 1.218, 1.197, 1.182, 1.17",\
                 "1.907, 1.866, 1.767, 1.663, 1.585, 1.531, 1.494, 1.466, 1.445, 1.43");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.3266, 0.3182, 0.3099, 0.3088, 0.3105, 0.3121, 0.3175, 0.3232, 0.3263, 0.3299",\
                 "0.323, 0.3153, 0.3074, 0.3054, 0.3058, 0.3092, 0.3139, 0.3171, 0.3209, 0.3278",\
                 "0.3245, 0.3165, 0.3064, 0.304, 0.3047, 0.3064, 0.3118, 0.3181, 0.3209, 0.3288",\
                 "0.3648, 0.3536, 0.338, 0.328, 0.3231, 0.3233, 0.3272, 0.3322, 0.3367, 0.344",\
                 "0.4401, 0.4242, 0.3981, 0.3826, 0.3703, 0.3672, 0.3676, 0.3729, 0.3749, 0.3774",\
                 "0.5561, 0.5335, 0.4997, 0.4724, 0.4603, 0.4504, 0.4453, 0.4452, 0.448, 0.4509",\
                 "0.7153, 0.6867, 0.6451, 0.6063, 0.5805, 0.5706, 0.563, 0.5554, 0.5567, 0.556",\
                 "0.9216, 0.887, 0.8353, 0.7888, 0.7529, 0.7276, 0.72, 0.7087, 0.7061, 0.7043",\
                 "1.175, 1.134, 1.07, 1.014, 0.9675, 0.9385, 0.913, 0.9082, 0.8987, 0.8919",\
                 "1.477, 1.432, 1.356, 1.289, 1.235, 1.192, 1.156, 1.14, 1.134, 1.125");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.2482, 0.2753, 0.3423, 0.4371, 0.5593, 0.7125, 0.9037, 1.14, 1.427, 1.769",\
                 "0.2517, 0.2788, 0.3458, 0.4404, 0.5626, 0.7158, 0.907, 1.143, 1.431, 1.772",\
                 "0.2774, 0.3045, 0.3715, 0.466, 0.5882, 0.7414, 0.9327, 1.169, 1.456, 1.798",\
                 "0.3425, 0.3694, 0.4358, 0.5303, 0.6522, 0.8054, 0.9966, 1.233, 1.52, 1.862",\
                 "0.4441, 0.4711, 0.5378, 0.6323, 0.7545, 0.9075, 1.099, 1.335, 1.622, 1.964",\
                 "0.5745, 0.6021, 0.6693, 0.7646, 0.8875, 1.041, 1.233, 1.469, 1.756, 2.098",\
                 "0.7355, 0.765, 0.8342, 0.9301, 1.053, 1.208, 1.4, 1.636, 1.923, 2.265",\
                 "0.9254, 0.9568, 1.03, 1.129, 1.254, 1.409, 1.601, 1.838, 2.125, 2.467",\
                 "1.144, 1.178, 1.257, 1.36, 1.489, 1.647, 1.84, 2.077, 2.364, 2.706",\
                 "1.394, 1.429, 1.513, 1.622, 1.755, 1.919, 2.116, 2.355, 2.642, 2.983");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.1175, 0.1381, 0.2013, 0.3185, 0.5007, 0.755, 1.091, 1.512, 2.029, 2.645",\
                 "0.1245, 0.1449, 0.2082, 0.3254, 0.5073, 0.7624, 1.097, 1.521, 2.035, 2.651",\
                 "0.1487, 0.169, 0.2314, 0.348, 0.5298, 0.785, 1.12, 1.543, 2.058, 2.672",\
                 "0.1748, 0.1959, 0.2584, 0.374, 0.5548, 0.8099, 1.145, 1.567, 2.083, 2.698",\
                 "0.1859, 0.2084, 0.2719, 0.3858, 0.5658, 0.8196, 1.154, 1.576, 2.09, 2.706",\
                 "0.1771, 0.2015, 0.2671, 0.3812, 0.5597, 0.8129, 1.146, 1.568, 2.083, 2.697",\
                 "0.1461, 0.1725, 0.2408, 0.3556, 0.5337, 0.7858, 1.119, 1.539, 2.054, 2.667",\
                 "0.0907, 0.1192, 0.1908, 0.3068, 0.4861, 0.738, 1.071, 1.491, 2.004, 2.617",\
                 "0.0093, 0.0401, 0.1158, 0.2335, 0.4122, 0.666, 1.001, 1.421, 1.933, 2.545",\
                 "-0.1001, -0.0669, 0.0134, 0.1337, 0.3126, 0.5675, 0.9043, 1.326, 1.839, 2.451");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.0807, 0.1078, 0.1761, 0.2811, 0.4334, 0.6481, 0.9396, 1.321, 1.792, 2.357",\
                 "0.0803, 0.1082, 0.1756, 0.2808, 0.4334, 0.6487, 0.94, 1.32, 1.791, 2.357",\
                 "0.0803, 0.1078, 0.1755, 0.2807, 0.4341, 0.6481, 0.941, 1.319, 1.792, 2.355",\
                 "0.07962, 0.1072, 0.1752, 0.2813, 0.4339, 0.648, 0.9401, 1.32, 1.792, 2.357",\
                 "0.08578, 0.1126, 0.1799, 0.2852, 0.4368, 0.65, 0.9414, 1.32, 1.791, 2.356",\
                 "0.0942, 0.1208, 0.1864, 0.291, 0.4434, 0.6546, 0.9438, 1.321, 1.792, 2.358",\
                 "0.1058, 0.1334, 0.1982, 0.2984, 0.4492, 0.6602, 0.9494, 1.326, 1.793, 2.358",\
                 "0.121, 0.1504, 0.2146, 0.3128, 0.4592, 0.6658, 0.9542, 1.329, 1.797, 2.359",\
                 "0.1374, 0.1688, 0.2374, 0.334, 0.4798, 0.6816, 0.9618, 1.333, 1.8, 2.361",\
                 "0.1546, 0.1894, 0.2614, 0.359, 0.5048, 0.7076, 0.9834, 1.344, 1.804, 2.364");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.04104, 0.0694, 0.169, 0.3699, 0.6848, 1.129, 1.713, 2.447, 3.346, 4.407",\
                 "0.0409, 0.0692, 0.1691, 0.3698, 0.685, 1.128, 1.711, 2.444, 3.343, 4.408",\
                 "0.0411, 0.06972, 0.1693, 0.3699, 0.6848, 1.129, 1.71, 2.442, 3.339, 4.411",\
                 "0.04724, 0.07462, 0.1715, 0.3701, 0.6849, 1.127, 1.712, 2.447, 3.345, 4.408",\
                 "0.05546, 0.08194, 0.1756, 0.3713, 0.6852, 1.128, 1.709, 2.446, 3.339, 4.414",\
                 "0.06594, 0.09228, 0.1829, 0.374, 0.6864, 1.128, 1.709, 2.445, 3.342, 4.41",\
                 "0.0768, 0.1042, 0.1926, 0.381, 0.6906, 1.128, 1.708, 2.439, 3.333, 4.4",\
                 "0.0886, 0.1182, 0.2048, 0.3888, 0.6988, 1.136, 1.712, 2.44, 3.337, 4.4",\
                 "0.1016, 0.1322, 0.2184, 0.3974, 0.7084, 1.148, 1.722, 2.445, 3.335, 4.401",\
                 "0.1168, 0.1488, 0.2338, 0.4082, 0.7166, 1.159, 1.737, 2.458, 3.342, 4.401");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.2966, 0.3237, 0.3908, 0.4853, 0.6075, 0.7608, 0.952, 1.188, 1.476, 1.817",\
                 "0.2992, 0.3263, 0.3933, 0.488, 0.6102, 0.7634, 0.9547, 1.191, 1.478, 1.82",\
                 "0.313, 0.3401, 0.4071, 0.5017, 0.6238, 0.777, 0.9683, 1.205, 1.492, 1.834",\
                 "0.3542, 0.3812, 0.448, 0.5425, 0.6643, 0.8175, 1.009, 1.245, 1.532, 1.874",\
                 "0.4277, 0.4555, 0.5239, 0.6199, 0.7425, 0.8958, 1.087, 1.323, 1.61, 1.952",\
                 "0.5363, 0.5647, 0.6344, 0.7316, 0.8559, 1.01, 1.202, 1.438, 1.725, 2.067",\
                 "0.6741, 0.704, 0.7768, 0.8762, 1.002, 1.157, 1.35, 1.586, 1.874, 2.215",\
                 "0.8363, 0.8682, 0.9449, 1.05, 1.179, 1.337, 1.53, 1.767, 2.055, 2.396",\
                 "1.023, 1.057, 1.138, 1.248, 1.384, 1.548, 1.744, 1.982, 2.269, 2.611",\
                 "1.235, 1.27, 1.356, 1.472, 1.615, 1.786, 1.99, 2.232, 2.52, 2.861");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.1353, 0.1561, 0.2192, 0.3361, 0.5181, 0.7728, 1.108, 1.53, 2.046, 2.659",\
                 "0.1419, 0.1625, 0.2256, 0.3425, 0.5245, 0.7794, 1.115, 1.537, 2.052, 2.665",\
                 "0.1656, 0.186, 0.2488, 0.3653, 0.547, 0.8021, 1.137, 1.56, 2.074, 2.688",\
                 "0.1985, 0.2196, 0.282, 0.3972, 0.5781, 0.8325, 1.167, 1.59, 2.105, 2.718",\
                 "0.2182, 0.2407, 0.3038, 0.4179, 0.5974, 0.8511, 1.186, 1.607, 2.123, 2.735",\
                 "0.2207, 0.2445, 0.3099, 0.4231, 0.6016, 0.8541, 1.188, 1.609, 2.123, 2.738",\
                 "0.2036, 0.2299, 0.297, 0.4109, 0.5892, 0.8409, 1.174, 1.594, 2.109, 2.722",\
                 "0.1651, 0.1935, 0.2641, 0.3795, 0.5575, 0.8094, 1.142, 1.562, 2.075, 2.688",\
                 "0.1046, 0.1352, 0.2094, 0.3259, 0.5054, 0.7585, 1.092, 1.511, 2.024, 2.636",\
                 "0.021, 0.0535, 0.1318, 0.2512, 0.4305, 0.6844, 1.02, 1.44, 1.953, 2.565");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.08048, 0.1081, 0.1758, 0.2812, 0.4337, 0.6495, 0.9398, 1.32, 1.792, 2.356",\
                 "0.08058, 0.1081, 0.1759, 0.2812, 0.4335, 0.6486, 0.9406, 1.32, 1.791, 2.357",\
                 "0.08084, 0.1081, 0.1759, 0.2812, 0.4337, 0.6483, 0.94, 1.32, 1.79, 2.357",\
                 "0.08164, 0.1092, 0.1766, 0.282, 0.4342, 0.6484, 0.9398, 1.32, 1.791, 2.358",\
                 "0.08714, 0.1156, 0.1832, 0.2871, 0.438, 0.6512, 0.9426, 1.322, 1.792, 2.356",\
                 "0.093, 0.122, 0.1904, 0.2944, 0.4454, 0.6554, 0.9438, 1.321, 1.792, 2.358",\
                 "0.1046, 0.1346, 0.2034, 0.3052, 0.4536, 0.6624, 0.9494, 1.325, 1.791, 2.358",\
                 "0.118, 0.1508, 0.2228, 0.326, 0.4718, 0.6742, 0.9564, 1.329, 1.796, 2.359",\
                 "0.1334, 0.1666, 0.2438, 0.3504, 0.499, 0.6996, 0.973, 1.337, 1.799, 2.36",\
                 "0.149, 0.185, 0.266, 0.3774, 0.5304, 0.7354, 1.006, 1.358, 1.81, 2.364");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.04236, 0.0709, 0.1701, 0.3702, 0.6853, 1.127, 1.708, 2.441, 3.336, 4.402",\
                 "0.04244, 0.0709, 0.1701, 0.3704, 0.6851, 1.127, 1.712, 2.442, 3.337, 4.4",\
                 "0.04216, 0.07076, 0.1701, 0.3702, 0.6852, 1.127, 1.709, 2.445, 3.336, 4.406",\
                 "0.04734, 0.07488, 0.1717, 0.3704, 0.6854, 1.127, 1.708, 2.442, 3.337, 4.4",\
                 "0.05542, 0.08204, 0.1757, 0.3719, 0.6849, 1.129, 1.711, 2.441, 3.336, 4.4",\
                 "0.0643, 0.09072, 0.1825, 0.3748, 0.6864, 1.128, 1.708, 2.445, 3.335, 4.407",\
                 "0.0758, 0.1024, 0.1914, 0.3806, 0.6906, 1.13, 1.709, 2.439, 3.334, 4.406",\
                 "0.0866, 0.1144, 0.2026, 0.3878, 0.6988, 1.137, 1.711, 2.44, 3.337, 4.402",\
                 "0.0988, 0.128, 0.2152, 0.3968, 0.7082, 1.146, 1.721, 2.445, 3.335, 4.403",\
                 "0.1124, 0.1444, 0.2298, 0.4066, 0.7168, 1.161, 1.737, 2.456, 3.341, 4.401");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.3165, 0.3437, 0.4107, 0.5052, 0.6275, 0.7807, 0.9719, 1.208, 1.495, 1.837",\
                 "0.32, 0.3471, 0.4141, 0.5089, 0.6309, 0.7842, 0.9754, 1.212, 1.499, 1.841",\
                 "0.3311, 0.3582, 0.4251, 0.5198, 0.642, 0.7952, 0.9865, 1.223, 1.51, 1.852",\
                 "0.3577, 0.3847, 0.4515, 0.5462, 0.668, 0.8211, 1.012, 1.249, 1.536, 1.878",\
                 "0.4108, 0.4383, 0.5064, 0.6019, 0.7246, 0.8778, 1.069, 1.305, 1.592, 1.934",\
                 "0.4969, 0.5251, 0.595, 0.6919, 0.8159, 0.9703, 1.162, 1.398, 1.685, 2.027",\
                 "0.6076, 0.6381, 0.7119, 0.8127, 0.9395, 1.095, 1.288, 1.524, 1.811, 2.152",\
                 "0.737, 0.7692, 0.8484, 0.9556, 1.089, 1.25, 1.444, 1.681, 1.967, 2.309",\
                 "0.8841, 0.9186, 1.003, 1.117, 1.258, 1.427, 1.628, 1.867, 2.154, 2.496",\
                 "1.049, 1.086, 1.175, 1.296, 1.445, 1.624, 1.835, 2.083, 2.373, 2.714");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.1439, 0.1651, 0.2291, 0.3467, 0.5289, 0.7838, 1.119, 1.541, 2.056, 2.67",\
                 "0.1497, 0.1709, 0.2349, 0.3524, 0.5346, 0.7896, 1.125, 1.547, 2.062, 2.676",\
                 "0.1735, 0.1944, 0.2579, 0.3753, 0.5573, 0.8123, 1.147, 1.57, 2.084, 2.698",\
                 "0.2112, 0.2326, 0.2956, 0.4111, 0.5921, 0.8465, 1.181, 1.603, 2.119, 2.732",\
                 "0.2377, 0.2606, 0.3243, 0.4383, 0.618, 0.8719, 1.206, 1.628, 2.143, 2.757",\
                 "0.25, 0.2742, 0.3398, 0.4533, 0.6316, 0.8847, 1.218, 1.639, 2.154, 2.768",\
                 "0.2456, 0.2721, 0.3401, 0.4541, 0.6322, 0.8835, 1.217, 1.637, 2.151, 2.764",\
                 "0.2238, 0.2526, 0.3243, 0.4396, 0.6178, 0.8697, 1.202, 1.621, 2.135, 2.747",\
                 "0.184, 0.215, 0.2907, 0.4082, 0.5872, 0.841, 1.173, 1.592, 2.104, 2.716",\
                 "0.1268, 0.1603, 0.2399, 0.3597, 0.5394, 0.7943, 1.129, 1.549, 2.061, 2.672");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.08052, 0.1081, 0.1758, 0.2812, 0.4337, 0.6494, 0.9397, 1.319, 1.792, 2.356",\
                 "0.08056, 0.108, 0.1758, 0.2811, 0.4334, 0.6481, 0.94, 1.32, 1.792, 2.355",\
                 "0.0808, 0.108, 0.1765, 0.2813, 0.4341, 0.6481, 0.9401, 1.319, 1.792, 2.356",\
                 "0.0814, 0.1086, 0.1763, 0.2816, 0.4345, 0.6491, 0.9406, 1.318, 1.791, 2.356",\
                 "0.08584, 0.1138, 0.1816, 0.2859, 0.4366, 0.6504, 0.9416, 1.32, 1.79, 2.358",\
                 "0.0928, 0.1214, 0.1898, 0.2942, 0.444, 0.6546, 0.9442, 1.322, 1.792, 2.356",\
                 "0.1064, 0.1372, 0.2074, 0.3096, 0.457, 0.6638, 0.9494, 1.325, 1.791, 2.357",\
                 "0.1216, 0.1544, 0.2304, 0.3364, 0.483, 0.6836, 0.9598, 1.329, 1.794, 2.357",\
                 "0.138, 0.1738, 0.2546, 0.3672, 0.519, 0.7216, 0.9894, 1.345, 1.801, 2.358",\
                 "0.156, 0.1936, 0.2802, 0.398, 0.5568, 0.7686, 1.039, 1.383, 1.822, 2.368");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.01351, 0.05742, 0.1413, 0.2719, 0.4553, 0.6965, 1, 1.371, 1.814");
          values("0.04482, 0.07334, 0.1728, 0.3725, 0.6861, 1.129, 1.709, 2.442, 3.336, 4.401",\
                 "0.0445, 0.07318, 0.1728, 0.3721, 0.6865, 1.127, 1.709, 2.444, 3.34, 4.402",\
                 "0.04402, 0.07256, 0.1727, 0.3725, 0.6862, 1.128, 1.71, 2.442, 3.335, 4.401",\
                 "0.04918, 0.07648, 0.1737, 0.3721, 0.6864, 1.128, 1.71, 2.44, 3.337, 4.402",\
                 "0.05712, 0.08378, 0.1775, 0.3733, 0.686, 1.128, 1.711, 2.441, 3.339, 4.409",\
                 "0.06654, 0.09354, 0.1845, 0.3768, 0.6884, 1.128, 1.708, 2.44, 3.335, 4.401",\
                 "0.078, 0.1048, 0.1938, 0.3824, 0.6932, 1.13, 1.709, 2.441, 3.335, 4.401",\
                 "0.0904, 0.119, 0.2054, 0.3916, 0.7016, 1.137, 1.713, 2.442, 3.34, 4.407",\
                 "0.104, 0.1354, 0.2198, 0.4016, 0.7126, 1.151, 1.722, 2.447, 3.336, 4.402",\
                 "0.1182, 0.149, 0.2358, 0.4136, 0.7234, 1.166, 1.739, 2.459, 3.342, 4.403");
        }
      }
    }
  }

