当前位置: 首页 > news >正文

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

今天吾爱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;
}

http://www.lryc.cn/news/274653.html

相关文章:

  • 1月6日,每日信息差
  • 部署上传漏洞的靶场环境upload-labs
  • Linux的压缩与解压
  • 互联网大厂面试题目
  • 单文件上传
  • 美经济学家预测,明年美股或将大跌86%,你怎么看?
  • 【BIAI】lecture 3 - GD BP CNN Hands-on
  • 计算机Java项目|基于SpringBoot+Vue的图书个性化推荐系统
  • lenovo联想小新Pro-13 2020 Intel IML版笔记本电脑(82DN)原装出厂Win10系统镜像
  • 54、Softmax 分类器以及它的底层原理
  • 【React】class组件生命周期函数的梳理和总结(第一篇)
  • [每周一更]-(第49期):一名成熟Go开发需储备的知识点(答案篇)- 2
  • 23种设计模式Python版
  • 2024年汉字小达人区级选拔备考——真题做一做:诗词连线
  • Vite scss 如何引入本地 字体
  • 扩展 apiserver 连接认证 ip, apiserver证书更新
  • VUE--保留小数(过滤器)
  • 书生·浦语大模型实战营第一次课堂笔记
  • Mysql为什么只能支持2000w左右的数据量?
  • 限制选中指定个数CheckBox控件(1/2)
  • QT中的信号与槽的讲解
  • RNN文本分类任务实战
  • 【算法系列 | 12】深入解析查找算法之—斐波那契查找
  • 全新的C++语言
  • three.js 多通道组合
  • 编程笔记 html5cssjs 022 HTML表单概要
  • ​三子棋(c语言)
  • MySQL-DCL
  • QT开源类库集合
  • C++ STL(2)--算法(2)