时序分析基本概念介绍<Uncertainty>

电子说

1.2w人已加入

描述

今天我们要介绍的时序分析命令是 uncertainty ,简称时钟不确定性。主要用来定义Clock信号到时序器件的Clock端可能早到或晚到的时间,降低了时钟抖动jitter对有效时钟周期的影响。

值得注意的是,在setup check中,clock uncertainty是代表着降低了时钟的有效周期;而在hold check中,clock uncertainty是代表着hold check所需要满足的额外margin。

来看下面一条reg2reg path. 对照着如下时钟波形图。可以写出下面的约束。

时序分析器

时序分析器

set_clock_uncertainty-from VIRTUAL_SYS_CLK -to SYS_CLK -hold 0.05

set_clock_uncertainty -from VIRTUAL_SYS_CLK -to SYS_CLK -setup 0.3

set_clock_uncertainty -from SYS_CLK -to CFG_CLK -hold 0.05

set_clock_uncertainty -from SYS_CLK -to CFG_CLK -setup 0.1

在pre-CTS的时候,我们将时钟的不确定性设定为target的skew和jitter值之和来模拟真实的时钟;而post-CTS之后,时钟树propagate delay已经确定,skew真实存在,所以uncertainty就是时钟的真实抖动值。因此preCTS的target skew不能设置的太大或者太小,这样会造成preCTS和postCTS的correlation不好。总结一下:

在pre-CTS中,

setup的clock uncertainty = jitter + clock tree skew

hold的clock uncertainty = clock tree skew

在post-CTS中,

setup的clock uncertainty = jitter

hold的clock uncertainty = 0

对于uncertainty的设置,每种工艺,或者每种设计来说,都不尽相同。一般来说,频率较高的时钟,我们可以设置相对较小的clock uncertainty;而频率较低的或者经过分频的时钟,我们可以把clock uncertainty加大一些。

对设计的不同阶段,clock uncertainty的设置也不一样,从design的initial阶段,经过place, cts, route, extraction, signoff等步骤,每个阶段都应该设置不同的clock uncertainty,给后续每个步骤预留margin,而且数值是越来越小的趋势。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分