數字IC前后端設計中的時序收斂(二)--Setup違反的修復方法


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

里面主要講解數字IC前端、后端、DFT、低功耗設計以及驗證等相關知識,並且講解了其中用到的各種EDA工具的教程。

考慮到微信公眾平台上面發布的很多推文百度搜索不到,所以以后的推文也會在這里進行轉載。

 

 

數字IC設計中Setup的分析與優化貫穿前后端設計中,最好在開始后端設計之前就獲得一個沒有Setup違反的網表,下面按照從前到后的流程逐一講解每個階段如果出現Setup違反該如何解決。下面用到的命令,主要針對的是Synopsys公司的綜合工具DC以及布局布線工具ICC。

還有需要注意的是,Setup的修復和之后要講解的Hold的修復有很大的不同,Setup的違反隨着布局到布線階段的推進,它是越來越惡化的,不像Hold,線延遲會有益於Hold的修復的,因此存在少量的違反是沒有問題的。因此,在開始下一階段的Setup修復之前,最好將本階段的Setup違反都清掉。如果是需要用CCD來修復的Setup違反,那么在CTS之前,這些違反可以不用考慮。

 

1、邏輯綜合階段就有Setup違反:

1.1 在DC中用Retime或者Pipeline修復;

 

1.2 在DC中通過group ungroup的方法來對critical的模塊進行優化;將那些critical的模塊group到一起,然后ungroup,讓DC對其進行充分的優化,不會因為在不同的group內而優化受到限制。

 

1.3看違反是否很少,並向前向后查看路徑的時序,判斷在后端中用CCD是否有可能修復;如果該路徑的前后時序非常寬裕,那么在后端中用CCD來修復也是可以的。

 

1.4 用DCT進行增量編譯

由於DC進行綜合時一般用Wire Load Model分析時序,所以不是很准確,並且分析時也沒有標准單元或者Macro的具體物理位置,所以分析優化過程不是很貼近物理實際。為了解決這個問題,可以用DCT來解決。具體步驟為:ICC導出Floorplan的DEF給DCT,然后用Compile_ultra進行再次綜合。

 

1.5 修改電路結構/算法

如果上述方法都不行,那么需要查找設計中的Setup違反是什么樣的情況,是很多路徑都有一些小的違反還是說這些違反都集中在一個模塊上,且違反很大。如果是前者則可以通過DCT再次編譯來解決,如果是后者,需要分析在后端中用CCD是否有可能解決,如果不行的話,便只能通過修改電路結構或者更改電路的算法來進行修復了,在系統級或者算法級來解決這種問題也是最有效、程度最好的方法了,不過可能會比較耗時。我曾遇到過這種情況,某個DSP模塊的時序非常差,基本上通過軟件修復是不可能的,后來換了種算法,在精度、面積、時序上都有了很大的提升,設計的Setup違反也不存在了。

 

2、布局之后CTS之前有Setup違反:

2.1 用DCT進行增量編譯

首先用零互連延遲模式報告一下,看設計中是否有setup的違反,如果沒有的話,那么應該是線延遲太大使得嚴重偏離了之前的理想情況,這個可以用DCT來進行再次綜合。在DCT中將所有的scenario都讀入進去,並讀入ICC導出的DEF文件,然后進行增量編譯;

 

2.2 在ICC中將timing critical的單元靠近放置

如果是規模太大使得線延遲太大導致的,在后端設計中也可以將一些critical的單元靠近放置,如果在同一個模塊內部,可以創建plan_group;

此外還可以對某些具體的net設置net weight來使得這些critical path上的單元靠近放置。

 

3、CTS之后有違反:

重新進行CTS,在CTS過程中采用CCD用useful skew來向前向后借timing,命令為:

>clock_opt -concurrent_clock_and_data

 

4、布線完成后有少量違反:

可以用ICC中的CCD來修復,

>set_concurrent_clock_and_data_strategy

>route_opt -concurrent_clock_and_data

 

5、chipfinish階段有少量違反:

可以用ICC中的CCD來修,

>focal_opt -concurrent_clock_and_data-setup_endpoints all

 

6、布局布線中的任何一個階段

其實在ICC中布局布線的任何一個階段都是可以用PT進行ECO來修復Setup違反。

 

 


免責聲明!

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



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