新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于Verilog HDL的DDS設(shè)計(jì)與仿真

基于Verilog HDL的DDS設(shè)計(jì)與仿真

作者: 時(shí)間:2009-07-08 來(lái)源:網(wǎng)絡(luò) 收藏

可見(jiàn),理論上通過(guò)設(shè)定相位累加器位數(shù)N、頻率控制字X和基準(zhǔn)時(shí)鐘fc的值,就可以得到任一頻率的輸出。

本文引用地址:http://m.butianyuan.cn/article/192002.htm

頻率分辨率為:fres=fc/2N,由參考時(shí)鐘和累加器的位數(shù)決定,當(dāng)參考時(shí)鐘的頻率越高,相位累加器的位數(shù)越高,所得到的頻率分辨率就越高。

1.3 方案的選擇

在利用FPGA制作時(shí),相位累加器是決定性能的一個(gè)關(guān)鍵部分。一方面可以利用進(jìn)位鏈來(lái)實(shí)現(xiàn)快速、高效的電路結(jié)構(gòu),同時(shí)長(zhǎng)的進(jìn)位鏈會(huì)減少其他邏輯的布線資源,限制整個(gè)系統(tǒng)速度的提高;另一方面可以利用流水線技術(shù)提高工作頻率,但系統(tǒng)頻率轉(zhuǎn)換速度會(huì)相對(duì)降低。在選擇累加器實(shí)現(xiàn)方案時(shí)需要綜合考慮。

正弦波查詢(xún)表ROM也是制作的重點(diǎn)。在FPGA中ROM表的尺寸隨著地址位數(shù)或數(shù)據(jù)位數(shù)的增加呈指數(shù)遞增,如何在滿足性能的前提下節(jié)省資源開(kāi)銷(xiāo)。一方面通過(guò)相位累加器的輸出截?cái)喾绞剑鐝?2位的相位累加器結(jié)果中提取高16位作為ROM的查詢(xún)地址,由此而產(chǎn)生的誤差會(huì)對(duì)頻譜純度有影響,但是對(duì)波形的精度的影響是可以忽略的;另一方面可以根據(jù)信號(hào)周期對(duì)稱(chēng)性來(lái)壓縮ROM的尺寸,這時(shí)系統(tǒng)硬件設(shè)計(jì)復(fù)雜度會(huì)有所增加。因此,需要選取合適的參數(shù)和ROM壓縮技術(shù),在滿足系統(tǒng)性能的前提下使得系統(tǒng)盡量?jī)?yōu)化。

2 實(shí)現(xiàn)DDS模塊

2.1 相位累加器

上述為相位累加器的 功能實(shí)現(xiàn),其中數(shù)據(jù)寬度為32位。同時(shí)利用QuartusⅡ進(jìn)行波形見(jiàn)圖3。對(duì)應(yīng)的模塊符號(hào)見(jiàn)圖4。

2.2 ROM正弦查詢(xún)表

根據(jù)DDS的原理,將正弦波形的量化數(shù)據(jù)存儲(chǔ)于波形查詢(xún)表ROM中,即可完成正弦波發(fā)生的功能。Altera公司提供了LPM ROM(ROM兆函數(shù)),這里只需借助Matlab生成.mif文件,并加載到LPM ROM中即可得到所需的正弦查詢(xún)表ROM。

在Matlab中,運(yùn)行下面的語(yǔ)句可以得到儲(chǔ)存正弦波數(shù)字幅度值的.mif文件。例如產(chǎn)生214×12 b的正弦波0~27π幅度值,語(yǔ)句如下:

由此而生成的rom.mif文件內(nèi)容是正弦波0~2π數(shù)字幅度值,但是格式不符合.mif。文件的格式,需要對(duì)其進(jìn)行修改。.mif文件的格式如下:

這樣通過(guò)例化LPM ROM得到了正弦波查詢(xún)表ROM的模塊,地址寬度為14位,輸出數(shù)據(jù)為12位。模塊符號(hào)見(jiàn)圖5。

2.3 DDS頂層模塊的實(shí)現(xiàn)

上述代碼為DDS模塊的 頂層文件。對(duì)應(yīng)的模塊圖見(jiàn)圖6。



關(guān)鍵詞: Verilog HDL DDS 仿真

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