|
发表于 2011-8-9 17:13:32
|
显示全部楼层
setup /hold time 不是固定值,和 D pin和related clock pin的transition有关,
如果transition越差 ,setup/hold time 越大,
见一个
cell (SDFCND0) {
area : 11.16;
cell_footprint : "sdfcnd1";
pg_pin (VDD) {
pg_type : primary_power;
voltage_name : COREVDD1;
}
。。。。。。
pin(D) {
direction : input;
nextstate_type : data;
related_ground_pin : VSS;
related_power_pin : VDD;
capacitance : 0.0007567;
rise_capacitance : 0.0007567;
fall_capacitance : 0.0007462;
timing () {
related_pin : "CP";
timing_type : setup_rising;
rise_constraint (constraint_template_3x3) {
index_1 ("0.0046, 0.0663, 0.5596");
index_2 ("0.0046, 0.0663, 0.5596");
values ( \
"0.07022, 0.0857, 0.1652", \
"0.05304, 0.0678, 0.1465", \
"0.02379, 0.03817, 0.1009" \
);
}
fall_constraint (constraint_template_3x3) {
index_1 ("0.0046, 0.0663, 0.5596");
index_2 ("0.0046, 0.0663, 0.5596");
values ( \
"0.09933, 0.1132, 0.2137", \
"0.07799, 0.09132, 0.1919", \
"-0.02286, -0.008814, 0.09107" \
);
}
}
timing () {
related_pin : "CP";
timing_type : hold_rising;
rise_constraint (constraint_template_3x3) {
index_1 ("0.0046, 0.0663, 0.5596");
index_2 ("0.0046, 0.0663, 0.5596");
values ( \
"-0.04327, -0.05849, -0.1232", \
"-0.0315, -0.04615, -0.1095", \
"-0.007945, -0.02199, -0.07701" \
);
}
fall_constraint (constraint_template_3x3) {
index_1 ("0.0046, 0.0663, 0.5596");
index_2 ("0.0046, 0.0663, 0.5596");
values ( \
"-0.02274, -0.03682, -0.1168", \
"-0.007162, -0.02089, -0.102", \
"0.071, 0.05877, -0.02542" \
);
}
}
然后你看
lu_table_template (constraint_template_3x3) {
variable_1 : related_pin_transition;
variable_2 : constrained_pin_transition;
index_1 ("0.0001, 0.0002, 0.0003");
index_2 ("0.0001, 0.0002, 0.0003");
}
这个表是pin和realted clock pin 的transition来构造的,
具体为什么会变 是由触发器内部结构决定的,
transition 不一样 , setup/hold time不一样 |
|