STA(静态时序分析)总结

STA(Static Timing Analysis,即静态时序分析)在实际FPGA设计过程中的重要性是不言而喻的,其作用是:

  • 1、帮助分析和验证一个FPGA设计的时序是否符合要求;

  • 2、指导fitter(布线综合器)布局布线出符合要求的结果;

简单地说,静态时序分析(STA)告诉我们电路的实际表现如何,而提供约束(SDC文件,即上面的要求)来告诉分析工具我们希望电路的表现应该是怎样。Quartus II自带的STA工具TimeQuest TA在整个FPGA设计过程中的使用流程如下图所示:
在这里插入图片描述
简而言之,我们需要学会:

A. 正确理解时序,看背景知识介绍

B. 正确编写SDC文件,以及利用TimeQuest TA生成SDC约束命令,SDC介绍

C. 利用TimeQuest TA来查看和验证时序

一、 背景知识介绍:

1.1 启动沿(launch)和锁存沿(latch):

在这里插入图片描述
启动沿:数据被launch的时钟边沿;也就是说,每一个启动沿,一般都会产生一个新的数据!

锁存沿:数据被latch的时钟边沿;也就是说,每一个锁存沿,都会有一个新的数据被保存!

一般蓝色的上升沿作为第一个触发器的启动沿,而红色的上升沿(一般都是紧跟着启动沿后的有效边沿)。所以说:蓝色的启动沿之后由REG1输出有效数据,并在红色的边沿被锁存进REG2并输出到下级。

1.2 建立(setup)和保持(hold)时间

在这里插入图片描述
上述的锁存沿会将数据保存下来,但是必须要满足一定的条件:

  • 建立时间Tsu:在时钟有效沿之前,数据必须保持稳定的最小时间;

  • 保持时间Th:在时钟有效沿之后,数据必须保持稳定的最小时间;

1.3 数据到达时间(DAT:data arrival time)

所有的信号在FPGA内部传播都会有延时,包括时钟信号、数据信号(实际上不该如此可以的区分这两种信号,在一定条件下,这两个信号可能可以相互转换,这个是题外话了),也就是说,从信号的发出点到信号的接收点,会存在一个延时,这个延时可能是因为FPGA内部空间分布所致,也有可能是因为组合逻辑造成,这里不再深究;
在这里插入图片描述

  • Tclk1:时钟信号从起点(一般是PLL输出或者时钟输入引脚)到达启动寄存器(或说启动触发器)的相应clk端口所耗的时间;

  • Tco 启动寄存器内部延时,是寄存器REG1感受到有效的上升沿后,到数据真正从从REG1的Q输出之间延时;请注意:上述所谓的有效的上升沿,就是REG1.CLK,而不是CLK;所以实际的有效数据输出的时序如上图的REG1.Q;

  • Tdata:数据从上级寄存器输出Q(经过所有其他组合逻辑以及FPGA内部走线)到下级寄存器的数据输入D之间的延时;如图所示,数据从从REG1的Q流向了REG2的D,所以REG2.D实际感受到的数据时序是REG2.D;

数据到达时间,DAT:
DAT=启动沿+Tclk1+Tco+Tdata;

1.4 数据建立需要时间(DRTsu:data require time (setup))

在这里插入图片描述

  1. Tclk2,不同于上述的Tclk1,这个延时是时钟从起点(一般是PLL或者时钟输入引脚)到锁存触发器之间的延时;如上图所示,REG2实际感受到的时钟来自于其本身的clk引脚,而不是源时钟CLK,他们之间存在一个延时,即Tclk2;所以REG2实际感受到的时钟,实际上是上图的REG2.CLK;

  2. Tsu:上面分析过了,每一个数据被锁存都要满足建立时间和保持时间,Tsu就是建立时间,也就是在REG2实际感受到Latch Edge时,数据如果需要被正确锁存,就必须提前Tsu的时间来到REG2的D;

综合时钟走线延时Tclk2以及Tsu,我们得到了数据建立时间DRTsu:

数据建立时间DRTsu:
DRTsu=锁存沿+Tclk2-Tsu。

1.5 数据保持需要时间(DRTh:data require time (hold))

在这里插入图片描述

即DRTh=锁存沿+Tclk2+Th;

也就是说,数据在DRTh时间之前必须保持住不变;

1.6 建立时间裕量(Setup Slack)

建立时间裕量指的是数据到达时间和数据建立需要时间之间的关系:

在这里插入图片描述

建立时间裕量:数据要求建立时间-数据到达时间

正如上图所示
Setup Slack=DRTsu-DAT=锁存沿+Tclk2-Tsu-(启动沿+Tclk1+Tco+Tdata)

如果Setup Slack为正,则说明数据在规定的时间内达到了目标。反之,则认为数据并没有在规定的时间达到目标,此时REG2锁存的数据很有可能是亚稳态;

1.7 保持时间裕量(hold slack)

在这里插入图片描述

Hold Slack = Data Arrival Time - Data Required Time = 锁存沿+Tclk1+Tco+Tdata - (锁存沿+Tclk2+Th)

如果为正,则认为数据在被锁存的时候有足够多的稳定时间,是有效的。反之则认为数据有误或者数据可能是亚稳态;

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STAStatic Timing Analysis)静态时序分析是设计验证中非常重要的一部分,它能够保证设计的时序满足要求,并且对于设计中存在的时序问题进行诊断和修复。PT(PrimeTime)是业界较为常用的 STA 工具之一。下面是一个 PT 做 STA 静态时序分析的教程。 1. 确定时序约束 时序约束文件是进行静态时序分析的基础,它描述了设计中的时序要求。时序约束应该包括时钟频率、时钟时序、输入输出延迟等信息。在 PT 中,时序约束文件格式为 SDC(Synopsys Design Constraints)。 2. 进行时钟分析 时钟分析静态时序分析的第一步,它能够检查时钟网络中存在的时序问题。在 PT 中,我们可以使用 clock report 命令生成时钟分析报告。时钟分析报告能够帮助我们确定时钟路径、时钟树等信息。 3. 进行时序分析 在进行时序分析之前,我们需要将设计进行综合,并产生时序数据库(.db 文件)。时序分析主要包括前端分析和后端分析,前端分析主要是对时序路径进行分析,后端分析主要是对时序路径进行优化。 在 PT 中,我们可以使用 timing report 命令生成时序分析报告,报告中包括了时序路径、时序偏差等信息。我们可以根据报告中的信息进行时序优化,例如添加时钟缓冲、调整时钟路径等操作。 4. 进行时序约束修复 在进行时序分析时,PT 会给出一些违反时序约束的警告和错误信息。我们需要根据这些信息进行时序约束修复,以保证设计满足时序要求。在 PT 中,我们可以使用 constraint report 命令生成时序约束修复报告,报告中包括了需要修复的时序约束信息。 5. 进行时序分析验证 在进行时序分析之后,我们需要进行时序分析验证,以保证时序分析结果的准确性。在 PT 中,我们可以使用 report checks 命令生成时序分析验证报告,报告中包括了时序分析结果的正确性信息。 以上就是 PT 做 STA 静态时序分析的教程,希望能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值