基於FPGA的可擴展高速FFT處理器的設計與實現

2020-12-17 電子產品世界

摘 要:本文提出了基於FPGA實現傅立葉變換點數可靈活擴展的流水線FFT處理器的結構設計以及各功能模塊的算法實現,包括高組合數FFT算法的流水線實現結構、級間混序讀/寫RAM地址規律、短點數FFT陣列處理結構以及補碼實現CORDIC算法的流水線結構等。利用FPGA實現的各功能模塊組裝了64點FFT處理器。從其計算性能可知,在輸入數據速率為20 MHz時,利用此結構實現的FFT處理器計算1 024點FFT的運算時間約為52μs。
關鍵詞:快速傅立葉變換;處理器;坐標旋轉數字計算機;現場可編程門陣列;設計

一、引言
  
DFT(離散傅立葉變換)作為將信號從時域轉換到頻域的基本運算,在各種數位訊號處理中起著核心作用,其快速算法FFT(快速傅立葉變換)在無線通信、語音識別、圖像處理和頻譜分析等領域有著廣泛的應用。用大規模集成電路FPGA(現場可編程門陣列)來實現FFT算法時,需要重點考慮的不再是算法運算量,而是算法的複雜性、規整性和模塊化,因為算法的簡單性和規整性將更適合大規模集成,更方便於版圖設計,而算法的模塊化更有利於FFT處理器的靈活擴展。組合數FFT算法和CORDIC(坐標旋轉數字計算機)算法結合起來,在計算長點數、可擴展FFT時具有較大的優越性1,2。而面向高速、大容量數據流的FFT的實時處理,可以通過VLSI(超大規模集成電路)器件的並行處理或多級流水線處理等來達到。特別是多級流水線處理的FFT結構使得基於FPGA器件的FFT處理器完成不同點數的FFT計算時可以通過增減模塊級數很容易地實現。

二、組合數N=r1r2點混合基FFT原理
  
計算N點DFT:
  
  式中k=0,1,…,N-1。
  若N=r1r2的組合數,可將n(n<N)表示為
  
  式(2)的意義在於,計算組合數N=r1r2點DFT,等價於先求出r?2組r?1點的DFT,其結果經過對應旋轉因子的相位旋轉後,再計算r1組r2點的DFT。實際應用中,DFT往往用它的快速算法FFT實現,因而式(2)中的r1點DFT和r2點DFT都用r1點FFT和r2點FFT實現。

三、可擴展FFT處理器實現結構
  
根據式(2)的FFT算法原理設計FFT處理器的可擴展結構如圖1所示。

  採用流水線模塊化級聯結構,把FFT處理器劃分成短點數FFT、級間混序RAM和相位旋轉等功能模塊,設計的各功能模塊可以重複利用,通過復用或增減各功能模塊可以靈活改變FFT處理器的計算規模,而且不增加設計量。在圖1結構中,當Li=1時,就演變成了基2 FFT;當Li=2時,就演變成了基4 FFT;同理,當Li≠Lj時,就演變成了高組合數的混合基FFT。

1.短點數FFT陣列結構

 
-Tukey算法結構實現時,有大量的複數乘法實際上轉化為加減運算,所以用陣列結構實現不但具有速度快的優點,而且所用器件資源也減少很多,通過對陣列結構短點數FFT進行時分復用,可以提高運算單元的使用效率。

2.
相位旋轉運算單元
  實現短點數FFT級間相位旋轉,採用ROM存儲旋轉因子與數據復乘的傳統方法,不僅涉及乘法運算,而且會消耗大量存儲器資源。

  利用CORDIC算法實現組合數FFT級間數據的相位旋轉,把乘法轉化成加減法運算,適合FPGA的大規模集成。可以設計出統一結構的CORDIC處理器模塊,重複利用於不同級間實現相位旋轉,而且其控制邏輯非常簡單。

  (1)CORDIC算法原理
  複數P=x+jy旋轉角度θ得到Q的表達式:
  
  如果旋轉角度θ可以分解成n個小角度φi之和,即:
  
公式:
  

  
(2)CORDIC處理器結構設計
  本文提出了一種流水線CORDIC處理器結構的解決方案。實現式子(4)的迭代運算時採用補碼移位和補碼加減運算,可以減少大量求補運算,其迭代結構如圖2所示。

??

  
前者在於左移補零的位數的不同,這樣,只需要改變n0k0的放大倍數(改變左移低位補零的位數),就可以把同一方向向量功能模塊級聯到圖1 FFT處理器的不同級間來計算CORDIC處理器的MSBi,這就大大地減小了重複設計,其迭代結構如圖3所示。

