目录
1.set_data_check基本概念及语法
set_data_check用于约束『数据-对-数据』的『建立保持』时间检查,通常被称为非时序约束 ( non-sequential constraints ), 理论上set_data_check 可以设在任意的两个data pin 上,其中一个pin 称为 constrained pin 类似于寄存器的data pin, 另一个pin 称为related pin 类似于寄存器的clock pin.
虽然约束可以设置在任意两个data pin,但实际中我们只会关心从同一时钟域到另一个相同时钟域的信号之间的skew。
其使用语法如下:
string set_data_check
-from from_object
| -rise_from from_object
| -fall_from from_object
-to to_object
| -rise_to to_object
| -fall_to to_object
[-setup | -hold]
[-clock clock_object]
[check_value]
需要说明的是:
1.不指定-setup和-hold check_value会同时对setup和hold有效
2.-clock选项指定了related pin的一个launch clk来作为分析,否则一旦related pin有多个launch clk则所有的launch clk都会分析检查
简单的格式就是:
set_data_check -from [related pin] -to [constrained pin]
from的是related pin
to的是constrained pin
2.检查path及report_timing报告格式
设related pin为pin_A,pin_A的launch flip-flop为src_reg_a, launch clk为src_clk_a
设constrained pin为pin_B,pin_B的launch flip-flop为src_reg_b, launch clk为src_clk_b
则工具会分别分析related data path和constrained data path的timing,下面分setup和hold两种情况分别介绍timing分析过程
set_data_check -from [get_pins pin_A] -to [get_pins pin_B] -setup 1000
set_data_check -from [get_pins pin_A] -to [get_pins pin_B] -hold 5000
2.1 setup
1.分析constrained pin得到data arrival time
clock src_clk_b (rise edge) 0.0 0.0
clock network delay 0.01 0.01
src_reg_b/CP 0.0 0.01
src_reg_b/Q 0.06 0.07
...............
pin_B 0.0 0.xx
data arrival time 0.xx
2.分析related pin得到 data required time
clock src_clk_a