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