​數字IC后端設計中Hold違反的修復方法


本文轉自:自己的微信公眾號《集成電路設計及EDA教程》

 

數字IC設計,只有CTS之后開始考慮修復hold,下面按照從前到后的流程逐一講解每個階段如果出現Hold違反該如何解決。下面用到的命令,主要針對的是Synopsys公司的布局布線工具ICC。還有需要注意的是,hold的修復不用做到每一個階段都是Clean的,比如說,對於比較老的0.18 um工藝,CTS之后有0.1 ns左右的WNS違反還是可以接受的,畢竟后邊還有布線的操作,線延遲也是有益於hold的;布線之后存在非常少量,且量級在0.01左右的違反也是可以接受的,可以通過focal_opt來解決。

focal命令使用講解:ICC中的focal_opt命令講解

 

解決hold違反最常用的方法就是在組合邏輯路徑上插入Buffer了,舉個例子:

>insert_buffer [get_pinscoeff_in_block*/C] [get_lib_cells */BUFHSV2] -no_of_cells 2

同樣我們也可以像修setup那樣,手工采用usefull skew來修,但是這樣太麻煩了,不建議采用,可以用CCD的功能讓ICC自己去修。

下面按照時間先后順序講解修復Hold的自動以及手動方法。

 

1、CTS之后,布線之前:

>psynopt -only_hold_time

psynopt命令有兩種功能:

執行增量時序驅動的邏輯優化;

Legalizes placement

 

2、布線階段:

2.1 可以用CCD來修復:

>set_concurrent_clock_and_data_strategy

>route_opt -concurrent_clock_and_data

 

2.2 通過指定布線優化選項來修復:

>route_opt -incr -only_hold_time

 

3、chipfinish階段:

3.1 可以用CCD來修復:

>focal_opt -concurrent_clock_and_data\

    -hold_endpoints all

 

3.2可以讓軟件自動對所有hold endpoints來修復:

>focal_opt -hold_endpoints all \

    -effort high

其實可以指定某些hold endpoints來單獨對它們進行優化,但是自己嘗試發現沒有什么用,沒有PT效果那么好。

 

3.3 指定REG2REG路徑進行修復

如果違規都集中在REG2REG的路徑上,那么用下面的命令更好:

>focal_opt -hold_endpoints all \

    -register_to_register

 

3.4 手工ECO修復

如果在某個具體階段,用命令進行自動修復的方法無法將Violation修復,且違反的值很大的話,就需要手動插入buffer或者delaycell來解決了,即采用ECO的方法來手工解決。在插入之前要確保沒有插入Core filler,或者有Filler的話要remove,需要注意的是不用全部remove,在放置eco cell的命令的后邊會有移除部分filler的選項喲,這個非常棒。

ICC中插入buffer或者delay cell的命令舉例:

>insert_buffer [get_pins coeff_in_block*/C] \

    [get_lib_cells */BUFHSV2] \

    -no_of_cells 2

插入的Burffer是隨便放置的,可能和其他Cell重合了,或者沒有放置在Row上面,需要將其擺放在合理的位置上:

>legalize_placement -cells {xxx aaa} \

    -remove_filler_references “$FILLER_CELL”

或者用:

>place_eco_cells -eco_changed_cells \

    -leaglize_only \

    -remove_filler_references “$FILLER_CELL”

插入的buffer是沒有連線的,需要用ECO來對其連線:

>route_zrt_eco -reroutemodified_nets_first_then_others

這個做完之后要檢查是否有違反,如果都解決了的話可以重新插入Filler了

 

3.5 用PT進行ECO修復

當然這些也是可以不用手工ECO的方法,而將整個設計的網表、spef導入PT,讓PT自己修復,然后導出ECO的腳本,然后將腳本導入ICC進行修復,不過感覺這個過程挺麻煩的,還不如手工來的方便,具體方法可以參見ICC ECO流程那一部分。

相關歷史推文:

ECO(Engineering Change Order)

PT ECO教程及tcl腳本分享

 

公告

本公眾號在網易雲課堂上線了,名為“隨芯所欲”,最近新出了《Calibredrv教程-提高流程自動化》《搭建IC設計的EDA虛擬機/服務器》,謝謝關注與支持。

鏈接:https://study.163.com/course/introduction/1005909004.htm

網易雲課堂

《Calibredrv教程-提高流程自動化》

 

  《搭建IC設計的EDA虛擬機/服務器》

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM