陳力穎,翦彥龍,呂英杰
(1.天津工業(yè)大學 電子與信息工程學院,天津 300387;2. 南開大學電子信息與光學工程學院,天津 300071)
在現(xiàn)代大規(guī)模集成電路設計中,數字集成電路的物理設計是以時鐘為基礎的,設計合理的時鐘網絡,是滿足設計性能的必然要求。傳統(tǒng)時鐘樹的設計是建立平衡時鐘樹,以零偏差為目標,即時鐘到達各個寄存器的延遲基本相等,進而來滿足其時序性能[1]。隨著集成電路產業(yè)的不斷發(fā)展,數字集成電路的功能越來越復雜,芯片的工作頻率和性能要求越來越高,同時工藝尺寸越來越小,已經達到20 nm、16 nm,甚至更小[2]。芯片的集成度不斷提高,芯片中時鐘網絡越來越復雜,時序收斂難度不斷加大,所以在很多設計中傳統(tǒng)的時鐘樹設計已經無法很好地滿足設計時序要求,對數字集成電路的物理設計提出了更高要求。
在數字芯片中設計合理高效的時鐘樹對整個芯片設計的時序、面積、功耗等方面都起到了至關重要的作用[3-4]。相比較傳統(tǒng)時鐘樹綜合技術,Cadence 公司使用較為新型的時鐘樹綜合策略,提出以CCOpt 技術來實現(xiàn)時鐘樹的物理設計。CCOpt 技術即同時優(yōu)化時鐘延遲和邏輯延遲,從而建立更為合理高效的時鐘樹,進而滿足設計時序要求,獲得更好的芯片性能。本文基于28 nm 工藝,設計一款高速數字芯片,內部含有5 個時鐘,其中最快的時鐘周期為1.196 ns,即周期為836 MHz。為了更快更好地滿足設計性能,以CCOpt技術為基礎進行物理設計,使得芯片的時序、功耗等方面達到更好的設計結果,并通過與傳統(tǒng)時鐘樹方法進行對比,驗證本文設計方法的改善效果。
現(xiàn)代數字芯片設計以時鐘為基礎。在時鐘樹綜合之前,時鐘是理想時鐘(ideal clock),即時鐘沒有傳輸延遲;時鐘樹綜合階段,EDA 工具根據標準設計約束(standard design constraints,SDC)文件進行時鐘樹綜合;之后,時鐘稱為傳播時鐘(propagated clock),即時鐘有傳輸延遲,時鐘樹綜合之后執(zhí)行靜態(tài)時序分析,通過靜態(tài)時序分析驗證是否滿足時序約束,即建立時間約束和保持時間約束[5]。建立時間約束,即保證在時鐘信號跳變沿到來前,數據信號已提前到達寄存器數據端的時間,從而保證時鐘信號跳變沿到來時,寄存器能夠采集到正確的數據信號。保持時間約束,即保證在時鐘信號跳變沿到達寄存器時鐘端后,數據信號需要保持不變的時間,從而在寄存器停止采集數據之前,通過使寄存器數據端的輸入值保持不變,保證寄存器采集到正確的數據信號[6]。具體時序約束如圖1所示。
圖1 建立和保持時間的時序約束Fig.1 Timing constraints of setup and hold time
圖1中:L 為發(fā)射時鐘(launch clock);C 為捕獲時鐘(capture clock);Gmax和Gmin為邏輯路徑中最大和最小延時路徑;T 為時鐘周期。假設建立時間和保持時間為零的基礎上,當滿足建立時間L+Gmax<T+C 和保持時間L+Gmin>C 時,數據才能正確地到達和采集。建立時間與時鐘周期相關,所以芯片時鐘頻率越高則建立時間相對就更難滿足;而保持時間違例可以通過添加緩沖器來修復。所以,對于高性能的芯片來說,建立時間約束將是主要挑戰(zhàn)。
在時鐘樹綜合之前,設計約束采用理想時鐘,理想時鐘沒有實際時鐘傳播延時,此時L=C。當要滿足時序約束時,只需要調節(jié)邏輯路徑延遲即Gmax和Gmin。時鐘樹建立之后,進行時序分析時,時鐘采用傳播時鐘,而非理想時鐘。對于傳統(tǒng)的時鐘樹綜合方法,目前主流的EDA 工具會盡可能實現(xiàn)時鐘信號零偏差,即各個時鐘偏差最小,盡可能達到L=C,即建立一個等效于理想時鐘的平衡時鐘樹。此時L=C,建立時間L+Gmax<C+T,等于Gmax<T;保持時間L+Gmin>C,等于Gmin>0。這是傳統(tǒng)時鐘樹綜合的實現(xiàn)目標,設計一個接近零偏差的時鐘樹網絡,此時時序分析優(yōu)化就可以只對數據路徑進行優(yōu)化,從而滿足建立時間和保持時間約束。
對于數字芯片的設計,理想時鐘存在于時鐘樹綜合之前,時鐘樹綜合之后,時鐘樹通過物理實現(xiàn)變成了傳輸時鐘,即有了實際的傳輸延遲。隨著工藝技術的不斷提高,設計規(guī)模的不斷增大,各個時鐘樹網絡基本不可能達到零偏差,所以實際時鐘之間一定會存在時鐘偏差(skew)。時鐘信號偏差(clock skew)是指同一時鐘達到各個不同寄存器的時間差,即最大時鐘偏差|L-C|[7-8]。當時鐘樹建立之后,L 和C 的延遲已經確定,時鐘偏差也就確定。然而現(xiàn)代設計的時鐘偏差在不斷增加,造成時鐘偏差不斷增加的因素主要有2個:
第一,片上偏差(OCV,on chip violation)。本次設計使用的OCV 系數設置高達17%,這對時鐘偏差造成很大影響。OCV 系數會導致實際時鐘路徑延時偏差|L-C|相比較未設置OCV 系數增大20%~40%,引入的偏差對時序會有很大影響。然而傳統(tǒng)技術進行時鐘樹綜合的時候不考慮OCV,但時鐘樹之后要設置OCV 系數來進行性能評估,所以OCV 是引起|L-C|不斷增大的原因之一。
第二,時鐘的復雜性。本次設計中有一個芯片內部含有5 個時鐘,多個時鐘增加了設計復雜度,對于5個時鐘做到零偏差已經基本不可能。超大規(guī)模集成電路設計中時鐘網絡甚至有幾十個幾百個不同的時鐘,如果要做到時鐘偏差為零,就更不可能完全實現(xiàn)。有時傳統(tǒng)的時鐘樹綜合技術為了更好地滿足“零偏差”要求,甚至需要利用幾個月的時間來手工調節(jié)時鐘網絡,增加了設計周期,等于增加設計成本。
時鐘偏差是時鐘源端到各個時鐘節(jié)點最差的延時偏差|L-C|,即進行建立和保持時間檢查的L 與C最差延時。由于片上誤差(OCV)、內部多個時鐘錯綜復雜等因素,引起實際設計時鐘偏差不斷增大,造成時序很難修復[9]。尤其是與周期相關的建立時間違例,本次設計時鐘周期為1.196 ns,較短的時鐘周期引起的建立時間違反將很難修復。傳統(tǒng)的時鐘樹綜合,期望實現(xiàn)零偏差的時鐘樹,但是由于設計不斷復雜化,零偏差很難達到,也不一定能實現(xiàn)最好性能,此時就可以使用有用偏差,主動調節(jié)時鐘網絡[10-12]。如果能夠在優(yōu)化過程中很好地調節(jié)L 和C,合理的使用時鐘偏差能夠更好地滿足時序約束,同時也能夠加快整個設計周期。
CCOpt 技術是在時鐘樹綜合階段對傳輸時鐘偏差進行優(yōu)化的同時進行物理優(yōu)化。CCOpt 設計流程不同于傳統(tǒng)的綜合方法,將建立時鐘樹和物理優(yōu)化整合在一起,即在建立時鐘樹階段,把L、C、Gmax、Gmin都作為優(yōu)化對象,對時序路徑中的邏輯路徑和時鐘路徑同時進行優(yōu)化,針對傳輸時鐘直接進行優(yōu)化,此時傳輸時鐘延遲的結果已經包含OCV 等因素,合理利用偏差可以很好地進行時鐘時序優(yōu)化[13-14]。傳統(tǒng)時鐘樹綜合之后時鐘傳輸延時確定,滿足Gmax<T-skew 即滿足建立時間;CCOpt 技術滿足L+Gmax<T+C 即可滿足建立時間,具體實現(xiàn)如圖2所示。
圖2 傳統(tǒng)時鐘樹綜合和CCOptFig.2 Traditional clock tree synthesis and CCOpt
相鄰寄存器之間的時序約束如圖3所示。圖3中,對于FF1 到FF2 之間約束來說,建立時間滿足P[i-1]+G[i-1]max-T <P[i],保持時間滿足P[i-1]+G[i-1]min>P[i];對于FF2 到FF3 之間約束來說,建立時間滿足P[i]<P[i+1]-G[i+1]max+T,保持時間滿足P[i]>P[i+1]-G[i-1]min。如果時鐘P[i]能夠在允許的范圍內到達寄存器,同時滿足FF1、FF2、FF3 之間的約束條件,即max((P[i-1]+G[i-1]max-T),(P[i+1]-G[i-1]min))<P[i]<min((P[i-1]+G[i-1]min),(P[i+1]-G[i+1]max+T)),可以同時滿足建立時間和保持時間約束。CCOpt 技術是建立在實際時鐘基礎上的,也就是說包含了OCV、門控時鐘(clock gating)、內部時鐘網絡等影響因素,可以在時鐘樹綜合階段同時優(yōu)化時鐘路徑(P[i],P[i-1],P[i+1])和邏輯路徑Gmax、Gmin。
圖3 時鐘驅動的時序窗Fig.3 Clock driven timing window
CCOpt 技術利用合理的有用偏差優(yōu)化時鐘。對FF2 進行分析,當FF1 滿足建立時間而FF3 不滿足建立時間時,可以通過減慢P[i+1],或者加快P[i],調節(jié)時鐘偏差進而滿足建立時間。假設FF1 與FF2 之間邏輯延遲為G[i-1]max=0.2 ns,F(xiàn)F2 與FF3 之間邏輯延遲為G[i+1]max=0.4 ns,時鐘周期為T= 0.5 ns,時鐘達到寄存器的延遲為P[i-1]=P[i]=P[i+1]=0.2 ns,時鐘偏差為0,忽略門延遲以及建立時間,則FF1 到FF2 的建立時間余量為0.1 ns,F(xiàn)F2 到FF3 的建立時間余量為-0.1 ns,如果時鐘達到FF2 的延遲變?yōu)?.1 ns,則兩條路徑的建立時間余量就都為0,從而滿足FF2 建立時間約束?;跁r鐘偏差合理調節(jié)時鐘網絡,能更快速地滿足設計約束。建立時鐘網絡的時候合理考慮OCV、clock gating 和內部時鐘網絡的路徑,對面積、功耗也有很大的影響,即同時進行時鐘和物理優(yōu)化將會改善芯片的面積和功耗。
本文基于28 nm 工藝設計,通過Cadence 最新的布局布線工具Innovus 實施布局布線,芯片內部含有5個時鐘,時鐘頻率最高為836 MHz,時鐘周期為1.196 ns,使用不同的時鐘樹綜合方法來對比物理設計結果。
時鐘樹的延遲主要由器件延時(cell delay)和線延時(net delay)組成,時鐘繞線是優(yōu)先于全局布線的,所以時鐘的線延遲一般比較小,并且也最優(yōu)[15-17],因此,器件延時就成了更為主要的影響因素。對于時鐘樹上使用的緩沖器和反相器,一般選用驅動適中的元件,這樣能夠減小時鐘樹上的延時,時鐘樹的級數也會影響時鐘樹上的延遲。表1為不同時鐘樹綜合方法的時鐘級數以及時鐘樹最大延時和最小延時。
表1 時鐘樹對比Tab.1 Clock tree comparison
由表1可以看出,與傳統(tǒng)CTS 的延時相比,CCOpt的延時稍微大一些,同時最大偏差也較大,但是時鐘樹綜合之后和繞線之后兩者延時卻相差不大。這是因為CCOpt 在建立時鐘樹的時候,直接考慮OCV 系數,同時利用有用偏差來建立時鐘樹。然而傳統(tǒng)CTS 在建立時鐘樹的時候沒有考慮OCV 系數等因素,所以造成繞線后的偏差比CTS 時鐘樹綜合后的偏差大很多,時鐘路徑延時也變化很大。同時從表1中還可以看出,CCOpt 的時鐘網絡中緩沖器數量遠小于傳統(tǒng)CTS,這將會很大程度影響芯片的功耗面積。
僅僅通過時鐘偏差來判定設計好壞明顯是不合理的,只有更好更快地滿足時序約束才是一個合理高效的設計方法。不同時鐘樹綜合時序報告如表2所示。
由表2可以看出,傳統(tǒng)CTS 方法的時序結果比CCOpt 的結果更差一些,整體最差余量(WNS,worst negative slack)、余量總和(TNS,total negative slack)和違例路徑數量(violating paths)都是CCOpt 時序結果更好一些,芯片整體時序得以改善,這為提高芯片性能以及面積提供了更好的保障。CCOpt 結果中建立時間違例更小一些,特別是寄存器到寄存器之間的路徑,這些違例必須要進行修復。芯片時鐘頻率較高,周期僅僅1.196 ns,建立時間相對更難修復。通過時序報告可以看出,CCOpt 的結果遠優(yōu)于傳統(tǒng)CTS 的結果,WNS 幾乎為傳統(tǒng)的1/2,同時違例路徑數量減少了50%以上,減輕了建立時間違例的修復任務,同時也會加快整個設計周期,減少迭代次數。CCOpt 技術合理利用有用偏差,對時鐘樹同時進行物理實施和優(yōu)化,實現(xiàn)了更好的時序收斂結果。
表2 不同時鐘樹綜合時序報告Tab.2 Different clock tree synthesis timing reports
對于單個芯片設計而言,芯片通過Innovus 減少布局布線時間。該芯片使用傳統(tǒng)CTS 綜合方法時整個布局布線流程運行時間為10 h 10 min,而采用CCOpt時運行時間為8 h 15 min,整體布局布線時間減少了將近2 h,這在一定程度上加快了設計時間。
CCOpt 不僅對時序優(yōu)化有較好的結果,而且對功耗也有顯著的改善。功耗主要由動態(tài)功耗、短路功耗和泄露功耗組合而成,泄漏功耗已經成為設計中主要的功耗組成部分[18-20]。時鐘信號貫穿于整個芯片,時鐘同時也是芯片中跳變最快的部分,對功耗起著至關重要的影響,由表1已經可以看出CCOpt 時鐘樹上插入的緩沖器少于傳統(tǒng)CTS 插入的緩沖器,這對功耗產生很大影響。不同時鐘樹綜合方法的功耗結果有明顯的差異,如表3所示。
表3 時鐘網絡功耗Tab.3 Clock network power
由表3可以看出,CCOpt 技術有明顯降低功耗的效果。芯片中Clk1 的頻率最高達到836 MHz,動態(tài)跳變功耗相差不多,傳統(tǒng)CTS 的泄漏功耗是CCOpt 的7倍多;并且每一個時鐘的泄漏功耗都遠大于CCOpt 時鐘樹的泄漏功耗,采用CCOpt 技術后時鐘的泄漏功耗減少了80%以上。同時CCOpt 的內部網絡功耗也比傳統(tǒng)CTS 減少了很多,減小量達到50%以上。在時鐘路徑中CCOpt 具有較少的緩沖器和反相器,尤其是在關鍵路徑上,去除各個時鐘域之間的公共路徑,CCOpt 泄漏功耗為CTS 的1/7,所有時鐘網絡的功耗減少了55%,有效降低了芯片設計功耗,從而芯片的穩(wěn)定性得到了一定保證。
與傳統(tǒng)CTS 方法相比,CCOpt 時鐘樹綜合方法有效地改善了時序以及時鐘樹功耗,同時還縮短了設計周期等,說明CCOpt 是一種高效的時鐘樹綜合方式。
本文基于28 nm 工藝對數字芯片進行設計,使用Cadence 最新的布局布線工具Innovus 進行物理設計。對于同一設計:
(1)采用Innovus 最新的CCOpt 技術設計時鐘樹,芯片有更好的時序結果,不管是最差違例,還是時序違例路徑數量幾乎是傳統(tǒng)CTS 時序結果的1/2,違例數量減少了50%以上,實現(xiàn)了更好的時序結果,更有利于設計優(yōu)化和修復。
(2)同時本設計使用CCOpt 進行物理設計,整個設計的布局布線時間也減少了2 h 左右,運行時間的減少一定程度上也加快了設計周期。
(3)芯片時鐘網絡功耗也有明顯的改善,內部互連功耗是傳統(tǒng)CTS 的45%左右,即減少了55%,尤其是泄漏功耗相較于傳統(tǒng)CTS 減少了80%以上,有效提高了可靠性。
綜上所述,新型的CCOpt 技術更適用于現(xiàn)在高速高性能的芯片設計,使設計能夠更好地滿足設計需求,更快地實現(xiàn)設計目標。