INVS里的DanglingWire的自動化修復(fù)實戰(zhàn)
時間:2026-02-01 14:45:40
手機看文章
掃描二維碼
隨時隨地手機看文章
在上一講中一起了解了INVS里的DanglingWire(innovus中的DanglingWire(懸垂線)的理解和處理),常言道理論聯(lián)系實際,在理解原理的基礎(chǔ)上,那一定是要服務(wù)項目的,這篇后續(xù)火速跟進,一起使用自動化的方式來進行處理,節(jié)省芯片的繞線資源。
DanglingWire在INVS看來是可以進行trim的,這些也基本出現(xiàn)在PG gen的過程中,可能會來自于下列命令(或不僅限于下列命令):
- sroute
- editPowerVia
- addStrip
- 如果有PG ring的規(guī)劃,需要優(yōu)先創(chuàng)建core ring和block ring
-
建立PG stripe,盡量extend到ring上,這里有幾個選項用戶可以關(guān)注
-
在沒有 std-cell row的channel,不要創(chuàng)建可能會被macro打斷的PG stripe , 譬如

上述工作完成后,用戶需要使用verifyConnectivity進行查驗,如有遺漏可以盡量補足。
用戶始終要明確:INVS的native命令是效率更高,收效更明顯的處理手段。在任何手工/腳本操作前,都應(yīng)該應(yīng)用盡用INVS native 命令。
反過來講,一個完美的結(jié)果也不是一蹴(一個命令)而就的,打磨在所難免的,在日漸競爭的芯片后端崗位中,掌握別人不了解或者現(xiàn)在不了解的方法,是有機會能夠讓你獲取【短暫的】領(lǐng)先的
對于剩余的DanglingWire的問題,這里提供一個procedure(函數(shù)),進行解決。函數(shù)的基本使用方法如下
- 打開INVS數(shù)據(jù)庫
- 在INVS,導(dǎo)入函數(shù)
這是ICerDev團隊原創(chuàng)函數(shù)的第三次釋放,版本信息如下- 版本號:V0.12
- 交付時間:2023-01-10
- 更新內(nèi)容:添加trim_danlingwire函數(shù)
-
使用help查看函數(shù)幫助
-
小試牛刀
在使用trim_danlingwire函數(shù)之前,先來使用命令verifyConnectivity驗證一下當(dāng)前數(shù)據(jù)庫的DanglingWire的狀態(tài)

可以看到,當(dāng)前數(shù)據(jù)庫有606個DanglingWire的問題

查看細(xì)節(jié)可以看到,基本是M1的問題,基于上篇文章的講解對于std-cell的M1 PG rail上的問題,在PG DB上是不用理會的,這些在后期會自動修復(fù)。
這里以M6層舉例,一起看看這個函數(shù)的處理能力
step1: 在進行trim前,推薦使用show_only的方式來進行腳本運行評估(evaluate)

函數(shù)此時以評估模式運行,可以看到,在基于M6和VIA5的基礎(chǔ)下,函數(shù)評估出整個系統(tǒng)會有87根M6共計5237的繞線資源屬于DanglingWire的范疇,可以被優(yōu)化掉。此時,用戶可以通過GUI的紅色高亮區(qū)域進行查驗

從full-view視圖可以看到,函數(shù)評估出來的可優(yōu)化的點位主要集中在FP的下側(cè),zoom-in看一下究竟
用戶大致查驗這些高亮的區(qū)域,如果沒有明細(xì)問題,就可以進行真實的trimstep2: trim DanglingWire
對于上述高亮區(qū)域,可以使用下面的命令進行trim

可以看到,剛才高亮的區(qū)域,此時已經(jīng)被trim掉了

用戶此時可以通過verifyConnectivity查看DanglingWire狀態(tài)

可以看到,數(shù)據(jù)庫中的DanglingWire從606 降到了548,其他的錯誤類型并未發(fā)生變化,
再進行GUI進行細(xì)節(jié)查看

可以看到剛才下部大面積的DanglingWire已經(jīng)消失了,M6的DanglingWire也從60個降低到了2個,在這個數(shù)據(jù)庫中,基本可以實現(xiàn)一次性全部修復(fù)





