91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

調(diào)用HLS的FFT庫實(shí)現(xiàn)N點(diǎn)FFT

Hack電子 ? 來源:Hack電子 ? 2023-07-11 10:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在HLS中用C語言實(shí)現(xiàn)8192點(diǎn)FFT,經(jīng)過測試,實(shí)驗(yàn)結(jié)果正確,但是時序約束不到100M的時鐘,應(yīng)該是設(shè)計(jì)上的延時之類的比較大,暫時放棄這個方案,調(diào)用HLS中自帶的FFT庫(hls:fft)hls_fft.h。實(shí)際上,在HLS中調(diào)用該庫實(shí)現(xiàn)FFT,其實(shí)是Vivado中的那個FFT核實(shí)現(xiàn)的,但是HLS中的配置和給定輸入輸出數(shù)據(jù)比較方便,并且對其外部封裝其他類型的總線接口非常容易。

1.hls_fft.h初探

在HLS中打開示例例程 fft_single ,注意以下幾點(diǎn):

(1)默認(rèn)設(shè)定

【1】輸入數(shù)據(jù)和輸出數(shù)據(jù)的格式固定,必須采用16位定點(diǎn)復(fù)數(shù)數(shù)據(jù),其中1bit表示整數(shù),其他的表示小數(shù)部分,即輸入數(shù)據(jù)范圍 —1 ~ 1,輸出也是 —1 ~ 1;

【2】結(jié)構(gòu)類型為流水線型;

【3】默認(rèn)點(diǎn)數(shù)1024點(diǎn),當(dāng)不是這個點(diǎn)數(shù)時,除了修改頭文件的點(diǎn)數(shù),還需要修改config里的參數(shù)才能重新配置IP核;

【4】默認(rèn)輸入輸出16位定點(diǎn),相位因子16位,如果需要改成浮點(diǎn)數(shù)輸入輸出,需要更改相位因子為24或25位,并且在config里面更改IP核的配置;

【5】HLS中的FFT的IP庫只處理復(fù)數(shù)類型complex的FFT數(shù)據(jù)。

【6】Xilinx FFT IP塊只對復(fù)數(shù)類型數(shù)據(jù)進(jìn)行操作。盡管可以對把所有虛部都設(shè)為0的復(fù)數(shù)進(jìn)行FFT,但是通過預(yù)處理數(shù)據(jù)可以更有效地執(zhí)行FFT。

【7】HLS需要bit-reverse命令數(shù)據(jù)塊后端,所說的自然順序和一個O (N)轉(zhuǎn)換適用于FFT輸出提取的頻譜數(shù)據(jù)N-point真實(shí)數(shù)據(jù)集。注意,第一個輸出兩包第0個和512(純粹的)分別輸出頻譜數(shù)據(jù)的實(shí)部和虛部。

【8】設(shè)計(jì)是完全流水線,流設(shè)計(jì)高吞吐量;用于數(shù)據(jù)的連續(xù)處理,但具有節(jié)流功能(如果輸入停止,則停止)。

【9】AXI4-Stream接口用于連接IP Integrator (IPI)中的所有塊。

(2)在testbench中自己給輸入信號進(jìn)行測試,先給定一個正弦信號,注意下面的賦值,在2016.2版本是可以直接給復(fù)數(shù)的實(shí)部和虛部賦值的,但是2018.2這種方式會報錯,需要采用下面的賦值函數(shù)來給一個復(fù)數(shù)賦值

043befd2-1f8f-11ee-962d-dac502259ad0.png

(3)scale放縮因子的設(shè)定 如果不設(shè)置放縮因子,輸入上述 —1 ~ 1的正弦信號后,輸出結(jié)果應(yīng)該為

0457b064-1f8f-11ee-962d-dac502259ad0.png

