摘 要: 在數字接收機中,通常需要對采樣的數據進行一定倍數的插值。采用Altera公司的DSP Builder設計工具,在MATLAB/Simulink中建立相應的算法模型并仿真。通過引入回路硬件模塊,將硬件平臺接入由Simulink構建的仿真測試回路中進行軟硬件協同仿真,最后可以直接生成FPGA的下載文件。該方法簡化了設計流程,降低了開發成本和周期,具有廣闊的應用前景。
關鍵詞: DSP Builder;插值濾波器;FPGA;回路硬件仿真
插值濾波器是一種結構相對較為簡單、整齊劃一、占用存儲量小的濾波器,廣泛應用于數字示波器、數字通信和全數字收發機中。它不需要乘法器,因此占用硬件資源較少、實現簡單且速度較高,是高分解速率濾波器的一種非常有效的結構,在高速抽取或插值系統中是非常有效的單元[1-3]。在插值濾波器的具體實現中,人們大多使用DSP來實現,但由于DSP具有串行執行指令的特點,使得其在高速信號處理中無法滿足設計需要[4]。而高性能大規模可編程邏輯器件的出現,使得在FPGA中用軟件實現插值濾波器成為可能,而且FPGA芯片內部的資源相當豐富,并行的處理速度較快,并具有極大的靈活性,使其成為設計的首選。
在以FPGA為核心器件來設計信號處理系統時,Altera公司的DSP Builder是一款理想的系統級工具軟件,它建立了數字信號處理系統的抽象算法模型,并將抽象算法模型轉化成可靠的硬件實現。DSP Builder提供了一個從MATLAB/Simulink直接到FPGA硬件實現的設計接口,是數字信號處理高層系統設計與FPGA的橋梁。DSP Builder極大地簡化了硬件實現流程,同時提供了系統仿真測試功能,使利用FPGA設計并實現數字信號處理更加靈活,更容易開發。此外,還可以將設計模型直接編譯成能在FPGA器件中布局布線的網表文件,成功地解決了算法研究人員和硬件實現工程師之間的工作協調問題,使得用戶能夠以最快的速度將他們的算法得到硬件實現。
1 插值濾波原理
插值濾波是由N個Comb模塊(采樣頻率為fs/RD),再級聯N個Intergrator模塊級聯(采樣頻率為fs),結構如圖1所示。一般情況下插值比率為1:1、1:2、1:5、1:10、1:20、1:50。插值濾波器由一個插零模塊和一個濾波器構成。如果插值比率為1:N,則插零模塊負責在每兩個原始數據之間插入N-1個0,再通過濾波平滑波形,出來的插值后的波形的采樣率將是原始波形的N倍。
2 CIC濾波器的模型建立
2.1 數據處理寬度的確定
用FPGA實現插值濾波器時[5-8],還有一個很重要的參數需要確定,那就是寄存器的寬度(或者位數)。只有精心計算寄存器的寬度,才能在運算不溢出的情況下,最大限度地節省FPGA的硬件資源。對于插值濾波器,最終的梳狀器輸出增益G=(RD)N,其中,R為抽取因子,D為延遲數值,N為濾波器級數。假定采用二進制補碼,設輸入數據寬度為Bin,則內部數據處理的寬度Bout=Nlog2(RD)+Bin。本設計中輸入數據寬度為8,N=3,R=75,D=1(即抽取因子為75,延遲為1的三級插值濾波器),則輸出字寬W=8+log2(75×1)≈26 bit,保證不會產生運行時間溢出。因此,可以根據前面的分析建立模型。
2.2 插值濾波器的模型建立
本文以帶寬為30 kHz、采樣率為2 MHz的信號加速為采樣率為150 MHz的信號,而要求通帶衰減最大不得超過3 dB,阻帶衰減不得低于45 dB。根據前面的分析可以采用三級插值濾波器來實現。根據圖1所示的框圖在MATLAB的Simulink下,利用DSP Builder建立圖2所示的三級插值濾波器模型[5-7]。
用SignalCompiler將圖2的核心插值濾波器模型轉化為VHDL硬件描述語言,雙擊“SignalCompiler”圖標,在彈出的對話框中點擊“Compile”,DSP Builder將會調用Quartus II進行全程編譯,其過程包括創建Quartus II工程、綜合及適配。由于在DSP Builder中只有器件系列,且編譯之后沒有時序報告,因此,在用SignalCompiler將 .mdl文件轉化成HDL語言后,一般還需在Quartus II中進行進一步的設置和完整編譯。
3 仿真分析
3.1 基于DSP Builder軟硬件協同仿真
由于在Simulink下進行的仿真不涉及任何硬件(如FPGA),只能是算法級的仿真,但是如果完全放在底層設計工具Quartus II上仿真,盡管獲得了全硬件的仿真結果,但是難以獲得一些特定功能的激勵信號,因此,本仿真通過引入HIL模塊來進行軟硬件協同仿真。首先在Simulink平臺下進行軟件仿真,當結果滿足設計要求時,使用HIL將Input和Output模塊之間DSP Builder模塊生成HDL工程,從而實現基于MATLAB/DSP Builder平臺的硬件仿真。本文選用Altera公司的Cyclone II系列EP2C5Q208C8為主芯片的開發板進行仿真,仿真結果如圖3所示。由圖3可以看出,輸出端的數據比輸入端的數據整整快了75倍,仿真結果表明,三級插值濾波器的實現方法正確。
3.2 Quartus II時序仿真
采用一個幅值為127的階躍信號作為插值濾波器的輸入信號,在Quartus II開發環境下進行仿真、綜合,運行結果如圖4所示。可以看出達到了預定的設計要求。
本文提出一種根據插值濾波器數學模型,采用MATLAB/Simulink來建立相應的模型,然后利用Signal Compiler工具將其轉化為Quartus II能夠識別的VHDL程序來實現插值濾波器的方案。該方案充分發揮了FPGA器件處理速度快、實現靈活方便的特性,大大提高了整個系統的性能。采用DSP Builder系統工具,從插值濾波器建模、仿真到FPGA的具體設計都在一個環境中完成,方便了系統的更改和擴展,使得設計更加靈活、便捷,相對于傳統開發方式,具有更大的優勢。
參考文獻
[1] 姜宇柏,游思晴.軟件無線電原理與工程應用[M].北京:機械工業出版社,2007.
[2] 田耘,徐文波,張延偉.無線通信FPGA設計[M].北京:電子工業出版社,2008.
[3] 王超,董德存.GLONASS接收機快速捕獲方案及其仿真[J].鐵路計算機應用,2005,14(12):7-9.
[4] 曹琦,畢篤彥.MAC在FPGA中的高效實現[J].微計算機信息,2007(6-2):216-218.
[5] 馬濤,陳娟,單洪.基于DSP Builder的數字下變頻器的FPGA設計[J].電子技術應用,2006,(32)7:93-96.
[6] 賈雪琴,李強,王旭,等.用MATLAB在FPGA芯片中實現數字下變頻設計[J].計算機仿真,2005(12):303-306.
[7] 王飛,梁清華.基于FPGA的CIC濾波器的設計[J].遼寧工業大學學報(自然科學版),2009(4):77-79.
[8] 牛大勝,唐麗萍.積分梳狀濾波器在FPGA中的實現[J].國外電子測量技術,2006(9):48-50.