此系列文章为在学校时的笔记总结,主要记录总结Xilinx Vivado工具中的时序约束。
主时钟(primary clock)
主时钟应首先被定义,因为其他时序约束往往以主时钟为参照标准。主时钟的定义往往应定义在输入端口,而不是clock buffer的输出端口。如下图所示:
针对主时钟进入时钟专用单元,则对主时钟输入端进行约束,时钟专用单元输出时钟将以主时钟作为树根节点进行约束调整。 针对差分时钟信号输入,主时钟约束应在差分时钟正相端进行约束,而不是在正反相上均进行约束,以避免错误的CDC路径。 约束原语:create_clock -name -period -waveform {} [get_ports ]
虚拟时钟
虚拟时钟并没有连接到任何物理线网。虚拟时钟同样使用create_ clock命令定义,但不定义源(get_port)。 虚拟时钟往往用于在下列情景中指定输入输出延迟约束 :- 外部IO参考时钟并不是设计中的时钟
- I/O路径参考时钟来源于FPGA内部派生时钟,但内部派生时钟与主时钟的频率关系并不是整数倍。
- 仅针对I/O指定不同的jitter和latency
- 虚拟时钟必须在用于约束I/O延迟之前被定义。