等不到那人,回不到人间——dbGet(四)
通过前面三讲,相信大家已经熟悉dbGet的用法了吧。那下面给大家介绍几个具体的例子,希望通过这些例子,能进一步加深大家对dbGet的印象。亲们,可以打开一个hierarchical的design,边看边练~~
如何用dbGet命令在design中寻找到一个inst的前后一级instance?
这个其实用timing tcl的命令<add_fanin><all_fanout>很简单就能得到,但是大家知道怎么用dbGet来实现这个功能吗?
假设我们需要得到名字为FE_OFC5681_bex1x这个inst的前后级instance,还是要从这个instance入手,但是前级和后级需要用不同的操作方法。首先我们来看如何去得到前一级instance?
思路是:
(1)找到instance的指针
(2)找到instance的input pin指针,因为前级instance连在input pin上
(3)找到该input pin连接的net
(4)找到该net的另一个term,就是output端
(5)找到该term对应的instance,就是需要找的前级instance
实际操作:
> dbGet top.insts.name FE_OFC5681_bex1x -p
0x2b228c192050 得到该instance的指针
> dbGet 0x2b228c192050.instTerms.isInput 1 -p
0x2b229bba0050 得到instance的input pin指针
> dbGet 0x2b229bba0050.net.name
central_s02_targ_bex1x 得到input pin连接的net
> dbGet 0x2b229bba0050.net.name central_s02_targ_bex1x -p
0x2b229bded5d0 得到input pin连接的net的指针
> dbGet 0x2b229bded5d0.instTerms.isOutput 1 -p
0x2b22d1f258c0 得到该net的另一个term,即output端
> dbGet 0x2b22d1f258c0.inst.name
s02_targ_bex1x 得到前级instance的名字
当然实际写的时候完全不用这样分开写,可以简单点写成一句命令,这样也方便于写脚本
> dbGet [dbGet [dbGet [dbGet top.insts.name -p FE_OFC5681_bex1x].instTerms.isInput 1 -p].net.instTerms.isOutput 1 -p].inst.name
s02_targ_bex1x
得到后一级instance方式一样,只是把isInput和isOutput的顺序对换一下,如下所示:
> dbGet [dbGet [dbGet [dbGet top.insts.name -p FE_OFC5681_bex1x].instTerms.isOutput 1 -p].net.instTerms.isInput 1 -p].inst.name
input_stbus_wrap_bex1x
2.如何得到设计中含有超过5个input以上的非clock net?
这个比较简单了,我们使用条件匹配就可以了。
> dbGet [dbGet top.nets {.isClock == 0 && .numInputTerms > 5}].name
FE_OFN5626_dvo_eth_pad_en FE_OFN5615_dvo_pad_en FE_OFN5614_dvo_pad_en FE_OFN5520_tst_scanmode
这里需要注意的是格式,nets后面需要空格。
3. 怎么得到设计中的dont use , dont touch cell?
这个也是比较有用的一个功能,虽然有直接的命令可以取得。但是dbGet也不是很复杂,来学一些吧
dont touch cell
> dbGet [dbGet top.insts.cell.isDontTouch 1 -p].name -u
CBUFLHVTX4 st230 f4h22Tc3000a sbatm_dpreg_32x64 secure_sp64kuhd_1024x64b1
dont use cell
> dbGet [dbGet top.insts.cell.isDontUse 1 -p].name -u
CLOCKTREE CBUFLHVTX4 st230 f4h22Tc3000a sbatm_dpreg_32x64
4. 找到设计中状态是fixed的,cell名字是BFHVTX4的instance
同样的需要分几步来描述
(1)先找到cell是BFHVTX4的instance
(2)然后在找到状态是fixed的instance
(3)最后取得这些instance的名字
先找到cell是BFHVTX4的instance
> set a [dbGet top.insts.cell.name BFHVTX4 -p2]
0x2b228c18ee00 0x2b228c18ee70 0x2b228c18eee0 0x2b228c18ef50
找到状态是fixed的instance
> set b [dbGet $a.pstatus fixed -p]
0x2b228c18ee00 0x2b228c18ee70 0x2b228c18eee0 0x2b228c18ef50
取得这些instance的名字
> dbGet $b.name
aaa,bbb,ccc,ddd
也可以直接用一个命令搞定
> dbGet [dbGet [dbGet top.insts.cell.name BFHVTX4 -p2].pstatus fixed -p].name
5. 如何得到一个instance所在的power domain名字?
> dbget [dbget top.insts.name PSO_177_1634_549-p].pd.name
DSP1_PD
好像例子蛮难举的,想了半天也就想了5个。其实也不难,只要把抓东西的先后顺序搞清楚,然后再一步一步嵌套下去,就能得到想要的东西了。主要还是多练多用,平时尽量不要用Find Form,重复超过3遍的东西,就一定要说服自己写脚本完成。看似会降低工作速度,其实等你熟练了以后,你就比别人又多了一项技能。
等不到那人,回不到人间——dbGet(四)相关推荐
- 四人麻将 java版下载_四人麻将下载-四人打麻将免费版手机最新下载
四人麻將創新結合國標麻將和四川省血液之戰多種玩法,花式魔幻的國家標准番型和胡牌,連胡不斷的血流成河,一站到底的血流成河,讓你high爆整場爽翻天.點卷送不斷,開展活動更有手機話費.手機等豐富獎賞! 四 ...
- C#服务端的微信小游戏——多人在线角色扮演(十四)
C#服务端的微信小游戏--多人在线角色扮演(十四) 服务器端 客户端 名字不是自己定义的,但人生却可以 --茂叔 为了实现让用户选择角色的姓名和性别,我们需要这样一个界面: 服务器端 要实现这个功能, ...
- 人一生中要遇到的四个人
人一生中要遇到的四个人 人生就是为了找寻爱的过程,每个人的人生都要找到四个人. 第一个是自己, 第二个是你最爱的人, 第三个是最爱你的人, 第四个是共度一生的人. 人生就是为了找寻爱的过程,每个人的人 ...
- 奋斗吧,程序员——第五十四章 坐拥美人君莫笑,古来征战几人回
排除了诸多问题后,最终的不良率大概在千分之二左右,已经在行业惯例的千分之三以内. 但是Sharp要求千分之一,我将剩下的坏料逐个分析,最终又找到一个rom的问题,在成测里加上rom检测应该可以进一步提 ...
- 投了几百份简历都没人回?兄弟,你的简历真的有问题啊!
一直有小伙伴想要了解关于面试方面的内容,但是只有简历做的好了,才有面试通知呀,所以我们就从简历制作开始吧! 哈哈我对你们好吧! 首先我们要搞明白一个问题-简历是什么? 简单来说,简历就是就是一种个人广 ...
- PHP投简历没人回,投简历后没有回复怎么办?
原标题: 投简历后没有回复怎么办? 在找工作的过程中,求职者必然会面临投出简历后等待企业回复的过程,往往简历就像石沉大海,没有了回应.迷茫的等待是十分煎熬的, 为什么会有这种现象的产生?而作为求职者, ...
- 这样问 bug,怪不得没人回你... | 程序员该有的提问技巧
引言 深度工作(Deep Work):在无干扰的状态下专注的进行职业活动,使个人的认知能力达到极限.这种努力能够创造新价值,提升技能,而且难以复制.---- 卡尔·纽波特.麻省理工学院计算机博士, ...
- 十 三 弟 你 快 回 来 吧, 皇 帝 四 哥 叫 你 一 起 学 习 大 数 据 呢
躺平的十三郎,你的皇上四哥叫你呢,请你抬起头仔细听; 之前埋头血拼的十三郎跑哪去了,人送拼命十三郎; 十三郎抬头看看吧,大数据就站在你的面前,你真不打算卡住大数据的咽喉再血拼一次,重新做回你的热血拼命 ...
- 为什么6lowpan 要有四个地址_为什么你打玻尿酸,能被人一眼看出来?这四个地方要谨慎注射!...
现在的女生为了美所能忍受的不仅仅是贫穷,还有疼痛.为了漂亮的眼睛去割双眼皮的不在少数,为了祛皱被肉毒杆菌折腾的也很多,不过最常见的恐怕就是玻尿酸了.众所周知的一种补水成分,不仅仅出现在各种护肤品当中, ...
最新文章
- 你要的2019最全目标检测都在这里啦!
- SpringBoot2.0配置redis相关
- [No0000C0]百度网盘真实地址解析(不用下载百度网盘)20170301
- linux的虚拟文件系统VFS
- 友盟2015年Q2、Q3中国移动互联网趋势报告
- python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...
- 修改了字体变形的bug(4.9)
- spring ioc控制反转
- java_oop_三大特性
- Python OpenCV 在视频上添加文字后保存视频
- U盘格式化导致存储空间变小的解决方法汇总
- 工具篇-sdkman-SDK管理利器
- 如何在linux下安装rar软件,Linux下安装使用RAR压缩软件的方法
- 详解 js 函数中的 arguments
- Python·pip升级失败报异常之解决方案
- 枚举类 Enum使用
- 加码跨境物流 iPayLinks艾贝盈与乐鱼跨境达成合作
- 五个有用的微信公众号运营技巧!
- 金字塔原理读书笔记(一)
- [配置]FileZilla配置ftp服务端
热门文章
- 无法在驱动器0分区上安装windows 解决方法
- 【Docker】安装MySQL彻底解决3306端口占用问题
- 杂谈异常处理try-catch-finally
- 安装Visio 2016与原本的office冲突的最终解决方案
- 连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法
- Angular:带* ngClass的条件类
- 如何使用jQuery打开Bootstrap模式窗口?
- GCC为什么不将a * a * a * a * a * a优化为(a * a * a)*(a * a * a)?
- 何时使用.First以及何时将.FirstOrDefault与LINQ结合使用?
- 如何将类添加到给定的元素?