数字后端 | Innovus dbget 常用指令详解

前言

在 Innovus 中,dbget 是最常用、最强大的数据查询命令之一。它可以快速抓取设计中的对象(inst、net、pin、cell 等)及其属性,配合条件筛选和批量操作,能极大提升后端分析的效率。本文整理了日常工作中最实用的 dbget 指令,建议收藏。


一、基础语法

dbget [选中的对象].[属性名]

· 选中对象:如 top.insts、top.nets、top.pins、top.cells 等
· 常用选项:
· -p:打印输出值
· -p1:仅打印第一个匹配项
· -u:更新选中对象(修改后刷新)


二、常用对象及属性示例

  1. 抓取所有 inst 名称
dbget top.insts.name
  1. 抓取所有 net 名称
dbget top.nets.name
  1. 抓取所有 pin 名称
dbget top.pins.name
  1. 按条件筛选 inst
# 抓取所有 buffer
dbget top.insts.cellType buffer

# 抓取所有时钟树上的 cell
dbget top.insts.isClockTree true

# 抓取面积大于 10 的 cell
dbget top.insts.area > 10
  1. 抓取某条 net 上的所有 pin
dbget [dbget top.nets.name clk -p1].allPins.name
  1. 抓取某个 inst 的坐标
dbget top.insts.instName.pt_x
dbget top.insts.instName.pt_y
  1. 抓取所有 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工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值