高速FPGA时序约束设计分析(1)

FPGA时序约束分析:时序路径分类

FPGA的时序路径对时序系统的稳定性有着很重要的作用,不同的时序路径对时钟和逻辑电路有着不一样的要求,时序路径确定后系统的最小时钟周期即可确定。确定的时序路径对系统时钟周期和系统的鲁棒性有着很大的影响。FPGA系统中时序路径一般分为6类:

(1)Clock-to-Setup路径

(2)Clock-to-Pad路径

(3)Clock Input路径

(4)Pad-to-Setup路径

(5)Clock-Pad-to-Output-Pad路径

(6)Pad-to-Pad路径

以上这些路径是在FPGA中经常出现,在对时序约束时也是经常遇到这些路径出现时序违约的。

(1)Clock-to-Setup路径

Clock-to-Setup路径是起始于源寄存器的时钟输入端,经过寄存器、逻辑电路和布线,终止于目标寄存器的D或者T输入端。传输延时包括寄存器输出、逻辑电路延时、布线传输延时和目标寄存器的建立时间。

针对同一时钟驱动发单沿时钟系统,寄存器、时钟和数据之间的关系如下图:
高速FPGA时序约束设计分析(1)

对于同一时钟驱动的上升沿到下降沿的驱动和不同时钟驱动的系统,Clock-to-Setup路径都需要满足寄存器建立和保持时间,这个时间是保证数据有效准确传输的基础,在满足了建立和保持时间后,即可确定系统的最小时钟周期。

Clock-to-Setup路径不能把目标寄存器的时钟端、异步复位或异步置位输入端作为路径终点,如下图所示。这种方式就会导致第二个触发器的输出很难满足数据的建立和保持时间,这样会导致数据输出错误,在逻辑设计时应当避免这种情况。

高速FPGA时序约束设计分析(1)

(2)Clock-to-Pad路径

Clock-to-Pad路径起始于寄存器的时钟输入端,终止于芯片输出引脚。传输延时包括寄存器输出、逻辑电路延时、布线传输延时和引脚输出延时。当使用偏移约束对数据传播时间进行约束时,时钟布线延时也要包含在路径延时中。其中双向端口不能作为Clock-to-Pad路径的终点。

高速FPGA时序约束设计分析(1)

(3)Clock Input路径

Clock Input时钟输入路径起始于芯片输入引脚,终止于目标寄存器的时钟输入引脚或者锁存器的使能端口。时钟输入引脚不会穿过寄存器,时钟输入路径主要用于系统的时序设计(系统的主时钟输入)。时钟输入引脚延时包括引脚延时、布线延时和逻辑延时。

(4)Pad-to-Setup路径

Pad-to-Setup路径和时钟输入路径输入端都是芯片引脚,但终止端是寄存器、锁存器的数据输入端或者RAM的输入端。

Pad-to-Setup路径延时是数据从IO口输入经过组合逻辑和布线延时到达目标寄存器或者存储器所需的最大时间。Pad-to-Setup路径时序如下图所示,其中外部裕量用于上级芯片发送数据的传输时间。

高速FPGA时序约束设计分析(1)

(5)Clock-Pad-to-Output-Pad路径

Clock-Pad-to-Output-Pad路径起始于芯片输入引脚,经过寄存器的时钟输入端,终止于芯片输出引脚。Clock-Pad-to-Output-Pad路径不会穿过寄存器的异步置位或异步复位输入端。

这个路径可以通过三态控制使能输入端。

(6)Pad-to-Pad路径

Pad-to-Pad路径起始于芯片输入引脚,终止于芯片输出引脚,包含中间所有组合逻辑,也包含输出引脚的三态控制使能输入端,是一个组合逻辑路径。Pad-to-Pad路径延时是数据从输入IO进入芯片,经过组合逻辑和布线,最好从IO口输出的最大时间,如下图。这个路径不经过寄存器,双端口RAM不能作为路径的终端。

高速FPGA时序约束设计分析(1)