我知道,我對與電子有關(guān)的所有事情都很著迷,但不論從哪個角度看,今天的現(xiàn)場可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個智能時代,在這個領(lǐng)域,想擁有一技之長的你還沒有關(guān)注FPGA,那么世界將拋棄你,時代將拋棄你。
前面的文章我們介紹了關(guān)于FFT的硬件實現(xiàn)。關(guān)于FFT的逆運算IFFT,其實就是將實現(xiàn)FFT的過程反過來執(zhí)行就可以了。
在實現(xiàn)過程中要注意很多問題。
同 FFT一樣,效率問題。以2048點為例,根據(jù)理論值計算,計算一次2048點的IFFT的時間應(yīng)為130us。在采用流水線的方式下,實部計算和虛部計算均采用兩塊RAM實現(xiàn)流水線。
結(jié)構(gòu)如上圖。在這種方式下,F(xiàn)PGA的片上RAM會消耗很多。
為了節(jié)省RAM,可以采用一塊RAM的流水線方式。在實現(xiàn)過程中要注意對RAM操作的reading-during-write,之前的文章介紹過了。這種方式速度會降低一半。
最節(jié)省的方式是使用控制器方式,但速度更低。這里不再介紹。
上圖所示的IFFT流程,存在大量的組合邏輯,時序遠遠不夠,所以應(yīng)當在組合邏輯中加入寄存器提高速度。但是,寄存器流水線的級數(shù)又影響到了讀寫兩塊RAM的切換,從而影響計算效率,所以這里值得商榷。
由于設(shè)計中RAM輸出端沒有使用REG,所以1處應(yīng)該加入REG,提高速度,否則1處會出現(xiàn)時序違規(guī),1處的組合邏輯延遲很大。
2處和3處也是值得深入考慮的地方,加法器的輸出到乘法器的輸入,以及乘法器的輸出再到加法器的輸入,均是大量的組合邏輯,設(shè)計中一定要注意,不能僅僅完成功能仿真就可以了,一定要在綜合工具下綜合一下,看看時序是否滿足。實踐中,這兩處均加入REG。
4處是否再加REG需要看綜合后的結(jié)果。根據(jù)實際分析,4處加REG會降低計算效率,讀RAM和寫RAM來不及切換,這是根據(jù)自己的設(shè)計得出的結(jié)果。
由于FFT計算過程用到乘法器,所以在IFFT中需要用到除法器。如何減少除法器使用的資源或者將除法器更改為其他邏輯實現(xiàn),需要深入探討。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618642 -
RAM
+關(guān)注
關(guān)注
8文章
1392瀏覽量
117563 -
FFT
+關(guān)注
關(guān)注
15文章
445瀏覽量
61037
原文標題:關(guān)于硬件實現(xiàn)FFT逆運算
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于FPGA的超高速FFT硬件實現(xiàn)
基于FPGA的FFT算法硬件實現(xiàn)
Quartus中FFT模塊中文說明
關(guān)于調(diào)用IP核實現(xiàn)FFT
FFT至簡設(shè)計法實現(xiàn)法_FFT算法_蝶形運算_fpga
FFT 算法的一種 FPGA 實現(xiàn)
如何在FPGA上實現(xiàn)硬件上的FFT算法
怎么使用cordic旋轉(zhuǎn)方法在??VHDL中實現(xiàn)FFT?
基于FPGA的超高速FFT硬件實現(xiàn)
FPGA內(nèi)嵌的塊RAM在FFT算法中的應(yīng)用

WIMAX系統(tǒng)中可配置FFT_IFFT的實現(xiàn)

基于FPGA-IPCore的FFT仿真與硬件實現(xiàn)
采用IEEE745格式的浮點+ROM RAM的方式成功實現(xiàn)FFT的設(shè)計

評論