- AMD FPGA設計優化寶典:面向Vivado/VHDL
- 高亞軍編著
- 1060字
- 2023-12-12 20:02:31
1.4.4 面積與速度的平衡與互換原則
這里的面積指的是一個設計所消耗的FPGA的邏輯資源數量,其直觀的體現就是資源利用率報告。速度指的是設計在FPGA上穩定運行時所能達到的最高頻率,也就是我們常說的Fmax,可間接地通過時序報告中的WNS(Worst Negative Slack,建立時間最小裕量,若此值大于等于0,說明建立時間收斂;若此值小于0,說明建立時間存在時序違例)換算獲得。面積和速度這兩個指標貫穿FPGA設計的始終,是設計質量評價的終極標準。
面積和速度是對立統一的。要求一個設計以最少的資源為代價運行在最高的時鐘頻率下是不可行的。科學的設計目標應該是在保證設計滿足時序性能(能夠達到預期的Fmax)的前提下,盡可能地減少設計所消耗的資源;或者在限定的資源用量下,使設計的時序裕量更大,即使Fmax更高。這兩種目標充分體現了面積和速度的平衡思想。
面積和速度直接影響設計的質量和成本。如果一個設計的時序裕量很大,Fmax很高,那么設計就更為穩定,這對整個系統的質量是一種保障;另一方面,如果設計占用的資源很少,那么單位芯片上實現的功能模塊就會更多一些,從而使芯片的需求數量減少,整個系統的成本也會隨之下降。
面積和速度互換是FPGA設計的一個重要思想。從理論上講,對于一個設計,如果Fmax遠遠高于實際需求,那么就可以通過功能模塊復用減少整個設計消耗的邏輯資源,這其實就是用速度優勢換面積節約。相反,如果一個設計對Fmax的要求很高,那么可以通過并行復制多個操作模塊來提高Fmax,這其實就是通過增加面積換取Fmax的提升。那么,當面積和速度發生沖突時,該如何解決問題呢?此時,我們應遵循“速度優先”的原則。
為進一步說明,我們以計算兩個向量的內積為例,這兩個向量的長度均為4,表示為
A=[a0,a1,a2,a3]
B=[b0,b1,b2,b3]
兩者的內積表示為

可見,計算長度為4的向量的內積需要4次乘法運算和3次加法運算。
從數據流的角度而言,如果數據順序到達,可采用如圖1-43所示的方案,僅用1個乘加單元。如果數據并行到達,則可采用如圖1-44所示的方案,4個乘法器并行工作,乘法器的工作頻率與輸入數據采樣率一致,此時,數據吞吐率最大。如果依然采用如圖1-43所示的方案,就意味著需要將并行數據轉換為串行數據,乘法器的工作頻率將是輸入數據采樣率的4倍。

圖1-43

圖1-44
圖1-43所示為串行方案,圖1-44所示為全并行方案,前者消耗的資源最少,但并行數據流Fmax將受限,后者Fmax最高,但消耗的資源也最多。能否在面積與速度之間取得折中呢?答案是肯定的,這就是半并行方案,如圖1-45所示。此時,對于4路并行數據,將其轉為2路并行數據,即a0、a2和b0、b2使用上部乘法器,a1、a3和b1、b3使用下部乘法器。乘法器的工作頻率將是輸入數據采樣率的2倍。

圖1-45
- 自然語言處理實戰:預訓練模型應用及其產品化
- 精通JavaScript+jQuery:100%動態網頁設計密碼
- ThinkPHP 5實戰
- 控糖控脂健康餐
- C語言程序設計實訓教程
- Python Tools for Visual Studio
- Python Geospatial Development(Second Edition)
- 批調度與網絡問題的組合算法
- 領域驅動設計:軟件核心復雜性應對之道(修訂版)
- BeagleBone Black Cookbook
- Swift 4從零到精通iOS開發
- Python+Tableau數據可視化之美
- Android開發三劍客:UML、模式與測試
- C++編程兵書
- MyBatis 3源碼深度解析