时序分析之useful skew的作用分析

描述

今天要介绍的时序分析基本概念是skew,我们称为偏差。由于时钟到每个寄存器的路径延迟不一样,造成信号到达 clock pin 的时间也不一样,我们把时钟信号到达不同寄存器的时间偏差称为skew。一直以来,Skew都是衡量时钟树性能的重要参数,传统CTS的目的就是为了减小skew。

Skew的类型分为很多种,根据clock和data path的方向,skew可以分为positive skewnegative skew。如下图所示:

寄存器

对于positive skew,clock和data path在相同方向上。反之对negative skew来说,clock和data path在相反方向上。那它们对我们的design有什么影响呢?我们来看一下setup和hold的计算公式:

寄存器

我们可以得到以下结果,

对于positive skew来说,它可以减少T的时间,相当于提升芯片的performace。但是它的hold时间会变得更加难以满足

对于negative skew来说,它的hold时间更加容易满足,取而代之的是,它会降低芯片的性能。

还有另外一种skew的分类方法,是我们更为常见的,根据时钟域以及路径关系, skew 可以分为 global skew ,local skew ,interclock skew

Global skew 是指,同一时钟域,任意两个路径的最大 skew 。如下图所示,注意是任意两条路径,不管是不是timing path,都会算作gloabl skew计算的对象。CTS时,工具更关注的是global skew, 会尽可能地将global skew做小。

寄存器

Local skew 是指,同一时钟域,任意两个有逻辑关联关系的路径最大 skew 。这边需要注明,必须是存在逻辑关系的path才会计算local skew,也就是说必须要是timing path。如下图所示,我们在分析timing的时候,更多地是关注local skew。

寄存器

interClock skew 是指,不同时钟域之间路径的最大 skew,如下图所示:

寄存器

另外还有一种比较特使的skew,就是现如今用得较多的useful skew,我们称为有用偏差。一般来说,skew会恶化timing结果,但如果合理使用,那skew也可以起到修复timing的作用,从而提高设计的频率。

如下图:时钟周期为 4ns ,各时钟路径延迟如下:可以看到有一条路径的 slack 为 -1ns ,说明这条路径违规。可以看到与这条路径相关的 skew 是 t3-t2= -1ns 。

寄存器

下面我们利用 useful skew 向前面一个 slack 比较充裕的路径(slack=2ns)借用1ns的 时间 ,这样两条path都meet了时序要求。如下图:

寄存器

这就是 useful skew 的作用,可以向前,或者向后借time来修正 violation。

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

全部0条评论

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

×
20
完善资料,
赚取积分