/*
 * 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_3) {
    area : 17.561600 ;

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

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

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

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

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

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

    pin(ZN) {
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.7174 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.005945, 0.0233, 0.05645, 0.1081, 0.1806, 0.2759, 0.396, 0.5427, 0.7174");
          values("-0.01196, -0.009966, -0.007657, -0.006605, -0.006252, -0.006259, -0.006004, -0.005879, -0.005809, -0.005827",\
                 "-0.01542, -0.01334, -0.01019, -0.008249, -0.007262, -0.00682, -0.006419, -0.006146, -0.006066, -0.005977",\
                 "-0.004855, -0.005485, -0.005645, -0.005899, -0.005753, -0.005741, -0.00582, -0.005633, -0.005718, -0.005767",\
                 "0.04079, 0.03492, 0.02392, 0.01491, 0.008893, 0.004758, 0.001805, -0.0001229, -0.001403, -0.002295",\
                 "0.1279, 0.1168, 0.09141, 0.06752, 0.04917, 0.03566, 0.02578, 0.01877, 0.01343, 0.009493",\
                 "0.2591, 0.2432, 0.2041, 0.1614, 0.1256, 0.09766, 0.07614, 0.05966, 0.04704, 0.0372",\
                 "0.4364, 0.4168, 0.3658, 0.3035, 0.2467, 0.1995, 0.1615, 0.1315, 0.1074, 0.08818",\
                 "0.6631, 0.6406, 0.5789, 0.4984, 0.4191, 0.3487, 0.2899, 0.2425, 0.2031, 0.1708",\
                 "0.9418, 0.9168, 0.8463, 0.7492, 0.6467, 0.5515, 0.4697, 0.4002, 0.3415, 0.2921",\
                 "1.276, 1.249, 1.17, 1.058, 0.934, 0.813, 0.7047, 0.6098, 0.5286, 0.4589");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.005945, 0.0233, 0.05645, 0.1081, 0.1806, 0.2759, 0.396, 0.5427, 0.7174");
          values("0.2229, 0.2263, 0.2309, 0.2345, 0.2349, 0.2368, 0.2382, 0.2434, 0.249, 0.254",\
                 "0.2177, 0.2205, 0.2262, 0.2306, 0.2328, 0.2354, 0.2387, 0.2443, 0.2458, 0.2531",\
                 "0.2382, 0.2362, 0.2329, 0.2322, 0.2343, 0.2371, 0.2391, 0.2421, 0.2481, 0.2526",\
                 "0.2979, 0.2905, 0.2753, 0.2617, 0.2527, 0.2505, 0.249, 0.2506, 0.2526, 0.2551",\
                 "0.4011, 0.3887, 0.3603, 0.3327, 0.3078, 0.291, 0.2801, 0.2731, 0.2697, 0.273",\
                 "0.5498, 0.5344, 0.4948, 0.4495, 0.4084, 0.3728, 0.3453, 0.3267, 0.3133, 0.3067",\
                 "0.7494, 0.7309, 0.6815, 0.6195, 0.56, 0.5064, 0.4601, 0.4216, 0.3939, 0.3756",\
                 "1.003, 0.9822, 0.9238, 0.8471, 0.7667, 0.6935, 0.6284, 0.5692, 0.5204, 0.4847",\
                 "1.314, 1.291, 1.226, 1.134, 1.034, 0.9401, 0.8547, 0.7726, 0.7036, 0.6522",\
                 "1.685, 1.661, 1.589, 1.485, 1.368, 1.25, 1.14, 1.04, 0.9473, 0.8852");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.005945, 0.0233, 0.05645, 0.1081, 0.1806, 0.2759, 0.396, 0.5427, 0.7174");
          values("0.05112, 0.0677, 0.1245, 0.2316, 0.3981, 0.6315, 0.939, 1.327, 1.801, 2.366",\
                 "0.06071, 0.07731, 0.1345, 0.2417, 0.4085, 0.6423, 0.9503, 1.339, 1.81, 2.376",\
                 "0.07482, 0.1007, 0.1713, 0.2795, 0.4463, 0.6798, 0.9874, 1.375, 1.848, 2.413",\
                 "0.07323, 0.11, 0.2084, 0.3481, 0.5214, 0.7537, 1.06, 1.447, 1.92, 2.483",\
                 "0.05258, 0.1002, 0.2273, 0.4056, 0.6226, 0.8725, 1.178, 1.562, 2.034, 2.597",\
                 "0.0113, 0.0694, 0.225, 0.4425, 0.7056, 1.007, 1.345, 1.729, 2.198, 2.758",\
                 "-0.0523, 0.0164, 0.1994, 0.457, 0.7674, 1.12, 1.514, 1.946, 2.42, 2.978",\
                 "-0.1411, -0.0613, 0.1498, 0.4459, 0.8032, 1.21, 1.659, 2.152, 2.686, 3.258",\
                 "-0.2564, -0.1659, 0.0727, 0.4082, 0.8126, 1.272, 1.78, 2.332, 2.931, 3.572",\
                 "-0.3998, -0.2984, -0.031, 0.3413, 0.7931, 1.306, 1.871, 2.488, 3.149, 3.859");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.005945, 0.0233, 0.05645, 0.1081, 0.1806, 0.2759, 0.396, 0.5427, 0.7174");
          values("0.06688, 0.09434, 0.1867, 0.3604, 0.6287, 1.006, 1.502, 2.13, 2.894, 3.805",\
                 "0.07809, 0.1051, 0.1981, 0.3724, 0.6425, 1.019, 1.516, 2.144, 2.907, 3.814",\
                 "0.1255, 0.1569, 0.2492, 0.4217, 0.6905, 1.069, 1.563, 2.187, 2.956, 3.862",\
                 "0.1942, 0.2357, 0.3508, 0.5266, 0.7909, 1.166, 1.661, 2.286, 3.049, 3.954",\
                 "0.2834, 0.3364, 0.4786, 0.6884, 0.9596, 1.328, 1.818, 2.439, 3.199, 4.109",\
                 "0.3928, 0.458, 0.6314, 0.8771, 1.19, 1.567, 2.049, 2.664, 3.42, 4.325",\
                 "0.5243, 0.6029, 0.8084, 1.096, 1.45, 1.874, 2.367, 2.973, 3.721, 4.62",\
                 "0.6802, 0.7717, 1.011, 1.341, 1.741, 2.213, 2.758, 3.374, 4.116, 5.003",\
                 "0.8614, 0.9656, 1.24, 1.615, 2.065, 2.584, 3.182, 3.854, 4.605, 5.487",\
                 "1.07, 1.187, 1.494, 1.917, 2.419, 2.992, 3.639, 4.371, 5.179, 6.071");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.005945, 0.0233, 0.05645, 0.1081, 0.1806, 0.2759, 0.396, 0.5427, 0.7174");
          values("0.04733, 0.07432, 0.1694, 0.3493, 0.6299, 1.026, 1.545, 2.205, 3.009, 3.95",\
                 "0.04889, 0.07426, 0.1691, 0.3498, 0.6307, 1.026, 1.546, 2.207, 3.009, 3.965",\
                 "0.08432, 0.1119, 0.1881, 0.3498, 0.6315, 1.029, 1.55, 2.207, 3.005, 3.965",\
                 "0.1372, 0.1727, 0.2691, 0.4158, 0.6443, 1.027, 1.549, 2.203, 3.006, 3.961",\
                 "0.2038, 0.2512, 0.3727, 0.5455, 0.7716, 1.075, 1.549, 2.203, 3.003, 3.962",\
                 "0.2848, 0.3456, 0.4944, 0.699, 0.9564, 1.271, 1.661, 2.23, 3.002, 3.957",\
                 "0.3796, 0.4524, 0.6356, 0.8778, 1.167, 1.517, 1.925, 2.411, 3.079, 3.966",\
                 "0.4874, 0.5752, 0.793, 1.076, 1.406, 1.79, 2.238, 2.753, 3.341, 4.111",\
                 "0.6052, 0.71, 0.9628, 1.294, 1.673, 2.096, 2.583, 3.139, 3.764, 4.462",\
                 "0.7348, 0.8572, 1.151, 1.528, 1.957, 2.437, 2.96, 3.553, 4.224, 4.967");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.005945, 0.0233, 0.05645, 0.1081, 0.1806, 0.2759, 0.396, 0.5427, 0.7174");
          values("0.08408, 0.13, 0.2922, 0.6024, 1.082, 1.765, 2.65, 3.776, 5.146, 6.787",\
                 "0.08398, 0.1301, 0.292, 0.6023, 1.083, 1.764, 2.657, 3.777, 5.15, 6.783",\
                 "0.1143, 0.1538, 0.2939, 0.6023, 1.087, 1.763, 2.651, 3.775, 5.151, 6.781",\
                 "0.1634, 0.2104, 0.353, 0.6129, 1.088, 1.767, 2.653, 3.774, 5.149, 6.781",\
                 "0.231, 0.2876, 0.446, 0.707, 1.11, 1.766, 2.659, 3.774, 5.143, 6.781",\
                 "0.3082, 0.3786, 0.5616, 0.849, 1.241, 1.811, 2.656, 3.777, 5.159, 6.774",\
                 "0.395, 0.4808, 0.6996, 1.01, 1.437, 1.979, 2.732, 3.779, 5.144, 6.786",\
                 "0.4928, 0.5948, 0.8552, 1.202, 1.652, 2.233, 2.939, 3.892, 5.159, 6.776",\
                 "0.601, 0.7182, 1.015, 1.414, 1.903, 2.508, 3.254, 4.14, 5.312, 6.819",\
                 "0.7188, 0.8542, 1.194, 1.642, 2.177, 2.811, 3.592, 4.509, 5.599, 7.001");
        }
      }
    }
  }

