zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    算法与数据结构9
    算法与数据结构8
    数据结构与算法7
    数据结构与算法6
    计算机视觉(七)
    计算机视觉(六)
    计算机视觉(五)
    vscode 创建java项目
    vue 访问API接口
    vscode+vue 框架搭建
  • 原文地址:https://www.cnblogs.com/lelin/p/11156157.html
Copyright © 2011-2022 走看看