蔣志勇
(1.桂林電子科技大學(xué) 廣西 桂林 541004;2.桂林航天工業(yè)高等??茖W(xué)校 廣西 桂林 541004)
基于FPGA的DDS波形發(fā)生器設(shè)計(jì)
蔣志勇12
(1.桂林電子科技大學(xué) 廣西 桂林 541004;2.桂林航天工業(yè)高等??茖W(xué)校 廣西 桂林 541004)
信號(hào)發(fā)生器作為電子技術(shù)領(lǐng)域中最基本的電子儀器,廣泛應(yīng)用于各個(gè)領(lǐng)域中。隨著電子信息技術(shù)的發(fā)展,對(duì)其性能的要求也越來(lái)越高,如要求頻率穩(wěn)定性高、轉(zhuǎn)換速度快,具有調(diào)幅、調(diào)頻、調(diào)相等功能,另外還經(jīng)常需要兩路正弦信號(hào)不僅具有相同的頻率,同時(shí)要有確定的相位差。因此基于FPGA的DDS波形發(fā)生器,具有一定的實(shí)際意義。以FPGA芯片EP2C8Q208C8為核心,輔以必要的模擬電路,在Verilog編寫的程序控制下,構(gòu)成了一個(gè)基于直接數(shù)字頻率合成技術(shù)的波形發(fā)生器。
FPGA;DDS;波形發(fā)生器
隨著半導(dǎo)體技術(shù)的發(fā)展,F(xiàn)PGA的集成度越來(lái)越高,資源越來(lái)越多,單位成本變得相對(duì)便宜。相對(duì)專用集成電路(ASIC),F(xiàn)PGA有更短的開發(fā)周期,如果產(chǎn)品數(shù)量不大,F(xiàn)PGA更有低成本的優(yōu)勢(shì)。FPGA擅長(zhǎng)邏輯和高速可并行運(yùn)算,不是通用DSP芯片可比擬的,一般單片機(jī)更是望塵莫及。
直接數(shù)字頻率合成(簡(jiǎn)稱 DDS)技術(shù)是一種新的全數(shù)字的頻率合成技術(shù),從相位的角度出發(fā)直接合成所需波形。這種技術(shù)由美國(guó)學(xué)者J.Tiercy,M.Rader和B.Gold于1971年首次提出,但限于當(dāng)時(shí)的技術(shù)和工藝水平,DDS技術(shù)僅僅在理論上進(jìn)行了一些探討,而沒(méi)有應(yīng)用到實(shí)際中去。近30年來(lái),隨著VLSI、FPGA、CPLD等技術(shù)的出現(xiàn)以及對(duì)DDS理論上的進(jìn)一步探討,使得DDS技術(shù)得到了飛速的發(fā)展。DDS以有別于其它頻率合成方法的優(yōu)越性能和特點(diǎn)成為現(xiàn)代頻率合成技術(shù)中的姣姣者。
DDS的主要優(yōu)點(diǎn)有:(1)頻率轉(zhuǎn)換快,一般在納秒級(jí)(2)分辨率高(3)頻率合成范圍寬(4)相位噪聲低,信號(hào)純度高(5)可控制相位,在頻率變換時(shí)也能保持相位聯(lián)系(6)生成的正弦/余弦信號(hào)正交特性好等。與此同時(shí),用FPGA設(shè)計(jì)DDS電路比采用專用DDS芯片更為靈活。因?yàn)橹灰淖僐OM中的數(shù)據(jù),就可以產(chǎn)生任意波形,因而具有相當(dāng)大的靈活性。FPGA芯片還支持在線升級(jí),將DDS設(shè)計(jì)嵌入到FPGA芯片所構(gòu)成的系統(tǒng)中,并采用流水線技術(shù),其系統(tǒng)成本并不會(huì)增加多少,而購(gòu)買專用芯片的價(jià)格則是前者的很多倍。因此,采用FPGA來(lái)設(shè)計(jì)DDS系統(tǒng)具有很高的性能價(jià)格比。
DDS問(wèn)世之初,構(gòu)成DDS元器件的速度的限制和數(shù)字化引起的噪聲這兩個(gè)主要缺點(diǎn)阻礙了DDS的發(fā)展與實(shí)際應(yīng)用。近年超高速數(shù)字電路的發(fā)展以及對(duì)DDS的深入研究,DDS的最高工作頻率以及噪聲性能已接近并達(dá)到鎖相頻率合成器相當(dāng)?shù)乃健kS著這種頻率合成技術(shù)的發(fā)展,現(xiàn)已廣泛應(yīng)用于通訊、導(dǎo)航、雷達(dá)、遙控遙測(cè)、電子對(duì)抗以及現(xiàn)代化的儀器儀表工業(yè)等領(lǐng)域。
設(shè) 計(jì) 所 用 到 的 是 ATERAL公 司 的 CycloneII系 列 的EP2C8Q208C8N,擁有兩個(gè)鎖相環(huán),8000多的LE單元,4KB的RAM和64KB的ROM等,最高運(yùn)行頻率可達(dá)到250MHz。
圖1 系統(tǒng)框圖
設(shè)計(jì)主要是基于FPGA的DDS波形發(fā)生器的實(shí)現(xiàn),要求輸出頻率范圍在1Hz~5 MHz,采用EP2C8硬件為核心平臺(tái),再加上FPGA的外圍電路,利用至頂向下的方法,將數(shù)字頻率合成器(DDS)、存儲(chǔ)器和 I/O接口等硬件設(shè)備集中在一片F(xiàn)PGA上,有利于直接數(shù)字頻率合成技術(shù)產(chǎn)生所需波形,通過(guò)狀態(tài)機(jī)控制解決不同頻率和幅值的實(shí)現(xiàn),其中片內(nèi)正弦表 ROM傳出的數(shù)據(jù)經(jīng)數(shù)字乘法器再經(jīng)THS5651完成數(shù)模轉(zhuǎn)換,通過(guò)控制乘法器的乘法系數(shù)實(shí)現(xiàn)信號(hào)幅值的控制,之后再將輸出接入示波器的輸入端,即可觀察所設(shè)計(jì)的波形。開發(fā)板提供的主時(shí)鐘頻率f=50 MHz,由于各個(gè)模塊需要不同時(shí)鐘信號(hào),按鍵及控制電路所需時(shí)鐘要求并不高,10kHz就行,而累加器、查詢表ROM模塊和DA驅(qū)動(dòng)需要高達(dá)100MHz的時(shí)鐘,所以在此調(diào)用quartusII軟件自帶的PLL單元生成100MHz和20MHz兩種頻率,再用一個(gè)分配器將20MHz的時(shí)鐘分頻到10kHz,這樣系統(tǒng)各模塊要求的時(shí)鐘頻率都已生成。系統(tǒng)框圖如圖1所示。
1.1.1 按鍵輸入信號(hào)處理模塊的設(shè)計(jì)
按鍵輸入信號(hào)處理由按鍵消抖和單脈沖發(fā)生器兩部分組成。用Verilog語(yǔ)言編程的有限狀態(tài)機(jī)的設(shè)計(jì)方法來(lái)實(shí)現(xiàn)按鍵的消抖,經(jīng)仿真分析和下載實(shí)現(xiàn),這種方法設(shè)計(jì)的消抖電路能夠很好地實(shí)現(xiàn)電路功能,進(jìn)行快速按鍵時(shí)都能保證每按一次作一次的響應(yīng),且性能穩(wěn)定。
鍵控單脈沖發(fā)生器是利用上述電路得到穩(wěn)定的信號(hào),再用兩個(gè)D觸發(fā)器和一個(gè)與門產(chǎn)生單脈沖。
1.1.2 系統(tǒng)控制模塊的設(shè)計(jì)
系統(tǒng)控制模塊主要由波形選擇單元、頻率控制單元和幅值控制單元和相位累加器組成。其中波形選擇、頻率控制和幅值控制的時(shí)鐘頻率為10K,相位累加器頻率為100MHz。
頻率控制單元主要是實(shí)現(xiàn)控制頻率控制字,由公式fout=M×fC2N可知,當(dāng)系統(tǒng)時(shí)鐘和相位累加器位數(shù)N一定,只要改變頻率控制字M就可改變輸出頻率。因?yàn)樵O(shè)計(jì)要求頻率精度為1Hz,根據(jù)要求及現(xiàn)有條件,確定系統(tǒng)時(shí)鐘頻率為100MHz,相位累加器位數(shù)N為32位,由公式Δfmin=fC2N可得頻率分辨率為0.023283064,所以頻率控制字的大小需為43的倍數(shù)就可實(shí)現(xiàn)1Hz的精度要求。由于輸出頻率范圍較大,且按鍵有限,故設(shè)置步進(jìn)單位為1Hz、100Hz、10kMz、1MHz四個(gè)檔位,由一個(gè)按鍵通過(guò)狀態(tài)機(jī)實(shí)現(xiàn)步進(jìn)單位選擇,再由兩個(gè)按鍵分別實(shí)現(xiàn)頻率增減控制。
幅值控制單元是通過(guò)改變幅值控制字實(shí)現(xiàn)輸出波形幅度的控制,因?yàn)榉担ǚ宸逯担┓秶?~5V,所以設(shè)計(jì)兩個(gè)步進(jìn)單位0.1V和1V,通過(guò)一個(gè)按鍵實(shí)現(xiàn)步進(jìn)選擇,再用兩個(gè)按鍵分別實(shí)現(xiàn)增減控制。相位累加器相位累加器是實(shí)現(xiàn)DDS的核心之一,它由一個(gè)N位字長(zhǎng)的二進(jìn)制加法器和一個(gè)固定時(shí)鐘脈沖取樣的N位相位寄存器組成。相位寄存器的輸出與加法器的一個(gè)輸入端在內(nèi)部相連,加法器的另一個(gè)輸入端是外部輸入的頻率控制字X。這樣,在每個(gè)時(shí)鐘到達(dá)時(shí),相位寄存器采樣上個(gè)時(shí)鐘周期內(nèi)相位寄存器的值與頻率控制字X之和,并作為相位累加器在這一時(shí)鐘周期的輸出。頻率控制字X決定了相應(yīng)的相位增量,相位累加器則不斷地對(duì)該相位增量進(jìn)行線性累加,當(dāng)相位累加器積滿兩時(shí)就會(huì)產(chǎn)生一次溢出,從而完成一個(gè)周期性的動(dòng)作,這個(gè)動(dòng)作周期即是DDS合成信號(hào)的一個(gè)頻率周期。于是,輸出信號(hào)波形的頻率表示式為f0=(fC× )K 2N,由該式可知,輸出信號(hào)頻率主要取決于頻率控制字X,當(dāng)X增大時(shí),f0可以不斷的增高,由抽樣定理,最高輸出頻率不得大于fC2,而根據(jù)實(shí)驗(yàn)所得,實(shí)際工作頻率小于fC3時(shí)較為合適。
本設(shè)計(jì)中只須將頻率控制字送入相位累加器中然后取其高12位輸出做為查找表的地址,這樣在符合頻率精度的前提下能夠節(jié)省ROM的資源。
1.1.3 顯示模塊
顯示模塊包括頻率顯示模塊和電壓顯示模塊,分別各用一塊四位七段數(shù)碼管實(shí)現(xiàn)。
1.1.4 ROM查找表設(shè)計(jì)
FPGA的結(jié)構(gòu)是由基于半定制門陳列的設(shè)計(jì)思想而得到的。所用的EP2C8Q208C8是查找表型FPGA,利用QuartusII綜合可以自動(dòng)編譯LPMROM元件的文件,在EP2C8Q208C8的EAB上產(chǎn)生ROM功能。利用QuartusII自帶的LPM ROM核預(yù)置已生成的波形.mif文件。因?yàn)镈AC是10位的,又考慮到數(shù)字信號(hào)存在的雜散波干擾,根據(jù)實(shí)驗(yàn)可知,在一定范圍內(nèi)ROM單元每增加一位地址就可減少6dB的雜散干擾,綜合考慮,取ROM地址線為12位,輸出數(shù)據(jù)為10位。其中LPM_FILE的“.mif”中存放波形的值,為了保證波形的平滑,設(shè)計(jì)時(shí)將一個(gè)周期分為1024個(gè)點(diǎn)。本設(shè)計(jì)中的波形文件.mif是用波形生成軟件得到。
1.1.5 數(shù)字乘法器模塊
數(shù)字乘法器主要功能是實(shí)現(xiàn)波形幅值的控制。由于經(jīng)查找表輸出的波形幅值已是最大,所以該數(shù)字乘法器實(shí)際是一個(gè)小數(shù)點(diǎn)乘法器或者叫做分?jǐn)?shù)乘法器,因?yàn)楝F(xiàn)有的乘法器IP核都是基于整數(shù)相乘的,由總控制模塊輸出的幅值控制字也是無(wú)符號(hào)整型的,所以將幅值控制字與波形量化的幅值數(shù)相乘,再左移,左移位數(shù)直接影響幅值的精度和誤差,綜合考慮,取左移位數(shù)為6,能很好實(shí)現(xiàn)要求。
1.1.6 DAC芯片THS5651驅(qū)動(dòng)模塊
THS5651是一個(gè)10位分辨率的數(shù)字模擬轉(zhuǎn)換器(DAC),特別適合用于數(shù)字?jǐn)?shù)據(jù)傳輸?shù)挠芯€和無(wú)線通信系統(tǒng)。THS5651是高速低功耗COMS數(shù)字模擬轉(zhuǎn)換器,它在提供優(yōu)良的AC和DC性能同時(shí),支持更新率可達(dá)100MSPS。
THS5651在時(shí)鐘CLK的上升沿鎖存數(shù)字信號(hào),在下一個(gè)時(shí)鐘將轉(zhuǎn)換好的模擬信號(hào)輸出。所以只要保證在轉(zhuǎn)換CLK的上沿時(shí)ROM輸出數(shù)據(jù)穩(wěn)定即可正確轉(zhuǎn)換。將芯片工作時(shí)鐘設(shè)為100MHz可以對(duì)速率為100M/S的數(shù)據(jù)流進(jìn)行轉(zhuǎn)換。
硬件電路包括FPGA核心板和與之配合的外圍接口電路,外圍接口電路又包含按鍵LED指示電路、顯示電路和DA轉(zhuǎn)換電路。
DA轉(zhuǎn)換電路由電源部分、DA芯片 THS5651和高速運(yùn)放THS4001組成。高速運(yùn)放THS4001主要是實(shí)現(xiàn)低通濾波功能,因?yàn)榻?jīng)THS5651輸出的電流外接50歐電阻轉(zhuǎn)化為電壓后的波形并不平滑,還需低通濾波器(6 MHz以下)對(duì)轉(zhuǎn)換的波形進(jìn)行濾波才能得到干凈的波形。又由于THS4001需要雙電源供電,同時(shí)為了避免FPGA電路部分對(duì)DA和運(yùn)放的干擾,為此將DA轉(zhuǎn)換板的電源獨(dú)立。
調(diào)試過(guò)程主要圍繞FPGA+DAC為核心的DDS信號(hào)輸出、頻率顯示進(jìn)行及按鍵控制進(jìn)行。利用QuartusII提供的嵌入式內(nèi)置邏輯分析儀,通過(guò)JTAG口實(shí)時(shí)觀察FPGA內(nèi)部信號(hào),以便及時(shí)發(fā)現(xiàn)、定位和修復(fù)FPGA當(dāng)中的存在的邏輯錯(cuò)誤。頻率顯示和按鍵控制調(diào)試主要是通過(guò)建立波形仿真文件單獨(dú)對(duì)按鍵模塊或頻率顯示模塊進(jìn)行仿真,以便發(fā)現(xiàn)其邏輯錯(cuò)誤并改正。最后接上外圍接口硬件,實(shí)時(shí)按鍵控制觀察波形和顯示,并調(diào)整DAC的輸出電流和運(yùn)放外接阻值參數(shù),直至調(diào)出理想波形為止。
周期性波形包括頻率和幅值可調(diào)的正弦波、方波和三角波。用示波器來(lái)測(cè)試波形的頻率和幅值(峰峰值),測(cè)試結(jié)果表明頻率誤差均在0.2%以下,幅度誤差均在2%以下。達(dá)到設(shè)計(jì)要求。
設(shè)計(jì)以FPGA為核心,利用DDS技術(shù)和獨(dú)特的控制算法實(shí)現(xiàn)了信號(hào)生成和控制顯示等功能,在系統(tǒng)設(shè)計(jì)過(guò)程中,力求硬件線路簡(jiǎn)單,充分發(fā)揮FPGA設(shè)計(jì)靈活的特點(diǎn),來(lái)滿足系統(tǒng)設(shè)計(jì)要求。
[1]黃智偉,王彥,陳瓊,等.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.
[2]劉波.精通Verilog HDL語(yǔ)音編程[M].北京:電子工業(yè)出版社,2007.
[3]夏宇文.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].2版.北京:北京航空航天大學(xué)出版社, 2008.
[4]清華遠(yuǎn)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2008.
[5]王衛(wèi)東.模擬電子電路基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2003.
蔣志勇(1966—),男,廣西桂林人,桂林電子科技大學(xué)信息與通信學(xué)院2006級(jí)工程碩士研究生,桂林航天高等專科學(xué)校電子工程系教師,副教授。
江廣霞]