在S家的后端設(shè)計(jì)工具里,包括DC、ICC、ICC2、PT , 大體的命令都是相通的。并且主要命令的命名和分類都是有一定的相似性的( 但是要注意:盡管在相同的命令下,由于輸入和參數(shù)配置的差異,命令的結(jié)果可能會(huì)有不同,尤其是在delay計(jì)算方面 )。
簡單總結(jié)如下
這里,一起來關(guān)注一下get_* 命令家族,并且了解一下通用的選項(xiàng)filler 。
先一起看一下這類命令的選項(xiàng)描述。
既然是一個(gè)命令組,當(dāng)然會(huì)有一些類似點(diǎn),這個(gè)命令家族一般有如下的選項(xiàng)設(shè)計(jì):
通用的選項(xiàng)細(xì)節(jié)描述如下
后三個(gè)選項(xiàng)比較好理解,這里一起來仔細(xì)看一下filter這個(gè)選項(xiàng)。
filter 簡單地說,是在當(dāng)前的get_* 命令下的一個(gè)二次過濾的選項(xiàng)。具體可以使用什么樣的過濾方式方法,是基于這個(gè)命令所屬于的類(class) 的,這個(gè)命令組的命名方式,一般是get_$class ,譬如說 get_cell 所對應(yīng)的類(class) 就是 cell ;get_clocks 所對應(yīng)的類(class) 就是 clock 。所以,所有filter可以操作的范圍就是這個(gè)class里邊的數(shù)據(jù)/屬性。
下圖是cell 的 attribute的摘錄
用戶可以根據(jù)這個(gè)attribute列表的具體細(xì)節(jié)來對cell來進(jìn)行二次過濾,一個(gè)舉例如下
得到所有full name中包含 lace的器件
# get all *lace* cell
get_cells -filter "full_name=~*lace*"
通過運(yùn)行,會(huì)得到所有名字為lace 的cell,返回值如下:
這里使用條件運(yùn)算符**=~** 是一個(gè)模糊匹配,place也是lace的模糊匹配的結(jié)果,這里就被正確的返回出來了。
再看一個(gè)稍微復(fù)雜一點(diǎn)的例子
得到所有的buffer cell,
但是cell名字一定是包含lace字符串的
# get all *lace* buffer
get_cells -filter "full_name=~*lace* && ref_name=~*BUF*"
另外一個(gè)很常用的filter例子是:
得到數(shù)據(jù)庫里所有的std-cell
然后計(jì)算它們的面積總和
get_cells -hier -filter "mask_layout_type==std"
set area 0
foreach_in_collection c [get_cells -hier -filter "mask_layout_type==std"] {
set area [expr [get_attribute $c area] + $area]
}
puts "Total std-cell area is $area"
這個(gè)執(zhí)行結(jié)果如下
什么,這還不夠厲害,還有更彪悍的操作?
得到所有面積大于3 area_unit的
buffer/invert
get_cells -filter "area >3 && number_of_pins==2"
運(yùn)行結(jié)果如下
這么復(fù)雜的操作,最好驗(yàn)證一下,先來看一下面積
沒有問題,都是大于3的器件
再來看一下pin的數(shù)目
也都正確,都是兩個(gè)pin
最后來看一下,是不是都是buffer/invert
完美,所有的結(jié)果都被驗(yàn)證正確無誤。
到這里,想必同學(xué)們都有了一種體會(huì)了吧。這里的 get_attribute 和 -filter 有著天人合一的感覺,一個(gè)是query 一個(gè)是 status。通過這種按需查找的方法。數(shù)據(jù)庫里的東東基本上都會(huì)被你摸個(gè)遍了。
這里再來看一個(gè)命令嵌套的組合拳
面積大于3 并且
有兩個(gè)以上的pin的非SPARE cell 的器件
它們的output pin
get_pins -of [get_cells -filter "area >3 && number_of_pins >2"] -filter "pin_direction==out && full_name!~*SPARE*"
嵌套,就是無休無止的嵌套,就是要在浩如煙海的數(shù)據(jù)大海中,找到你要的那根針!靈活使用這些命令,理論上講不存在命令行里找不到的那根針。
-
過濾器
+關(guān)注
關(guān)注
1文章
427瀏覽量
19559
發(fā)布評論請先 登錄
相關(guān)推薦
評論