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

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 1.389 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01058, 0.0442, 0.1084, 0.2084, 0.3488, 0.5335, 0.7662, 1.05, 1.389");
          values("-0.006589, -0.005043, -0.004328, -0.004101, -0.00392, -0.003883, -0.003851, -0.003847, -0.00386, -0.00401",\
                 "-0.01062, -0.008505, -0.00603, -0.004959, -0.004461, -0.004204, -0.004136, -0.004014, -0.003982, -0.004118",\
                 "-0.009133, -0.00875, -0.007132, -0.005868, -0.005105, -0.004637, -0.004378, -0.004215, -0.004146, -0.004263",\
                 "0.007821, 0.004486, 0.0001177, -0.001897, -0.002768, -0.003247, -0.003442, -0.003553, -0.003659, -0.003962",\
                 "0.04116, 0.03409, 0.02162, 0.01253, 0.007085, 0.003651, 0.001505, 6.854e-05, -0.0009215, -0.001881",\
                 "0.09162, 0.08136, 0.06046, 0.04201, 0.02874, 0.01979, 0.01363, 0.009341, 0.006281, 0.0037",\
                 "0.1601, 0.1471, 0.1183, 0.08925, 0.06607, 0.04906, 0.03658, 0.02759, 0.02072, 0.01516",\
                 "0.2473, 0.2324, 0.1963, 0.1566, 0.1219, 0.09465, 0.07358, 0.05782, 0.04539, 0.03497",\
                 "0.3549, 0.3379, 0.2958, 0.2455, 0.1987, 0.1596, 0.1281, 0.1029, 0.08263, 0.06544",\
                 "0.4836, 0.465, 0.4175, 0.3571, 0.2979, 0.2459, 0.2021, 0.1656, 0.1351, 0.1087");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01058, 0.0442, 0.1084, 0.2084, 0.3488, 0.5335, 0.7662, 1.05, 1.389");
          values("0.1053, 0.1067, 0.1077, 0.1083, 0.1092, 0.11, 0.1152, 0.1174, 0.1938, 0.5428",\
                 "0.1017, 0.1037, 0.1063, 0.1081, 0.1089, 0.11, 0.1122, 0.1167, 0.1954, 0.5532",\
                 "0.1082, 0.1067, 0.1065, 0.1075, 0.1097, 0.1124, 0.1104, 0.1194, 0.1945, 0.577",\
                 "0.13, 0.1246, 0.1176, 0.1135, 0.1122, 0.1136, 0.1149, 0.125, 0.2185, 0.6524",\
                 "0.1679, 0.159, 0.1433, 0.1327, 0.1251, 0.1214, 0.1213, 0.1327, 0.2499, 0.7542",\
                 "0.2235, 0.2116, 0.1875, 0.1658, 0.1521, 0.1406, 0.1348, 0.1504, 0.3145, 0.9551",\
                 "0.2981, 0.2836, 0.2516, 0.2188, 0.1946, 0.176, 0.1637, 0.1907, 0.4431, 1.288",\
                 "0.3934, 0.3763, 0.3372, 0.294, 0.2564, 0.2299, 0.211, 0.2781, 0.7098, 1.814",\
                 "0.5108, 0.4913, 0.4452, 0.3913, 0.3405, 0.3003, 0.2935, 0.4887, 1.249, 2.567",\
                 "0.6506, 0.6293, 0.5775, 0.513, 0.4502, 0.4021, 0.4871, 1.065, 2.145, 3.275");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01058, 0.0442, 0.1084, 0.2084, 0.3488, 0.5335, 0.7662, 1.05, 1.389");
          values("0.08739, 0.141, 0.323, 0.6694, 1.209, 1.967, 2.963, 4.219, 5.745, 7.579",\
                 "0.1126, 0.1667, 0.3508, 0.6982, 1.239, 1.997, 2.99, 4.249, 5.777, 7.603",\
                 "0.1558, 0.2432, 0.454, 0.8015, 1.342, 2.1, 3.096, 4.35, 5.885, 7.701",\
                 "0.1783, 0.3009, 0.6032, 1.004, 1.543, 2.299, 3.292, 4.551, 6.083, 7.909",\
                 "0.1784, 0.3379, 0.7239, 1.249, 1.862, 2.617, 3.608, 4.864, 6.395, 8.212",\
                 "0.1537, 0.3501, 0.8215, 1.458, 2.219, 3.066, 4.059, 5.309, 6.837, 8.66",\
                 "0.1022, 0.3336, 0.8933, 1.64, 2.536, 3.549, 4.65, 5.902, 7.426, 9.244",\
                 "0.02, 0.2876, 0.9351, 1.793, 2.818, 3.989, 5.273, 6.645, 8.175, 9.991",\
                 "-0.0956, 0.2114, 0.9436, 1.919, 3.072, 4.388, 5.846, 7.417, 9.082, 10.91",\
                 "-0.2458, 0.1004, 0.9201, 2.012, 3.291, 4.751, 6.376, 8.139, 10.01, 11.99");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01058, 0.0442, 0.1084, 0.2084, 0.3488, 0.5335, 0.7662, 1.05, 1.389");
          values("0.08061, 0.1419, 0.351, 0.7486, 1.368, 2.237, 3.382, 4.82, 6.584, 8.673",\
                 "0.1129, 0.1749, 0.3861, 0.7857, 1.405, 2.273, 3.416, 4.859, 6.618, 8.709",\
                 "0.1988, 0.2903, 0.5155, 0.9137, 1.534, 2.404, 3.546, 4.99, 6.744, 8.843",\
                 "0.3063, 0.4338, 0.7463, 1.168, 1.785, 2.652, 3.798, 5.24, 6.999, 9.097",\
                 "0.4364, 0.603, 1.001, 1.542, 2.185, 3.049, 4.189, 5.632, 7.389, 9.484",\
                 "0.5911, 0.7965, 1.285, 1.943, 2.723, 3.612, 4.748, 6.184, 7.934, 10.04",\
                 "0.771, 1.017, 1.6, 2.37, 3.296, 4.332, 5.49, 6.92, 8.671, 10.76",\
                 "0.978, 1.267, 1.945, 2.832, 3.891, 5.096, 6.408, 7.856, 9.601, 11.68",\
                 "1.214, 1.546, 2.321, 3.331, 4.517, 5.88, 7.38, 8.982, 10.74, 12.82",\
                 "1.481, 1.855, 2.727, 3.861, 5.189, 6.699, 8.376, 10.18, 12.09, 14.19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01058, 0.0442, 0.1084, 0.2084, 0.3488, 0.5335, 0.7662, 1.05, 1.389");
          values("0.08093, 0.1698, 0.4792, 1.073, 1.999, 3.3, 5.009, 7.162, 9.773, 12.94",\
                 "0.0838, 0.1693, 0.48, 1.073, 2, 3.3, 5.002, 7.165, 9.782, 12.91",\
                 "0.1583, 0.2498, 0.4932, 1.073, 1.997, 3.301, 5.004, 7.152, 9.79, 12.89",\
                 "0.2535, 0.3768, 0.685, 1.131, 1.995, 3.296, 5, 7.16, 9.79, 12.92",\
                 "0.3734, 0.5318, 0.9182, 1.45, 2.127, 3.299, 5.002, 7.153, 9.785, 12.9",\
                 "0.5086, 0.7122, 1.172, 1.82, 2.58, 3.526, 5.027, 7.136, 9.77, 12.91",\
                 "0.6622, 0.9092, 1.464, 2.202, 3.113, 4.126, 5.37, 7.216, 9.771, 12.9",\
                 "0.8336, 1.126, 1.789, 2.623, 3.654, 4.84, 6.115, 7.691, 9.918, 12.9",\
                 "1.022, 1.368, 2.135, 3.083, 4.223, 5.56, 7.032, 8.588, 10.52, 13.16",\
                 "1.23, 1.622, 2.51, 3.58, 4.832, 6.306, 7.948, 9.718, 11.59, 13.9");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01058, 0.0442, 0.1084, 0.2084, 0.3488, 0.5335, 0.7662, 1.05, 1.389");
          values("0.1011, 0.2058, 0.5731, 1.273, 2.366, 3.907, 5.927, 8.453, 11.58, 15.26",\
                 "0.1048, 0.2057, 0.5721, 1.275, 2.365, 3.894, 5.91, 8.455, 11.58, 15.29",\
                 "0.1805, 0.2772, 0.576, 1.274, 2.369, 3.904, 5.914, 8.455, 11.56, 15.25",\
                 "0.2807, 0.4054, 0.7338, 1.294, 2.369, 3.904, 5.923, 8.479, 11.57, 15.29",\
                 "0.4018, 0.5612, 0.9682, 1.533, 2.409, 3.9, 5.924, 8.472, 11.58, 15.26",\
                 "0.54, 0.744, 1.223, 1.913, 2.735, 3.986, 5.919, 8.466, 11.57, 15.28",\
                 "0.7004, 0.9448, 1.514, 2.298, 3.267, 4.387, 6.041, 8.487, 11.57, 15.28",\
                 "0.8816, 1.168, 1.838, 2.713, 3.819, 5.079, 6.54, 8.646, 11.58, 15.26",\
                 "1.082, 1.414, 2.187, 3.171, 4.386, 5.812, 7.366, 9.236, 11.82, 15.29",\
                 "1.304, 1.688, 2.56, 3.674, 5.028, 6.562, 8.32, 10.2, 12.5, 15.61");
        }
      }
    }
  }

