基于FPGA的并行掃頻DDS的實(shí)現(xiàn)
DDS同 DSP(數(shù)字信號(hào)處理)一樣,是一項(xiàng)關(guān)鍵的數(shù)字化技術(shù)。DDS是直接數(shù)字式頻率合成器(Direct Digital Synthesizer)的英文縮寫(xiě)。與傳統(tǒng)的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時(shí)間等優(yōu)點(diǎn),廣泛使用在電信與電子儀器領(lǐng)域,是實(shí)現(xiàn)設(shè)備全數(shù)字化的一個(gè)關(guān)鍵技術(shù)。DDS在結(jié)構(gòu)上由三部分構(gòu)成:⑴ 累加器;⑵ 角度幅度轉(zhuǎn)換器,它將數(shù)字相位值轉(zhuǎn)換為數(shù)字幅度值;⑶ 數(shù)模轉(zhuǎn)換器。ADI公司所有DDS的DAC都是電流輸出形式。DDS頻率規(guī)劃是指在應(yīng)用范圍內(nèi)提供最佳動(dòng)態(tài)性能的一種嘗試,對(duì)于許多應(yīng)用來(lái)說(shuō),這就意味著在感興趣的帶寬內(nèi)提供最大的無(wú)雜散動(dòng)態(tài)范圍,或者稱作SFDR.為了獲得最大的SFDR值,需要進(jìn)行一些DDS頻率規(guī)劃。一個(gè)好的頻率規(guī)劃首先是要根據(jù)應(yīng)用所給定的性能標(biāo)準(zhǔn)選擇合適的DDS器件,然后規(guī)劃并預(yù)算出DDS的主要雜散源
不同的應(yīng)用領(lǐng)域,對(duì)DDS的性能有不同的要求。當(dāng)把DDS用做雷達(dá)系統(tǒng)中的本振信號(hào)源時(shí),對(duì)寄生信號(hào)抑制的要求可能比較高,如要求在60dB或70dB以上。當(dāng)把DDS用于雷達(dá)干擾系統(tǒng)時(shí),除了對(duì)寄生信號(hào)抑制有一定的要求外,更重要的是其產(chǎn)生寬帶信號(hào)的能力。為了產(chǎn)生寬帶信號(hào),要求DDS的系統(tǒng)時(shí)鐘頻率要高。盡管目前FPGA的速度和規(guī)模都已經(jīng)達(dá)到了相當(dāng)高的水平,但與電子干擾系統(tǒng)對(duì)它的要求相比仍有差距。按照目前FPGA的技術(shù)水平及使用經(jīng)驗(yàn),系統(tǒng)時(shí)鐘選擇200MHz是一個(gè)比較合理的選擇。因此,為了滿足電子干擾系統(tǒng)更高(如400MHz系統(tǒng)時(shí)鐘)的要求,應(yīng)該采用并行處理技術(shù)。
1 并行DDS電路工作原理
并行處理(Parallel Processing)是計(jì)算機(jī)系統(tǒng)中能同時(shí)執(zhí)行兩個(gè)或更多個(gè)處理機(jī)的一種計(jì)算方法。處理機(jī)可同時(shí)工作于同一程序的不同方面。并行處理的主要目的是節(jié)省大型和復(fù)雜問(wèn)題的解決時(shí)間。為使用并行處理,首先需要對(duì)程序進(jìn)行并行化處理,也就是說(shuō)將工作各部分分配到不同處理機(jī)中。而主要問(wèn)題是并行是一個(gè)相互依靠性問(wèn)題,而不能自動(dòng)實(shí)現(xiàn)。此外,并行也不能保證加速。但是一個(gè)在 n 個(gè)處理機(jī)上執(zhí)行的程序速度可能會(huì)是在單一處理機(jī)上執(zhí)行的速度的 n 倍。
圖1所示為并行DDS電路工作原理框圖,主要包括:相位累加器、兩路相位/幅度變換電路、二選一選擇器、鎖存器、SINC函數(shù)補(bǔ)償濾波器、D/A變換器和中頻濾波器。相位累加器通過(guò)對(duì)輸入頻率碼的累加,產(chǎn)生A、B兩路相位累加輸出,其中A路信號(hào)在前,B路信號(hào)在后(兩路信號(hào)合成一路信號(hào)后)。兩路相位/幅度變換電路分別對(duì)兩路相位累加器輸出的相位進(jìn)行相位/幅度變換,獲得兩路幅度輸出。然后由二選一選擇器將兩路信號(hào)合并成一路信號(hào)(S=0時(shí)選A,S=1時(shí)選B)。相位累加器、相位/幅度變換電路的時(shí)鐘以及選擇器選擇端S的信號(hào)為fck1,它是由DDS電路系統(tǒng)時(shí)鐘fck分頻得到,即fck1=fck/2.而選擇器后面的鎖存器以及SINC函數(shù)補(bǔ)償濾波器、D/A變換器的時(shí)鐘為系統(tǒng)時(shí)鐘。為了簡(jiǎn)化電路實(shí)現(xiàn),采用直接中頻方法取出D/A變換器的中頻信號(hào)輸出,同時(shí),為了補(bǔ)償D/A變換輸出信號(hào)幅度隨頻率增加引起的衰減,圖1中增加了SINC函數(shù)補(bǔ)償濾波器。圖2給出了fck1、fck與數(shù)據(jù)之間時(shí)序關(guān)系的示意圖。
2 并行DDS電路實(shí)現(xiàn)
主要介紹相位累加器電路和相位/幅度變換器電路的實(shí)現(xiàn)。
2.1 相位累加器電路實(shí)現(xiàn)
實(shí)現(xiàn)并行相位累加器的直接方法是:由兩套結(jié)構(gòu)完全相同的相位累加器電路構(gòu)成,相位累加器的輸入(頻率碼)也相同,只是兩路輸出要有一個(gè)固定的初始相位偏差,其數(shù)值為相位累加器輸入(頻率碼)的1/2.
為了電路實(shí)現(xiàn)容易,需對(duì)上述方法進(jìn)行簡(jiǎn)化。這里提供一種較為簡(jiǎn)單的方法,即利用一個(gè)相位累加器產(chǎn)生第一路(A路)相位累加器輸出,而另一路相位累加器輸出通過(guò)將第一路輸出的相位與相位累加器輸入(頻率碼)的1/2相加得到,如圖3所示。在圖3中,假定系統(tǒng)時(shí)鐘為400MHz,假定輸入的頻率碼為26位,范圍為F[25:0],其中位25代表200MHz,位24代表100MHz,…,位0為最低有效位,也就是DDS的分辨率fck/226=5.96Hz.
相位累加器電路中各器件的時(shí)鐘頻率為fck1=200MHz.相位累加器的輸入取26位頻率碼F[25:0]的低25位F[24:0],即得到A路相位累加器的輸出為A[24:0].F[25:0]的高25位F[25:1]經(jīng)右移一位(相當(dāng)于乘1/2)得到C[24:0]后與A路相位累加器的輸出A[24:0]相加得到B路相位累加器的輸出B[24:0].
最后,為了減小后面相位/幅度變換電路的硬件量,鎖存器只取出用于進(jìn)行相位/幅度變換所需位數(shù)的相位(相位截?cái)啵?,這里取相位截?cái)噍敵鰹?0位,A路為G[9:0],B路為H[9:0].
2.2 相位/幅度變換器電路實(shí)現(xiàn)
相位/幅度變換電路的功能是把由相位累加器輸出的相位信息轉(zhuǎn)換成幅度信息。相位/幅度變換電路通常采用ROM電路實(shí)現(xiàn),但也可采用數(shù)字邏輯電路實(shí)現(xiàn)。
并行相位/幅度變換器由兩套結(jié)構(gòu)完全相同的相位/幅度變換器構(gòu)成,因此,下面只介紹其中的一個(gè)。相位/幅度變換的原理可以很容易由ROM構(gòu)成的查找表(LUT)理解。相位/幅度變換的內(nèi)容存儲(chǔ)在ROM中,以相位值作為ROM的地址,ROM的輸出作為變換后的幅度。
與相位累加器不同,相位/幅度變換器的硬件量隨相位位數(shù)(ROM地址)的增加指數(shù)增加,而相位累加器硬件量隨累加器位數(shù)的增加線性增加。因此,當(dāng)相位位數(shù)(影響DDS的寄生信號(hào)性能)較大時(shí),所需硬件量將急劇增加。盡管前面已經(jīng)對(duì)相位進(jìn)行了截?cái)?,但為了保證所需的寄生信號(hào)性能,剩下的用于進(jìn)行相位/幅度變換的相位位數(shù)仍然較大,如果直接實(shí)現(xiàn)所需硬件量仍然較大。
下面兩種方法對(duì)減小硬件量比較有效。一是根據(jù)SIN函數(shù)的對(duì)稱性,只需要對(duì)一個(gè)象限進(jìn)行相位/幅度變換,另外三個(gè)象限可以經(jīng)變換獲得,這樣可節(jié)省近3/4的硬件量[3];第二種是采用分段線性化的方法,也可有效降低ROM地址的位數(shù)[4].
以一個(gè)10位相位/8位幅度的相位/幅度變換電路為例,介紹相位/幅度變換電路的具體實(shí)現(xiàn)方法并分析硬件量節(jié)省的情況。圖4是分段線性化相位/幅度變換方法示意圖。曲線1是用于進(jìn)行相位/幅度變換的原始正弦信號(hào)前1/4周期(第一象限)的曲線,將它分解成下面的3條曲線(曲線2、3、4)。曲線2是粗相位/幅度變換對(duì)應(yīng)的曲線。曲線3和4分別對(duì)應(yīng)的是線性變化部分(只有0、1、2三個(gè)值,即2位)和校正部分(只有0、1兩個(gè)值,即1位)。注意,為了清楚,曲線3和4的幅度都放大了5倍,并分別下移10和20.
根據(jù)圖4的方法,圖5給出了相位/幅度變換電路原理框圖。相位輸入10位,幅度輸出8位,分析中假定忽略掉兩組異或門和一個(gè)加法器所占用的硬件資源。在不采用任何措施以節(jié)省硬件資源的情況下,地址為10位,輸出幅度為7位(幅度的最高有效位不需要ROM資源),所需硬件量(ROM容量)為:210×7=7168.當(dāng)利用SIN函數(shù)的對(duì)稱性只對(duì)第1象限進(jìn)行相位/幅度變換時(shí),地址由10位變成了8位,所需硬件量變?yōu)椋?8×7=1792,減小了75%.在第1象限的相位/幅度變換中進(jìn)一步采用分段線性化的方法,將一個(gè)較大的ROM(地址8位,字長(zhǎng)7位)分解成三個(gè)較小的ROM:一個(gè)粗相位/幅度變換(地址6位,字長(zhǎng)7位),一個(gè)分段線性變化部分(它只與最高兩位和最低兩位地址有關(guān),地址4位,字長(zhǎng)2位),還有一個(gè)校正部分(地址8位,字長(zhǎng)1位)。因此,所需硬件總?cè)萘孔優(yōu)椋?6×7+24×2+28×1=736,又減小了近59%.可見(jiàn),綜合采用上述兩種方法,可以使相位/幅度變換所需的硬件量大幅度減小。
根據(jù)具體情況和具體要求的不同,分解方法并不局限于上面介紹的方法。以圖5為例,由于線性變化部分和校正部分都較小,因此也可以將二者合并成一個(gè)地址8位、字長(zhǎng)2位的校正部分,這時(shí),所需硬件總?cè)萘繛椋?6×7+28×2=960,減小的硬件量為46%.
3 實(shí)驗(yàn)測(cè)試結(jié)果
為了滿足電子干擾系統(tǒng)對(duì)寬帶信號(hào)產(chǎn)生的需要,按照上述方法設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于FPGA的并行DDS樣機(jī),系統(tǒng)時(shí)鐘400MHz(兩路200 MHz構(gòu)成),輸出頻率范圍250MHz~350MHz,頻率分辨率6Hz,相位截?cái)?0位,D/A變換器幅度分辨率8位。
為了簡(jiǎn)化外部電路,采用了直接中頻輸出的方法,即直接取出頻率范圍250MHz~350MHz的信號(hào)。由圖6可以看出,由于D/A變換器輸出信號(hào)幅度隨頻率按SINC函數(shù)衰減,在輸出信號(hào)250MHz~350MHz頻率范圍內(nèi),幅度變化范圍較大,約為(-6.5)~(-17.1)=10.6dB.因此,電路中還包含了SINC函數(shù)補(bǔ)償濾波器。
根據(jù)文獻(xiàn)[5],10位相位/8位幅度DDS的最高寄生信號(hào)抑制為-60.2dB.不過(guò),這只是在特定條件下的理想結(jié)果,實(shí)際的DDS寄生信號(hào)性能還受到采樣信號(hào)頻譜折疊、D/A變換器采樣脈沖不理想(不是理想的沖擊脈沖)等因素的影響。特別是當(dāng)輸出信號(hào)頻率較高時(shí),D/A變換器非線性的影響更不能忽視。因此,實(shí)際測(cè)量結(jié)果與理論分析會(huì)有所不同。圖7給出的是基于FPGA的并行DDS樣機(jī)的輸出信號(hào)頻譜分布測(cè)量結(jié)果,輸出信號(hào)約為300MHz,測(cè)量范圍是在信號(hào)附近(span=1MHz),此時(shí)的最大寄生信號(hào)抑制優(yōu)于50dB。
本文介紹了一種通過(guò)采用并行處理技術(shù)提高DDS系統(tǒng)時(shí)鐘的方法,給出了一個(gè)基于FPGA的400MHz系統(tǒng)時(shí)鐘DDS電路的實(shí)現(xiàn)方法和測(cè)試結(jié)果,輸出信號(hào)頻率范圍250MHz~350MHz,頻率分辨率6Hz,寄生信號(hào)抑制優(yōu)于50dB,為實(shí)現(xiàn)雷達(dá)和電子戰(zhàn)等領(lǐng)域中的寬帶信號(hào)產(chǎn)生提供了一種可供選擇的方案,具有實(shí)用性。