《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 一種高速并行FFT處理器的VLSI結(jié)構(gòu)設(shè)計(jì)

一種高速并行FFT處理器的VLSI結(jié)構(gòu)設(shè)計(jì)

2008-09-23
作者:萬(wàn)紅星, 陳 禾, 韓月秋

  摘 要: 在OFDM系統(tǒng)的實(shí)現(xiàn)中,高速FFT處理器是關(guān)鍵。在分析了基4按時(shí)域抽取快速傅立葉變換(FFT)算法特點(diǎn)的基礎(chǔ)上,研究了一種高性能FFT處理器的硬件結(jié)構(gòu)。此結(jié)構(gòu)能同時(shí)從四個(gè)并行存儲(chǔ)器中讀取蝶形運(yùn)算所需的4個(gè)操作數(shù),極大地提高了處理速度。此結(jié)構(gòu)控制單元簡(jiǎn)單,便于模塊化設(shè)計(jì)。經(jīng)硬件驗(yàn)證,達(dá)到設(shè)計(jì)要求。在系統(tǒng)時(shí)鐘為100MHz時(shí),1024點(diǎn)18位復(fù)數(shù)FFT的計(jì)算時(shí)間為13μs。
  關(guān)鍵詞: FFT 蝶形單元 塊浮點(diǎn) 流水線


  正交頻分復(fù)用OFDM(Orthogonal Frequency Division Multiplex)是近幾年興起的一種在無(wú)線信道上實(shí)現(xiàn)高速數(shù)據(jù)傳輸?shù)男录夹g(shù)。它采用多載波調(diào)制技術(shù),其最大的特點(diǎn)是傳輸速率高,對(duì)碼間干擾和信道選擇性衰落 具有很強(qiáng)的抵抗能力。在OFDM系統(tǒng)中,各子載波的調(diào)制解調(diào)采用一個(gè)實(shí)時(shí)的快速傅立葉變換(FFT)處理器實(shí)現(xiàn),因此高速FFT處理器是OFDM系統(tǒng)實(shí)現(xiàn)中的一個(gè)重要因素。目前通用的FFT模塊可以達(dá)到的速度數(shù)量級(jí)為1024點(diǎn)16位字長(zhǎng)定點(diǎn)、塊浮點(diǎn)、浮點(diǎn)運(yùn)算在幾十到數(shù)百微秒量級(jí)[1],其中采用TI公司的DSP62XX定點(diǎn)系列達(dá)到66μs量級(jí)處理速度,新近的64XX在600MHz時(shí)鐘頻率下完成1024點(diǎn)定點(diǎn)FFT的時(shí)間僅需10μs。C6701浮點(diǎn)DSP在167MHz時(shí)鐘頻率下完成32位1024點(diǎn)浮點(diǎn)FFT的運(yùn)算時(shí)間需120μs[2]。而AD公司的ADSP-21160 SHARC在100MHz下完成需要90μs。但是如果僅用于FFT處理而廢棄其他功能性價(jià)比就很低。采用Xilinx公司的FFT IP核處理,也可以達(dá)到160MHz的工作頻率[3],但由于其采用固核,外圍引腳較多不利于使用,且不利于針對(duì)特殊要求進(jìn)行修改。
  本文在分析了基4按時(shí)域分解的FFT算法特點(diǎn)的基礎(chǔ)上[4],提出了一種便于VLSI實(shí)現(xiàn)的FFT處理器結(jié)構(gòu)。處理器運(yùn)算單元的流水并行及操作數(shù)的并行讀寫保證了每個(gè)周期能夠完成一次蝶形運(yùn)算。而文獻(xiàn)[5~6]提出的地址映射算法不適用于本設(shè)計(jì)單蝶形運(yùn)算結(jié)構(gòu);文獻(xiàn)[7]中,尋址方案基于線形變換,但是需要復(fù)雜的位矩陣點(diǎn)積算法;文獻(xiàn)[8]方案做了改進(jìn),但仍然較復(fù)雜。本文提出一種完全同址的數(shù)據(jù)全并行FFT處理器設(shè)計(jì)方法。此方案僅需要一個(gè)計(jì)數(shù)器,通過(guò)簡(jiǎn)單的線形變換,即可實(shí)現(xiàn)對(duì)不同長(zhǎng)度N=4P的FFT處理。
