主要內(nèi)容:如何用dbShape并顯示dbShape運(yùn)算之后的結(jié)果
我們可以在Innovus中通過(guò)dbShape來(lái)對(duì)一些shape進(jìn)行幾何運(yùn)算,比如OR AND XOR等,這些對(duì)于我們寫(xiě)一個(gè)版圖上Check的custom tcl或者基于版圖的分布情況生成一些Placement/Routing blockage等等是非常有幫助的。比如星球分享過(guò)的:
如何寫(xiě)腳本檢查設(shè)計(jì)中是否Missing filler(也就是std cell之間存在gap)問(wèn)題,并且將Error顯示在Error browser中?
那么對(duì)于運(yùn)算之后的結(jié)果,我們?nèi)绾螌⑺@示出來(lái)呢?
我們可以通過(guò)add annotation的方式來(lái)完成,在ICC2里面命令是gui_add_annotation,在Innovus里面是add_gui_shape,示例如下:
兩個(gè)圖形直接做OR運(yùn)算之后得到的是一個(gè)polygon,是不能直接用add_gui_shape -polygon來(lái)實(shí)現(xiàn)的,因?yàn)閮烧吒袷讲灰粯樱信d趣的可以試一下就知道了,下面給出一個(gè)解決方案:
可以把polygon里面的多個(gè)rect來(lái)分別顯示出來(lái),也就是用多個(gè)rect拼起來(lái)顯示出polygon的形狀:
foreach i [dbShape $shape1 OR $shape2 -output rect] {add_gui_shape -rect $i -layer xxx}
效果如下圖所示: 如果你覺(jué)得出來(lái)的結(jié)果是空心的不方便看,那么還可以通過(guò)下面的命令來(lái)修改顯示的pattern和線寬
setLayerPreference xxx -color yellow -lineWidth 9 -isVisible 1 -stipple Cross
?
現(xiàn)在你可以思考一個(gè)問(wèn)題,我們?nèi)绾斡?jì)算上面運(yùn)算結(jié)果的多邊形Shape的面積呢?應(yīng)該用什么命令呢? 你可以自己思考探索一下。
下面公布結(jié)果:
答案還是dbShape命令:
[DEV]innovus 6> dbShape $shape1 OR $shape2 -output area 28
任何dbShape運(yùn)算產(chǎn)生的多邊形都可以用上面或者下面的方式來(lái)得到它的面積:
[DEV]innovus 7> dbShape [dbShape $shape1 OR $shape2] -output area 28
和真實(shí)面積是吻合的:4*4*2-2*2=32-4=28
審核編輯:劉清
-
GUI
+關(guān)注
關(guān)注
3文章
631瀏覽量
39290 -
XOR
+關(guān)注
關(guān)注
0文章
12瀏覽量
161851 -
Innovus
+關(guān)注
關(guān)注
1文章
20瀏覽量
2624
原文標(biāo)題:Innovus教程 - 如何做幾何運(yùn)算并顯示運(yùn)算結(jié)果 - dbShape與add_gui_shape命令
文章出處:【微信號(hào):集成電路設(shè)計(jì)及EDA教程,微信公眾號(hào):集成電路設(shè)計(jì)及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論