喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)
通过前面一篇对dbGet基本用法的介绍,大家应该对它有一定了解了吧。那接来下,我们就要学习一下进阶的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.
可能你会觉得这样去查询一个介绍有点繁琐,不像别的cmd只要help一下就行了。这里,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的意思,(由于数目太庞大,简单的或者很冷门的属性我就直接跳过了,按字母顺序来介绍吧)
得到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就是来得到这些东西的。前面的box,area,size就不介绍了,大家试一下就知道了。
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)。这些约束的区别如下:
得到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区别就行了。
具体内容参考:
得到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
得到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
这个比较简单,就是bus guide本身的一些内容了,可以参考以下文章:
这是一个很常用的属性了,基本上physical的东西都能在这个parent下搜到
Parent Object
topCell
Child Object
这些child 属性都会在下文或者前文中介绍过,暂时不重复一遍了。
得到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的间距
可以参考以下文章
得到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是整个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
hierarchical insts
Parent Object
bndry,group,hInstTerm,hTerm, inst,ptn,topCell,vCell
Child Object
allInsts,allTreeInsts,area,bndry,box,box_area,box_ll,box_llx,box_lly,box_size,box_sizex,box_sizey,box_ur,box_urx,box_ury,boxes,cell,group,hInstTerms,hInsts,hNets,insts,name,parent,props,ptn,treeHInsts,treeInsts
Hierarchical的db object总是有点复杂,这里也一样
allInsts:指的是当前hinst level下的所有insts
allTreeInsts: 指的是所有hinst以及所有子level下的insts
hInstTerms: hinst的terminal,就是传统意义上的hinst的port口,如下图所示:红圈圈的就是top下hinst的hInstTerms
[DEV]innovus 13>dbGet top.hInst.hInsts.hInstTerms.name
SUB_PH/cpureq
hNets:指hinst的net,如下图中红圈就是top下hinst的hNet
[DEV]innovus 14> dbGet top.hInst.hInsts.hNets.name
SUB_PH/sec_mem_t_req
parent:指的是hinst上一级parent hinst的属性
treeHInsts:得到所有的hinsts属性
treeInsts:得到所有的insts属性,treeInsts加上treeHInsts就是allTreeInsts
hinst的terminal
Parent Object
hInst, hNet
Child Object
downHNet,hInst,hTerm,layer,name,net,props,pt,pt_x,pt_y,term,upHNet
这个概念在hInst里已经解释过,但它下面还有很多child Object比较混乱
downHNet/upHNet: 这两个得放一起讲,如下图所示,对一条hierarchical net来说,对交接处的port口来说,往下走的net就是downHNet,就是蓝色圆圈;往上走的net的就是upHNet,就是红色圆圈。
[DEV]innovus 15> dbGet top.hInst.hInsts.hInstTerms.downHNet.name
SUB_PH/lx_dmu_debug_enable
[DEV]innovus 16> dbGet top.hInst.hInsts.hInstTerms.upHNet.name
lmi_lmipl_vid_maX1X
hTerm:hierarchical term,这个和hinstTerm的区别在于,hinstTerm是对一个hinst来说,从外往里看的teminal;而hTerm是从里往外看的teminal,是flat的
[DEV]innovus 16> dbGet top.hInst.hinsts.hinsts.hInstTerms.hTerm.name
target_1_asb_add[9]
对应着下面的图片上的红圈,就是这条命令get的hterm名字
term:term的概念是cell的terminal,可以是lib cell,partition cell或者top cell
先介绍到这里吧,剩余的下期再一起介绍~~
喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)相关推荐
- python在心理学的应用_喜欢心理与心理学,不能错过这9款心理APP
这些年,随着大家对心理健康的关注升温,市场上也出现了形形色色的心理APP.有的APP在经历短暂的繁华后已经烟消云散,有些则越做越好,当然也发现了在心理学领域异军突起了一些APP. 所以根据APP的发展 ...
- 喜欢玩游戏的发烧友不要错过了,五款高续航低延迟蓝牙耳机为你量身打造
现在手机成为电子游戏的主流平台,<王者荣耀>.<刺激战场>等一波电竞手游的出现,把电竞游戏推向全民化.无论水平如何,只要有一台不是配置太烂的智能手机,就能随时刷上一局. 而玩游 ...
- 不敢去争取,学不会珍惜,却难以忘记——dbGet(三)
我们继续上次,介绍dbGet剩余的object内容 inst flat design下的instance Parent Object group, hInst, instTerm, io, pBlkg ...
- 从原型到原型链,修炼JavaScript内功这篇文章真的不能错过!系列(二)
从原型到原型链 JavaScript基础提升合集
- NLP-阅读理解:数据集介绍及预处理【SQuAD、DuReader】
一.SQuAD数据集 二.DuReader数据集 1.DuReader数据集介绍 DuReader,从名字(Du和Reader)就可以看出来,是百度整理出来的阅读理解数据集. DuRader数据集由一 ...
- tar -xf_青铜表选什么?不可错过的XF帝舵碧湾小铜盾
原标题:青铜表选什么?不可错过的XF帝舵碧湾小铜盾 作为碧湾系列当中备受欢迎的表款之一,帝舵碧湾青铜型(Black Bay Bronze)凭借着复古经典的外形设计和特立独行的气质,成为了制表界中独特的 ...
- 《有一种错过叫作遗憾》
<有一种错过叫作遗憾> <第一集> 有一种缘分叫作,安排,世界之大.又让两个东来西往的陌生人从此相遇. 有一种相识叫作,天意,人海茫茫之中,只有你和他就此之交,"没有 ...
- 惜时间_珍惜时间的作文
写珍惜时间的作文(一)莫等闲,白了少年头三十功名尘与土,八千里路云和月.莫等闲,白了少年头,空悲切!这是南宋抗金名将岳飞的名句.说的是年轻人要珍惜时间,要充分利用每一分钟时间努力学习,去完成理想,而不 ...
- 本周不可错过的Android游戏
在过去一周有哪些好游戏在Android平台登陆或者更新了呢?有从iOS平台的转移的Disney大作Where 's My Water,也有在PC和iOS平台都大获成功的粘粘世界,有传统街机射击的反恐奇 ...
最新文章
- Python+selenium 自动化-chrome驱动的下载安装
- 为Drupal7.22添加富编辑器 on Ubuntu 12.04
- linux c 读写mbr_一文看懂Linux开机流程BIOS-MBR-GRUB-Kernel-Init-Runlevel
- 堆和栈地址——eclipse linux实践
- C++ 实现带权有向图的每对顶点之间的最短路径Floyd算法(完整代码)
- jqprint控件使用
- 【今日CS 视觉论文速览】 9 Jan 2019
- 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) C. XOR Equation 数学
- war包怎么解压_微信猫和老鼠主题怎么搞?快来看
- Java常用知识整理
- 框架学习之Spring 前言
- 闲谈REST API
- Redis 集群(学习笔记十)
- 手机12306买卧铺下铺技巧_12306网购火车票怎么选上中下铺(详细代码及图解)...
- 什么是云计算,什么是网格计算,他们之间有什么区别
- gets,fgetc,fgets,getc,getchar,putc,fputc,putchar,puts,fputs函数详讲
- visio2010中怎么画虚线
- 南京银行之八,风险提示
- 简单模拟struts框架,了解strusts的框架实现机制
- 秒杀秘籍大曝光 教你以超低价买到正品货
热门文章
- 将asp.net webapi的运行时版本由4.0升级到4.5.1时遇到的问题及解决
- 连接不上sql server服务器的解决方案
- TypeError: ‘builtin_function_or_method‘ object is not subscriptable 报错解决方法
- 关于“svn: Can‘t connect to host ‘*.*.*.*‘: 由于连接方在一段时间后没有正确答复或连接”的解决方法
- 如何制作圆角布局..?
- 使用Jackson忽略JSON对象上的新字段[复制]
- springboot整合junit_springBoot整合junit(笔记)
- 作为程序猿必须了解的生产者与消费者
- AWT_事件监听2(Java)
- Vue自定义指令—— 完美解决H5页面不同尺寸屏幕的适配问题