FPGA时序分析深度剖析


文章目录 前言 FPGA设计的时序分析 一、时序分析的概念和必要性。 二、时序分析的分类 三、时序分析工具介绍。 四、时序约束与时序分析的关系。 五、时序分析的好处与隐患。 六、时序分析环节的输出。


前言

时序分析是FPGA开发中十分关键的一个过程,也是复杂FPGA系统开发必须进行的一步,下面摘自《FPGA之道》,一起看看对于时序分析的观点。

FPGA设计的时序分析

时序分析是形式化验证在FPGA领域中的一个非常好的应用典范,它和功能仿真环节一起,并称为FPGA基本开发流程中的验证双雄。对于大部分FPGA项目的开发来说,只要能够保证FPGA设计通过这两个环节的验证,那么项目成功的可能性就非常之大。在此,将对时序分析环节进行一些简要的概念介绍。

一、时序分析的概念和必要性。

时序分析,也叫静态时序分析,英文全称Static Timing Analysis,简称STA。它经由完整的分析方式判断IC是否能在使用者的时序环境下正常工作,为确保IC品质提供了一个很好的解决方案。也许有人会问,我的FPGA设计已经通过了功能仿真,为什么实际测试的时候感觉结果总是相差甚远呢?其实,出现这种情况,十有八九就是因为你的FPGA不满足其目前运行环境中的时序要求,例如时钟频率、传输延迟等。下面,我们就从两个方面来看一下为什么需要对FPGA设计做时序分析?
首先,要搞清楚为什么功能正确的设计在实测的时候会出现问题?这是一个从理想到现实的差距。在理想世界里,我们认为电信号的传递是瞬间的,是不需要消耗时间的,但这仅仅是一个很好的近似。在理论的学习中恰当的近似能够帮我们更好的抓住事物的本质,但在现实生活中,我们就需要考虑更加具体和细节的问题。从理论到现实,有三点需要考虑:

  •  
  •  
  •  

二、时序分析的分类

FPGA的基本开发流程中,共有两处可以进行时序分析的地方。第一处是在对FPGA芯片完成映射后,称为映射后时序分析;第二处是对FPGA芯片完成布局布线后,称为布局布线后时序分析。因此时序分析也可以依据此分为两类,不过通常来说,我们只做布局布线后的时序分析即可,因为它最贴近于FPGA芯片真实的情况。因此在这里,我们仅简要介绍一下映射后时序分析。
映射后时序分析环节是FPGA基本开发流程中一个可选的环节,由于它只能利用映射后的电路信息,所以在进行分析时无法考虑到FPGA内部的连线延迟,因此其分析结果的意义不是很大,但是相对于布局布线后时序分析,它也有属于自己的一些优势。

  • 首先,由于只考虑到门延迟,所以映射后时序分析的速度明显要比布局布线后时序分析的速度快,尤其是在设计比较复杂的时候,这种优势就更加明显。
  • 其次,映射后时序分析中,有一个叫做40/60的分析原则。所谓40/60,主要指的是如果门延迟(或者叫逻辑延迟)占电路所允许最大延迟的百分比小于40%,即门延迟与时间余量的比值小于40/60,那么布局布线后仍能满足时序要求的可能性就会很大。因此,如果我们能够通过映射后时序分析先将数字电路的门延迟改到符合40/60原则后,那么再对设计进行布局布线,就更容易满足指定的时序约束。相比之下,如果直接做布局布线后时序分析,更容易出现改好了一处错误又冒出来另一处错误的问题。不过40/60原则的约束有些过于高,我们在进行映射后时序分析时也不可生搬硬套。

三、时序分析工具介绍。

通常来说,各个FPGA厂商都会在它们的FPGA软件集成开发环境中集成自己的静态时序分析工具。对于一般的时序验证来说,这些自带的工具就够用了。
与功能仿真环节类似,样样行就难以样样精,对于专业的FPGA验证来说,一般都是要采用更加专业的静态时序分析工具。例如Synopsys公司的Prime Time,它常被用来分析大规模、同步、数字ASIC以及FPGA设计。

四、时序约束与时序分析的关系。

