基于Nios的FFT算法軟硬件協同設計
2.4 FFT算法軟件設計
在NiosⅡ硬件系統設計完成后,將配置文件下載到指定的FPGA中,通過SOPC Builder軟件窗口,可進入NiosⅡIDE軟件開發環境進行軟件設計。
通過SOPC Buider軟件窗口,啟動NiosⅡIDE,然后新建工程,在新建工程的過程中,選擇剛才產生的CPU,新工程產生后,在工程添加文件,在文件中寫入程 序代碼。在軟件編程時設計者可以使用多種方式使用自定制指令,為了簡化軟件開發者使用自定義指令的編程,在生成的SDK中的.h文件中已經包含了自定義指 令的宏定義,可以直接用在C中。下面以基2,8點FFT為例加以說明。在定制了兩條復數運算指令后,可以使用C語言編程實現FFT算法。由于有基本的復數 運算指令和復數加法指令,為此采用C語言編寫程序,其算法變得相當簡單,FFT核心算法如下:

2.5 系統測試
采用Altera公司的Cyclone Ⅱ系列芯片EP2C5Q208C8。用Altera提供的Nios SDK,將編譯后的可執行代碼,通過計算機串口下載到FPGA上的Nios系統內存中去并運行,將輸出結果與Matlab仿真結果進行了比較。比較結果如 表l所示,其中參考值是用MATLAB按FFT計算得到的結果,測試值是在Nios中利用C語言編寫的FFT程序計算的結果,表中某些數據誤差較大,是因 為本系統采用定點數據精度不夠,只要增加定點數據的位數就可提高運算的精度。本文引用地址:http://www.104case.com/article/191448.htm
3 結束語
Nios是一個性價比較高的微處理器,它是以軟核的方式提供給用戶,并專為在Altera的FPGA上實現作了優化,用于SOPC(片上可編程系統)集 成,最后在FPGA上實現,通過它可以創建Nios CPU設計項目,從而為設計人員提供SOPC設計必需的軟硬件設計平臺。在定制的NiosCPU設計項目中利用Nios的用戶自定義指令功能,可以達到 FFT運算的軟硬件協同設計,實現了快速FFT的變換。由于軟件直接控制硬件,所以編譯過后的軟件調試工作,基本上都是軟硬件協同完成的。因此速度快,占 用資源少,容易擴展。
評論