blob: b7d558418352d4f0104fd81d51a1a2e77c661c9f [file] [log] [blame]
/*
* 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_mcu9t5v0__dffnq_1) {
area : 84.672000 ;
ff(IQ1,IQN1) {
clocked_on : "(!CLKN)" ;
next_state : "D" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "!CLKN&!D" ;
value : "0.00057607" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "!CLKN&D" ;
value : "0.00059488" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "CLKN&!D" ;
value : "0.000496694" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "CLKN&D" ;
value : "0.0004928605" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
value : "0.00059488" ;
}
pg_pin(VDD) {
voltage_name : VDD ;
pg_type : primary_power ;
}
pg_pin(VSS) {
voltage_name : VSS ;
pg_type : primary_ground ;
}
pin(CLKN) {
capacitance : 0.004997 ;
clock : true ;
direction : input ;
driver_waveform_rise : driver_waveform_default_rise ;
driver_waveform_fall : driver_waveform_default_fall ;
input_voltage : default ;
max_transition : 2.8 ;
min_period : 0.5293 ;
min_pulse_width_high : 0.1998 ;
min_pulse_width_low : 0.2237 ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
when : "!D" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.4898, 0.4907, 0.5059, 0.5579, 0.6544, 0.7982, 0.992, 1.237, \
1.537, 1.893");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.3116, 0.3117, 0.3236, 0.3685, 0.4517, 0.5801, 0.753, 0.9737, \
1.244, 1.566");
}
}
internal_power() {
when : "D" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.4907, 0.4914, 0.5066, 0.5586, 0.655, 0.7988, 0.9928, 1.238, \
1.537, 1.894");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.3113, 0.3113, 0.3232, 0.3681, 0.4512, 0.5794, 0.7525, 0.9732, \
1.244, 1.566");
}
}
timing() {
related_pin : "CLKN" ;
sdf_cond : "ENABLE_NOT_D === 1'b1" ;
timing_type : min_pulse_width ;
when : "!D" ;
fall_constraint(scalar) {
values("0.21");
}
rise_constraint(scalar) {
values("0.1998");
}
}
timing() {
related_pin : "CLKN" ;
sdf_cond : "ENABLE_D === 1'b1" ;
timing_type : min_pulse_width ;
when : "D" ;
fall_constraint(scalar) {
values("0.2237");
}
rise_constraint(scalar) {
values("0.1827");
}
}
timing() {
related_pin : "CLKN" ;
sdf_cond : "ENABLE_NOT_D === 1'b1" ;
timing_type : minimum_period ;
when : "!D" ;
fall_constraint(scalar) {
values("0.4524");
}
}
timing() {
related_pin : "CLKN" ;
sdf_cond : "ENABLE_D === 1'b1" ;
timing_type : minimum_period ;
when : "D" ;
fall_constraint(scalar) {
values("0.5293");
}
}
}
pin(D) {
capacitance : 0.003897 ;
direction : input ;
driver_waveform_rise : driver_waveform_default_rise ;
driver_waveform_fall : driver_waveform_default_fall ;
input_voltage : default ;
max_transition : 2.8 ;
nextstate_type : data ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
when : "!CLKN" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.1029, 0.1053, 0.123, 0.1638, 0.2322, 0.3306, 0.461, 0.6266, \
0.8291, 1.071");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.007489, 0.008606, 0.02082, 0.05497, 0.1147, 0.2021, 0.3194, \
0.4686, 0.6513, 0.8704");
}
}
internal_power() {
when : "CLKN" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.369, 0.3707, 0.3838, 0.4236, 0.4969, 0.6064, 0.7541, 0.9402, \
1.168, 1.438");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.2401, 0.2409, 0.2515, 0.285, 0.3466, 0.4407, 0.569, 0.733, 0.9345, \
1.175");
}
}
timing() {
related_pin : "CLKN" ;
timing_type : hold_falling ;
fall_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.0114, 0.0187, 0.0316, 0.0639, 0.0983, 0.1395, 0.194, 0.2624, 0.329, 0.409",\
"0.0056, 0.0129, 0.0248, 0.0555, 0.0932, 0.1414, 0.1893, 0.2556, 0.325, 0.404",\
"-0.0095, -0.0094, 0.009, 0.0374, 0.0764, 0.1122, 0.1682, 0.2347, 0.302, 0.38",\
"-0.0444, -0.0403, -0.026, -0, 0.0401, 0.0805, 0.1255, 0.1869, 0.262, 0.335",\
"-0.0915, -0.0862, -0.0688, -0.0401, -0.0107, 0.0336, 0.075, 0.1336, 0.201, 0.281",\
"-0.1394, -0.1414, -0.1275, -0.0977, -0.0671, -0.0239, 0.019, 0.0744, 0.137, 0.212",\
"-0.2068, -0.2023, -0.1886, -0.1628, -0.1336, -0.0966, -0.0514, -0.002, 0.058, 0.13",\
"-0.2797, -0.273, -0.2618, -0.235, -0.2077, -0.1755, -0.1342, -0.079, -0.023, 0.036",\
"-0.363, -0.3593, -0.3427, -0.3177, -0.2937, -0.2608, -0.2213, -0.1713, -0.1216, -0.056",\
"-0.453, -0.4474, -0.4318, -0.4124, -0.3875, -0.3625, -0.3251, -0.2802, -0.2238, -0.165");
}
rise_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.0687, 0.0735, 0.0904, 0.1322, 0.1794, 0.2429, 0.3162, 0.3914, 0.476, 0.568",\
"0.0665, 0.0709, 0.0865, 0.1263, 0.1765, 0.2467, 0.3132, 0.3864, 0.473, 0.571",\
"0.0566, 0.06, 0.0808, 0.117, 0.1672, 0.2296, 0.2981, 0.3794, 0.465, 0.558",\
"0.0434, 0.0508, 0.0651, 0.1034, 0.163, 0.2232, 0.2892, 0.3694, 0.459, 0.551",\
"0.0369, 0.0456, 0.0599, 0.1003, 0.1545, 0.213, 0.2845, 0.3664, 0.452, 0.543",\
"0.0389, 0.0405, 0.0613, 0.0963, 0.1524, 0.215, 0.2905, 0.3654, 0.457, 0.548",\
"0.0504, 0.052, 0.0712, 0.1051, 0.1596, 0.2234, 0.2973, 0.3794, 0.466, 0.559",\
"0.0736, 0.0752, 0.0901, 0.1306, 0.178, 0.2404, 0.3083, 0.3954, 0.476, 0.572",\
"0.1053, 0.107, 0.1248, 0.1555, 0.2091, 0.2703, 0.3405, 0.4194, 0.502, 0.6",\
"0.1545, 0.1564, 0.1704, 0.2064, 0.2525, 0.3112, 0.3754, 0.4554, 0.542, 0.632");
}
}
timing() {
related_pin : "CLKN" ;
timing_type : setup_falling ;
fall_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.126, 0.1212, 0.1007, 0.0727, 0.0301, -0.0175, -0.0718, -0.1332, -0.205, -0.2866",\
"0.1283, 0.1289, 0.1062, 0.076, 0.0317, -0.017, -0.0719, -0.1337, -0.2057, -0.28",\
"0.1491, 0.1481, 0.1256, 0.0935, 0.0523, 0.0051, -0.0519, -0.1084, -0.1849, -0.2608",\
"0.1908, 0.187, 0.1682, 0.1379, 0.0915, 0.045, -0.0139, -0.0716, -0.1457, -0.2189",\
"0.247, 0.2458, 0.2278, 0.1892, 0.1492, 0.0993, 0.0423, -0.0174, -0.0886, -0.1659",\
"0.3181, 0.3138, 0.2958, 0.2631, 0.2197, 0.1672, 0.1168, 0.0503, -0.0134, -0.0877",\
"0.3998, 0.398, 0.3801, 0.3413, 0.3013, 0.2517, 0.1943, 0.1381, 0.0636, -0.004",\
"0.4954, 0.4904, 0.4694, 0.4374, 0.3924, 0.3414, 0.284, 0.2291, 0.1611, 0.0823",\
"0.6, 0.592, 0.571, 0.539, 0.492, 0.443, 0.392, 0.328, 0.259, 0.19",\
"0.713, 0.709, 0.692, 0.652, 0.609, 0.557, 0.5, 0.442, 0.375, 0.302");
}
rise_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
values("0.0859, 0.0847, 0.064, 0.0336, -0.0037, -0.0457, -0.0846, -0.1074, -0.1599, -0.1999",\
"0.0918, 0.0902, 0.0677, 0.0356, 0.0039, -0.0361, -0.0784, -0.1076, -0.1546, -0.2075",\
"0.1051, 0.1019, 0.0808, 0.048, 0.0069, -0.0306, -0.0724, -0.0994, -0.1499, -0.2013",\
"0.1225, 0.1213, 0.1, 0.0689, 0.0301, -0.0178, -0.066, -0.0908, -0.1457, -0.1958",\
"0.1455, 0.1417, 0.1217, 0.084, 0.0373, -0.0071, -0.0498, -0.0967, -0.1481, -0.1824",\
"0.1584, 0.1606, 0.1377, 0.1033, 0.0535, 0, -0.0578, -0.1042, -0.1662, -0.2207",\
"0.1747, 0.1698, 0.1477, 0.1107, 0.0666, 0.0093, -0.0514, -0.107, -0.1806, -0.2375",\
"0.1763, 0.1772, 0.1535, 0.1196, 0.0702, 0.015, -0.0496, -0.1106, -0.1897, -0.2694",\
"0.171, 0.172, 0.15, 0.115, 0.069, 0.006, -0.0555, -0.1243, -0.2114, -0.2845",\
"0.164, 0.156, 0.134, 0.103, 0.051, -0.001, -0.064, -0.142, -0.226, -0.316");
}
}
}
pin(Q) {
direction : output ;
function : "IQ1" ;
max_capacitance : 0.3764 ;
max_transition : 2.8 ;
min_capacitance : 0.001 ;
output_voltage : default ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
related_pin : "CLKN" ;
fall_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
values("0.6148, 0.6054, 0.5866, 0.5733, 0.5655, 0.5601, 0.5565, 0.554, 0.5523, 0.5511",\
"0.6144, 0.6054, 0.5862, 0.5728, 0.5647, 0.5596, 0.5561, 0.5535, 0.5519, 0.5506",\
"0.6142, 0.605, 0.5863, 0.5726, 0.5645, 0.5592, 0.5556, 0.5534, 0.5516, 0.5505",\
"0.6178, 0.6088, 0.5897, 0.5765, 0.5684, 0.5632, 0.5596, 0.5571, 0.5554, 0.5542",\
"0.6291, 0.6199, 0.6006, 0.5876, 0.5798, 0.5744, 0.5708, 0.5682, 0.5665, 0.5652",\
"0.6448, 0.6354, 0.6169, 0.6034, 0.5951, 0.5898, 0.5862, 0.5836, 0.5819, 0.5807",\
"0.6657, 0.6568, 0.6375, 0.6242, 0.616, 0.6106, 0.607, 0.6045, 0.6028, 0.6015",\
"0.6908, 0.6818, 0.6622, 0.6487, 0.6403, 0.6351, 0.6314, 0.6287, 0.6269, 0.6257",\
"0.7174, 0.7078, 0.6882, 0.6745, 0.6661, 0.6608, 0.6571, 0.6547, 0.6529, 0.6516",\
"0.7476, 0.7382, 0.7188, 0.7049, 0.6962, 0.6905, 0.6869, 0.6846, 0.6827, 0.6815");
}
rise_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
values("0.7257, 0.7201, 0.709, 0.7008, 0.6947, 0.6934, 0.6908, 0.6939, 0.6958, 0.6982",\
"0.7257, 0.7201, 0.7091, 0.7008, 0.6948, 0.6931, 0.6928, 0.6943, 0.6973, 0.6975",\
"0.727, 0.7217, 0.7097, 0.7026, 0.6973, 0.6946, 0.6936, 0.6962, 0.6992, 0.6989",\
"0.7323, 0.7267, 0.7155, 0.7074, 0.7015, 0.6998, 0.6994, 0.7008, 0.7039, 0.7041",\
"0.7415, 0.736, 0.7248, 0.7166, 0.7115, 0.709, 0.708, 0.71, 0.7108, 0.7133",\
"0.7537, 0.7486, 0.737, 0.7284, 0.7241, 0.7215, 0.721, 0.7229, 0.726, 0.7267",\
"0.7669, 0.7618, 0.7496, 0.7424, 0.7383, 0.7334, 0.7337, 0.7352, 0.7371, 0.74",\
"0.7811, 0.7751, 0.7651, 0.7561, 0.7514, 0.7518, 0.7491, 0.7495, 0.7508, 0.7549",\
"0.7971, 0.7908, 0.7817, 0.7714, 0.7652, 0.7652, 0.769, 0.7688, 0.7696, 0.7687",\
"0.8153, 0.81, 0.7971, 0.7904, 0.7843, 0.7799, 0.7823, 0.7882, 0.7873, 0.7887");
}
}
timing() {
related_pin : "CLKN" ;
timing_type : falling_edge ;
cell_fall(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
values("0.322, 0.334, 0.3677, 0.4201, 0.4926, 0.5912, 0.7206, 0.884, 1.084, 1.322",\
"0.3261, 0.3381, 0.3718, 0.4242, 0.4967, 0.5953, 0.7247, 0.888, 1.088, 1.326",\
"0.3444, 0.3564, 0.3901, 0.4425, 0.515, 0.6136, 0.743, 0.9063, 1.106, 1.344",\
"0.3826, 0.3947, 0.4284, 0.4807, 0.5533, 0.6518, 0.7813, 0.9446, 1.144, 1.382",\
"0.4366, 0.4486, 0.4823, 0.5346, 0.6071, 0.7056, 0.8351, 0.9984, 1.198, 1.436",\
"0.5013, 0.5132, 0.547, 0.5993, 0.6718, 0.7703, 0.8998, 1.063, 1.263, 1.501",\
"0.5748, 0.5868, 0.6205, 0.6729, 0.7454, 0.8439, 0.9733, 1.137, 1.336, 1.574",\
"0.6564, 0.6683, 0.7021, 0.7544, 0.8269, 0.9254, 1.055, 1.218, 1.418, 1.656",\
"0.7465, 0.7585, 0.7922, 0.8445, 0.917, 1.016, 1.145, 1.308, 1.508, 1.746",\
"0.8446, 0.8565, 0.8905, 0.9429, 1.015, 1.114, 1.243, 1.406, 1.606, 1.844");
}
cell_rise(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
values("0.3548, 0.3669, 0.4052, 0.4772, 0.5906, 0.7508, 0.9621, 1.229, 1.555, 1.944",\
"0.3589, 0.371, 0.4093, 0.4813, 0.5947, 0.755, 0.9662, 1.233, 1.558, 1.948",\
"0.3777, 0.3899, 0.428, 0.5002, 0.6135, 0.7737, 0.9851, 1.252, 1.577, 1.966",\
"0.4167, 0.4287, 0.4669, 0.539, 0.6524, 0.8126, 1.024, 1.291, 1.616, 2.006",\
"0.4712, 0.4832, 0.5215, 0.5935, 0.7069, 0.867, 1.078, 1.345, 1.671, 2.06",\
"0.5372, 0.5493, 0.5874, 0.6595, 0.7729, 0.9332, 1.145, 1.411, 1.737, 2.126",\
"0.6118, 0.6238, 0.662, 0.7341, 0.8474, 1.007, 1.219, 1.486, 1.812, 2.2",\
"0.6936, 0.7056, 0.7442, 0.8163, 0.9295, 1.09, 1.301, 1.568, 1.893, 2.282",\
"0.7835, 0.7954, 0.8342, 0.906, 1.019, 1.18, 1.391, 1.658, 1.984, 2.371",\
"0.882, 0.8939, 0.9319, 1.004, 1.118, 1.278, 1.489, 1.756, 2.081, 2.469");
}
fall_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
values("0.0498, 0.06274, 0.1002, 0.1655, 0.2708, 0.4279, 0.6397, 0.9104, 1.239, 1.63",\
"0.0501, 0.06294, 0.1002, 0.1653, 0.2706, 0.4278, 0.6415, 0.9092, 1.239, 1.63",\
"0.04994, 0.06274, 0.1004, 0.1656, 0.2708, 0.4283, 0.6401, 0.9098, 1.237, 1.634",\
"0.05022, 0.06284, 0.1002, 0.1655, 0.2703, 0.428, 0.6397, 0.9106, 1.24, 1.63",\
"0.04992, 0.0626, 0.1004, 0.1655, 0.2708, 0.4279, 0.6402, 0.9104, 1.238, 1.63",\
"0.05, 0.06272, 0.1004, 0.1654, 0.2706, 0.4278, 0.641, 0.9092, 1.239, 1.632",\
"0.05, 0.0628, 0.1004, 0.1656, 0.2706, 0.428, 0.6406, 0.9098, 1.238, 1.63",\
"0.05, 0.0628, 0.1004, 0.1656, 0.2708, 0.4276, 0.6396, 0.9084, 1.239, 1.63",\
"0.0504, 0.063, 0.1006, 0.1658, 0.2704, 0.4282, 0.6398, 0.9084, 1.237, 1.629",\
"0.0504, 0.0632, 0.1008, 0.1658, 0.2708, 0.4276, 0.64, 0.9096, 1.237, 1.629");
}
rise_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
index_2("0.001, 0.003591, 0.01269, 0.03005, 0.05711, 0.09507, 0.145, 0.208, 0.2848, 0.3764");
values("0.04844, 0.06506, 0.1267, 0.2514, 0.4482, 0.7268, 1.093, 1.556, 2.119, 2.793",\
"0.04854, 0.06496, 0.1267, 0.2513, 0.4485, 0.727, 1.094, 1.556, 2.119, 2.792",\
"0.04834, 0.06506, 0.1267, 0.2508, 0.4485, 0.7272, 1.094, 1.555, 2.119, 2.793",\
"0.04866, 0.0649, 0.1267, 0.2513, 0.4483, 0.7269, 1.094, 1.556, 2.119, 2.792",\
"0.04836, 0.06476, 0.1266, 0.2512, 0.4486, 0.7268, 1.094, 1.555, 2.121, 2.795",\
"0.04828, 0.06478, 0.1268, 0.2508, 0.4484, 0.727, 1.094, 1.555, 2.119, 2.793",\
"0.0484, 0.0646, 0.1268, 0.2508, 0.4482, 0.7264, 1.094, 1.555, 2.12, 2.791",\
"0.048, 0.0648, 0.1266, 0.251, 0.4482, 0.727, 1.093, 1.554, 2.119, 2.79",\
"0.048, 0.0646, 0.1266, 0.2508, 0.4486, 0.728, 1.093, 1.554, 2.119, 2.797",\
"0.0482, 0.0644, 0.1266, 0.2508, 0.4486, 0.727, 1.093, 1.554, 2.118, 2.792");
}
}
}
}