基于FPGA的直接數(shù)字頻率合成器的設(shè)計實現(xiàn)
具體工作過程如下:
每來一個時鐘脈沖,N位加法器將頻率控制數(shù)據(jù)X與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果 送至累加寄存器的輸入端。累加寄存器一方面將在上一時鐘周期作用后所產(chǎn)生的新的相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一時鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)X相加;另一方面將這個值作為取樣地址值送入幅度/相位轉(zhuǎn)換電路(即圖1中的波形存儲器),幅度/相位轉(zhuǎn)換電路根據(jù)這個地址值輸出相應(yīng)的波形數(shù)據(jù)。最后經(jīng)數(shù)/模轉(zhuǎn)換和低通濾波器將波形數(shù)據(jù)轉(zhuǎn)換成所需要的模擬波形。
相位累加器在基準(zhǔn)時鐘的作用下,進(jìn)行線性相位累加,當(dāng)相位累加器累加滿量時就會產(chǎn)生一次溢出,這樣就完成了一個周期,這個周期也就是DDS合成信號的一個頻率周期。
DDS輸出信號的頻率由式(1)給定:
=(X/Y)× (1)
例如,我們假定基準(zhǔn)時鐘為70 MHz,累加器為16位,則:
Y=216= 65,536
=70MHz
再假定X=4096,則:
=4096/65,536×70
=4.375MHz
可見,理論上通過設(shè)定DDS相位累加器位數(shù)頻率控制字X和基準(zhǔn)時鐘的值,就可以產(chǎn)生任一頻率的輸出。而DDS的頻率分辨率定義為:
/ Y (2)
由于基準(zhǔn)時鐘一般固定,因此相位累加器的位數(shù)就決定了頻率分辨率。比如上面的例子中,相位累加器為16位,那么頻率分辨率就可以認(rèn)為是16位。位數(shù)越多,分辨率越高。
利用 FPGA(ACEX EP1K50)
設(shè)計DDS
在用FPGA設(shè)計DDS電路的時候,相位累加器是決定DDS性能的一個關(guān)鍵部分。小的累加器可以利用ACEX器件的進(jìn)位鏈得到快速、高效的電路結(jié)構(gòu)。然而由于進(jìn)位鏈必須位于臨近的LAB(邏輯陣列塊)和LE(邏輯單元)內(nèi),因此長的進(jìn)位鏈勢必會減少其它邏輯使用的布線資源,同時過長的進(jìn)位鏈也會制約整個系統(tǒng)速度的提高。
另一種提高速度的辦法就是采用流水線技術(shù),即把在一個時鐘內(nèi)要完成的邏輯操作分成幾步較小的操作,并插入幾個時鐘周期來提高系統(tǒng)的數(shù)據(jù)吞吐率。但是流水線技術(shù)比較適合開環(huán)結(jié)構(gòu)(open-loop)的電路,要用在累加器這樣的閉環(huán)反饋(close-loop feedback)的電路中必須謹(jǐn)慎考慮,以保證設(shè)計的準(zhǔn)確無誤。
綜合考慮后,這一部分決定采用進(jìn)位鏈和流水線技術(shù)相結(jié)合的辦法,這樣既能保證較高的資源利用率,又能大幅提高系統(tǒng)的性能和速度。
評論