1 原理分析
  設(shè)序列x(n)的長(zhǎng)度為N=4P,其中p為正整數(shù),則x(n)的DFT為:
  
  由上述運(yùn)算步驟可推得基4按時(shí)間抽取在第s級(jí)的蝶形運(yùn)算單元的方程為:
  
  其中s為基4 DIT算法流圖中蝶形運(yùn)算單元的級(jí)數(shù);n=b2·4s+b1;s=1,2,…,p;b1取遍0,1,…,4s-1-1;b2取遍0,1,…,4p-s-1。
  式(4)給出了DIT算法的蝶形運(yùn)算公式,由此可以得出抽取數(shù)據(jù)的規(guī)律,同時(shí)也得到了每個(gè)數(shù)據(jù)在每級(jí)蝶形運(yùn)算中相應(yīng)的旋轉(zhuǎn)因子的值,因此式(4)是VLSI實(shí)現(xiàn)基4 FFT算法的基礎(chǔ)。
  FFT運(yùn)算中與旋轉(zhuǎn)因子相乘的運(yùn)算是復(fù)數(shù)乘法。可以看出,若采用并行處理" title="并行處理">并行處理方式在一個(gè)時(shí)鐘周期" title="時(shí)鐘周期">時(shí)鐘周期內(nèi)實(shí)現(xiàn)復(fù)乘,需4個(gè)實(shí)數(shù)乘法器" title="乘法器">乘法器和2個(gè)實(shí)數(shù)加法器。存在如下等式:
  
  即可用3個(gè)實(shí)數(shù)乘法器和5個(gè)實(shí)數(shù)加法器實(shí)現(xiàn)復(fù)乘。在VLSI的實(shí)現(xiàn)中,陣列乘法器所占面積遠(yuǎn)大于加法器,故通常用式(5)完成復(fù)乘。
2 FFT處理器的硬件實(shí)現(xiàn)
  假定處理器需要做N點(diǎn)FFT變換,則基4按時(shí)域抽取FFT運(yùn)算包括lg4N級(jí)運(yùn)算,每一級(jí)包括N/4個(gè)基4蝶形運(yùn)算單元。
2.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
  FFT處理器設(shè)計(jì)中采用同址運(yùn)算有利于系統(tǒng)存儲(chǔ)器的片內(nèi)集成,從而提高FFT處理器訪問(wèn)存儲(chǔ)器的速度。對(duì)于基4 FFT處理器,一次蝶形運(yùn)算需要讀取4個(gè)操作數(shù)。因此,如能充分利用硬件的并行特點(diǎn),在一個(gè)周期內(nèi)并行讀取4個(gè)操作數(shù),計(jì)算速度將是順序處理器的4倍。
  在設(shè)計(jì)中,使用i、j遞增計(jì)數(shù)器(i表示需要做的級(jí)數(shù),j表示每一級(jí)運(yùn)算所需的存儲(chǔ)器容量)。由數(shù)據(jù)地址產(chǎn)生單元生成數(shù)據(jù)存儲(chǔ)器地址B0、B1、B2、B3,由旋轉(zhuǎn)因子地址產(chǎn)生單元生成旋轉(zhuǎn)因子存儲(chǔ)器地址C0、C1、C2。為了在一個(gè)時(shí)鐘周期內(nèi)完成一個(gè)基4蝶形運(yùn)算,采用了4個(gè)并行存儲(chǔ)器A、B、C、D存放FFT運(yùn)算的操作數(shù)。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。


