静态时序分析(英语:Static Timing Analysis, STA),或称静态时序验证,是电子工程中,对
数字电路的时序进行计算、预计的
工作流程,该流程不需要通过输入激励的方式进行仿真。
传统上,人们常常将工作
时钟频率作为高性能的
集成电路的特性之一。为了测试电路在指定速率下运行的能力,人们需要在设计过程中
测量电路在不同工作阶段的延迟。此外,在不同的设计阶段(例如
逻辑综合、
布局、
布线以及一些后续阶段)需要对时间优化程序内部进行延迟计算(Delay calculation)。尽管可以通过严格的
SPICE电路仿真来进行此类时间测量,但是这种方法在实用中耗费大量时间。静态时序分析在电路时序快速、准确的测量中扮演了重要角色。静态时序分析能够更快速地完成任务,是因为它使用了简化的模型,而且它有限地考虑了信号之间的逻辑互动。静态时序分析在最近几十年中,成为了相关设计领域中的主要技术方法。
静态时序分析的最早描述之一是基于1966年的
计划评核术。它的一些更现代的版本和算法则出现于1980年代前期。
在一个同步数字系统中,数据的流动应当以一致的步伐进行,即时间脉冲信号每改变一次,数据能够改变一次。这种运作方式是通过同步的数字电路器件,例如
触发器或锁存器来实现的,这类器件以时钟信号为指示将其输入端的数据复制到其输出端。在同步电路中,只存在两种时序错误:
电路所需信号可能在不同的时间到来,其原因可能是输入数据本身产生的时间不同,或是电路进行了不同的操作,器件温度和
偏置电压不同,也可能是因为电路中不同部分的制造工艺不同。采用
硬件描述语言进行设计时,使用不同语言结构,例如if或者case来表示看似相同的功能,
逻辑综合后硬件的时序很可能不同。静态时序分析的主要目的是在上述可能的电路偏移情况存在的情况下,验证所有信号能够准时到达,并保证电路的正常功能。
静态时序分析可以检查电路中各条路径诸如毛刺、延迟路径和
时钟偏移等问题。
静态时序分析中的“静态”一词,暗示了这种时序分析是一种与输入激励无关的方式进行的,并且其目的是通过遍历所有传输路径,寻找所有输入组合下电路的最坏延迟情况。这种方法的计算效率使得它有着广泛的应用,尽管它也存在一些限制。一种被称为
PERT的方法在静态时序分析中使用较为普遍。事实上,PERT这个称呼是一种错误用法,在许多有关静态时序分析的文献中,所谓的PERT方法是指
关键路径法,它在许多项目管理中被应用。虽然基于关键路径的方法在目前占据优势,但是其他方法,例如
深度优先搜索方法,同样被一些时序分析器所使用。
在芯片设计中,许多常见的问题都与设计中不同组件接口的时序有关。这些问题的产生通常是由于许多因素,包括仿真模式不完善、验证接口时序的测试情形考虑不全面、要求同步化、接口描述有误以及设计者对于黑盒组件内部了解不够等。有一些专用的计算机辅助设计工具被设计用来分析接口时序,正如另外一些专用工具被用来验证接口的功能与设计是否相符。