STA概念之Propagation delay、slew、skew和latency

本文详细解释了STA中的关键概念,如PropagationDelay(传播延迟)、Slew(上升或下降速率)、Skew(时钟信号偏移)和Latency(时钟延迟),以及它们在静态时序分析中的作用。着重讨论了理想时钟树、实际项目中的考虑因素,如Jitter、Margin和如何在设计中设置clocklatency和uncertainty。
摘要由CSDN通过智能技术生成

这部分内容容易混淆,为了方便记忆和理解,故从STA概念浅析之Propagation delay、slew、skew和latency - 知乎 (zhihu.com)摘录如下内容:

Propagation Delay(传播延迟)

考虑下图中反相器输入输出引脚上的波形

Propagation Delay表示为:

Output fall delay (Tf)
Output rise delay (Tr)

如果当做理想波形分析,则Propagation Delay就是两个边沿之间的延迟。

Slew

在静态时序分析中,使用transition time来测量波形上升或下降的快慢(slew rate),也就是信号在两个电平之间转换所花费的时间。transition time是slew rate的倒数。

transition time的阈值设置也可以是20%~80%或者10%~90%。

Skew(偏移)

Skew是两个或多个时钟信号之间的时间差。 例如,如果时钟树有500个端点(endpoints),并且Skew为50ps,则表示最长时钟路径和最短时钟路径之间的时间差为50ps。

时钟树的起点(beginning point)通常是时钟定义点。 时钟树的终点(end points)通常是同步元件,例如触发器的时钟端。

Clock latency(时钟延迟)是从时钟源到终点的总时间。 Clock skew是时钟树到达不同终点的时间差。

理想的时钟树(ideal clock tree)假设时钟源具有无限驱动(infinite drive)能力,也就是说,时钟可以无延迟地驱动无限多的单元。 另外,假定时钟树中存在的任何单元也具有零延迟。

在逻辑综合阶段, STA通常以理想的时钟路径执行,分析的重点放在数据路径上。

在理想的时钟树中,默认clock skew为0ps。

时钟树的clock latency可以显式地使用set_clock_latency命令指定。

set_clock_latency2.2 [get_clocks BZCLK]
# Both rise and fall latency is 2.2ns.
# Use options -rise and -fall if different.

时钟树的clock skew也可以通过set_clock_uncertainty命令指定。

set_clock_uncertainty 0.250 -setup [get_clocks BZCLK]
set_clock_uncertainty 0.100 -hold [get_clocks BZCLK]

set_clock_uncertainty指定一个窗口(window),时钟沿可能出现在该窗口内任何一个位置。

时钟边沿时序的uncertainty包含多个因素,例如时钟周期jitter和用于STA额外的margins。

实际上,没有理想的时钟,也就是说,所有的时钟都具有jitter。

在时钟树综合之前指定clock uncertainty时,应包括jitter、skew和margins。

clock uncertainty = jitter + skew + margins

在时钟树综合之后指定clock uncertainty时,不包括skew,只包括jitter,因为此时时钟树有实际的走线,可以计算出实际的skew。

可以为setup检查和hold检查指定不同的clock uncertainty。

hold检查不需要将jitter包括在uncertainty中,因此hold检查的uncertainty较小。原因是hold 是同沿check ,所以不存在clock jitter。

在实际项目中,还需要增加额外的margin,做更加悲观保守的STA分析。例如对于150ps的uncertainty,可以再增加50ps的margin。

set_clock_latency2.0 [get_clocks USBCLK]
set_clock_uncertainty 0.2 [get_clocks USBCLK]
# The 200ps may be composed of 50ps clock jitter,
# 100ps clock skew and 50ps additional pessimism.

所以在综合时,需要设置的set_clock_uncertainty为jitter + skew + margin

Reference:

Static Timing Analysis for Nanometer Designs A Practical Approach

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值