基于FPGA的級(jí)聯(lián)結(jié)構(gòu)FFT處理器的優(yōu)化設(shè)計(jì)
3 存儲(chǔ)器單元
傳統(tǒng)的級(jí)聯(lián)結(jié)構(gòu)的FFT處理器的緩沖存儲(chǔ)器都是采用乒乓結(jié)構(gòu),基本思想就是用兩塊相同的RAM交替讀出或?qū)懭霐?shù)據(jù)。即其中一塊RAM在寫入數(shù)據(jù)時(shí),另一塊RAM用于讀出數(shù)據(jù)。當(dāng)用于寫入數(shù)據(jù)的RAM寫滿時(shí)交換讀寫功能。將乒乓結(jié)構(gòu)中RAM的內(nèi)部存儲(chǔ)單元地址用二進(jìn)制數(shù)a9a8a7a6a5a4a3a2a1a0表示。以寫滿其中以塊RAM為一個(gè)周期,用一個(gè)二進(jìn)制計(jì)數(shù)器m9m8m7m6m5m4m3m2m1m0生成的順序?qū)懭?,混序讀取的乒乓結(jié)構(gòu)RAM的操作地址如表1所示。本文引用地址:http://m.butianyuan.cn/article/191838.htm
表1中第一,二,四塊存儲(chǔ)器的寫操作地址和讀操作地址是可以互換的,也就是將數(shù)據(jù)混序?qū)懭耄樞蜃x取。因此,根據(jù)這個(gè)規(guī)律采用一塊可同時(shí)讀寫的雙端口RAM來(lái)實(shí)現(xiàn)第一,二,四塊存儲(chǔ)器。其基本思想就是對(duì)同一個(gè)地址進(jìn)行讀和寫。以用一塊雙端口RAM實(shí)現(xiàn)第一塊存儲(chǔ)器的為例,在第一個(gè)周期內(nèi)雙端口RAM按照地址m9msm7m6m5mdm3m2m1m0進(jìn)行寫操作,即數(shù)據(jù)是按照自然順序儲(chǔ)存的。在第二個(gè)周期按照地址m0m1m2m3m4m5m6m7msm9同時(shí)進(jìn)行讀寫操作,讀出的數(shù)據(jù)按照倒位序排列,寫入的數(shù)據(jù)按照倒位序儲(chǔ)存的。 在第三個(gè)周期按照地址m9msm7m6m5m4m3m2m1m0同時(shí)進(jìn)行讀寫操作,讀出的數(shù)據(jù)按照倒位序排列,寫入的數(shù)據(jù)是按照自然順序儲(chǔ)存的。依次類推下去,讀出的數(shù)據(jù)都是按照倒位序排列。同樣第二塊和第四塊存儲(chǔ)器的存儲(chǔ)地址也具有這樣類似的循環(huán)規(guī)律。因此只有第三塊存儲(chǔ)器需要用乒乓結(jié)構(gòu)的RAM實(shí)現(xiàn),與傳統(tǒng)所有存儲(chǔ)器都用乒乓結(jié)構(gòu)RAM實(shí)現(xiàn)相比,節(jié)省了3/8的存儲(chǔ)單元。設(shè)計(jì)中用Matlab軟件直接生成旋轉(zhuǎn)因子,并將其轉(zhuǎn)化為16位有符號(hào)定點(diǎn)數(shù)寫入MIF文件。然后用ROM直接調(diào)用MIF文件,將旋轉(zhuǎn)因子預(yù)置在ROM中。
4 仿真結(jié)果
選用Altera公司生產(chǎn)的Cyclone Ⅱ的EP2C35F484C7芯片上進(jìn)行驗(yàn)證,在QuartyusⅡ7.2軟件中進(jìn)行編譯和仿真。通過(guò)對(duì)高基核的優(yōu)化處理,該設(shè)計(jì)對(duì)邏輯單元消耗量和傳統(tǒng)用基-4算法實(shí)現(xiàn)相近,僅為4 399,但由于本文采用了高基低基組合的混合基算法,在處理1 024點(diǎn)的離散數(shù)列時(shí),處理器所分的級(jí)數(shù)僅為3級(jí),相對(duì)傳統(tǒng)的低基數(shù)算法,其實(shí)現(xiàn)減少了對(duì)緩沖存儲(chǔ)器塊數(shù)的需求;并通過(guò)對(duì)緩沖存儲(chǔ)器的優(yōu)化設(shè)計(jì),又比全部用乒乓結(jié)構(gòu)RAM實(shí)現(xiàn)的傳統(tǒng)方法節(jié)省了3/8的存儲(chǔ)單元,因此占用的存儲(chǔ)資源僅為154 048 b。仿真波形如圖5所示,該仿真結(jié)果和Matlab計(jì)算結(jié)果基本一致,存在一定的誤差是由于有限字長(zhǎng)效應(yīng)引起的。
5 結(jié) 語(yǔ)
在100 MHz的時(shí)鐘下工作,完成一次1 024點(diǎn)的FFT從輸入初始數(shù)據(jù)到運(yùn)算結(jié)果完全輸出僅需要54.48μs,且連續(xù)運(yùn)算時(shí),處理一組1 024點(diǎn)FFT的時(shí)間僅為10.24 μs,達(dá)到了高速信號(hào)處理的要求。
評(píng)論