基于流水線(xiàn)結構的DDS多功能信號發(fā)生器設計
第一級流水線(xiàn)經(jīng)過(guò)全加器之后得出運算結果sum[0..7]和進(jìn)位信號,sum[0..7]作為本級的輸出,它是整個(gè)累加結果的最低8位,而進(jìn)位信號經(jīng)過(guò)一個(gè)reg1之后作為下一級全加器的輸入。
第二級流水線(xiàn)的輸入信號是a[8..15],因為上一級共由兩級數據鎖存器構成,所以在做全加運算之前先分別將輸入信號和本級的反饋信號經(jīng)過(guò)2次數據鎖存,然后再與來(lái)自上一級的進(jìn)位信號進(jìn)行全加運算,運算之后的結果作為本級的輸出sum[8..15],同時(shí)產(chǎn)生進(jìn)位信號參與下一級的運算。第三級與第四級的工作原理同上,系統每增加一級流水線(xiàn)結構,鎖存器也會(huì )隨之增加一級。
圖3為在QuartusⅡ環(huán)境下得到的四級流水線(xiàn)仿真波形,時(shí)鐘信號的頻率是200 MHz,占空比為50 %,偏移量為0。為觀(guān)察方便,輸入控制字a和累加結果sum均用無(wú)符號十進(jìn)制數來(lái)表示,且輸入控制字設定為32,由波形圖可見(jiàn),該系統可以實(shí)現32位的相位累加。
3 任意波形發(fā)生器的設計及實(shí)現
DDS可以根據ROM中存儲數據的不同產(chǎn)生多種波形。在QuartusⅡ開(kāi)發(fā)環(huán)境下搭建DDS系統模型需要訂制波形存儲器ROM,根據所需精度的不同,ROM中存儲的采樣點(diǎn)數也不同。當所需波形數據非常簡(jiǎn)單時(shí),可以在QuartusⅡ中定制ROM時(shí)直接將數據寫(xiě)入新建的mif文件,然后保存即可,當所需波形數據較為復雜時(shí),可以通過(guò)Matlab來(lái)自動(dòng)生成所需波形的幅度數據,然后再通過(guò)調用mif文件來(lái)達到預期目標。以256個(gè)點(diǎn)的正弦波為例加以分析說(shuō)明。
產(chǎn)生正弦波的Matlab程序如下:
width定義的是位寬,depth是深度,也就是將來(lái)生成的mif文件含有多少個(gè)存儲單元,在此處,設定了數據寬度為8位,存儲單元數為256,將來(lái)在QuartusⅡ中定制ROM時(shí)也要相應地將存儲單元數設定為256,根據DDS的基本原理,隨著(zhù)設計點(diǎn)數的增加,所得的波形數據會(huì )更加準確,通過(guò)D/A轉化后在示波器上觀(guān)測的波形也越精準,但所需ROM的存儲空間將會(huì )呈指數增長(cháng),所以要根據實(shí)際的需要來(lái)綜合考慮存儲單元的個(gè)數。將上述指令在Matlab環(huán)境中運行之后就能夠得到所需mif文件。
在mif文件生成之后需要將此文件添加進(jìn)入DDS系統的ROM中,然后進(jìn)行全局的編譯,編譯通過(guò)后就可以進(jìn)行工程的下載。具體的波形可以通過(guò)示波器來(lái)分析,或者使用Quartus Ⅱ自帶的嵌入式邏輯分析儀來(lái)分析。在使用嵌入式邏輯分析儀分析和觀(guān)察時(shí),采樣信號要根據DDS的時(shí)鐘信號來(lái)確定,待測信號設定為DDS的輸出信號,當工程下載到FPGA芯片后,待測信號通過(guò)USB-BLASTER反饋至嵌入式邏輯分析儀中,選擇不同的數據類(lèi)型,可以觀(guān)察到以十進(jìn)制數據表示的數字信號或者以實(shí)際波形表示的模擬信號。
評論