当前位置:   article > 正文

Innovus: dbGet 快速学习教程

dbget

8bff724711f247ec98581e15f5628c58.jpg

23b08ba6174d4c739db42ad0cd471667.png

往期文章链接:

innovus/ICC2: 命令对照表

常用dbGet命令

3cb5d369f4a34daeb5b36e8dd4b97687.png

dbGet是innovus/encounter工具自带的"database access command"命令中的一部分,它几乎可以用来获取设计相关的一切信息。

输入dbGet 按[Tab]键,能看到三个选项,分别是head / top /selected。这三个选项所代表的意义如下:

head --- 工艺信息,读入的库的信息

top --- 设计相关的 inst cell net fplan等等

selected --- 获取选中的object的属性

以dbGet selected为例,选中一个instance后,输入dbGet selected [Tab]后出现instance相关所有的属性名称。

0eb5cca262104a48b559408a3a2ed0f7.jpg

如果这时候敲[Enter],就会输出一串字符。

innovus > dbGet selected
9x7f763d0f2770

这串字符我们叫它指针,它所代表的就是dbGet selected选中的instance。所以dbGet selected能执行的操作这段字符串都能执行,就比如报告选中instance名字的操作

innovus > dbGet 0x7f763d0f2770.name
clk48M0div_reg

新手入门最大的疑惑是不知道如“name”一般每个属性所代表的意义,那么我就从这方面入手。

获取这些属性的详细说明可以使用dbGet selected.?h

c707b29973404fd6a0c4c83f1e2563c5.jpg

如果想展示选中instance所有这些属性的信息可以使用dbGet selected.??

2309caed01a24b6594350d9e9b2e7518.jpg

有没有更直观的方式,就像是“Q”一下看属性,当然有,快捷键"V",打开DB Browser,跟dbGet selected.??展示的内容一样,只不过更赏心悦目些。

fc49c7e2aa3341a7bc7be88c0f69d4d4.jpg

讲到这里dbGet selected你是不是就会用了呢?接下来就去看看进阶用法。dbGet有很多option,具体都是干嘛的,怎么用,做个简单介绍。

innovus > dbGet -d -e -i -p -p0 -p1 -p2 -p3 --p4 -p5 -p6 -regexp -u -v

按顺序来讲:

-d 的意思是返回database整数,而一般我们用的是浮点数,database整数可以参考DEF里的单位去输出。

innovus > dbGet selected.box

{3.0 7.2 10.0 8.4}

 innovus > dbGet selected.box -d

{3000 7200 10000 8400}

-e 的意思是输出为空指针时不显示0x0,而是空字符串。

innovus > dbGet selected.rHaloTopLayer

0x0
innovus > dbGet selected.rHaloTopLayer -e

innovus >

-i 是仅输出第几个结果,从0开始,也就是第一个结果对应-i 0

innovus > dbGet selected.instTerms.name
clk480Mdiv_reg/CK clk480Mdiv_reg/D clk480Mdiv_ reg/Q clk48Mdiv_ reg/R 

innovus > dbGet selected.instTerms.name -i 0
clk480Mdiv_reg/CK

-p ... -p9,-p是最常用的option,-p和-p0 -p1是一个东西,-p x它代表从后往前推第x个选项,与-p搭配使用的pattern也是必须的。

举例来说,dbGet selected.inst terms.name clk480Mdiv_reg/CK,这里clk480Mdiv_reg/CK就是pattern。

dbGet selected.instTerms.name clk480Mdiv_reg/CK -p

输出的结果就是dbGet selected.instTerms中对应clk480Mdiv_reg/CK的指针,-p2就是倒数第二个选项,dbGet selected.instTerms.name clk480Mdiv_reg/CK -p2对应的就是dbGet selected。

innovus > dbGet selected.instTerms 

0x7f763d76e960 0x7f763d76e990 0x7f763d76e9c0 0x7f763d76e9f0

innovus > dbGet selected.instTerms.name clk480M_13div_reg/CK -p

0x7f763d76e960

innovus > dbGet selected.instTerms.name clk480Mdiv_ reg/CK -p2
0x7f763d0f2770

innovus > dbGet selected 
0x7f763d0f2770

-regexp是正则表达式的意思,dbGet支持用正则表达式筛选结果。

举例来说,要抓取instTerm中的CK PIN可以用如下命令。

dbGet selected.instTerm.name -regexp {CK}

-u是去重的意思,结果中重复性的内容被过滤掉

innovus 64> dbGet [ dbGet selected .instTerms].inst.name

clk480Mdiv_reg clk480Mdiv_reg clk480Mdiv_reg clk480Mdiv_reg

innovus 65> dbGet [ dbGet selected. instTerms].inst.name -u

clk48mdiv_reg 

-v是取反的意思,如下例子,这个选中的instance一共四个pin,当用regexp筛选CK pin后只获得CK pin,加上-v取反后就返回的值就是除CK pin以外的其他三个pin

innovus > dbGet selected.instTerms.name- regexp CK

clk480Mdiv_reg/CK 

innovus > dbGet selected.instTerms.name -regexp CK -v 

clk480Mdiv_ reg/D clk480Mdiv_ reg/Q clk480Mdiv_ reg/R 

知识星球入口

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号