SOCV/POCV下寄存器的hold margin问题分析

电子说

1.3w人已加入

描述

我们都知道,在做hold time检查的时候,是需要从lib中读取reg的hold requirement time,或者说hold margin。

最基本的,hold margin应该也是一个input transition及output load的函数。那么,如果考虑socv/pocv的时候,hold margin的mean和sigma值要如何计算呢?

其实我对这个问题的理解还不够深入,感觉还是比较复杂的,我只能大概说一下我的想法。Mean值就比较朴素,应该可以直接查lib得到。

不过需要注意的是,有些lib可能在创建的时候就考虑到了sigma的影响,为了更加悲观一些,这种lib就会在hold margin的mean值上已经加上了一些sigma的影响,这种lib的hold margin会比正常的要小一点,具体是怎么计算的可能真的在我的能力范围之外了。

那么,hold margin的sigma值怎么得来的呢?之前我的理解很简单,认为和一般查cell delay的sigma一样,读取lvf文件即可。

但是今天发现事情并没有如此质朴,它的sigma是要被前面一系列delay的sigma影响的。这有点不好理解,我暂时也不知道为什么会被前面的delay sigma影响。

首先我们知道一条path上,最终delay的分布的mean值是所有cell及net mean值的和,最终delay分布的sigma值是所有cell及net sigma的平方和再开根号。好像是data path的delay sigma会影响到hold margin的sigma,launch path貌似没有影响。

最终好像也有不同的计算方式,一种是算数相加,把path delay sigma与lib中查到的hold margin的假的sigma直接加起来,还要乘以相应系数,得到hold margin真的sigma。另一种是取他们的平方和开根号,再乘系数。

现在我也在努力找这部分的资料,但是感觉还是有点少,了解的不够深,上面写的都是半猜半推理的,有可能不对,如果有什么想法欢迎与我讨论。

另外我还想问,transition的sigma要考虑进去吗,因为不同的transition不是会对应不同的cell的delay吗?

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

全部0条评论

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

×
20
完善资料,
赚取积分