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
dbGet (二)的更多相关文章
- dbGet(二.一)hinst
hinst hierarchical insts Parent Object bndry,group,hInstTerm,hTerm, inst,ptn,topCell,vCell Child Obj ...
- php分享二十六:支付系统设计
一个典型PHP支付系统的设计与实现 参考:blog.sina.com.cn/s/blog_81f6205801017ec8.html 微信支付开发: http://www.cnblogs.com/tx ...
- 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态
最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...
- 前端开发中SEO的十二条总结
一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- MIP改造常见问题二十问
在MIP推出后,我们收到了很多站长的疑问和顾虑.我们将所有疑问和顾虑归纳为以下二十个问题,希望对大家理解 MIP 有帮助. 1.MIP 化后对其他搜索引擎抓取收录以及 SEO 的影响如何? 答:在原页 ...
- 如何一步一步用DDD设计一个电商网站(二)—— 项目架构
阅读目录 前言 六边形架构 终于开始建项目了 DDD中的3个臭皮匠 CQRS(Command Query Responsibility Segregation) 结语 一.前言 上一篇我们讲了DDD的 ...
随机推荐
- mysql错误:Column count doesn't match value count at row 1解决办法
这个错误的意思是存储的数据与数据库表的字段类型定义不匹配,解决办法如下: 1.查看插入数据的类型与表中字段的类型是否匹配2.插入数据的顺序与字段顺序是否匹配3.检查SQL是否拼写错误4.在insert ...
- maven依赖报红的一些解决办法
使用IDEA集成maven管理项目依赖时,经常出现更改pom文件后maven依赖列表并未更改,且依赖报红,此时建议检查maven配置文件maven仓库是否下载好jar包,如果未下载好jar包文件夹内会 ...
- 1级搭建类106-Oracle 19c 单实例 FS(华为云)公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列除特定项目目前不对外发布,仅作为博客记录,其他公开.如学员在 ...
- (三)运用Python模块和包
1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...
- 在vue项目中显示实时时间(年月日时分秒)
1.在data中定义一个变量,存储时间 data(){ return { nowTime:'' } }, 2.给定一个div <div>{{nowTime}}</div> 3. ...
- 2020年,最新NGINX的ngx_http_geoip2模块以精准禁止特定国家或者地区IP访问
1.0 geoip2核心识别库 安装geoip2 lib步骤: cd /usr/local/src .tar.gz wget https://github.com/maxmind/libmaxmind ...
- Qtree3 - 树链剖分
打完以后才发现写复杂了……算了懒得改了 #include <bits/stdc++.h> using namespace std; ],fa[][],size[],wson[],vis[] ...
- 三、linux环境的搭建1(oracle、ssh、jdk、mysql、samba、tomcat)
linux环境的搭建1(oracle.ssh.jdk.mysql.samba.tomcat) 网络配置 方案一 tip 1 使用ifconfig : ifconfig eth0 新ip 然后编辑/ ...
- 创建spring boot 项目
1.新建Spring Starter Project(需要连接外网) 2.选择web 3.点击完成,生成maven项目 pom文件默认有一些依赖,但是有一个地方报错,<parent>节点报 ...
- 09 部署nginx web服务器(转发uwsgi请求)
1 配置nginx转发 $ whereis nginx $ cd /usr/local/nginx/conf $ vi nginx.conf 注释掉原来的html请求,增加uwsgi请求. locat ...