• 正文
  • 相关推荐
申请入驻 产业图谱

静态时序分析(STA)几个核心概念

09/04 13:13
2877
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

静态时序分析(STA)中,除了传播延迟和转换时间,还有几个核心概念对于确保数字芯片设计的正确性和性能至关重要。理解这些概念能帮助你更全面地把握STA,从而设计出时序更稳健的电路

概念名称 核心关注点 主要影响/作用
建立时间 (Setup Time) 时钟事件前,数据必须稳定的最小时间 确保数据能被正确捕获,影响最大工作频率
保持时间 (Hold Time) 时钟事件后,数据必须稳定的最小时间 防止新数据过早覆盖当前数据,确保采样稳定性
时钟偏斜 (Clock Skew) 同一时钟信号到达不同时序元件的时间差 直接影响时序余量,可能引起建立或保持时间违例
时钟抖动 (Clock Jitter) 时钟边沿与其理想位置的时间偏差 增加时序不确定性,影响高速设计的时序收敛
时序余量 (Slack) 所需时间与到达时间之差(正表示满足,负表示违例) 衡量时序是否满足的直接指标,指导优化方向
多周期路径 (Multicycle Path) 需要超过一个时钟周期完成数据传输的路径 合理放松时序约束,避免对长路径的过约束优化
伪路径 (False Path) 电路中实际不存在或无需时序检查的路径 减少不必要的时序分析和优化,提高工具效率
片上变异 (OCV) 同一芯片内因工艺、电压、温度差异导致的延迟变化 使时序分析更悲观严谨,确保设计在极端条件下的可靠性

时序路径分类

STA的分析基础是时序路径(Timing Path)。根据起点和终点的不同,时序路径主要分为以下几类:

路径类型 起点 终点 分析重点
输入到寄存器路径 主输入端口 (Primary Input) 时序单元的数据输入引脚 (DFF/D) 验证信号从芯片端口进入后,能否在时钟有效前稳定
寄存器到寄存器路径 时序单元的输出引脚 (DFF/Q) 时序单元的数据输入引脚 (DFF/D) 分析同步逻辑间的延迟,通常决定系统最高工作频率
寄存器到输出路径 时序单元的输出引脚 (DFF/Q) 主输出端口 (Primary Output) 验证信号经过内部逻辑后,能否在规定时间内输出到引脚
输入到输出路径 主输入端口 (Primary Input) 主输出端口 (Primary Output) 分析纯组合逻辑路径的延迟
时钟路径 时钟源 (Clock Source) 时序单元的时钟引脚 (DFF/CK) 计算时钟延迟、偏斜,为建立和保持时间分析提供基础

建立时间与保持时间

这是STA中最基本且关键的两种时序检查,直接关系到触发器能否正确采样数据。

建立时间 (Setup Time):指在时钟信号有效边沿到来之前,输入数据必须保持稳定的最短时间。建立时间违例通常是因为数据路径延迟过长,无法在时钟捕获沿前准备好。

保持时间 (Hold Time):指在时钟信号有效边沿到来之后,输入数据必须继续维持稳定的最短时间。保持时间违例通常是因为数据路径延迟过短,新数据变化太快干扰了当前数据的捕获。

建立时间和保持时间共同定义了触发器数据输入端的稳定采样窗口

时钟特性:偏斜与抖动

在非理想的现实世界中,时钟信号并不完美,其特性直接影响时序分析。

时钟偏斜 (Clock Skew):指同一个时钟信号到达芯片内部不同触发器时钟端的时间差异。偏斜可能由时钟路径上的缓冲器(Buffer)延迟和走线延迟差异引起。时钟偏斜会直接“吃掉”时序余量,过大的偏斜可能导致建立或保持时间违例。

时钟抖动 (Clock Jitter):指时钟边沿与其理想位置存在的随机时间偏差。抖动可以看作时钟周期的不稳定性,它会增加时序分析的不确定性。在STA中,抖动通常是时钟不确定性(Clock Uncertainty) 的一个组成部分。

时序余量:Slack

Slack是衡量时序是否满足要求的直接指标。它表示信号到达时间与要求时间的差值。

正Slack:表示时序满足要求,且还有多少富余时间。

负Slack:表示时序违例,设计必须修改以消除负Slack。

最差负Slack (WNS, Worst Negative Slack):所有时序路径中最严重的违例值,是关注的重点。

总负Slack (TNS, Total Negative Slack):所有违例路径的Slack之和,衡量时序违例的总体严重程度。

时序例外

时序例外(Timing Exceptions)用于告诉STA工具不要对某些路径进行默认的时序检查,或需要采用不同的检查方式。

多周期路径 (Multicycle Path):用于约束那些需要多个时钟周期才能稳定下来的数据路径。例如,一个复杂的算法单元可能需要3个周期完成计算,其输出到下游寄存器的路径就可以设置为多周期路径(例如set_multicycle_path 3 -setup)。这避免了工具对其进行不必要的单周期时序优化,节省资源。

伪路径 (False Path):用于标识那些物理存在逻辑上不可能无需关心其时序的路径。例如,跨时钟域的路径(在没有同步器的情况下,其时序由异步协议保证,而非同步时序)、测试逻辑的功能路径等。设置伪路径(set_false_path)可以避免工具在这些路径上浪费优化精力。

片上变异

片上变异(On-Chip Variation, OCV)是指在同一颗芯片上,由于制造工艺的微观起伏、局部电压差异以及温度分布不均等因素,导致不同位置的相同单元或互连线具有不同的延迟特性。OCV分析通过在STA中引入降额因子(Derating Factor),对单元延迟和线延迟进行加大(对于最大延迟分析) 或减小(对于最小延迟分析),从而在时序分析中考虑这种工艺波动带来的影响,使分析结果更悲观、更可靠。

多时钟域时序验证

现代SoC设计通常包含多个时钟域。验证这些不同时钟域之间接口的时序是一项复杂任务,关键在于定义时钟关系

同步时钟:如果两个时钟同源且存在确定的整数倍频关系,则它们之间的路径可以进行时序分析。需要正确定义这些时钟的周期和相位关系。

异步时钟:如果两个时钟来源不同或没有确定的相位关系(例如来自两个不同的晶振),则它们之间的时序路径不能用传统的STA方法验证。对于异步时钟域,必须使用专门的同步器(如两级触发器) 来处理数据传递,而STA的作用是验证同步器本身的建立/保持时间是否满足。

总结与建议

静态时序分析是一个深度和广度都很可观的领域。这些关键概念相互关联,共同构成了芯片时序sign-off的基础。

对于深入探索,建议你:

动手实践:理论学习结合EDA工具(如Synopsys PrimeTime)的实际操作,通过查看时序报告来理解这些概念的具体体现。

阅读文档:仔细阅读Foundry提供的标准单元库(.lib)文档,理解其中对时序弧、建立/保持时间等参数的定义和建模方式。

研究算法:若感兴趣,可以进一步了解STA背后的算法,如图搜索算法用于路径分析,以及更先进的统计静态时序分析(SSTA) 如何应对工艺波动带来的挑战。

 

相关推荐