通过前面三讲,相信大家已经熟悉dbGet的用法了吧。那下面给大家介绍几个具体的例子,希望通过这些例子,能进一步加深大家对dbGet的印象。亲们,可以打开一个hierarchical的design,边看边练~~

1

如何用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(四)相关推荐

  1. 四人麻将 java版下载_四人麻将下载-四人打麻将免费版手机最新下载

    四人麻將創新結合國標麻將和四川省血液之戰多種玩法,花式魔幻的國家標准番型和胡牌,連胡不斷的血流成河,一站到底的血流成河,讓你high爆整場爽翻天.點卷送不斷,開展活動更有手機話費.手機等豐富獎賞! 四 ...

  2. C#服务端的微信小游戏——多人在线角色扮演(十四)

    C#服务端的微信小游戏--多人在线角色扮演(十四) 服务器端 客户端 名字不是自己定义的,但人生却可以 --茂叔 为了实现让用户选择角色的姓名和性别,我们需要这样一个界面: 服务器端 要实现这个功能, ...

  3. 人一生中要遇到的四个人

    人一生中要遇到的四个人 人生就是为了找寻爱的过程,每个人的人生都要找到四个人. 第一个是自己, 第二个是你最爱的人, 第三个是最爱你的人, 第四个是共度一生的人. 人生就是为了找寻爱的过程,每个人的人 ...

  4. 奋斗吧,程序员——第五十四章 坐拥美人君莫笑,古来征战几人回

    排除了诸多问题后,最终的不良率大概在千分之二左右,已经在行业惯例的千分之三以内. 但是Sharp要求千分之一,我将剩下的坏料逐个分析,最终又找到一个rom的问题,在成测里加上rom检测应该可以进一步提 ...

  5. 投了几百份简历都没人回?兄弟,你的简历真的有问题啊!

    一直有小伙伴想要了解关于面试方面的内容,但是只有简历做的好了,才有面试通知呀,所以我们就从简历制作开始吧! 哈哈我对你们好吧! 首先我们要搞明白一个问题-简历是什么? 简单来说,简历就是就是一种个人广 ...

  6. PHP投简历没人回,投简历后没有回复怎么办?

    原标题: 投简历后没有回复怎么办? 在找工作的过程中,求职者必然会面临投出简历后等待企业回复的过程,往往简历就像石沉大海,没有了回应.迷茫的等待是十分煎熬的, 为什么会有这种现象的产生?而作为求职者, ...

  7. 这样问 bug,怪不得没人回你... | 程序员该有的提问技巧

    引言   深度工作(Deep Work):在无干扰的状态下专注的进行职业活动,使个人的认知能力达到极限.这种努力能够创造新价值,提升技能,而且难以复制.---- 卡尔·纽波特.麻省理工学院计算机博士, ...

  8. 十 三 弟 你 快 回 来 吧, 皇 帝 四 哥 叫 你 一 起 学 习 大 数 据 呢

    躺平的十三郎,你的皇上四哥叫你呢,请你抬起头仔细听; 之前埋头血拼的十三郎跑哪去了,人送拼命十三郎; 十三郎抬头看看吧,大数据就站在你的面前,你真不打算卡住大数据的咽喉再血拼一次,重新做回你的热血拼命 ...

  9. 为什么6lowpan 要有四个地址_为什么你打玻尿酸,能被人一眼看出来?这四个地方要谨慎注射!...

    现在的女生为了美所能忍受的不仅仅是贫穷,还有疼痛.为了漂亮的眼睛去割双眼皮的不在少数,为了祛皱被肉毒杆菌折腾的也很多,不过最常见的恐怕就是玻尿酸了.众所周知的一种补水成分,不仅仅出现在各种护肤品当中, ...

最新文章

  1. 你要的2019最全目标检测都在这里啦!
  2. SpringBoot2.0配置redis相关
  3. [No0000C0]百度网盘真实地址解析(不用下载百度网盘)20170301
  4. linux的虚拟文件系统VFS
  5. 友盟2015年Q2、Q3中国移动互联网趋势报告
  6. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...
  7. 修改了字体变形的bug(4.9)
  8. spring ioc控制反转
  9. java_oop_三大特性
  10. Python OpenCV 在视频上添加文字后保存视频
  11. U盘格式化导致存储空间变小的解决方法汇总
  12. 工具篇-sdkman-SDK管理利器
  13. 如何在linux下安装rar软件,Linux下安装使用RAR压缩软件的方法
  14. 详解 js 函数中的 arguments
  15. Python·pip升级失败报异常之解决方案
  16. 枚举类 Enum使用
  17. 加码跨境物流 iPayLinks艾贝盈与乐鱼跨境达成合作
  18. 五个有用的微信公众号运营技巧!
  19. 金字塔原理读书笔记(一)
  20. [配置]FileZilla配置ftp服务端

热门文章

  1. 无法在驱动器0分区上安装windows 解决方法
  2. 【Docker】安装MySQL彻底解决3306端口占用问题
  3. 杂谈异常处理try-catch-finally
  4. 安装Visio 2016与原本的office冲突的最终解决方案
  5. 连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法
  6. Angular:带* ngClass的条件类
  7. 如何使用jQuery打开Bootstrap模式窗口?
  8. GCC为什么不将a * a * a * a * a * a优化为(a * a * a)*(a * a * a)?
  9. 何时使用.First以及何时将.FirstOrDefault与LINQ结合使用?
  10. 如何将类添加到给定的元素?