请教关于hold time violation的问题
时间:10-02
整理:3721RD
点击:
encounter做完布线,starrc提参数,pt分析完有十几条hold time violation,写了ecoAddRepeter的脚本在encounter里做eco,再做pt的时候,原来那十几条没了,又出现新的几条路径hold violation,重复了十几次,插入DLY、Downsize都试了,最少时候只剩一条路径,但eco后又出新的。
pt时nworst设的100,max_paths 1000,最多一次也就报十二个,但只插Delay单元为何会引起新的hold time violation呢?setup time一直都是OK的。
后来发现encounter布线完的时序里面,hold是不存在violation的。看了讨论区之前一个帖子,也是同样的问题,说是因为encounter默认用bc_wc,pt用的是ocv导致的,但即使这样,不断的插DLY,也应该能解决吧,可总是新的层出不穷很奇怪。
pt时nworst设的100,max_paths 1000,最多一次也就报十二个,但只插Delay单元为何会引起新的hold time violation呢?setup time一直都是OK的。
后来发现encounter布线完的时序里面,hold是不存在violation的。看了讨论区之前一个帖子,也是同样的问题,说是因为encounter默认用bc_wc,pt用的是ocv导致的,但即使这样,不断的插DLY,也应该能解决吧,可总是新的层出不穷很奇怪。
因为会动 routing
你直接在encounter里面把寄生参数scale factor加上,能减少迭代次数,在命令行里面敲ostrich这命令,用那tool计算factor
icc中有种做法可以事先把所有的cell先fixed住,edi应该也可以,然后在eco
还有个方法就是把margin放大一点比signoff的要大些。我知道就这些。等其他高手
感谢各位的回复,后来还是从encounter入手,将clock skew约束更紧,maxdensity设高了一些,基本解决了
encounter 不太好用
还是用icc