喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)

2023-10-30

640?wx_fmt=gif

通过前面一篇对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

640?wx_fmt=jpeg

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

[DEV]innovus 20> dbSchema * net

640?wx_fmt=jpeg

采用-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就是来得到这些东西的。前面的box,area,size就不介绍了,大家试一下就知道了。

hInst: 这边可能有些新人不理解hInst, inst和cell的区别,cell是netlist里面最基本的单元,inst是cell被实例化以后的东西,而hInst则是带有hierarchy结构的module,它的下层还有东西,那它就是hInst。下面这张图很好地表达了三者的区别

640?wx_fmt=jpeg

所以这边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

640?wx_fmt=jpeg

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

这个比较简单,就是bus guide本身的一些内容了,可以参考以下文章:


fPlan

这是一个很常用的属性了,基本上physical的东西都能在这个parent下搜到

Parent Object

topCell

Child Object

640?wx_fmt=jpeg

这些child 属性都会在下文或者前文中介绍过,暂时不重复一遍了。


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


hInst
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

640?wx_fmt=jpeg

hNets:指hinst的net,如下图中红圈就是top下hinst的hNet

[DEV]innovus 14> dbGet top.hInst.hInsts.hNets.name 

SUB_PH/sec_mem_t_req

640?wx_fmt=jpeg

parent:指的是hinst上一级parent hinst的属性

treeHInsts:得到所有的hinsts属性

treeInsts:得到所有的insts属性,treeInsts加上treeHInsts就是allTreeInsts


hInstTerm

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,就是红色圆圈。

640?wx_fmt=jpeg

