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

  cell(gf180mcu_fd_sc_mcu7t5v0__and3_2) {
    area : 24.147200 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.04507, 0.04493, 0.04478, 0.04473, 0.04466, 0.04469, 0.04471, \
                  0.04472, 0.04471, 0.0447");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.0263, -0.02624, -0.02622, -0.02625, -0.02617, -0.02612, -0.02627, \
                  -0.02623, -0.02628, -0.02627");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.04505, 0.04496, 0.04485, 0.04474, 0.04465, 0.04469, 0.04473, \
                  0.04479, 0.04476, 0.04472");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.0263, -0.02627, -0.02625, -0.02626, -0.02621, -0.0262, -0.02625, \
                  -0.02629, -0.02628, -0.02631");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.04486, 0.04486, 0.04474, 0.04469, 0.04469, 0.04468, 0.04471, \
                  0.04479, 0.04471, 0.04474");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.02549, 0.02556, 0.02573, 0.02566, 0.02585, 0.02583, 0.02588, \
                  0.02588, 0.02592, 0.02597");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.06051, 0.06449, 0.0663, 0.06891, 0.07091, 0.07254, 0.07373, \
                  0.07437, 0.07489, 0.07527");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.03954, -0.03946, -0.0394, -0.03928, -0.03927, -0.03921, -0.03935, \
                  -0.03935, -0.03942, -0.03935");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.0475, 0.04317, 0.04052, 0.0396, 0.03939, 0.03941, 0.03943, 0.03938, \
                  0.0394, 0.0394");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.03943, -0.0394, -0.0394, -0.03926, -0.03929, -0.03924, -0.03934, \
                  -0.03938, -0.03936, -0.03938");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.04483, 0.04486, 0.04477, 0.04474, 0.04463, 0.04461, 0.04466, \
                  0.04466, 0.04462, 0.04464");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.02708, -0.02706, -0.02707, -0.02703, -0.02705, -0.02704, -0.02716, \
                  -0.02722, -0.0272, -0.02727");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.03978, 0.0396, 0.03957, 0.03944, 0.0394, 0.0393, 0.03948, 0.03948, \
                  0.03942, 0.03945");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.03948, -0.03946, -0.03931, -0.03922, -0.03923, -0.03925, -0.03927, \
                  -0.03934, -0.03934, -0.03942");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.04349, 0.04071, 0.03955, 0.0395, 0.03941, 0.03939, 0.03946, \
                  0.03941, 0.03945, 0.03944");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.03945, -0.03943, -0.03936, -0.03935, -0.03922, -0.03925, -0.03935, \
                  -0.03936, -0.03934, -0.0394");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.04232, 0.04078, 0.03961, 0.03943, 0.03939, 0.03935, 0.03948, \
                  0.03942, 0.03943, 0.03946");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.03949, -0.03947, -0.03938, -0.03927, -0.03926, -0.03924, -0.03936, \
                  -0.03932, -0.03934, -0.03939");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 0.4671 ;
      max_transition : 2.6 ;
      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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.4503, 0.438, 0.4127, 0.3975, 0.3865, 0.3801, 0.3758, 0.3728, 0.3705, 0.369",\
                 "0.4503, 0.4375, 0.4133, 0.3971, 0.387, 0.3807, 0.376, 0.3732, 0.3708, 0.3694",\
                 "0.4571, 0.4444, 0.4192, 0.4027, 0.3928, 0.3856, 0.3814, 0.3796, 0.3761, 0.3746",\
                 "0.4977, 0.4839, 0.4551, 0.4339, 0.4212, 0.4129, 0.4071, 0.4031, 0.4002, 0.399",\
                 "0.5892, 0.5725, 0.5366, 0.5062, 0.4861, 0.4721, 0.4626, 0.4562, 0.4517, 0.4486",\
                 "0.7269, 0.7074, 0.6621, 0.6208, 0.5903, 0.5691, 0.554, 0.5435, 0.5358, 0.5304",\
                 "0.907, 0.8848, 0.832, 0.7778, 0.7366, 0.7059, 0.6836, 0.6679, 0.6561, 0.6475",\
                 "1.129, 1.105, 1.045, 0.9782, 0.924, 0.8834, 0.853, 0.8301, 0.8134, 0.8009",\
                 "1.391, 1.366, 1.299, 1.222, 1.156, 1.104, 1.063, 1.033, 1.01, 0.9926",\
                 "1.697, 1.671, 1.6, 1.511, 1.433, 1.369, 1.318, 1.279, 1.248, 1.225");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.3324, 0.3175, 0.2897, 0.2704, 0.2578, 0.2498, 0.2455, 0.2461, 0.2475, 0.2482",\
                 "0.3319, 0.3171, 0.2893, 0.2698, 0.257, 0.2495, 0.2449, 0.2456, 0.2475, 0.2477",\
                 "0.338, 0.323, 0.2954, 0.2754, 0.2625, 0.2545, 0.2493, 0.2478, 0.2519, 0.2521",\
                 "0.3728, 0.357, 0.3279, 0.3058, 0.2894, 0.2799, 0.2735, 0.2731, 0.2728, 0.2752",\
                 "0.4445, 0.428, 0.3961, 0.3683, 0.3475, 0.3334, 0.3247, 0.3198, 0.3212, 0.3197",\
                 "0.558, 0.5397, 0.5007, 0.4676, 0.442, 0.4209, 0.4066, 0.3974, 0.3976, 0.394",\
                 "0.7104, 0.6904, 0.6453, 0.6035, 0.5724, 0.5468, 0.5249, 0.5101, 0.5032, 0.5007",\
                 "0.9004, 0.8795, 0.8258, 0.7782, 0.7361, 0.7038, 0.6811, 0.6597, 0.6462, 0.636",\
                 "1.13, 1.106, 1.049, 0.9923, 0.9413, 0.8986, 0.8681, 0.8489, 0.8272, 0.812",\
                 "1.397, 1.372, 1.309, 1.24, 1.187, 1.136, 1.096, 1.066, 1.048, 1.027");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.5175, 0.504, 0.4757, 0.4547, 0.4416, 0.4326, 0.4267, 0.4226, 0.4198, 0.4178",\
                 "0.5174, 0.5039, 0.4749, 0.4545, 0.4411, 0.4323, 0.4264, 0.4224, 0.4197, 0.4175",\
                 "0.5236, 0.5102, 0.4813, 0.4601, 0.4467, 0.4378, 0.4321, 0.4282, 0.4252, 0.4231",\
                 "0.5626, 0.5481, 0.5165, 0.4921, 0.4762, 0.4653, 0.4583, 0.4535, 0.4501, 0.4478",\
                 "0.6571, 0.6403, 0.6019, 0.5683, 0.5447, 0.5287, 0.5179, 0.5104, 0.5052, 0.5012",\
                 "0.8014, 0.7824, 0.7364, 0.6915, 0.6573, 0.6333, 0.616, 0.6039, 0.5952, 0.5889",\
                 "0.9925, 0.9712, 0.9176, 0.8595, 0.8152, 0.7804, 0.7552, 0.7365, 0.7239, 0.7136",\
                 "1.228, 1.204, 1.144, 1.074, 1.017, 0.9717, 0.9366, 0.9109, 0.8915, 0.877",\
                 "1.506, 1.481, 1.415, 1.335, 1.265, 1.208, 1.162, 1.127, 1.101, 1.081",\
                 "1.83, 1.804, 1.733, 1.643, 1.559, 1.49, 1.433, 1.389, 1.354, 1.327");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.332, 0.3172, 0.2895, 0.2701, 0.2576, 0.2497, 0.246, 0.2456, 0.248, 0.2477",\
                 "0.3308, 0.3155, 0.2884, 0.2689, 0.2558, 0.2483, 0.2433, 0.2412, 0.2464, 0.2455",\
                 "0.3342, 0.3192, 0.2912, 0.2715, 0.2591, 0.2507, 0.246, 0.2461, 0.2486, 0.2499",\
                 "0.3645, 0.3487, 0.3196, 0.297, 0.2819, 0.2724, 0.2669, 0.2643, 0.2634, 0.2691",\
                 "0.4342, 0.4178, 0.3853, 0.3595, 0.3386, 0.3255, 0.3159, 0.3138, 0.3135, 0.3126",\
                 "0.5489, 0.5313, 0.4923, 0.4587, 0.4348, 0.4137, 0.3989, 0.3924, 0.3888, 0.3863",\
                 "0.7044, 0.6858, 0.6391, 0.5984, 0.5646, 0.5429, 0.5199, 0.5052, 0.4983, 0.4941",\
                 "0.8981, 0.8776, 0.8261, 0.7776, 0.7339, 0.7021, 0.6811, 0.6608, 0.6457, 0.6349",\
                 "1.132, 1.11, 1.054, 0.996, 0.9449, 0.9042, 0.8741, 0.8533, 0.8332, 0.8197",\
                 "1.404, 1.38, 1.321, 1.254, 1.194, 1.147, 1.106, 1.077, 1.061, 1.039");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.5831, 0.5686, 0.5367, 0.5112, 0.4953, 0.4836, 0.4762, 0.4709, 0.4672, 0.4645",\
                 "0.5825, 0.5682, 0.5362, 0.511, 0.4944, 0.483, 0.4755, 0.4703, 0.4665, 0.4638",\
                 "0.589, 0.5746, 0.5424, 0.5167, 0.5006, 0.4889, 0.4813, 0.4762, 0.4725, 0.4698",\
                 "0.6283, 0.6132, 0.5791, 0.5501, 0.5309, 0.5181, 0.5095, 0.5032, 0.4991, 0.496",\
                 "0.7255, 0.709, 0.6683, 0.6313, 0.6048, 0.5864, 0.5739, 0.565, 0.5586, 0.554",\
                 "0.879, 0.8597, 0.812, 0.7645, 0.7271, 0.6993, 0.68, 0.6661, 0.6561, 0.6486",\
                 "1.085, 1.063, 1.008, 0.9478, 0.8992, 0.8614, 0.8323, 0.8116, 0.7961, 0.7852",\
                 "1.339, 1.316, 1.254, 1.183, 1.121, 1.072, 1.032, 1.003, 0.9811, 0.9645",\
                 "1.643, 1.618, 1.552, 1.468, 1.393, 1.332, 1.282, 1.242, 1.212, 1.189",\
                 "1.998, 1.972, 1.901, 1.809, 1.721, 1.646, 1.583, 1.532, 1.493, 1.461");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.332, 0.3173, 0.2894, 0.2701, 0.2576, 0.2497, 0.2449, 0.2456, 0.248, 0.2488",\
                 "0.3309, 0.3158, 0.2875, 0.2687, 0.2561, 0.2489, 0.2433, 0.2428, 0.2447, 0.2466",\
                 "0.3313, 0.3168, 0.2886, 0.2689, 0.2563, 0.2485, 0.2427, 0.2423, 0.2464, 0.246",\
                 "0.3554, 0.3402, 0.3114, 0.2898, 0.2756, 0.2664, 0.262, 0.2593, 0.2623, 0.2614",\
                 "0.4223, 0.406, 0.3747, 0.3499, 0.3298, 0.3175, 0.3093, 0.3072, 0.3074, 0.3054",\
                 "0.5388, 0.5204, 0.4822, 0.4493, 0.4282, 0.408, 0.394, 0.3869, 0.3855, 0.3841",\
                 "0.699, 0.6798, 0.6344, 0.5934, 0.5609, 0.5408, 0.5205, 0.5063, 0.4988, 0.4952",\
                 "0.9012, 0.881, 0.8308, 0.7797, 0.7372, 0.7077, 0.6877, 0.6691, 0.6545, 0.6459",\
                 "1.144, 1.124, 1.069, 1.008, 0.9579, 0.9194, 0.8895, 0.8715, 0.853, 0.8367",\
                 "1.43, 1.409, 1.351, 1.282, 1.223, 1.172, 1.133, 1.109, 1.092, 1.072");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.1301, 0.1424, 0.1758, 0.2263, 0.2967, 0.3919, 0.5166, 0.674, 0.8663, 1.096",\
                 "0.1339, 0.1462, 0.1794, 0.2301, 0.3004, 0.3957, 0.5204, 0.6777, 0.87, 1.099",\
                 "0.1495, 0.1617, 0.1949, 0.2454, 0.3158, 0.411, 0.5357, 0.6928, 0.8853, 1.115",\
                 "0.1835, 0.1958, 0.2286, 0.2787, 0.3488, 0.4438, 0.5683, 0.7255, 0.9177, 1.147",\
                 "0.2303, 0.2434, 0.2774, 0.3281, 0.3979, 0.4923, 0.6163, 0.773, 0.9649, 1.194",\
                 "0.2835, 0.2981, 0.3349, 0.3875, 0.4583, 0.5522, 0.6753, 0.8313, 1.023, 1.251",\
                 "0.3428, 0.3585, 0.3987, 0.4544, 0.5271, 0.6218, 0.7442, 0.8996, 1.09, 1.318",\
                 "0.4076, 0.4243, 0.4676, 0.5273, 0.6023, 0.6995, 0.8243, 0.9791, 1.169, 1.397",\
                 "0.4782, 0.4968, 0.5434, 0.6059, 0.6843, 0.784, 0.9101, 1.068, 1.258, 1.485",\
                 "0.5545, 0.5742, 0.624, 0.6907, 0.7725, 0.8741, 1.002, 1.163, 1.357, 1.585");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.1555, 0.1702, 0.2117, 0.2821, 0.3881, 0.5365, 0.7324, 0.9802, 1.283, 1.643",\
                 "0.1574, 0.1722, 0.2137, 0.284, 0.39, 0.5385, 0.7343, 0.9821, 1.285, 1.646",\
                 "0.1671, 0.1818, 0.2234, 0.2935, 0.3995, 0.5479, 0.7439, 0.9913, 1.295, 1.656",\
                 "0.1885, 0.2033, 0.2446, 0.3143, 0.4196, 0.5676, 0.7634, 1.011, 1.313, 1.675",\
                 "0.2137, 0.2288, 0.2704, 0.3399, 0.4447, 0.5917, 0.7868, 1.034, 1.337, 1.696",\
                 "0.2395, 0.2551, 0.2977, 0.3669, 0.4711, 0.6174, 0.8115, 1.057, 1.36, 1.719",\
                 "0.2621, 0.2784, 0.3228, 0.3927, 0.4972, 0.6427, 0.836, 1.081, 1.382, 1.742",\
                 "0.2796, 0.297, 0.343, 0.415, 0.5203, 0.6668, 0.8596, 1.104, 1.404, 1.762",\
                 "0.2922, 0.3105, 0.3592, 0.4325, 0.5392, 0.6872, 0.8817, 1.126, 1.425, 1.783",\
                 "0.2982, 0.3178, 0.3688, 0.4437, 0.5517, 0.7014, 0.8985, 1.145, 1.445, 1.802");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.04492, 0.05824, 0.09394, 0.1578, 0.2598, 0.4115, 0.615, 0.8756, 1.192, 1.57",\
                 "0.04502, 0.05808, 0.09392, 0.1578, 0.2597, 0.4115, 0.6146, 0.8757, 1.193, 1.569",\
                 "0.04518, 0.05808, 0.09396, 0.1577, 0.2603, 0.4114, 0.6152, 0.8756, 1.192, 1.571",\
                 "0.047, 0.0599, 0.09534, 0.1587, 0.2603, 0.4117, 0.6147, 0.8756, 1.192, 1.571",\
                 "0.05506, 0.06828, 0.1036, 0.1635, 0.2631, 0.4119, 0.6152, 0.8753, 1.192, 1.57",\
                 "0.06634, 0.08076, 0.1159, 0.1747, 0.2692, 0.4145, 0.6164, 0.876, 1.191, 1.57",\
                 "0.07808, 0.09416, 0.1319, 0.1892, 0.282, 0.422, 0.6186, 0.8762, 1.192, 1.571",\
                 "0.0908, 0.109, 0.149, 0.2068, 0.2976, 0.437, 0.6292, 0.8798, 1.192, 1.57",\
                 "0.1042, 0.1228, 0.1668, 0.2262, 0.3154, 0.4538, 0.6472, 0.8944, 1.201, 1.572",\
                 "0.1174, 0.1386, 0.1866, 0.2472, 0.3344, 0.4718, 0.6658, 0.9174, 1.221, 1.585");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.05464, 0.07296, 0.1284, 0.24, 0.4182, 0.6756, 1.017, 1.445, 1.973, 2.598",\
                 "0.05478, 0.07282, 0.1284, 0.2399, 0.4185, 0.6755, 1.017, 1.446, 1.973, 2.6",\
                 "0.05508, 0.07272, 0.1284, 0.2395, 0.418, 0.6758, 1.017, 1.447, 1.974, 2.601",\
                 "0.05556, 0.07346, 0.1294, 0.2404, 0.4181, 0.6748, 1.017, 1.446, 1.971, 2.602",\
                 "0.05858, 0.07662, 0.1319, 0.2425, 0.4195, 0.6761, 1.017, 1.446, 1.974, 2.599",\
                 "0.06434, 0.08216, 0.1364, 0.245, 0.4223, 0.6766, 1.016, 1.446, 1.972, 2.597",\
                 "0.0704, 0.08886, 0.1444, 0.2519, 0.4268, 0.6796, 1.018, 1.446, 1.973, 2.596",\
                 "0.0782, 0.0992, 0.1552, 0.2598, 0.436, 0.6876, 1.022, 1.448, 1.973, 2.595",\
                 "0.0884, 0.1078, 0.1644, 0.2688, 0.4466, 0.701, 1.033, 1.455, 1.974, 2.598",\
                 "0.0978, 0.1196, 0.1762, 0.2788, 0.4568, 0.7156, 1.053, 1.47, 1.984, 2.6");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.1442, 0.1573, 0.1922, 0.2438, 0.3146, 0.4098, 0.5344, 0.6915, 0.8838, 1.113",\
                 "0.1477, 0.1608, 0.1958, 0.2474, 0.3181, 0.4133, 0.5379, 0.695, 0.8872, 1.116",\
                 "0.1633, 0.1763, 0.2112, 0.2628, 0.3335, 0.4286, 0.5532, 0.7104, 0.9025, 1.132",\
                 "0.1988, 0.2117, 0.2462, 0.2974, 0.3678, 0.4628, 0.5871, 0.7441, 0.9363, 1.165",\
                 "0.2508, 0.2645, 0.3, 0.3516, 0.4216, 0.5158, 0.6396, 0.7961, 0.988, 1.217",\
                 "0.3127, 0.3279, 0.3657, 0.4191, 0.4897, 0.5836, 0.7065, 0.8624, 1.054, 1.282",\
                 "0.3833, 0.3996, 0.4408, 0.4974, 0.5696, 0.6637, 0.7861, 0.941, 1.132, 1.36",\
                 "0.4624, 0.4799, 0.5246, 0.5845, 0.6598, 0.7555, 0.8785, 1.033, 1.223, 1.45",\
                 "0.55, 0.5694, 0.6172, 0.681, 0.7594, 0.8574, 0.9821, 1.138, 1.327, 1.553",\
                 "0.6479, 0.668, 0.719, 0.7877, 0.8689, 0.9691, 1.096, 1.253, 1.445, 1.671");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.1682, 0.183, 0.2244, 0.2947, 0.4008, 0.5492, 0.7451, 0.9928, 1.296, 1.656",\
                 "0.169, 0.1837, 0.2253, 0.2956, 0.4015, 0.5499, 0.746, 0.9933, 1.296, 1.657",\
                 "0.1731, 0.1878, 0.2293, 0.2996, 0.4055, 0.5539, 0.7497, 0.9977, 1.301, 1.661",\
                 "0.1854, 0.2002, 0.2417, 0.3115, 0.417, 0.5651, 0.7609, 1.008, 1.311, 1.673",\
                 "0.203, 0.2182, 0.2601, 0.3297, 0.4347, 0.5818, 0.777, 1.024, 1.327, 1.687",\
                 "0.2196, 0.2356, 0.2792, 0.3489, 0.4531, 0.5994, 0.7935, 1.04, 1.341, 1.702",\
                 "0.2309, 0.248, 0.2933, 0.3646, 0.4697, 0.6155, 0.8087, 1.054, 1.355, 1.714",\
                 "0.2352, 0.2533, 0.3011, 0.3741, 0.4806, 0.6282, 0.8215, 1.066, 1.366, 1.724",\
                 "0.2312, 0.2504, 0.3005, 0.376, 0.484, 0.6337, 0.8297, 1.075, 1.373, 1.732",\
                 "0.2182, 0.2385, 0.2912, 0.369, 0.478, 0.6303, 0.8292, 1.077, 1.378, 1.735");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.04942, 0.06308, 0.09968, 0.1613, 0.2616, 0.4122, 0.6154, 0.8752, 1.191, 1.57",\
                 "0.04944, 0.06344, 0.09936, 0.1614, 0.2616, 0.4123, 0.6156, 0.876, 1.192, 1.569",\
                 "0.0494, 0.06324, 0.09962, 0.1612, 0.2617, 0.4123, 0.6154, 0.8758, 1.192, 1.57",\
                 "0.05046, 0.06422, 0.1005, 0.1622, 0.2627, 0.4123, 0.615, 0.8754, 1.191, 1.57",\
                 "0.05782, 0.0718, 0.1076, 0.1665, 0.2648, 0.4129, 0.6159, 0.8754, 1.192, 1.57",\
                 "0.06874, 0.08392, 0.1206, 0.1767, 0.2702, 0.4153, 0.6168, 0.8754, 1.192, 1.571",\
                 "0.08124, 0.09804, 0.1366, 0.1914, 0.2818, 0.4212, 0.6182, 0.8758, 1.193, 1.57",\
                 "0.0938, 0.1126, 0.1542, 0.2104, 0.2974, 0.4344, 0.626, 0.878, 1.193, 1.571",\
                 "0.1068, 0.1276, 0.1726, 0.2302, 0.3158, 0.451, 0.6414, 0.8886, 1.197, 1.571",\
                 "0.1212, 0.1436, 0.191, 0.2512, 0.3354, 0.4684, 0.659, 0.9072, 1.212, 1.579");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.05466, 0.07286, 0.1284, 0.2395, 0.418, 0.6755, 1.016, 1.445, 1.972, 2.6",\
                 "0.05488, 0.07306, 0.1284, 0.2398, 0.4185, 0.6759, 1.016, 1.447, 1.972, 2.599",\
                 "0.05456, 0.07278, 0.1284, 0.24, 0.4182, 0.6757, 1.017, 1.447, 1.974, 2.601",\
                 "0.05576, 0.07366, 0.1294, 0.2404, 0.4186, 0.6758, 1.015, 1.446, 1.973, 2.602",\
                 "0.0588, 0.07714, 0.1322, 0.2421, 0.4194, 0.675, 1.017, 1.445, 1.973, 2.601",\
                 "0.06466, 0.08356, 0.1379, 0.2461, 0.4218, 0.6773, 1.017, 1.447, 1.974, 2.599",\
                 "0.07134, 0.09154, 0.1468, 0.2541, 0.4282, 0.68, 1.017, 1.447, 1.973, 2.596",\
                 "0.0794, 0.0994, 0.1568, 0.2632, 0.4396, 0.6908, 1.023, 1.448, 1.971, 2.597",\
                 "0.0886, 0.1092, 0.168, 0.273, 0.4512, 0.706, 1.037, 1.456, 1.974, 2.6",\
                 "0.0968, 0.1184, 0.1796, 0.2848, 0.4628, 0.7218, 1.059, 1.475, 1.986, 2.601");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.1561, 0.1699, 0.2061, 0.2591, 0.3304, 0.4258, 0.5503, 0.7073, 0.8994, 1.129",\
                 "0.1595, 0.1732, 0.2095, 0.2622, 0.3338, 0.4291, 0.5536, 0.7106, 0.9027, 1.132",\
                 "0.1753, 0.189, 0.2252, 0.2781, 0.3494, 0.4447, 0.5692, 0.7262, 0.9183, 1.148",\
                 "0.212, 0.2257, 0.2616, 0.3139, 0.385, 0.4801, 0.6043, 0.7612, 0.9532, 1.182",\
                 "0.2691, 0.2832, 0.3199, 0.3722, 0.4427, 0.5371, 0.6608, 0.8172, 1.009, 1.238",\
                 "0.3397, 0.3548, 0.3939, 0.4479, 0.5188, 0.6125, 0.7352, 0.8909, 1.082, 1.31",\
                 "0.4222, 0.4387, 0.4809, 0.5382, 0.6105, 0.7045, 0.8263, 0.9811, 1.171, 1.399",\
                 "0.5169, 0.5351, 0.5807, 0.6406, 0.7161, 0.8114, 0.9334, 1.087, 1.277, 1.503",\
                 "0.6245, 0.6438, 0.693, 0.7578, 0.8354, 0.9324, 1.056, 1.21, 1.399, 1.625",\
                 "0.7456, 0.7662, 0.8185, 0.8875, 0.9688, 1.068, 1.193, 1.35, 1.539, 1.765");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.1759, 0.1906, 0.2321, 0.3024, 0.4085, 0.5569, 0.7527, 1.001, 1.303, 1.664",\
                 "0.1763, 0.191, 0.2324, 0.3028, 0.4089, 0.5572, 0.7534, 1.001, 1.304, 1.665",\
                 "0.1765, 0.1914, 0.2328, 0.3031, 0.409, 0.5573, 0.7534, 1.001, 1.304, 1.665",\
                 "0.1799, 0.1947, 0.2361, 0.3062, 0.4119, 0.56, 0.7558, 1.004, 1.306, 1.667",\
                 "0.1861, 0.2014, 0.2435, 0.3132, 0.4183, 0.5658, 0.761, 1.008, 1.311, 1.671",\
                 "0.1892, 0.2052, 0.2495, 0.3199, 0.4247, 0.5712, 0.7656, 1.012, 1.314, 1.675",\
                 "0.1846, 0.2019, 0.2484, 0.3208, 0.4273, 0.5742, 0.7675, 1.013, 1.314, 1.674",\
                 "0.1705, 0.1887, 0.2377, 0.3127, 0.421, 0.5705, 0.7649, 1.009, 1.309, 1.668",\
                 "0.145, 0.1645, 0.216, 0.2932, 0.4036, 0.556, 0.7541, 1, 1.3, 1.658",\
                 "0.1073, 0.1279, 0.1817, 0.2625, 0.3747, 0.5291, 0.7309, 0.9818, 1.284, 1.641");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.05388, 0.06826, 0.1053, 0.1658, 0.2647, 0.4133, 0.6161, 0.8748, 1.192, 1.57",\
                 "0.0536, 0.06806, 0.1052, 0.1659, 0.2645, 0.4133, 0.6162, 0.8756, 1.192, 1.569",\
                 "0.05358, 0.06844, 0.1053, 0.1658, 0.2655, 0.4133, 0.6157, 0.8751, 1.193, 1.571",\
                 "0.05416, 0.06868, 0.1057, 0.1667, 0.2656, 0.4134, 0.616, 0.875, 1.192, 1.571",\
                 "0.06064, 0.07568, 0.1115, 0.1701, 0.2679, 0.4144, 0.6171, 0.8756, 1.191, 1.57",\
                 "0.0714, 0.087, 0.1239, 0.1801, 0.2725, 0.4163, 0.617, 0.8766, 1.192, 1.57",\
                 "0.0834, 0.1008, 0.1404, 0.1946, 0.2834, 0.4216, 0.619, 0.8756, 1.193, 1.57",\
                 "0.0964, 0.1154, 0.1568, 0.2126, 0.2984, 0.4338, 0.6258, 0.8778, 1.193, 1.571",\
                 "0.1098, 0.1314, 0.1756, 0.2322, 0.3162, 0.4492, 0.6388, 0.8864, 1.197, 1.571",\
                 "0.1238, 0.147, 0.1964, 0.2556, 0.3374, 0.4676, 0.6564, 0.9034, 1.209, 1.577");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.004217, 0.01551, 0.03707, 0.07067, 0.1178, 0.1798, 0.258, 0.3534, 0.4671");
          values("0.05478, 0.07302, 0.1284, 0.2395, 0.418, 0.6755, 1.017, 1.446, 1.972, 2.599",\
                 "0.05498, 0.07294, 0.1285, 0.2402, 0.418, 0.6756, 1.017, 1.448, 1.974, 2.602",\
                 "0.0547, 0.07284, 0.1284, 0.2398, 0.4183, 0.6748, 1.017, 1.446, 1.971, 2.601",\
                 "0.05538, 0.07316, 0.1292, 0.2402, 0.4184, 0.6758, 1.016, 1.448, 1.973, 2.601",\
                 "0.0588, 0.07724, 0.1319, 0.2416, 0.419, 0.6756, 1.015, 1.445, 1.972, 2.6",\
                 "0.06508, 0.08422, 0.1393, 0.2469, 0.422, 0.6766, 1.016, 1.445, 1.972, 2.602",\
                 "0.0721, 0.09188, 0.1494, 0.2568, 0.4313, 0.6812, 1.017, 1.445, 1.971, 2.601",\
                 "0.0792, 0.1008, 0.1606, 0.2674, 0.4444, 0.6942, 1.026, 1.448, 1.972, 2.598",\
                 "0.0874, 0.1092, 0.1718, 0.2794, 0.458, 0.7134, 1.044, 1.461, 1.975, 2.596",\
                 "0.096, 0.1186, 0.1824, 0.292, 0.4718, 0.7316, 1.071, 1.485, 1.992, 2.603");
        }
      }
    }
  }