这是两个比较容易混淆的概念,从本质上来说,时序约束与时序分析根本是两回事。时序约束是我们写给编译器的参考,编译器会参考时序约束信息完成布局布线。而时序分析是针对布局布线后的FPGA设计进行分析,看能否实现我们的一些时序要求。由于通常情况下,我们写给编译器的时序约束内容恰恰就等价于我们对布局布线后FPGA设计的时序要求,所以在进行时序分析的时候,并不需要我们再重新写一份时序要求文件。通常,FPGA软件集成开发环境都是这样做的,编译器默认时序约束文件中的内容即是时序分析时的时序要求,所以在进行时序分析的时候,编译器会自动根据时序约束信息生成一份时序要求然后传递给自带的静态时序分析工具,这也是为什么有人经常会将时序约束与时序分析混为一谈。但是在有些情况下,我们是要自己去编写时序要求文件的,并且时序要求文件也不一定就等同于时序约束文件。

  • 情况一:当我们使用专业的静态时序分析工具时,我们从编译器中可以得到FPGA设计的资源网表和延迟信息,此时我们就需要根据需求来编写详细的时序需求,并且还需要编写如何打印时序报告的内容。
  • 情况二:时序约束是布局布线的指导,但并不代表没有时序约束的时候布局布线就一定出错,这就好比你家的桌子上有一块奶油蛋糕,不用你多说,你的孩子十有八九也会把它吃个净光。对于一些比较复杂的FPGA设计,可能经常会发现时序约束文件中漏掉了一个小项,可是这不能说明我们的设计就一定出问题,如果打算修改时序约束文件,那么肯定会影响到整体的布局布线,消耗大量时间不说,可能还会引起更多的时序问题,如果在此之前,先对漏掉的环节进行一下时序分析,如果它满足时序要求,那么就不需要修改设计,直接进行上板调试即可。尤其是当协同工作的时候,开发者与验证者很难取得一致,此时验证者必须要找出实实在在的问题才能去要求开发者修改设计或约束,所以此时,开发者写时序约束,验证者写时序分析的时序要求,这两者之间很可能有很大的差别。
  • 情况三:由于软件无法完全模拟出外界的真实情况,所以为了保险起见,我们一般会将时序约束设计的“紧”一些。例如,本来系统时钟为100MHz,在时序约束的时候我们告诉编译器这是一个110MHz的时钟,那么布局布线后的设计性能就可能会更好一些。但是在时序分析的时候我们完全没有必要这么做,如果系统时钟为100MHz,那么我们就告诉时序分析工具系统时钟是100MHz好了,此时时序分析工具会告诉你当前的设计如果工作在100MHz的时钟下,还有多少时间余量。此时我们便可以根据这个时间余量计算出理论上的最大时钟频率,如果为120MHz,那么我们就说时钟具有20%的余量,系统具有比较好的对外界干扰的抵抗能力;如果为100.1MHz,那么我们就说时钟仅有0.1%的余量,余量过小,系统可靠性无法得到较好的保证。顺便一提,通常按照经验来说,时序分析时保证设计具有10%左右的余量即可。

五、时序分析的好处与隐患。

时序分析的好处,就在于它采用了形式化的验证方法,从而能够充分保证设计的时序性能正确性。它的基本思想是将整个FPGA设计划分为很多个逻辑锥,然后通过证明每一个逻辑锥都满足时序指标从而推导出整个FPGA设计也是100%满足时序指标的。能够100%确保设计的时序满足情况,就是时序分析最大的好处,关于时序分析详细的原理请参阅【时序分析篇->时序分析的原理】章节。
但是,需要注意的是,由于时序分析中的时序要求是人写的,由于相关人员性格、心情、能力等多方面的原因,导致其无法写出100%正确、100%全面的时序要求。例如,可能对于某些关键路径没有设置脚本进行观察,从而出现遗漏等。所以实际的时序分析结果一般也难以100%证明设计的时序正确性。除此以外,有些静态时序分析工具在进行分析的时候主动的去“加紧”时序约束,潜在的对FPGA设计进行了过于严格的时序要求,从而让原本可以通过时序分析的设计出现了时序问题。因此,以上两点就是时序分析环节存在的一些隐患,在实际的工作中应该要加以注意。

六、时序分析环节的输出。

时序分析环节输出的主要内容就是时序分析报告,当然了,如果不是按照编译器默认的方法进行时序分析的话,包含时序要求信息、分析方法以及报告生成的程序文件也算一个。通过阅读时序报告,我们可以判断FPGA设计是否满足给定的时序要求,并可看到一些FPGA内部详细的门延迟和线延迟信息,这些信息是发现问题时修改设计最直接的线索。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空