筆者在校的科研任務(wù),需要用FPGA搭建OFDM通信系統(tǒng),而OFDM的核心即是IFFT和FFT運算,因此本文通過Xilinx FFT IP核的使用總結(jié)給大家開個頭,詳細(xì)內(nèi)容可查看官方文檔PG109。
我們直接來看看FFT IP核配置界面:
由于OFDM接收機中大多是數(shù)據(jù)串并轉(zhuǎn)換后的連續(xù)低速并行數(shù)據(jù)流輸入FFT,故這里采用流水線結(jié)構(gòu)。之后根據(jù)OFDM子載波數(shù)選擇變換長度。該IP核僅支持50MHZ采樣率數(shù)據(jù)的流水線處理,如果數(shù)高速通信場合,可以再次將數(shù)據(jù)串并轉(zhuǎn)換用多個FFT IP核并行運算,也就是FPGA設(shè)計中常用的“面積換速度”。
第二頁中比較重要的是選擇數(shù)據(jù)格式和縮減 截斷處理。此IP核支持浮點運算,但隨之會消耗大量的硬件資源,且延遲也較大,所以多采用定點運算方式。定點運算中固定的bit位寬很容易出現(xiàn)數(shù)據(jù)溢出,在蝶形運算過程中僅保留高位而整體右移可把計算過程中增加的位寬去除掉,最后再左移即可,顯然這種做法是在犧牲計算精度來降低硬件資源。設(shè)置Scaling Options為Scaled則在FFT IP核配置通道可以自定義縮減因子。當(dāng)設(shè)置縮減位寬后,選中本頁左下角的OVFLO溢出信號,仿真過程中可以通過溢出信號確定合適的縮減因子。
第三頁主要是設(shè)置底層資源,對功能沒有多大影響。存儲部分可以用BRAM和DRAM兩種資源,這里普及下:兩者主要的區(qū)別在于BRAM是FPGA內(nèi)部專用的硬件存儲資源,用不用都在那里(你見或者不見,我就在那里,不來不去。。。好像在哪里見過),而DRAM是利用SLICEM中的LUT搭建出來的,相當(dāng)于是BRAM的補充。在存儲量較小時,DRAM可能會表現(xiàn)出更好的功耗和速率優(yōu)勢。正如官方文檔介紹的,在變換長度小于1024,即占用存儲資源少的情況下可使用DRAM。而下面的Optimize Options則可以權(quán)衡使用CLB和DSP Slices。
接口和配置可以說是所有IP核使用的重中之重。
AXI總線的統(tǒng)一封裝給IP核調(diào)用帶來了很多方便,各部分功能通道相互分開結(jié)構(gòu)非常清晰。每個通道的data以字節(jié)為單位的packet傳輸信息,如config通道信息如下:
在這一通道中要在數(shù)據(jù)進(jìn)入前設(shè)置好變換方式和縮減因子,此處配置為正變換,縮減因子[1 1 1 1]。給大家看下OFDM接收機工程中FFT運算部分的仿真波形圖:
din是DD-OFDM ADC 接收數(shù)據(jù),只有一路實部信號。dout_I,dout_Q分別是FFT運算后復(fù)數(shù)中的實部和虛部。顯然FFT運算后得到了信號的不同頻率成分,下面的dout_vld負(fù)責(zé)提取赫比特對稱中數(shù)據(jù)載波。希望本文能起到拋磚引玉的作用,歡迎交流~
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603420 -
ofdm
+關(guān)注
關(guān)注
6文章
349瀏覽量
57006 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121429 -
FFT
+關(guān)注
關(guān)注
15文章
434瀏覽量
59385 -
通信系統(tǒng)
+關(guān)注
關(guān)注
6文章
1190瀏覽量
53350
原文標(biāo)題:從Xilinx FFT IP核到FPGA實現(xiàn)OFDM
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論