dbget/innovus常用的命令

编号功能说明命令
1获取设计中已有的 physical only cell 名字dbGet [dbGet -p top.insts.isPhysOnly 1].cell.name -u
2统计某个 lib cell 的实例数量(例:TAPCELLBWP40P140)llength [dbGet top.insts.cell.name TAPCELLBWP40P140]
3删除所有 physical only cell(先取名再删)set physical_cell [dbGet [dbGet -p top.insts.isPhysOnly 1].name]
deleteInst $physical_cell
4删除某一种 physical only cell(例:所有 TAPCELLBWP40P140)set welltap_cell [dbGet [dbGet -p2 top.insts.cell.name TAPCELLBWP40P140].name]
deleteInst $welltap_cell
5获取设计中所有 port 数量dbGet top.numTerms
6获取设计中所有 input port 数量dbGet top.numInputs
7获取已选中 macro 的 pin 数量llength [dbGet selected.instTerms.name]
8获取已选中 macro 的 input pin 数量llength [dbGet selected.instTerms.isInput 1]
9获取已选中 macro 的 output pin 数量llength [dbGet selected.instTerms.isOutput 1]
10列出设计中所有 unplaced 的 instancedbGet [dbGet -p top.insts.pStatus unplaced].name
11列出设计中所有 placed 的 instancedbGet [dbGet -p top.insts.pStatus placed].name
12列出设计中所有 fixed 的 instancedbGet [dbGet -p top.insts.pStatus fixed].name
13选中设计中所有 fixed 的 instanceselect_obj [dbGet top.insts.pStatus fixed -p]
14ICC/ICC2 中获取所有 fixed cellget_cells -hierarchical -filter "is_fixed == true"
15列出 block IO 端口 terminal 所用的 layerdbGet top.terms.pins.allShapes.layer.name
16列出设计中的 non default rules (NDR)dbGet head.rules.name
17ICC 中报告 routing rulesreport_routing_rules
18列出某条 net 的 route ruledbGet [dbGet -p top.nets.name netName].rule.name
19获取某个 instance 的 pStatus(按名)dbGet [dbGetInstByName instName].pStatus
20获取当前选中 instance 的 pStatusdbGet selected.pStatus
21避免特定 multibit 寄存器被拆分(debanking)dbSet [dbGetInstByName <flop_name>].dontSplitMultibit 1
22避免特定 multibit 寄存器被合并(banking)dbSet [dbGetInstByName <flop_name>].dontMergeMultibit 1
23选中设计中的所有 hard blockageselect_obj [dbGet top.fplan.pBlkgs.type hard -p]
24获得方形 routing blockage 的坐标dbGet top.fplan.rBlkgs.shapes.rect
25获得多边形 routing blockage 的坐标dbGet top.fplan.rBlkgs.shapes.poly
26列出设计中用到的所有 cell 类型(去重)dbGet -u top.insts.cell.name
27block/memory 的 placement halo(Top)dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloTop
28block/memory 的 placement halo(Bottom)dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloBot
29block/memory 的 placement halo(Left)dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloLeft
30block/memory 的 placement halo(Right)dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloRight
31block routing halo 大小(侧向尺寸)dbGet [dbGet -p2 top.insts.cell.subClass block*].rHaloSideSize
32block routing halo 最低层dbGet [dbGet -p2 top.insts.cell.subClass block*].rHaloBotLayer.name
33block routing halo 最高层dbGet [dbGet -p2 top.insts.cell.subClass block*].rHaloTopLayer.name
34检查所有 isTieHi 的 instTermsdbGet top.insts.instTerms.isTieHi 1
35检查所有 isTieLo 的 instTermsdbGet top.insts.instTerms.isTieLo 1
36列出需要 TieHi 的 instTerms 名字dbGet [dbGet -p top.insts.instTerms.isTieHi 1].name
37列出需要 TieLo 的 instTerms 名字dbGet [dbGet -p top.insts.instTerms.isTieLo 1].name
38列出所有连接到 coreTieLo 的 instTerms(输入端)dbGet [dbGet -p [dbGet -p2 top.insts.cell.subClass coreTieLo].instTerms.net.allTerms.isInput 1].name
39更改某 net 的 route 属性为 ROUTEDdbSet [dbGet -p top.nets.name netName].wires.status route
40设计状态:IO 是否 placeddbGet top.statusIoPlaced
41设计状态:是否 placeddbGet top.statusPlaced
42设计状态:clock 是否综合完成dbGet top.statusClockSynthesized
43设计状态:是否 routeddbGet top.statusRouted
44设计状态:是否做了 RC 提取dbGet top.statusRCExtracted
45设计状态:是否做了功耗分析dbGet top.statusPowerAnalyzed
46列出某条 net 所用到的 layerdbGet [dbGet -p top.nets.name netName].wires.layer.name
47将某条 net 的 wires 状态设为 fixed(示例:shield net)dbSet [dbGet -p top.nets.name netName].wires.status fixed
48选中某条 net 的 shielding net(GND 例)dbSelectObj [dbGet [dbGet -p [dbGet -p top.nets.name $net].shieldNets.name GND].sWires.shieldNet.name $net -p2]
49获取特定 cell name(ref name)的所有实例dbGet [dbGet -p2 top.insts.cell.name cellName].name
50获取 library 中特定 cell name 的 sizedbGet [dbGetCellByName cellName].size
51列出设计中所有 clock net(需先 timeDesign)dbGet [dbGet -p top.nets.isClock 1].name
52将名字包含 “clk” 的所有 instance 设为 fixeddbSet [dbGet -p top.insts.name *clk*].pStatus fixed
53选中名字包含 “clk” 的所有 instanceselect_obj [dbGet [dbGet top.insts.name *clk* -p].name]
54获取特定 routeType 的最高层号dbGet [dbGet -p head.routeTypes.name routeTypeName].topPreferredLayer.num
55获取特定 routeType 的最低层号dbGet [dbGet -p head.routeTypes.name routeTypeName].bottomPreferredLayer.num
56获取 database unitsdbGet head.dbUnits
57获取 manufacturing griddbGet head.mfgGrid
58获得所有 physical only cell 的实例名dbGet [dbGet -p top.insts.isPhysOnly 1].name
59获得 Dont Touch instancesdbGet [dbGet -p top.insts.dontTouch true].name
60获得所有 Dont Use 的 lib cellsdbGet [dbGet -p head.libCells.dontUse 1].name
61获得所有 JTAG elementsdbGet [dbGet -p top.insts.isJtagElem 1].name
62获得所有 spare instancesdbGet [dbGet -p top.insts.isSpareGate 1].name
63获取某个 instance 的 PG pins 名字dbGet [dbGet top.insts.name $instName -p].pgInstTerms.name
64选中包含特定 module name 的 memory/hierarchy moduleselectInst [dbGet [dbGet top.Inst.subClass block -p2].name <specify_module_name>]
65获取某 module 中所有 sequential cells(配合 selectModule)dbGet [dbGet selected.insts.cell.isSequential 1 -p2].name
66获取指定 net 的 driver instance 和 cell 名set netName netName
set inst [dbGet [dbGet -p [dbGet -p top.nets.name $netName].allTerms.isOutput 1].inst]
puts "Net: $netName, driving inst name: [dbGet $inst.name], driving cell name: [dbGet $inst.cell.name]"
67列出某个 pin 的所有 layer(基于选中 cell)dbGet [dbGet -p selected.cell.terms.name pinName].pins.allShapes.layer.extName
68获取 die area 的 polygondbShape -output polygon [dbGet top.fPlan.boxes]
69获取选中 boxes 的 polygondbShape -output polygon [dbGet selected.boxes]
70获取选中 boxes 的面积dbShape -output area [dbGet selected.boxes]
71获取 top level term pin 的矩形坐标(第一个 rect)lindex [dbGet [dbGet top.hinst.hinstTerms.term.name -p].pins.allShapes.shapes.rect] 0
72获取 top level term pin 的 layer 编号dbGet [dbGet top.hinst.hinstTerms.term.name -p].pins.allShapes.layer.num
73生成 BUF 类 cell 指针列表set cellPtrList [dbGet -p head.allCells.name *BUF*]
74遍历 BUF cells 打印 max cap(需配合 termName)foreach cellPtr $cellPtrList {puts "[dbGet $cellPtr.name] [dbFTermMaxCap [dbGet -p $cellPtr.terms.name termName] 1]"}
75找出具有特定属性的所有 instancesset inst_ptrs [dbGet -p top.insts.props {.name == "myProp" && .value == "xyzzy"}]
76打印具有特定属性的 instances 名字puts "Instances with property myProp and value xyzzy: [dbGet $inst_ptrs.name]"
77找出设计中非 clock 的 input portsdbGet [dbGet -p [dbGet -p2 top.terms.net.isClock 0].isInput 1].name
78获取 tech site 名称dbGet head.sites.name
79获取 tech site 尺寸dbGet head.sites.size
80检查 tech site VDD 是否在 bottomdbIsTechSiteVDDOnBottom [dbGet head.sites.name -p]
81按 subClass 获取某类 physical only libCellsdbGet [dbGet -p head.libCells.subClass <subClassName>].name
82获取所有 coreWellTap 类型 libCellsdbGet [dbGet -p head.libCells.subClass coreWellTap].name
83获取所有 coreTieHigh 类型 libCellsdbGet [dbGet -p head.libCells.subClass coreTieHigh].name
84打印设计中所有 module 名字foreach module_name [dbGet top.hInst.treeHInsts.cell.name] { puts "$module_name" }
85打印设计中所有 leaf cells(去重 cell name)foreach leaf_name [dbGet -u top.insts.cell.name] { puts "$leaf_name" }
86选中名字以 LS 开头的 instancesselect_obj [dbGet top.insts.name LS* -p]
87对选中实例的所有 net 设置 dont_touch(网)foreach term [dbGet selected.instTerms.net.term -e] { set_dont_touch [dbGet $term.net.name] true }
88获取非 power 的 via 总数llength [dbGet [dbGet -p top.nets.isPwrOrGnd 0].vias]