3.RAM結構及其級間數據混序用流水線讀/寫RAM地址發生器的設計
  設計的RAM,每個存儲單元為32 bit,高16位為複數的實部,低16位為複數的虛部。輸入輸出數據接口用RAM設計為桌球結構,用兩塊相同的RAM交替讀出或交替寫入數據,這樣就放寬了對I/O操作速度的要求,使得外圍電路可以不必工作於FPGA系統時鐘。

  級與級之間數據混序用RAM設計為讀/寫RAM,對RAM同一存儲單元用兩個時鐘完成一次讀/寫操作,即用流水線讀/寫同一塊RAM來實現級與級之間的數據混序。此結構取代了用兩塊RAM完成數據混序的桌球結構的傳統方法,不涉及存儲器之間的讀寫切換,控制邏輯非常簡單,而且消耗的存儲器資源節省一半,這是實現結構可靈活擴展的高速FFT處理器的關鍵和難點。可以通過理論推導,求得第i級FFT與第i-1級FFT級間混序用RAM的奇次讀/寫地址為
  
  的基礎上向左循環移位,位長為Li-Li-1位;同時,後者又表示在前者的基礎上向左循環移位,位長為Li-Li-1位,從而形成地址的循環移位規律。把Li-1=Li和Li-1Li兩種情況統一起來,即Li-1=Li時,Li-Li-1=0,不用循環移位,只需要計數器的高Li-1位和低Li-1位進行交替。利用此地址發生規律,可以設計基於圖1結構的基2、基4等任意基x FFT以及混合基FFT級間數據混序用流水線讀/寫RAM地址發生器。

4.8
42點組合數FFT處理器的實驗結果及其分析
  我們利用FPGA實現的各功能模塊按圖1實現結構組裝了842點組合數FFT處理器,通過仿真驗證了其設計的正確性後,又在FPGA實驗板上對它進行了硬體驗證,其實驗驗證平臺如圖4所示。

  硬體驗證時採取的實驗方法是,用相同的抽樣頻率fs等間隔地抽取不同頻率單頻正弦信號相同點數64點,即固定FFT的頻率解析度fr,利用設計的64點FFT處理器計算其幅度譜,觀察其幅度譜中直流分量譜線和諧波分量譜線間隔大小的變化,把實驗結果和理論分析結果進行對照,以確認FFT處理器工作的正常與否。

  系統時鐘工作在 40.861 MHz 時,抽樣頻率為 40.861/2=20.4305 MHz,抽樣周期為1/20.4305 MHz=48.9 ns,抽取64個點的時間是48.964=3.13μs。因為每個採樣數據間隔時間是48.9μs,所以用設計的流水線方式工作的64點FFT處理器計算其幅度譜的譜線間隔也為48.9 ns。當輸入單頻正弦信號的頻率約為638.454 kHz時,其周期為1/638.454 kHz=1.567μs。用20.4305 MHz頻率抽樣,3.13μs時間內剛好在正弦信號的2個周期內抽取64點,輸入單頻正弦信號的頻率是頻率解析度319.227 kHz的2倍,直流分量為幅度譜的第1根譜線,一次諧波分量為幅度譜的第3根譜線,其理論計算結果波形如圖5所示,實驗測試結果波形及其的局部放大波形如圖6和圖7所示。



  從示波器上可以看出,橫坐標單元格間隔為1μs,FFT變換周期間隔約為3格,即約為3μs,抽取了信號波形的2個周期,64點FFT計算時間也約為3μs。

  輸入單頻正弦信號的頻率是頻率解析度319.227 kHz的2倍,直流分量為幅度譜的第1根譜線,一次諧波分量為幅度譜的第2根譜線。由於幅度譜的譜線間隔為48.9 ns,也就是說,直流分量和一次諧波分量間隔約為100 ns。從示波器上可以看出,橫坐標單元格間隔為100 ns,直流分量和一次諧波分量間隔約為100 ns,和理論分析結果一致。

四、結論
  
本文以高組合數混合基DFT算法為基礎,設計並用FPGA實現了變換點數可靈活擴展的流水線FFT處理器。輸入/輸出數據速率為20 MHz時,讀/寫RAM工作在40 MHz時鐘,計算出1 024點FFT的運算時間約為52μs。本設計採用模塊化設計結構,便於系統調試和實現,而且各設計模塊可以重複利用,避免重複相同的設計,從而縮短晶片設計開發時間,更易於FFT處理器的結構擴展。整個FFT設計結構新穎,實現容易,具有一定實用價值。

參考文獻