可以看到,最大值在x[100]處,虛部已經(jīng)到-503級別,不符合輸出數(shù)據(jù)的要求,在此過程中,需要對數(shù)據(jù)按照FFT的級數(shù)縮放,如下圖所示,示例中設(shè)置1024點(diǎn)的FFT的放縮因子為0X2AB,即 10 10 10 10 11,按照每2bit合在一起,即為 2 2 2 2 3,依次相加為(2+2+2+2+3)=11,放縮倍數(shù)為2^11=2048。

04708990-1f8f-11ee-962d-dac502259ad0.png

具體scale的設(shè)置詳見PG109,翻譯過來就是:

對于突發(fā)I/O架構(gòu),每個階段的擴(kuò)展調(diào)度由最低位的兩個LSBs指定,第一個階段的擴(kuò)展調(diào)度由兩個最低位LSBs指定。縮放可以指定為3、2、1或0,表示要移位的數(shù)目。例如:

【1】對于N =1024, Radix-4突發(fā)I/O是[1 0 2 3 2](從最后一級開始排序)

【2】對于N =128, x-2突發(fā)I/O或Radix-2 Lite Burst I/O,一種可能的擴(kuò)展計(jì)劃是[1 1 1 1 1 0 1 2] (從最后階段到第一階段排序)。

對于流水線并行I/O架構(gòu)(示例默認(rèn)使用流水線型),每個Radix-2階段(從兩個LSBs開始)都使用兩位指定伸縮因子。例如:

【4】N = 256的縮放調(diào)度可以是[2 2 2 3]。當(dāng)N不是4的冪時,最后階段的最大位增長為1位。例如,[0 2 2 2]或[1 2 2 2 2]對于N = 512是有效的擴(kuò)展調(diào)度,但是[2 2 2 2 2]是無效的。對于這個轉(zhuǎn)換長度,SCALE_SCH的最高位的兩個MSB只能是00或01。此字段僅適用于按比例縮放的算術(shù)(不包括未縮放unscaled、塊浮點(diǎn)或單精度float)。

048d5ade-1f8f-11ee-962d-dac502259ad0.png

2.更改配置

(1)改成8192點(diǎn)FFT(2^13)

【1】更改最大支持點(diǎn)數(shù)FFT_NFFT_MAX=13,這時候FFT_LENGTH也隨之改變,效果為該FFT支持最大8192點(diǎn)(當(dāng)設(shè)置為最大支持8192點(diǎn)時,4096/256等比8192小的點(diǎn)數(shù)也是支持的),并且本次運(yùn)行點(diǎn)數(shù)時8192點(diǎn)。

04d30534-1f8f-11ee-962d-dac502259ad0.png

【2】修改config配置信息,將修改的點(diǎn)數(shù)寫進(jìn)fft的配置,如果沒有110行的修改,那么實(shí)際上還是執(zhí)行的1024點(diǎn)的FFT。

0501d2c4-1f8f-11ee-962d-dac502259ad0.png

【3】修改放縮因子為0XAAB(8192點(diǎn)FFT,縮小8192倍,一般多少點(diǎn)設(shè)置多少倍,然后看overflow信號是否指示數(shù)據(jù)溢出,若溢出,則繼續(xù)增大縮放因子)

052c4a7c-1f8f-11ee-962d-dac502259ad0.png

此后點(diǎn)擊運(yùn)行,得到的結(jié)構(gòu)范圍在 —1 ~ 1之間,將所有數(shù)據(jù)*8192,得到正常的數(shù)據(jù),但是,因?yàn)榍懊娴姆趴s實(shí)在每一級上的累計(jì)放縮,所以存在較大的誤差累積,通過和C語言double型正常未放縮執(zhí)行的代碼對比,發(fā)現(xiàn)在輸出數(shù)據(jù)較小的地方誤差非常大,基本可以看成是錯的,在數(shù)據(jù)較大的地方,比如本例的100Hz的sin信號,在輸出xk_output[100] 處與實(shí)際結(jié)果誤差很小。

3.更改輸入輸出為float型,提高精度

