Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
The dbGet command can used interactively to explore the design. Below are some useful single line dbGet scripts:
1. To get a list of unplaced instances in the design: dbGet [dbGet -p top.insts.pStatus unplaced].name
2. To list all the placed instances in the design:
dbGet [dbGet -p top.insts.pStatus placed].name
3. To list all the fixed instances in the design:
dbGet [dbGet -p top.insts.pStatus fixed].name
4. To see what metal layers your block's IO pins are on:
dbGet top.terms.pins.allShapes.layer.name
5. To get a list of NONDEFAULT rules in the design:
dbGet head.rules.name
6. To get NDR applied on a specified net:
dbGet [dbGet -p top.nets.name netName].rule.name
7. To get the placement status of an instance:
dbGet [dbGetInstByName instName].pStatus
8. To get the points of a rectangular routing blockage:
dbGet top.fplan.rBlkgs.shapes.rect
9. To get the points of a rectilinear routing blockage:
dbGet top.fplan.rBlkgs.shapes.poly
10. To get a list of all cell types used in the design:
dbGet -u top.insts.cell.name
(The "-u" filters out duplicate objects.)
11. To get the size of block placement halos:
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
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
16. To get the status of your design:
dbGet top.statusIoPlaced
dbGet top.statusPlaced
dbGet top.statusClockSynthesized
dbGet top.statusRouted
dbGet top.statusRCExtracted
dbGet top.statusPowerAnalyzed
17. To find out which layers are used in a net:
dbGet [dbGet -p top.nets.name netName].wires.layer.name
18. To find all the instances of a certain cell type:
dbGet [dbGet -p2 top.insts.cell.name cellName].name
19. To get the size of a cell in the library, but not necessarily in the current design:
dbGet [dbGetCellByName cellName].size
20. To get nets that are marked in the db as clock net:
dbGet [dbGet -p top.nets.isClock 1].name
21. To set all instances with a particular pattern in its name to fixed status:
dbSet [dbGet –p top.insts.name *clk*].pStatus fixed
22. To get database units:
dbGet head.dbUnits
23. To get manufacturing grid:
dbGet head.mfgGrid
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
26. To get class and subClass of a cell:
dbGet [dbGetCellByName cellName].baseClass
dbGet [dbGetCellByName cellName].subClass
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]"
28. To list all layers for the pin of a cell:
dbGet [dbGet -p selected.cell.terms.name pinName].pins.allShapes.layer.extName
29. Report points of polyon that forms the die area:
dbShape -output polygon [dbGet top.fPlan.boxes]
30. To query the max_cap for a list of cells
set cellPtrList [dbGet -p head.allCells.name BUF*]
foreach cellPtr $cellPtrList {puts "[dbGet $cellPtr.name] [dbFTermMaxCap [dbGet -p $cellPtr.terms.name <termName>] 1]"}
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]"
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.