Get a list of unplaced cells: (Laurent Lefebure)
dbGet [dbGet -p top.insts.pStatus unplaced].name
See what metal layers your block's IO pins are on: (Bob Dwyer)
dbGet top.terms.pins.allShapes.layer.name
Get a list of NONDEFAULT rules in the design: (Gary Nunn)
dbGet head.rules.name
Get the placement status of an instance: (Ali Aslani)
dbGet [dbGetInstByName instName].pStatus
Get the points of a rectangular routing blockage: (Bob Dwyer)
dbGet top.fplan.rBlkgs.shapes.rect
Get the points of a rectilinear routing blockage: (Jon Cooper)
dbGet top.fplan.rBlkgs.shapes.poly
Get a list of all cell types used in the design: (Gary Nunn)
dbGet -u top.insts.cell.name
(The "-u" filters out duplicate objects.)
Get the size of block placement halos: (Kari Summers / Bob Dwyer)
dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloTop
dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloBot
dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloLeft
dbGet [dbGet -p2 top.insts.cell.subClass block*].pHaloRight
Get the size and top/bottom layers of block routing halos: (Bob Dwyer)
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
Make sure all your tiehi/lo connections have tie cells (and are not connected to a rail instead): (Gary Nunn)
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
Change the routing status of a net (for example, from FIXED to ROUTED): (Gary Nunn)
dbSet [dbGet -p top.nets.name netName].wires.status routed
Get the status of your design: (Siva Kumar)
dbGet top.statusIoPlaced
dbGet top.statusPlaced
dbGet top.statusClockSynthesized
dbGet top.statusRouted
dbGet top.statusRCExtracted
dbGet top.statusPowerAnalyzed
List all the FIXED instances in your design: (Bob Dwyer)
dbGet [dbGet -p top.insts.pStatus fixed].name
Find out which layers are used in a net: (Bob Dwyer)
dbGet [dbGet -p top.nets.name netName].wires.layer.name
Find all the instances of a certain cell type: (Laurent Lefebure)
dbGet [dbGet -p2 top.insts.cell.name cellName].name
Get the size of a cell in the library, but not necessarily in the current design: (Rob Lipsey)
dbGet [dbGetCellByName cellName].size
I'm
sure there are many more useful dbGet/dbSet one-liners out there; let's
hear yours! Please post in the comments some of the dbGet lines that
you have come up with.
Related Resources: