常用dbGet命令

news2024/12/23 13:25:32

5028cc21f7054379b6a2412b20b7b774.png

3a7c67366bbe403887e0696bf1c875a0.png

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?
拾陆楼知识星球入口

203b6a2614bc4b3493fd98a95d93a4fb.png


Examples of dbGet Command
1. Find the top name of the design
dbGet top.name

2. Get all the attributes of a selected object 
dbGet selected.??
If you press tab key after a . (dot) it will display all the possible options there.  you can try
dbGet top.<press tab here>

3. Get the name of the selected object (instance, net, ports or any other objects).
dbGet selected.name

4. Get the cell name of a selected  Instance. 
dbGet selected.cell.name

5. Get all the pins of a selected  Instance. 
dbGet selected.cell.terms.name

6. Get the database unit 
dbGet head.dbUnits

7. Get the manufacturing grid value 
dbGet head.mfgGrid

8. Get all  the layers name
dbGet head.layers.name
Please let me know in the comment that it returns only routing layers or base layers too

9. Get all  the routing layers name
dbGet [dbGet head.layers.type routing -p].name
Alternatively, getAllLayers metal can also be used

10. Get the parameters of any particular routing layer (like Masks, Directions, pitch, minWidth, minSpacing etc )
dbGet [dbGet [dbGet head.layers.type routing -p].name *2 -p].minWidth

11. Get the information of a cell which is present in std. cell library but not in design.
dbGet head.libCells.name <cell_name> 
Then you can find many things like all available Drive strengths, Vt type etc.
You can also use another way : get_lib_cells <cell_name>

12. Get the pointers of all the cells which are used more than 100 times in the design
dbGet [dbGet head.allCells.objType libCell -p]{.numRefs > 100}

13. Get all the inverter cells available in the library.
dbGet [dbGet head.libCells.isInverter 1 -p].name 

14. Get  the size of your block
dbGet top.fPlan.box.size

15. Get  the area of a block
dbGet top.fPlan.area

16. Get all the power domains availble in the design
dbGet top.fPlan.groups.pd.name 

17. Find all the block level ports name 
dbGet top.terms.name

18. Find the metal layers used in block level IO ports
dbGet top.terms.pins.allShapes.layer.name -u

19. Get the count of block level ports 
dbGet top.numTerms
or you can also use
llength [dbGet top.terms]

20. Get all input and output ports 
dbGet top.numInputs
llength [dbGet top.terms.inOutput 1 -p]

21. Get all clock and scan clock pins
llength [dbGet top.terms.isClk 1 -p]
llength [dbGet top.terms.isScanClk 1 -p]

22. Get the edge number where a port is placed
dbGet [dbGet top.terms.name <port_name> -p].edge 

23. Get all the feedthru ports name which is placed on a particular edge number (suppose 3)
dbGet [dbGet top.terms.edge 3 -p].name *ft*  

24. Get the name of all the instances present in the design. 
dbGet top.insts.name

25. Get all the instances name of a particular cell 
dbGet [dbGet top.insts.cell.name <cell_name> -p2].name

26. Get all the physical cells present in the design 
dbGet [dbGet top.insts.cell.isPhyOnly 1 -p].name -u
Suppose you want to print all the names in a new line, you can use join them like below.
        join [dbGet [dbGet top.insts.cell.isPhyOnly 1 -p].name -u ] 
Suppose you want only a number that how many types of physical cells have been used, llength can be used in that case before the dbGet command.
       llength [dbGet [dbGet top.insts.cell.isPhyOnly 1 -p].name -u ]

27. Find the total number of physical cell instances used in the design  
llength [dbGet top.insts.cell.isPhyOnly 1 -p2]

28. Find all the instances which have only one pins (like tie cells, antenna cells)
llength [dbGet top.insts.cell.numTerms 1 -p2]

29. Find total numbers of well tap instances used in the design 
llength [dbGet top.insts.cell.name <*TAP*> -p2]
Note: Depending on the standard cell library nomenclature the keyword *TAP* could be vary

30. Find total types of well tap cells used in the design 
llength [dbGet top.insts.cell.name <*TAP*> -p -u]
Note: -p may be used in place of -p1, both have same meaning

31. Find  the name of all uniq types of well tap cells used in the design 
dbGet [dbGet top.insts.cell.name <*TAP*> -p].name -u
For better visibility print all of them in new line
join [dbGet [dbGet top.insts.cell.name <*TAP*> -p].name -u] 

32. Find the name of all the unique types of boundary cells used in the design
dbGet [dbGet top.insts.cell.name <*BOUNDARY*> -p].name -u
Note: you need to verify the keyword *BOUNDARY* based on your standard cell name.

33. Find the name of all the macro’s in your design
dbGet [dbGet top.insts.cell.baseClass block -p2].name
Suppose you want to exclude few macros like ESD cells or any othere from this list, then you can use -v option with this. like below.
dbGet [dbGet top.insts.cell.baseClass block -p2].name -v <uniq_name_pattern_of those_macros>
llength will return the count of macros.

34. Find the name of all sequential elements (registers/flip flops) in the design
dbGet [dbGet top.insts.cell.isSequential 1 -p2].name

35. Find the name of all the don’t touch instance
dbGet [dbGet top.insts.isDontTouch 1 -p].name

36. Get the name of all the instance in your design which has fixed placement status
dbGet [dbGet top.insts.pStatus fixed -p].name

37. Find the lower left cordinate of an instance 
dbGet [dbGet top.insts.name <inst_name> -p].pt
Or you can first select the instance and then use following command.
dbGet selected.pt
In case you want only x-coordinate or only y coordinate, you may use following command.
dbGet selected.pt_x 
dbGet selected.pt_y

38. Find the width and height of a cell
set width [dbGet [dbGet top.insts.cell.name <cell_name> -p].size_x -u]
set height [dbGet [dbGet top.insts.cell.name <cell_name> -p].size_y -u]
Or we can select the instance and use following command
dbGet [dbGet selected.cell.name <cell_name> -p].size_x -u
Or If that cell is not present in the design we can use following command
dbGet [dbGet head.libCells.name <cell_name> -p].size_x -u

39. Find the cordinate of a pin of an instance 
dbGet [dbGet top.insts.instTerms.name <inst_term_name> -p].pt

40. Find the placement status of an instance
dbGet [dbGet top.insts.name <inst_name> -p].pStatus
Note: Apart from pStatus there are two more status for an instace called ctsStatus and effectiveStatus.  effectiveStatus is the final status based on the latest pnr stage.
We can also change the pStatus of an instance using dbSet command.
dbSet [dbGet top.insts.name <inst_name> -p].pStatus <fixed | placed >

41. Get the name of all the nets in the design
dbGet top.nets.name 

42. Get all the power and ground nets name in the design 
dbGet [dbGet top.nets.isPwrOrGnd 1 -p].name

43. Get all the signal nets only (except clock, power nad ground) 
dbGet [dbGet [dbGet [dbGet top.nets.isClock 0 -p].isPwr 0 -p].isGnd 0 -p].name

44. Find the name of all the nets with a particular pattern in net name 
dbGet top.nets.name <*pattern*> 

45. Find the name of all the CTS clock nets
dbGet [dbGet top.nets.isCTSClock 1 -p].name 

46. Find the net name connected to a pin of an instance
dbGet [dbGet top.insts.instTerms.name <full_inst_pin_name> -p2].net.name 

47. Get the routing status of a net 
dbGet [dbGet top.nets.name <net_name>].wires.status
Further we can change the routing status of the net using dbSet command 
dbSet [dbGet top.nets.name <net_name>].wires.status <fixed | routed>

48. Get all the NDR used in the design
dbGet head.rules.name

49. llx lly urx ury all four coordinate in four variable of an instance 
selectInst <inst_name>
set box [dbGet [dbGet top.insts.name <inst_name> -p].box]
foreach {x1 y1 x2 y2} [lindex $box 0] {break;}

50. Get object type of an unknown object
set un selected.name
dbGet [dbGetObjByName $un].objType 

51. Get the count of ULVT cells in the design (excluding  physical only cells)
llength [dbGet [dbGet top.insts.isPhyOnly 0 -p].cell.name *ULVT* -e]

52. Get the area of violation marker and search any object on that area
set marker <marker_name>
set area [dbGet [dbGet top.markers.userType $marker -p].box]
dbQuery -area $area -objType sViaIst
Note: marker name is nothing but your violation’s name itself (like VIA0.S.2.1.s ).  You need to load those markers first and then you need to use the 2nd command in foreach loop.

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/852378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试真题 Java 实现【判断字符串子序列】【2023 B卷 100分】,倒序遍历

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

智汇云舟入选IDC《中国智慧城市数字孪生技术评估,2023》报告

8月7日&#xff0c;国际数据公司&#xff08;IDC&#xff09;发布了《中国智慧城市数字孪生技术评估&#xff0c;2023》报告。智汇云舟凭借在数字孪生领域的创新技术与产品&#xff0c;入选《2023中国数字孪生城市技术提供商图谱》。 报告通过公开征集的形式进行申报&am…

PCkit3如何刷固件

PCkit3如何刷固件 一般在MAPLAB安装时&#xff0c;在安装路径下面都会自带所有烧写器的固件包&#xff0c;找到对应的固件包利用MPLAB进行刷新就行了&#xff0c;具体步骤如下&#xff1a; 首先打开MPLAB软件&#xff0c;然后Programmer->Settings…然后点击configuration …

线程控制+线程tid+线程局部存储+线程私有栈

线程控制函数 今天学习的都是linux线程库中的函数。<pthread.h> pthread_creat()创建线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 参数 thread:返回线程IDattr:设置线程的属性&…

eclipse怎么导入web项目?看这篇为你解决!

引言【注意】 在导入别人写好或者自己写的web项目要确定以下几点&#xff0c;防止导入的时候出现错误。 确认eclipse的版本&#xff1b;如果web项目是21版的eclipse写的&#xff0c;而你要导入的的eclipse是17版的会出现错误&#xff0c;导入了也没用&#xff0c;运行不出结果。…

Huggingface使用

文章目录 前置安装Huggingface介绍NLP模块分类transformer流程模块使用详细讲解tokennizermodeldatasetsTrainer Huggingface使用网页直接体验API调用本地调用(pipline)本地调用&#xff08;非pipline&#xff09; 前置安装 anaconda安装 使用conda创建一个新环境并安装pytorc…

Qt应用开发(基础篇)——LCD数值类 QLCDNumber

一、前言 QLCDNumber类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt的一个基础小部件。 QLCDNumber用来显示一个带有类似lcd数字的数字&#xff0c;适用于信号灯、跑步机、体温计、时钟、电表、水表、血压计等仪器类产品的数值显示。 QLCDNumber可以显示十进制…

关于将预留单中增强字段带入物料凭证和会计凭证中

1、业务需求 预留中自定义文本字段“大项修”。根据预留创建物料凭证时&#xff0c;将该字段带入到物料凭证中&#xff0c;类似标准字段“项目文本”。并在物料凭证自动产生会计凭证后&#xff0c;将该字段带入到会计凭证行项目中。 其中需要解决以上三张凭证对该字段的界面显…

c/c++函数可变参数的实现

c语言&#xff0c;利用<stdarg.h> 里面的 typedef char* va_list; void va_start ( va_list ap, prev_param ); /* ANSI version */ type va_arg ( va_list ap, type ); void va_end ( va_list ap );#include <stdio.h> #include <stdarg.h> double Sum(int…

火爆全球的AI艺术二维码到底是怎么做的?

如今&#xff0c;二维码扫描已经成为一种与呼吸一样自然的本能动作。支付、购物、点餐、订票、浏览网页&#xff0c;几乎所有事情都可以通过扫描二维码来完成。你是否可以想象到下面是二维码&#xff1f;AI生成的艺术二维码使二维码瞬间变得高逼格。这些艺术二维码极具吸引力&a…

如何制定项目计划?甘特图告诉你

最近被领导指派负责一个新的项目&#xff0c;我想把项目做成功&#xff0c;给老板留下深刻的印象&#xff0c;同时也给自己的职业生涯添上浓墨重彩的一笔。 但是&#xff0c;项目管理流程很复杂&#xff0c;项目本身也不好做。在收集了与该项目有关的所有信息&#xff0c;并将…

亚马逊搜索关键词下单有哪些好处

在亚马逊上使用搜索关键词进行下单有许多好处&#xff0c;以下是其中一些主要的优点&#xff1a; 1、准确的产品匹配&#xff1a; 通过输入相关的搜索关键词&#xff0c;您可以更准确地找到您所需的产品&#xff0c;从而避免了浏览大量无关的商品页面。 2、节省时间&#xff…

亚马逊买家账号多久可以评论

根据亚马逊的政策&#xff0c;买家账号在购买商品后通常需要等待一段时间才能发布评论。 1、实物商品&#xff1a; 买家需要等待购买商品后的48小时&#xff0c;然后才能发布评论。 2、数字商品&#xff1a; 买家需要等待购买数字商品后的24小时&#xff0c;然后才能发布评论…

深度学习之用PyTorch实现逻辑回归

0.1 学习视频源于&#xff1a;b站&#xff1a;刘二大人《PyTorch深度学习实践》 0.2 本章内容为自主学习总结内容&#xff0c;若有错误欢迎指正&#xff01; 代码&#xff08;类比线性回归&#xff09;&#xff1a; # 调用库 import torch import torch.nn.functional as F#…

[保研/考研机试] KY187 二进制数 北京邮电大学复试上机题 C++实现

描述 大家都知道&#xff0c;数据在计算机里中存储是以二进制的形式存储的。 有一天&#xff0c;小明学了C语言之后&#xff0c;他想知道一个类型为unsigned int 类型的数字&#xff0c;存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗&#xff1f;并且&#xff0c;小…

使用MyEclipse如何部署Descriptor (XML)编辑器?

Descriptor (XML) Editor编辑器包含了高级的XML编辑功能&#xff0c;在本文中您将了解到这些编辑功能、Web XML编辑等&#xff0c;此功能包含在MyEclipse中可用。 MyEclipse v2023.1.2离线版下载 1. Web XML 编辑器 MyEclipse Web XML编辑器包括高级XML编辑功能&#xff0c;…

2022年世界各国GDP总量、人均GDP总量及排名

【勘误&#xff1a;表格第103哥伦比亚应为柬埔寨】

线程隔离问题之服务降级、熔断

一、雪崩问题 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个请求&#xff0c;可能需要调用多个微服务接口才能实现&#xff0c;会形成非常复杂的调用链路&#xff1a; 如图&#xff0c;一次业务请求&#xff0c;需要调 用A、P、H、I四个服务&#xff0c;这四个…

【LeetCode每日一题】——575.分糖果

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 简单 三【题目编号】 575.分糖果 四【题目描述】 Alice 有 n 枚糖&…

​三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

​三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》