Menu Close

时序分析与约束

时序分析一般指当一个信号从输入到输出的总延迟有限制,在FPGA设计及约束文件中就要对该信号加上各个方面的限制。在做好约束前,首先要对时序进行分析,掌握时序延迟由哪些要素构成,以及那个要素是关键要素等才能找出合理的解决方案。

1.静态时序分析

静态时序分析就是Static Timing Analysis,简称 STA。就是对特定的电路进行逻辑延迟布线延迟进行分析。计算各个分支的延迟,计算每条路径的总延迟,最后给最佳路径。

%title插图%num

图1 信号路径

如图1所示, 信号从输入到输出有多条路径,如果没有约束,则每条路径应该都是正确路径;即如果约束条件从输入到输出30ns,则所有的路径都满足要求。如果约束为10ns ,则只有两条路径(图中红线所标识的路径)满足要求。给定约束后EDA工具可以根据约束选择合适的路径,使系统满足时序收敛的要求。

注: 方框代表逻辑,其内的延时代表逻辑延迟 带箭头的连线代表FPGA或IC的内部布线及布线延迟

2. 静态时序分析的一些概念和关键字

时序分析结果以报告的方式体现,可以用来分析逻辑及布线路径延迟结果。帮助找出关键路径,协助分析降低延迟的办法,找出提高时钟频率的解决方案。能正确理解时序分析报告至关重要。下面列举常用的关键字及其相关的公式,并对其含义做详细的解释。

(1)周期(period)

时钟周期是定义在时序电路中时钟信号从一个上升沿到相邻上升沿持续的时间,如图2所示。

%title插图%num

图2

(2)电路的最小时钟周期( Minimum Period )

最小时钟周期是指在同步电路设计中两个组相邻寄存器的稳定输出之间要求的最小时间间隔,也就是所有发生在这段电路之间所有延时时间总合。最小时钟周期的倒数也是该部分电路允许的最大时钟频率。

%title插图%num

图3

3. 最小周期计算公式

如图4可以从Q1(dff1的Q端)稳定输出开始计算到Q2(dff2 的Q)稳定输出结束,也可以从CLK1(dff1)的上升沿开始,计算到CLK2(dff2)的上升沿结束。

时钟的最小周期为: TCLK = TCKO + TLOGIC + TNET + TSU + TSKEW

建立时间 TSU:其中SU–>setup, TSU是指信号相对于有效时钟边沿的建立时间。也就是规定在时钟有效边沿来临时,数据需要提前建立并稳定保持的时间,是信号已经稳定的最小要求时间。

时钟扭曲TSKEW:TSKEW= TCD1(时刻) – TCD2(时刻)(稳定时一般为负的);时钟线传输到达不同触发器CLK端的时间差异,如果TSKEW为负,按照图4的连接关系可以降低TCLK , 如果为正会增加TCLK

TCKO: 时钟有效边沿到Q稳定输出的时间。

TLOGIC:相邻寄存器之间的逻辑延迟。

TNET: 布线延迟,如图4所示,

Th:上升沿后为了稳定Q2,D2端需要继续保持的最小时间。

%title插图%num

图4

(2)输入到达时间 (如图5所示)

TARRIVAL = TCKO + TOUT + TLOGIC + Tnet (1)

Tclk= Tcko + Tout + Tlogic +Tnet+ Tin + Tsu + Tskew (2)

Tclk= TARRIVAL + Tsu +Tin+ Tskew    (3)

在时序电路分析时由于Tout, Tin 都非常小可以忽略。因此

Tclk= TARRIVAL + Tsu + Tskew   (4)

%title插图%num

图5

(3)有效时钟时间与不确定时间

有效时钟时间(Effective clock time)是Hold time 时间到信号变化前的时间。不确定时间(Uncertainty time)是指信号的转换时间与Setup time 时间之和,如图6所示。不确定时间主要受信号转换时间的影响,转换时间越短,相对的计算时间就会加长。

计算时间(Calculation time) 或(或传播时间)主要由Tlogic+TNET构成,因此转换时间缩短后,留给计算的时间相对也就加长了。转换时间(transition time)由FPGA芯片的性能决定,当FPGA确定后,逻辑的转换时间也就确定了。

%title插图%num

图6

(4)其它

在EDA软件中经常会看到如下与时序相关的名词,正确理解这些名词对于理解综合与布线的结果至关重要.

WNS = Worst Negative Slack 最差负时序余量, 也就是经常说的关键路径. 如果为负,EDA软件将会报出此信息,表示系统性能在哪个路径上时序最差.

TNS = Total Negative Slack = sum of the negative slack paths 总负时序余量, 所有负时序余量的总和, 如果为正说明时序很宽松,可以继续提高系统主频,如果为负就要设法消除.

WHS = Worst Hold Slack 最差保持时间余量,  一般WHS为正值, 出现负值时也要想办法消除.

THS = Total Hold Slack = sum of the negative hold slack paths 总保持时间余量,

Posted in FPGA, FPGA 教材教案, FPGA硬件资源, IC, 教材与教案, 文章

1 Comment

  1. wangff

    阅读学习本篇文章后,对时序分析有了比较清晰的认识,文中对“最小时钟周期的计算“部分讲解的很详细,并配有示例图片,对电路信号传输过程中的每段耗时均做了备注说明,特别有助于理解,很棒,谢谢老师!

发表回复

相关链接