專利名稱:一種基于802.11n的FFT/IFFT處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)中OFDM系統(tǒng)和信號處理技術(shù)領(lǐng)域,尤其涉及一種適用于無 線通信領(lǐng)域正交頻分復(fù)用(Orthogonal Frequency Division Multiplexing,OFDM)系統(tǒng)的 基于802. Iln的FFT/IFFT處理器。
背景技術(shù):
802. Iln作為一種全新的無線網(wǎng)絡(luò)協(xié)議,其傳輸速度、覆蓋范圍和兼容性等方面, 與先前的各類相關(guān)標(biāo)準(zhǔn)相比均具有質(zhì)的飛躍。802. Iln綜合采用了正交頻分復(fù)用(OFDM)調(diào) 制和多輸入多輸出(MIMO)等先進技術(shù),使無線網(wǎng)絡(luò)的傳輸速度提高到100Mb/S 600Mb/s, 傳輸距離可達數(shù)公里;獨特的雙頻帶工作模式(包含2. 4GHz和5GHz兩個工作頻段),保障 了與以往的802. lla/b/g等標(biāo)準(zhǔn)的兼容。FFT/IFFT處理器是802. Iln系統(tǒng)中的重要模塊。文獻[1]設(shè)計的FFT處理器進行 了 ASIC實現(xiàn),也為可配置,但它是針對低功耗設(shè)計,吞吐率較低,工作時鐘頻率也不高。文 獻[2]采用并行結(jié)構(gòu),消耗了大量的資源,而且位寬不可以任意配置,精度也不高。文獻[3][5]都是針對特定要求進行的設(shè)計,通用性不強,整體性能也不高。因此,設(shè)計一種高速、高吞吐率、通用性強的FFT/IFFT處理器成為802. Iln協(xié)議應(yīng) 用的關(guān)鍵。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明主要目的在于提供一種基于802. Iln的FFT/IFFT處理器,以減少硬件資 源,提高數(shù)據(jù)運算精度和吞吐率。( 二 )技術(shù)方案為達到上述目的,本發(fā)明提供了一種基于802. Iln的FFT/IFFT處理器,包括RAM、 地址產(chǎn)生模塊、順序調(diào)整模塊、控制移位模塊、指數(shù)產(chǎn)生模塊和蝶形運算單元,其中,該處理 器采用雙乒乓結(jié)構(gòu)RAM,用于實現(xiàn)數(shù)據(jù)流的緩存;地址產(chǎn)生模塊用于產(chǎn)生向RAM寫入數(shù)據(jù)和 從RAM讀出數(shù)據(jù)的地址;順序調(diào)整模塊用于對RAM中的數(shù)據(jù)進行選擇,并進行順序調(diào)整;控 制移位模塊,每一級共享一個指數(shù);指數(shù)產(chǎn)生模塊用于根據(jù)蝶形運算單元的計算結(jié)果,產(chǎn)生 每一級運算后的最大指數(shù);蝶形運算單元采用塊浮點算法,完成基4或是基2運算。上述方案中,所述該處理器采用的雙乒乓結(jié)構(gòu)RAM,一共需要32個RAM,由于采用 4路并行運算,實部和虛部分開存儲,每路需要8個RAM,為了實現(xiàn)對連續(xù)流輸入可連續(xù)流輸 出,在輸入端和輸出端均采用乒乓結(jié)構(gòu),即雙乒乓結(jié)構(gòu)RAM,32個RAM被分為4組,即RAMI、 RAM2.RAM3和RAM4,RAMI和RAM2完成對輸入數(shù)據(jù)的乒乓緩沖存儲,RAM3和RAM4完成對輸 出數(shù)據(jù)的乒乓緩沖存儲,輸入數(shù)據(jù)首先寫入RAMI,寫滿后,開始寫入RAM2,同時從RAMI中讀 出數(shù)據(jù)計算,計算的結(jié)果按照原位運算規(guī)則再寫回相應(yīng)的地址,實現(xiàn)RAM的復(fù)用,直到完成 整個運算。
上述方案中,所述蝶形運算單元采用改進的基4單元,通過選擇器控制蝶形運算 單元完成基4或是基2運算;選擇器選擇控制為1時,數(shù)據(jù)從A、B、C、D進入,經(jīng)過第一級基 2運算和第二級基2運算,完成基4運算;選擇器選擇控制為0時,數(shù)據(jù)直接經(jīng)過第二級基2 運算,完成基2運算。上述方案中,所述蝶形運算單元采用加法器和乘法器實現(xiàn)基4蝶形運算單元,復(fù) 數(shù)乘法器通過公式轉(zhuǎn)換用3個實數(shù)乘法器和5個實數(shù)加法器,實現(xiàn)復(fù)數(shù)乘法,具體包括(a+jb) X (c+jd) = (ac-bd)+j (ad+bc),需要四個實數(shù)乘法器和兩個實數(shù)加法器, 對上述公式進行轉(zhuǎn)換(a+jb) X (c+jd) = ((c-d)a+(a-b)d)+j((a-b)d+(c+d)b),需要三個實數(shù)乘法器 和五個實數(shù)加法器。上述方案中,所述蝶形運算單元采用的塊浮點算法,輸入的η位數(shù)據(jù)通過符號位 擴展為η+2位防止了計算的溢出,寫入RAM讀出后經(jīng)過移位模塊判斷取出相應(yīng)的η位進行 蝶形運算,由于一個基4蝶形運算單元中,旋轉(zhuǎn)因子實部和虛部的絕對值總是不大于1的, 故乘法運算不會引起輸出數(shù)據(jù)位數(shù)的增加,而輸入數(shù)據(jù)的加減也最多只有兩次進位,所以 蝶形運算單元的輸出用η+2位即可,指數(shù)產(chǎn)生模塊對蝶形運算單元輸出數(shù)據(jù)的最高3位進 行檢測,找出每一級應(yīng)該共享的最大指數(shù),然后反饋給控制移位模塊,在下一級讀出時進行 移位處理,重復(fù)上次運算過程,直到完成整個FFT/IFFT運算。上述方案中,所述蝶形運算單元采用的塊浮點算法,具體包括以下步驟步驟1 輸入的η位數(shù)據(jù)通過符號位擴展為η+2位,寫入RAM ;步驟2 移位模塊根據(jù)產(chǎn)生指數(shù)模塊反饋的指數(shù)信息判斷取出相應(yīng)的η位進行蝶 形運算;步驟3 蝶形運算單元的計算輸出擴展兩位,用η+2位防止了運算的溢出。產(chǎn)生指 數(shù)模塊對蝶形運算單元輸出數(shù)據(jù)的最高3位進行檢測,找出每一級應(yīng)該共享的最大指數(shù), 然后反饋給移位模塊。上述方案中,所述地址產(chǎn)生模塊采用并行無沖突地址產(chǎn)生方法,具體包括對于4 個數(shù)據(jù)并行處理的結(jié)構(gòu)要保證每次讀出的4個數(shù)據(jù)分別存儲在不同的RAM中,否則,在并行 讀數(shù)時會產(chǎn)生沖突;因此,數(shù)據(jù)開始輸入系統(tǒng)時不能依次存儲;該處理器中的地址采用二 維地址,即塊地址和點地址,由蝶形運算單元的抽取方式不難發(fā)現(xiàn),無論抽取間隔是多少, 每相鄰的四個數(shù),總是同時被讀出,可視為一組,需要同時讀出的組要放在不同的子存儲體 中,根據(jù)以上原則可以找出塊地址和點地址的產(chǎn)生規(guī)律。(三)有益效果從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、本發(fā)明提供的FFT/IFFT處理器,可廣泛適用于802. Iln等無線通信系統(tǒng)中,實 現(xiàn)高精度的FFT和IFFT變換。2、本發(fā)明提供的FFT/IFFT處理器,采用改進的基4蝶形結(jié)構(gòu),分時復(fù)用實現(xiàn)基4 和基2混合基運算,通過增加選擇器進行改進,有效的節(jié)省了資源,增強了設(shè)計點數(shù)的可配置性。3、本發(fā)明提供的FFT/IFFT處理器,采用塊浮點算法,使運算的精度得到了改善, 通過簡單的控制獲得精度的提高。
4、本發(fā)明提供的FFT/IFFT處理器,對數(shù)據(jù)流的緩存利用RAM的乒乓結(jié)構(gòu)有效地 實現(xiàn)對連續(xù)流的處理,不僅能夠?qū)崿F(xiàn)64點和128點的FFT運算,通過端口的簡單配置實現(xiàn) IFFT運算,位寬根據(jù)實際系統(tǒng)要求任意配置,實現(xiàn)針對特定系統(tǒng)應(yīng)用場景的不同硬件開銷。5、本發(fā)明提供的FFT/IFFT處理器,可廣泛應(yīng)用在無線通信系統(tǒng)中,具備資源少, 精度高、吞吐率高、并可根據(jù)系統(tǒng)要求任意配置位寬等特點。
圖1是本發(fā)明提供的FFT/IFFT處理器的結(jié)構(gòu)示意圖;圖2是本發(fā)明提供的FFT/IFFT處理器中蝶形運算單元的結(jié)構(gòu)示意圖;圖3是本發(fā)明提供的FFT/IFFT處理器中輸入輸出RAM乒乓結(jié)構(gòu)的示意圖;圖4是本發(fā)明提供的FFT/IFFT處理器中輸入輸出RAM乒乓結(jié)構(gòu)的時序圖;圖5是本發(fā)明提供的FFT/IFFT處理器中塊浮點算法實現(xiàn)的結(jié)構(gòu)示意圖;圖6是本發(fā)明提供的FFT/IFFT處理器中并行地址產(chǎn)生的示意圖;圖7是本發(fā)明提供的FFT/IFFT處理器中MATLAB的仿真圖;圖8是本發(fā)明提供的FFT/IFFT處理器中FFT/IFFT處理器的版圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照 附圖,對本發(fā)明進一步詳細說明。本發(fā)明提供的FFT/IFFT處理器,采用單蝶形4路并行處理,能實現(xiàn)64點和1 點 的FFT/IFFT變換,位寬可根據(jù)系統(tǒng)要求任意配置,測試結(jié)果表明了設(shè)計的正確性,速度、吞 吐率滿足802. Iln系統(tǒng)的要求。運算單元采用一種改進的基4蝶形結(jié)構(gòu),分時復(fù)用實現(xiàn)基4 和基2混合基運算,與傳統(tǒng)的4路并行方法相比,需要更少的硬件資源。采用了塊浮點算法 提高數(shù)據(jù)運算的精度。對數(shù)據(jù)流的緩存利用RAM的乒乓結(jié)構(gòu)有效地實現(xiàn)對連續(xù)流的處理。 能夠?qū)崿F(xiàn)64點和128點的FFT運算,通過端口的簡單配置實現(xiàn)IFFT運算,位寬也可以根據(jù) 實際系統(tǒng)要求任意配置。本設(shè)計在SMIC 0. 13um CMOS工藝下綜合面積為0. 49mm2。最高工 作頻率為MOMHz,此時功耗為lllmW。完成64點FFT/IFFT運算只需63個時鐘周期,完成 128點FFT/IFFT運算只需144個時鐘周期。本發(fā)明的主要貢獻是采用了雙乒乓RAM結(jié)構(gòu)、改進的蝶形運算單元、混合基運算 和塊浮點算法,很好的解決了連續(xù)流的實時處理、傳統(tǒng)的FFT/IFFT處理器資源大、精度低 以及運算時間過長等問題,可直接使用于802. lla/n的OFDM系統(tǒng)。下面詳細介紹混合基FFT/IFFT算法。對于N點有限長序列,其FFT為
權(quán)利要求
1.一種基于802. Iln的FFT/IFFT處理器,其特征在于,包括RAM、地址產(chǎn)生模塊、順序 調(diào)整模塊、控制移位模塊、指數(shù)產(chǎn)生模塊和蝶形運算單元,其中,該處理器采用雙乒乓結(jié)構(gòu) RAM,用于實現(xiàn)數(shù)據(jù)流的緩存;地址產(chǎn)生模塊用于產(chǎn)生向RAM寫入數(shù)據(jù)和從RAM讀出數(shù)據(jù)的 地址;順序調(diào)整模塊用于對RAM中的數(shù)據(jù)進行選擇,并進行順序調(diào)整;控制移位模塊,每一 級共享一個指數(shù);指數(shù)產(chǎn)生模塊用于根據(jù)蝶形運算單元的計算結(jié)果,產(chǎn)生每一級運算后的 最大指數(shù);蝶形運算單元采用塊浮點算法,完成基4或是基2運算。
2.根據(jù)權(quán)利要求1所述的基于802.Iln的FFT/IFFT處理器,其特征在于,所述該處理 器采用的雙乒乓結(jié)構(gòu)RAM,一共需要32個RAM,由于采用4路并行運算,實部和虛部分開存 儲,每路需要8個RAM,為了實現(xiàn)對連續(xù)流輸入可連續(xù)流輸出,在輸入端和輸出端均采用乒 乓結(jié)構(gòu),即雙乒乓結(jié)構(gòu)RAM,32個RAM被分為4組,即RAM1、RAM2、RAM3和RAM4,RAMI和RAM2 完成對輸入數(shù)據(jù)的乒乓緩沖存儲,RAM3和RAM4完成對輸出數(shù)據(jù)的乒乓緩沖存儲,輸入數(shù)據(jù) 首先寫入RAMI,寫滿后,開始寫入RAM2,同時從RAMI中讀出數(shù)據(jù)計算,計算的結(jié)果按照原位 運算規(guī)則再寫回相應(yīng)的地址,實現(xiàn)RAM的復(fù)用,直到完成整個運算。
3.根據(jù)權(quán)利要求1所述的基于802.Iln的FFT/IFFT處理器,其特征在于,所述蝶形運 算單元采用改進的基4單元,通過選擇器控制蝶形運算單元完成基4或是基2運算;選擇器 選擇控制為1時,數(shù)據(jù)從A、B、C、D進入,經(jīng)過第一級基2運算和第二級基2運算,完成基4 運算;選擇器選擇控制為0時,數(shù)據(jù)直接經(jīng)過第二級基2運算,完成基2運算。
4.根據(jù)權(quán)利要求3所述的基于802.Iln的FFT/IFFT處理器,其特征在于,所述蝶形運 算單元采用加法器和乘法器實現(xiàn)基4蝶形運算單元,復(fù)數(shù)乘法器通過公式轉(zhuǎn)換用3個實數(shù) 乘法器和5個實數(shù)加法器,實現(xiàn)復(fù)數(shù)乘法,具體包括(a+jb) X (c+jd) = (aC-bd)+j(ad+bC),需要四個實數(shù)乘法器和兩個實數(shù)加法器,對上 述公式進行轉(zhuǎn)換(a+jb) X (c+jd) = ((c-d)a+(a-b)d)+j((a-b)d+(c+d)b),需要三個實數(shù)乘法器和五 個實數(shù)加法器。
5.根據(jù)權(quán)利要求1所述的基于802.Iln的FFT/IFFT處理器,其特征在于,所述蝶形運 算單元采用的塊浮點算法,輸入的η位數(shù)據(jù)通過符號位擴展為η+2位防止了計算的溢出,寫 入RAM讀出后經(jīng)過移位模塊判斷取出相應(yīng)的η位進行蝶形運算,由于一個基4蝶形運算單 元中,旋轉(zhuǎn)因子實部和虛部的絕對值總是不大于1的,故乘法運算不會引起輸出數(shù)據(jù)位數(shù) 的增加,而輸入數(shù)據(jù)的加減也最多只有兩次進位,所以蝶形運算單元的輸出用η+2位即可, 指數(shù)產(chǎn)生模塊對蝶形運算單元輸出數(shù)據(jù)的最高3位進行檢測,找出每一級應(yīng)該共享的最大 指數(shù),然后反饋給控制移位模塊,在下一級讀出時進行移位處理,重復(fù)上次運算過程,直到 完成整個FFT/IFFT運算。
6.根據(jù)權(quán)利要求1所述的基于802.Iln的FFT/IFFT處理器,其特征在于,所述蝶形運 算單元采用的塊浮點算法,具體包括以下步驟步驟1 輸入的η位數(shù)據(jù)通過符號位擴展為η+2位,寫入RAM ;步驟2 移位模塊根據(jù)產(chǎn)生指數(shù)模塊反饋的指數(shù)信息判斷取出相應(yīng)的η位進行蝶形運算;步驟3:蝶形運算單元的計算輸出擴展兩位,用η+2位防止了運算的溢出。產(chǎn)生指數(shù)模 塊對蝶形運算單元輸出數(shù)據(jù)的最高3位進行檢測,找出每一級應(yīng)該共享的最大指數(shù),然后反饋給移位模塊。
7.根據(jù)權(quán)利要求1所述的基于802. Iln的FFT/IFFT處理器,其特征在于,所述地址產(chǎn) 生模塊采用并行無沖突地址產(chǎn)生方法,具體包括對于4個數(shù)據(jù)并行處理的結(jié)構(gòu)要保證每次讀出的4個數(shù)據(jù)分別存儲在不同的RAM中, 否則,在并行讀數(shù)時會產(chǎn)生沖突;因此,數(shù)據(jù)開始輸入系統(tǒng)時不能依次存儲;該處理器中的 地址采用二維地址,即塊地址和點地址,由蝶形運算單元的抽取方式不難發(fā)現(xiàn),無論抽取間 隔是多少,每相鄰的四個數(shù),總是同時被讀出,可視為一組,需要同時讀出的組要放在不同 的子存儲體中,根據(jù)以上原則可以找出塊地址和點地址的產(chǎn)生規(guī)律。
全文摘要
本發(fā)明公開了一種基于802.11n的FFT/IFFT處理器,包括RAM、地址產(chǎn)生模塊、順序調(diào)整模塊、控制移位模塊、指數(shù)產(chǎn)生模塊和蝶形運算單元,其中,該處理器采用雙乒乓結(jié)構(gòu)RAM,用于實現(xiàn)數(shù)據(jù)流的緩存;地址產(chǎn)生模塊用于產(chǎn)生向RAM寫入數(shù)據(jù)和從RAM讀出數(shù)據(jù)的地址;順序調(diào)整模塊用于對RAM中的數(shù)據(jù)進行選擇,并進行順序調(diào)整;控制移位模塊,每一級共享一個指數(shù);指數(shù)產(chǎn)生模塊用于根據(jù)蝶形運算單元的計算結(jié)果,產(chǎn)生每一級運算后的最大指數(shù);蝶形運算單元采用塊浮點算法,完成基4或是基2運算。利用本發(fā)明,可方便的進行FFT運算和IFFT運算,解決了傳統(tǒng)的FFT/IFFT處理器資源大、精度低以及運算時間過長等問題。
文檔編號G06F17/14GK102063411SQ20091023777
公開日2011年5月18日 申請日期2009年11月17日 優(yōu)先權(quán)日2009年11月17日
發(fā)明者吳斌, 周玉梅, 姜鑫, 尉志偉 申請人:中國科學(xué)院微電子研究所