Beruflich Dokumente
Kultur Dokumente
Problem
Some basic dbGet scripts to explore the design.
Solution
The dbGet command can used interactively to explore the design. Below are some useful single line dbGet
scripts:
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
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
Related Solutions
Getting started with DB Tcl scripting in EDI System
How to get the coordinates of top level ports and block pin in the design
How to use dbGet command for database access in EDI?
Return to the top of the page
Document attributes