timing. pdf 的导读图
一般时序约束的步骤按照上图的4点来进行。
-
在进行约束之前可通过vivado工具的console控制台输入tcl指令了解工程存在那些需要进行约束的时钟(P54):
reset_timing :复位所有约束设置
report_clock_networks:查看时钟网络 -
create_clocks(时钟约束)*
①输入时钟:端口进来的时钟(如果是差分时钟,只需约束p端)、GT输出、恢复时钟。 ②pll等衍生时钟:可由工具自动推倒,一般无需约束,但可以使用create_generated_clock约束,好处是,可以自定义时钟名,方便用其来生成其它约束。 ③自己分频的时钟:一定要进行时钟约束。
2.1 三种时钟的详细描述(P36)
2.2 时钟定义的先后顺序(P46):
2.3 完成时钟约束后可以在console控制台输入:report_clocks — 显示设计中所有的时钟周期和波形,用于检查时钟约束是否正确(P56)。
-
input_delays & output_delays (I/O约束)
-
set_timing_exceptions(时序例外)
①多周期路径:在设计中有些逻辑并不是要求在单周期完成,例如从源寄存器到目的寄存器要求数据更新周期是n个时钟周期的情况下。多通过set_multicycle_path命令进行定义(P159)。
②不需要分析的路径-false paths(P169)
常量或伪常量信号(P172)
互斥的路径和时钟(P173)
异步时钟-在xilinx平台中,时序分析工具默 认为所有的时钟是相关的关系,因此我们需要手动将异步的时钟分析出来。常用set_false_path或set_clock_groups -asynchronous指令(P176)。
③组合逻辑延时-没有时钟参与(P178)
4、CDC 的定义及分析(P88)