往期文章鏈接:
innovus/ICC2: 命令對照表
常用dbGet命令
dbGet是innovus/encounter工具自帶的"database access command"命令中的一部分,它幾乎可以用來獲取設(shè)計相關(guān)的一切信息。
輸入dbGet 按[Tab]鍵,能看到三個選項(xiàng),分別是head / top /selected。這三個選項(xiàng)所代表的意義如下:
head --- 工藝信息,讀入的庫的信息
top --- 設(shè)計相關(guān)的 inst cell net fplan等等
selected --- 獲取選中的object的屬性
以dbGet selected為例,選中一個instance后,輸入dbGet selected?[Tab]后出現(xiàn)instance相關(guān)所有的屬性名稱。
如果這時候敲[Enter],就會輸出一串字符。
innovus > dbGet selected
9x7f763d0f2770
這串字符我們叫它指針,它所代表的就是dbGet selected選中的instance。所以dbGet selected能執(zhí)行的操作這段字符串都能執(zhí)行,就比如報告選中instance名字的操作。
innovus > dbGet 0x7f763d0f2770.name
clk48M0div_reg
新手入門最大的疑惑是不知道如“name”一般每個屬性所代表的意義,那么我就從這方面入手。
獲取這些屬性的詳細(xì)說明可以使用dbGet selected.?h
如果想展示選中instance所有這些屬性的信息可以使用dbGet?selected.??
有沒有更直觀的方式,就像是“Q”一下看屬性,當(dāng)然有,快捷鍵"V",打開DB Browser,跟dbGet?selected.??展示的內(nèi)容一樣,只不過更賞心悅目些。
講到這里dbGet selected你是不是就會用了呢?接下來就去看看進(jìn)階用法。dbGet有很多option,具體都是干嘛的,怎么用,做個簡單介紹。
innovus > dbGet -d -e -i -p -p0 -p1 -p2 -p3 --p4 -p5 -p6 -regexp -u -v
按順序來講:
-d 的意思是返回database整數(shù),而一般我們用的是浮點(diǎn)數(shù),database整數(shù)可以參考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 是僅輸出第幾個結(jié)果,從0開始,也就是第一個結(jié)果對應(yīng)-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個選項(xiàng),與-p搭配使用的pattern也是必須的。
舉例來說,dbGet selected.inst terms.name clk480Mdiv_reg/CK,這里clk480Mdiv_reg/CK就是pattern。
dbGet selected.instTerms.name clk480Mdiv_reg/CK -p
輸出的結(jié)果就是dbGet selected.instTerms中對應(yīng)clk480Mdiv_reg/CK的指針,-p2就是倒數(shù)第二個選項(xiàng),dbGet selected.instTerms.name clk480Mdiv_reg/CK -p2對應(yīng)的就是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是正則表達(dá)式的意思,dbGet支持用正則表達(dá)式篩選結(jié)果。
舉例來說,要抓取instTerm中的CK PIN可以用如下命令。
dbGet selected.instTerm.name -regexp {CK}
-u是去重的意思,結(jié)果中重復(fù)性的內(nèi)容被過濾掉
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,當(dāng)用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?文章來源:http://www.zghlxwxcb.cn/news/detail-485377.html
知識星球入口文章來源地址http://www.zghlxwxcb.cn/news/detail-485377.html
到了這里,關(guān)于dbGet 快速學(xué)習(xí)教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!