热门问题
时间线
聊天
视角

统计静态时序分析

来自维基百科,自由的百科全书

Remove ads

传统的静态时序分析(Static Timing Analysis,STA)长期以来是数字电路设计中的常用分析算法。但半导体器件与互连的变异性增加,带来若干传统(确定性)STA无法处理的问题。由此催生了大量关于统计静态时序分析Statistical Static Timing AnalysisSSTA)的研究。SSTA用概率分布替代门与互连的确定性时延,输出的是电路可能结果的分布,而非单一结果。

与传统STA的比较

确定性STA之所以被广泛采用,有其合理性:

  • 不需要向量,因此不会漏掉路径。
  • 基本算法的运行时间随电路规模线性增长。
  • 结果保守(保守估计)。
  • 通常使用相对简单的库(例如延迟与输出斜率作为输入斜率及输出负载的函数)。
  • 易于扩展为增量式以便用于优化。

但STA也有若干局限:

  • 不易处理片内相关性,尤其包含空间相关性时更难。
  • 需要许多“工艺角”(corners)来覆盖所有可能情况。
  • 当存在较大随机变异时,为始终保持保守性,结果会过于悲观,影响产品竞争力。
  • 为解决相关性问题所做的修改(如CPPR,Common Path Pessimism Removal)会使基本算法变得非线性或失去增量性,或两者兼具。

SSTA直接或间接地针对这些限制展开。首先,SSTA使用灵敏度(sensitivities)来发现时延之间的相关性。然后在统计分布相加时利用这些相关性。

从技术上讲,并无理由不能通过在每个值上保存灵敏度向量将确定性STA扩展为处理相关性与灵敏度的算法。历史上看来,这对传统STA是较大的负担,而对SSTA则显得必需,因此更早被接受。下文在对SSTA的批评中提到过提出此替代方案的观点。

Remove ads

方法

SSTA算法主要分为两类:基于路径的方法与基于块的方法。

基于路径的方法[1]将特定路径上的门和线延迟相加。统计计算较简单,但需在运行分析前识别出感兴趣的路径。若遗漏了其他相关路径,则可能影响结果,因此路径选择很重要。

基于块的方法[2]从时钟元件向前(到达时间)和向后(要求时间)在每个节点生成时间值。其优点是完整性高,无需路径选择。最大的问题是需要一种在考虑相关性的情况下计算统计最大值(或最小值)的运算,这在技术上很困难。

目前已有用于SSTA的单元表征工具,例如Altos Design Automation英语Altos Design Automation的Variety工具。

批评

对SSTA的若干批评包括:

  • 过于复杂,尤其在面对真实的非高斯分布时。
  • 难以与优化流程或算法耦合。
  • 难以获取算法所需的数据。即便能获得,这些数据也可能随时间变化,因此不可靠。
  • 若晶圆厂的客户认真采用SSTA,会限制制造厂改变工艺统计特性时的自由度。
  • 相较于同时考虑灵敏度和相关性的增强型确定性STA,其收益相对较小。[3]

执行静态时序分析的工具

现场可编程逻辑门阵列

特定应用集成电路

相关

参考

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads