用“重新综合的网表”来自动ECO“APR网表”

NanDigits的GOF ECO支持用“重新综合的网表”来自动ECO“APR网表”的流程。

如下图,在这个流程下,用户修改RTL后只需要重新跑一下综合脚本,把重新综合的网表和之前一版的APR网表一起送进GOF ECO即可。GOF ECO会自动分析两个网表的差异,产生最小的Patch,并输出ECO脚本或ECO网表。后端工具,如Innovus、ICC/ICC2拿到ECO脚本或者ECO网表后,做ECO Route。

 网表ECO流程

下面这个示例,演示了怎样根据“重新综合的网表(参考网表)”来自动修改“APR网表(实现网表)”,并让他们逻辑等价。具体来说,GOF ECO会检查参考网表和实现网表的顶层及其子模块的逻辑等价性,定位出不等价的点,然后产生最小门数的补丁,把补丁应用于实现网表,使之与参考网表等价。

自动ECO脚本示例(注意看注释):

use strict;
undo_eco;  # 清除之前的ECO操作
setup_eco("eco_example");  # 设置ECO的名字
read_library("art.90nm.lib"); # 读入lib库

# 读入重新综合的网表
read_design("-ref", "reference.gv");
# 读入需要ECO的实现网表
read_design("-imp", "implementation.gv");

set_top("topmod"); # 设置顶层模块
set_ignore_output("TEST_SO*"); # 避免测试环路影响ECO
set_pin_constant("TEST_EN",0); # 避免修改到测试逻辑

# 设置高ECO等级,注释掉可以做快速试验
set_high_effort;
# 修复顶层和子模块
fix_design;

report_eco();  # 输出ECO报告
write_verilog("eco_verilog.v"); # 输出ECO后的Verilog网表
write_soce("eco_soce.tcl"); # 输出SOC Encounter格式的ECO Tcl脚本

exit; # 退出,或者注释掉此行进入互交调试

从Termial里运行上面的脚本:

gof -run auto_eco.pl

 从ECO脚本可以看出,GOF ECO的流程非常简洁,“一个Button”搞定ECO。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值