基于Verilog HDL的DDS設(shè)計與仿真
可見,理論上通過設(shè)定DDS相位累加器位數(shù)N、頻率控制字X和基準(zhǔn)時鐘fc的值,就可以得到任一頻率的輸出。
本文引用地址:http://m.butianyuan.cn/article/192002.htm頻率分辨率為:fres=fc/2N,由參考時鐘和累加器的位數(shù)決定,當(dāng)參考時鐘的頻率越高,相位累加器的位數(shù)越高,所得到的頻率分辨率就越高。
1.3 方案的選擇
在利用FPGA制作DDS時,相位累加器是決定DDS性能的一個關(guān)鍵部分。一方面可以利用進(jìn)位鏈來實現(xiàn)快速、高效的電路結(jié)構(gòu),同時長的進(jìn)位鏈會減少其他邏輯的布線資源,限制整個系統(tǒng)速度的提高;另一方面可以利用流水線技術(shù)提高工作頻率,但系統(tǒng)頻率轉(zhuǎn)換速度會相對降低。在選擇累加器實現(xiàn)方案時需要綜合考慮。
正弦波查詢表ROM也是制作的重點(diǎn)。在FPGA中ROM表的尺寸隨著地址位數(shù)或數(shù)據(jù)位數(shù)的增加呈指數(shù)遞增,如何在滿足性能的前提下節(jié)省資源開銷。一方面通過相位累加器的輸出截斷方式,例如從32位的相位累加器結(jié)果中提取高16位作為ROM的查詢地址,由此而產(chǎn)生的誤差會對頻譜純度有影響,但是對波形的精度的影響是可以忽略的;另一方面可以根據(jù)信號周期對稱性來壓縮ROM的尺寸,這時系統(tǒng)硬件設(shè)計復(fù)雜度會有所增加。因此,需要選取合適的參數(shù)和ROM壓縮技術(shù),在滿足系統(tǒng)性能的前提下使得系統(tǒng)盡量優(yōu)化。
2.1 相位累加器
上述為相位累加器的Verilog HDL功能實現(xiàn),其中數(shù)據(jù)寬度為32位。同時利用QuartusⅡ進(jìn)行波形仿真見圖3。對應(yīng)的模塊符號見圖4。
2.2 ROM正弦查詢表
根據(jù)DDS的原理,將正弦波形的量化數(shù)據(jù)存儲于波形查詢表ROM中,即可完成正弦波發(fā)生的功能。Altera公司提供了LPM ROM(ROM兆函數(shù)),這里只需借助Matlab生成.mif文件,并加載到LPM ROM中即可得到所需的正弦查詢表ROM。
在Matlab中,運(yùn)行下面的語句可以得到儲存正弦波數(shù)字幅度值的.mif文件。例如產(chǎn)生214×12 b的正弦波0~27π幅度值,語句如下:
由此而生成的rom.mif文件內(nèi)容是正弦波0~2π數(shù)字幅度值,但是格式不符合.mif。文件的格式,需要對其進(jìn)行修改。.mif文件的格式如下:
這樣通過例化LPM ROM得到了正弦波查詢表ROM的模塊,地址寬度為14位,輸出數(shù)據(jù)為12位。模塊符號見圖5。
2.3 DDS頂層模塊的實現(xiàn)
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論