久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Innovus修復(fù)Short的腳本分享(附腳本思路詳細(xì)講解)

 mzsm 2022-06-22 發(fā)布于湖北


好消息

星球創(chuàng)建了一個專屬Q(mào)Q交流群,,上傳了積累多年的IC后端筆記,,最近剛上傳2萬字125頁的ICC2教程,,同時也會不定時發(fā)一些紅包,,感興趣的可以加入,。我相信這絕對是你能找到的最全的后端設(shè)計資料(理論+實踐操作+腳本),沒有之一??!

目前已上傳的筆記有:

  • 低功耗設(shè)計技術(shù)總結(jié)-3萬字,129頁

  • IR drop的分析與修復(fù)總結(jié)-4.3千字,,20頁

  • 數(shù)字后端理論及實踐-ICC干貨筆記-11萬字,,423頁

  • 數(shù)字后端理論及實踐-Innouvs教程-5.7萬字,,316頁

  • ICC2教程-星球精編版-2萬字,,125頁(最新上傳)

......

Innovus修復(fù)Short的腳本分享
(附腳本思路詳細(xì)講解)

01


星球相關(guān)精華推文


本文選自知識星球,,同時星球里面分享了ICC2/ICC/Innovus解決Short問題的腳本,這里分享一下相應(yīng)的鏈接:

《ICC/ICC2/Innovus 短路(Short)問題該如何解決,?附tcl腳本》
https://t./03ynmyb62
《ICC2教程 - 超實用DRC LVS檢查,、修復(fù)命令及腳本分享》
https://t./03iE2FYJM 
《Innovus修復(fù)Short的腳本分享(附腳本思路詳細(xì)講解)》
https://t./036EUF6au 
《ICC教程 - 超實用DRC LVS修復(fù)命令及腳本分享》
https://t./03UVVZR3b


02


正文

在設(shè)計中有一些short,跑幾輪ecoRoute -fix_drc都無法解決的情況下,,我們可以刪除一些short的shape來讓工具重新ecoRoute來解決,,如果數(shù)量有幾十甚至上百個,那么手工操作就不太現(xiàn)實了,,可以用腳本來實現(xiàn),,這里分享的就是這樣一個腳本。

注意:如果short數(shù)量非常多且比較集中(hotspot)的情況下,,就需要去看你的congestion狀態(tài)了,,如果congestion狀態(tài)很差,那么這些short多半是無法完全解決的,,必須從congestion上入手,。
這里分享一個自己編寫的腳本,腳本可以根據(jù)error browser里面verify_drc的結(jié)果來找到short的shape,,然后刪除它,,由于Clock nets對timing的影響比較大,,所以這里并未刪除clock shape,,只刪除signal的shape,再之后運行ecoRoute修復(fù)open即可,。

前面星球里面寫了個推文是講解如何用dbGet來得到error browser里面的結(jié)果并寫腳本解決一些overlap的問題(能熟練掌握的話那么你的innovus腳本水平就比較溜了),,這里我們換一種方法用get_db來講解一下如何去實現(xiàn)。
《Tcl練習(xí)題答案 - CTS之后發(fā)現(xiàn)clock cell和tap cell有overlap的問題,,如何寫腳本解決,?》
https://t./02MJM7iYr

同時星球里面分享了get_db/set_db的詳細(xì)教程,感興趣的也可以看下:
《get_db命令教程 與 Innovus Stylus Common UI教程》
https://t./02JIMfub6

首先運行下面的命令來報出所有的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è)計中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
下面的命令可以報出short發(fā)生的層:
[DEV]innovus 65> get_db marker:0x7ffeda4d2200 .layer.name
Metal5
下面的命令可以報出error browser里面的message:
[DEV]innovus 66> get_db marker:0x7ffeda4d2200 .message
Regular Wire of Net DTMF_INST/TDSP_DS_CS_INST/CTS_2 & Regular Wire of Net tdsp_portO[9]
圖片
下面的命令可以報出error發(fā)生的坐標(biāo):
[DEV]innovus 67> get_db marker:0x7ffeda4d2200 .bbox
{810.67 664.72 810.95 665.28}
下面的命令可以報出error發(fā)生位置的wire,,如果其他層的wire也落在這個bbox里面的話可能會干擾我們,所以我們可以用-layers來只報告有short的layer:
[DEV]innovus 68> dbQuery -area {810.67 664.72 810.95 665.28} -objType wire -layers Metal5
0x7fff7a5e3718 0x7fff7a0f8058
[DEV]innovus 69> get_db [dbQuery -area {810.67 664.72 810.95 665.28} -objType wire -layers Metal5] .net.name
tdsp_portO[9] DTMF_INST/TDSP_DS_CS_INST/CTS_2

再之后,,我們可以在short發(fā)生的box區(qū)域內(nèi)找到不是clock nets的那段wire,,是否是clock可以通過下面的命令來識別:
[DEV]innovus 75> get_db [dbQuery -area {810.67 664.72 810.95 665.28} -objType wire -layers Metal5] .net.use
scan clock
[DEV]innovus 82> get_db [get_db [dbQuery -area {810.67 664.72 810.95 665.28} -objType wire -layers Metal5] .net] -if {.use != clock}
{net:DTMF_CHIP/tdsp_portO[9]}
之后刪除那段signal wire之后用ecoRoute重新繞即可。

完整的腳本:
proc hq_fix_shorts {} {
setMultiCpuUsage -localCpu 16

#fix short
get_db current_design .markers -if {.subtype == Metal_Short} -foreach {
set box [get_db $object .bbox]
set layer_name [get_db $object .layer.name]
select_obj [get_db [dbQuery -area $box -layers $layer_name -objType wire] -if {.net.use != clock}]
editDelete -selected
}

}
define_proc_arguments hq_fix_shorts -info 'Fix shorts based on DRC results'
執(zhí)行proc hq_fix_shorts之后的結(jié)果:
圖片
之后執(zhí)行ecoRoute并檢查DRC和Open即可,。

有星粉反映工具有下面的命令可以實現(xiàn)相似的目的:
19版:editDeleteViolation
20版:editDelete -regular_wire_with_drc
這個命令會去解所有的DRC,,而不止是Short,可是我們一般用刪除shape去解short,,而非所有DRC,,并且這個命令會去刪除整個net的繞線,動作非常大,,所有不推薦大家直接使用,。
我來分享一下兩者之間的區(qū)別,并推薦大家使用分享的腳本而非直接使用這個命令,,原因也會講一下,。

editDelete -regular_wire_with_drc:
優(yōu)點:只會刪regular net,因此不會動PG,。
缺點:整個net都刪掉了,,一個net可能好幾百um(示例中一個500+的net整個刪除了),因為一個地方的小short導(dǎo)致整個net刪除,,對timing影響比較大,,而腳本分析的方法不存在這種問題。
還有就是如果發(fā)現(xiàn)sigal nets和clock nets short了,,那么兩個net全部會被刪掉,。而clock nets對timing影響很大,所以如果要用這種方法最好把cts nets全部fix住,。

腳本分享的方法:
優(yōu)點:只會刪short的area里面的data signal nets,,不會動PG和clock nets,因此比較有保證,,不會對timing和IR drop等有大的影響,。
缺點:某些情況下,只刪除局部的short shape可能無法解決這個short,,工具可能還是會在那個地方去繞,。這個時候就需要刪除更多的shape了,可以手工來選擇性刪除,。如果net所在的path的timing非常寬裕,,那么完全刪掉它重新繞也沒有問題。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多