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

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

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

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

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

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

    pin(I) {
      capacitance : 0.07861 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 6.85 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.04827, 0.2142, 0.5311, 1.025, 1.717, 2.629, 3.777, 5.179, 6.85");
          values("-0.1071, -0.08977, -0.07357, -0.06711, -0.06484, -0.06328, -0.06283, -0.06237, -0.06211, -0.0619",\
                 "-0.1144, -0.1017, -0.08297, -0.07236, -0.06807, -0.06536, -0.06401, -0.06325, -0.06257, -0.06226",\
                 "-0.01765, -0.03541, -0.05075, -0.05624, -0.05869, -0.05995, -0.06053, -0.06074, -0.06095, -0.0611",\
                 "0.2714, 0.215, 0.1225, 0.05786, 0.01787, -0.006649, -0.02267, -0.03299, -0.03985, -0.04469",\
                 "0.7713, 0.6826, 0.4998, 0.3418, 0.2287, 0.151, 0.0963, 0.05809, 0.03128, 0.01139",\
                 "1.496, 1.382, 1.118, 0.8506, 0.6334, 0.4704, 0.3493, 0.2599, 0.1936, 0.144",\
                 "2.462, 2.326, 1.996, 1.612, 1.275, 1.002, 0.7885, 0.622, 0.4927, 0.3913",\
                 "3.689, 3.535, 3.147, 2.657, 2.187, 1.787, 1.457, 1.19, 0.974, 0.8019",\
                 "5.189, 5.023, 4.582, 4.001, 3.396, 2.855, 2.391, 2.001, 1.676, 1.411",\
                 "6.985, 6.801, 6.319, 5.653, 4.928, 4.235, 3.626, 3.096, 2.647, 2.258");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.04827, 0.2142, 0.5311, 1.025, 1.717, 2.629, 3.777, 5.179, 6.85");
          values("0.7891, 0.8082, 0.8261, 0.84, 0.8328, 0.8447, 0.8466, 0.8794, 0.8746, 0.9648",\
                 "0.8023, 0.8078, 0.819, 0.8303, 0.8361, 0.8526, 0.8697, 0.8938, 0.9034, 0.9648",\
                 "0.9463, 0.9138, 0.8747, 0.8595, 0.8595, 0.8691, 0.8877, 0.8902, 0.9358, 0.936",\
                 "1.287, 1.217, 1.098, 1.011, 0.9606, 0.9311, 0.9265, 0.9226, 0.9322, 0.9648",\
                 "1.844, 1.746, 1.533, 1.36, 1.215, 1.127, 1.072, 1.041, 1.037, 1.022",\
                 "2.64, 2.522, 2.234, 1.933, 1.708, 1.513, 1.377, 1.286, 1.235, 1.188",\
                 "3.696, 3.562, 3.217, 2.798, 2.438, 2.15, 1.908, 1.718, 1.591, 1.48",\
                 "5.035, 4.885, 4.486, 3.968, 3.466, 3.046, 2.697, 2.399, 2.153, 1.971",\
                 "6.672, 6.506, 6.064, 5.46, 4.834, 4.245, 3.773, 3.349, 2.991, 2.701",\
                 "8.629, 8.449, 7.971, 7.296, 6.532, 5.804, 5.159, 4.634, 4.129, 3.72");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.04827, 0.2142, 0.5311, 1.025, 1.717, 2.629, 3.777, 5.179, 6.85");
          values("0.03091, 0.04968, 0.113, 0.2328, 0.4183, 0.6789, 1.022, 1.455, 1.98, 2.611",\
                 "0.03699, 0.05652, 0.12, 0.2398, 0.4258, 0.6864, 1.03, 1.462, 1.988, 2.619",\
                 "0.04547, 0.07438, 0.1481, 0.267, 0.4528, 0.7134, 1.055, 1.487, 2.017, 2.644",\
                 "0.04969, 0.08921, 0.1862, 0.3234, 0.5074, 0.7667, 1.109, 1.54, 2.067, 2.696",\
                 "0.0469, 0.09765, 0.2193, 0.3874, 0.5966, 0.8539, 1.193, 1.623, 2.149, 2.775",\
                 "0.03632, 0.09838, 0.246, 0.4455, 0.6912, 0.9796, 1.318, 1.744, 2.267, 2.893",\
                 "0.0171, 0.0902, 0.2643, 0.497, 0.778, 1.109, 1.484, 1.91, 2.43, 3.052",\
                 "-0.0118, 0.0723, 0.2734, 0.5399, 0.8586, 1.228, 1.651, 2.119, 2.641, 3.258",\
                 "-0.0517, 0.0446, 0.2717, 0.5731, 0.931, 1.341, 1.806, 2.326, 2.894, 3.516",\
                 "-0.1017, 0.0054, 0.2584, 0.5952, 0.9928, 1.447, 1.954, 2.521, 3.145, 3.818");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.04827, 0.2142, 0.5311, 1.025, 1.717, 2.629, 3.777, 5.179, 6.85");
          values("0.02805, 0.04889, 0.1195, 0.2528, 0.4596, 0.751, 1.133, 1.613, 2.204, 2.905",\
                 "0.03749, 0.05837, 0.1287, 0.2622, 0.4694, 0.7603, 1.143, 1.623, 2.214, 2.912",\
                 "0.06049, 0.08984, 0.1655, 0.2971, 0.5036, 0.7934, 1.176, 1.658, 2.244, 2.947",\
                 "0.09116, 0.1317, 0.2296, 0.3701, 0.5733, 0.8616, 1.243, 1.723, 2.311, 3.009",\
                 "0.1284, 0.181, 0.305, 0.4749, 0.6888, 0.9734, 1.351, 1.829, 2.414, 3.116",\
                 "0.1728, 0.2378, 0.3896, 0.5917, 0.8403, 1.136, 1.509, 1.984, 2.567, 3.261",\
                 "0.2245, 0.302, 0.4832, 0.7205, 1.004, 1.339, 1.724, 2.194, 2.771, 3.464",\
                 "0.2841, 0.3746, 0.5846, 0.8594, 1.183, 1.556, 1.984, 2.466, 3.038, 3.726",\
                 "0.3521, 0.4556, 0.6953, 1.008, 1.374, 1.789, 2.258, 2.786, 3.37, 4.052",\
                 "0.4294, 0.5454, 0.8152, 1.166, 1.575, 2.036, 2.548, 3.122, 3.756, 4.449");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.04827, 0.2142, 0.5311, 1.025, 1.717, 2.629, 3.777, 5.179, 6.85");
          values("0.02522, 0.05492, 0.1587, 0.3578, 0.6657, 1.105, 1.669, 2.39, 3.266, 4.314",\
                 "0.03063, 0.05525, 0.1591, 0.3575, 0.668, 1.102, 1.668, 2.387, 3.272, 4.312",\
                 "0.05214, 0.08322, 0.1674, 0.3578, 0.6676, 1.104, 1.672, 2.392, 3.263, 4.307",\
                 "0.08574, 0.1258, 0.2278, 0.3832, 0.6679, 1.103, 1.676, 2.386, 3.269, 4.306",\
                 "0.1278, 0.1807, 0.3025, 0.4821, 0.7197, 1.104, 1.673, 2.396, 3.264, 4.316",\
                 "0.1776, 0.2456, 0.3946, 0.5958, 0.8622, 1.191, 1.688, 2.393, 3.271, 4.325",\
                 "0.2348, 0.3182, 0.5006, 0.7296, 1.022, 1.382, 1.812, 2.427, 3.269, 4.315",\
                 "0.3014, 0.4, 0.6152, 0.882, 1.2, 1.592, 2.054, 2.594, 3.339, 4.325",\
                 "0.3766, 0.491, 0.7416, 1.05, 1.404, 1.819, 2.321, 2.886, 3.551, 4.428",\
                 "0.4602, 0.5872, 0.8764, 1.228, 1.623, 2.073, 2.602, 3.22, 3.896, 4.687");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.04827, 0.2142, 0.5311, 1.025, 1.717, 2.629, 3.777, 5.179, 6.85");
          values("0.03164, 0.06633, 0.1873, 0.4182, 0.7777, 1.284, 1.952, 2.793, 3.814, 5.03",\
                 "0.03754, 0.06651, 0.1871, 0.4181, 0.7788, 1.284, 1.949, 2.793, 3.817, 5.03",\
                 "0.05998, 0.092, 0.1914, 0.4187, 0.7789, 1.283, 1.949, 2.79, 3.81, 5.039",\
                 "0.09448, 0.1366, 0.2441, 0.4304, 0.7783, 1.283, 1.95, 2.79, 3.815, 5.038",\
                 "0.1364, 0.1911, 0.3184, 0.5119, 0.8023, 1.283, 1.949, 2.791, 3.815, 5.028",\
                 "0.186, 0.2551, 0.4118, 0.6242, 0.9136, 1.326, 1.948, 2.79, 3.808, 5.034",\
                 "0.2444, 0.3272, 0.5166, 0.7594, 1.071, 1.467, 2.015, 2.79, 3.806, 5.024",\
                 "0.3116, 0.4082, 0.6316, 0.9128, 1.248, 1.671, 2.191, 2.879, 3.82, 5.025",\
                 "0.389, 0.5002, 0.7564, 1.079, 1.452, 1.895, 2.439, 3.087, 3.942, 5.051",\
                 "0.4728, 0.6012, 0.89, 1.26, 1.674, 2.147, 2.716, 3.389, 4.178, 5.206");
        }
      }
    }
  }

