基於FPGA的高速流水線浮點乘法器設計與實現

2020-12-01 電子產品世界

1 引言

本文引用地址:http://www.eepw.com.cn/article/187109.htm

  在數位化飛速發展的今天,人們對微處理器的性能要求也越來越高。作為衡量微處理器 性能的主要標準,主頻和乘法器運行一次乘法的周期息息相關。因此,為了進一步提高微處 理器性能,開發高速高精度的乘法器勢在必行。同時由於基於IEEE754 標準的浮點運算具 有動態範圍大,可實現高精度,運算規律較定點運算更為簡捷等特點,浮點運算單元的設計 研究已獲得廣泛的重視。 本文介紹了 32 位浮點乘法器的設計,採用了基4 布思算法,改進的4:2 壓縮器及布思 編碼算法,並結合FPGA自身特點,使用流水線設計技術,在實現高速浮點乘法的同時,也 使是系統具有了高穩定性、規則的結構、易於FPGA 實現及ASIC 的HardCopy 等特點。

  2 運算規則及系統結構

  2.1 浮點數的表示規則

  本設計採用單精度IEEE754 格式【2】。設參與運算的兩個數A、B 均為單精度浮點數, 即:

  

  2.2 浮點乘法器的硬體系統結構

  本設計用於專用浮點FFT 處理器,因此對運算速度有較高要求。為了保證浮點乘法器 可以穩定運行在80M 以下,本設計採用了流水線技術。流水線技術可提高同步電路的運行 速度,加大數據吞吐量。而FPGA 的內部結構特點很適合在其中採用流水線設計,並且只需 要極少或者根本不需要額外的成本。綜上所述,根據系統分割,本設計將採用5 級流水處理, 圖1 為浮點乘法器的硬體結構圖。

  

  3 主要模塊設計與仿真

  3.1 指數處理模塊(E_Adder)設計

  32位浮點數格式如文獻【2】中定義。由前述可知,浮點乘法的主要過程是兩個尾數相 乘,同時並行處理指數相加及溢出檢測。對於32位的浮點乘法器而言,其指數為8位,因而 本設計採用帶進位輸出的8位超前進位加法器完成指數相加、去偏移等操作,具體過程如下。

  E_Adder 模塊負責完成浮點乘法器運算中指數域的求和運算,如下式所示:

  

  其中,E[8]為MSB 位產生的進位。Bias=127 是IEEE754 標準中定義的指數偏移值。 Normalization 完成規格化操作,因為指數求和結果與尾數相乘結果有關。在本次設計中,通 過選擇的方法,幾乎可以在Normalization 標誌產生後立刻獲得積的指數部分,使E_Adder 不處於關鍵路徑。

  本設計收集三級進位信號,配合尾數相乘單元的 Normalization 信號,對計算結果進行 規格化處理,並決定是否輸出無窮大、無窮小或正常值。

  根據 E_Adder 的時序仿真視圖,可看出設計完全符合應用需求。

  3.2 改進的Booth 編碼器設計

  由於整個乘法器的延遲主要決定於相加的部分積個數,因此必須減少部分積的數目才能 進而縮短整個乘法器的運算延遲。本設計採用基4 布思編碼器,使得部分積減少到13 個, 並對傳統的編碼方案進行改進。編碼算法如表1 所示。

  

  由於 FPGA 具有豐富的與、或門資源,使得該方法在保證速度和準確性的前提下,充分 利用了FPGA 內部資源,節省了面積,同時符合低功耗的要求。

  3.3 部分積產生與壓縮結構設計

  3.3.1 部分積產生結構

  根據布思編碼器輸出結果,部分積產生遵循以下公式【4】:

  

  其中,PPi 為部分積;Ai 為被乘數。經過隱藏位和符號位的擴展後,26 位的被乘數尾數將產 生13 個部分積。在浮點乘法器中,尾數運算採用的是二進位補碼運算。因此,當NEG=1 時要在部分積的最低位加1,因為PPi 只完成了取反操作。而為了加強設計的並行性,部分 積最低位加1 操作在部分積壓縮結構中實現。另外,為了完成有符號數相加,需對部分積的 符號位進行擴展,其結果如圖4 所示。13 個部分積中,除第一個部分積是29 位以外,其餘 部分積擴展為32 位。其中,第一個部分積包括3 位符號擴展位「SSS」,第2 至13 個部分 積的符號擴展位為「SS」,加一操作位為「NN」,遵循如下公式:

  

  其中,i 為部分積的行數,sign(i)為第i 行部分積的符號。

  3.3.2 部分積壓縮結構

  本設計混合使用 4:2 壓縮器、3:2 壓縮器、全加器和半加器,實現了13 個部分積的 快速壓縮,並保證了精度。本文部分積壓縮結構的劃分如圖2 所示。

  

  圖 2 中,虛線給出了傳統部分積的壓縮劃分,而實線描述的是本文採用的部分積壓縮結 構劃分,這樣的劃分有利於簡化第二級的壓縮結構,從而在保證速度的基礎上,節省FPGA 內部資源。從圖2 中可看出,有些位不必計算,因為這些位是由Booth 編碼時引入的乘數尾 數的符號位產生的,48 位足以表達運算結果。

  3.3.3 改進的4:2 壓縮器

  本設計採用廣泛使用的 4:2 壓縮器,並針對FPGA 內部資源特點,對其進行了改進。 如圖3 所示。 傳統的 4:2 壓縮器即兩個全加器級聯,共需要四個異或門和8 個與非門。而改進的4: 2 壓縮器需要四個異或門和兩個選擇器(MUX)。8 個與非門需要36 個電晶體,而兩個MUX 需要20 個電晶體。同時,FPGA 內部集成了大量的異或門和選擇器資源,這種設計方法也是對FPGA 的一個充分利用。

  

  由於壓縮部分積需要大量的4:2 壓縮器,所以改進的電路能 在一定程度上減小版圖的面積,也為該乘法器的ASIC 後端設計帶來了優勢。另外,改進的 壓縮器的4 個輸入到輸出S 的延時相同,都是3 級XOR 門延時。

  4 32 位浮點乘法器的實現與仿真

  圖 4 顯示了本設計的FPGA 時序仿真結果,時序仿真環境為Quartus II 7.0,目標晶片為 Cyclone 系列的EP1C6Q240C8,功能仿真環境為Modelsim 6.0b。整個設計採用VHDL 語言進行結構描述,綜合策略為面積優先。由仿真視圖可看出,該浮點乘法器可穩定運行在80M 及以下頻率,在延時5 個周期後,以後每一個周期可穩定輸出一級乘法運算結果,實現了高 吞吐量。如果採用全定製進行後端版圖布局布線,乘法器的性能將更加優越。

  

  5 結語

  本文作者創新點:針對FPGA 器件內部資源特性,獨創地提出了一種適合FPGA 實現 的5 級流水高速浮點乘法器。該乘法器支持IEEE754 標準32 位單精度浮點數,採用了基4 布思算法、改進的布思編碼器、部份積壓縮結構等組件,從而在保證高速的前提下,縮小了 硬體規模,使得該乘法器的設計適合工程應用及科學計算,並易於ASIC 的後端版圖實現。 該設計已使用在筆者設計的浮點FFT 處理器中,取得了良好效果。

