1.4 静态时序分析技术
随着芯片尺寸的减小和集成度密集化的增强、电路设计复杂度的增加、电路性能要求的提高等,新的变化都对芯片内的时序分析提出了更高的要求。静态时序分析是大规模集成电路设计中非常重要的一个环节,它能验证设计在时序上的正确性,并决定设计是否能够在要求的工作频率下运行。
1.4.1 静态时序分析简介
静态时序分析(static timing analysis, STA)是分析、调试并确认一个门级系统设计时序性能的比较彻底的方法。在门级电路设计过程中,为得到一个最佳的电路设计,在结构逻辑、电路布局布线等方面,时序分析起着关键性的作用。静态时序分析既要检验门级电路的最大延迟、以保证电路在指定的频率下能够满足建立时间的要求,同时又要检验门级电路的最小延迟、以满足保持时间的需求。芯片的设计只有通过了静态时序分析才能真正完成,甚至在从逻辑综合开始后的每一个设计步骤的结果都需要满足或部分满足时序的要求。
1.4.2 静态时序分析背景
集成电路设计初期流程中,设计者使用动态仿真来验证整个设计或部分设计的功能和时序。动态仿真需要专门设计的仿真向量来检验设计中的时序关键路径和时序信息。这种方法根据芯片的动态时序行为使用输入向量来检验功能路径。基于动态仿真的方法既能够验证设计的功能,也能够验证设计的时序,这是一种非常流行的时序验证策略。随着设计规模的增大,验证一个设计需要测试的向量的数量按指数级增长,而且这种方法难以保证足够的覆盖率。在大型设计中,如果仅用传统的动态仿真方法,则所需时间及工作量都难以承受。目前,设计人员在整个设计周期中需要花费50%以上的时间来执行设计的功能和时序验证。设计人员必须为验证创建独立时序向量和功能向量。创建能够彻底地检验设计中每一条路径的时序向量是非常困难的。随着设计尺寸和复杂性的增加,并且由于上市时间的压力导致整个设计周期缩短,向量产生的问题逐渐显现出来。现存的仿真工具并没有足够的性能和能力对几百万门的设计进行完整的时序仿真。更大设计的出现以及庞大的向量集合使得动态仿真在设计流程中成为一个严重的瓶颈。上市时间的压力、芯片的复杂度、传统仿真器的仿真速度和计算能力上的限制都促进了时序分析技术从动态向静态迁移。
1.4.3 静态时序分析的优缺点
时序分析是评定一个集成电路设计在特定工作频率上正常工作的能力,尽管这样的时序测量在理论上能够使用动态仿真来实现,但动态仿真的方法在实际使用中非常耗时。静态分析由于具备如下优点而在测量和优化电路时序方面扮演着重要的角色。
静态时序分析的优点如下。
1)静态时序分析执行速度快。
高性能集成电路通常根据其工作的时钟频率来描述其特性,设计者常常将工作时钟频率作为高性能的集成电路的特性之一。为了测试电路在指定速率下运行的能力,设计者需要在设计过程中测量电路在不同工作阶段的延迟。此外,在不同的设计阶段(如逻辑综合、布局、布线等)需要对时间优化程序内部进行延迟计算。尽管可以通过严格的SPICE电路仿真来进行此类时间测量,但是这种方法在实用中会耗费大量时间。静态时序分析在电路时序快速、准确的测量中扮演了重要角色。
2)静态时序分析不需要测试向量。
静态时序分析之所以能够更快速地完成任务,是因为它使用了简化的模型,而且它有限地考虑了信号之间的逻辑互动,同时不依赖于激励且能穷尽分析所有的时序路径。它不仅比动态仿真运行速度快,占用内存少,而且能分别在版图前、后根据仿真模型以及提取的寄生参数对各种时序路径进行检测。由于静态时序分析的方法不需要任何测试向量,所以所需要的时间远远少于门级动态仿真。
3)静态时序分析对于有时序路径的时序,测试覆盖率可以近乎达到100%。
静态时序分析可以降低验证的复杂性,同时静态时序分析提供一种针对大规模设计验证的有效解决方法,它将整个设计分解成一系列路径的集合,然后以此为基本单位,分析并报告每条路径的延时是否满足时序约束要求。而在动态仿真中,为了达到相同的分析覆盖率所需的仿真向量是极其庞大的,也是不可能完成的。由于静态时序分析并不基于测试向量,所以典型情况下非常快速,并且能够适应非常大的设计,同时很好地实现了近乎100%的约束覆盖率。
4)静态时序分析能够完成动态仿真所不能实现的复杂分析。
静态时序分析可以识别的时序故障数量要远多于动态仿真,例如最大和最小延时路径分析,建立和保持时间分析,时钟信号质量分析,报告不受时序约束的逻辑路径等。
静态时序分析的优点并不意味着它能够完全替代动态仿真。静态时序与动态仿真相比,也有自身的缺点,静态时序验证工具与动态仿真验证工具必须协同存在。
静态时序分析的缺点如下:
1)静态时序分析不能验证设计的功能,设计功能验证还必须使用功能仿真来实现。
2)静态时序分析只能验证同步时序电路的时序特性,如果设计中含有较多的异步电路,则应该通过门级动态仿真来验证。
3)静态时序分析不能自动识别设计中的特殊路径,比如多周期路径(multi-cycle path)、非正常路径(false path)、多时钟分配关系(multiple clock)等,这需要设计者手动地通过时序约束文件来指导静态时序分析。