特點
涵蓋以下設計主題:
- 預看進位組合加法器與飽和數學運算背後的方法論和邏輯
- 使用 for 迴路(For Loop)透過結構組合方法擴展邏輯切片
- 使用 Lattice MachXO2-7000HE PLD 和 Diamond 工具集進行性能基準測試
- 使用 Verilog 測試夾具(測試平台)模擬 N-Bit 飽和數學進位預看組合加法器
介紹
這個 Verilog 模組使用源自二進位進位預看加法器的基本布林方程(Boolean equation),並結構化地建構這些方程。 Verilog 的「 for」 迴路 和 「genvar」 變數用於將切片縮放到使用者所需的字寬。
加法器的飽和部分可確保在用於 DSP 和控制相關設計時,與翻轉情況相比,其效能失真最小。加法器將透過識別溢位條件並將最大正或負滿刻度值分配給輸出,從而使輸出飽和。
此加法器使用 Lattice MachXO2 PLD 開發,但不限於此特定的工具集。
背景
進位預看加法器的工作原理是評估兩個被加法的字,以識別進位產生位和進位傳播位。這些位元將以組合方式決定所有可能出現進位的位置。加法操作會同時逐一執行,直到每個進位位元可用為止。飽和度由溢位標示和暫時和的最高有效位元而判斷得出。
應用
建構電路
Verilog 的「for」迴路是建立每個切片的布林方程式/結構的完美解決方案。它可以根據用戶的需求進行擴展。Verilog 模組中使用產生變數「genvar」來決定加數的字寬,然後「for」迴路會相應地建構結構邏輯。初始進位初始化為「0」,後續進位取決於兩個加數的每一位元,從最低有效位到最高有效位。將每個切片拼接在一起,建構組合電路,其速度僅受閘延遲的限制。基本的超前進位加法器切片如下圖 1 所示。
圖 1 基本進位預看加法器切片
飽和度由溢位條件決定。此條件透過對最高有效位元(進位數組中找到的兩個最高有效位元)的進位輸入和進位輸出進行互斥或(exclusive OR)運算來確定。如果發生溢位,則臨時和的最高有效位元將決定最終和值是否應飽和為最大正值或最大負值。「1」表示溢位導致正值翻轉為負值,因此我們將最終和值飽和為正值。「0」表示相反的情況,因此我們將最終和值飽和為負值。下圖 2 顯示了此加法器的 3-片實作。下圖 3 顯示了輸出和飽和度。
圖 2:三片式實現,可選擴展至 W-bit 加數寬度
圖 3:三片式實現,可選擴展至 W-bit 數寬度
評量基準
為了對設計進行評量基準,我們可以在兩個 n-bit 時脈正反器之間驅動組合加法器。這將決定在已知常數加數字寬的情況下我們可以運行加法器的速度。已知一個 64-bit 加法器,該設計能夠以 114.7MHz 和 188.1MHz 的速度運行,並採用 8-bit 實現。這些效能資料來自 Synplify Pro for Lattice,使用 -4 速度等級的 MachXO2 裝置,每個結果都在 10ns 內提供。設計已自動約束,無需選擇進一步的最佳化。對於不同的 FPGA,甚至對於相同 FPGA,不同的速度等級,都會得到不同的結果。也可以使用給定 FPGA 供應商的原生工具集進行最佳化,方法是適當限制設計並針對速度而非面積進行最佳化。測試原理圖的頂層框圖如下圖 4 所示。
圖 4 為組合加法器評量基準的頂層測試原理圖
電路模擬
各種 HDL 模擬器,例如 Aldec 的 Active-HDL,都可用來驗證電路的輸出。本應用程式使用了 Active-HDL。測試平台是在 Lattice Diamond 2.0.1 開發環境中創建的。該測試平台包含兩個「always」和一個「initial」區塊,用於測試向量和時脈控制。輸出如下圖 5 所示。紅色提示部分確認由於溢位導致輸出飽和的位置。該設計的測試平台包含在其他設計文件中。
圖 5 Active-HDL 測試平台輸出
功能、限制和修改
此設計可用於任何性能各異的 FPGA 開發平台。隨著字寬的增加,所使用的硬體數量也會隨之增加。我們使用 Lattice Diamond 2.0.1 開發環境和 MachXO2-7000HE 分接板來開發和測試此 Verilog 模組。並使用 Aldec Active-HDL 模擬器對設計進行模擬和驗證。
總結
NbitSatAdder.v 檔案可以在任何注重速度和輸出飽和度的設計中修改和實例化。此模組在串接加法器電路(例如平行 FIR 濾波器電路)中使用時效果良好。當時間成為問題時,可以實行管線操作和/或與「完成」訊號進行同步。在本設計中,N-bit時脈正反器可以很好地同步電路。AMD(Xilinx)、Microsemi、Lattice 和 Altera 等的眾多開發套件均可從 DigiKey 網站獲取,連結如下:電子元件搜尋 | DigiKey Electronics
更多資訊
更多設計支援、產品教學、應用筆記、使用者指南及其他文檔,請訪問以下四個主要 FPGA 供應商的網站:
Lattice網站:Lattice Semiconductor | The Low Power FPGA Leader
Microsemi cSOC 網址:FPGAs and PLDs | Microchip Technology
Xilinx 應用網站:http://www.xilinx.com/applications.index.htm
Altera 支援網站:http://www.altera.com/support/spt-index.html
附錄:下載
完整的 NBitSatAdder 專案檔案可在此處下載。
NBitSatAdder_TOP.v (2.1 KB)
NBitSatAdder.v (2.7 KB)
Nbit_Dual_Dff.v (1.7 KB)
Nbit_Dff.v (1.5 KB)
NBitSatAdder_tf.v (1.9 KB)




