基於FPGA的移位寄存器流水線結構FFT處理器設計與實現

2021-01-10 OFweek維科網

  3具體模塊的設計

  3.1控制與地址產生模塊

  由於兩路數據同時輸入,為了防止發生兩路數據間的串擾,對數據的控制顯得極其關鍵。從上面的算法結構分析中知道,由於後級的DFT運算點數是前一級的一半,所以後一級的開關轉換周期也是前一級的一半,基於這種關係,可以使用一個8位計數器的每一位狀態來對各級開關進行控制。最高位控制第一級,同時由於上一級數據進入下一級需要一個時鐘,所以下一級的開關轉換時刻要比上一級延遲一個時鐘周期。

  對於移位寄存器,在實現時,各級的前級移位寄存器深度為N/2-1,從本質而言,是使運算開始的時鐘上升沿到來時,數據已經出現在碟算模塊輸入線上,而不需要下一個時鐘的驅動來移出寄存器,比如第二級移位寄存器的級數為63。這樣,運算周期正好是2的倍數,從而方便使用計數器的各位直接對開關進行控制。

  同時,計數器還可以用來產生所需旋轉因子的RAM地址。根據各級蝶形運算所需旋轉因子的規律,可以利用計數器的高位補零來產生查找表的地址。比如,對於第一級,因為需要在最低位第一次出現1時提供,第二次出現1時提供,…,以此類推,周期為128,所以可以使用計數器的低七位作為地址。對於第二級,由於所需要的地址為偶數,可以由計數器的[6:1]和最低位置O產生。表l為8點時使用三位計數器輸出旋轉因子的地址情況。

  

  控制和地址產生模塊的仿真結果如圖5所示,其中sel代表開關控制,addr代表產生的地址。

  

  3.2蝶形運算模塊

  蝶算模塊由一個複數加法器,一個複數減法器和一個旋轉因子的複數乘法器構成,如圖6所示。

  

  旋轉因子乘法器通常由4次實數乘法和2次加/減法運算實現,但因為cos和sin的值可以預先存儲,通過下面的算法可以簡化複數乘法器:

  (1)存儲如下三個係數:C,C+S,C-S

  (2)計算:E=X-Y和Z=C*E=C*(X-Y)

  (3)用R=(C-S)*Y+Z,I=(C+S)*X-Z,

  得到需要的結果。

  這種算法使用了3次乘法,1次加法和2次減法,但是需要使用存儲3個表的ROM資源。

  設計中數據的輸入為16位複數,所以將旋轉因子cos(2kπ/N),sin(2kπ/N)量化成帶符號數的16位二進位數後,存儲到ROM中,由於值域不同,需要注意C+S和C-S的表要比C表多1位精度。

  運算後的結果需要除以量化時乘以的倍數16b011111llllllllll。具體實現時由於除法運算在FPGA器件需要消耗較多的資源,設計中採用二進位數移位的方法來實現除法運算。為了防止數據溢出,設計對輸出結果除以2。圖7為蝶形運算模塊的RTL級結構圖。

  

  3.3倒序輸出模塊

  由頻域抽取的基-2算法可知,運算結果需要倒序輸出。可以先將結果存儲到RAM中,然後使用O~255的二進位數倒序產生RAM讀取地址,依次將結果讀出,其中實現一個8位二進位數倒序的算法如下:

  (1)將8位數字的相鄰兩位交換位置;

  (2)將相鄰的兩位看作1組,相鄰兩組交換位置;

  (3)將相鄰的4位看作1組,相鄰兩組交換位置。

  經過這樣的交換位置後,輸出即為原來8位二進位數的倒序。

  舉例對於8位二進位數10110110來說,第一次交換位置的結果是01111001,第二次交換位置的結果是11010110,最後交換位置的結果是01101101。可見正好是原來數字的倒序。

  另外,由於設計的是兩路數據同時寫入,一路數據讀出,所以讀取的頻率是寫入頻率的2倍,使用PLL實現原始時鐘的二倍頻,用來讀取RAM。倒序模塊仿真結果如圖8所示。

  

  最終生成的FFT處理器模塊圖如圖9所示。

  

  4仿真結果

  各級間數據時序情況如圖10所示,設計的FFT處理器仿真結果如圖1l所示。採用一路階梯遞增信號和另一路:XXXX信號進行仿真,通過與Matlab計算結果進行對比,結果基本一致,可以滿足系統要求。系統總的延時由延時最大的第一級決定,為第一級運算的延時加上倒序輸出的延時,總共是(256+128)×clk,相對於一般流水線結構(256×讀入周期+7×128×蝶算周期+128×讀入周期),系統延時大為減少。

  

  

  通過仿真可知,系統最大頻率由蝶形運算模塊的最大工作頻率決定。使用QuartusⅡ軟體時序仿真後,得到處理器的工作頻率為72MHz。

  5結語

  通過採用移位寄存器流水線結構,可以有效地提高FFT處理器中蝶形運算單元的效率,減少寄存器的使用數量,並且簡化了地址控制,提高處理器的工作頻率,具有良好的可擴展性,同時可以實現兩路數據的同時輸入,從而增大了一倍的數據吞吐量。對於工作頻率要求較高,數據吞吐量較大,尤其對於需要兩路數據輸入的場合,比如兩天線的MIMO-OFDM系統,具有很大的實用價值。

