《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > Vivado中FFT IP核的使用

Vivado中FFT IP核的使用

2022-09-07
來源:FPGA設(shè)計論壇
關(guān)鍵詞: FFT FPGA Vivado

  FFT(快速傅里葉變換)作為數(shù)字信號處理的核心算法具有重要的研究價值,可應(yīng)用于傅里葉變換所能涉及的任何領(lǐng)域,如圖像處理、音頻編碼、頻譜分析、雷達(dá)信號脈沖壓縮等數(shù)字信號處理領(lǐng)域。FFT的鮮明特征之一是計算離散傅里葉變換(DFT)的高效算法,把計算N點DFT的乘法運算量從N2次降低到N/2*log2N次。而采用FPGA實現(xiàn)FFT的緣由在于:FPGA具有并行處理、流水線處理、易編程、片上資源豐富等方面特點,用于實現(xiàn)高速、大點數(shù)的FFT優(yōu)勢明顯。

  本設(shè)計使用的軟件編程環(huán)境是Xilinx公司的Vivado 2018.3,筆者將從FFT IP核的創(chuàng)建,模塊文件的編寫,波形仿真等方面來具體講解FFT在Xilinx FPGA上的實現(xiàn)。

  1.FFT IP核的創(chuàng)建

  (1)在Vivado軟件主界面,打開IP Catalog,在搜索框內(nèi)輸入FFT,然后找到Digital Signal Processing->Transforms->FFTs目錄下的Fast Fourier Transform,雙擊進(jìn)入配置界面。

  微信圖片_20220907135645.jpg

 ?。?)進(jìn)入到配置界面,左邊是IP核的接口圖、實現(xiàn)的一些細(xì)節(jié)信息和FFT的延遲,右邊是Configuration、Implementation和Detailed Implementation三個標(biāo)簽卡。

  Vivado的FFT IP核支持多通道輸入(Number of Channels)和實時更改FFT的點數(shù)(Run Time Configurable Transform Length)。Configuration標(biāo)簽下可設(shè)置FFT的點數(shù)(Transform Length)和工作時鐘(Target Clock Frequency),以及選擇一種FFT結(jié)構(gòu)。FFT的結(jié)構(gòu)包括流水線Streaming、基4 Burst、基2 Burst和輕量級基2 Burst,它們的計算速度和消耗的資源依次減少,可根據(jù)工程實際進(jìn)行選擇。

  微信圖片_20220907135954.jpg

  Implementation標(biāo)簽卡下可設(shè)置FFT的數(shù)據(jù)格式為定點Fixed Point或浮點Float Point;輸出截位方式選擇:不截位(Unscaled),截位(Scaled),塊浮點(Block Floating Point);設(shè)置輸入數(shù)據(jù)的位寬和相位因子位寬。還有一些可選的附加信號,如時鐘使能(ACLKEN),復(fù)位信號(ARESETn,低有效)等?!癘utput Ordering”用以選擇FFT計算結(jié)果以自然順序(Nature Order)或位倒序(Bit/Digit Reversed Order)輸出。

  微信圖片_20220907140017.jpg

  Detailed Implementation里可設(shè)置優(yōu)化方式、存儲的類型。存儲類型分為兩種:Block RAM(塊RAM)和Distributed RAM(分布式RAM);優(yōu)化方式可選擇資源最優(yōu)或者速度最優(yōu)。

  微信圖片_20220907140042.jpg

 ?。?)配置完成后,可在Latency下看到計算fft所需的時間,可以以此衡量設(shè)計是否滿足實時處理的要求。如不滿足,可選擇性能更好的FFT結(jié)構(gòu)或選擇可以提高運算速度的優(yōu)化選項

  微信圖片_20220907140101.jpg

  2.模塊文件的編寫

  IP核工作必須要滿足一定的時序要求,所以需要將數(shù)據(jù)按照一定時序送入IP核。IP核交互是用AXI-Stream接口,關(guān)于AXI-Stream接口的時序可自行查一些相關(guān)資料,這里不做詳細(xì)介紹。簡言之,AXI-Stream接口分為主機(master)和從機(slave),主機為發(fā)起端,從機為響應(yīng)端,只有ready信號和valid信號同時為高時數(shù)據(jù)才能被有效寫入或讀出。舉個例子,主機檢測從機發(fā)出的ready信號,當(dāng)為高時將valid信號拉高即可從從機讀出或向從機寫入數(shù)據(jù)。

  1.png

2.png

3.png

4.png

5.png6.png7.png

8.png

9.png10.png

  利用modelsim進(jìn)行功能仿真時我們將仿真時長設(shè)置為20us。為了直觀驗證fft是否正確,可將輸入的時域數(shù)據(jù)的實部和做完fft后信號功率值的數(shù)據(jù)格式均設(shè)置為anolog(模擬),如下圖,可以看到fft后的功率譜為兩根獨立的譜線,分別代表50Hz和200Hz兩個頻率點,和matlab仿真結(jié)果一致。

微信圖片_20220907140259.png

微信圖片_20220907140312.jpg

  對于該IP核更復(fù)雜的應(yīng)用,大家可以閱讀Xilinx官方提供的文檔,根據(jù)自己的實際需要進(jìn)行設(shè)計。

  更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg

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