摘要:時鐘樹綜合是當今集成電路設(shè)計中的重要環(huán)節(jié),因此在FFT處理器芯片的版圖設(shè)計過程中,為了達到良好的布局效果,采用時序驅(qū)動布局,同時限制了布局密度;為了使時鐘偏移盡可能少,采用了時鐘樹自動綜合和手動修改相結(jié)合的優(yōu)化方法,并提出了關(guān)于時鐘樹約束文件的設(shè)置、buffer的選型及手動修改時鐘樹的策略,最終完成了FFT處理器芯片的時鐘樹綜合并滿足了設(shè)計要求。
關(guān)鍵詞:FFT處理器芯片;布局布線;時鐘樹綜合;時鐘偏移
0 引言
在大規(guī)模高性能的ASIC設(shè)計中,對時鐘偏移(Clock Skew)的要求越來越嚴格,時鐘偏移是限制系統(tǒng)時鐘頻率的主要因素。而時鐘樹綜合又是減小時鐘偏移的有效途徑,因此它是ASIC后端設(shè)計中最重要的環(huán)節(jié)之一。本文以基于SOC Encounter,采用SMIC0.18μm工藝進行的FFT處理器的版圖設(shè)計為例,提出在設(shè)計過程中如何減小時鐘偏移,結(jié)合手動優(yōu)化幫助工具設(shè)計出更好的時鐘樹。
1 時鐘偏移產(chǎn)生的原因分析
同一時鐘源到達各個同步單元的最大時間差稱作時鐘偏移。產(chǎn)生時鐘偏移的原因有:時鐘源到各個時鐘端點的路徑長度不同;各個端點負載不同;在時鐘網(wǎng)中插入的緩沖器不同等。時鐘偏差過大會引起同步電路功能混亂。
在圖1中,假設(shè)CLK到達reg1和reg2的時間差最大,為dskew,組合邏輯C的延時為dc,寄存器的延時為d,其建立時間約束為dsetup,保持時間為dhold,時鐘周期為T。滿足建立時間的要求是在CLK2跳變前的dsetup時間,reg2上D端的數(shù)據(jù)應(yīng)該穩(wěn)定,考慮最壞情況reg1比reg2晚dskew,這時滿足的時間關(guān)系應(yīng)該是:
滿足保持時間的要求是:在CLK2跳變后的dhold時間內(nèi),reg2上D端的數(shù)據(jù)必須保持穩(wěn)定,考慮最壞情況reg1比reg2早dskew,這時滿足的時間關(guān)系應(yīng)該是:
由此可見,時鐘偏移對電路速度和時鐘頻率的限制是很大的,而寄存器的保持時間、建立時間和自身的延時,都是與器件單元本身的結(jié)構(gòu)和性質(zhì)有關(guān),依賴于工藝的改進來進一步減小,所以減小skew成為后端設(shè)計重要內(nèi)容,也是提高電路速度的關(guān)鍵。
2 SOC Encounter的時鐘樹綜合
SOC Encounter的時鐘樹綜合在完成布局之后進行,可以采用手動模式和自動模式。手動模式能控制時鐘樹的層次、buffer的數(shù)目和每層加入buffer的類型。自動模式根據(jù)時鐘樹定義文件自動決定時鐘樹的層次和buffer的數(shù)目。時鐘樹綜合從外部時鐘輸入端口自動遍歷整個時鐘樹,遍歷完成后加入buffer用來平衡時鐘樹。SOC Encounter的時鐘樹綜合流程如圖2所示。
2.1 布局階段對時序的優(yōu)化考慮
布局的好壞直接影響到時序的好壞。本設(shè)計采用時序驅(qū)動布局,時序驅(qū)動布局是基于連續(xù)收斂引擎而設(shè)計的,工具自動的尋找一些最關(guān)鍵路徑,將關(guān)鍵路徑上的單元放得很近,以減小連線長度來減小關(guān)鍵路徑時延,平衡其setup時間約束,預(yù)先為這些關(guān)鍵路徑留出足夠的布線空間,提高關(guān)鍵信號線的可布通性。同時,為了減少擁塞度,對布局時的最大密度設(shè)置為70%,限制布局密度。時序驅(qū)動布局采用setPlace-
Mode-timingDriven命令設(shè)置布局模式,plaeeDesign命令執(zhí)行布局。
如果只是依賴工具的時序驅(qū)動布局是不夠的,為了盡量減小時鐘偏移(Skew),采取的策略是,在時序驅(qū)動布局的基礎(chǔ)上,進行手動的布局調(diào)整,根據(jù)時鐘的不同,將各時鐘控制的寄存器擺在靠近時鐘源(Clock-source)差不多遠的位置。這樣,同一時鐘到達各寄存器的時間差就不會太大,有利于減少插入buffer的數(shù)量,也有利于Skew的減小。
2.2 時鐘樹綜合時的特殊處理
在時鐘樹綜合之前,需要通過時鐘樹約束文件來設(shè)置綜合需要用到的buffer類型、時鐘偏移的目標值MaxSkew、最大時延MaxDelay、最小時延MinDelay、最大扇出MaxFanout、時鐘樹布線規(guī)則等。本設(shè)計選用驅(qū)動能力為中間值的buffer類型來做時鐘樹綜合,因為驅(qū)動能力大的buffer,面積也大,如果插入這種buffer太多,會對芯片的功耗和面積產(chǎn)生影響,而且這種buffer對于上一級也意味著更大的負載;驅(qū)動能力太小的buffer雖然面積小點,但是會增加時鐘級數(shù),產(chǎn)生的延時卻是很大的,所以buffer的選擇一定要適當,本設(shè)計在選用buffer時,將驅(qū)動能力最大的BUFHD20X和驅(qū)動能力最小的BUFHDLX去掉不選用。
對于Skew要求比較嚴格的設(shè)計,可以將時鐘偏移目標值MaxSkew設(shè)置盡量小,工具在綜合時會盡量的將Skew優(yōu)化到接近到該目標值。但一般設(shè)計中,只要Skew能滿足要求,就不要過分的將該值設(shè)小,因為工具為了接近該目標值會插入大量的buffer,從而占用太多的面積和太多功耗。因此,本設(shè)計選用MaxSkew的適當值為100ps。
時鐘樹布線規(guī)則是可以通過手動設(shè)置的,為了讓時序路徑的布線降低功耗,減小線路的延時,一般將時序路徑的布線寬度和間距都設(shè)置的比默認值大,本設(shè)計采取一般信號線的兩倍寬度和間距來布時鐘信號線。而且在布線的時候,采取時鐘樹優(yōu)先布線的策略,充分保證時鐘樹路徑的布通。經(jīng)過encounter工具自動CTS后的時鐘樹分布圖如圖3所示。
2.3 時鐘樹的手動優(yōu)化
工具自動的時鐘樹綜合總是會有一些skew沒有滿足設(shè)計要求,工具自動插入的一些buffer也不一定都合理,一般情況下,encounter自動綜合產(chǎn)生的時鐘樹是不滿足要求的,在經(jīng)過了時序分析后要進行必要的修復優(yōu)化??偟脑瓌t就是想辦法平衡各線路的延時,一般的優(yōu)化途徑有以下一些:
(1)在時鐘信號源(Clock Source)處手動添加驅(qū)動能力很大的drive cell,因為時鐘樹一般扇出很大,負載很大,所以在時鐘源點處需要驅(qū)動能力大的門單元,更大驅(qū)動能力的門單元可以明顯減少延時。
(2)替換(Re_sizing)驅(qū)動能力不一樣的單元,尤其是buffer單元。時鐘樹綜合完成后,經(jīng)過仔細的時序分析后,根據(jù)時序分析結(jié)果報告,分析Skew違規(guī)原因,找出導致Skew違規(guī)的路徑,根據(jù)延時情況來替換一些驅(qū)動能力不同的單元,如buffer等,使其延時情況與其他時鐘信號線相平衡,從而達到減小Skew的目的。
(3)添加buffer。互連線的延時與連線長度的平方成正比,所以插入buffer可以將長的關(guān)鍵路徑分成較小的連線,可以有效地減小互連線的延時。插入的buffer的驅(qū)動能力的大小靠經(jīng)驗估計,插入后做時序分析,然后再做re_sizing,直到滿足延時要求。
經(jīng)過eneounter自動時鐘樹綜合后,查看其CTS時序報告,如圖4所示,發(fā)現(xiàn)時鐘elk_pad的最大偏移值達到了152.4 ps,這樣與目標值還有很大差距。經(jīng)過timing Debug跟蹤時鐘信號,如圖5所示,從中找出一些Skew較大的線路,如從fft4442_inst/CT/M3_R_reg/Q到fft4442 _inst/PEII/pc42_in4_reg_76_/RN的延時太長,達到了27.035 ns,因為這樣的線路與其他信號線的延時相差比較大,它們之間的Skew就很容易違規(guī),必須減小它們的延時來減小Skew。
再進一步查看該線路,發(fā)現(xiàn)有些單元,如FFDCRHD1X延時達到13.483 ns,HAND281HD1X延時達到8.578ns,INVHDPX也達到了4.209ns,而且該線路還插入了不少BUFHD1X,由于此類buffer的驅(qū)動能力太小,從而導致了該線路的延時過大。于是,采用第二類修復辦法:替換(r-e_sizing)驅(qū)動能力不一樣的buffer。于是調(diào)用Interactive ECO功能,手動將延時太長的單元FFDCRHD1X、HAND2B1HD1X等的尺寸替換為更大的,從而加強其驅(qū)動能力,并將部分BUFHD1X替換成BUFHD4X等,再做了PostCTS optimization后,再進行時序分析,這樣經(jīng)過幾輪反復的修復,降低了一些線路的延時,終于將時鐘CLK的Skew降到了93.3ps,如圖6所示,滿足了設(shè)計要求。從eneounter的CTS報告中可以看出,加上有針對性的手動修復之后,對Skew的減小有明顯效果。
3 結(jié)語
隨著集成電路設(shè)計尺寸的減小和芯片運行頻率的提高,時鐘偏移已經(jīng)成為影響ASIC芯片性能的關(guān)鍵因素。本文以對FFT處理器芯片的時鐘樹綜合為例,分析了時鐘偏移的產(chǎn)生機理及影響,從布局階段就開始關(guān)注時序的優(yōu)化,進行了一系列的優(yōu)化設(shè)置。經(jīng)過時序分析證明,采取工具自動綜合和手動修復相結(jié)合的辦法,容易滿足設(shè)計要求,不僅可以提高綜合效率,還可以保證優(yōu)化的有效性。