setup与hold timing互卡(conflict)现象的成因主要有哪些?如何解决?
成因上来说,setup&hold互卡主要有几种因素的影响:
a) 不同PVT条件下的cell delay variation较大
b) 某些cell的library setup time或library hold time特别大
c) setup与hold的uncertainty或者derate约束较为严格或悲观
d) launch, capture的clock common path很短,OCV因素导致setup和hold都很难收敛
有些path是某一种原因导致的,另外一些path可能是几种因素叠加而产生的互卡。
从path的类型上来说,主要有三种情况:
-
同一endpoint的setup&hold互卡,但startpoint不同
-
相同startpoint与endpoint的setup&hold互卡,但中间经过的data路径不同
-
相同startpoint与endpoint的setup&hold互卡,且经过的data路径完全相同
1, 2两种情况相对简单,只要仔细分析大概率可以找到有margin的点去修hold或者setup,最麻烦的是3)这种情况。在了解上面几种因素的基础上,我们可以看一条具体的path来分析这个问题。
例:假设下面的path在worst PVT条件下的setup slack如下所示:

而对应的best PVT条件下的hold slack如下:
4349





被折叠的 条评论
为什么被折叠?



