blob: bb98d1e8696553683655bff6a3b5263db32b9f5b [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_mcu7t5v0__dffq_4) {
area : 79.027200 ;
ff(IQ1,IQN1) {
clocked_on : "CLK" ;
next_state : "D" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "!CLK&!D" ;
value : "0.000557645" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "!CLK&D" ;
value : "0.00056067" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "CLK&!D" ;
value : "0.000672155" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
when : "CLK&D" ;
value : "0.00065208" ;
}
leakage_power() {
related_pg_pin : "VDD" ;
value : "0.000672155" ;
}
pg_pin(VDD) {
voltage_name : VDD ;
pg_type : primary_power ;
}
pg_pin(VSS) {
voltage_name : VSS ;
pg_type : primary_ground ;
}
pin(CLK) {
capacitance : 0.003404 ;
clock : true ;
direction : input ;
driver_waveform_rise : driver_waveform_default_rise ;
driver_waveform_fall : driver_waveform_default_fall ;
input_voltage : default ;
max_transition : 2.6 ;
min_period : 0.6765 ;
min_pulse_width_high : 0.3189 ;
min_pulse_width_low : 0.3396 ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
when : "!D" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.3546, 0.355, 0.3625, 0.3901, 0.4432, 0.5241, 0.634, 0.7745, \
0.9465, 1.151");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.2528, 0.2527, 0.258, 0.2804, 0.3259, 0.3964, 0.4943, 0.6199, \
0.775, 0.9602");
}
}
internal_power() {
when : "D" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.3522, 0.3526, 0.3601, 0.3875, 0.4404, 0.5216, 0.6313, 0.7715, \
0.9433, 1.148");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.2517, 0.2517, 0.2569, 0.2799, 0.3253, 0.3964, 0.4943, 0.6201, \
0.7747, 0.9598");
}
}
timing() {
related_pin : "CLK" ;
sdf_cond : "ENABLE_NOT_D === 1'b1" ;
timing_type : min_pulse_width ;
when : "!D" ;
fall_constraint(scalar) {
values("0.3396");
}
rise_constraint(scalar) {
values("0.2301");
}
}
timing() {
related_pin : "CLK" ;
sdf_cond : "ENABLE_D === 1'b1" ;
timing_type : min_pulse_width ;
when : "D" ;
fall_constraint(scalar) {
values("0.2364");
}
rise_constraint(scalar) {
values("0.3189");
}
}
timing() {
related_pin : "CLK" ;
sdf_cond : "ENABLE_NOT_D === 1'b1" ;
timing_type : minimum_period ;
when : "!D" ;
rise_constraint(scalar) {
values("0.6765");
}
}
timing() {
related_pin : "CLK" ;
sdf_cond : "ENABLE_D === 1'b1" ;
timing_type : minimum_period ;
when : "D" ;
rise_constraint(scalar) {
values("0.648");
}
}
}
pin(D) {
capacitance : 0.002436 ;
direction : input ;
driver_waveform_rise : driver_waveform_default_rise ;
driver_waveform_fall : driver_waveform_default_fall ;
input_voltage : default ;
max_transition : 2.6 ;
nextstate_type : data ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
when : "!CLK" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.1994, 0.1986, 0.2001, 0.2108, 0.2347, 0.2728, 0.3257, 0.3938, \
0.4777, 0.5773");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.1301, 0.1306, 0.1337, 0.1441, 0.1638, 0.1946, 0.2368, 0.2916, \
0.3593, 0.4402");
}
}
internal_power() {
when : "CLK" ;
fall_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.01193, 0.01191, 0.01191, 0.01191, 0.01195, 0.01195, 0.01194, \
0.01194, 0.01196, 0.01195");
}
rise_power(pwr_tin_10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("-0.009496, -0.009485, -0.009444, -0.009379, -0.00937, -0.009382, \
-0.009421, -0.009458, -0.009463, -0.009456");
}
}
timing() {
related_pin : "CLK" ;
timing_type : hold_rising ;
fall_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.0801, 0.0792, 0.0888, 0.1186, 0.1392, 0.159, 0.1766, 0.1896, 0.1917, 0.1864",\
"0.0783, 0.0767, 0.0923, 0.1124, 0.1354, 0.1612, 0.1721, 0.1825, 0.187, 0.1867",\
"0.0631, 0.0665, 0.0786, 0.0963, 0.1233, 0.1497, 0.1582, 0.1693, 0.1783, 0.1739",\
"0.0329, 0.0346, 0.0464, 0.0661, 0.0881, 0.1084, 0.1249, 0.1391, 0.1417, 0.1392",\
"-0.0161, -0.0159, -0.0004, 0.0204, 0.0353, 0.0567, 0.0703, 0.0854, 0.0889, 0.0857",\
"-0.0787, -0.0794, -0.0626, -0.049, -0.0254, -0.0075, 0.0086, 0.0139, 0.0124, 0.0071",\
"-0.1584, -0.1536, -0.1453, -0.1249, -0.1097, -0.0905, -0.0803, -0.0783, -0.0748, -0.0782",\
"-0.2462, -0.248, -0.237, -0.2204, -0.1945, -0.192, -0.1828, -0.1772, -0.185, -0.1931",\
"-0.3556, -0.3576, -0.3479, -0.3315, -0.3179, -0.3048, -0.298, -0.2977, -0.3056, -0.3186",\
"-0.484, -0.4793, -0.4726, -0.4574, -0.446, -0.4375, -0.4304, -0.4379, -0.4465, -0.4611");
}
rise_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.0458, 0.0489, 0.0598, 0.0808, 0.0939, 0.1144, 0.128, 0.141, 0.1441, 0.1458",\
"0.042, 0.0447, 0.0545, 0.0732, 0.0956, 0.1158, 0.129, 0.1416, 0.1444, 0.1459",\
"0.0414, 0.0438, 0.0524, 0.0743, 0.0944, 0.111, 0.126, 0.1354, 0.1455, 0.1461",\
"0.0423, 0.0444, 0.0519, 0.0727, 0.0965, 0.1084, 0.1249, 0.1391, 0.1418, 0.1392",\
"0.0422, 0.0439, 0.0574, 0.0788, 0.0908, 0.1069, 0.1255, 0.135, 0.1321, 0.1317",\
"0.0641, 0.066, 0.0729, 0.0914, 0.1063, 0.1199, 0.1269, 0.1308, 0.1347, 0.1313",\
"0.0966, 0.0987, 0.1061, 0.1203, 0.1345, 0.1461, 0.15, 0.1574, 0.1535, 0.1489",\
"0.1506, 0.153, 0.1613, 0.1771, 0.182, 0.192, 0.193, 0.192, 0.1857, 0.1754",\
"0.2207, 0.2233, 0.2323, 0.2439, 0.2517, 0.253, 0.2574, 0.254, 0.2465, 0.2255",\
"0.314, 0.3168, 0.3266, 0.338, 0.3435, 0.3406, 0.3416, 0.3294, 0.3186, 0.301");
}
}
timing() {
related_pin : "CLK" ;
timing_type : setup_rising ;
fall_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.1374, 0.1329, 0.1209, 0.0992, 0.0681, 0.0463, 0.0298, 0.0129, 0.0093, 0.0097",\
"0.1337, 0.1342, 0.1195, 0.1033, 0.0705, 0.0479, 0.031, 0.022, 0.0101, 0.0106",\
"0.1538, 0.1453, 0.1398, 0.1123, 0.0863, 0.0632, 0.0417, 0.0341, 0.0243, 0.0277",\
"0.1944, 0.1908, 0.1731, 0.1519, 0.1289, 0.1022, 0.0853, 0.0687, 0.0654, 0.0632",\
"0.2558, 0.2551, 0.2462, 0.2217, 0.1968, 0.169, 0.1582, 0.1424, 0.1341, 0.1366",\
"0.3553, 0.3521, 0.3432, 0.3188, 0.295, 0.2698, 0.2554, 0.2365, 0.2325, 0.233",\
"0.4801, 0.4799, 0.4677, 0.4472, 0.417, 0.3909, 0.3749, 0.3586, 0.3563, 0.3507",\
"0.6268, 0.6243, 0.61, 0.5909, 0.561, 0.537, 0.5204, 0.5021, 0.4954, 0.496",\
"0.7948, 0.7948, 0.7808, 0.7578, 0.7267, 0.7057, 0.6859, 0.6685, 0.6704, 0.6642",\
"0.9842, 0.9832, 0.9662, 0.9422, 0.9211, 0.8932, 0.8752, 0.8572, 0.8542, 0.8522");
}
rise_constraint(cnst_ctin_rtin_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
values("0.1431, 0.145, 0.1281, 0.1087, 0.081, 0.0641, 0.042, 0.0291, 0.0251, 0.03",\
"0.1519, 0.147, 0.127, 0.1131, 0.0838, 0.066, 0.0433, 0.0302, 0.0261, 0.031",\
"0.1611, 0.1604, 0.1485, 0.1232, 0.0936, 0.0729, 0.0481, 0.0426, 0.0352, 0.0416",\
"0.1753, 0.1711, 0.1511, 0.1321, 0.1039, 0.0806, 0.0643, 0.0507, 0.0482, 0.0488",\
"0.1781, 0.1753, 0.1595, 0.1382, 0.1059, 0.0875, 0.0715, 0.0532, 0.0536, 0.0599",\
"0.1769, 0.1703, 0.1497, 0.13, 0.1006, 0.0824, 0.0642, 0.0529, 0.0558, 0.0591",\
"0.1584, 0.1536, 0.1389, 0.1179, 0.0861, 0.0723, 0.0482, 0.0401, 0.0368, 0.051",\
"0.1248, 0.1171, 0.1015, 0.0849, 0.0557, 0.0362, 0.0172, 0.0074, 0.0126, 0.0215",\
"0.0701, 0.0698, 0.0579, 0.0324, 0.0083, -0.0149, -0.0292, -0.0385, -0.0296, -0.0214",\
"-0.0029, -0.0038, -0.0138, -0.0343, -0.0676, -0.084, -0.0964, -0.1073, -0.1032, -0.0897");
}
}
}
pin(Q) {
direction : output ;
function : "IQ1" ;
max_capacitance : 0.9369 ;
max_transition : 2.6 ;
min_capacitance : 0.001 ;
output_voltage : default ;
related_ground_pin : VSS ;
related_power_pin : VDD ;
internal_power() {
related_pin : "CLK" ;
fall_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.001, 0.00746, 0.03014, 0.07344, 0.1409, 0.2356, 0.3601, 0.517, 0.7086, 0.9369");
values("1.003, 0.9738, 0.915, 0.8754, 0.8526, 0.8374, 0.8276, 0.8215, 0.8162, 0.8128",\
"1.002, 0.9727, 0.9158, 0.8763, 0.8522, 0.8371, 0.8272, 0.8213, 0.8159, 0.8127",\
"1.003, 0.9736, 0.9157, 0.8754, 0.8527, 0.8376, 0.8282, 0.8209, 0.816, 0.8132",\
"1.005, 0.9749, 0.9165, 0.878, 0.8543, 0.839, 0.8296, 0.8222, 0.8175, 0.8141",\
"1.007, 0.9773, 0.9193, 0.8801, 0.8566, 0.8411, 0.8322, 0.8249, 0.8202, 0.8172",\
"1.01, 0.9806, 0.9228, 0.8836, 0.8597, 0.845, 0.8348, 0.8281, 0.8236, 0.8205",\
"1.014, 0.9848, 0.9273, 0.8873, 0.8642, 0.8484, 0.8384, 0.8321, 0.8272, 0.8237",\
"1.019, 0.9899, 0.932, 0.8932, 0.869, 0.8537, 0.8441, 0.837, 0.8319, 0.8289",\
"1.024, 0.9951, 0.9372, 0.8981, 0.874, 0.8588, 0.8486, 0.8423, 0.8381, 0.8344",\
"1.03, 1.001, 0.9433, 0.9041, 0.8799, 0.8644, 0.8545, 0.8476, 0.8432, 0.8405");
}
rise_power(pwr_tin_oload_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.001, 0.00746, 0.03014, 0.07344, 0.1409, 0.2356, 0.3601, 0.517, 0.7086, 0.9369");
values("1.096, 1.068, 1.026, 0.9906, 0.9658, 0.9465, 0.94, 0.9395, 0.94, 0.9414",\
"1.096, 1.069, 1.024, 0.9875, 0.9639, 0.9471, 0.9411, 0.9385, 0.9401, 0.9459",\
"1.096, 1.069, 1.026, 0.9867, 0.9643, 0.9474, 0.9392, 0.9333, 0.9398, 0.9456",\
"1.095, 1.07, 1.024, 0.9865, 0.9641, 0.9475, 0.9398, 0.9333, 0.9399, 0.9397",\
"1.098, 1.072, 1.027, 0.9897, 0.9665, 0.9504, 0.9428, 0.9396, 0.9434, 0.9509",\
"1.101, 1.074, 1.031, 0.9927, 0.9697, 0.9525, 0.9454, 0.9439, 0.9466, 0.9464",\
"1.108, 1.081, 1.038, 1.001, 0.9791, 0.9591, 0.951, 0.9489, 0.951, 0.9524",\
"1.117, 1.089, 1.047, 1.008, 0.9826, 0.9725, 0.9627, 0.9573, 0.96, 0.9614",\
"1.128, 1.101, 1.057, 1.02, 0.9951, 0.9757, 0.9802, 0.9781, 0.9742, 0.9767",\
"1.14, 1.114, 1.069, 1.032, 1.003, 0.9886, 0.9805, 0.9894, 0.9915, 0.9968");
}
}
timing() {
related_pin : "CLK" ;
timing_type : rising_edge ;
cell_fall(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.001, 0.00746, 0.03014, 0.07344, 0.1409, 0.2356, 0.3601, 0.517, 0.7086, 0.9369");
values("0.4386, 0.4509, 0.4835, 0.5331, 0.6026, 0.6978, 0.8229, 0.9809, 1.174, 1.405",\
"0.4412, 0.4536, 0.4862, 0.5357, 0.6053, 0.7004, 0.8256, 0.9836, 1.177, 1.407",\
"0.4529, 0.4653, 0.4978, 0.5473, 0.6169, 0.7121, 0.8372, 0.9952, 1.189, 1.419",\
"0.4764, 0.4888, 0.5213, 0.5709, 0.6405, 0.7357, 0.8608, 1.019, 1.212, 1.443",\
"0.5039, 0.5162, 0.5488, 0.5983, 0.6679, 0.763, 0.8882, 1.046, 1.24, 1.47",\
"0.5296, 0.5419, 0.5746, 0.6241, 0.6938, 0.7889, 0.9141, 1.072, 1.265, 1.496",\
"0.5521, 0.5645, 0.597, 0.6466, 0.7162, 0.8113, 0.9365, 1.094, 1.288, 1.518",\
"0.5695, 0.5818, 0.6144, 0.6639, 0.7335, 0.8287, 0.9538, 1.112, 1.305, 1.536",\
"0.5812, 0.5935, 0.6261, 0.6756, 0.7453, 0.8404, 0.9655, 1.124, 1.317, 1.547",\
"0.5859, 0.5983, 0.6308, 0.6804, 0.75, 0.8452, 0.9703, 1.128, 1.322, 1.552");
}
cell_rise(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.001, 0.00746, 0.03014, 0.07344, 0.1409, 0.2356, 0.3601, 0.517, 0.7086, 0.9369");
values("0.433, 0.4457, 0.4822, 0.5484, 0.6529, 0.8009, 0.997, 1.245, 1.548, 1.909",\
"0.4357, 0.4485, 0.4847, 0.5508, 0.6554, 0.8036, 0.9998, 1.247, 1.55, 1.911",\
"0.4471, 0.46, 0.4964, 0.5622, 0.667, 0.8151, 1.011, 1.259, 1.562, 1.923",\
"0.4706, 0.4835, 0.5196, 0.5857, 0.6905, 0.8385, 1.035, 1.282, 1.585, 1.946",\
"0.4987, 0.5115, 0.5477, 0.6137, 0.7185, 0.8666, 1.063, 1.31, 1.613, 1.974",\
"0.5254, 0.5383, 0.5744, 0.6405, 0.7451, 0.8932, 1.089, 1.337, 1.64, 2.001",\
"0.5495, 0.5622, 0.5987, 0.6646, 0.7693, 0.9173, 1.113, 1.361, 1.664, 2.025",\
"0.5691, 0.5818, 0.6182, 0.6842, 0.7887, 0.937, 1.133, 1.381, 1.683, 2.045",\
"0.5837, 0.5965, 0.6328, 0.6988, 0.8034, 0.9515, 1.148, 1.395, 1.698, 2.059",\
"0.5919, 0.6048, 0.6409, 0.707, 0.8117, 0.9597, 1.156, 1.403, 1.706, 2.067");
}
fall_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.001, 0.00746, 0.03014, 0.07344, 0.1409, 0.2356, 0.3601, 0.517, 0.7086, 0.9369");
values("0.04394, 0.05702, 0.09238, 0.1554, 0.2581, 0.4108, 0.6175, 0.8785, 1.197, 1.578",\
"0.04404, 0.05706, 0.0925, 0.1554, 0.2581, 0.4109, 0.6178, 0.8778, 1.196, 1.578",\
"0.04396, 0.057, 0.09242, 0.1553, 0.2582, 0.4116, 0.617, 0.8785, 1.196, 1.576",\
"0.04402, 0.05702, 0.09228, 0.1555, 0.2581, 0.4113, 0.6178, 0.8776, 1.198, 1.578",\
"0.04398, 0.05704, 0.09228, 0.1556, 0.2583, 0.4109, 0.617, 0.878, 1.197, 1.577",\
"0.04394, 0.05708, 0.09242, 0.1555, 0.2584, 0.4114, 0.6168, 0.8786, 1.196, 1.577",\
"0.044, 0.057, 0.0926, 0.1552, 0.258, 0.4106, 0.6178, 0.8784, 1.197, 1.577",\
"0.0442, 0.057, 0.0924, 0.1554, 0.258, 0.411, 0.6164, 0.8766, 1.197, 1.578",\
"0.044, 0.057, 0.0924, 0.1554, 0.258, 0.4114, 0.6166, 0.8774, 1.195, 1.575",\
"0.044, 0.057, 0.0926, 0.1554, 0.2584, 0.4116, 0.617, 0.878, 1.196, 1.575");
}
rise_transition(tmg_ntin_oload_10x10) {
index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
index_2("0.001, 0.00746, 0.03014, 0.07344, 0.1409, 0.2356, 0.3601, 0.517, 0.7086, 0.9369");
values("0.0456, 0.0601, 0.114, 0.2288, 0.4127, 0.671, 1.013, 1.444, 1.969, 2.593",\
"0.0456, 0.06046, 0.1141, 0.2287, 0.4127, 0.6707, 1.012, 1.443, 1.97, 2.594",\
"0.04576, 0.06044, 0.1141, 0.2288, 0.4127, 0.6708, 1.013, 1.444, 1.97, 2.594",\
"0.04542, 0.06038, 0.114, 0.2287, 0.4127, 0.6708, 1.013, 1.444, 1.969, 2.594",\
"0.04554, 0.0604, 0.1139, 0.2288, 0.4128, 0.6706, 1.013, 1.443, 1.969, 2.594",\
"0.04534, 0.06008, 0.1139, 0.2288, 0.412, 0.6708, 1.014, 1.442, 1.97, 2.594",\
"0.0456, 0.0604, 0.114, 0.229, 0.412, 0.6718, 1.013, 1.443, 1.969, 2.596",\
"0.0454, 0.0602, 0.114, 0.2288, 0.4124, 0.6704, 1.012, 1.441, 1.97, 2.593",\
"0.0454, 0.06, 0.1142, 0.2288, 0.4122, 0.6714, 1.013, 1.442, 1.967, 2.593",\
"0.0454, 0.0602, 0.1144, 0.2292, 0.4126, 0.671, 1.011, 1.442, 1.967, 2.595");
}
}
}
}