相關焦點

  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於FPGA的高速流水線FFT算法實現
    FFT(快速傅立葉變換)算法是作為DFT的快速算法提出,它將長序列的DFT分解為短序列的DFT,大大減少了運算量,使得DFT算法在頻譜分析、濾波器設計等領域得到了廣泛的應用。  FPGA(現場可編程門陣列)是一種具有大規模可編程門陣列的器件,不僅具有專用集成電路(ASIC)快速的特點,更具有很好的系統實現的靈活性。FPGA可通過開發工具實現在線編程。
  • 基於FPGA流水線結構並行FFT的設計與實現
    FFT的FPGA實現同時具有軟體編程的靈活性和ASIC電路的快速性等優點,成為快速實時實現FFT的一種重要手段。文章意在設計一種高速率高吞吐率的FFT處理器,以滿足實時處理要求。2 結構說明2.1 流水線結構硬體結構實現FFT的常用形式有4種:遞歸結構,流水線結構,並行迭代結構和全並行結構。
  • 基於FPGA的複數浮點協方差矩陣實現
    故目前國內外協方差運算的FPGA實現都是採用定點運算方式。 在所有運算都是定點運算的情況下,每次乘法之後數據位寬都要擴大一倍。若相乘後的數據繼續做加減運算,為了保證數據不溢出,還必須將數據位寬擴展一位,而協方差矩陣的運算核心就是乘累加單元,隨著採樣點數的增加,位寬擴展呈線性增加。最終導致FPGA器件資源枯竭,無法實現設計。
  • 基於複數浮點運算的協方差矩陣的FPGA實現
    本文以空間譜估計作為研究背景,研究了複數據運算和浮點運算的特點,提出了一種適用於任何陣列流型、任意陣元的基於複數浮點運算的協方差矩陣的FPGA實現方案。  1 求解複數浮點協方差矩陣  以11陣元的均勻圓陣為例,其協方差矩陣的求解方案原理框圖如圖1所示。
  • 基於FPGA的高速卷積硬體設計及實現
    本文從實際工程應用出發,使用快速傅立葉變換(FFT)技術,探討卷積的高速硬體實現方法。本文引用地址:http://www.eepw.com.cn/article/148300.htm1 卷積算法的原理設線性時不變系統的衝激響應為h(n),則衝激響應和輸入δ(n)之間有關係
  • 基於FPGA IP核的FFT實現
    目前現有的文獻大多致力於研究利用FFT算法做有關信號處理、參數估計、F+FT蝶形運算單元與地址單元設計、不同算法的FFT實現以及FFT模型優化等方面。而FPGA廠商Altera公司和Xilinx公司都研製了FFT IP核,性能非常優越。在FFT的硬體實現中,需要考慮的不僅僅是算法運算量,更重要的是算法的複雜性、規整性和模塊化,而有關利用FFT IP核實現FFT算法卻涉及不多。
  • 基於FPGA的移位寄存器流水線結構FFT處理器設計與實現
    從上面的算法結構分析中知道,由於後級的DFT運算點數是前一級的一半,所以後一級的開關轉換周期也是前一級的一半,基於這種關係,可以使用一個8位計數器的每一位狀態來對各級開關進行控制。最高位控制第一級,同時由於上一級數據進入下一級需要一個時鐘,所以下一級的開關轉換時刻要比上一級延遲一個時鐘周期。
  • 基於FPGA的24點離散傅立葉變換結構設計
    摘要 基於Good—Thomas映射算法和ISE快速傅立葉變換IP核,設計了一種易於FPGA實現的24點離散傅立葉變換,所設計的24點DFT模塊採用流水線結構,主要由3個8點FFT模塊和1個3點DFT模塊級聯而成,並且兩級運算之間不需要旋轉因子,整個DFT
  • 基於FPGA的自然對數變換器的設計與實現
    引言  在需要硬體實現對數運算的場合[1],其精度和速度是必須考慮的問題。目前硬體實現對數變換的方法主要有查表法、泰勒公式展開法和線性近似法。查表法[2]所需要的存儲單元隨著精度的增加或輸入值範圍的增大而成指數增加;泰勒公式展開法[3]需要乘法器,面積大不易實現;線性近似法[4]的精度有限,且需要誤差校正電路,實現較難。
  • 基於FPGA的高效FIR濾波器設計與實現
    摘要: 給出了一種基於FPGA的數字濾波器的設計方法。該方法先通過MATLAB設計出一個具有具體指標的FIR濾波器, 再對濾波器係數進行處理, 使之便於在FPGA中實現, 然後採用基於分布式算法和CSD編碼的濾波器結構進行設計, 從而避免了乘法運算, 節約了硬體資源,其流水線的設計方式也提高了運行速度。Matlab和Modelsim仿真表明, 該設計功能正確, 能實現快速濾波。
  • 基於CORDIC算法的32位浮點三角超越函數之正餘弦函數的FPGA實現
    關鍵詞: CORDIC;自定義指令;IEEE-754標準化處理引言浮點超越函數的應用領域十分廣泛,涉及航空航天、機器人技術、實時語音、圖像信號處理、濾波技術、FFT變換等領域。因此,設計並實現浮點三角超越函數是非常重要的。
  • 基於FPGA的短波AM解調器的設計
    現在也有一些數字短波接收機,在中頻對短波信號數位化,再利用DSP實現短波解調。由於依然使用到了太多的模擬器件,使得系統性能提升有限。本文根據軟體無線電的思想,提出一種全數字的短波解調器。使用高速模數轉換器直接射頻採樣,並將高速數據流送給FPGA完成下變頻、濾波、解調。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    2 系統硬體總體設計 系統的硬體功能是實現語音指令的採集和步進電機的驅動控制,為系統軟體提供開發和調試平臺。如圖1所示。 系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。
  • 基於高速定點FFT算法的FPGA設計方案
    在高速數位訊號處理領域,如雷達信號處理,FFT的處理速度往往是整個系統設計性能的關鍵所在。 針對高速實時信號處理的要求,軟體實現方法顯然滿足不了其需要。近年來現場可編程門陣列(FPGA)以其高性能、高靈活性、友好的開發環境、在線可編程等特點,使得基於FPGA的設計可以滿足實時數位訊號處理的要求,在市場競爭中具有很大的優勢。 在FFT算法中,數據的寬度通常都是固定的寬度。
  • 基於FPGA 的二維提升小波變換IP核設計
    提出了一種高效並行的二維離散提升小波(DWT)變換結構,該結構只需要7 行數據緩存,即可實現行和列方向同時進行濾波變換。採用一種基於CSD 編碼和優化的移位加操作實現常係數乘法器,整個小波變換插入多級流水線寄存器,加快了處理速度。
  • 基於FPGA的結構光圖像中心線提取
    編者按:在線結構光視覺三維測量系統中,為了實現對結構光圖像線條紋中心的實時高精度提取,本文採用了極值法、閾值法和灰度重心法相結合的中心線提取方法。利用現場可編程門陣列器件(FPGA)的流水線技術以及並行技術的硬體設計來完成運算,保證了光條紋中心點的實時準確提取。
  • 使用verilogHDL實現乘法器
    使用verilogHDL實現乘法器 電子發燒友 發表於 2018-12-19 13:30:25 本文在設計實現乘法器時,採用了4-2和5-2混合壓縮器對部分積進行壓縮
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。