Professional Documents
Culture Documents
DB Commands
DB Commands
12. To get the size and top/bottom layers of block routing halos:
dbGet [dbGet -p2 top.insts.cell.subClass block*].rHaloSideSize
dbGet [dbGet -p2 top.insts.cell.subClass block*].rHaloBotLayer.name
dbGet [dbGet -p2 top.insts.cell.subClass block*].rHaloTopLayer.name
13. To make sure all your tiehi/lo connections have tie cells (and are not connected to a rail
instead):
dbGet top.insts.instTerms.isTieHi 1
dbGet top.insts.instTerms.isTieLo 1
(Should return "0x0" if all connections have tie cells.
If "1"s are returned, use the following to find the terms that still need a tie cell:)
dbGet [dbGet -p top.insts.instTerms.isTieHi 1].name
dbGet [dbGet -p top.insts.instTerms.isTieLo 1].name
14. To get all insTerm names which are tied to tieLo cells:
dbGet [dbGet -p [dbGet -p2 top.insts.cell.subClass
coreTieLo].instTerms.net.allTerms.isInput 1].name
15. To change the routing status of a net (for example, from FIXED to ROUTED):
dbSet [dbGet -p top.nets.name netName].wires.status routed
dbGet top.statusClockSynthesized
dbGet top.statusRouted
dbGet top.statusRCExtracted
dbGet top.statusPowerAnalyzed
19. To get the size of a cell in the library, but not necessarily in the current design:
dbGet [dbGetCellByName cellName].size
24. To get physical only cells like filler cell, end cap cell etc:
dbGet [dbGet -p top.insts.isPhysOnly 1].name
25. To filter all the PG pins with direction bidi of a specific instance:
dbGet [dbGet -p [dbGet -p top.insts.name instName].pgCellTerms.inOutDir bidi].name
27. To find out the instname/cellname of the driver driving a specific net.
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]"
31. To find all instances with a specify property name "myProp" (string property type) and value
"xyzzy"
set inst_ptrs [dbGet -p top.insts.props {.name == "myProp" && .value == "xyzzy"]
Puts "Instances with property myProp and value xyzzy: [dbGet $inst_ptrs.name]"
33. To identify physical only types of cells (Well Tap, Tie hi/lo, Filler, Endcap/Decap)
You can query the subclass for a cell to check whether it is welltap, tiehigh, tielow or end cap :
dbGet [dbGet -p head.libCells.subClass <subClassName>].name
e.g. to get names of well tap cells (specified as CLASS CORE WELLTAP in lef) , you can
use :
dbGet [dbGet -p head.libCells.subClass coreWellTap].name
Similarly, to get names of tie high/ tie low cells names (specified as CLASS CORE TIEHIGH
or CLASS CORE TIELOW in lef), use :
dbGet [dbGet -p head.libCells.subClass coreTieHigh].name
or
dbGet [dbGet -p head.libCells.subClass coreTieLow].name
To report endcap cells (specified as CLASS ENDCAP in lef) :
dbGet [dbGet -p head.libCells.subclass coreEndCap*].name
Similarly, to query filler cells with CLASS CORE SPACER in lef syntax, you can use
following (similar to other physical only cells) :
dbGet [dbGet -p head.libCells.subClass coreSpacer].name
For example, you could create a path group to all the D inputs of SRAM
instances using wildcards
:
clearClockDomains
setAnalysisMode
honorClockDomains false
group_path
name to_srams
to top/inst_sram*/D*
setPathGroupOptions to_srams
slackAdjustment 1000
slackAdjustmentPriority 10
optDesign
preCTS [
incr]