静态时序分析与约束中的概念
项目总结
静态时序分析是指我们手动或者EDA工具按照芯片寄存器、查找表、内部连线所需要的固定的时间分析时序路径是否有违例的情况,并进行相应的约束。既然有静态时序分析,那么肯定有动态时序分析。动态时序分析也就是我们常说的后仿真,在实际中很少用到。静态时序分析一定要把握好以下前提:
1、静态时序分析时一定要绑好FPGA的引脚,否则布局布线没有意义,那么时序分析便是错误的。
2、静态时序分析是寄存器到寄存器之间的分析。
3、分析建立时间使用慢速模型、分析保持时间使用快速模型。
我们将会写一些列的时序分析博客,首先总结时序分析的原理,包括建立时间、保持时间、输入输出延迟。对与输入输出延迟又可以分为边沿对齐、中心对齐、SDR传输、DDR传输几种情况。然后我们将总结Quartus II 、ISE、Vivado软件的时序分析与约束方法。
时序分析与约束的意义
时序分析:时序分析的目的是通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析寄存器的建立时间、保持时间等等是需要求是否满足。
时序约束:1、告诉EDA软件设计需要满足什么样的时序指标,然后EDA软件会根据时序约束的各个参数,尽力布局布线,以达到该约束的指标。
2、协助EDA软件进行分析设计时序路径,以产生相应的时序报告。
FPGA内部时序约束
建立时间分析
常见的FPGA内部的时序分析模型如下:
时序模型如下:
接下来我们将对上面的定义进行说明:
Launch Edge :时钟的数据发射沿
Latch Edge :时钟数据的锁存沿,一般与发射沿相差一个时钟周期
DFF :D触发器
IC :内部走线延迟
LUT :查找表
Tclk1 :时钟从时钟源端口出发 到 源寄存器时钟端口的时间
Tclk2 :时钟从时钟源端口出发 到 目的寄存器时钟端口的时间
Tsu :D触发的建立时间,目标寄存器自身的特性决定。D触发器的D端口的数据必须比时钟 上升沿提前到达D触发器端口的时间
Tco :时钟上升沿到达D触发器 到 数据输出到Q端的延迟
Tdata :寄存器1的Q端 到 寄存器2D端的延迟
Tskew :Tclk2-Tclk1,时钟从时钟源端口出发 到 两个寄存器时钟端口的时间偏差。
Setup Slack :建立时间余量。从上面的时序分析,我们可以知道建立时间余量的公式:
S e t u p S l a c k = T c l k 2 + T c y c l e − T s u − ( T c l k 1 + T c o + T d a t a ) Setup\ Slack=Tclk2+Tcycle-Tsu-(Tclk1+Tco+Tdata) Setup Slack=Tclk2+Tcycle−Tsu−(Tclk1+Tco+Tdata)
如果建立时间为正值,则说明建立时间满足要求否则不满足要求
Data Arrival Time :数据到达时间。数据到达寄存器2的时间:
D a t a A r r i v a l T i m e = T c l k 1 + T c o + T d a t a Data\ Arrival\ Time=Tclk1+Tco+Tdata Data Arrival Time=Tclk1+Tco+Tdata
Data Require Time:数据要求到达时间。数据只有在要求到达的时间之前到达,时序的建立时间才会,满足要求:
D a t a R e q u i r e T i m e = T c l k 2 + T c y c l e − T s u Data\ Require\ Time=Tclk2+Tcycle-Tsu Data Require Time=Tclk2+Tcycle−Tsu
从上面我们可以看出:
D a t a A r r i v a l T i m e = D a t a R e q u i r e T i m e − D a t a A r r i v a