張衛(wèi)清,譚劍美,陳 菡
華東電子工程研究所,安徽合肥 230031
基于FPGA的并行掃頻DDS的實(shí)現(xiàn)
張衛(wèi)清,譚劍美,陳 菡
華東電子工程研究所,安徽合肥 230031
本文介紹了直接數(shù)字合成技術(shù)(DDS)的工作原理,深入分析了結(jié)構(gòu)組成,在傳統(tǒng)串行DDS結(jié)構(gòu)的基礎(chǔ)上,提出了一種具有掃頻功能的并行DDS結(jié)構(gòu),同時對居于CORDIC算法的相幅變換方法進(jìn)行了詳細(xì)敘述,最后對提出的并行DDS結(jié)構(gòu)進(jìn)行了理論仿真和硬件實(shí)現(xiàn),證明了該結(jié)構(gòu)在不提高DDS工作時鐘的情況下可獲得較高的輸出信號。
直接數(shù)字頻率合成器;CORDIC;并行DDS
直接數(shù)字合成技術(shù)(Direct Digital Synthesis,DDS)是由美國學(xué)者J.Tierney等在1971年提出的,它是一種全數(shù)字頻率合成技術(shù),是一種新型的頻率、相位波形合成技術(shù)。它充分利用了目前大規(guī)模集成電路的快速、低功耗、大容量、體積小等特點(diǎn)。與傳統(tǒng)的頻率合成器相比,具有相位噪聲低、頻率分辨率高、轉(zhuǎn)換迅速等優(yōu)點(diǎn),它的頻率、相位變化連續(xù)性可以用于相位及頻率調(diào)制,快速頻率變換特性可用于頻率捷變和擴(kuò)頻系統(tǒng)[1,2]。因此,DDS可廣泛地應(yīng)用于雷達(dá)、電子對抗、移動通信等領(lǐng)域。隨著大規(guī)模集成電路在工藝和材料上的不斷創(chuàng)新和近年來對其算法的不斷改進(jìn),DDS越來越因其明顯的優(yōu)勢而倍受矚目。
一個具備掃頻功能的DDS典型結(jié)構(gòu)如圖1所示,其主要由頻率累加器、相位累加器、相-幅轉(zhuǎn)換器、DAC及相應(yīng)的濾波器(低通或帶通)組成。DDS的工作原理為:對于一個給定的系統(tǒng)工作時鐘fC相位累加器在每一個時鐘上升沿與頻率控制字(K)累加一次,當(dāng)累加器完成2N(N為累加器的長度)次運(yùn)算后,相位累加器相當(dāng)于做了一次模余運(yùn)算。正弦查找表在每一個時鐘周期內(nèi),根據(jù)送給ROM的地址取出存儲在ROM表中與該地址對應(yīng)的正弦幅值,最后將該值送給DAC與LPF實(shí)現(xiàn)量化幅值到一個純凈的正弦信號間的轉(zhuǎn)換,同時正弦信號的相位及幅度可以根據(jù)需要分別進(jìn)行控制。相位累加器的作用是根據(jù)從步進(jìn)寄存器輸入的頻率控制字,以系統(tǒng)時鐘頻率fC為采樣率,在2π周期內(nèi)對相位進(jìn)行采樣。如果步長為K,采樣點(diǎn)數(shù)為
從而改變頻率控制字K就可以精確地改變頻率,從式(1)可知,可變的最小頻率間隔,即最小頻率分辨率Δfmin為:
圖1 掃頻DDS原理框圖
由DDS的原理我們知道,DDS輸出最高頻率為fC/2,因此要想獲得較高的輸出頻率,必須提高DDS系統(tǒng)工作時鐘fC,然而通常情況下受器件限制,fC不可能很高,尤其是在用FPGA實(shí)現(xiàn)DDS的情況下,因此有必要尋求另一種方法,在不顯著提高fC的情況下,獲得較高頻率的輸出信號。
讓我們再次回顧圖1所示的掃頻DDS結(jié)構(gòu),在系統(tǒng)時鐘fC的作用下,fC每觸發(fā)一次,相位累加器輸出一個N bit的相位值,我們不妨列出起始時刻相位累加器的輸出狀態(tài):
上式X(0)~X(11)為相位累加器從起始時刻開始連續(xù)12個狀態(tài)的輸出,我們可以把相位累加器輸出的值分為兩部分,一部分只與頻率字有關(guān)(記為Xk),另一部分只與斜率字有關(guān)(記為Xd),因此可以得出以下規(guī)律,
其中4n*K為加法器前一個時鐘輸出的狀態(tài),K為輸入的頻率字,因此Xk(4n),Xk(4n+1),Xk(4n+2),Xk(4n+3)四個連續(xù)的狀態(tài)就被4n*K和K兩個狀態(tài)表示出來,因此Xk的累加過程可以用圖2所示的結(jié)構(gòu)來表示
圖2 頻率字并行累加結(jié)構(gòu)框圖
同理,對于Xd(n)可以進(jìn)一步推導(dǎo)出以下公式:
其中Xd(4n-1)+4n*D為加法器前一個時鐘輸出的狀態(tài),D為輸入的掃頻斜率字,因此Xd(4n),Xd(4n+1),Xd(4n+2),Xd(4n+3)四個連續(xù)的狀態(tài)就被4n*D和D兩個狀態(tài)表示出來,因此Xd可以用圖3所示的結(jié)構(gòu)來表示
圖3 斜率字并行累加結(jié)構(gòu)框圖
因此,如圖1所示的DDS結(jié)構(gòu)中的頻率累加器和相位累加器可由圖2和圖3兩結(jié)合的結(jié)構(gòu)組成,新的并行DDS結(jié)構(gòu)如圖4所示。
圖4 掃頻并行DDS結(jié)構(gòu)框圖
我們可以看到這種結(jié)構(gòu)的優(yōu)點(diǎn)是把相位累加器和頻率累加器的內(nèi)部工作時鐘降低為fC/4,反過來也就是提高了4倍的時鐘頻率,在每輸入一個頻率字和斜率字的狀態(tài)下,4個加法器同時輸出4個連續(xù)的狀態(tài),經(jīng)過多路復(fù)用器進(jìn)行選通,保證了在外部每個fC的情況下都可以輸出一個值,這樣大幅度降低了流水線累加器在高速時鐘信號下工作所產(chǎn)生的功耗,并且提高了整個系統(tǒng)時鐘工作的頻率,提高了DDS的輸出頻率。
相位-幅度轉(zhuǎn)換方法主要有查找表,多項(xiàng)式展開法以及Cordic算法,查表法通過事先計(jì)算好正弦或余弦值,將其存儲在只讀存儲器中,然后將相位累加器輸出的相位作為地址從ROMA中通過查表獲取正弦或余弦值,其缺點(diǎn)是ROM要專用大量的片內(nèi)資源,Sunderland提出的粗、細(xì)ROM結(jié)構(gòu)[4]及其修改形式,其最高壓縮比為59:1,文獻(xiàn)[5]提出的Nicholas結(jié)構(gòu)算法是一種基于數(shù)字化優(yōu)化的方法,可以根據(jù)實(shí)際參數(shù)優(yōu)化計(jì)算出粗、細(xì)ROM的容量及數(shù)據(jù)位數(shù),其壓縮比可以達(dá)到128:1。多項(xiàng)式展開法是利用泰勒級數(shù)展開來實(shí)現(xiàn)相位幅度的轉(zhuǎn)換,取Taylor級數(shù)前三項(xiàng)分別賦予不同的權(quán)值后存于3個ROM,最后由運(yùn)算電路合成,這種方法可以得到64:1的壓縮比,但要獲得較高的精度,需要使用較高的階數(shù),電路實(shí)現(xiàn)比較復(fù)雜。CORDIC算法則是一種純算術(shù)的三角函數(shù)計(jì)算方法,它能通過簡單移位、加法等多次迭代給出精確結(jié)果,比較適合位數(shù)大于14位的DDS,同時也特別適合FPGA實(shí)現(xiàn)。CORDIC,又名坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算,是J. Voider等人于1959年在設(shè)計(jì)美國航空導(dǎo)航控制系統(tǒng)的過程中提出來的一種算法[78]。下面就簡要地介紹一下CORDIC算法的基本數(shù)學(xué)思想。
圖5 向量旋轉(zhuǎn)坐標(biāo)圖
不考慮常量C,那么式(26)可以簡化為
上式Sn={-1,1},再次回到圖5,我們假定:
起始向量OA為[Xi,Yi,θi]=[1,0,0]
終止向量 OB 為[Xj,Yj,θj]=[cosθ,sinθ,θ]
經(jīng)過一系列特定角度θn的依次旋轉(zhuǎn),由矢量OA旋轉(zhuǎn)到矢量OB即可得到cosθ,可見,CORDIC算法是通過將一個初始位置與X軸重合、方向與X軸一致、起點(diǎn)為原點(diǎn)、終點(diǎn)在單位圓上的向量繞原點(diǎn)作一系列特定角度的順時針或逆時針旋轉(zhuǎn)疊加來漸進(jìn)逼近輸入角度,從而計(jì)算出輸入角余弦值。
為了驗(yàn)證本文推導(dǎo)的具有掃頻功能的并行DDS結(jié)構(gòu)的正確性,先利用matlab對算法進(jìn)行了仿真,同時用硬件描述語言Verilog對算法進(jìn)行了實(shí)現(xiàn),最后導(dǎo)入ModemSim對該結(jié)構(gòu)進(jìn)行了仿真,仿真參數(shù)設(shè)置信號中心頻率223MHz,帶寬2.5MHz,時寬40us,DDS工作時鐘(fc)為600MHz,仿真結(jié)果如下:
圖6 線性調(diào)頻仿真結(jié)果圖
采用FPGA+DAC硬件平臺驗(yàn)證本文推導(dǎo)的并行DDS,F(xiàn)PGA為ALTERA 公司StratixⅡ 系列,型號:EP2SEF1020C4;DAC為ADI公司14位轉(zhuǎn)換率1.2GHz的器件,型號:AD9736。FPGA內(nèi)部各累加器及相幅轉(zhuǎn)換器工作時鐘為150MHz,利用FPGA內(nèi)部高速并串轉(zhuǎn)換模塊對四路相幅轉(zhuǎn)換器的輸出進(jìn)復(fù)用,實(shí)現(xiàn)了利用600MHz工作時鐘直接產(chǎn)生中心頻率為223MHz,帶寬2.5MHz,時寬40us的線性調(diào)頻信號,測試結(jié)果如圖7所示。
圖7 DAC輸出頻域信號圖
本文提出了一種新型掃頻并行DDS結(jié)構(gòu),很好地解決了在FPGA內(nèi)部采用低速時鐘產(chǎn)生高頻率信號輸出的難題,同時利用CORDIC方法實(shí)現(xiàn)了相幅轉(zhuǎn)換。本文提出的并行DDS結(jié)構(gòu)非常適合FPGA實(shí)現(xiàn),在直接信號產(chǎn)生和任意波形產(chǎn)生等系統(tǒng)中可以廣泛應(yīng)用。
[1]TierneyJ,Rader C,Gold B.A digital frequency sysnthesizer[J].IEEE Trans Audio Electroacoust,1971,54(19):48-56.
[2]VankkaJ,Halonen K.Direct digital Synthesizers theory,design and applications[M].NorwellKluwer Academic,2001:337-402.
[3]Tso-Bing Juang,Shen-Fu,Ming-Yu Tsai.Para- CORDIC:Parallel CORDIC Rotation Algorithm.IEEE,2004; 51(8).
[4]H.T.Nicholas,Ⅲ H.Samueli,B.Kim. The optimization of direct frequency synthesizer performance in the presence of finite word length effects,IEEE Proc 42th AFCS,1988:357-18.
[5]L.J.Kuhner,M.T. A in sworth. A spurious reduction technique for high-speed direct digital synthesizers,IEEE Proc 50th AFCS,1996:920-927
[6]Uwe Meyer-Baese著.數(shù)字信號處理的FPGA實(shí)現(xiàn)[M].劉凌,胡永生,譯.北京:清華大學(xué)出版社,2003:55-63.
[7]耿丹.CORDIC算法研究與實(shí)現(xiàn)[J].遙測遙控,2007,28 (11):40.
[8]姚亞峰,付東兵.基于CORDIC改進(jìn)算法的高速DDS電路設(shè)計(jì) [J].華中科技大學(xué)學(xué)報,2009,37(2):26-27.
The Implementation of Parallel Sweep DDS Based on FPGA
ZHANG Weiqing,TAN Jianmei,CHEN Han
East China Research of Electronic Engineering
direct digital synthesizer; digital array module; Digital Array Radar
TN941.3
A
1674-6708(2010)22-0203-03
AbsractIn this paper we firstly introduce the concept,architecture of the Direct Digital Synthesizer. Then Base on traditional serial DDS,a parallel architecture DDS wich frequency sweep function was bring forward ,F(xiàn)inally the theory simulation and hardware implementation was given for the parallel structure of DDS,higher output signal can be obtained base on this parallel DDS architecture in condition of lower DDS system clock。