腳本主要內(nèi)容:
在設(shè)計(jì)中有一些short,跑幾輪ecoRoute -fix_drc都無法解決的情況下,我們可以刪除一些short的shape來讓工具重新ecoRoute來解決,如果數(shù)量有幾十甚至上百個(gè),那么手工操作就不太現(xiàn)實(shí)了,可以用腳本來實(shí)現(xiàn),這里分享的就是這樣一個(gè)腳本。
注意:如果short數(shù)量非常多且比較集中(hotspot)的情況下,就需要去看你的congestion狀態(tài)了,如果congestion狀態(tài)很差,那么這些short多半是無法完全解決的,必須從congestion上入手。
這里分享一個(gè)自己編寫的腳本,腳本可以根據(jù)error browser里面verify_drc的結(jié)果來找到short的shape,然后刪除它,由于Clock nets對(duì)timing的影響比較大,所以這里并未刪除clock shape,只刪除signal的shape,再之后運(yùn)行ecoRoute修復(fù)open即可。
前面星球里面寫了個(gè)推文是講解如何用dbGet來得到error browser里面的結(jié)果并寫腳本解決一些overlap的問題(能熟練掌握的話那么你的innovus腳本水平就比較溜了),這里我們換一種方法用get_db來講解一下如何去實(shí)現(xiàn)。
首先運(yùn)行下面的命令來報(bào)出所有的DRC:
#Verify Route DRC
set_verify_drc_mode -check_only all
-report DTMF_CHIP.drc.rpt
-limit 1000 -ignore_cell_blockage true
verify_drc
命令get_db current_design .markers.subtype 可以得到當(dāng)前設(shè)計(jì)中error browser里面的所有subtype,比如Metal_Short, Parallel_Run_Length_Spacing等。
[DEV]innovus 63> get_db current_design .markers.subtype
Metal_Short
可以用-if來篩選出Metal_Short:
[DEV]innovus 64> get_db current_design .markers -if {.subtype==Metal_Short}
marker:0x7ffeda4d2200
下面的命令可以報(bào)出short發(fā)生的層:
[DEV]innovus 65> get_db marker:0x7ffeda4d2200 .layer.name
Metal5
......
.....
有星粉反映工具有下面的命令可以實(shí)現(xiàn)相似的目的:
19版:editDeleteViolation
20版:editDelete -regular_wire_with_drc
這個(gè)命令會(huì)去解所有的DRC,而不止是Short,可是我們一般用刪除shape去解short,而非所有DRC,并且這個(gè)命令會(huì)去刪除整個(gè)net的繞線,動(dòng)作非常大,所有不推薦大家直接使用。
我來分享一下兩者之間的區(qū)別,并推薦大家使用分享的腳本而非直接使用這個(gè)命令,原因也會(huì)講一下。
editDelete -regular_wire_with_drc:
優(yōu)點(diǎn):只會(huì)刪regular net,因此不會(huì)動(dòng)PG。
缺點(diǎn):整個(gè)net都刪掉了,一個(gè)net可能好幾百um(示例中一個(gè)500+的net整個(gè)刪除了),一個(gè)地方的小short整個(gè)net刪除,對(duì)timing影響比較大,而腳本分析的方法不存在這種問題。
還有就是如果發(fā)現(xiàn)sigal nets和clock nets short了,那么兩個(gè)net全部會(huì)被刪掉。而clock nets對(duì)timing影響很大,所以如果要用這種方法最好把cts nets全部fix住。
腳本分享的方法:
優(yōu)點(diǎn):只會(huì)刪short的area里面的data signal nets,不會(huì)動(dòng)PG和clock nets,因此比較有保證,不會(huì)對(duì)timing和IR drop等有大的影響。
缺點(diǎn):某些情況下,只刪除局部的short shape可能無法解決這個(gè)short,工具可能還是會(huì)在那個(gè)地方去繞。這個(gè)時(shí)候就需要?jiǎng)h除更多的shape了,可以手工來選擇性刪除。如果net所在的path的timing非常寬裕,那么完全刪掉它重新繞也沒有問題。
審核編輯:劉清
-
DRC
+關(guān)注
關(guān)注
2文章
149瀏覽量
36227 -
Innovus
+關(guān)注
關(guān)注
1文章
20瀏覽量
2705
原文標(biāo)題:Innovus自動(dòng)修復(fù)Short的腳本分享(附腳本思路詳細(xì)講解)
文章出處:【微信號(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)論