/*
 * 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__inv_20) {
    area : 92.198400 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "0.000398196" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "0.000361827" ;
    }

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

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

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

    pin(I) {
      capacitance : 0.08182 ;
      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 ;
    }

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 3.841 ;
      max_transition : 25 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "I" ;

        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.0275, 0.1205, 0.2982, 0.575, 0.9633, 1.474, 2.118, 2.904, 3.841");
          values("-0.003385, -0.003032, -0.002592, -0.002476, -0.002402, -0.00236, -0.002342, -0.00235, -0.002306, -0.002319",\
                 "-0.007526, -0.005886, -0.003974, -0.003095, -0.00274, -0.00256, -0.002473, -0.002427, -0.002381, -0.002391",\
                 "-0.01447, -0.01209, -0.007913, -0.005376, -0.004063, -0.003396, -0.003021, -0.002804, -0.002662, -0.002563",\
                 "-0.01865, -0.01687, -0.01255, -0.008639, -0.006223, -0.00485, -0.004084, -0.003551, -0.003239, -0.003055",\
                 "-0.02033, -0.01923, -0.01589, -0.01202, -0.008832, -0.006804, -0.005503, -0.004639, -0.00406, -0.003774",\
                 "-0.02035, -0.01975, -0.01771, -0.01446, -0.01127, -0.008753, -0.007049, -0.005849, -0.005045, -0.00464",\
                 "-0.01898, -0.01888, -0.01801, -0.01582, -0.0131, -0.0106, -0.00859, -0.007146, -0.006182, -0.006136",\
                 "-0.0163, -0.01672, -0.01693, -0.01598, -0.01408, -0.01191, -0.009962, -0.008468, -0.00826, -0.01041",\
                 "-0.01092, -0.01168, -0.013, -0.01334, -0.01243, -0.01089, -0.009972, -0.0125, -0.0174, -0.02161",\
                 "0.0007655, -0.000536, -0.002948, -0.004547, -0.005513, -0.01234, -0.01916, -0.02331, -0.02585, -0.02745");
        }

        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.0275, 0.1205, 0.2982, 0.575, 0.9633, 1.474, 2.118, 2.904, 3.841");
          values("0.1128, 0.1141, 0.1153, 0.1161, 0.117, 0.1183, 0.1221, 0.1951, 0.6425, 1.729",\
                 "0.1034, 0.1064, 0.1113, 0.1142, 0.1159, 0.1175, 0.1214, 0.197, 0.6578, 1.752",\
                 "0.09668, 0.09863, 0.1036, 0.1084, 0.1117, 0.1142, 0.1206, 0.2103, 0.7177, 1.839",\
                 "0.09437, 0.09554, 0.0988, 0.1033, 0.1073, 0.1108, 0.1218, 0.2428, 0.8372, 2.001",\
                 "0.0944, 0.09488, 0.09664, 0.1002, 0.1042, 0.1068, 0.1266, 0.3192, 1.066, 2.23",\
                 "0.09529, 0.09536, 0.09591, 0.09902, 0.1016, 0.1059, 0.1499, 0.5, 1.422, 2.471",\
                 "0.09741, 0.09705, 0.09671, 0.09821, 0.1005, 0.11, 0.2545, 0.8972, 1.824, 2.574",\
                 "0.1004, 0.0997, 0.09859, 0.09799, 0.1015, 0.1831, 0.6701, 1.391, 1.933, 2.311",\
                 "0.1001, 0.09928, 0.09772, 0.0993, 0.2403, 0.6598, 0.9692, 1.164, 1.292, 1.378",\
                 "0.08742, 0.08626, 0.09608, 0.2281, 0.3193, 0.3696, 0.3988, 0.4171, 0.4286, 0.4366");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_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.0275, 0.1205, 0.2982, 0.575, 0.9633, 1.474, 2.118, 2.904, 3.841");
          values("0.1355, 0.1748, 0.3104, 0.5693, 0.9715, 1.536, 2.279, 3.217, 4.357, 5.72",\
                 "0.2019, 0.2422, 0.3798, 0.639, 1.041, 1.606, 2.35, 3.285, 4.426, 5.793",\
                 "0.3803, 0.4503, 0.6259, 0.8885, 1.292, 1.858, 2.601, 3.539, 4.68, 6.041",\
                 "0.562, 0.6796, 0.9716, 1.344, 1.772, 2.337, 3.082, 4.015, 5.162, 6.52",\
                 "0.7294, 0.9036, 1.329, 1.865, 2.455, 3.083, 3.829, 4.764, 5.911, 7.273",\
                 "0.869, 1.107, 1.684, 2.401, 3.186, 4.01, 4.869, 5.818, 6.958, 8.323",\
                 "0.9657, 1.277, 2.022, 2.943, 3.938, 4.979, 6.055, 7.167, 8.345, 9.706",\
                 "1.01, 1.403, 2.337, 3.476, 4.698, 5.972, 7.286, 8.633, 10.01, 11.45",\
                 "0.994, 1.475, 2.613, 3.992, 5.46, 6.978, 8.546, 10.15, 11.78, 13.45",\
                 "0.915, 1.48, 2.843, 4.475, 6.209, 7.996, 9.825, 11.69, 13.59, 15.53");
        }

        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.0275, 0.1205, 0.2982, 0.575, 0.9633, 1.474, 2.118, 2.904, 3.841");
          values("0.3006, 0.4047, 0.7626, 1.437, 2.49, 3.961, 5.901, 8.354, 11.33, 14.88",\
                 "0.3566, 0.4657, 0.8314, 1.514, 2.565, 4.04, 5.981, 8.424, 11.42, 14.96",\
                 "0.6259, 0.7351, 1.101, 1.788, 2.849, 4.327, 6.277, 8.712, 11.69, 15.26",\
                 "1.044, 1.216, 1.642, 2.329, 3.389, 4.871, 6.815, 9.27, 12.24, 15.82",\
                 "1.541, 1.79, 2.403, 3.184, 4.245, 5.726, 7.67, 10.12, 13.12, 16.66",\
                 "2.109, 2.446, 3.27, 4.301, 5.452, 6.933, 8.878, 11.33, 14.33, 17.9",\
                 "2.748, 3.18, 4.234, 5.548, 6.973, 8.527, 10.47, 12.92, 15.91, 19.47",\
                 "3.457, 3.99, 5.291, 6.911, 8.66, 10.48, 12.48, 14.93, 17.92, 21.48",\
                 "4.239, 4.875, 6.441, 8.384, 10.48, 12.66, 14.89, 17.39, 20.37, 23.93",\
                 "5.091, 5.841, 7.678, 9.964, 12.43, 14.98, 17.59, 20.28, 23.3, 26.86");
        }

        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.0275, 0.1205, 0.2982, 0.575, 0.9633, 1.474, 2.118, 2.904, 3.841");
          values("0.1297, 0.1962, 0.4276, 0.8716, 1.56, 2.528, 3.802, 5.404, 7.364, 9.718",\
                 "0.1298, 0.1956, 0.4276, 0.8699, 1.563, 2.534, 3.81, 5.414, 7.385, 9.698",\
                 "0.2483, 0.3072, 0.4711, 0.8718, 1.562, 2.532, 3.812, 5.414, 7.378, 9.699",\
                 "0.431, 0.5216, 0.754, 1.067, 1.596, 2.529, 3.806, 5.416, 7.374, 9.712",\
                 "0.6606, 0.786, 1.101, 1.522, 2.006, 2.681, 3.82, 5.401, 7.379, 9.71",\
                 "0.9332, 1.096, 1.505, 2.04, 2.653, 3.325, 4.172, 5.499, 7.377, 9.712",\
                 "1.259, 1.457, 1.96, 2.625, 3.37, 4.187, 5.062, 6.102, 7.628, 9.754",\
                 "1.613, 1.871, 2.472, 3.262, 4.152, 5.128, 6.162, 7.252, 8.496, 10.23",\
                 "1.994, 2.318, 3.046, 3.968, 5.004, 6.13, 7.34, 8.6, 9.92, 11.4",\
                 "2.414, 2.798, 3.676, 4.728, 5.926, 7.214, 8.59, 10.04, 11.54, 13.11");
        }

        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.0275, 0.1205, 0.2982, 0.575, 0.9633, 1.474, 2.118, 2.904, 3.841");
          values("0.3268, 0.4962, 1.093, 2.229, 4.005, 6.485, 9.756, 13.89, 18.89, 24.9",\
                 "0.3268, 0.4962, 1.092, 2.23, 4.002, 6.49, 9.753, 13.87, 18.92, 24.87",\
                 "0.3688, 0.5052, 1.093, 2.231, 4.003, 6.489, 9.767, 13.87, 18.9, 24.92",\
                 "0.6146, 0.7444, 1.154, 2.231, 4.005, 6.49, 9.75, 13.89, 18.91, 24.92",\
                 "0.9142, 1.093, 1.555, 2.338, 4.009, 6.493, 9.773, 13.89, 18.92, 24.86",\
                 "1.253, 1.494, 2.089, 2.867, 4.153, 6.503, 9.774, 13.88, 18.92, 24.9",\
                 "1.634, 1.939, 2.686, 3.652, 4.774, 6.672, 9.784, 13.91, 18.91, 24.89",\
                 "2.038, 2.416, 3.332, 4.496, 5.79, 7.376, 9.978, 13.9, 18.92, 24.9",\
                 "2.482, 2.932, 4.03, 5.41, 6.936, 8.57, 10.72, 14.13, 18.99, 24.95",\
                 "2.942, 3.488, 4.772, 6.384, 8.138, 10.04, 12.05, 14.93, 19.22, 25.01");
        }
      }
    }
  }

