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