/*
 * 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__or3_1) {
    area : 21.952000 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.002357, 0.002358, 0.002354, 0.002348, 0.002332, 0.002306, 0.00226, \
                  0.002167, 0.001789, 0.00108");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.0006329, -0.0006371, -0.0006392, -0.0006428, -0.0006425, -0.0006431, \
                  -0.0006435, -0.0006437, -0.0006139, -0.0004891");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.00131, 0.001309, 0.00131, 0.001308, 0.001302, 0.001292, 0.001276, \
                  0.00124, 0.001083, 0.000746");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.0006355, -0.00064, -0.000641, -0.0006442, -0.0006457, -0.0006455, \
                  -0.0006463, -0.0006466, -0.0006164, -0.0004913");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001308, 0.001309, 0.00131, 0.00131, 0.001303, 0.001292, 0.001275, \
                  0.001241, 0.001084, 0.000747");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.0006352, -0.0006406, -0.0006424, -0.0006452, -0.0006456, -0.0006468, \
                  -0.0006466, -0.0006462, -0.0006161, -0.0004906");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0009857, 0.000983, 0.0009812, 0.000978, 0.0009661, 0.0009469, \
                  0.000916, 0.0008601, 0.0007222, 0.0005362");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.0008275, -0.0008319, -0.000834, -0.000836, -0.0008388, -0.0008393, \
                  -0.0008401, -0.0008417, -0.0008069, -0.0006506");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001477, 0.001479, 0.001478, 0.001481, 0.001481, 0.001482, 0.001481, \
                  0.001481, 0.001392, 0.001044");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001357, -0.001364, -0.001383, -0.001409, -0.001425, -0.001434, \
                  -0.001439, -0.001442, -0.001402, -0.001227");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001076, 0.001079, 0.001082, 0.001084, 0.001085, 0.001085, 0.001085, \
                  0.001086, 0.00103, 0.0007968");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001242, -0.001245, -0.001249, -0.001252, -0.001253, -0.001254, \
                  -0.001253, -0.001253, -0.001212, -0.001031");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001475, 0.001475, 0.001477, 0.00148, 0.00148, 0.00148, 0.001481, \
                  0.001481, 0.001397, 0.001048");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001363, -0.001375, -0.0014, -0.001423, -0.001433, -0.00144, \
                  -0.001443, -0.001446, -0.001406, -0.00123");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001479, 0.001479, 0.001479, 0.001482, 0.001483, 0.001483, 0.001484, \
                  0.001482, 0.001397, 0.001048");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001276, -0.001295, -0.001321, -0.001353, -0.001375, -0.001389, \
                  -0.001401, -0.001408, -0.001375, -0.001206");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001473, 0.001475, 0.001478, 0.00148, 0.001481, 0.00148, 0.00148, \
                  0.001479, 0.001394, 0.001048");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001364, -0.001375, -0.0014, -0.001422, -0.001433, -0.00144, \
                  -0.001443, -0.001446, -0.001406, -0.001229");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2|A3)" ;
      max_capacitance : 0.1924 ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.02028, 0.02029, 0.02036, 0.02048, 0.02062, 0.02073, 0.02082, 0.02089, 0.02092, 0.02085",\
                 "0.02021, 0.02023, 0.0203, 0.02042, 0.02055, 0.02067, 0.02076, 0.02082, 0.02085, 0.02078",\
                 "0.02005, 0.02008, 0.02014, 0.02026, 0.0204, 0.02051, 0.0206, 0.02067, 0.02069, 0.0206",\
                 "0.01993, 0.01994, 0.02001, 0.02013, 0.02026, 0.02038, 0.02047, 0.02053, 0.02053, 0.0204",\
                 "0.01986, 0.01987, 0.01994, 0.02005, 0.02018, 0.02029, 0.02038, 0.02043, 0.02039, 0.02014",\
                 "0.01981, 0.01983, 0.01989, 0.02, 0.02012, 0.02023, 0.0203, 0.0203, 0.02011, 0.01966",\
                 "0.01971, 0.01973, 0.01978, 0.01987, 0.01997, 0.02004, 0.02003, 0.01978, 0.01925, 0.01869",\
                 "0.01892, 0.01892, 0.01895, 0.01899, 0.01899, 0.01873, 0.01808, 0.01751, 0.01712, 0.01683",\
                 "0.01288, 0.0125, 0.0118, 0.01132, 0.0111, 0.01103, 0.01102, 0.01104, 0.01107, 0.01109",\
                 "0.003539, 0.00355, 0.003585, 0.003642, 0.003714, 0.003789, 0.003857, 0.003917, 0.003965, 0.004003");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.009728, 0.009804, 0.01001, 0.01023, 0.01041, 0.01054, 0.01089, 0.01556, 0.04118, 0.09678",\
                 "0.009753, 0.009819, 0.01002, 0.01026, 0.01038, 0.01051, 0.01086, 0.01574, 0.04171, 0.09793",\
                 "0.009758, 0.009815, 0.01001, 0.01023, 0.01042, 0.01051, 0.0109, 0.01651, 0.04489, 0.1019",\
                 "0.00965, 0.00971, 0.009859, 0.01008, 0.01027, 0.01039, 0.01103, 0.01842, 0.05087, 0.1089",\
                 "0.009549, 0.009595, 0.009743, 0.009916, 0.01014, 0.01035, 0.01138, 0.02202, 0.06064, 0.1178",\
                 "0.009476, 0.009532, 0.009629, 0.009812, 0.01001, 0.01026, 0.01224, 0.02887, 0.07412, 0.1267",\
                 "0.009441, 0.009465, 0.009566, 0.0097, 0.0099, 0.01033, 0.01495, 0.04099, 0.08873, 0.1326",\
                 "0.009445, 0.009475, 0.009561, 0.009687, 0.009784, 0.01091, 0.0229, 0.05931, 0.1006, 0.1316",\
                 "0.00954, 0.009569, 0.009641, 0.009713, 0.01004, 0.01562, 0.04134, 0.0754, 0.1006, 0.1184",\
                 "0.009779, 0.009814, 0.009854, 0.01003, 0.01434, 0.03447, 0.05589, 0.07023, 0.07986, 0.08649");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.02093, 0.02094, 0.02101, 0.02113, 0.02127, 0.02138, 0.02147, 0.02154, 0.02156, 0.02148",\
                 "0.02088, 0.02089, 0.02096, 0.02108, 0.02122, 0.02133, 0.02142, 0.02149, 0.02151, 0.02142",\
                 "0.02075, 0.02077, 0.02084, 0.02096, 0.02109, 0.02121, 0.0213, 0.02136, 0.02137, 0.02126",\
                 "0.02064, 0.02066, 0.02073, 0.02085, 0.02098, 0.0211, 0.02119, 0.02124, 0.02123, 0.02107",\
                 "0.02057, 0.02059, 0.02065, 0.02077, 0.0209, 0.02101, 0.0211, 0.02114, 0.02107, 0.02079",\
                 "0.0205, 0.02052, 0.02058, 0.02069, 0.02081, 0.02092, 0.02098, 0.02097, 0.02074, 0.02026",\
                 "0.02034, 0.02035, 0.02041, 0.02051, 0.02061, 0.02068, 0.02066, 0.02038, 0.01982, 0.01928",\
                 "0.01951, 0.01952, 0.01955, 0.0196, 0.01961, 0.01938, 0.01874, 0.01817, 0.01776, 0.01746",\
                 "0.01443, 0.01419, 0.01333, 0.0127, 0.01238, 0.01223, 0.01219, 0.01218, 0.01218, 0.01219",\
                 "0.003672, 0.003685, 0.003729, 0.003798, 0.003881, 0.003963, 0.004035, 0.004094, 0.004139, 0.004174");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.01077, 0.01084, 0.01103, 0.01126, 0.01141, 0.01157, 0.01194, 0.01681, 0.04268, 0.09857",\
                 "0.01077, 0.01083, 0.01103, 0.01125, 0.01144, 0.01159, 0.01195, 0.01708, 0.04349, 0.09971",\
                 "0.01073, 0.0108, 0.01098, 0.0112, 0.01139, 0.01158, 0.012, 0.01771, 0.04647, 0.1036",\
                 "0.01063, 0.01069, 0.01083, 0.01104, 0.0112, 0.0114, 0.01212, 0.01961, 0.05244, 0.1105",\
                 "0.01053, 0.01058, 0.01073, 0.01089, 0.01109, 0.0113, 0.01243, 0.02331, 0.06227, 0.1195",\
                 "0.01046, 0.01049, 0.0106, 0.01079, 0.01093, 0.01115, 0.01337, 0.03028, 0.07562, 0.1282",\
                 "0.01041, 0.01045, 0.01053, 0.01068, 0.01089, 0.01126, 0.01623, 0.04285, 0.09069, 0.1338",\
                 "0.0104, 0.01044, 0.01052, 0.01063, 0.01074, 0.01203, 0.02464, 0.06147, 0.102, 0.1321",\
                 "0.01046, 0.01049, 0.01057, 0.01064, 0.01102, 0.01704, 0.04383, 0.07685, 0.101, 0.1179",\
                 "0.01068, 0.01072, 0.01078, 0.01101, 0.01615, 0.03678, 0.05649, 0.06957, 0.07832, 0.08436");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.02161, 0.02162, 0.0217, 0.02182, 0.02195, 0.02207, 0.02216, 0.02222, 0.02224, 0.02215",\
                 "0.02157, 0.02158, 0.02165, 0.02177, 0.0219, 0.02202, 0.02211, 0.02218, 0.02219, 0.02209",\
                 "0.02143, 0.02145, 0.02152, 0.02164, 0.02178, 0.02189, 0.02198, 0.02205, 0.02205, 0.02193",\
                 "0.02133, 0.02134, 0.02142, 0.02153, 0.02167, 0.02178, 0.02187, 0.02193, 0.02191, 0.02172",\
                 "0.02125, 0.02127, 0.02134, 0.02145, 0.02158, 0.0217, 0.02178, 0.02182, 0.02174, 0.02143",\
                 "0.02118, 0.02119, 0.02126, 0.02137, 0.02149, 0.0216, 0.02167, 0.02164, 0.02138, 0.02089",\
                 "0.02101, 0.02102, 0.02108, 0.02118, 0.02129, 0.02136, 0.02133, 0.02103, 0.02046, 0.01992",\
                 "0.0202, 0.0202, 0.02024, 0.02029, 0.02032, 0.0201, 0.01946, 0.01888, 0.01847, 0.01817",\
                 "0.01554, 0.01546, 0.0147, 0.01396, 0.01357, 0.01338, 0.01331, 0.01327, 0.01326, 0.01326",\
                 "0.004388, 0.004405, 0.004458, 0.004541, 0.004638, 0.00473, 0.004807, 0.004865, 0.00491, 0.004943");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.01182, 0.01189, 0.01207, 0.01229, 0.01248, 0.01261, 0.01297, 0.01792, 0.04397, 0.1",\
                 "0.01176, 0.01183, 0.01203, 0.01224, 0.01243, 0.01256, 0.01291, 0.01812, 0.04457, 0.1011",\
                 "0.01169, 0.01176, 0.01193, 0.01213, 0.01232, 0.01247, 0.01295, 0.01876, 0.04756, 0.1049",\
                 "0.01155, 0.0116, 0.01175, 0.01194, 0.01215, 0.01233, 0.01293, 0.02059, 0.05384, 0.1118",\
                 "0.01145, 0.0115, 0.01163, 0.01181, 0.01196, 0.01219, 0.01329, 0.02444, 0.06373, 0.1207",\
                 "0.01138, 0.0114, 0.01152, 0.0117, 0.01184, 0.01208, 0.01435, 0.03174, 0.07719, 0.1294",\
                 "0.01133, 0.01136, 0.01145, 0.01158, 0.01179, 0.01218, 0.01726, 0.04466, 0.09227, 0.1348",\
                 "0.01131, 0.01134, 0.01141, 0.01153, 0.01166, 0.01298, 0.02621, 0.06342, 0.1031, 0.1326",\
                 "0.01135, 0.01138, 0.01146, 0.01155, 0.01194, 0.0186, 0.04593, 0.07809, 0.1012, 0.1175",\
                 "0.01154, 0.01157, 0.01164, 0.01188, 0.01782, 0.03862, 0.05691, 0.06894, 0.07697, 0.08251");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("5.967, 6.151, 6.646, 7.319, 8.104, 8.986, 9.978, 11.09, 12.35, 13.78",\
                 "5.999, 6.183, 6.677, 7.35, 8.136, 9.021, 10.01, 11.12, 12.38, 13.81",\
                 "6.165, 6.348, 6.843, 7.517, 8.304, 9.187, 10.18, 11.29, 12.55, 13.98",\
                 "6.566, 6.751, 7.246, 7.919, 8.706, 9.589, 10.58, 11.69, 12.95, 14.38",\
                 "7.257, 7.441, 7.936, 8.61, 9.396, 10.28, 11.27, 12.38, 13.64, 15.07",\
                 "8.259, 8.442, 8.937, 9.613, 10.4, 11.28, 12.27, 13.39, 14.64, 16.07",\
                 "9.596, 9.781, 10.27, 10.95, 11.73, 12.62, 13.61, 14.72, 15.98, 17.41",\
                 "11.27, 11.45, 11.95, 12.63, 13.42, 14.31, 15.3, 16.41, 17.67, 19.1",\
                 "13.15, 13.35, 13.88, 14.58, 15.39, 16.28, 17.28, 18.4, 19.66, 21.09",\
                 "15.15, 15.37, 15.94, 16.68, 17.52, 18.43, 19.46, 20.58, 21.85, 23.29");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("1.172, 1.284, 1.655, 2.338, 3.389, 4.857, 6.791, 9.222, 12.18, 15.71",\
                 "1.24, 1.352, 1.723, 2.406, 3.457, 4.925, 6.862, 9.29, 12.25, 15.78",\
                 "1.474, 1.586, 1.956, 2.639, 3.69, 5.163, 7.095, 9.53, 12.48, 16.01",\
                 "1.9, 2.011, 2.379, 3.062, 4.115, 5.585, 7.523, 9.945, 12.91, 16.46",\
                 "2.396, 2.511, 2.886, 3.568, 4.621, 6.091, 8.024, 10.45, 13.42, 16.95",\
                 "2.873, 2.996, 3.379, 4.065, 5.119, 6.589, 8.522, 10.95, 13.93, 17.45",\
                 "3.313, 3.442, 3.838, 4.53, 5.584, 7.056, 8.988, 11.42, 14.38, 17.92",\
                 "3.704, 3.842, 4.254, 4.952, 6.004, 7.476, 9.409, 11.84, 14.81, 18.34",\
                 "4.027, 4.177, 4.607, 5.312, 6.367, 7.84, 9.771, 12.2, 15.17, 18.7",\
                 "4.274, 4.437, 4.89, 5.61, 6.668, 8.137, 10.07, 12.5, 15.47, 19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("1.361, 1.481, 1.831, 2.371, 3.092, 3.999, 5.129, 6.546, 8.27, 10.38",\
                 "1.361, 1.481, 1.832, 2.374, 3.089, 3.993, 5.131, 6.543, 8.272, 10.39",\
                 "1.36, 1.483, 1.831, 2.375, 3.088, 3.999, 5.119, 6.544, 8.276, 10.39",\
                 "1.362, 1.481, 1.831, 2.372, 3.089, 3.99, 5.116, 6.536, 8.276, 10.39",\
                 "1.36, 1.481, 1.83, 2.37, 3.084, 3.996, 5.126, 6.544, 8.276, 10.39",\
                 "1.358, 1.478, 1.83, 2.37, 3.086, 3.994, 5.118, 6.528, 8.272, 10.39",\
                 "1.36, 1.478, 1.83, 2.374, 3.088, 3.986, 5.124, 6.542, 8.27, 10.38",\
                 "1.396, 1.512, 1.854, 2.388, 3.102, 4.006, 5.134, 6.53, 8.276, 10.39",\
                 "1.532, 1.642, 1.968, 2.472, 3.162, 4.05, 5.168, 6.572, 8.292, 10.41",\
                 "1.692, 1.806, 2.132, 2.618, 3.29, 4.16, 5.266, 6.648, 8.346, 10.44");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.6248, 0.78, 1.349, 2.47, 4.235, 6.707, 9.95, 14.05, 19.07, 25",\
                 "0.624, 0.7808, 1.348, 2.469, 4.229, 6.698, 9.951, 14.05, 19.04, 25",\
                 "0.624, 0.7806, 1.349, 2.469, 4.235, 6.705, 9.952, 14.05, 19.03, 25.01",\
                 "0.6302, 0.7854, 1.349, 2.47, 4.229, 6.698, 9.951, 14.05, 19.06, 25.01",\
                 "0.6704, 0.8182, 1.367, 2.471, 4.232, 6.712, 9.949, 14.05, 19.06, 24.98",\
                 "0.7198, 0.8642, 1.394, 2.491, 4.234, 6.701, 9.952, 14.06, 19.11, 24.98",\
                 "0.7836, 0.9208, 1.432, 2.499, 4.244, 6.702, 9.944, 14.06, 19.03, 25.03",\
                 "0.86, 0.992, 1.478, 2.518, 4.256, 6.72, 9.952, 14.06, 19.04, 25.01",\
                 "0.948, 1.074, 1.54, 2.548, 4.266, 6.722, 9.96, 14.05, 19.06, 25.03",\
                 "1.046, 1.17, 1.612, 2.586, 4.274, 6.73, 9.964, 14.06, 19.05, 25");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("6.555, 6.739, 7.233, 7.907, 8.694, 9.573, 10.57, 11.68, 12.94, 14.37",\
                 "6.597, 6.781, 7.276, 7.947, 8.734, 9.619, 10.61, 11.72, 12.98, 14.41",\
                 "6.792, 6.976, 7.471, 8.145, 8.931, 9.817, 10.81, 11.91, 13.18, 14.6",\
                 "7.199, 7.384, 7.876, 8.55, 9.338, 10.22, 11.21, 12.32, 13.59, 15.01",\
                 "7.82, 8.003, 8.498, 9.172, 9.96, 10.84, 11.83, 12.95, 14.21, 15.63",\
                 "8.68, 8.864, 9.36, 10.03, 10.82, 11.71, 12.69, 13.81, 15.07, 16.49",\
                 "9.81, 9.994, 10.49, 11.16, 11.95, 12.83, 13.82, 14.94, 16.2, 17.62",\
                 "11.2, 11.39, 11.89, 12.57, 13.36, 14.25, 15.24, 16.35, 17.61, 19.04",\
                 "12.76, 12.96, 13.48, 14.19, 15, 15.9, 16.9, 18.03, 19.29, 20.72",\
                 "14.48, 14.69, 15.24, 15.97, 16.81, 17.73, 18.76, 19.9, 21.18, 22.62");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("1.231, 1.344, 1.716, 2.402, 3.455, 4.926, 6.857, 9.287, 12.25, 15.78",\
                 "1.297, 1.41, 1.783, 2.468, 3.521, 4.992, 6.923, 9.353, 12.32, 15.85",\
                 "1.531, 1.643, 2.015, 2.7, 3.753, 5.225, 7.155, 9.585, 12.55, 16.08",\
                 "1.963, 2.075, 2.445, 3.129, 4.184, 5.656, 7.587, 10.02, 12.98, 16.52",\
                 "2.486, 2.603, 2.977, 3.661, 4.715, 6.188, 8.121, 10.55, 13.52, 17.05",\
                 "2.997, 3.119, 3.501, 4.188, 5.243, 6.715, 8.648, 11.08, 14.04, 17.58",\
                 "3.475, 3.604, 3.998, 4.689, 5.744, 7.216, 9.15, 11.58, 14.55, 18.08",\
                 "3.905, 4.041, 4.45, 5.147, 6.202, 7.675, 9.609, 12.04, 15.01, 18.54",\
                 "4.274, 4.419, 4.847, 5.553, 6.608, 8.08, 10.01, 12.45, 15.41, 18.95",\
                 "4.566, 4.726, 5.174, 5.892, 6.949, 8.421, 10.35, 12.78, 15.75, 19.29");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("1.361, 1.48, 1.831, 2.372, 3.088, 4, 5.128, 6.546, 8.262, 10.39",\
                 "1.36, 1.479, 1.829, 2.374, 3.09, 3.997, 5.121, 6.536, 8.272, 10.39",\
                 "1.361, 1.48, 1.829, 2.373, 3.091, 3.991, 5.131, 6.546, 8.272, 10.38",\
                 "1.361, 1.481, 1.831, 2.374, 3.089, 3.996, 5.124, 6.546, 8.272, 10.39",\
                 "1.363, 1.481, 1.83, 2.372, 3.088, 3.994, 5.122, 6.538, 8.27, 10.38",\
                 "1.36, 1.478, 1.832, 2.37, 3.086, 3.994, 5.122, 6.53, 8.268, 10.39",\
                 "1.364, 1.482, 1.834, 2.374, 3.086, 3.99, 5.126, 6.538, 8.266, 10.38",\
                 "1.404, 1.518, 1.866, 2.396, 3.108, 4.006, 5.144, 6.538, 8.276, 10.39",\
                 "1.49, 1.608, 1.95, 2.484, 3.186, 4.07, 5.18, 6.586, 8.304, 10.41",\
                 "1.584, 1.706, 2.056, 2.592, 3.296, 4.188, 5.294, 6.67, 8.368, 10.47");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.6292, 0.787, 1.355, 2.476, 4.241, 6.715, 9.958, 14.06, 19.07, 25.03",\
                 "0.6302, 0.7878, 1.356, 2.476, 4.241, 6.714, 9.963, 14.06, 19.07, 25.04",\
                 "0.629, 0.7868, 1.355, 2.475, 4.24, 6.706, 9.965, 14.06, 19.08, 25.05",\
                 "0.6324, 0.79, 1.353, 2.472, 4.229, 6.71, 9.971, 14.08, 19.08, 25.04",\
                 "0.6678, 0.8174, 1.367, 2.477, 4.236, 6.704, 9.963, 14.08, 19.08, 25.02",\
                 "0.7152, 0.8614, 1.394, 2.487, 4.233, 6.705, 9.96, 14.07, 19.08, 25",\
                 "0.7738, 0.9126, 1.429, 2.502, 4.244, 6.704, 9.954, 14.05, 19.05, 25.02",\
                 "0.844, 0.976, 1.472, 2.52, 4.256, 6.714, 9.956, 14.06, 19.05, 25.01",\
                 "0.926, 1.056, 1.526, 2.546, 4.266, 6.718, 9.97, 14.05, 19.05, 25.03",\
                 "1.022, 1.14, 1.596, 2.578, 4.274, 6.736, 9.972, 14.07, 19.05, 24.99");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("6.785, 6.969, 7.464, 8.137, 8.925, 9.81, 10.8, 11.91, 13.17, 14.6",\
                 "6.844, 7.028, 7.523, 8.194, 8.983, 9.866, 10.85, 11.97, 13.23, 14.66",\
                 "7.07, 7.254, 7.75, 8.424, 9.21, 10.09, 11.08, 12.19, 13.45, 14.88",\
                 "7.497, 7.681, 8.174, 8.847, 9.636, 10.52, 11.51, 12.62, 13.88, 15.31",\
                 "8.113, 8.298, 8.793, 9.466, 10.25, 11.13, 12.12, 13.24, 14.5, 15.93",\
                 "8.925, 9.109, 9.605, 10.28, 11.07, 11.95, 12.94, 14.05, 15.31, 16.74",\
                 "9.948, 10.13, 10.63, 11.3, 12.09, 12.97, 13.96, 15.08, 16.33, 17.76",\
                 "11.17, 11.36, 11.86, 12.54, 13.33, 14.21, 15.21, 16.32, 17.58, 19.01",\
                 "12.52, 12.72, 13.24, 13.94, 14.75, 15.65, 16.65, 17.77, 19.03, 20.47",\
                 "13.99, 14.19, 14.73, 15.45, 16.29, 17.21, 18.23, 19.37, 20.65, 22.09");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("1.264, 1.379, 1.758, 2.449, 3.508, 4.981, 6.914, 9.347, 12.31, 15.85",\
                 "1.33, 1.444, 1.823, 2.514, 3.573, 5.047, 6.98, 9.412, 12.38, 15.91",\
                 "1.563, 1.677, 2.054, 2.744, 3.803, 5.277, 7.211, 9.641, 12.61, 16.14",\
                 "2.001, 2.114, 2.489, 3.178, 4.237, 5.711, 7.644, 10.08, 13.05, 16.58",\
                 "2.547, 2.664, 3.041, 3.729, 4.786, 6.261, 8.195, 10.63, 13.6, 17.13",\
                 "3.085, 3.208, 3.593, 4.282, 5.341, 6.814, 8.748, 11.18, 14.15, 17.69",\
                 "3.596, 3.724, 4.121, 4.815, 5.873, 7.347, 9.282, 11.72, 14.68, 18.22",\
                 "4.062, 4.198, 4.607, 5.307, 6.366, 7.84, 9.776, 12.21, 15.18, 18.71",\
                 "4.47, 4.616, 5.044, 5.753, 6.809, 8.283, 10.22, 12.65, 15.62, 19.15",\
                 "4.809, 4.966, 5.413, 6.13, 7.19, 8.664, 10.6, 13.03, 16, 19.54");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("1.36, 1.479, 1.83, 2.372, 3.087, 3.991, 5.128, 6.534, 8.272, 10.39",\
                 "1.36, 1.479, 1.829, 2.375, 3.09, 3.998, 5.123, 6.542, 8.272, 10.39",\
                 "1.36, 1.479, 1.829, 2.373, 3.091, 3.996, 5.128, 6.53, 8.274, 10.4",\
                 "1.36, 1.479, 1.832, 2.372, 3.088, 3.988, 5.126, 6.544, 8.272, 10.39",\
                 "1.362, 1.482, 1.832, 2.372, 3.086, 3.994, 5.124, 6.544, 8.27, 10.39",\
                 "1.362, 1.478, 1.83, 2.372, 3.086, 3.994, 5.122, 6.538, 8.266, 10.39",\
                 "1.364, 1.48, 1.83, 2.37, 3.09, 3.996, 5.118, 6.544, 8.272, 10.38",\
                 "1.394, 1.51, 1.858, 2.39, 3.1, 4.002, 5.136, 6.536, 8.28, 10.4",\
                 "1.464, 1.58, 1.928, 2.468, 3.174, 4.064, 5.17, 6.574, 8.294, 10.41",\
                 "1.534, 1.658, 2.008, 2.556, 3.272, 4.17, 5.278, 6.664, 8.36, 10.46");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002321, 0.006958, 0.01581, 0.02961, 0.04897, 0.07444, 0.1065, 0.1457, 0.1924");
          values("0.6438, 0.8034, 1.372, 2.49, 4.255, 6.719, 9.979, 14.07, 19.09, 25.05",\
                 "0.6428, 0.8026, 1.371, 2.489, 4.254, 6.719, 9.969, 14.08, 19.09, 25.02",\
                 "0.6434, 0.8014, 1.371, 2.489, 4.251, 6.725, 9.978, 14.08, 19.08, 25.06",\
                 "0.6426, 0.799, 1.367, 2.488, 4.25, 6.719, 9.98, 14.06, 19.07, 25.02",\
                 "0.6724, 0.8228, 1.374, 2.487, 4.243, 6.718, 9.979, 14.07, 19.06, 25.02",\
                 "0.718, 0.8644, 1.4, 2.495, 4.248, 6.716, 9.976, 14.08, 19.09, 25.01",\
                 "0.7748, 0.9164, 1.431, 2.508, 4.254, 6.716, 9.958, 14.07, 19.06, 24.99",\
                 "0.84, 0.974, 1.472, 2.528, 4.268, 6.726, 9.964, 14.07, 19.06, 25.03",\
                 "0.918, 1.046, 1.522, 2.552, 4.27, 6.736, 9.98, 14.06, 19.07, 25.04",\
                 "1.002, 1.13, 1.588, 2.582, 4.284, 6.738, 9.988, 14.07, 19.05, 25.01");
        }
      }
    }
  }

