在ASIC设计中,Cadence Innovus 和 Synopsys ICC2 是两款主要的EDA工具。本文将介绍 Innovus 中常用的 dbGet
命令,它对高效使用该工具至关重要。了解 dbGet
命令可以帮助用户更好地分析设计、进行修改,并编写符合需求的TCL脚本。我将分享 50 个最实用的 dbGet
命令,提升你在 Innovus 中的工作效率。
dbGet 命令:返回 design 中特定的 object and attribute information。
dbGet 几个实用的 option 介绍
- -p# :指定查询时,回溯的层级
- -e :避免输出空指针(0x0)
- -u :去除重复的 object
- -regexp :使用正则匹配
先来一个简单的例子:
dbGet top.insts.cell.name
top --> is the pointer of top cell
.insts --> is the list of pointers to the instances in the top cell
.cell --> is the list of pointers to the master cell of each instance
.name --> is the master cell name
这里要注意,最后一个返回的才是 object ,前面的层级返回的都是指针,而且返回值是列表的数据格式,意味着我们可以基于此进行列表命令的相关操作,如 llength 计算列表的元素个数。
1. 获取 design 中所有用到某类 master cell 的instance 数量
2. 获取 design 的 name
3. 获取 selected object 的所有属性
4. 获取 selected instance 的所有 pins
5. 获取 database 的单位
6. 获取制造格点的单位尺寸
7. 获取所有的 layer name
8. 获取所有的 routing layer name
9. 获取任意 routing layer 的参数,比如最小线宽
10. 获取 design 里面没有,但 cell library 里面有的,没有返回空指针0x0,如果不想 print 空指针,加 -e 这个选项即可
11. 获取 design 中 master cell 被例化超过 100 次的 name
12. 获取库里面可用的 inverter 类型
13. 获取所有的 port name
14. 获取所有的 port 用到的 metal layer
15. 获取所有 port 摆放的 edge,这里0是左边,2是右边