[1]程佩清.數位訊號處理教程[M].北京:清華大學出版社,2001.
[2]侯伯亨,顧新.VHDL硬體描述語言與數字邏輯電路設計[M].西安:西安電子科技大學出版,1999.
[3]Stephan W.Mondwurf.BENEFITS OF THE CORDIC-ALGORITHM IN A VERSATILE COFDM MODULATOR/DEMODULATOR DESIGN[A]. Fourth IEEE International Caracas Conference on Devices, Circuits and Systems[C].Aruba, April 17~19, 2002.
[4]趙忠武,陳禾,韓月秋.基於FPGA的32位浮點FFT處理器的設計[J].電訊技術,2003,43(6).
[5]Y.Ma,L.Wanhammar.A Hardware efficient control of memory addressing for high performance FFT processors[J].IEEE transactions on signal processing, 2000,48(3):917~921.
[6]J.E.Volder.The CORDIC Trigonometric Computing Technique[J]. IRE Trans. on Electronic Computers,1959,8(3):330~334.
[7]韓穎,王旭,吳嗣亮.FPGA實現高速FFT處理器的設計[J].電訊技術,2003,43(2):74~78.
[8]A.M.Despain.Fourier Transform Computers Using CORDIC Iterations[J].IEEE Trans.on Computers,1993,C-23(10):993~1001.