2.2 數(shù)據(jù)及旋轉(zhuǎn)因子地址生成
  對(duì)于N=4P,設(shè)待變化的原始數(shù)據(jù)是按順序輸入的,由式(4)可知完成的DFT變換結(jié)果是按兩位二進(jìn)制倒序排列的,即若輸入序列的地址線每?jī)晌粸橐唤M,其序號(hào)用兩位二進(jìn)制表示為ap-1ap-2…a1a0,則輸出結(jié)果的排序?yàn)閍0a1…ap-2ap-1。每級(jí)數(shù)據(jù)及旋轉(zhuǎn)因子抽取關(guān)系如表1所示。數(shù)據(jù)A0、A1、A2、A3經(jīng)過(guò)當(dāng)前級(jí)的地址線交換器" title="交換器">交換器后得到一個(gè)蝶形運(yùn)算所對(duì)應(yīng)的4個(gè)數(shù)據(jù)的地址B0、B1、B2、B3。經(jīng)過(guò)蝶形運(yùn)算后,數(shù)據(jù)重新寫回原地址。一個(gè)基4蝶形運(yùn)算需要3個(gè)旋轉(zhuǎn)因子W1、W2、W3。地址B1、B2、B3經(jīng)過(guò)旋轉(zhuǎn)因子交換器及判決交換器(如表2所示)得到相應(yīng)的旋轉(zhuǎn)因子地址C0、C1、C2。讀寫地址及旋轉(zhuǎn)因子地址的產(chǎn)生框圖如圖2所示。


2.3 并行存儲(chǔ)結(jié)構(gòu)" title="存儲(chǔ)結(jié)構(gòu)">存儲(chǔ)結(jié)構(gòu)
  設(shè)N=2n,則數(shù)據(jù)地址產(chǎn)生單元的輸入數(shù)據(jù)Bk(k=0,1,2,3)可表示為:
  Bk=bn-1bn-2…b0??????????????? (6)
  得到存儲(chǔ)器地址mq及各存儲(chǔ)器數(shù)據(jù)地址rq對(duì)應(yīng)關(guān)系為:
  
  其中,mod表示取余運(yùn)算,⊕表示多位異或運(yùn)算,[·]表示對(duì)其中的數(shù)據(jù)取最近的小于其的整數(shù),gcd(·)表示其中兩個(gè)數(shù)的最大公約數(shù)。
  筆者采用4對(duì)RAM(一個(gè)地址位對(duì)應(yīng)一個(gè)復(fù)數(shù),實(shí)部在前,虛部在后)來(lái)存儲(chǔ)蝶形運(yùn)算中的操作數(shù)out(0)、out(1)、out(2)、out(3)。如圖3所示,數(shù)據(jù)地址為B0、B1、B2、B3。存儲(chǔ)器分類處理單元由m1m0構(gòu)成,分別得到4個(gè)地址對(duì)應(yīng)數(shù)據(jù)所在的存儲(chǔ)器號(hào)。地址交換器處理單元由rn-3rn-4…r1r0構(gòu)成,分別得到4個(gè)地址對(duì)應(yīng)數(shù)據(jù)所在存儲(chǔ)器中的地址信息。處理器在每個(gè)時(shí)鐘周期從相應(yīng)的RAM中讀取數(shù)據(jù)out(0)、out(1)、out(2)、out(3)送入基4蝶形運(yùn)算單元,如圖4。運(yùn)算結(jié)果in(0)、in(1)、in(2)、in(3)在下一個(gè)時(shí)鐘周期寫回原地址。


2.4基4蝶形單元
  蝶形單元是FFT設(shè)計(jì)的核心部分,根據(jù)式(4)、(5)可得基4蝶形單元的結(jié)構(gòu)如圖4所示。它采用流水線結(jié)構(gòu)[9],主要包括乘法器和加法器。蝶形運(yùn)算單元可在一個(gè)時(shí)鐘周期內(nèi)完成一次蝶形運(yùn)算。其中,4個(gè)操作數(shù)分別位于4個(gè)RAM中,3個(gè)旋轉(zhuǎn)因子分別位于3個(gè)ROM中。由于運(yùn)算可能產(chǎn)生溢出,所以需進(jìn)行量化[10]。本設(shè)計(jì)在每一級(jí)蝶形運(yùn)算后采用量化右移兩位處理。


