/*
 * 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__dlya_1) {
    area : 24.147200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.3612 ;
      max_transition : 7.4 ;
      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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003486, 0.01221, 0.02888, 0.05485, 0.09128, 0.1392, 0.1996, 0.2733, 0.3612");
          values("0.1531, 0.1503, 0.1455, 0.1426, 0.1409, 0.1399, 0.1392, 0.1388, 0.1385, 0.1383",\
                 "0.1527, 0.1499, 0.1451, 0.1421, 0.1405, 0.1395, 0.1388, 0.1384, 0.1381, 0.1379",\
                 "0.1563, 0.1534, 0.1487, 0.1458, 0.144, 0.143, 0.1424, 0.142, 0.1416, 0.1414",\
                 "0.1679, 0.165, 0.1602, 0.1573, 0.1556, 0.1545, 0.1539, 0.1535, 0.1531, 0.153",\
                 "0.1883, 0.1854, 0.1806, 0.1777, 0.176, 0.175, 0.1743, 0.1738, 0.1735, 0.1733",\
                 "0.2182, 0.2154, 0.2105, 0.2076, 0.2059, 0.2049, 0.2042, 0.2038, 0.2035, 0.2033",\
                 "0.2588, 0.256, 0.2511, 0.2481, 0.2464, 0.2453, 0.2447, 0.2442, 0.2439, 0.2437",\
                 "0.3101, 0.3071, 0.3022, 0.2993, 0.2975, 0.2964, 0.2957, 0.2953, 0.295, 0.2948",\
                 "0.373, 0.3699, 0.3649, 0.3619, 0.3601, 0.359, 0.3583, 0.3579, 0.3576, 0.3573",\
                 "0.448, 0.4449, 0.4398, 0.4366, 0.4347, 0.4336, 0.4328, 0.4324, 0.432, 0.4318");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003486, 0.01221, 0.02888, 0.05485, 0.09128, 0.1392, 0.1996, 0.2733, 0.3612");
          values("0.1111, 0.1101, 0.109, 0.1088, 0.1089, 0.1094, 0.1102, 0.1106, 0.1121, 0.1144",\
                 "0.1112, 0.1102, 0.1091, 0.1088, 0.1091, 0.1096, 0.1102, 0.1106, 0.1117, 0.1144",\
                 "0.114, 0.1129, 0.1119, 0.1117, 0.1118, 0.1123, 0.1131, 0.1134, 0.1146, 0.1171",\
                 "0.1227, 0.1217, 0.1205, 0.1203, 0.1204, 0.1209, 0.1215, 0.1224, 0.1233, 0.126",\
                 "0.1386, 0.1374, 0.1362, 0.1365, 0.1365, 0.1369, 0.1374, 0.1379, 0.1395, 0.1428",\
                 "0.1625, 0.1615, 0.1601, 0.1596, 0.1606, 0.1612, 0.1617, 0.1622, 0.1631, 0.1662",\
                 "0.1951, 0.1938, 0.1927, 0.1919, 0.1921, 0.1937, 0.1948, 0.1951, 0.1955, 0.1989",\
                 "0.2368, 0.2357, 0.2343, 0.2334, 0.2333, 0.234, 0.2358, 0.2374, 0.2385, 0.2422",\
                 "0.2878, 0.2866, 0.2852, 0.2844, 0.2841, 0.2844, 0.2855, 0.2878, 0.2898, 0.2958",\
                 "0.3489, 0.3478, 0.3461, 0.3455, 0.3454, 0.3451, 0.3457, 0.3473, 0.3503, 0.3598");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003486, 0.01221, 0.02888, 0.05485, 0.09128, 0.1392, 0.1996, 0.2733, 0.3612");
          values("0.5178, 0.5482, 0.6315, 0.7593, 0.9365, 1.175, 1.487, 1.88, 2.359, 2.932",\
                 "0.5295, 0.5598, 0.643, 0.7709, 0.948, 1.187, 1.498, 1.891, 2.371, 2.943",\
                 "0.5906, 0.621, 0.7042, 0.8322, 1.009, 1.248, 1.56, 1.952, 2.432, 3.004",\
                 "0.7092, 0.7395, 0.8227, 0.9505, 1.128, 1.366, 1.678, 2.071, 2.55, 3.123",\
                 "0.8737, 0.9038, 0.9873, 1.115, 1.292, 1.531, 1.843, 2.236, 2.715, 3.287",\
                 "1.081, 1.112, 1.195, 1.323, 1.5, 1.738, 2.05, 2.443, 2.922, 3.494",\
                 "1.333, 1.364, 1.447, 1.575, 1.752, 1.991, 2.302, 2.695, 3.174, 3.747",\
                 "1.633, 1.664, 1.747, 1.875, 2.052, 2.291, 2.602, 2.995, 3.474, 4.045",\
                 "1.984, 2.014, 2.097, 2.225, 2.402, 2.641, 2.952, 3.345, 3.824, 4.396",\
                 "2.387, 2.418, 2.501, 2.629, 2.806, 3.045, 3.357, 3.749, 4.228, 4.8");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003486, 0.01221, 0.02888, 0.05485, 0.09128, 0.1392, 0.1996, 0.2733, 0.3612");
          values("0.427, 0.4569, 0.5543, 0.7385, 1.026, 1.429, 1.96, 2.629, 3.446, 4.42",\
                 "0.4364, 0.4662, 0.5637, 0.7479, 1.035, 1.438, 1.969, 2.638, 3.455, 4.427",\
                 "0.4591, 0.489, 0.5864, 0.7707, 1.057, 1.46, 1.992, 2.661, 3.479, 4.452",\
                 "0.4625, 0.4925, 0.59, 0.7737, 1.061, 1.465, 1.994, 2.664, 3.48, 4.454",\
                 "0.4355, 0.4653, 0.563, 0.747, 1.034, 1.438, 1.968, 2.636, 3.453, 4.425",\
                 "0.3729, 0.4028, 0.5, 0.6839, 0.971, 1.374, 1.904, 2.573, 3.39, 4.364",\
                 "0.2697, 0.2995, 0.3969, 0.5808, 0.8675, 1.27, 1.801, 2.468, 3.284, 4.259",\
                 "0.1237, 0.1535, 0.2507, 0.4345, 0.7211, 1.124, 1.654, 2.322, 3.138, 4.109",\
                 "-0.0696, -0.0398, 0.0575, 0.2411, 0.5278, 0.9311, 1.461, 2.129, 2.944, 3.916",\
                 "-0.3109, -0.2811, -0.184, -0.0003, 0.2865, 0.69, 1.22, 1.887, 2.704, 3.675");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003486, 0.01221, 0.02888, 0.05485, 0.09128, 0.1392, 0.1996, 0.2733, 0.3612");
          values("0.1178, 0.1492, 0.243, 0.4113, 0.6788, 1.074, 1.605, 2.282, 3.108, 4.094",\
                 "0.1175, 0.149, 0.242, 0.4108, 0.6792, 1.074, 1.606, 2.282, 3.108, 4.087",\
                 "0.1173, 0.1497, 0.2426, 0.4113, 0.679, 1.074, 1.604, 2.282, 3.109, 4.087",\
                 "0.1174, 0.1486, 0.243, 0.411, 0.6794, 1.074, 1.607, 2.282, 3.103, 4.088",\
                 "0.1174, 0.1488, 0.242, 0.4108, 0.68, 1.075, 1.605, 2.278, 3.106, 4.095",\
                 "0.1178, 0.1488, 0.2422, 0.4112, 0.679, 1.074, 1.606, 2.281, 3.104, 4.092",\
                 "0.1178, 0.1494, 0.243, 0.411, 0.6792, 1.073, 1.604, 2.279, 3.106, 4.09",\
                 "0.1182, 0.1498, 0.2428, 0.411, 0.679, 1.073, 1.605, 2.279, 3.103, 4.09",\
                 "0.119, 0.1502, 0.2432, 0.4112, 0.6798, 1.075, 1.603, 2.277, 3.102, 4.084",\
                 "0.1196, 0.1506, 0.244, 0.412, 0.6794, 1.075, 1.606, 2.279, 3.101, 4.083");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.003486, 0.01221, 0.02888, 0.05485, 0.09128, 0.1392, 0.1996, 0.2733, 0.3612");
          values("0.1027, 0.1481, 0.3162, 0.6518, 1.179, 1.917, 2.888, 4.113, 5.609, 7.392",\
                 "0.1028, 0.1481, 0.3162, 0.6517, 1.18, 1.918, 2.887, 4.11, 5.609, 7.394",\
                 "0.1028, 0.1486, 0.3163, 0.6518, 1.178, 1.918, 2.888, 4.111, 5.61, 7.39",\
                 "0.1025, 0.1482, 0.3165, 0.6517, 1.178, 1.919, 2.887, 4.114, 5.611, 7.392",\
                 "0.1028, 0.1484, 0.3164, 0.6522, 1.177, 1.919, 2.888, 4.11, 5.616, 7.414",\
                 "0.1028, 0.1488, 0.3166, 0.6526, 1.178, 1.917, 2.892, 4.12, 5.606, 7.389",\
                 "0.1034, 0.1488, 0.3166, 0.6514, 1.179, 1.916, 2.887, 4.111, 5.606, 7.395",\
                 "0.1034, 0.1486, 0.3164, 0.6514, 1.178, 1.917, 2.888, 4.113, 5.611, 7.402",\
                 "0.1036, 0.149, 0.317, 0.6518, 1.178, 1.917, 2.89, 4.111, 5.605, 7.386",\
                 "0.1036, 0.1494, 0.317, 0.6518, 1.178, 1.918, 2.891, 4.111, 5.606, 7.387");
        }
      }
    }
  }

