数字IC后端设计实现之Innovus update_names和changeInstName的各种应用场景

本文详细介绍了Innovus设计工具中update_names和changeInstName功能在处理模块名称、实例名冲突以及特殊字符等情况下的应用,同时提及了利用TCL脚本进行批量重命名的方法,帮助数字IC工程师提升工作效率。
摘要由CSDN通过智能技术生成

今天吾爱IC社区小编给大家分享下数字IC后端设计实现innovus中关于update_names和changeInstName在PR中的具体使用方法。

update_names

1)为了避免和verilog语法保留的一些关键词,比如input,output这些,是不允许存在叫这类名字的wire等。如果有这样的input,那么通过下面的命令会自动把input改成input_1。

innovus> update_names -verilog

这个类似写tcl脚本,你如果定义一个变量叫for ,while,break,那么就会有冲突,认错的情况。

  1. 批量把设计中[ ] 全部替换成_ (比如有时候LVS要用)

innovus> update_names -restricted {[ ]} -replace_str “_”

  1. 自动修改设计中存在同名的net和instance (默认不区分大小写)

innovus> update_names -nocase -net
innovus> update_names -nocase -inst

比如两条net分别是"NET_ABC" 和"net_abc",这个在RC抽取会报它们是同一条net。通过上面的命令后工具会自动给这两条net加上一个数字后缀,比如"_1 和_2"。

同理instance工具也是这么处理的。

4)修改design名字

innovus> update_names -design -map {abcreg xyzreg}

修改后我们可以通过下面的命令来确认是否更改成功。

innovus> dbGet top.name
@innovus> get_db designs .name #In CUI

5)更改设计中子模块module的名字

innovus> update_names -change_modules design_dual_rank_synchronizer_9 -local -map {design_dual_rank_synchronizer_9 new}

通过上述命令工具会把原来的design_dual_rank_synchronizer_9这个module名改成 new。这里需要改的名字写在map选项即可。

changeInstName

语法: changeInstName -inst instName -newBasename baseName

innovus > changeInstName -inst ff12 -newBaseName ff123

innovus > changeInstName -inst Top/subtop/ff12 -newBaseName ff123

思考题:上次命令执行后,新的instance名字(full_name)叫什么?

最后分享一个把设计中instance名字带“:”符号的instance进行重命名的小脚本。

通过这个脚本大家又可以来练习foreach,dbGet,lindex,split这些tcl脚本的基本使用方法。对于数字IC后端工程师,需要慢慢学会看懂脚本,学会抄脚本,最后会自己改脚本写一些小脚本。

foreach i [dbGet top.insts.name :] {
set newInst “[lindex [split [lindex [split $i “/”] end] “:”] 0][lindex [split [lindex [split $i “/”] end] “:”] 1]”;
changeInstName -inst $i -newBaseName $newInst
#Puts $newInst;
}

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值