DanglingWire在INVS看來是可以進行trim的,這些也基本出現在PG gen的過程中,可能會來自于下列命令(或不僅限于下列命令):
既然大家已經了解了DanglingWire的出現原因,在進行trim收到操作前,用戶需要對自己的PG 進行優化,來減少DanglingWire的出現幾率,這里有包括但不限于以下的一些建議
-
如果有PG ring的規劃,需要優先創建core ring和block ring
-
建立PG stripe,盡量extend到ring上,這里有幾個選項用戶可以關注
-
在沒有 std-cell row的channel,不要創建可能會被macro打斷的PG stripe , 譬如
上述工作完成后,用戶需要使用verifyConnectivity進行查驗,如有遺漏可以盡量補足。
用戶始終要明確:INVS的native命令是效率更高,收效更明顯的處理手段。在任何手工/腳本操作前,都應該應用盡用INVS native 命令。
反過來講,一個完美的結果也不是一蹴(一個命令)而就的,打磨在所難免的,在日漸競爭的芯片后端崗位中,掌握別人不了解或者現在不了解的方法,是有機會能夠讓你獲取【短暫的】領先的
對于剩余的DanglingWire的問題,這里提供一個procedure(函數),進行解決。函數的基本使用方法如下
- 打開INVS數據庫
- 在INVS,導入函數
- 版本號:V0.12
- 交付時間:2023-01-10
- 更新內容:添加trim_danlingwire函數
-
使用help查看函數幫助
-
小試牛刀
在使用trim_danlingwire函數之前,先來使用命令verifyConnectivity驗證一下當前數據庫的DanglingWire的狀態
可以看到,當前數據庫有606個DanglingWire的問題
查看細節可以看到,基本是M1的問題,基于上篇文章的講解對于std-cell的M1 PG rail上的問題,在PG DB上是不用理會的,這些在后期會自動修復。
這里以M6層舉例,一起看看這個函數的處理能力
step1: 在進行trim前,推薦使用show_only的方式來進行腳本運行評估(evaluate)
函數此時以評估模式運行,可以看到,在基于M6和VIA5的基礎下,函數評估出整個系統會有87根M6共計5237的繞線資源屬于DanglingWire的范疇,可以被優化掉。此時,用戶可以通過GUI的紅色高亮區域進行查驗
從full-view視圖可以看到,函數評估出來的可優化的點位主要集中在FP的下側,zoom-in看一下究竟
用戶大致查驗這些高亮的區域,如果沒有明細問題,就可以進行真實的trim
step2: trim DanglingWire
對于上述高亮區域,可以使用下面的命令進行trim
可以看到,剛才高亮的區域,此時已經被trim掉了
用戶此時可以通過verifyConnectivity查看DanglingWire狀態
可以看到,數據庫中的DanglingWire從606 降到了548,其他的錯誤類型并未發生變化,
再進行GUI進行細節查看
可以看到剛才下部大面積的DanglingWire已經消失了,M6的DanglingWire也從60個降低到了2個,在這個數據庫中,基本可以實現一次性全部修復。
-
GUI
+關注
關注
3文章
650瀏覽量
39553
發布評論請先 登錄
相關推薦
評論