(電子科技大學(xué)電子工程學(xué)院,四川成都611731)
直接數(shù)字頻率合成器(DDS)是Tierney等[1]于1971年提出的一種全新的頻率合成技術(shù),它相對傳統(tǒng)技術(shù)具有頻率分辨率高、頻率轉(zhuǎn)換時間快、易于合成復(fù)雜波形和相位連續(xù)等優(yōu)點(diǎn)。隨著技術(shù)的不斷發(fā)展,它在雷達(dá)、通信、電子儀表儀器等領(lǐng)域具有廣泛的應(yīng)用。然而,人們漸漸發(fā)現(xiàn)這種DDS結(jié)構(gòu)最大的缺點(diǎn)就是不能得到很高的輸出頻率。由奈奎斯特采樣定律可知,輸出頻率應(yīng)小于采樣頻率的一半,而在實(shí)際工程中輸出頻率只有其40%。FPGA作為一種可編程的數(shù)字集成電路,具有開發(fā)周期短、功能強(qiáng)、可靠性高和保密性好等優(yōu)點(diǎn),因此用FPGA實(shí)現(xiàn)DDS具有更明顯的優(yōu)勢。本文利用FPGA實(shí)現(xiàn)四路并行DDS的結(jié)構(gòu),在相位累加器中結(jié)合了流水線結(jié)構(gòu),相幅轉(zhuǎn)換過程中將相位分為粗調(diào)和細(xì)調(diào)兩個部分,粗調(diào)仍用ROM實(shí)現(xiàn),細(xì)調(diào)則利用角度旋轉(zhuǎn)的方法迭代。這樣,在提高輸出頻率、保證無雜散動態(tài)范圍的同時也擴(kuò)大了頻譜寬度。
DDS具體結(jié)構(gòu)如圖1所示,包括相位累加器(PA)、相幅轉(zhuǎn)化器(SCMF)、數(shù)模轉(zhuǎn)換器(DAC)和低通濾波器(LPF)。N位相位累加器是由加法器和寄存器組成,頻率控制字K控制每次加法器步長,當(dāng)其和大于2N時溢出,完成一個周期。相幅轉(zhuǎn)換器最初是利用查找表(ROM)來實(shí)現(xiàn),即將一個周期的正弦或者余弦函數(shù)采樣2N個點(diǎn)存放在ROM中,并量化為W位的幅度值,然后用相位累加器作為地址控制輸出。系統(tǒng)時鐘為fclk,對應(yīng)時間為1/fclk=Tclk,完成一個周期所需時間T0=Tclk×2N/K,所對應(yīng)系統(tǒng)輸出頻率f0=fclk×K/2N??梢钥闯霎?dāng)K=1時,得到最小輸出頻率即頻率分辨率fmin=fclk/2N,由此可見當(dāng)N很大時可以得到非常高的頻率分辨率??紤]到實(shí)際硬件條件,一般采用相位截斷的方法,只取相位高M(jìn)位作為ROM的地址,從而減小ROM的深度。所得到的數(shù)字信號通過DAC,其類似于零階保持電路,將數(shù)字信號轉(zhuǎn)化為模擬信號。最后通過低通濾波器濾掉雜散,得到想要的波形。
圖1 傳統(tǒng)DDS結(jié)構(gòu)
運(yùn)行高速系統(tǒng)就必須要用高速的相位累加器尋址。目前提高加法器運(yùn)算速度的主要途徑[2]包括:1)加快進(jìn)位的產(chǎn)生,提高進(jìn)位傳遞速度,縮減進(jìn)位傳播途徑;2)降低進(jìn)位的產(chǎn)生,提高加法器運(yùn)行速度;3)根據(jù)異步電路自定時的特點(diǎn),將加法器運(yùn)算速度從最壞延時提高到平均延遲。已有很多文獻(xiàn)根據(jù)這3種方法設(shè)計出高速加法器。如要用一個常規(guī)加法器實(shí)現(xiàn)N=32 bit的相位累加器,加法器要產(chǎn)生一次進(jìn)位需要傳播的途徑太長。雖然節(jié)約了硬件,但是運(yùn)行速度太慢。流水線結(jié)構(gòu)是一種很常見的提高加法器速度的方法,它主要是利用縮減進(jìn)位傳播途徑實(shí)現(xiàn)高速,其缺點(diǎn)是增加了硬件的消耗。例如將32位加法器可以分解為4個8位或者8個4位的加法器級聯(lián)。為了增加加法器的吞吐量,并行的相位累加器應(yīng)運(yùn)而生。圖2中采用4個加法器并行運(yùn)算,能提高4倍的運(yùn)算速度。
圖2 四路并行相位累加器
根據(jù)上圖結(jié)構(gòu),在4個時鐘周期后,得到如下四路輸出:
式中,?(n)為第n次相位累加器輸出,K為頻率控制字,這里假設(shè)32位。?(n+2)和?(n+4)可以在加?(n)之前,分別將K左移一位和左移兩位得到。?(n+3)就直接根據(jù)?(n+2)加上K得到。每一路時鐘為多路選擇器工作時鐘的四分之一。然而,這種結(jié)構(gòu)相對于一個加法器增加了4倍的面積和功耗,其最大運(yùn)行速度也僅僅為一個加法器的4倍。
為了得到更高的運(yùn)行速度,可以將流水線和并行兩種結(jié)構(gòu)相結(jié)合得到PPA(Pipelined Parallel Accumulator)結(jié)構(gòu)[3]。即將32位加法器分解為兩個16位的上圖結(jié)構(gòu)相級聯(lián),這樣相對于單單的并行加法器每一路減小了一半的進(jìn)位傳播途徑,從而進(jìn)一步提高加法器速度。具體結(jié)構(gòu)如圖3所示,頻率控制字K低16位在第一級計算得到四路相位的低16位,并將每一路產(chǎn)生的進(jìn)位傳遞給對應(yīng)的高16位。頻率控制字K高16位在第二級相對于第一級延遲一個周期后,四路同時運(yùn)算得到四路相位的高16位。最后將高低位合并得到四路32位的相位,每一路相位值之間相差一個相位值K,從而為后面并行的DDS提供了相位偏移。
圖3 PPA結(jié)構(gòu)
傳統(tǒng)DDS結(jié)構(gòu)中ROM對運(yùn)行速度和芯片功耗有很大的影響,所以在輸出頻譜沒有較大影響的情況下應(yīng)盡量減小ROM的容量。近幾十年人們提出很多方法,最常見的方法是利用正弦函數(shù)的對稱性,只將四分之一的波形幅度存在ROM中,然后犧牲地址高兩位來映射整個周期的波形。具體包括:
1)角度分解,將相位分解為粗相位和細(xì)相位。如將相位A分為高相位C和低相位F兩部分:
然后將兩項(xiàng)分別放入兩個RO M中,即用粗調(diào)和細(xì)調(diào)兩個小ROM來代替原來的一個大容量ROM。
2)角度轉(zhuǎn)換,最常見的方法就是應(yīng)用CORDIC算法,如采用ROM與CORDIC相結(jié)合的方法[4]。
4)多項(xiàng)式近似,其中包括一階和高階近似,如泰勒公式展開。
本文相幅轉(zhuǎn)換將相位分為粗調(diào)和細(xì)調(diào)兩個部分,粗調(diào)部分仍然采用ROM的方式實(shí)現(xiàn),細(xì)調(diào)部分應(yīng)用類似于CORDIC算法的角度旋轉(zhuǎn)結(jié)構(gòu)[5]。
根據(jù)正交信號的性質(zhì)可知,正弦函數(shù)在[0,π/4]的幅度值等于余弦函數(shù)在[π/4,π/2]的幅度值。因此,只需要存儲第一卦限θ=[0,π/4]的幅度值,即八分之一個周期。然后利用截斷后相位高三位將其映射到其他幾個卦限,得到一個周期波形,具體實(shí)現(xiàn)如表1所示。表中地址取反,是當(dāng)MSB[3]為1時,ROM地址取其反碼。表中負(fù)數(shù)是根據(jù)映射規(guī)則在八分之一周期的幅度值前加上符號位。
表1 卦限映射關(guān)系
在第一卦限中所有角度的弧度值是小于1的,也就都是大于零的小數(shù)。用二進(jìn)制表示為θ=對b進(jìn)行重新編碼:
式中,X0=cosθ0,Y0=sinθ0,是一個常數(shù)。由于CORDIC算法中,第i次旋轉(zhuǎn)角度滿足αi=arctan2-i,通過判斷旋轉(zhuǎn)方向,移位相加得出結(jié)果。這里旋轉(zhuǎn)角度不同于CORDIC算法,因此不能簡單地通過移位相加實(shí)現(xiàn)。根據(jù)正切函數(shù)的泰勒公式展開式對于N位相位當(dāng)k≥N/3時這里假設(shè)k=M+1滿足條件,也就是粗細(xì)相位分界位在M位,M+1位為低相位的MSB。此時,式(3)可以改寫為
式中,XM=cos(θF+θM),YM=sin(θF+θM),同樣K為常數(shù)。此時,也可以同CORDIC算法一樣移位相加得到幅度。
在式(6)中,求和項(xiàng)相當(dāng)于一個有符號數(shù)的二進(jìn)制數(shù)??梢园裷 k重新編碼成二進(jìn)制補(bǔ)碼數(shù):t k={0,1}
將低相位重新編碼后,變成有符號的數(shù)。因此在后面的運(yùn)算中應(yīng)作為有符號數(shù)處理,同時相位MSB[3]控制其是否取反碼。將K乘以XM,YM一起存進(jìn)ROM中。式(6)可改寫為
由于相位累加器輸出相位局限于[0,π/4]內(nèi),對于32位的相位控制字K而言,0和π/4分別相當(dāng)于0和4294967295,所以粗細(xì)相位都應(yīng)乘以π/4。為了避免浮點(diǎn)運(yùn)算,這里相位沒有除以232。同時由式(6)知道K是獨(dú)立于t的常數(shù),所以也可將直接乘以XM和YM存入ROM中。細(xì)相位乘以π/4在其他文獻(xiàn)中大都采用其泰勒展開式,通過移位相加得到。本文為了減小延遲和芯片功耗,根據(jù)關(guān)系式先用XM和YM乘以π/4分別得到XR和YR,并把數(shù)值存入另外兩個ROM中。由于相對于存放XM,YM的兩個ROM,XR和YR量化位數(shù)更少,其ROM容量更小。具體關(guān)系由式(10)給出:
圖4給出所采用的DDS結(jié)構(gòu)。
圖4 ROM+CORDIC算法的DDS結(jié)構(gòu)
本文采用四路并行的DDS結(jié)構(gòu),相位累加器采用圖3的PPA結(jié)構(gòu),每一路相幅轉(zhuǎn)換采用圖4結(jié)構(gòu)。每一路頻率控制字相當(dāng)于4K,相鄰兩路相位控制字差為K。以單路工作時鐘的4倍時鐘實(shí)現(xiàn)并串轉(zhuǎn)換,相當(dāng)于四路數(shù)據(jù)相互內(nèi)插。每一路輸出頻率為四路選擇器輸出為可見雖然頻率控制字和工作時鐘改變了,但是兩個輸出頻率是一樣的,輸出頻譜擴(kuò)大了。具體結(jié)構(gòu)如圖5所示。
圖5 四路并行DDS結(jié)構(gòu)
選用Xilinx公司的XC6VLX240T芯片仿真,頻率控制字K為32位,相位截斷取高20位。存放XM和YM的ROM量化位數(shù)為17 bit,XR和YR量化位數(shù)為7 bit,輸出信號位數(shù)為16位。XST綜合后報告顯示,每一路最大工作時鐘可達(dá)236.351 MHz。這里系統(tǒng)輸入時鐘采用100 MHz,利用PLL倍頻設(shè)置每一路DDS工作時鐘200 MHz,系統(tǒng)總的工作時鐘為400 MHz,由于FPGA將數(shù)據(jù)傳給DAC,因此這里采用原語OSERDES1的ODDR模式??芍l率分辨率約為0.186 Hz。由前面的分析可知,當(dāng)工作時鐘為200 MHz時輸出頻率最大為80 MHz。圖6和圖7分別給出用Modelsim仿真頻率為200 MHz和25 MHz的I、Q信號。
圖6 頻率為200 MHz的I、Q仿真信號
圖7 頻率為25 MHz的I、Q仿真信號
要滿足高速DDS結(jié)構(gòu),相位累加器要給出高速的尋址,同時ROM不能太大。流水線和并行加法器都能提高一定的運(yùn)行速度,但是又各自存在著缺點(diǎn)。將兩種結(jié)構(gòu)結(jié)合在一起,使得在速度和資源消耗方面做出了很好的平衡。減小ROM,雖然能提高一定速度和減小功耗,但是輸出波形質(zhì)量不能得到保證。因此,結(jié)合類似CORDIC算法迭代能得到高精度波形的特性,在提高速度的同時兼顧了波形質(zhì)量。然而,它又不同于傳統(tǒng)的CORDIC算法,每次都需要根據(jù)剩余角度判斷下一次的旋轉(zhuǎn)方向,從而影響運(yùn)行速度。傳統(tǒng)結(jié)構(gòu)中對于17位的相位尋址,需要ROM深度為217。而采用本文中的方法僅需27,大大減小了ROM容量,從而提高了速度和減小了功耗。20位的相位尋址使得具有約-120 dBc的無雜散動態(tài)范圍。當(dāng)然在實(shí)際硬件實(shí)現(xiàn)的電路中還會存在相位噪聲等因素[6]影響波形性能。并行的DDS是通過提高采樣頻率,增大了輸出信號的頻譜,同時減小了總功耗,從而在雷達(dá)系統(tǒng)中具有廣泛的應(yīng)用。
[1]TIERNEY J,RADER C M,GOLD B.A Digital Frequency Synthesizer[J].IEEE Trans on Audio and Electroacoustics,1971,19(1):48-57.
[2]袁浩,唐建,方毅.超前進(jìn)位加法器的優(yōu)化設(shè)計[J].通信技術(shù),2014,47(3):339-342.
[3]YANG B D,CHOI J H,HAN S H,et al.An 800-MHz Low-Power Direct Digital Frequency Synthesizer with an On-Chip D/A Converter[J].IEEE Journal of Solid-State Circuits,2004,39(5):761-774.
[4]MADISETTI A,KWENTUS A Y,WILLSON A N.A 100-MHz,16-b,Direct Digital Frequency Synthesizer with a 100-dBc Spurious-Free Dynamic Range[J].IEEE Journal of Solid-State Circuits,1999,34(8):1034-1043.
[5]BERGERON M,WILLSON A N.A 1-GHz Direct Digital Frequency Synthesizer in an FPGA[C]∥IEEE International Symposium on Circuits andSystems,Melbourne,Australia:IEEE,2014:329-332.
[6]王勇.直接式頻率合成器相位噪聲限制因素[J].雷達(dá)科學(xué)與技術(shù),2013,11(3):,329-334.WANG Yong.Phase Noise Limiting Factors of Direct Frequency Synthesizer[J].Radar Science and Technology,2013,11(3):329-334.(in Chinese)