基于Nios的FFT算法軟硬件協(xié)同設(shè)計(jì)
摘要:在深入研究Nios自定制指令的軟硬件接口的基礎(chǔ)上,利用Matlab/DSP Builder建立快速傅里葉變換FFT核心運(yùn)算指令基本模型,然后用Altera公司提供的Singacompiler工具對(duì)其進(jìn)行編譯,產(chǎn)生 QuartusⅡ能夠識(shí)別的VHDL源程序,并將此程序在Nios中自定制成相關(guān)的FFT運(yùn)算指令。利用自定制的FFT運(yùn)算指令,在Nios中利用C語言 編寫基于Nios的FFT算法程序,實(shí)現(xiàn)了FFT運(yùn)算的軟硬件協(xié)同設(shè)計(jì)。經(jīng)測(cè)試表明,將FFT算法加入到Nios嵌入式處理器指令集中,可以幫助系統(tǒng)完成 復(fù)雜的數(shù)據(jù)處理任務(wù),增強(qiáng)Nios系統(tǒng)的實(shí)時(shí)處理能力。該設(shè)計(jì)方法打破了軟硬件間的屏障,大大加快了系統(tǒng)的功能驗(yàn)證。
關(guān)鍵詞:FFT;自定制指令;軟硬件協(xié)同設(shè)計(jì);EP2C5Q208C8
在自動(dòng)控制領(lǐng)域,往往要對(duì)被控對(duì)象進(jìn)行狀態(tài)檢測(cè),從而作出下一步的處理,達(dá)到控制的目的,因此自動(dòng)控制系統(tǒng)離不開對(duì)被控系統(tǒng)的狀態(tài)進(jìn)行監(jiān)測(cè),以便對(duì)其進(jìn)行 處理,例如滾動(dòng)軸承故障、電動(dòng)機(jī)故障等均可以利用頻譜分析法對(duì)其進(jìn)行狀態(tài)監(jiān)測(cè)和故障診斷。要檢測(cè)被控對(duì)象的狀態(tài),就離不開數(shù)字信號(hào)處理,因此,數(shù)字信號(hào)處 理應(yīng)用廣泛。并且FFT(快速傅里葉變換)促進(jìn)了數(shù)字信號(hào)處理的發(fā)展,它可應(yīng)用傅里葉變換理論所能涉及的任何領(lǐng)域。對(duì)于FFT工程的實(shí)現(xiàn)方法有軟件法和硬 件法,即通過軟件程序完成FFT運(yùn)算,這種方法可適用于各種數(shù)字信號(hào)處理的應(yīng)用場(chǎng)合,很靈活,但缺點(diǎn)是不能進(jìn)行實(shí)時(shí)處理。而使用專用硬件完成數(shù)字信號(hào)處理 的方法能夠?qū)崿F(xiàn)實(shí)時(shí)處理,但外圍電路相對(duì)復(fù)雜,不易擴(kuò)展,靈活性差,且價(jià)格昂貴。因此人們一方面尋求結(jié)構(gòu)簡(jiǎn)單、運(yùn)算速度快,存儲(chǔ)量小的FFI實(shí)現(xiàn)方法,另 一方面采用先進(jìn)的VLSI技術(shù)改進(jìn)實(shí)現(xiàn)FFT的硬件結(jié)構(gòu),將算法硬件化。
Nios嵌入式處理器是FPGA生產(chǎn)廠商Althera推出的軟核CPU,它是一種面向用戶的、可靈活定制的通用RISC嵌入式CPU。用戶可以在 Nios指令系統(tǒng)中增加用戶自定義指令,以增強(qiáng)對(duì)強(qiáng)實(shí)時(shí)軟件算法的處理能力,可以把一個(gè)復(fù)雜的標(biāo)準(zhǔn)指令序列簡(jiǎn)化為一條用硬件實(shí)現(xiàn)的單個(gè)指令。特別是在需要 使用大量FFT算法的場(chǎng)合,可以根據(jù)用戶的需要,定制專門的FFT處理器硬件和定制一些諸如復(fù)數(shù)乘法或復(fù)數(shù)加法等傳統(tǒng)運(yùn)算指令,使Nios系統(tǒng)不但具有常 規(guī)數(shù)字信號(hào)處理器功能,而且具有軟件實(shí)現(xiàn)FFT運(yùn)算處理的特點(diǎn)。
1 FFT算法原理
1.1 按時(shí)間抽取的基-2 FFT算法
設(shè)序列x(n)長(zhǎng)度為N,且滿足N=2M,M為正整數(shù)。按n的奇偶把x(n)分解為2個(gè)N/2點(diǎn)的子序列:
則可將DFT化為:
式中,X1(k)與X2(k)分別是x1(r)及x2(r)的N/2點(diǎn)DFT。
評(píng)論