基于Nios的FFT算法軟硬件協(xié)同設(shè)計(jì)
2.4 FFT算法軟件設(shè)計(jì)
在NiosⅡ硬件系統(tǒng)設(shè)計(jì)完成后,將配置文件下載到指定的FPGA中,通過SOPC Builder軟件窗口,可進(jìn)入NiosⅡIDE軟件開發(fā)環(huán)境進(jìn)行軟件設(shè)計(jì)。
通過SOPC Buider軟件窗口,啟動(dòng)NiosⅡIDE,然后新建工程,在新建工程的過程中,選擇剛才產(chǎn)生的CPU,新工程產(chǎn)生后,在工程添加文件,在文件中寫入程 序代碼。在軟件編程時(shí)設(shè)計(jì)者可以使用多種方式使用自定制指令,為了簡(jiǎn)化軟件開發(fā)者使用自定義指令的編程,在生成的SDK中的.h文件中已經(jīng)包含了自定義指 令的宏定義,可以直接用在C中。下面以基2,8點(diǎn)FFT為例加以說明。在定制了兩條復(fù)數(shù)運(yùn)算指令后,可以使用C語言編程實(shí)現(xiàn)FFT算法。由于有基本的復(fù)數(shù) 運(yùn)算指令和復(fù)數(shù)加法指令,為此采用C語言編寫程序,其算法變得相當(dāng)簡(jiǎn)單,F(xiàn)FT核心算法如下:
2.5 系統(tǒng)測(cè)試
采用Altera公司的Cyclone Ⅱ系列芯片EP2C5Q208C8。用Altera提供的Nios SDK,將編譯后的可執(zhí)行代碼,通過計(jì)算機(jī)串口下載到FPGA上的Nios系統(tǒng)內(nèi)存中去并運(yùn)行,將輸出結(jié)果與Matlab仿真結(jié)果進(jìn)行了比較。比較結(jié)果如 表l所示,其中參考值是用MATLAB按FFT計(jì)算得到的結(jié)果,測(cè)試值是在Nios中利用C語言編寫的FFT程序計(jì)算的結(jié)果,表中某些數(shù)據(jù)誤差較大,是因 為本系統(tǒng)采用定點(diǎn)數(shù)據(jù)精度不夠,只要增加定點(diǎn)數(shù)據(jù)的位數(shù)就可提高運(yùn)算的精度。本文引用地址:http://butianyuan.cn/article/191448.htm
3 結(jié)束語
Nios是一個(gè)性價(jià)比較高的微處理器,它是以軟核的方式提供給用戶,并專為在Altera的FPGA上實(shí)現(xiàn)作了優(yōu)化,用于SOPC(片上可編程系統(tǒng))集 成,最后在FPGA上實(shí)現(xiàn),通過它可以創(chuàng)建Nios CPU設(shè)計(jì)項(xiàng)目,從而為設(shè)計(jì)人員提供SOPC設(shè)計(jì)必需的軟硬件設(shè)計(jì)平臺(tái)。在定制的NiosCPU設(shè)計(jì)項(xiàng)目中利用Nios的用戶自定義指令功能,可以達(dá)到 FFT運(yùn)算的軟硬件協(xié)同設(shè)計(jì),實(shí)現(xiàn)了快速FFT的變換。由于軟件直接控制硬件,所以編譯過后的軟件調(diào)試工作,基本上都是軟硬件協(xié)同完成的。因此速度快,占 用資源少,容易擴(kuò)展。
評(píng)論