相關焦點

  • 基於FPGA流水線結構並行FFT的設計與實現
    FFT的FPGA實現同時具有軟體編程的靈活性和ASIC電路的快速性等優點,成為快速實時實現FFT的一種重要手段。文章意在設計一種高速率高吞吐率的FFT處理器,以滿足實時處理要求。2 結構說明2.1 流水線結構硬體結構實現FFT的常用形式有4種:遞歸結構,流水線結構,並行迭代結構和全並行結構。
  • 基於FPGA IP核的FFT實現
    目前現有的文獻大多致力於研究利用FFT算法做有關信號處理、參數估計、F+FT蝶形運算單元與地址單元設計、不同算法的FFT實現以及FFT模型優化等方面。而FPGA廠商Altera公司和Xilinx公司都研製了FFT IP核,性能非常優越。在FFT的硬體實現中,需要考慮的不僅僅是算法運算量,更重要的是算法的複雜性、規整性和模塊化,而有關利用FFT IP核實現FFT算法卻涉及不多。
  • 基於FPGA的高速流水線FFT算法實現
    與CPLD(複雜可編程邏輯器件)相比,FPGA屬寄存器豐富型結構,更加適合於完成時序邏輯控制。因此,FPGA為高速FFT算法的實現提供了一個很好的平臺。  1 基4-FFT算法基本原理  在FFT各類算法中,基2-FFT算法是最簡單的一種,但其運算量與基4-FFT算法相比則大得多,分裂基算法綜合了基4和基2算法的特點,雖然具有最少的復乘運算量,但其L蝶形運算控制的複雜性也限制了其在硬體上的實現,因此,本設計採用了基4-FFT算法結構。
  • 基於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系統及手持移動無線通信終端的要求。
  • 嵌入式DSP處理器μDSP的體系結構 六級流水線設計與指令系統闡述
    ,因此對DSP處理器的設計有不可估量的作用,而體系結構的設計是處理器設計的靈魂,處理器的設計首先從體系結構的設計開始,DSP處理器的體系結構一直緊緊圍繞著DSP算法和各種應用的不斷發展而改進和優化,隨著各種並行處理技術(VLIW,SIMD,超標量,多處理機等)、可重構技術和低功耗體系結構技術的出現,使各種新的DSP處理器體系結構不斷湧現,使得如今的DSP處理器性能不斷提高,並使它們在通信、自動控制、
  • 用FPGA實現FFT算法(圖)
    快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    本文引用地址:http://www.eepw.com.cn/article/21345.htm 本次設計採用了性價比較高的數位訊號處理晶片tms320vc5509作為語音識別處理器,具有較快的處理速度,使機器人在脫機狀態下,獨立完成複雜的語音信號處理和動作指令控制,fpga系統的開發降低了時序控制電路和邏輯電路在pcb板所佔的面積[1],使機器人的"大腦"的語音處理部分微型化、低功耗。
  • 基於改進的CORDIC算法的FFT復乘及其FPGA實現
    在FFT運算中,核心操作是蝶形運算,而蝶形運算的主要操作是向量旋轉,實現向量旋轉可用複數乘法運算來實現,但複數乘耗費了FFT運算中大量的乘法器資源。CORDIC算法只需簡單的移位與加減運算就能實現向量旋轉,具有使用資源少、硬體規模小等優勢。因此在FFT蝶形運算中用其代替傳統FFT運算中的複數乘法器,可以獲得更好的性能。
  • 基於FPGA的高速流水線浮點乘法器設計與實現
    同時由於基於IEEE754 標準的浮點運算具 有動態範圍大,可實現高精度,運算規律較定點運算更為簡捷等特點,浮點運算單元的設計 研究已獲得廣泛的重視。本文介紹了 32 位浮點乘法器的設計,採用了基4 布思算法,改進的4:2 壓縮器及布思 編碼算法,並結合FPGA自身特點,使用流水線設計技術,在實現高速浮點乘法的同時,也 使是系統具有了高穩定性、規則的結構、易於FPGA 實現及ASIC 的HardCopy 等特點。
  • 基於Spartan-3 FPGA的DSP功能實現方案
    雖然Spartan-3系列器件的價位可能較低,但它們同樣具有DSP設計所需的平臺特性。這些平臺特性能夠以較高的面積利用率實現信號處理功能,使設計達到更低價位點。  Spartan-3器件用作協處理器或預/後處理器是非常理想的,它們將運算密集型功能從可編程DSP上卸載下來以增強系統性能。
  • 移位寄存器的特點_移位寄存器工作原理
    這種移位寄存器是一維的,事實上還有多維的移位寄存器,即輸入、輸出的數據本身就是一些列位。實現這種多維移位寄存器的方法可以是將幾個具有相同位數的移位寄存器並聯起來。   移位寄存器分類   根據移位方向,常把它分成左移寄存器、右移寄存器和雙向移位寄存器三種。
  • 基於FPGA的結構光圖像中心線提取
    編者按:在線結構光視覺三維測量系統中,為了實現對結構光圖像線條紋中心的實時高精度提取,本文採用了極值法、閾值法和灰度重心法相結合的中心線提取方法。利用現場可編程門陣列器件(FPGA)的流水線技術以及並行技術的硬體設計來完成運算,保證了光條紋中心點的實時準確提取。
  • 基於高速定點FFT算法的FPGA設計方案
    在高速數位訊號處理領域,如雷達信號處理,FFT的處理速度往往是整個系統設計性能的關鍵所在。 針對高速實時信號處理的要求,軟體實現方法顯然滿足不了其需要。近年來現場可編程門陣列(FPGA)以其高性能、高靈活性、友好的開發環境、在線可編程等特點,使得基於FPGA的設計可以滿足實時數位訊號處理的要求,在市場競爭中具有很大的優勢。 在FFT算法中,數據的寬度通常都是固定的寬度。
  • 基於FPGA的可配置FFT IP核實現研究
    摘要 針對FFT算法基於FPGA實現可配置的IP核。採用基於流水線結構和快速並行算法實現了蝶形運算和4k點FFT的輸入點數、數據位寬、分解基自由配置。現場可編程邏輯陣列(FPGA)是一種可定製集成電路,具有面向數位訊號處理算法的物理結構。用FPGA實現FFT處理器具有硬體系統簡單、功耗低的優點,同時具有開發時間較短、成本較低的優勢。基於FPGA實現的數位訊號處理系統具有較高的實時性和嵌入性,並能方便地實現系統集成與功能擴展。
  • 移位寄存器的作用及應用
    這種移位寄存器是一維的,事實上還有多維的移位寄存器,即輸入、輸出的數據本身就是一些列位。實現這種多維移位寄存器的方法可以是將幾個具有相同位數的移位寄存器並聯起來。   移位寄存器原理   移位寄存器不僅能寄存數據,而且能在時鐘信號的作用下使其中的數據依次左移或右移。   四位移位寄存器的原理圖如圖所示。
  • 移位寄存器的原理
    現在小編大家知道移位寄存器嗎? 移位寄存器的原理 移位寄存器不僅能寄存數據,而且在時鐘信號的最用下使它其中的數據依次左移或者右移。 四位移位寄存器的原理:F0、F1、F2、F3是四個邊沿觸發的觸發器D,每一個觸發器的輸出端Q接到右邊一個觸發器的輸入端D。
  • 設計一個4位移位寄存器
    4位移位寄存器的設計與實現   使用ISE軟體設計並仿真,使用ISE軟體進行4位移位寄存器的設計與實現。   步驟   1. 編寫文本文件並編譯   2. 軟體仿真   3.ISE軟體是一個支持數字系統設計的開發平臺。   2. 用ISE軟體進行設計開發時基於相應器件型號的。   注意:軟體設計時選擇 的器件型號是與實際下載板上的器件型號相同。           3.
  • 分子移位寄存器,可由外部電荷控制
    勞倫斯伯克利國家實驗室和加州大學伯克利分校(UC Berkeley)的研究人員最近提出了一個設計策略,以調整石墨烯場效應電晶體中分子陣列的電荷模式。在《自然電子》雜誌上發表的一篇論文中,他們提出了一個基於這一策略的分子移位寄存器,該寄存器是通過將有機分子定位在石墨烯基器件上而製造的,具有很高的精度。
  • 基於FPGA 的二維提升小波變換IP核設計
    提出了一種高效並行的二維離散提升小波(DWT)變換結構,該結構只需要7 行數據緩存,即可實現行和列方向同時進行濾波變換。採用一種基於CSD 編碼和優化的移位加操作實現常係數乘法器,整個小波變換插入多級流水線寄存器,加快了處理速度。