文章目录
本文参考
1、【Vivado使用误区与进阶】XDC约束技巧
2、《综合与时序分析的设计约束—Synopsys设计约束(SDC)实用指南》
3、 Vivado 中的Language Template
一、XDC约束格式
set_input_delay -clock <clock_name>
-max <maxdelay>
-min <mindelay>
[get_ports <input_ports>]
-add_delay //用于DDR
-clock_fall; //用于DDR
-max <maxdelay>
描述了用于setup分析
的包含有板级走线和外部器件的延迟。
-min <mindelay>
描述了用于hold分析
的包含板级走线和外部器件的延迟。
二、系统同步接口(System Synchronous)
上游芯片只传递数据,时钟信号由系统板级同步,在系统层面上时钟信号同源,故板级走线也很重要(要学习下orcad)。
1、Single Data Rate(SDR),Rising Edge
这里的-max
为tco_max + trce_dly_max
,是时钟、数据延迟加上板级延迟的最大值,用于setup分析。这个值会影响建立时间裕量。同样-min
为tco_min +trce_dly_min
是时钟、数据延迟加上板子走线的最小延迟。这个值影响保持时间裕量。如果以此种约束下发生了时序违例,只能修改逻辑代码和修改PCB板级布线。
set input_clock <clock_name>; # Name of input clock
set tco_max 0.000; # Maximum clock to out delay (external device)
set tco_min 0.000; # Minimum clock to