對于單精度浮點(diǎn)型輸入,輸入數(shù)據(jù)時N維復(fù)數(shù)向量(雙32位浮點(diǎn)數(shù)),相位因子必須是24或者25位的定點(diǎn)數(shù)(PG109文檔)。

0564c938-1f8f-11ee-962d-dac502259ad0.png

059993f2-1f8f-11ee-962d-dac502259ad0.png

4.結(jié)果

05c4c9f0-1f8f-11ee-962d-dac502259ad0.png

05e852b2-1f8f-11ee-962d-dac502259ad0.png

0608efea-1f8f-11ee-962d-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22040

    瀏覽量

    618205
  • FFT
    FFT
    +關(guān)注

    關(guān)注

    15

    文章

    445

    瀏覽量

    60981
  • 時鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1898

    瀏覽量

    133199
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141630
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    133

    瀏覽量

    24847

原文標(biāo)題:FPGA實(shí)現(xiàn)OFDM通信——FFT與IFFT——調(diào)用HLS的FFT庫實(shí)現(xiàn)N點(diǎn)FFT(hls:fft)

文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    【安富萊——DSP教程】第32章 實(shí)數(shù)FFT實(shí)現(xiàn)

    第32章實(shí)數(shù)FFT實(shí)現(xiàn) 本章主要講解實(shí)數(shù)的浮點(diǎn)和定點(diǎn)Q31,Q15的實(shí)現(xiàn)。關(guān)于這部分的知識點(diǎn)和函數(shù)的計(jì)算結(jié)果上,官方的文檔有一些小錯誤,在章節(jié)中會跟大家詳細(xì)講述,還有一個要注意的問題
    發(fā)表于 07-06 11:29

    第28章 ST官方匯編FFT應(yīng)用

    轉(zhuǎn)dsp系列教程本章主要講解ST官方匯編FFT的應(yīng)用,包括1024點(diǎn),256點(diǎn)和64點(diǎn)FFT
    發(fā)表于 09-28 08:08

    第29章 ST官方匯編FFT實(shí)現(xiàn)IFFT

    轉(zhuǎn)dsp系列教程本章主要講解利用ST官方匯編FFT實(shí)現(xiàn)IFFT,但由于官方的FFT輸入和輸出參數(shù)都是由信號的實(shí)部和虛部兩個16位的數(shù)據(jù)組
    發(fā)表于 09-28 08:11

    第32章 實(shí)數(shù)FFT實(shí)現(xiàn)

    轉(zhuǎn)dsp系列教程本章主要講解實(shí)數(shù)的浮點(diǎn)和定點(diǎn)Q31,Q15的實(shí)現(xiàn)。關(guān)于這部分的知識點(diǎn)和函數(shù)的計(jì)算結(jié)果上,官方的文檔有一些小錯誤,在章節(jié)中會跟大家詳細(xì)講述,還有一個要注意的問題,調(diào)用實(shí)數(shù)FFT
    發(fā)表于 09-28 09:53

    HLSFFT的反向輸入算法不能實(shí)現(xiàn)

    你好, 我想在HLS實(shí)現(xiàn)反向輸入和自然輸出算法。 但是,結(jié)果始終是: 我的代碼是:void reverse_fft(compnum xin [FFT_SIZE]){ const in
    發(fā)表于 03-06 12:48

    ST官方匯編FFT的應(yīng)用

    第29章 STM32F407移植匯編定點(diǎn)FFT(64點(diǎn),256點(diǎn)和1024點(diǎn))本章主要講解ST官方匯編
    發(fā)表于 08-10 08:03

    ST官方匯編FFT的應(yīng)用

    第29章 STM32F429移植匯編定點(diǎn)FFT(64點(diǎn),256點(diǎn)和1024點(diǎn))本章主要講解ST官方匯編
    發(fā)表于 08-11 06:44

    匯編FFT的應(yīng)用

    第29章 STM32H7移植匯編定點(diǎn)FFT(64點(diǎn),256點(diǎn)和1024點(diǎn))本章主要講解ST官方匯編FF
    發(fā)表于 08-17 08:33

    2048點(diǎn)FFT在TMS320C240x定點(diǎn)DSP上的實(shí)現(xiàn)

             針對線陣CCD 輸出數(shù)據(jù)的處理需要,介紹了2048 點(diǎn)FFT 在TMS320C240x 定點(diǎn)DSP上的實(shí)現(xiàn)
    發(fā)表于 09-12 12:00 ?35次下載

    利用FFT IP Core實(shí)現(xiàn)FFT算法

    利用FFT IP Core實(shí)現(xiàn)FFT算法 摘要:結(jié)合工程實(shí)踐,介紹了一種利用FFT IP Core實(shí)現(xiàn)
    發(fā)表于 01-16 10:04 ?7095次閱讀
    利用<b class='flag-5'>FFT</b> IP Core<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>FFT</b>算法

    fft原理及實(shí)現(xiàn)

    FFT是一種DFT的高效算法,稱為快速傅立葉變換(fast Fourier transform)。FFT算法可分為按時間抽取算法和按頻率抽取算法,先簡要介紹FFT的基本原理。從DFT運(yùn)算開始,說明
    發(fā)表于 12-19 16:18 ?206次下載

    stm32 fft使用注意事項(xiàng)

    stm32 fft使用方法 與 注意事項(xiàng)
    發(fā)表于 11-02 10:55 ?0次下載

    基于STM32芯片的128點(diǎn)FFT

    STM32F103芯片使用DSP進(jìn)行FFT運(yùn)算的資料與程序。
    發(fā)表于 06-07 16:32 ?0次下載

    STM32的FFT官方資料包下載

    STM32的FFT官方資料包下載
    發(fā)表于 12-10 15:30 ?86次下載

    調(diào)用HLSFFT實(shí)現(xiàn)N點(diǎn)FFThls:fft

    HLS中用C語言實(shí)現(xiàn)8192點(diǎn)FFT,經(jīng)過測試,實(shí)驗(yàn)結(jié)果正確,但是時序約束不到100M的時鐘,應(yīng)該是設(shè)計(jì)上的延時之類的比較大,暫時放棄這個方案
    的頭像 發(fā)表于 07-07 09:08 ?3608次閱讀
    <b class='flag-5'>調(diào)用</b><b class='flag-5'>HLS</b>的<b class='flag-5'>FFT</b><b class='flag-5'>庫</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>N</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>FFT</b>(<b class='flag-5'>hls</b>:<b class='flag-5'>fft</b>)
    主站蜘蛛池模板: 日本在线不卡免 | 妇乱子伦激情 | 海外毛片 | 欧美精品久久久久久久小说 | 都市激情 亚洲 | 色丁香在线 | 欧美黑粗特黄午夜大片 | 色wwwwww| 狠狠色丁香六月色 | 性色爽爱性色爽爱网站 | 午夜久久久久久网站 | 日本免费视频 | 亚洲天堂首页 | 天天干夜夜曰 | 久久伊人男人的天堂网站 | 十三以下岁女子毛片免费播放 | 毛片在线播放网站 | 欧美一级在线全免费 | 国内黄色录像 | 国产性片在线观看 | 性久久久久 | 国产产一区二区三区久久毛片国语 | 国产手机在线国内精品 | 伊人成人在线观看 | 国产成人福利夜色影视 | 国产成人一区二区在线不卡 | 性瘾高h姚蕊全文免费阅读 性做久久久久 | 亚洲国产精品久久久久婷婷老年 | 好爽好大www视频在线播放 | 天天天色综合 | 黄色大片免费观看 | 久久久免费视频播放 | 亚洲乱亚洲乱妇41p国产成人 | 欧美黄三级在线观看 | 91伊人网| 天天躁夜夜躁狠狠躁2021 | 成人网中文字幕色 | 99r8这里精品热视频免费看 | 黄色大片a级 | 99热久久精品最新 | 日韩美女奶水喂男人在线观看 |