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