dbGet (二)


 

dbGet是由它基本的語法加上各種object的attribute的組合構成的。大家在熟悉基本語法之后,就應該去學習各個object的attribute了。說實話,這很難,因為attribute很多,而且有的attribute寫法相當奇怪,怎么看都看不懂,比如hInstTerms、hTerms、instTerms的區別。。。那我們怎么去了解這些attribute的意思呢?平時要多學多用,還有多看doc。

 

其實,我們dbGet本身是提供一些簡單的attribute介紹信息的,上一篇文章里也講過,采用.?h來查詢。比如說我們不知道insts下面的pStatus屬性是什么意思,就可以采用如下命令,它會簡單介紹pStatus的意思和用途

 

[DEV]innovus 3> dbGet top.insts.?h pStatus

pStatus(settable): enum(cover fixed placed softFixed unplaced), This attribute is the placement status of an instance during placement and optimization. The placer will look at both place_status and place_status_cts and use the more restrictive value.

 

dbTcl提供了另外一個很方便去查詢的命令,dbSchema。怎么使用呢?比如說你想知道net的意思,可以采用下面命令:

 

[DEV]innovus 16> dbSchema net

=====================

net: Canonical (flat) net (equivalent to connectivity in DEF NETS and SPECIALNETS)

--------------------------------------

allTerms: objList(instTerm term), List of pointers to connections (terms and instTerms)

area: area, Area of the net as defined by the LEF MACRO SIZE or OVERLAP information

 

看到木有,是不是和.?h具有相同功能,而且方便多了,它還會把這個attribute下一級子attribute都列出來。

它也支持通配符匹配,下面命令就會得到net和netgroup的信息

[DEV]innovus 17> dbSchema net*

=======================

net: Canonical (flat) net (equivalent to connectivity in DEF NETS and SPECIALNETS)

-----------------------------------------

allTerms: objList(instTerm term), List of pointers to connections (terms and instTerms)

area: area, Area of the net as defined by the LEF MACRO SIZE or OVERLAP information

===================

netGroup: Net group

--------------------------------------

excludeNet(settable): enum(allLayer allLayerInGuidedArea inclusive sameLayer), Indicates group net exclude type(allLayer, sameLayer, inclusive, allLayerInGuidedArea)

 

它更加有用的地方在於,它還能幫你查詢到上一級的attribute是什么,這樣我們就能很方便地寫出我們想要的dbGet命令。比如說我們不知道在哪些attribute下面有net屬性,可以采用下面命令:

[DEV]innovus 18> dbSchema -parent net

也可以采用通配符來匹配,功能和-parent一樣

[DEV]innovus 20> dbSchema * net

采用-list就可以只列出parent attribute的名字

[DEV]innovus 18> dbSchema -parent net -list

bump bus hInstTerm hNet hTerm inst instTerm net netGroup pWire pd routeType sViaInst sWire term topCell vWire viaInst wire

 

但是如果你不知道想要查詢的attribute名字,上一級或者下一級都完全沒思路的話,那就沒辦法。只能查詢doc了,下面我們就來介紹一下各個attribute的意思,(由於數目太龐大,簡單的或者很冷門的屬性我就直接跳過了,按字母順序來介紹吧)

 

bndry

得到design中fence,region,guide的place信息

 

Parent Object

fPlan, hInst

 

Child Object

area,box,box_area,box_ll,box_llx,box_lly,box_size,box_sizex,box_sizey,box_ur,box_urx,box_ury,boxes,hInst,objtype,prop,type

經常有人問我,dbGet怎么沒法得到fence,region,guide屬性。那這個attribute就是來得到這些東西的。

hInst: 這邊可能有些新人不理解hInst, inst和cell的區別,cell是netlist里面最基本的單元,inst是cell被實例化以后的東西,而hInst則是帶有hierarchy結構的module,它的下層還有東西,那它就是hInst。下面這張圖很好地表達了三者的區別

 

所以這邊dbGet bndrys的hinst的話,

[DEV]innovus 3> dbget top.fPlan.bndrys.hInst.name

SUB_INTER_PH SUB_Tran_PH

 

objtype: 該attribute的類型是什么,通常可以用於檢查一個指針是什么類型

 

prop: 可以自己使用define_property來定義新的property

 

type: 這個類型就是指module的約束屬性了,分別是fence,region,guide,none,cluster. (注意的是,這里的cluster指的是softGuide)

 

 

 bump

得到design中的bump信息

 

Parent Object

topCell

Child Object

cell: bump cell

net: bump上assign的net

pStatus: bump placement status,分為cover, fixed, placed, softFixed, unplaced

term: bump的terminal

type: bump的terminal屬性,分為analogTerm, asyncCtrlTerm, clockTerm, dQTerm, dTerm, fFQTerm, feedTerm, gatedClockTerm, groundTerm, latchQTerm, normalTerm, powerTerm, rSTerm, triStateTerm

大致知道powerTerm,groundTerm,normalTerm區別就行了。

 

 

bus

得到design中bus net的屬性

 

Parent Object

net, term

 

Child Object

baseName,bits,lsb,msb

 

baseName: bus的基本名,比如A[7:0]的base name 就是A

bits: bus的每個bit

lsb: bus最小的有效bit

msb: bus最大的有效bit

 

busGuide

得到floorplan中bus guide的信息

 

Parent Object

fplan

 

Child Object

area,botLayer,box,box_area,box_ll,box_llx,box_lly,box_size,box_sizex,box_sizey,box_ur,box_urx,box_ury,netGroup,topLayer

 

 

fPlan

這是一個很常用的屬性了,基本上physical的東西都能在這個parent下搜到

 

Parent Object

topCell

 

Child Object

 

 

gCellGridDef

得到design中gcell grid的屬性,其實輸出的就是def文件中gcell grid的內容

 

Parent Object

fPlan

 

Child Object

dir,numGrids,start,step

 

dir: design中所有類型的gcell grid的方向

numGrids:design中所有類型gcell grid的屬性

start: design中所有類型gcell grid的起始點

step:design中所有類型gcell grid的間距

 

 

Group

得到design中inst group的信息

 

Parent Object

fPlan, hInst, inst, pd

 

Child Object

area,boxes,conType,density,members,name,parent,pd,props

 

conType:得到instance group所添加的constrain屬性

members:得到添加到instance group中的instance屬性

parent:得到sub group所屬的parent group屬性

pd: 得到instance group的power domain

 

 

head

head是整個design中包括庫在內的所有東西總和。

 

Parent Object

No Parents

 

Child Object

allCells,cellEdgeSpacings,dbUnits,finGridDirection,finGridOffset,finGridPitch,instMaskShiftLayers,layers,libCells,mfgGrid,props,ptnCells,routeTypes,rules,sites,topCells,vCells,vias

 

instMaskShiftLayers:得到instance哪層layer可以shift

ptnCells: 得到partition cell名字

rules: design中的ndr rules

vCells:verilog中的module

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM