innovus Place之后更新前端网表(ECO)的方法

文摘   2024-05-26 22:35   上海  

place之前可以直接通过set init_verilog xxx.v来更新网表,只需再重新load floorplan。详见:《innovus Place之前更新前端网表(ECO)的方法》。

在place之后,如果前端网表有更新,就需要走ECO流程。

第一步:网表ECO。对照RTL的变化来手工修改网表,或者利用专门的功能ECO软件(如nandigits的gofeco)来自动修改。这一步得到的eco网表相比当前的APR,只是少量cell和(或)少量连线有变动。在后端工具里只需要识别这些差异并做变更,没有修改的电路就尽量不要动。特别是CTS之后,如果动到时钟树就会对时序影响很大。

第二步:APR工具读入ECO网表,并对比出差异。

source old_session.enc.dat/digital_top.globalsset init_verilog pr_eco.vinit_designecoDefIn -postMask -reportFile eco.rpt digital_top.def
用set init_verilog设置新网表,再用ecoDefIn来与老设计(def文件)进行对比。对比差异得到新加的cell、删掉的cell、修改的连线等。

第三步,再对变动的cell做eco Place。

如果是流片之前的eco(premask eco),可以直接用ecoPlace来递增式布局。

ecoPlace
如果是流片之后的eco(postmask eco),需要指定sparecell列表,再用sparecell来递增式place。删除逻辑释放出来的cell也可以加入sparecell列表,进行循环再利用。
specifySpareGate -inst spr_1/spr_gate*ecoPlace -useSpareCells true
如果是利用专门的功能eco软件,通常工具还会输出一份spare cell map file或者script,我们可以直接在innovus里source这个map file或者script,因为eco工具已经帮我们挑选出了最优位置的sparecell。
source -echo -verbose eco_map.tcl

有些功能eco工具在postmask eco流程里,会保持spare cell的instance name不变,只改连线。这种情况,ecoPlace这一步可以省略。

在做eco place时,也可以先优先place时钟树上的eco cell,并做平时钟树,再place其它逻辑cell。这样可以把紧张的eco资源让给时钟树,更易于timing收敛。

关于NanDigits Design Automation

Nandigits Design Automation于2007年成立,公司总部位于美国硅谷圣何塞(San Jose)。2016年10月在中国大陆成立销售和技术支持部门。我们是完整的芯片网表解决方案提供商,主要产品有网表功能ECO工具GOF ECO、逻辑等价性检查工具GOF LEC,网表调试工具GOF Debug、汽车电子功能安全验证的GOF Formal。到目前,我们已经帮助全球数十家芯片设计公司Tapeout超过100个项目。

欢迎评估试用

中国大陆

技术支持:support@nandigits.cn

美国总部

技术支持:support@nandigits.com

新官方网站

https://nandigits.co
(原.com继续使用,.cn域名仅保留部分技术支持文档,会自动跳转到.co)

联系评估和试用

https://nandigits.cn/license/getlic.php


我们建了一个微信讨论群
扫码备注“加ECO群,公司+职位
欢迎关注NanDigits
完整的芯片网表解决方案提供商
☟☟点击“阅读原文”申请评估试用☟☟

NanDigits
专注芯片功能ECO、逻辑等价性检查、网表调试、形式验证等技术的研究,及其设计自动化的实现。