我知道,我對與電子有關(guān)的所有事情都很著迷,但不論從哪個(gè)角度看,今天的現(xiàn)場可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個(gè)智能時(shí)代,在這個(gè)領(lǐng)域,想擁有一技之長的你還沒有關(guān)注FPGA,那么世界將拋棄你,時(shí)代將拋棄你。
前面的文章我們介紹了關(guān)于FFT的硬件實(shí)現(xiàn)。關(guān)于FFT的逆運(yùn)算IFFT,其實(shí)就是將實(shí)現(xiàn)FFT的過程反過來執(zhí)行就可以了。
在實(shí)現(xiàn)過程中要注意很多問題。
同 FFT一樣,效率問題。以2048點(diǎn)為例,根據(jù)理論值計(jì)算,計(jì)算一次2048點(diǎn)的IFFT的時(shí)間應(yīng)為130us。在采用流水線的方式下,實(shí)部計(jì)算和虛部計(jì)算均采用兩塊RAM實(shí)現(xiàn)流水線。

結(jié)構(gòu)如上圖。在這種方式下,F(xiàn)PGA的片上RAM會消耗很多。
為了節(jié)省RAM,可以采用一塊RAM的流水線方式。在實(shí)現(xiàn)過程中要注意對RAM操作的reading-during-write,之前的文章介紹過了。這種方式速度會降低一半。
最節(jié)省的方式是使用控制器方式,但速度更低。這里不再介紹。
上圖所示的IFFT流程,存在大量的組合邏輯,時(shí)序遠(yuǎn)遠(yuǎn)不夠,所以應(yīng)當(dāng)在組合邏輯中加入寄存器提高速度。但是,寄存器流水線的級數(shù)又影響到了讀寫兩塊RAM的切換,從而影響計(jì)算效率,所以這里值得商榷。
由于設(shè)計(jì)中RAM輸出端沒有使用REG,所以1處應(yīng)該加入REG,提高速度,否則1處會出現(xiàn)時(shí)序違規(guī),1處的組合邏輯延遲很大。

2處和3處也是值得深入考慮的地方,加法器的輸出到乘法器的輸入,以及乘法器的輸出再到加法器的輸入,均是大量的組合邏輯,設(shè)計(jì)中一定要注意,不能僅僅完成功能仿真就可以了,一定要在綜合工具下綜合一下,看看時(shí)序是否滿足。實(shí)踐中,這兩處均加入REG。
4處是否再加REG需要看綜合后的結(jié)果。根據(jù)實(shí)際分析,4處加REG會降低計(jì)算效率,讀RAM和寫RAM來不及切換,這是根據(jù)自己的設(shè)計(jì)得出的結(jié)果。
由于FFT計(jì)算過程用到乘法器,所以在IFFT中需要用到除法器。如何減少除法器使用的資源或者將除法器更改為其他邏輯實(shí)現(xiàn),需要深入探討。
-
FPGA
+關(guān)注
關(guān)注
1664文章
22508瀏覽量
639495 -
RAM
+關(guān)注
關(guān)注
8文章
1401瀏覽量
121052 -
FFT
+關(guān)注
關(guān)注
15文章
458瀏覽量
63254
原文標(biāo)題:關(guān)于硬件實(shí)現(xiàn)FFT逆運(yùn)算
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于FPGA的超高速FFT硬件實(shí)現(xiàn)
基于FPGA的FFT算法硬件實(shí)現(xiàn)
Quartus中FFT模塊中文說明
關(guān)于調(diào)用IP核實(shí)現(xiàn)FFT
FFT至簡設(shè)計(jì)法實(shí)現(xiàn)法_FFT算法_蝶形運(yùn)算_fpga
FFT 算法的一種 FPGA 實(shí)現(xiàn)
如何在FPGA上實(shí)現(xiàn)硬件上的FFT算法
怎么使用cordic旋轉(zhuǎn)方法在??VHDL中實(shí)現(xiàn)FFT?
基于FPGA的超高速FFT硬件實(shí)現(xiàn)
FPGA內(nèi)嵌的塊RAM在FFT算法中的應(yīng)用
WIMAX系統(tǒng)中可配置FFT_IFFT的實(shí)現(xiàn)
基于FPGA-IPCore的FFT仿真與硬件實(shí)現(xiàn)
關(guān)于Block RAM的寄存器輸出
采用IEEE745格式的浮點(diǎn)+ROM RAM的方式成功實(shí)現(xiàn)FFT的設(shè)計(jì)
調(diào)用HLS的FFT庫實(shí)現(xiàn)N點(diǎn)FFT
關(guān)于FFT硬件實(shí)現(xiàn),設(shè)計(jì)中RAM輸出端為何沒有使用REG
評論