基于FPGA的FFT和IFFT IP核應用實(shí)例

發(fā)布時(shí)間:2019-8-10 14:43    發(fā)布者:rousong1989
基于FPGAFFTIFFT IP核應用實(shí)例
AT7_Xilinx開(kāi)發(fā)板(USB3.0+LVDS)資料共享
       騰訊鏈接:https://share.weiyun.com/5GQyKKc
       百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw
       提取碼:qr0t
1 關(guān)于傅里葉變換
         關(guān)于傅里葉變換,這么一個(gè)神奇的變換,其基本原理和應用在教科書(shū)、網(wǎng)絡(luò )上漫天飛舞,這里就不贅述了,以免有湊字數的嫌疑。下面我們就MatlabFPGA兩個(gè)工具雙管齊下,比對VivadoFFT IP核生成的數據。
2 Matlab產(chǎn)生測試數據,繪制cos時(shí)域和頻域波形
         使用at7_img_ex05\matlab文件夾下的Matlab源碼fft_1line.m,運行產(chǎn)生1cos波形的1000個(gè)采樣點(diǎn)數據,存儲為time_domain_cos.txt文件,該文件中每個(gè)數據位寬16bit,定點(diǎn)signed(1.15),即最高位符號位,15位小數。同時(shí),繪制出matlabcos時(shí)域和頻域的波形如下。
3 Vivado中添加配置FFT IP
         Vivado中,打開(kāi)IP Catalog,搜索FFT或者找到分類(lèi)Core à Digital Signal Processing àTransform à FFTs,即可找到免費的IPFast Fourier Transform。雙擊這個(gè)IP。
         第一個(gè)Configuration頁(yè)面如圖,可以設定IP通道數(Number of Channels)、FFT轉換長(cháng)度(Transform Length)、目標時(shí)鐘頻率(Target Clock Frequency)和FFT實(shí)現架構(Architecture Choice)等。
         如圖所示,第二個(gè)Implementation頁(yè)面,可以配置數據格式(Data Format)、縮放模式(Scaling Options)、數據末尾處理方式(Rounding Modes)、輸入數據和相位的位寬(Input Data Width)和數據輸出順序(Output Ordering)等。
         第三個(gè)Detailed Implement頁(yè)面中,可以對FPGA存儲器或乘法器相關(guān)的資源進(jìn)行選擇配置。
         在配置頁(yè)面左側,可以查看IP接口(IP Symbol)、實(shí)現信號位寬細節(Implementation Details)和輸出時(shí)延(Latency)等信息。
4 使用FPGAIP進(jìn)行FFT運算
         使用Vivado 16.2打開(kāi)at7_img_ex05下的工程,在Sources面板中,展開(kāi)Simulation Sources à sim_1,確認at7_fft_sim文件為top module(粗體顯示文件名),若不是top module,可以右鍵單擊該文件,點(diǎn)擊Set as Top菜單項。如圖,若Set as Top菜單項為灰暗不可點(diǎn)擊狀態(tài),表示當前該模塊已經(jīng)是top module。at7_fft_sim文件中用測試腳本的形式,將matlab生成的1000個(gè)點(diǎn)cos數據time_domain_cos.txt文本導入,送給FFT IP核進(jìn)行運算,輸出FFT結果的實(shí)部和虛部分別存儲在fft_result_real.txtfft_result_image.txt文本中(仿真測試結果位于at7_img_ex05\at7.sim\sim_1\behav文件夾下)。
         Flow Navigator面板中,展開(kāi)Simulation,點(diǎn)擊Run Simulation,彈出菜單中點(diǎn)擊Run Behavioral Simulation進(jìn)行仿真。
         彈出仿真界面后,如圖所示點(diǎn)擊Run All圖標運行仿真。
         仿真運行完畢,可以看到FFT的輸入數據波形和結果輸出波形如圖所示。
         可以打開(kāi)at7_img_ex05\at7.sim\sim_1\behav文件夾下fft_result_real.txtfft_result_image.txt文本,分別存儲FFT結果的實(shí)部和虛部。這里需要注意定點(diǎn)的小數位問(wèn)題。在IP核頁(yè)面左側,點(diǎn)擊Implementation Details可以看到定點(diǎn)的小數位標定。所有1024個(gè)輸入點(diǎn)的位寬定義是一樣的,所以如圖所示,只需要查看第0點(diǎn)的定點(diǎn)標定信息。
         詳細的FFT IP核配置說(shuō)明,可以參考Xilinx官方文檔pg109-xfft.pdf。
         對于仿真產(chǎn)生的fft_result_real.txtfft_result_image.txt文本,可以使用Matlab腳本draw_wave_from_txt.mat7_img_ex05\matlab文件夾下)進(jìn)行加載并繪制波形。FPGA實(shí)現的FFT運算結果,繪制波形如下?梢员葘Matlab的波形,幾乎是一致的。當然了,因為FPGA輸入數據的精度有限(從浮點(diǎn)到定點(diǎn)的精度損失),不可能完全一致。
5 使用FPGAIP進(jìn)行IFFT運算
         Sources面板中,展開(kāi)Simulation Sources à sim_1,將at7_ifft_sim.v文件設置為top module。at7_ifft_sim文件中用測試腳本的形式,在at7_fft_sim.v測試腳本產(chǎn)生的FFT結果的基礎上,繼續將此結果進(jìn)入IFFT IP核進(jìn)行IFFT運算,最終上傳IFFT的結果。輸出IFFT結果的實(shí)部存儲在ifft_result.txt文本中(仿真測試結果位于at7_img_ex05\zstar.sim\sim_1\behav文件夾下)?梢员葘@個(gè)文本和time_domain_cos.txt文本的數據,幾乎是一致的。
         xfft_0輸出的FFT結果是定點(diǎn)signed(12.15),要獲得最終的FFT結果,需要將IP核輸出的結果再除以FFT數據個(gè)數(即1024),所以我們可以認為實(shí)際的FFT結果是定點(diǎn)signed(2.25)。
而進(jìn)入xfft_1IFFT的輸入接口是定點(diǎn)signed(1.26),二者并不匹配,則我們認為輸入數據做了1位的右移,在IFFT輸出結果時(shí)要對應的左移1位。IFFT的輸出是signed(12.26),那么左移1位后,就是signed(13.25)。
AT7_Xilinx開(kāi)發(fā)板(USB3.0+LVDS)資料共享
       騰訊鏈接:https://share.weiyun.com/5GQyKKc
       百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw
       提取碼:qr0t
本文地址:http://selenalain.com/thread-567069-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页