微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > icc 加了set_fix_hold 后不收敛

icc 加了set_fix_hold 后不收敛

时间:10-02 整理:3721RD 点击:
设计是多时钟的,designer的时钟关系设计的比较乱,部分时钟间有相位要求。我后端实现发现:
case1:设置min_library ss.db -min_version ss.db,时钟综合是设置set_fix_hold [all_clocks] , 再route,icc可以顺利跑完。
case2:设置min_library为 ss.db -min_version ff.db,时钟综合是 不设置set_fix_hold [all_clocks] , 再route,icc可以顺利跑完,有Hold violation。
case3:设置min_library为 ss.db -min_version ff.db,时钟综合是设置set_fix_hold [all_clocks] , 再route,icc 会跑死,violation 几十万个。

想问,case3的min_library设置方式是标准正确的icc设置吧,?以前同事设置的是case1方式,min_library都是ss。

第一种正确,
第二种因为没有fix hold,所以可以顺利跑出来
第三种错误,因为不能max lib 和min lib 要一样的。 芯片不可能同时工作的两种PVT下面的。

首先要确认下各个时钟之间是不是可以false path的?false path的标准就是看看时钟之间的数据有没有做同步的处理。
然后set_fix_hold的命令,可以在cts之后,进行route再加上去,看一下cts之后时钟之间的hold情况有多差。
一般如果时钟树之间skew比较大, 也就是cts的效果很差,就会导致hold很难满足。所以也需要看你你的cts的各个时钟之间的balance做的怎样。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top