FPGA中的速度優化


FPGA中的速度優化

一、邏輯設計中的速度概念

邏輯設計速度相關的概念有三個:設計吞吐量、設計延時和設計時序。速度優化策略而言,吞吐量需要提高,延時應該降低,時序應該收斂(時序余量slave越大,收斂越強,移植性越好)。吞吐量提高的方法一般是采用大的並行設計,延時降低的方法則是采用緩存結構或者並行結構,時序收斂則需要綜合考慮。

二、時序收斂的早期考慮

問題發現的越早,解決的成本越低。時序收斂考慮地越早,后面可能的問題就會越少。

先看一下標准FPGA設計流程:

(1)制定設計指導文件

(2)設計功能代碼

(3)進行功能仿真

(4)編譯設計

(5)時序分析

(6)時序調整直至時序收斂

在設計之初,大部分考慮都集中在如何實現功能上,而容易忽略時序問題。在制定指導文件時,應該建立時序收斂的概念,最好能提前對某些信號轉換區給出時序約束圖,通過設計提前消除隱患。

三、時序收斂的設計考慮

設計中,也就是得到時序分析報告后所需要的措施。時序分析報告會給出最大時鍾頻率的報告,這個參數直接決定了電路的時序收斂等級(頻率越高,收斂越好)。整個設計中的考慮也是依靠對這個參數的優化來展開的。最大時鍾頻率相關參數有五個:

Tclk-q:時鍾到達啟動觸發器時鍾端,數據到達Q端(也就是觸發器輸出端)的延時,。

Tlogic:啟動觸發器和鎖存觸發器之間的延時

Trouting:布線延時,這個是EDA工具調整時序收斂常改變的參數。

Tsetup:建立時間,數據到達鎖存觸發器D端,時鍾最快到達時間。

Tsekw:時鍾偏斜,時鍾到達啟動觸發器和鎖存觸發器之間的延時。

這五個參數中只有最后一個是正相關,其他都是負相關。所有在某些設計中,會人為制造Tskew來滿足高速時序收斂。

四、時序收斂的總體考慮

總體考慮的基本原則:

①提前規划,有備無患②實時對應門級層次③預先計算資源用量,選擇合適器件④並行原則,同步原則

具體優化方法則是需要在設計中一一驗證。

(1)在關鍵路徑上減少組合邏輯

關鍵路徑,就是時序收斂最差的路徑。這里是典型的水桶效應,將別的長木板鋸下來補足短板,可以有效提高某些關鍵短板導致的收斂問題。減少組合邏輯,也就是減少Tlogic。至於如何減少,就根據邏輯表達式增加並行結構了,調整位置有時也可以做到。

(2)適當加入邏輯復制

邏輯復制,就是將一個信號作為多個輸入改為若干個復制信號作為多個輸入,從而減低扇出。扇出對邏輯延時的影響就好像工人工作時間對工作量的影響,要求工人必須同時開始同時結束,必然導致整體效率下降,增加工作時間的靈活性可以緩解工作壓力。當然,邏輯復制也會增加資源消耗。寄存器邏輯復制不能解決內部寄存器的時序,但可以優化寄存器之間的時序。組合邏輯復制同樣可以優化這邏輯之間的時序關系。而且,邏輯復制可以在布局布線層次上實現更好地效果,緩解面積緊張。

(3)在組合邏輯中加入寄存器

組合邏輯延時過大,會直接降低最大時鍾頻率,這時候在組合邏輯中間插入寄存器暫存,可以讓數據歇一會,從而緩解時序緊張。也是降低邏輯延時的一種方法。

(4)寄存器平衡優化

常見的平衡優化有操作符平衡,就是使用括號將操作符盡量實現對稱來保證硬件結構上的對稱,進而減少關鍵路徑的長度。

寄存器平衡,在Altera中被定義為寄存器重定時,通過移動關鍵路徑和相鄰路徑上的組合邏輯來實現時序性能的提高

(5)並行結構優化

就是盡可能將輸入應用起來。

(6)消除優先級

優先級,在if語句中體現尤為明顯,對於選擇結構,可以不考慮優先級,就可以使用case來編寫,消除優先級,進而提高時序收斂性。

五、小結

時序收斂是時序是否符合要求的體現,掌握代碼設計時的時序收斂方法是重要的。


免責聲明!

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



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