静态时序分析

静态时序分析(英语:Static Timing Analysis, STA),或称静态时序验证,是电子工程中,对数字电路的时序进行计算、预计的工作流程,该流程不需要通过输入激励的方式进行仿真。[1]

传统上,人们常常将工作时钟频率作为高性能的集成电路的特性之一。为了测试电路在指定速率下运行的能力,人们需要在设计过程中测量电路在不同工作阶段的延迟。此外,在不同的设计阶段(例如逻辑综合布局布线以及一些后续阶段)需要对时间优化程序内部进行延迟计算Delay calculation)。尽管可以通过严格的SPICE电路仿真来进行此类时间测量,但是这种方法在实用中耗费大量时间。静态时序分析在电路时序快速、准确的测量中扮演了重要角色。静态时序分析能够更快速地完成任务,是因为它使用了简化的模型,而且它有限地考虑了信号之间的逻辑互动。静态时序分析在最近几十年中,成为了相关设计领域中的主要技术方法。

静态时序分析的最早描述之一是基于1966年的计划评核术[2]它的一些更现代的版本和算法则出现于1980年代前期。[3][4][5]

目的

在一个同步数字系统中,数据的流动应当以一致的步伐进行,即时间脉冲信号每改变一次,数据能够改变一次。这种运作方式是通过同步的数字电路器件,例如触发器或锁存器来实现的,这类器件以时钟信号为指示将其输入端的数据复制到其输出端。在同步电路中,只存在两种时序错误:

  • 保持时间违例:时钟信号有效变化之后,如果输入信号没能保持足够长的时间,数据将不能在下一个时钟信号变化时被记录下来;
  • 建立时间违例:时钟信号有效变化之前,如果输入信号没能保持足够长的时间,数据将不能在那个时钟信号变化时被记录下来。

电路所需信号可能在不同的时间到来,其原因可能是输入数据本身产生的时间不同,或是电路进行了不同的操作,器件温度和偏置电压不同,也可能是因为电路中不同部分的制造工艺不同。采用硬件描述语言进行设计时,使用不同语言结构,例如if或者case来表示看似相同的功能,逻辑综合后硬件的时序很可能不同。[1]静态时序分析的主要目的是在上述可能的电路偏移情况存在的情况下,验证所有信号能够准时到达,并保证电路的正常功能。

静态时序分析可以检查电路中各条路径诸如毛刺、延迟路径和时钟偏移等问题。

概念定义

  • 关键路径被定义为从输入端到达输出端所经历的最大延迟路径。[6]一旦电路时序通过下面所述的方法进行计算,关键路径可以很容易地通过追溯的方法被找到。
  • 到达时间是指信号到达电路指定位置所需要经历的时间。一般将时钟信号的到达时间作为参考时间,或零时刻。为了计算到达时间,需要进行该路径上所有组件的延迟计算。到达时间通常涉及一对数据,即信号改变后可能的最早到达时间以及最晚的到达时间。
  • 另一个有用的概念是需求时间,它是指信号能够到达而不至于使整体电路违背时序的设计要求。
  • 与连接有关的松弛量是指所需时间与到达时间之间的差值。 节点处一个正的松弛量表示此处的到达时间可以再增加松弛量表示的时间,仍然不会影响电路的总体延迟情况。相反的,负的松弛量则表示路径上的传输过慢,此路径的传输速率必须提高,否则由它组成的整体电路不能够以预期的速率运行。

最突出的静态时序分析技术

静态时序分析中的“静态”一词,暗示了这种时序分析是一种与输入激励无关的方式进行的,并且其目的是通过遍历所有传输路径,寻找所有输入组合下电路的最坏延迟情况。[1]这种方法的计算效率使得它有着广泛的应用,尽管它也存在一些限制。一种被称为PERT的方法在静态时序分析中使用较为普遍。事实上,PERT这个称呼是一种错误用法,在许多有关静态时序分析的文献中,所谓的PERT方法是指关键路径法,它在许多项目管理中被应用。虽然基于关键路径的方法在目前占据优势,但是其他方法,例如深度优先搜索方法,同样被一些时序分析器所使用。

接口时序分析

在芯片设计中,许多常见的问题都与设计中不同组件接口的时序有关。这些问题的产生通常是由于许多因素,包括仿真模式不完善、验证接口时序的测试情形考虑不全面、要求同步化、接口描述有误以及设计者对于黑盒组件内部了解不够等。有一些专用的计算机辅助设计工具被设计用来分析接口时序,正如另外一些专用工具被用来验证接口的功能与设计是否相符。

统计静态时序分析

统计静态时序分析Statistical Static timing analysis, SSTA)对于处理集成电路中复杂过程、环境变量正在变得越来越重要。

相关条目

延伸阅读

Online Timing diagram editor with static timing analysis

参考文献