FPGA 约束:时钟不确定性推导
在 FPGA 设计过程中,约束是保证电路正确工作的关键。时钟约束是其中最重要的一种约束。时钟约束主要包括时钟频率、时钟偏移等内容。其中时钟不确定性是导致电路出现时序问题的主要原因之一。本文介绍如何在 Quartus II 中推导时钟不确定性。
首先,我们需要给出时钟的起始点和终止点,即 Clock Source 和 Clock Sink。Clock Source 通常为时钟源节点(如 PLL),而 Clock Sink 为时钟接收节点。以 D 触发器为例,D 触发器的时钟输入端为 Clock Sink。
接下来,我们需要计算时钟路径的总延迟。时钟路径的延迟主要由以下几个部分组成:
- 时钟路径的物理长度;
- 时钟缓存器的输入延迟;
- 时钟缓存器的输出延迟;
- 时钟网络的传输延迟。
时钟路径的物理长度可以通过 PCB 的布局图计算出来。时钟缓存器的输入延迟和输出延迟可以在 Quartus II 的 TimeQuest 中查看。时钟网络的传输延迟可以根据信号传输速度和路径长度计算得出。
然后,我们需要计算每个时钟缓存器的时钟不确定性。时钟不确定性是指时钟信号到达时钟缓存器的时间不确定性。它主要由以下几个因素决定:
- 时钟源的抖动;
- 时钟路径中的噪声;
- 时钟缓存器本身的抖动。