文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.199804
中文引用格式: 邊少鮮,David He,欒曉琨,等. 基于Innovus提升芯片性能的物理實現方法[J].電子技術應用,2019,45(8):48-52,60.
英文引用格式: Bian Shaoxian,David He,Luan Xiaokun,et al. A physical implementation method based on Innovus to improve chip performance[J]. Application of Electronic Technique,2019,45(8):48-52,60.
0 引言
隨著集成電路工藝發展,物理設計流程已相對成熟,但是隨著芯片規模增大,頻率提升,復雜度提升,芯片的物理實現變得越來越困難。研究和實踐均表明,插入緩沖器是物理設計有效的優化互連延時的方法,但是,緩沖器插入有其局限性。目前的研究及電子設計自動化(Electronics Design AutomationEDA)工具大多都沒有考慮寄存器和邏輯單元布局(placement)后物理位置的影響,寄存器和邏輯單元通常被認為放置在最佳位置。由于時鐘樹綜合(Clock Tree Synthesis,CTS),緩沖器的數量急劇增加,結果可能會發生顯著變化。由于這些原因,在物理設計階段仍可能發現許多時序違反,因此很難避免冗長的設計迭代。
本文通過建立適用于高性能芯片設計的物理設計流程,并對緩沖器的特性及作用進行分類討論,提出一種在布局階段對設計進行二次優化的方法,并結合這個方法給出相應的物理設計流程。最終使物理設計性能得到優化。
1 物理設計介紹
1.1 物理實現方式
隨著芯片設計復雜度增加,規模增大,頻率提升,從RTL到GDSII過程的每一步,對于EDA工具、工程師和計算機硬件都是巨大的挑戰[1],設計收斂的關鍵問題往往集中在某些模塊,層次化設計就是“自上向下”地將大而復雜的設計分割成多個分割塊,然后對各個分割塊單獨進行物理設計。層次化設計已經成為大規模復雜芯片后端設計的主流方法[2]。對于分割塊的物理設計是在邏輯網表基礎上以標準單元作為最底層的子節點進行“自下而上”的展平式設計的。各分割塊物理設計完成后合并到頂層完成整個設計。
1.2 傳統布局布線流程
芯片設計的物理實施通常被簡稱為布局布線(Place-and-Route,PR)[2]。由于布局布線的起點是插入掃描鏈后的門級網表,先進行導入設計(Load design),即將門級網表和約束文件導入PR工具中;然后進行Floorplan對輸入輸出管腳(Input Output port,I/O)、硬核(hard intellectual property,IP)和宏模塊進行物理位置的規劃;接著進行placement,即PR工具自動放置標準單元;接下來用緩沖器將時鐘送到各寄存器、IP、宏模塊的時鐘輸入端進行CTS;再進行布線(Route),在滿足工藝規則、設計規則以及邏輯規則的約束下,將單元和I/O用金屬連接起來;布線結束后會根據設計的最終檢查標準進行優化。圖1所示為布局布線的流程圖。
傳統的物理設計流程就是針對上述布局布線流程,以時序為主要參考指標進行設計,由于在前面的流程中不能得到后面步驟的信息,因此會在前面以不確定性(uncertainty)來進行額外約束。uncertainty具體值的設置往往來自經驗值,placement階段設置額外約束的目的是使標準單元位置更合理,所以需要加入對CTS和Route兩個階段的預估值。CTS階段設置額外約束的目的是建立更加合理的時鐘樹結構,同時需要加入Route階段的預估。逐步約束,逐步優化,保證每一階段的時序收斂,并達到最終設計的收斂。這種傳統流程一個很嚴重的問題是為了設計的收斂而進行過約束,從而進行設計,尤其是在placement階段要加入CTS和Route兩個階段的預估值,偏差就更大。
1.3 Innovus介紹
Innovus是業內主流的PR設計工具,可以提供更加合理有效的物理實現解決方法,在運行效率、時序分析、設計優化方面都體現了強大的功能。在傳統PR流程的基礎上,Innovus可提供更優化的方法。
2 物理實現優化方法介紹
本節在傳統PR流程基礎上,基于Innovus建立更適用于高性能芯片設計的PR流程,并對16 nm工藝下緩沖器的特性進行統計分析,在此基礎上提出placement的二次優化方法。以16 nm高性能芯片設計為例,應用PR流程和二次布局優化方案,對placement二次優化前后的設計指標進行對比分析。也同時對比了placement二次優化后的數據版本運行到PR結束的變化,使物理設計更合理。
2.1 新建布局布線流程
Innovus在placement階段已經對CTS和Route兩個階段的預估做了很好的方案。早期時鐘樹綜合功能(Early Clock Flow,ECF)是在placement階段調用時鐘樹協同優化(Clock Concurrent Optimization,CCOPT)引擎創建時鐘樹塊并在placement階段自動優化時序時反標更準確的時鐘延時[2]。這種方法能夠規避由于placement看不到之后的CTS信息,導致物理上時鐘樹緩沖器及時鐘繞線資源被占用,性能上影響CTS結果的弊端,使placement的結果更趨向于CTS之后的結果,減少了從placement階段到CTS階段的設計偏差。
在placement階段的預布線可以很好地預估后續Route的情況,但是工具在優化計算時序時對電阻電容參數(RC Factor)的設置是理想值1,這明顯是不合理的,所以Innovus可提供對Route之后的RC Factor重新抽取計算,得到新的RC Factor,更新Route前設計的RC Factor;同時在抽參數的時候這樣工具在對預布線的計算就會更接近Route的結果,從而減少了從placement階段到Route階段的繞線偏差。實驗結果顯示,更新RC Factor之后,Route前后的偏差明顯縮小。
整個PR流程使用多模式多端角(Multi Mode Multi Corner,MMMC)分析方式,并且全程使用AOCV,避免時序過優化,同時減少物理設計與工藝簽核(signoff)分析模式不同造成的物理設計冗余。在placement之前預先放置好時鐘門控,指導工具按照預先放置好的門控進行布局,并且對時鐘根節點到門控的主干時鐘預先選擇更優的單元和更優的線寬,確保時鐘能夠更快更好地送到門控時鐘輸入端。由于本設計邏輯集中,寄存器集中,因此選擇寄存器合并的優化方式進行placement,并在placement階段使用ECF,減小placement與CTS之間的偏差。在CTS階段使用了中繼器(Buffer)與反相器(Inverter)混合的時鐘樹結構,更好地減少時鐘樹上的單元,從而減小功耗。將Route分為三步,先繞時鐘線,再繞高層,最后繞低層,提升中高層繞線的質量。并且從PR結束后的設計中抽取RC Factor反標回placement前的設計,確保繞線前后互連金屬計算偏差更小。最后執行布線后的優化。此外全程設計同時考慮優化功耗,指導工具在優化時序的同時不至于過分影響功耗。圖2為Innovus優化后的流程。
2.2 16 nm工藝下緩沖器特點分析
研究和實踐均表明,插入緩沖器是物理設計有效的優化互連延時的方法。為了指導工具使用更合理的緩沖器,本節對緩沖器類型進行對比分析。
已知在物理設計過程中緩沖器的主要作用是用來優化扇出、優化時序、優化邏輯結構。
圖3所示為16 nm工藝下四種緩沖器在相同線負載條件下的延時統計,其中橫軸為單元驅動力倍數,縱軸為單元延時,repeater1~4表示4種類緩沖器的編號。從圖中可以看出,線負載相同,驅動力倍數相同的條件下,這四類緩沖器的上下沿延時曲線整體上隨驅動力的增大呈現先快速減少的趨勢,當驅動力倍數增大至D5后,單元延時趨于緩慢增加的穩定趨勢。其中repeater1和repeater2的延時要小于repeater3和repeater4的延時,而repeater1和repeater2的延時比較接近;D1、D2小倍數的緩沖器驅動能力很弱。
圖4所示為不同種類緩沖器的單元上下沿延時偏差,可見repeater3和repeater4這兩種緩沖器正負沿均衡性較差,會影響傳輸信號的質量。
圖5所示為從時序庫文件查表得到不同種類緩沖器的漏流功耗情況。
由圖5可知,這四類緩沖器都呈現驅動倍數越大漏流功耗越大的的關系,其中,repeater1和repeater2的曲線接近,repeater3和repeater4的曲線接近,相同驅動倍數的repeater3和repeater4的漏流功耗明顯低于repeater1和repeater2,且在驅動力倍數增大至D5后,漏流功耗隨驅動力倍數增加迅速增加。
結合圖3~圖5,對于這四類緩沖器進行總結如下:
(1)由于repeater3和repeater4的正負沿偏差太大,對傳輸信號質量有影響,因此這兩類單元要盡量少用或者不用。
(2)驅動力倍數為D1和D2的驅動能力較弱,所以在分割線段時,獲得的延時收益會很小,但其漏流功耗小,所以可用來優化對時序要求不緊張的大扇出。
(3)驅動力倍數為D5附近的緩沖器具有較好的驅動能力,且漏流功耗不至于過大,所以用來優化時序。對于驅動力D1和D2的緩沖器,由于D1緩沖器的漏流功耗稍大于D2,但其相同負載下的單元延時卻明顯大于D2,因此在優化時序時,可用D2替換D1。
(4)驅動倍數為D12以上的緩沖器,由于其漏流功耗比較大,且本身單元延時較大,因此對于較小的線負載考慮不用,如果有長線,可考慮使用。
(5)后續手工調整的時候可考慮用repeater2替換repeater1進行時序的優化。
2.3 二次布局優化方法
分析2.1節的Innovus優化流程,發現如果placement階段結果太差,那么這個結果會隨著PR流程的進行,一直影響后續步驟,增加PR工具的運算量,甚至設計無法收斂。如果placement標準單元放置不合理,會使邏輯走線距離太長,延時增加,并使時序惡化,而工具在做placement的時候是先做全局布局,然后再做詳細布局,全局布局看到的信息不完整,只是粗略地放置,勢必會有標準單元放置不合理。由此可見,如果能夠在placement的時候讓工具考慮到自身placement完成后的情況,這樣就可以減少placement本身的過設計,提升設計性能。所以,為了更好的物理實現,placement的優化非常重要。
已知工具在placement的時候會同時插入緩沖器進行大扇出和長線的優化,同時也會對邏輯結構進行重新組合。如果先將邏輯單元和寄存器位置放置好后,根據實際的寄存器和邏輯單元全局信息重新進行設計優化,使緩沖器的插入更合理化,減少因缺少全局信息造成的緩沖器冗余,從而改善布局結果。
本節提出一種針對placement后的設計進行二次布局優化,減少placement自身偏差的方法,圖6為二次優化流程圖,方法如下:
(1)對placement設計中的緩沖器進行統計和分類,明確緩沖器所起的作用。
(2)刪除原placement設計中的所有緩沖器。
(3)針對placement階段時序違反報告出現的緩沖器,根據其發揮的不同功能,進行調整。若其是用來優化長線,那么就需要調整兩個單元之間的位置;若是用來優化扇出,可考慮增加前級驅動力;若是做邏輯結構的優化,可對邏輯進行等價性修改。
(4)對刪除緩沖器的placement設計進行二次優化,在二次優化時,除D5倍數外,禁止使用repeater3和repeater4。
(5)如果時序收斂,則二次布局優化結束,如果時序不收斂,可針對時序報告中的緩沖器按照2.2節中給出的緩沖器使用規則進行替換。
二次布局優化時已經考慮了更準確的寄存器和邏輯單元物理位置,能得到更優的placement階段結果,減少后續步驟的偏差。
3 物理實現與分析
本節以16 nm下一款2.5G高性能芯片設計為例,實施上節建立的物理設計流程和二次優化方法。
3.1 二次布局優化前后時序路徑的變化
本節中討論了二次布局優化前后placement的結果。圖7所示為兩個寄存器reg1到reg2之間的一條建立時間(setup)時序路徑二次優化前后在Innovus版圖中的情況,白色三角形表示路徑在該處有緩沖器插入。由圖可以看出,在二次優化之前,這條路徑上緩沖器位置雜亂,從reg1出來一段存在多個緩沖器反復插入引起的迂回繞線,同時中間網絡線太長,明顯不合理。經過二次布局優化后路徑得到了更好的優化,不僅沒有在reg1附近插入冗余的緩沖器,而且把長線中間加入了緩沖器做分割。優化前該條數據路徑的延時為449 ps,優化后該條數據路徑的延時為399 ps,與優化前的路徑相比,延時減少50 ps。
3.2 二次布局優化前后緩沖器使用的變化
對二次布局優化前后placement設計中的緩沖器的使用情況進行分析,如圖8、圖9所示,其中pre代表優化前placement設計中對應緩沖器的數量,post代表優化后placement設計中對應緩沖器的數量。從這兩幅圖中可以看出,二次布局優化幾乎沒有使用repeater3和repeater4,對于repeater1的使用數量減少,repeater2的數量幾乎同等數量增加。驅動倍數為D1的緩沖器數量有減少,驅動倍數為D2的緩沖器幾乎同等數量的增加,由前面對緩沖器類型的分析中可以知道驅動倍數為D1的緩沖器的leakage稍大于驅動倍數為D2的,但其單元延時要明顯大于D2,所以在時序優先的本設計中,D1的數量略有下降,D2的數量略有上升。
這符合2.2節中對緩沖器特性的分析,說明二次優化后對于緩沖器的使用更加合理化。
3.3 二次布局優化前后Placemet結果對比
工具在看到寄存器和邏輯單元的完整placement后,做二次布局優化就會根據較為真實的placement模型做設計優化,能夠得到更優更合理選擇緩沖器的類型、驅動和位置的分布。表1所示為二次布局優化前后placement的結果對比,表格中gatecount代表標準單元數量,repeater代表緩沖器數量,ULVT代表超低閾值電壓單元占所有標準單元的比例,setup代表寄存器到寄存器的建立時間時序違反值,density代表密度,total leakage power代表總的漏流功耗,total wire length代表placement結束后的預布線總線長,其中pre代表二次優化前的數據,post代表二次優化后的數據,△代表pre的數據與post數據差值百分比。從表1可以明顯看出經過二次優化后緩沖器的數量可以減少5.5%,漏流功耗降低11.3%,時序優化87.5%,只造成不到1%的繞線增加和密度增長。
3.4 Route后的結果對比
良好的placement結果對最終繞線結束后的時序影響很大,表2所示為Route后兩個版本的結果對比。
通過二次布局優化,最終在Innovus下看到時序優化85.07%,功耗減少3.2%,線長減少0.37%,單元數量減少2.01%。
4 結論
在高性能芯片設計中,物理實現流程已經相對成熟,但是隨著設計規模的增大,工藝的發展,物理設計難度增加。依據設計特點不斷完善和優化物理實現流程是很重要的。本文在Innovus工具平臺下建立更適合于高性能芯片設計的物理實現方法,并在此基礎上引入二次布局優化的方法,通過二次布局優化方法在單元數量減少2.01%的基礎上,總線長減少0.37%,功耗降低3.2%,時序優化85.07%,效果顯著。
參考文獻
[1] Cadence Innovus User Guide[EB/OL].[2019-05-11].http://www.cadence.com.
[2] 陳春章,艾霞,王國雄.數字集成電路物理設計[M].北京:科學出版社,2008.
作者信息:
邊少鮮1,David He1,欒曉琨1,蔣劍鋒1,翟飛雪1,蔡 準2
(1.天津飛騰信息技術有限公司,湖南 長沙410000;2.上??请娮涌萍加邢薰?,上海201204)