这部分内容容易混淆,为了方便记忆和理解,故从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%。

Slew指信号电平翻转的速度,即从1变0或从0变1的翻转速度,即是指信号的翻转率,通常slew=constant/(transition time)。

transition time是指信号从高电平转化到低电平或者低电平转化到高电平所花费的时间。Transition time的长短和输入信号input transition以及output的load有关。上升和下降transition时间都是timing arc的特性,输入信号和输出信号都有上升和下降的transition时间。STA工具是通过slew的阈值来计算输入的transition时间

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