热门问题
时间线
聊天
视角
统计静态时序分析
来自维基百科,自由的百科全书
Remove ads
传统的静态时序分析(Static Timing Analysis,STA)长期以来是数字电路设计中的常用分析算法。但半导体器件与互连的变异性增加,带来若干传统(确定性)STA无法处理的问题。由此催生了大量关于统计静态时序分析(Statistical Static Timing Analysis,SSTA)的研究。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的Variety工具。
批评
对SSTA的若干批评包括:
- 过于复杂,尤其在面对真实的非高斯分布时。
- 难以与优化流程或算法耦合。
- 难以获取算法所需的数据。即便能获得,这些数据也可能随时间变化,因此不可靠。
- 若晶圆厂的客户认真采用SSTA,会限制制造厂改变工艺统计特性时的自由度。
- 相较于同时考虑灵敏度和相关性的增强型确定性STA,其收益相对较小。[3]
执行静态时序分析的工具
- Altera Quartus II
- 赛灵思ISE
- Synopsys Primetime(Synopsys PrimeTime)
- Cadence Encounter计时系统(Cadence Tempus)
- IBM EinsTimer
- ANSYS Path FX(ANSYS Path FX)
相关
参考
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads