前言
在 Innovus 中,dbget 是最常用、最强大的数据查询命令之一。它可以快速抓取设计中的对象(inst、net、pin、cell 等)及其属性,配合条件筛选和批量操作,能极大提升后端分析的效率。本文整理了日常工作中最实用的 dbget 指令,建议收藏。
一、基础语法
dbget [选中的对象].[属性名]
· 选中对象:如 top.insts、top.nets、top.pins、top.cells 等
· 常用选项:
· -p:打印输出值
· -p1:仅打印第一个匹配项
· -u:更新选中对象(修改后刷新)
二、常用对象及属性示例
- 抓取所有 inst 名称
dbget top.insts.name
- 抓取所有 net 名称
dbget top.nets.name
- 抓取所有 pin 名称
dbget top.pins.name
- 按条件筛选 inst
# 抓取所有 buffer
dbget top.insts.cellType buffer
# 抓取所有时钟树上的 cell
dbget top.insts.isClockTree true
# 抓取面积大于 10 的 cell
dbget top.insts.area > 10
- 抓取某条 net 上的所有 pin
dbget [dbget top.nets.name clk -p1].allPins.name
- 抓取某个 inst 的坐标
dbget top.insts.instName.pt_x
dbget top.insts.instName.pt_y
- 抓取所有 power pin
dbget top.insts.pins.isPower true
三、高级用法:配合 foreach 批量操作
批量打印所有 inst 的坐标
foreach inst [dbget top.insts] {
puts "[dbget $inst.name] x=[dbget $inst.pt_x] y=[dbget $inst.pt_y]"
}
批量删除所有空名字的 net
foreach net [dbget top.nets.name ""] {
deleteNet $net
}
四、实用技巧
技巧 命令示例 说明
直接打印 dbget -p top.insts.name 输出值更直观
只取第一个 dbget -p1 top.insts.name 快速获取单个结果
更新对象 dbget -u top.insts 修改设计后刷新选中集
查看可用属性 dbget top.insts.??? 列出对象支持的所有属性
五、记忆口诀
top 打头,点号连
属性筛选用比较
-p 打印 -u 刷新
foreach 批量不费劲
六、总结
dbget 是 Innovus 中高频使用的查询命令,熟练掌握可以大幅提升后端调试和数据分析的效率。建议结合实际设计多练习条件筛选和批量操作,逐步形成自己的常用命令库。
更多 Innovus 使用技巧,欢迎关注后续更新。
#芯片设计 #数字后端 #Innovus #dbget #PR工具

3723

被折叠的 条评论
为什么被折叠?