相關焦點

  • 基於FPGA的可配置FFT_IFFT處理器的設計與實現
    2 可配置FFT/IFFT 處理器設計2.1 FFT/IFFT 處理器整體結構可配置FFT/IFFT 處理器整體結構如圖1 所示。圖中, 基4 蝶形單元主要完成輸入的4 路並行計算。FFT_IFFT處理器是OFDM系統中數據處理的核心單元,是OFDM系統中數據正交調製和解調的關鍵。本文設計實現了一種用於P2P移動無線通信手持終端產品,採用單碟形4路並行結構,兼容802.11g協議,可配置FFT_IFFT處理器,在處理速度、實現面積、功耗方面均滿足802.11g系統及手持移動無線通信終端的要求。
  • 基於FPGA的移位寄存器流水線結構FFT處理器設計與實現
    近年來現場可編程門陣列(FPGA)的飛速發展,與DSP技術相比,由於其並行信號處理結構,使得FPGA能夠很好地適用於高速信號處理系統。由於Altera等公司研製的FFT IP核,價錢昂貴,不適合大規模應用,在特定領域中,設計適合於自己領域需要的FFT處理器是較為實際的選擇。
  • 基於FPGA的高速流水線浮點乘法器設計與實現
    因此,為了進一步提高微處 理器性能,開發高速高精度的乘法器勢在必行。同時由於基於IEEE754 標準的浮點運算具 有動態範圍大,可實現高精度,運算規律較定點運算更為簡捷等特點,浮點運算單元的設計 研究已獲得廣泛的重視。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。
  • 用matlab來實現fpga功能的設計
    FPGA具有實現高性能並行算法的能力,是構成高性能可定製數據通路處理器(數字濾波、FFT)的理想器件。如Virtex-II Pro FPGA包含高性能的可編程架構、嵌入式PowerPC處理器和3.125Gbps收發器等。本文引用地址:http://www.eepw.com.cn/article/190767.htm但是,FPGA在數位訊號處理領域的廣泛應用受限於幾個因素。
  • 基於FPGA IP核的FFT實現與改進
    FFT運算複雜,需要大量的存儲器和運算單元,其硬體實現平臺多種多樣。DSP需要外置存儲器和特定接口,限制了運算速度。ASIC雖能滿足速度要求,但其硬體電路複雜、可擴展性差、且價格昂貴。FPGA具有陝速並行運算、高集成度、低功耗等特點,且具有豐富的IP核資源,方便調用,適合FFT算法的實現。
  • 3G系統中AGC的FPGA設計實現
    2 系統總體設計    在本設計中,前端TD_SCDMA的射頻信號RF輸入後,經過MAX2392零中頻下變頻解調後進行增益處理。VGA輸出的信號經過ADC變換後就成為數字中頻信號,經RSP(接收信號處理器)處理輸出為IF數位訊號。IF信號可以經過agc控制算法處理後控制VGA的增益。
  • 基於JTAG接口實現ARM的FPGA在線配置
    SDR終端的實現往往都是基於可重配置的硬體環境,如現場可編程邏輯陣列(Field Programmable Gate Array,FPGA)、數位訊號處理器(Digital Signal Processor,DSP),而不是專用集成電路(Application Specific Integrated Circuit,ASIC)等特定的硬體電路和晶片。
  • 基於CORDIC 2FSK調製器的FPGA設計
    提出一種基於流水線CORDIC算法的2FSK調製器的FPGA實現方案,可有效地節省FPGA的硬體資源,提高運算速度。最後,給出該方案的硬體測試結果,驗證了設計的正確性。0 引言 頻移鍵控(FSK)是用不同頻率的載波來傳送數位訊號,並用數字基帶信號控制載波信號的頻率。
  • FFT實時譜分析系統的FPGA設計和實現
    整個設計採用流水線工作方式,保證了系統的速度,避免了瓶頸的出現;整個系統採用FPGA實現,實驗表明,該系統既有DSP器件實現的靈活性又有專用 FFT晶片實現的高速數據吞吐能力,可以廣泛地應用於數位訊號處理的各個領域。
  • 基於FPGA的m序列信號發生器設計
    基於FPGA與Verilog硬體描述語言設計井實現了一種數據率按步進可調、低數據誤碼率、反饋多項式為本文引用地址:http://www.eepw.com.cn/article/263588.htm    1 m序列信號發生器的組成  基於FPGA的m序列信號發生器硬體結構極其簡單,僅需兩個獨立按鍵(一個是復位按鍵與另一個控制數據率切換按鍵)、一個48 MHz的用於提供系統時鐘有源晶振、系統電源、一塊配置晶片、幾個簡單的電阻與電容即可實現。
  • 基於FPGA的RS232行列式矩陣鍵盤接口設計
    一、引言本文引用地址:http://www.eepw.com.cn/article/245960.htm本方案是用VHDL語言來實現的基於RS232按位串行通信總線的行列式矩陣鍵盤接口電路
  • 基於FPGA的航空總線協議接口設計
    由於1553B總線協議控制器基本依賴於進口的專用器件,價格昂貴,還受到限制,並且這些器件需要外圍的硬體電路配合工作,如果完成整個總線接口板的設計,還需要單獨的MCU,集成度不高,這樣就在某種程度上限制了設計能力。隨著嵌入式技術的發展,可編程片上系統設計SoPC技術已廣泛應用於諸多領域。
  • 英特爾聯合騰訊發布基於下一代至強可擴展處理器的星星海新一代...
    原標題:英特爾聯合騰訊發布基於下一代至強可擴展處理器的星星海新一代自研雙路伺服器    通信世界網消息(CWW)
  • 基於FPGA的正交數字混頻器中數控振蕩器的設計與實現
    首先推導了算法產生正餘弦信號的實現過程,然後給出了在中設計數控振蕩器的頂層電路結構,並根據算法特點在設計中引入流水線結構設計。本文引用地址:http://www.eepw.com.cn/article/201809/388994.htmCORDIC算法;/餘弦信號正交特性好等特點。而且的相位、幅度均已數位化,可以直接進行高精度的數字調製解調。
  • 美團使用第二代英特爾至強可擴展處理器加速Cellar存儲性能
    為了應對億級用戶給資料庫系統帶來的性能壓力,支撐業務創新,為用戶提供高速穩定的網際網路服務,美團將 Cellar 存儲系統伺服器中的處理器替換為第二代英特爾至強可擴展處理器,同時結合美團面向 Cellar 存儲系統進行的軟體優化,最終將資料庫性能提升 20%,幫助美團進一步優化了資料庫系統,可有效支撐未來業務的增長需求。
  • 美團使用第二代英特爾至強可擴展處理器 加速Cellar存儲性能
    為了應對億級用戶給資料庫系統帶來的性能壓力,支撐業務創新,為用戶提供高速穩定的網際網路服務,美團將 Cellar 存儲系統伺服器中的處理器替換為第二代英特爾至強可擴展處理器,同時結合美團面向 Cellar 存儲系統進行的軟體優化,最終將資料庫性能提升 20%,幫助美團進一步優化了資料庫系統,可有效支撐未來業務的增長需求。
  • 基於FPGA的任意分頻器設計
    儘管目前在大部分設計中還廣泛使用集成鎖相環(如Altera的PLL,Xilinx的DLL)來進行時鐘的分頻、倍頻以及相移設計,但是,對於時鐘要求不太嚴格的設計,通過自主設計進行時鐘分頻的實現方法仍然非常流行。首先這種方法可以節省鎖相環資源,再者這種方式只消耗不多的邏輯單元就可以達到對時鐘的操作目的。
  • 一種基於FPGA的視頻邊緣檢測系統設計
    摘要:對於視頻圖像檢測與識別的需要,提出了一種基於FPGA的視頻邊緣檢測系統設計方案,並完成系統的硬體設計。通過FPGA控制攝像頭進行視頻採集,雙埠SDRAM對圖像數據進行緩存,FPGA再對數據進行實時處理。