FPGA时序分析与约束(4)——时序分析,时序约束,时序收敛

一、前言

        在之前的文章中,我们介绍了组合电路的时序和时序电路的时序问题,之后又把理想化的时钟变成了实际的时钟考虑了进来,在阅读本文之前,强烈推荐优先阅读本系列之前的文章,毕竟这是我们继续学习的基础,前文链接:

FPGA时序分析与约束(3)——时钟不确定性

接下来我们将介绍3个在解决FPGA时序问题时经常出现的词,分辨时序分析,时序约束,时序收敛的含义。 

二、时序分析

1、什么是时序分析

        从硬件描述语言(HDL)编写的RTL设计代码生成网表(逻辑门之间的配线信息)的过程称之为逻辑综合。最终决定逻辑综合所生成的电路网表在FPGA中以何种方式实现的两道工序成为布局和布线。FPGA内部规则地摆放着大量设计好的电路和电路间配线,用于实现用户设计。所谓的FPGA的设计流程,就是决定专为FPGA综合生成的电路摆放在哪里,电路之间以什么样的方式连接的过程。

        为了保证设计好的电路能够正常工作,不单要保证功能(逻辑)正确,还必须要保证时序正确。时序分析本质上就是一种时序检查,目的是检查设计中所有的D触发器是否能够正常工作,也就是检查D触发器的同步端口(数据输入端口)的变化是否满足建立时间要求(Setup)和保持时间要求(Hold);检查D触发器的异步端口(异步复位端口)的变化是否满足恢复时间要求(Recovery)和移除时间要求(Removal)。

2、时序分析分类

        时序分析可以分成2种:静态时序分析(STA)和动态时序分析。

2.1 动态时序分析

        将布局布线生成的布线延迟信息反标注到门级网表中进行仿真,检查是否存在时序违例。此时的仿真包括门延迟和布线延迟信息,能够较好反应芯片的实际工作情况。因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题。

2.2 静态时序分析

        采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。

        由于基于仿真的方法分析每个逻辑值并进行动态时序分析的方法太过耗时,所以FPGA的性能评估主要采用的是静态时序分析(Static Timing Analysis,STA)。

三、时序约束

        理解了时序分析,时序约束也就不难理解了。我们在进行静态时序分析之前需要撰写基本的时序约束文件,告知时序引擎一些必要的信息(比如时钟,输入输出延时等)。若没有正确的时序约束,那么时序分析的结果是没有意义的。下面我们简单介绍时序约束在STA中的作用:

3.1 约束作为声明

        某些约束只是工具的声明。该工具不需要验证这些声明的准确性或者正确性。该工具仅将其作为自己的输入,以便验证时序是否满足。通常,这是设计外部某些情况的信息——工具无法自行确定。

        对于下图的电路,以下是只用于作声明的约束的示例:

  • 输入I1到达边界的时间
  • 输入I2到达边界的时间
  • 输入I1和I2的过渡时间(transition time,信号的状态从逻辑0变到逻辑1或者从逻辑1变到逻辑0所需的时间)
  • 输出O1必须驱动的负载

3.2 约束作为断言

        另一方面,有一些约束充当断言。该工具需要验证设计符合这些约束,这正是STA所关心的。在进行各种计算之后,如果工具发现时序满足这些约束,则认为STA通过,或认为时序满足要求。相反,如果这些约束不满足要求,则认为STA或时序失败。

        例如,上图的例子中,输出O1在边界处可用的时间就是断言类约束。

3.3 约束作为指令

        在某些时候,约束可以作为工具的指令。这种情况适用于实现工具,如综合或布局布线。其他实现工具将这些约束作为它们试图满足的目标。

3.4 约束作为异常

        有些约束做相反的事情,即它们指定约束放宽的范围。假设一些路径被约束以满足某些时序,但是由于某些特殊原因,这些路径并不满足这些时序。或者说,即使要求更宽松,它们也可以很好地工作。这称为时序异常。

3.5 约束的角色变化

        有时候,同一个约束的角色也会发生变化,在设计的一个阶段,它可能是一个声明,而在另一个阶段,它可能变成一个指令。

        大部分情况下,约束本身并不指明其所起的作用,它的作用必须根据上下文来确定。

3.6 小结

        一般来说,时序约束就是为了满足设计者对于系统的时序要求,通过约束文件的方式来告知综合工具,综合工具才能以此为依据进行电路综合,布局布线。毕竟在FPGA中,“高速通道”是有限的,如果一条路线对于时序没有高要求,那完全可以采用“低速通道”来替代实现。

四、时序收敛

        时序约束描述了电路中的时序要求和时序路径,而实际电路中的各种时钟和信号延迟会影响时序路径的实际延迟。如果时序约束和实际电路之间的延迟不能匹配,会导致电路中的时序错误。

        时序收敛过程可以通过FPGA设计工具进行自动化分析和优化。在进行时序分析时,设计工具会基于时序约束和设计的布局进行路径分析,计算每个时序路径的最长延迟。如果某个时序路径的延迟超过了时序约束,则需要进行手动优化,如优化布局,调整时钟频率等。如果时序路径的延迟小于时序约束,则可以将该时序路径标记为无误差,继续进行后续的时序分析和优化。时序收敛是基于实际电路和时序约束之间的匹配,它是FPGA设计中非常重要的一个环节。一个成功的时序收敛不仅会确保电路的正确性,还可以提高电路的运行速度和可靠性。

        简单说就是时序收敛是我们根据EDA工具给出的时序报告,不断优化完善我们时序问题的过程。

五、总结

        本文中我们学习了时序分析,时序约束,时序收敛的含义,我们主要采用的时序分析方法是静态时序分析法,在后文中,我们将正式开始介绍如何进行时序分析。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

apple_ttt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值