此篇记录FPGA的静态时序分析,在学习FPGA的过程中,越发觉得对于时序约束只是懂了个皮毛。现在记录一下自己的学习过程。
本文摘自《VIVADO从此开始》高亚军
在学习时序约束之前,先学习一下时序约束的步骤,方便后续查看一个整体的FPGA工程是否完成了所有的时序约束。
第一步,针对片内时序路径。时钟周期约束既可以覆盖这些路径。这些时钟包括从全局时钟引脚进入的时钟,MMCM/PLL生成的时钟,高速收发器提供的时钟,以及用户逻辑生成的时钟。
第二步,针对输入/输出延迟约束,可能会涉及虚拟时钟。
第三步,针对跨时钟域路径约束。
第四步,针对多周期路径/伪路径约束。
上述的这些约束何时创建呢。Xlinx建议第一步在综合后阶段执行。如采用下图所示的方法创建时钟周期约束,然后通过report_clock_networks或check_timing等命令验证约束是否生效。
在综合完成后打开open synthesized design
在tcl中输入
report_clock_networks -name clknetwork
或者在open synthesized design下选择report clock networks
对于上述的2-4步骤,xilinx建议使用constraints wizard来创建。
在使用constraints wizard这个时,需要先创建一个xdc约束。然后在打开constraints wizard。
使用他约束上述2-4步骤后,每一步都可以通过专用的tcl命令来查看约束是否生效,用以验证约束正确性和有效性。