資源描述:
《基于Verilog_HDL的DDS設(shè)計(jì)與仿真》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于VerilogHDL的DDS設(shè)計(jì)與仿真直接數(shù)字頻率合成技術(shù)(DirectDigitalSynthesize,DDS)是繼直接頻率合成技術(shù)和鎖相式頻率合成技術(shù)之后的第三代頻率合成技術(shù)。它釆用全數(shù)字技術(shù),并從相位角度出發(fā)進(jìn)行頻率合成。隨著微電子技術(shù)和數(shù)字集成電路的飛速發(fā)展,以及電子工程領(lǐng)域的實(shí)際需要,DDS口益顯露出優(yōu)于傳統(tǒng)頻率合成技術(shù)的一些性能,高分辨率、極短的頻率切換時(shí)間、相位噪聲低、便于集成等,逐步成為現(xiàn)代頻率合成技術(shù)中的佼佼者。目前,DDS的設(shè)計(jì)大多是應(yīng)用HDL(HardwareDescriptio
2、nLanguage)對其進(jìn)行邏輯描述。整個(gè)設(shè)計(jì)可以很容易地實(shí)現(xiàn)參數(shù)改變和設(shè)計(jì)移植,給設(shè)計(jì)者帶來很大的方便。VerilogHDL就是其中一種標(biāo)準(zhǔn)化的碩件描述語言,它不僅可以進(jìn)行功能描述,還可以對仿真測試矢量進(jìn)行設(shè)i+oAltera公司開發(fā)的QuartusII設(shè)計(jì)軟件,提供了VerilogHDL的設(shè)計(jì)界面以及編譯平臺(tái),并且該公司還集成了可供程序下載的FPGA器件CYCLONEII系列芯片,這樣大大縮短了DDS的設(shè)計(jì)周期。1DDS的設(shè)計(jì)原理DDS的原理圖如圖1所示。DDS實(shí)現(xiàn)頻率合成主要是通過查表的方式進(jìn)行的。正
3、弦查詢表是一個(gè)只讀存儲(chǔ)器(ROM),以相位為地址,存有「個(gè)或多個(gè)按0。?360°相位劃分幅值的正弦波幅度信息。相位累加器對頻率控制字進(jìn)行累加運(yùn)算,若需要還可以加入相位控制字,得到的結(jié)果作為正弦波查詢表的地址。正弦查詢表的輸出為數(shù)字化正弦幅度值,通過D/A轉(zhuǎn)換器轉(zhuǎn)化為近似正弦波的階梯波,再通過低通濾波器濾除高頻成分和噪聲最終得到一個(gè)純正度很高的正眩波。刨位圖1DDS原理樞圖1.1建模如圖2所示正眩波y=sin(2Trx),若以f量化的量化頻率對其幅度值進(jìn)行量化,一個(gè)周期可以得到M二f量化個(gè)幅度值。將這些幅度值
4、按順序存入到ROMo相位累加器在參考時(shí)鐘的驅(qū)動(dòng)下,每來1個(gè)脈沖,輸出就會(huì)增加1個(gè)步長相位增fiX,輸出數(shù)據(jù)作為地址送入ROM屮,讀出對應(yīng)的幅度值形成相應(yīng)的波形。1.2參數(shù)設(shè)定DDS輸出信號頻率:人=兀XX/2N其中,X為頻率累加器設(shè)定值;N為相位累加器位數(shù);fc為參考時(shí)鐘頻率。例如,假定基準(zhǔn)時(shí)鐘為200MHz累加器的位數(shù)為32,頻率控制字X為:0X08000000H,即為227,貝I」:/o=200X227232=6.25MHz再設(shè)定頻率控制字X為0X80000000H,即為231,則:人=200X2^/2
5、^=100MHz可見,理論上通過設(shè)定DDS相位累加器位數(shù)N、頻率控制字X和基準(zhǔn)時(shí)鐘fc的值,就可以得到任一頻率的輸出。頻率分辨率為:fres=fc/2N,由參考時(shí)鐘和累加器的位數(shù)決定,當(dāng)參考時(shí)鐘的頻率越高,相位累加器的位數(shù)越高,所得到的頻率分辨率就越高。1.3方案的選擇在利用FPGA制作DDS時(shí),相位累加器是決定DDS性能的一個(gè)關(guān)鍵部分。一方面可以利用進(jìn)位鏈來實(shí)現(xiàn)快速、高效的電路結(jié)構(gòu),同時(shí)氏的進(jìn)位鏈會(huì)減少其他邏輯的布線資源,限制整個(gè)系統(tǒng)速度的提高;另一方面可以利用流水線技術(shù)提高工作頻率,但系統(tǒng)頻率轉(zhuǎn)換速度會(huì)
6、相對降低。在選擇累加器實(shí)現(xiàn)力案時(shí)需要綜合考慮。正弦波查詢表ROM也是制作的重點(diǎn)。在FPGA中ROM表的尺寸隨著地址位數(shù)或數(shù)據(jù)位數(shù)的增加呈指數(shù)遞增,如何在滿足性能的前提下節(jié)省資源開銷。一方而通過相位累加器的輸出截?cái)喾绞?,例如?2位的相位累加器結(jié)果中提取高16位作為ROM的查詢地址,由此而產(chǎn)生的誤差會(huì)對頻譜純度有影響,但是對波形的精度的影響是可以忽略的;另一方面可以根據(jù)信號周期對稱性來壓縮ROM的尺寸,這時(shí)系統(tǒng)硬件設(shè)計(jì)復(fù)雜度會(huì)有所增加。因此,需要選取合適的參數(shù)和ROM壓縮技術(shù),在滿足系統(tǒng)性能的前提下使得系統(tǒng)盡
7、量優(yōu)化。2VerilogHDL實(shí)現(xiàn)DDS模塊2.1相位累加器moduleacc(aclr?clocktdataaiinputaclr>clocki//輸入輸出瑞口說明input[31:0]daiaa^datahioutput[31:0]resultireg[31=0]result:reg⑶2]Aialways@(posedgeclockorposedgeack)〃功能實(shí)現(xiàn)beginif(aclr)result2=50jekebeginA=dataa4"Asresult=A-Fdatabsendendendm
8、odule上述為相位累加器的VerilogHDL功能實(shí)現(xiàn),其中數(shù)據(jù)寬度為32位。同時(shí)利用QuartusII進(jìn)行波形仿真見圖3。對應(yīng)的模塊符號見圖4。圖2正弒潑童化圖3相位模塊仿真結(jié)果2.2ROM正弦查詢表根據(jù)DDS的原理,將正弦波形的量化數(shù)據(jù)存儲(chǔ)于波形查詢表ROM屮,即可完成正眩波發(fā)生的功能。Altera公司提供了LPMROM(ROM兆函數(shù)),這里只需借助Matlab生成.mif文件,并加載到LPMROM中即可得