获取 instance 的 PG 连接关系
proc getInstPGConnect {c} {
set inst [dbGet -p top.insts.name $c]
puts “PG connection of instance $c:”
foreach PGT [dbGet $inst.pgCellTerms.name] {
puts “\tPin : $PGT --> Net: [dbGet [dbPGTermNet [dbGetPGTermByName $inst $PGT]].name]”
}
}

#使用示例:
getInstPGConnect u_mmu_vir_top/mult_x_12/U821

#输出示意:
PG connection of instance u_mmu_vir_top/mult_x_12/U821:
Pin : VSS --> Net: VSS
Pin : VDD --> Net: VDD_CPU
Pin : VBP --> Net: VDD
Pin : VBN --> Net: VSS

Skip routes:对某类宏的 nets 设置 skipRouting
proc skiproutesOnHmsNets {hmInstPattern} {
deselectAll
selectInst $hmInstPattern
dbSet selected.hinst.hnets.net.skipRouting 1
deselectAll
}

. 删掉 macro 身上的信号走线
foreach c [dbGet [dbGet -p2 top.insts.cell.baseClass block].name] {
set j [dbGet -p top.insts.name $c]
dbSelectObj [dbQuery -area [dbGet $j.box] -objType regular]
puts “Deleting object at [dbGet $j.box] within Block [dbGet $j.name]”
editDelete -selected -type Signal -use SIGNAL
}

