From Innovus Text Command Reference manual
不妨搜一下.lib,找non_seq.
下面是一个例子。这个一个同时带preset(SN)和reset(RN)的DFF。SN和RN是有timing要求的,不能同时active,会出现race condition。这里的non_seq代表了这样的timing要求。 因为related_pin不是clock,所以是non_seq类型。
cell (DFFNSRX1) {
area : 9.234;
...
pin (SN) {
direction : "input";
related_ground_pin : VSS;
related_power_pin : VDD;
max_transition : 0.28;
capacitance : 0.00041895;
...
timing () {
related_pin : "RN";
timing_type : non_seq_hold_rising;
rise_constraint (constraint_template_2x2) {
index_1 ("0.008, 0.28");
index_2 ("0.008, 0.28");
values ( \
"-0.175869, -0.0997803", \
"-0.323921, -0.238477" \
);
}
}
timing () {
related_pin : "RN";
timing_type : non_seq_setup_rising;
rise_constraint (constraint_template_2x2) {
index_1 ("0.008, 0.28");
index_2 ("0.008, 0.28");
values ( \
"0.210001, 0.142192", \
"0.352478, 0.278772" \
);
}
}
通常PR还是要确认一下,RTL确实能保证RN,SN不会同时发生,才能disable掉non_sequential timing check。
|