[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名字

640?wx_fmt=jpeg

term:term的概念是cell的terminal,可以是lib cell,partition cell或者top cell

先介绍到这里吧,剩余的下期再一起介绍~~


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

喜欢就争取,得到就珍惜,错过就忘记—dbGet(二) 的相关文章

  • [从零开始学习FPGA编程-50]:视野篇 - 芯片是如何被制造出来的?芯片制造的十三大步骤。

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 什么是芯片 一颗芯片就是一个城市 总体流程
  • 人脸识别、无人驾驶背后:是谁在造人工大脑?

    NEW 关注剁手日记视频号 最新视频 OPPO下一代屏下镜头技术 这可能才是你想要的全面屏 来源 科技新知 文 樟稻 编辑 伊页 转瞬之间 ILSVRC比赛 又称ImageNet比赛 已经停办了四年 作为机器视觉领域最受追捧也是最具权威的学
  • 求职季,我是这样拿到百度AI Offer的!

    最近摸鱼期间 发现身为程序员的我被赋予了另一个身份 新生代农民工 简直炸了 重点还官宣了 这就更加实锤了啊 我就想说 我们新生代农民工招谁惹谁了 我们能有什么坏心思呢 头都秃了挣点高工资容易吗 说到高工资 坊间确实流传着程序员35岁财富自由
  • LCD1602芯片的使用——简单易懂

    题目 想在LCD1602上显示两行如下字样 huaianxinxi wantin 想完成上面的显示必须掌握LCD1602芯片的基本知识 将在程序下面附上LCD1602芯片的基本知识 供大家参考 我实现的比较简单 没有什么花哨的显示 大家首先
  • verilog/systemverilog的随机数生成问题

    Verilog SystemVerilog 里面的随机函数 Verilog系统自带一些随机数发生函数 最常用的有random 语法如下 random seed 指定概率分布 如果希望生成的随机数具有一定的概率分布 还有一些系统函数可以选用
  • AI芯片学习小结4-谷歌TPU与脉动阵列

    AI芯片学习小结4 谷歌TPU与脉动阵列 文章 In Datacenter Performance Analysis of a Tensor Processing Unit 时间 2017 Reference 深入理解Google TPU的
  • chisel相比verilog优势之一:复用特性

    0 绪论 世界由于人这个最大的无厘头变量 还是比技术本身复杂难懂很多 各种技术的兴起与发展总是有其背后的理由的 这篇文章是这个系列的第三篇文章 主要来说明Chisel比Verilog在某些方面具有优势的理由 换句话说 为什么要用Chisel
  • CH340芯片USB转RS485参考电路

    CH340可以实现USB转TTL串口电路 但是CH340芯片上不能直接出来RS485电平信号 所以要通过电平转换芯片来实现 由于RS485一般用半双工通信 所以需要一个使能信号来控制RS485收发器的方向 从支持RS485的功能来讲CH34
  • 不得不读

    本次总共收集了8位大牛的8篇精品文章 内容涉及设计 验证 行业研究 ICer职场生活等各方面 欢迎大家点击阅读并关注 1 酒酒拿下四五十万的真实大厂面试经历 作者介绍 酒酒成电研三在读 自学算法leetcode刷题 双修IC验证 斩获互联网
  • 学位真的那么重要吗?上交大博士亲述科研心路,获4万高赞,网友:这是知乎最好的回答...

    点击 凹凸域 马上关注 更多内容 请置顶或星标 学位真的那么重要吗 上交大博士亲述科研心路 获4万高赞 网友 这是知乎最好的回答 十三 转载整理自 时间规划局 量子位 报道 都说读博就像一场赌博 一入红门深似海 从此半点不由人 还时不时曝出
  • 【总结】NPU/CPU/GPU 傻傻分不清?

    本文主要解答以下问题 NPU是新玩意儿吗 芯片里面的CPU GPU NPU究竟是什么 它们是怎么工作的 引言 中国首款嵌入式NPU诞生 6月20日 中星微 数字多媒体芯片技术 国家重点实验室在京宣布 中国首款嵌入式NPU 神经网络处理器 芯
  • 关于芯片功耗的那些事(十九)

    续前一期 聊聊EM 的问题 当工艺在110nm及以下 由于metal 的最小线宽越来越窄 加之更高的device 电流和on die 的温度越来高 互连线的可靠性问题 互连线的EM问题越来越引起重视 电迁移的问题 可能导致金属线的要么变窄
  • 设计补偿器网络以改善开关频率响应

    直流开关电压转换器 或 开关调节器 控制回路的特点是频率响应 频率响应影响开关调节器的反应时间对瞬态变化 精度和稳定性的影响 并在输入电压 负载和工作周期变化的情况下 如何保持设定的电压输出 工程师可以通过增加补偿器网络来改善开关调节器的频
  • 人工智能芯片发展 (1

    人工智能技术随着以深度学习为核心算法的大力发展 目前已经在场景识别 语音识别等方面迅猛发展 影响人工智能的三大要素 数据 算法 算力 其中算力 是实现算法的重要基础 人工智能芯片也处于这个时代的战略至高点 目前人工智能 芯片分为三类 a A
  • 《每日一题》NO.41:FPGA内部资源有哪些?

    芯司机 每日一题 会每天更新一道IC面试笔试题 其中有些题目已经被很多企业参考采用了哦 聪明的你快来挑战一下吧 今天是第41题 FPGA设计工程师也是一个比较热门的职位 FPGA中都包括哪些资源呢 今天的题就是这样啦 开始解题吧 公布答案
  • 了解一款新的单片机

    MCU价格依然高居不下 各个国产MCU厂商的竞争也是如火如荼 然而好多厂商都是追求硬件甚至软件兼容STM32 但是兼容性好的芯片用的人也多 最终供不应求 还是会导致价格上涨 与其这样 不如干脆选一款相对冷门的单片机 用的人没那么多 价格也就
  • 一枚芯片的成本是多少?(2)芯片硬件成本

    芯片硬件成本 计算封装和测试的成本这个没有具体的公式 只是测试的价格大致和针脚数的二次方成正比 封装的成本大致和针脚乘功耗的三次方成正比 如果CPU X采用40nm低功耗工艺的自主芯片 其测试成本约为2美元 封装成本约为6美元 因40nm低
  • 几种RS485隔离通讯的方案介绍

    RS485具有抗干扰能力强 成本低等特点 广泛应用于工业智能仪表 通讯设备等各个领域 RS485电路可以分为非隔离型和隔离型 隔离型电路是在非隔离型电路的基础上增加隔离性能 使得电路具有更强的抗干扰性和系统稳定性 今天介绍几种隔离RS485
  • 带你三分钟了解算力

    导读 数字经济时代 算力是新生产力 是支撑数字经济发展的坚实基础 加快发展算力 是我国打造数字经济新优势 构建 双循环 新发展格局 提升国家整体竞争力的重要保障 一 何为算力 算力是设备通过处理数据 实现特定结果输出的计算能力 常用FLOP
  • BES系列蓝牙开发总结

    博文索引 框架 BES2300X BES2500X 框架解析 一 UI及外围功能模块 BES2300X BES2500X UI 按键 提示音 指示灯 BES2300X BES2500X UI 电池管理模块 蓝牙操作及协议连接 数据流及数据编

随机推荐

  • 解决recycleView加载九宫格由于图片过大导致卡顿的问题

    最近在开发公司项目的时候 遇到了很棘手的问题就是后台返回的图片很大 导致加载的很慢 当时考虑用压缩 但是压缩考虑到性能不好 所以就常识了新的解决办法代码如下 public class NineGridImageView extends Vi
  • UE4 SpawnActor

    UPROPERTY EditDefaultsOnly Category Player TSubclassOf
  • [Go版]算法通关村第一关白银——判断是否回文链表

    目录 题目 判断是否是回文链表 解决方法 快慢指针 递归反转链表 思路分析 复杂度 时间复杂度 O n O n
  • linux3.x 内核如何强制卸载模块?

    一 问题现象 在insmod时调用的init函数代码执行过程中出现oops 导致rmmod卸载失败 此时不得不重启目标板 No 下面是 精通linux设备驱动程序开发 中模拟鼠标的输入设备驱动的内核模块vms c代码 include
  • VS2017+gnuplot画图,下载安装教程

    c c 画图插件 gnuplot 1 官网下载 http www gnuplot info 这里下载的是5 4版本 2 之后进行无脑安装即可 只需注意以下几点 一定要记得点击 Add application directory to you
  • Spring Cloud Gateway 全局异常处理

    文章目录 Spring Cloud Gateway 全局异常处理 范例 示例 修改前抛出一个运行时异常 示例 全局异常处理抛出一个运行时异常 如何添加 自定义异常处理配置 全局异常处理监听器 总结 Spring Cloud Gateway
  • Android平台GB28181设备接入技术探讨

    GB T28181技术背景 在此之前 我们先对协议规范做个简单了解 GB28181协议是一种用于视频监控系统互联互通的国际标准 它定义了视频监控系统中的设备间如何进行通信 交换数据和协调控制 以下是GB28181协议的一些主要内容 设备互联
  • 期货中的正向交易与反向交易

    期货中的正向交易和反向交易 两者之间有什么样的共同点又存在什么样的差异 本文转发自公众号 反跟单交易 转载需注明出处 首先有一点值得认同 两者都属于交易 大家都抱有同样的赢利目的 就好像我们要去北京一样 虽然大家的出发点不同 乘坐的交通工具
  • Word处理控件Aspose.Words功能演示:在 Python 中将 Word DOCX 或 DOC 转换为 PDF

    Word 到PDF是最流行和执行最广泛的文档转换之一 DOCX或DOC文件在打印或共享之前会转换为 PDF 格式 在本文中 我们将在 Python 中自动将 Word 转换为 PDF 步骤和代码示例将演示如何使用 Python 将 Word
  • 公司自建机房IDC还是选择云服务器?以腾讯云为例

    大企业是选择自购服务器自建机房还是使用腾讯云服务器 都说企业上云是趋势 自建机房是一次性支出 上云租赁云服务器等产品需要年年续费 大型企业有必要把数据中心迁移上云吗 腾讯云服务器网想说 自建机房购买服务器等硬件并不是一次性支出 后续人工成本
  • 如何确定一个期刊是不是EI?

    去爱思唯尔官网下载最新的目录 网址 https www elsevier com solutions engineering village content compendex 打开EXCEL查看 SERIALS就是罗列出的所有的EI期刊和
  • 应急响应基础(三)——Windows日志分析

    Windows日志分析 一 Windows事件日志简介 1 Windows事件日志 Windows系统日志是记录系统中硬件 软件和系统问题的信息 同时还可以监视系统中发生的事件 用户可以通过它来检查错误发生的原因 或者寻找受到攻击时攻击者留
  • 拒绝“割韭菜”— 谈谈区块链正经的商用场景!

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 作者 林喜东 腾讯云高级工程师 最近区块链有多火 已经无需过多阐述 无论你是主动了解 还是被比特币 加密猫 3点钟无眠区块链等刷屏 相信区块链概念已经在多数人心中萌芽 但区块链这么火
  • ndvi计算公式_NDVI时间序列分析原理与实现(CV和Sen+MK趋势分析)

    NDVI时间序列分析原理与实现 CV和Sen MK趋势分析 总结两种常用的NDVI时间序列栅格分析方法 变异系数和Sen MK趋势分析 简单介绍原理和实现代码 实验数据均为年际变化数据 在CV中使用的是多波段ENVI数据 Sen MK趋势分
  • 《从Paxos到ZooKeeper》读书笔记之第一章(一)

    从Paxos到ZooKeeper 读书笔记之第一章 一 开始读 从Paxos到ZooKeeper 这本书 以了解和使用ZooKeeper 这里会记录一些随笔画下来的自以为的重点 自己理解和代码块 第一章 分布式结构 1 1 从集中式到分布式
  • springboot 启动后,调用接口时报错404问题汇总(层层推进、超全面)

    确保项目启动成功 看到这条日志才能判定项目是启动成功的 确保controller类被成功注册到了springboot容器中 首先 按springboot的类扫描规则来说 启动类和被扫描的组件类应该要在同一包下的 验证策略 从springbo
  • 联调QuartersII + ModelSim(下载安装)

    目录 1 ModelSim安装 1 之前埋得坑 2 如果额外装完整版的ModelSim 我还是推荐按照这个博客的步骤就好 安装文件我已经在上一篇博客一起给大家了 3 存在的问题 一定要管理员模式使用软件 2 联调QuartersII Mod
  • Mysql(数据库基础篇)

    棒棒有言 也许我一直照着别人的方向飞 可是这次 我想要用我的方式飞翔一次 人生 既要淡 又要有味 凡事不必太在意 一切随缘 缘深多聚聚 缘浅随它去 凡事看淡点看开些 顺其自然 无意于得 就无所谓失 人生 看轻看淡多少 痛苦就远离你多少 本章
  • MATLAB&机器学习进阶

    本文借鉴了数学建模清风老师的课件与思路 可以点击查看链接查看清风老师视频讲解 清风数学建模 https www bilibili com video BV1DW411s7wi 目录 一 K最近邻 KNN 二 决策树 三 支持向量机 四 集成
  • 喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)

    通过前面一篇对dbGet基本用法的介绍 大家应该对它有一定了解了吧 那接来下 我们就要学习一下进阶的dbGet用法了 dbGet是由它基本的语法加上各种object的attribute的组合构成的 大家在熟悉基本语法之后 就应该去学习各个o