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如下:

文章探讨了Setup与HoldTiming冲突的成因,包括不同PVT条件下的celldelayvariation、library的setup和hold时间、uncertainty和derate约束以及clockcommonpath问题。针对这些问题,提出了通过替换cell、增加commonclockpath和调整clockskew等方法来解决setup与hold的互卡问题。同时,文章也讨论了setupviolation的修复策略,强调了调整clock路径对其他path的影响。

294

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



