DSP Builder是Ahera公司提供的一個系統級(或算法級)設計工具。它架構在多個軟件工具之上,并把系統級(算法仿真建模)和RTL級(硬件實現)兩個設計領域的設計工具連接起來,最大程度地發揮了兩種工具的優勢。DSP Builder可以幫助設計者完成基于FP-GA的DSP設計。除了圖形化的系統建模外,DSPBuilder還可以自動完成大部分的設計過程和仿真,直到把設計文件下載至DSP開發板上。該設計采用DSPBuilder開發工具,首先實現輸出頻率變化可控的直接數字合成(DDS)模塊;然后根據Chirp函數的變化規律,控制DDS的輸出頻率變化規律。 1 Chirp函數的一般特性 電磁波在傳輸過程中,經過色散介質,如不均勻的波導,在高空電離層時會發生色散現象。Chirp函數在射電天文信號的消色散處理中發揮著重要的作用,研究在FPGA中實現Chirp函數是基于FPGA的射電宇宙信號處理的重要組成部分,如圖1所示。 根據輸出頻率與當前采樣時刻對應遞變規律,Chirp函數一般分線性(Linear)Chirp函數和非線性(Nonlinear)chirp函數兩種。圖2,圖3是兩種Chirp函數在頻域上的表現圖。 從圖2,圖3可以看出,Chirp函數的頻率輸出與時間關系f-t關系可以總結為:對于線性Chirp函數,在連續域時間域內有關系式: 2 DDS模塊的設計 數字式頻率合成器(DDS)模塊的工作原理是:將0~2π的正弦函數值分為N份,將各點的幅度值存入ROM中,再用一個相位累加器每次累加相位值ωT,得到當前的相位值,通過查找ROM得到當前的幅度值,其系統框圖如圖4所示。 DDS的主要參數包括:系統時鐘頻率、頻率控制字長、頻率分辨率、ROM單元數、ROM字長。該設計的DDS是10位的,時鐘頻率為轉化為VHDL文件后的輸入時鐘頻率。這是一個很靈活的輸入頻率。在此,假設輸入頻率為fin,頻率控制字長為16位,ROM單元數為210,ROM字長為9位,而且頻率分辨率為: 式中:f為要合成的頻率;T為系統時鐘。可見,當輸入頻率控制字發生變化時,輸出頻率fout也發生相應的變化,從DDS到Chirp信號源的設計就是基于這一思想,如圖5所示。 其中,輸入端口1為初始相位控制字輸入端,它的輸入值決定了信號源的初始輸出相位。輸入口2為頻率控制字FTW輸入端,若在該輸入端寫入不同的頻率控制字值,則可以在輸出端口得到不同的輸出頻率。輸入端口3為初始頻率控制字輸入端,它的輸入值決定了信號源的初始偏置頻率。 LUT為正弦數據查找表模塊(Look Up Table)。根據DSP Builder的算法將一個完整的正弦波周期進行1 024次采樣,并存儲于LUT中。在Matlab中設置Matlab array:511*sin([0:2*pi/(2^10):2*pi]),左邊的輸入端為查找數據的地址輸入端,右邊的輸出端為離散正弦波信號輸出端。 第一個并行累加器模塊(Parallel Adder Su^rac-tor)作為相位累加器,采用Altera提供的總線結構(AltBus)模塊決定了該累加器的長度為16位,即該累加器最大可輸出范圍為216,由此決定了公式(5)。 第二個并行累加器模塊(Parallel Adder Su^ractor1)作為初相位偏置累加器,將初相位控制字與頻率控制字累加,為輸出頻率提供一個初始偏置相位。 第三個并行累加器模塊(Parallel Addersu^ractor 2)作為初始頻率偏置累加器,給輸入的頻率控制字提供一個偏置,是輸出頻率從一個用戶自己可定義的初始頻率開始變換運行。 利用總線位寬轉換模塊(Bus Conversion)只取出總線信號的高10位,用作驅動數據查找表模塊的地址驅動信號。為了方便下一步設計,將圖5封裝成子系統模塊(Subsystem Block),并命名為:DDS_Subsystem,如圖6所示。 圖6中in1為初始相位輸入端,in2為輸入頻率控制字端,in3為初始頻率輸入端。 3 變頻控制模塊的設計 根據Chirp函數在頻域上的性質,可以得出輸入控制字與輸出頻率之間的對應關系有線性和非線性兩種: 首先采用DSP Builder庫中的單步增/減子模塊(Increment/Decrement Block)建立采樣點控制字產生單元。該模塊能按照階梯式規律步進逐一產生控制字信號,并保持一段時間在模塊設置項(Clock Phase Se-lection)中設置,當增減方向(Direction)設置為Incre-ment時得時域輸出,其表現如圖7所示。 其次根據需要建立控制字變換模塊,即對Incre-ment/Decrement模塊輸出的采樣點控制字進行換算,轉化為DDS的頻率控制字。這需要根據不同Chirp函數的變化規律,例如:如果是線性頻率的輸出,則采樣點應該與輸出頻率有線性的函數對應關系;如果是非線性頻率的輸出,則采樣點應該與輸出頻率有非線性的函數對應關系。根據不同的傳輸函數建立該子模塊: 例如:fout=kn+f0。當k=3時,建立子模塊如圖8所示。 將上述模塊向上生成子模塊后,連接的整體仿真如圖9所示。 并在DDS的輸出端建立FFT觀測窗口。 4 驗證與仿真 假設現在的初始相位為0,初始頻率也為0,采樣點步進控制字設置為輸出12為步進循環增加模式。在時域輸出觀測窗口(Scope)中觀察到圖形如圖10所示。 從圖11中可見,輸出信號的頻率發生了周期性并且有規律的變化,證明了該設計能很好地實現Chirp信號源的功能。并且通過Altera DSP Builder提供的SignalComplier工具,能很輕松地生成HDL(VHDL或者Verilog HDL)代碼下載到FPGA中運行,大大簡化了FPGA設計。 5 結 語 根據Chirp函數特定的輸入/輸出(線性和非線性)關系,計算得出當前輸入字與輸出頻率的對應關系,然后設計控制字子模塊產生DDS模塊的頻率控制字,驅動DDS產生不同的輸出頻率,通過在Matlab的Simu-link環境下的仿真驗證,得出不同時刻輸出的頻譜圖,驗證了該設計能很好地實現Chirp信號源。 |