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