/*
 * 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_12) {
    area : 57.075200 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.231 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0302, 0.1327, 0.3284, 0.6333, 1.061, 1.624, 2.333, 3.199, 4.231");
          values("-0.03355, -0.02857, -0.02513, -0.02407, -0.02372, -0.02352, -0.02338, -0.0233, -0.02323, -0.02322",\
                 "-0.04718, -0.03967, -0.03062, -0.02661, -0.02509, -0.02439, -0.02399, -0.02372, -0.02353, -0.02344",\
                 "-0.05029, -0.04712, -0.03844, -0.03201, -0.02852, -0.0266, -0.02553, -0.02488, -0.02447, -0.02416",\
                 "-0.02282, -0.02791, -0.03163, -0.03038, -0.02824, -0.02665, -0.02562, -0.02504, -0.02458, -0.0243",\
                 "0.03637, 0.02288, 0.001959, -0.00968, -0.01533, -0.0182, -0.01973, -0.02062, -0.02137, -0.02188",\
                 "0.1281, 0.107, 0.06766, 0.03696, 0.01781, 0.005808, -0.002035, -0.00742, -0.01092, -0.01358",\
                 "0.2538, 0.2261, 0.1685, 0.1158, 0.07812, 0.05231, 0.03419, 0.02085, 0.0113, 0.004369",\
                 "0.4154, 0.3821, 0.3071, 0.2323, 0.1716, 0.1271, 0.09372, 0.06901, 0.05058, 0.0367",\
                 "0.6153, 0.5764, 0.4864, 0.3866, 0.3023, 0.235, 0.1834, 0.1431, 0.1124, 0.08821",\
                 "0.8552, 0.812, 0.7069, 0.5848, 0.4735, 0.3792, 0.3071, 0.2477, 0.2017, 0.1639");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0302, 0.1327, 0.3284, 0.6333, 1.061, 1.624, 2.333, 3.199, 4.231");
          values("0.3544, 0.3648, 0.3735, 0.3766, 0.3829, 0.3908, 0.3993, 0.4019, 0.4256, 0.5162",\
                 "0.3371, 0.3464, 0.3617, 0.3706, 0.3805, 0.3884, 0.3918, 0.4073, 0.4163, 0.5153",\
                 "0.3456, 0.3452, 0.349, 0.3601, 0.3697, 0.38, 0.387, 0.397, 0.4221, 0.5265",\
                 "0.3841, 0.3759, 0.3661, 0.361, 0.3661, 0.3767, 0.3867, 0.3994, 0.4168, 0.5405",\
                 "0.4532, 0.4379, 0.41, 0.3937, 0.3817, 0.3833, 0.3888, 0.3943, 0.4218, 0.5683",\
                 "0.5558, 0.5329, 0.492, 0.4528, 0.4291, 0.4118, 0.411, 0.4066, 0.4328, 0.6382",\
                 "0.6959, 0.6652, 0.6075, 0.55, 0.5068, 0.4763, 0.453, 0.4431, 0.471, 0.7977",\
                 "0.8759, 0.8383, 0.761, 0.6859, 0.6202, 0.5744, 0.5343, 0.4998, 0.5551, 1.118",\
                 "1.097, 1.054, 0.9591, 0.8626, 0.7729, 0.7031, 0.6508, 0.6046, 0.7336, 1.804",\
                 "1.365, 1.314, 1.202, 1.084, 0.9727, 0.8711, 0.7973, 0.7789, 1.207, 3.374");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0302, 0.1327, 0.3284, 0.6333, 1.061, 1.624, 2.333, 3.199, 4.231");
          values("0.04691, 0.07225, 0.1581, 0.3209, 0.5746, 0.9302, 1.399, 1.988, 2.71, 3.567",\
                 "0.06584, 0.09324, 0.1801, 0.3436, 0.5972, 0.9535, 1.421, 2.013, 2.731, 3.592",\
                 "0.08626, 0.138, 0.2572, 0.4236, 0.6778, 1.034, 1.503, 2.092, 2.814, 3.671",\
                 "0.08736, 0.1623, 0.3402, 0.5676, 0.8326, 1.189, 1.657, 2.247, 2.966, 3.825",\
                 "0.0657, 0.165, 0.3987, 0.7035, 1.05, 1.431, 1.899, 2.488, 3.208, 4.066",\
                 "0.0181, 0.1415, 0.4322, 0.812, 1.25, 1.728, 2.239, 2.829, 3.548, 4.404",\
                 "-0.0585, 0.0904, 0.4389, 0.8918, 1.419, 2, 2.62, 3.274, 3.998, 4.854",\
                 "-0.1672, 0.0081, 0.4143, 0.9421, 1.556, 2.237, 2.97, 3.743, 4.552, 5.422",\
                 "-0.3102, -0.1082, 0.3571, 0.9612, 1.661, 2.441, 3.285, 4.179, 5.114, 6.088",\
                 "-0.4898, -0.2617, 0.2662, 0.9464, 1.732, 2.609, 3.563, 4.576, 5.641, 6.749");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0302, 0.1327, 0.3284, 0.6333, 1.061, 1.624, 2.333, 3.199, 4.231");
          values("0.0662, 0.1129, 0.268, 0.5608, 1.016, 1.654, 2.495, 3.551, 4.844, 6.376",\
                 "0.08877, 0.135, 0.2923, 0.5872, 1.043, 1.682, 2.519, 3.58, 4.87, 6.41",\
                 "0.1577, 0.2238, 0.3871, 0.6818, 1.138, 1.778, 2.616, 3.677, 4.969, 6.506",\
                 "0.2465, 0.3396, 0.5655, 0.8703, 1.324, 1.964, 2.805, 3.864, 5.156, 6.689",\
                 "0.3625, 0.4784, 0.7709, 1.159, 1.623, 2.26, 3.096, 4.157, 5.449, 6.982",\
                 "0.5056, 0.6476, 0.9983, 1.48, 2.037, 2.68, 3.515, 4.572, 5.861, 7.401",\
                 "0.6787, 0.8482, 1.255, 1.823, 2.493, 3.23, 4.072, 5.123, 6.41, 7.947",\
                 "0.8849, 1.081, 1.551, 2.193, 2.972, 3.837, 4.767, 5.824, 7.107, 8.638",\
                 "1.124, 1.348, 1.882, 2.599, 3.476, 4.468, 5.539, 6.675, 7.963, 9.493",\
                 "1.399, 1.652, 2.252, 3.047, 4.011, 5.125, 6.336, 7.624, 8.981, 10.51");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0302, 0.1327, 0.3284, 0.6333, 1.061, 1.624, 2.333, 3.199, 4.231");
          values("0.0376, 0.07821, 0.2186, 0.4869, 0.9044, 1.491, 2.26, 3.232, 4.417, 5.838",\
                 "0.04676, 0.07866, 0.2184, 0.4878, 0.908, 1.49, 2.262, 3.231, 4.422, 5.833",\
                 "0.09294, 0.1408, 0.2501, 0.4878, 0.9051, 1.49, 2.26, 3.234, 4.416, 5.829",\
                 "0.1486, 0.2178, 0.381, 0.5846, 0.9176, 1.493, 2.264, 3.233, 4.419, 5.833",\
                 "0.2148, 0.3062, 0.5214, 0.7982, 1.108, 1.549, 2.266, 3.24, 4.419, 5.835",\
                 "0.2926, 0.4054, 0.6698, 1.023, 1.416, 1.842, 2.4, 3.258, 4.426, 5.846",\
                 "0.3796, 0.5172, 0.8346, 1.251, 1.739, 2.256, 2.808, 3.494, 4.493, 5.846",\
                 "0.4774, 0.6414, 1.015, 1.497, 2.063, 2.687, 3.336, 4.024, 4.849, 5.998",\
                 "0.5832, 0.7768, 1.206, 1.756, 2.401, 3.118, 3.88, 4.678, 5.509, 6.481",\
                 "0.698, 0.9242, 1.414, 2.036, 2.753, 3.562, 4.438, 5.345, 6.296, 7.28");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.0302, 0.1327, 0.3284, 0.6333, 1.061, 1.624, 2.333, 3.199, 4.231");
          values("0.06962, 0.1438, 0.4047, 0.9052, 1.688, 2.782, 4.225, 6.031, 8.257, 10.87",\
                 "0.07104, 0.1441, 0.406, 0.9074, 1.688, 2.782, 4.216, 6.04, 8.245, 10.88",\
                 "0.1241, 0.1901, 0.4064, 0.9048, 1.686, 2.781, 4.212, 6.032, 8.255, 10.88",\
                 "0.1821, 0.2811, 0.5039, 0.9118, 1.683, 2.777, 4.218, 6.036, 8.251, 10.86",\
                 "0.2476, 0.369, 0.675, 1.056, 1.698, 2.771, 4.216, 6.02, 8.247, 10.86",\
                 "0.3246, 0.4676, 0.843, 1.329, 1.887, 2.802, 4.21, 6.018, 8.243, 10.88",\
                 "0.4096, 0.5776, 1.005, 1.607, 2.262, 3.036, 4.257, 6.014, 8.234, 10.88",\
                 "0.5036, 0.7, 1.178, 1.873, 2.669, 3.501, 4.535, 6.084, 8.223, 10.87",\
                 "0.6102, 0.8312, 1.367, 2.135, 3.064, 4.045, 5.079, 6.418, 8.324, 10.87",\
                 "0.728, 0.9746, 1.574, 2.399, 3.452, 4.588, 5.764, 7.028, 8.692, 10.98");
        }
      }
    }
  }