3 硬件設(shè)計(jì)及性能分析
  針對(duì)本文提出的結(jié)構(gòu)采用Xilinx公司的Virtex-Ⅱ系列的xc2v250器件進(jìn)行了1024點(diǎn)FFT處理器的VLSI結(jié)構(gòu)驗(yàn)證。由于此器件包含大量的18×18位硬件乘法器、片內(nèi)可配置RAM塊以及觸發(fā)器資源,因而便于硬件設(shè)計(jì)驗(yàn)證。輸入及輸出數(shù)據(jù)為18位,當(dāng)系統(tǒng)的工作頻率為100MHz時(shí),完成1024點(diǎn)復(fù)數(shù)FFT運(yùn)算所需時(shí)間將近13μs。部分仿真波形如圖5所示。表3比較了幾種FFT處理器的性能指標(biāo)。


  比較表明,本文提出的基4并行存儲(chǔ)結(jié)構(gòu)控制部件簡(jiǎn)單,地址生成速度快,數(shù)據(jù)訪問(wèn)并行處理解決了順序訪問(wèn)的瓶頸問(wèn)題。對(duì)于各種形如N=4P的FFT運(yùn)算能夠達(dá)到極高的處理性能。
  OFDM作為一種可以有效對(duì)抗信號(hào)波形間干擾的高速傳輸技術(shù),引起了廣泛的關(guān)注。人們開始集中越來(lái)越多的精力開發(fā)OFDM技術(shù)在移動(dòng)通信領(lǐng)域的應(yīng)用,預(yù)計(jì)第三代以后的移動(dòng)通信的主流技術(shù)將是OFDM技術(shù)。OFDM技術(shù)中各載波調(diào)制解調(diào)器的實(shí)現(xiàn)需要高速的FFT處理器。本文在分析了基4按時(shí)域抽取FFT算法特點(diǎn)的基礎(chǔ)上,提出了一種高性能的FFT處理器實(shí)現(xiàn)結(jié)構(gòu)。利用硬件并行無(wú)沖突的方法來(lái)訪問(wèn)數(shù)據(jù)存儲(chǔ)器,與以往的設(shè)計(jì)相比大大提高了處理器的處理效率。同時(shí)系統(tǒng)結(jié)構(gòu)規(guī)則,便于模塊化,易于版圖設(shè)計(jì)[11]。經(jīng)由硬件驗(yàn)證,系統(tǒng)性能完全可以滿足OFDM對(duì)高速數(shù)據(jù)流的處理需求。
參考文獻(xiàn)
1 http://nova.stanford.edu/~bbass/fftinfor.htm
2 http://dspvillage.ti.com/docs/catalog/dspdetails/dspplatfor-mdetails.jhtm
3 http://www.xilinx.com/ipcenter
4 劉朝輝,韓月秋.用FPGA實(shí)現(xiàn)FFT的研究. 北京理工大學(xué)學(xué)報(bào),1999;19(2)
5 D Cohen.Simplified control of FFT hardware.IEEE Trans on Acoustics,Speech, Signal Processing,1976;24(12)
6 馬余泰.FFT處理器無(wú)沖突地址生成方法.計(jì)算機(jī)學(xué)報(bào),1995;18(11)
7 A.Norton, E.Melton.A classof Boolean linear transformations for conflict-free power-of_two stride access.in Proc.Int.Conf.Parallel Processing,St.Charles, IL,USA. 1987
8 D.T.Harper.Block,multistride vector,and FFT accesses in parallel memory systems. IEEE Trans.Paralel and Distrib.Syst.,1991;2(1)
9 Ayman M.El-Khashab.A Module Pipelined Implementa-tion of Large Fast Fourier Trasforms.IEEE Transaction on Signal Processing,2002;(39)
10 Knight W R,Kaiser R. A simple fixed-point error bound for the fast Fourier transform[J].IEEE Trans Acous-tics,Speech and Signal Proc,1979;27(6)
11 馬維楨.快速傅立葉變化的發(fā)展現(xiàn)狀.華南理工大學(xué)學(xué)報(bào),1995;5

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。