时序约束与时序分析

Posted on 2020-09-06 15:54  绿叶落秋风  阅读(1325)  评论(0编辑  收藏  举报

时序约束与时序分析

一、基础知识

FPGA设计中的约束主要有时序约束、位置及区域约束和其他约束。位置和区域约束用于实现FPGA设计的端口和资源位置的指导,其他约束则泛指芯片信号和电气标准的约束。时序约束的作用则是使得时序能够满足输入时钟的要求。

时序约束的作用有:

(1)提高设计的工作频率

(2)获得正确的时序分析报告

设计者正确的时序约束,可以在软件工具下得到STA报告,可以分析静态时序。STA是忽略逻辑功能的,只是用于判断设计延时是否符合要求。这也是后仿真需要做的原因。

二、时序分析报告的组成

Timing Analyzer Settings:时序分析设置

Timing Analyzer Summary:时序分析概要

Clock Setup:时钟建立关系

tsu:输入建立时间

th:输入保持时间

tco:时钟到输出延时

tpd:管脚到管脚延时

Minimum tpd & tco:最小tPD和tCO

这是quartus中时序分析报告的内容,基于这个报告,初步理解时序约束的内容。

三、周期和时钟频率

 (1)周期:就时钟常用的描述的物理量。

最小周期tCLK=MicrotCO+tLOGIC+tNET+MicrotSU-tCLK_SKEW

其中tCLK_SKEW=tCD1-tCD2

各个物理量的作用:MicrotCO,固有寄存器延时;tLOGIC,逻辑延时;tNET,布线延时;MicrotSU,寄存器固有时钟建立时间;tCLK_SKEW时钟偏斜。

理解的话还是在图上分析。

(2)最大频率

最小周期的倒数就是最大频率。在时序报告中可以查看每条路径的最大频率fmax,最小的那个就是关键路径。

(3)quartus中时序工具

在时序报告中,可以从Clock Setup中查看每条路径的fmax。

对于有路径的界面,都可以右击调出以下命令:

1️⃣List Paths:列出路径的信息

2️⃣Locate in Assignment Editor:在Assignment Editor中定义路径。

3️⃣Located in chip Editor:在Chip Editor中定位路径

4️⃣Located in Timing Closure Floorplan:在时序收敛平面布局器中定位

5️⃣located in Last Compilation Floorplan:在最近编译结果平面布局器中定位路径

6️⃣Locate in Technology MAP Viewer:在工艺映射查看器中定位路径。

四、时钟建立时间

 理论上,数据和使能信号可以和时钟边沿同步到达。实际电路中,数据和使能信号必须先于时钟信号,这就是时钟的建立时间Tsu。如果数据或使能信号无法在大于时钟建立时间前到达,时钟触发的信号将出现亚稳态。Tsu=DataDelay-ClockDelay+MicrotSU,右式第一个是数据延时,第二个是时钟延时,第三个是寄存器固有建立时间。可以看到,最小时钟建立时间等于固有建立时间加上数据晚到于时钟信号的时间。这里的到指的是到寄存器输入口。

五、时钟保持时间

时钟保持时间tH,指能保证有效时钟沿正确采样的最小时间。tH=Clock Delay - Data Delay+MicrotH,最小保持时间等于固有保持时间加上数据早到于时钟的时间。现在还不好理解这个时间的作用,后面会有建立保持时间需要满足的条件。这里记住如何根据时钟延时和数据延时得到时钟建立保持时间即可。

六、时钟输出延时

时钟输出延时tCO=Clock Delay+Data Delay+MicroTco,也是对固有传输延时的一次修正。固有延时信息则是由触发器电路决定的,有兴趣可以看一下数字电路知识集合里面的内容,那里面就是寄存器的固有建立保持传输时间的计算。现在一般会有直接通过测试给出。

七、引脚到引脚的延时

Tpd,指的是从一个引脚输入到另外一个引脚输出所需的时间。

八、时序余量slack

这个量就是判断时序约束是否符合要求的关键描述量。slack为正,则有时序余量,设计达到要求。反之,则需要降低设计要求或者更改设计方案以实现时序要求。

前面的周期、建立时间、保持时间都需要有正的slack才能保证整个设计的时序正确。周期余量不足,数据传输会出错;建立时间和保持时间不足,会导致寄存器数据写入和读出出现错误。

九、时钟歪斜skew

同一时钟由于位置不同导致的相位不同,时钟边沿出现不同的延时,这就意味着延时需要考虑时钟延时的影响。Tskew=Tcd1(前一级寄存器)-Tcd2(后一级寄存器),物理意义是后一级相对于前一级早到的时间。

十、小结

大致了解了Altera时序约束的基本名词,为使用altera的quartus做时序约束提供了基础。