基于FPGA高精度浮點(diǎn)運(yùn)算器的FFT設(shè)計(jì)與仿真
然后尾數(shù)經(jīng)加減運(yùn)算后規(guī)格化并輸出,為了以標(biāo)準(zhǔn)浮點(diǎn)格式輸出,規(guī)格化需要前導(dǎo)零檢測。
存儲(chǔ)在ROM中,由實(shí)部cos(2×k×π/8)和虛部sin(2×k×π/8)兩部分組成,讀取由時(shí)鐘單元的信號控制。由圖2可以看出每一級參加蝶形運(yùn)算的旋轉(zhuǎn)因子不同。
(3)RAM數(shù)據(jù)地址。在整個(gè)地址單元中,分配RAM中數(shù)據(jù)的地址是重點(diǎn),8點(diǎn)蝶形運(yùn)算共需16個(gè)存儲(chǔ)單元,數(shù)據(jù)地址的產(chǎn)生遵循一定規(guī)則。例如,Butterfly的信號為“a3a2a1a0”,則x,y的地址產(chǎn)生規(guī)則如表1所示。本文引用地址:http://butianyuan.cn/article/190672.htm
數(shù)據(jù)的讀取靠時(shí)鐘信號來控制。
1.4 FFT仿真結(jié)果分析
圖7中輸入8點(diǎn)數(shù)據(jù)為[-l,1,2,-0.5,-3,-1,2,0]。仿真結(jié)果經(jīng)轉(zhuǎn)換后,用10進(jìn)制表示的最后結(jié)果為[0,3.76775-1.06065i,-8-0.5i,0.23225-1.06065i,0.5,0.23225+1.06065i,-8+0.5i.3.76775+1.06065i]。Matlab仿真后結(jié)果為[-0.5000,3.7678-1.0607i,-0.8000-0.5000i,0.2322-1.0607i,0.5000,0.2322+1.0607i,-0.8000+0.5000i,3.7678+1.0607i]兩結(jié)果很接近,誤差較小,仿真結(jié)果正確。
2 結(jié)束語
文中在分析了FFT算法后,描述了運(yùn)算的蝶形單元,地址生成單元及FFT的實(shí)現(xiàn)過程。從實(shí)際設(shè)計(jì)出發(fā),完成了基于FPGA的單精度浮點(diǎn)運(yùn)算器的FFT設(shè)計(jì),精度達(dá)到10-6。其輸出結(jié)果與Matlab仿真結(jié)果相近,達(dá)到了利用FPGA實(shí)現(xiàn)FFT的目的。
fpga相關(guān)文章:fpga是什么
評論