/*
 * 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_16) {
    area : 74.636800 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 5.58 ;
      max_transition : 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.03951, 0.1747, 0.4328, 0.835, 1.399, 2.142, 3.077, 4.219, 5.58");
          values("-0.05515, -0.04562, -0.03874, -0.03631, -0.03516, -0.03481, -0.03463, -0.03436, -0.03428, -0.03418",\
                 "-0.06976, -0.05966, -0.04615, -0.03993, -0.03736, -0.03602, -0.03524, -0.03481, -0.03458, -0.03432",\
                 "-0.0384, -0.04311, -0.04205, -0.03959, -0.0376, -0.03646, -0.03577, -0.03513, -0.03471, -0.03466",\
                 "0.0909, 0.06401, 0.0248, 0.001428, -0.01169, -0.01895, -0.02349, -0.0263, -0.02818, -0.0295",\
                 "0.3265, 0.2787, 0.1894, 0.1181, 0.07147, 0.0409, 0.02036, 0.006662, -0.00288, -0.009584",\
                 "0.6742, 0.6088, 0.4698, 0.3396, 0.2412, 0.1711, 0.1209, 0.08477, 0.05907, 0.03986",\
                 "1.141, 1.062, 0.8778, 0.6831, 0.5213, 0.396, 0.302, 0.2313, 0.1777, 0.1372",\
                 "1.735, 1.644, 1.422, 1.162, 0.9288, 0.7372, 0.5857, 0.4672, 0.3743, 0.3018",\
                 "2.464, 2.363, 2.107, 1.787, 1.478, 1.213, 0.9912, 0.8135, 0.6699, 0.5523",\
                 "3.334, 3.225, 2.941, 2.566, 2.182, 1.834, 1.537, 1.288, 1.081, 0.9082");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.03951, 0.1747, 0.4328, 0.835, 1.399, 2.142, 3.077, 4.219, 5.58");
          values("0.5296, 0.5413, 0.5499, 0.5549, 0.5593, 0.572, 0.5778, 0.5908, 0.6015, 0.6608",\
                 "0.523, 0.5309, 0.5437, 0.5512, 0.5587, 0.5657, 0.5798, 0.5875, 0.6114, 0.6443",\
                 "0.5816, 0.5682, 0.5574, 0.5559, 0.5603, 0.5697, 0.5838, 0.5875, 0.6048, 0.6414",\
                 "0.7396, 0.7023, 0.6478, 0.6133, 0.594, 0.5915, 0.5914, 0.6106, 0.6081, 0.6755",\
                 "1.006, 0.949, 0.8398, 0.7611, 0.7002, 0.6674, 0.6514, 0.6436, 0.6439, 0.7075",\
                 "1.389, 1.317, 1.159, 1.012, 0.9048, 0.8258, 0.7722, 0.7294, 0.716, 0.767",\
                 "1.901, 1.815, 1.616, 1.398, 1.226, 1.093, 0.9837, 0.901, 0.8568, 0.9124",\
                 "2.55, 2.454, 2.217, 1.934, 1.682, 1.487, 1.332, 1.203, 1.092, 1.167",\
                 "3.347, 3.24, 2.97, 2.628, 2.298, 2.011, 1.798, 1.603, 1.466, 1.601",\
                 "4.299, 4.183, 3.881, 3.485, 3.079, 2.706, 2.403, 2.163, 1.982, 2.329");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.03951, 0.1747, 0.4328, 0.835, 1.399, 2.142, 3.077, 4.219, 5.58");
          values("0.04877, 0.07891, 0.1812, 0.3748, 0.6772, 1.1, 1.658, 2.357, 3.213, 4.234",\
                 "0.06098, 0.09158, 0.1947, 0.3892, 0.6906, 1.113, 1.671, 2.372, 3.229, 4.246",\
                 "0.07792, 0.1264, 0.246, 0.4399, 0.7416, 1.165, 1.721, 2.424, 3.279, 4.302",\
                 "0.08561, 0.1525, 0.3165, 0.5416, 0.8417, 1.263, 1.819, 2.519, 3.378, 4.399",\
                 "0.08078, 0.1672, 0.374, 0.6591, 1.002, 1.423, 1.977, 2.675, 3.532, 4.55",\
                 "0.0626, 0.1676, 0.4195, 0.7597, 1.175, 1.649, 2.202, 2.899, 3.747, 4.769",\
                 "0.0289, 0.153, 0.4502, 0.8478, 1.328, 1.884, 2.499, 3.197, 4.046, 5.06",\
                 "-0.0227, 0.1211, 0.4649, 0.9197, 1.465, 2.096, 2.803, 3.571, 4.422, 5.433",\
                 "-0.092, 0.0724, 0.4595, 0.976, 1.588, 2.29, 3.08, 3.948, 4.88, 5.897",\
                 "-0.1811, 0.0035, 0.4356, 1.013, 1.693, 2.468, 3.337, 4.297, 5.335, 6.439");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.03951, 0.1747, 0.4328, 0.835, 1.399, 2.142, 3.077, 4.219, 5.58");
          values("0.04434, 0.07856, 0.1937, 0.4127, 0.7527, 1.228, 1.857, 2.647, 3.614, 4.761",\
                 "0.06133, 0.09516, 0.211, 0.4297, 0.7705, 1.248, 1.874, 2.667, 3.628, 4.784",\
                 "0.103, 0.1524, 0.2771, 0.4949, 0.8346, 1.311, 1.938, 2.731, 3.694, 4.847",\
                 "0.1577, 0.2258, 0.3927, 0.6251, 0.9622, 1.437, 2.064, 2.851, 3.819, 4.966",\
                 "0.2242, 0.3132, 0.5238, 0.8135, 1.167, 1.639, 2.262, 3.05, 4.014, 5.157",\
                 "0.3031, 0.4133, 0.6719, 1.017, 1.439, 1.928, 2.547, 3.331, 4.291, 5.438",\
                 "0.3954, 0.527, 0.8356, 1.24, 1.728, 2.293, 2.929, 3.707, 4.663, 5.804",\
                 "0.5024, 0.6564, 1.015, 1.483, 2.036, 2.677, 3.396, 4.191, 5.14, 6.278",\
                 "0.6244, 0.8008, 1.21, 1.744, 2.366, 3.079, 3.884, 4.764, 5.729, 6.86",\
                 "0.7631, 0.9616, 1.422, 2.022, 2.718, 3.507, 4.389, 5.367, 6.418, 7.566");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.03951, 0.1747, 0.4328, 0.835, 1.399, 2.142, 3.077, 4.219, 5.58");
          values("0.04189, 0.09059, 0.2615, 0.5877, 1.1, 1.815, 2.744, 3.94, 5.392, 7.114",\
                 "0.04666, 0.0907, 0.2622, 0.5885, 1.099, 1.813, 2.757, 3.943, 5.393, 7.116",\
                 "0.08518, 0.1368, 0.2722, 0.5879, 1.098, 1.814, 2.754, 3.942, 5.391, 7.116",\
                 "0.139, 0.2056, 0.3767, 0.6256, 1.098, 1.812, 2.751, 3.936, 5.391, 7.116",\
                 "0.2055, 0.2931, 0.499, 0.7982, 1.178, 1.816, 2.749, 3.937, 5.391, 7.112",\
                 "0.2842, 0.3954, 0.6456, 0.9904, 1.425, 1.953, 2.768, 3.932, 5.381, 7.114",\
                 "0.3742, 0.5096, 0.8122, 1.202, 1.704, 2.281, 2.973, 3.981, 5.374, 7.101",\
                 "0.477, 0.6382, 0.9954, 1.445, 1.991, 2.653, 3.387, 4.258, 5.475, 7.101",\
                 "0.5932, 0.7804, 1.198, 1.707, 2.309, 3.034, 3.862, 4.758, 5.828, 7.272",\
                 "0.719, 0.9314, 1.409, 1.993, 2.66, 3.435, 4.34, 5.351, 6.42, 7.697");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.001, 0.03951, 0.1747, 0.4328, 0.835, 1.399, 2.142, 3.077, 4.219, 5.58");
          values("0.05241, 0.1099, 0.3107, 0.696, 1.296, 2.134, 3.244, 4.641, 6.341, 8.364",\
                 "0.05812, 0.1098, 0.3115, 0.6959, 1.294, 2.136, 3.245, 4.636, 6.335, 8.371",\
                 "0.0964, 0.1511, 0.3151, 0.696, 1.295, 2.135, 3.24, 4.634, 6.344, 8.371",\
                 "0.1525, 0.2202, 0.4036, 0.7105, 1.294, 2.134, 3.238, 4.633, 6.34, 8.362",\
                 "0.2204, 0.3096, 0.5252, 0.8474, 1.326, 2.134, 3.241, 4.634, 6.339, 8.36",\
                 "0.3008, 0.4124, 0.67, 1.038, 1.513, 2.192, 3.242, 4.632, 6.334, 8.365",\
                 "0.3938, 0.5286, 0.8392, 1.247, 1.786, 2.428, 3.33, 4.637, 6.33, 8.359",\
                 "0.4994, 0.6562, 1.024, 1.489, 2.071, 2.788, 3.619, 4.765, 6.348, 8.357",\
                 "0.6198, 0.8024, 1.223, 1.753, 2.386, 3.163, 4.064, 5.107, 6.516, 8.387",\
                 "0.7548, 0.9624, 1.436, 2.042, 2.736, 3.558, 4.549, 5.628, 6.915, 8.606");
        }
      }
    }
  }

