基于DDS跳頻信號源的設(shè)計與實現(xiàn)
2.1 邏輯地址控制單元
在本設(shè)計中,邏輯地址控制單元由一個6級移位寄存器和6位存儲器構(gòu)成。系統(tǒng)時鐘clk經(jīng)過64分頻后得到時鐘clk_64,將clk_64作為邏輯地址控制單元的驅(qū)動時鐘。當一個時鐘clk_64上升沿到來時,r(1:5)=r(0:4)同時。這樣移位寄存器中的狀態(tài)將改變,并存入存儲器中,得到頻率控制字k(5:0)。
2.2 DDS單元
DDS單元為本設(shè)計的核心,由相位累加器和ROM查詢表兩部分組成。在頻率控制字(5:0)的控制下產(chǎn)生相應(yīng)頻率的信號。
2.2.1 相位累加器
相位累加器是DDS的重要的組成部分。被用來實現(xiàn)相位的累加,并將其累加結(jié)果存儲。如果相位累加器的初值為φ0,則經(jīng)過一個時鐘周期后相位累加器值為φ1,即φ1=φ0+k,其中k為頻率控制字。當經(jīng)過n個時鐘周期后φn=φ0+nk??梢?phi;n為一等差數(shù)列。
在本文中基于FPGA的相位累加器設(shè)計如圖2所示。從圖2中可以看出,相位累加器由一個數(shù)字全加器和一個數(shù)字存儲器構(gòu)成。為了提高DDS輸出頻率的分辨率,一般要求n足夠大,這樣就要求ROM中存儲大量數(shù)據(jù)。但是考慮到硬件資源有限,所以在相位累加器中采用了截短處理,這樣既可保證較小的頻率分辨率,又節(jié)省了硬件資源。
2.2.2 ROM查詢表
ROM中所存儲的數(shù)據(jù)是數(shù)字波形的幅值,在一個系統(tǒng)時鐘周期內(nèi),相位累加器將輸出一個位寬為L的序列對其進行尋址,經(jīng)過低通濾波器后得到所需要的波形。若相位累加器的輸出序列的位寬L=16,ROM中存儲的數(shù)據(jù)位寬為M=16,可以計算出ROM的存儲量為2L×M=1048576bits,雖然一塊FPGA開發(fā)芯片上提供了大量的ROM,可以顯著提高輸出信號頻率精確度和信號幅值準確性,但這樣會使成本提高、功耗增大。
在保證輸出信號具有良好頻率分辨率的前提下,以產(chǎn)生正弦信號為例,考慮到基于DDS產(chǎn)生的正弦波具有周期性,因此本設(shè)計的ROM中存儲1/4周期正弦波。如圖2所示為存儲1/4周期正弦波形ROM查詢表設(shè)計。利用正弦信號的對稱性,通過改變ROM存儲器地址及對其輸出端控制,最終得到整周期正弦信號。
3 仿真結(jié)果及分析
3.1 DDS單元仿真結(jié)果及分析
3.1.1 仿真參數(shù)
為分析本設(shè)計中DDS所產(chǎn)生頻率的精確度,現(xiàn)使用Xilinx ISE 8.11中DDS IP Core進行對比,在同等仿真參數(shù)條件下,分別對本設(shè)計的DDS和DDS IP Core進行仿真測試。表1中分別給出基于本設(shè)計DDS和DDS IP Core的仿真參數(shù)。本文引用地址:http://www.ex-cimer.com/article/155539.htm
3.1.2 仿真結(jié)果及分析
如圖3所示,clk是系統(tǒng)時鐘,new_dds_sine為在頻率控制字k=16時基于本設(shè)計DDS產(chǎn)生的頻率為1.5625MHz(理論值)的正弦波,dds_ip_ core_sine為基于DDS IP Core產(chǎn)生的頻率為1.5625MHz(理論值)的正弦波。
圖4給出在k為1~16時,本設(shè)計的DDS所產(chǎn)生信號的頻率和DDS IP Core所產(chǎn)生信號的頻率與理論頻率值的對比。從圖中可以看出,本設(shè)計DDS所產(chǎn)生的信號頻率與理論頻率值比較接近,且本設(shè)計DDS中ROM查詢表中存儲的點數(shù)少,從硬件的角度考慮更加節(jié)省資源,能耗更低。
評論