获取 memory 的 latency(例:名字含 RAM,pin 含 CLK

set mem_pin [dbGet [dbGet top.insts.cell.name RAM -p2].instTerms.name *CLK]

foreach i KaTeX parse error: Expected '}', got 'EOF' at end of input: …in { puts "i [get_property [get_pins $i] actual_latency_late_rise_max]"
}

统计 reset 直接连接到 VSS 的 flop(写文件)

setPreference CmdLogMode 1

输出文件名

set ofile “flop_with_tied_rst.rpt”
set ecofp [open $ofile w]

set cnt [llength [dbGet [dbGet [dbGet top.nets.name $VSS_name -p].instTerms.cellTerm.name $RSTport -p2].inst.name]]
set insts [dbGet [dbGet [dbGet top.nets.name $VSS_name -p].instTerms.cellTerm.name $RSTport -p2].inst]
set cnt2 [llength $insts]

puts $ecofp “Total: $cnt $cnt2”

foreach inst_ptr $insts {
set inst_name [dbGet $inst_ptr.name]
set cell_ptr [dbInstCell $inst_ptr]
set cell_name [dbGet $cell_ptr.name]
set rst_port [dbGet $inst_ptr.instTerms.cellTerm.name $RSTport -p2]
set net [dbGet $rst_port.net.name]
puts ecofp"ecofp "ecofp"inst_name $cell_name"
}

close $ecofp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值