電子科技大學(xué)電子工程學(xué)院 四川理工學(xué)院自動(dòng)化與電子信息學(xué)院 彭 昭
電子科技大學(xué)電子工程學(xué)院 胡進(jìn)峰
基于FPGA的直接數(shù)字頻率合成器的優(yōu)化設(shè)計(jì)
電子科技大學(xué)電子工程學(xué)院 四川理工學(xué)院自動(dòng)化與電子信息學(xué)院 彭 昭
電子科技大學(xué)電子工程學(xué)院 胡進(jìn)峰
介紹了DDS的基本工作原理,針對(duì)傳統(tǒng)DDS存在的主要問題,提出了基于流水線結(jié)構(gòu)的累加器和基于波形對(duì)稱的ROM優(yōu)化設(shè)計(jì),并在開發(fā)軟件Quartus II上仿真,驗(yàn)證了優(yōu)化設(shè)計(jì)的正確性。不僅提高了系統(tǒng)的運(yùn)算速度,而且也節(jié)省了硬件資源。
FPGA;DDS;流水線結(jié)構(gòu);仿真
隨著科技的飛速發(fā)展,對(duì)信號(hào)發(fā)生器的要求越來越高,傳統(tǒng)分立式模擬電路來難滿足[1]。直接數(shù)字頻率合成法(Direct Digital Frequency Synthesis簡(jiǎn)稱DDFS或DDS)具有頻率穩(wěn)定度高、分辨率高、切換時(shí)間短、相位變化連續(xù)、易于實(shí)現(xiàn)各種數(shù)字調(diào)制、集成度高等特點(diǎn),能很好的滿足各種需求[2]。
因此,DDS技術(shù)在通信、雷達(dá)、電子對(duì)抗、儀器測(cè)試等領(lǐng)域都有廣泛的應(yīng)用。專用DDS芯片在控制方式、頻率控制等方面不靈活,很多時(shí)候不能滿足系統(tǒng)的要求,利用FPGA來設(shè)計(jì)符合自己需要的DDS系統(tǒng)就是一個(gè)很好的解決方法。
DDS是利用數(shù)字相位累加產(chǎn)生線性變化的數(shù)字相位輸出信號(hào),通過波形數(shù)據(jù)查找表,獲得對(duì)應(yīng)于相位信號(hào)的數(shù)字化幅度信號(hào),再通過數(shù)模轉(zhuǎn)換器(DAC)獲得模擬信號(hào)輸出[3]。一個(gè)基本的DDS系統(tǒng)由基準(zhǔn)時(shí)鐘fclk、相位累加器、相位/幅值查找表(ROM)、數(shù)模轉(zhuǎn)換器(DAC)及低通濾波器(LPF)組成,如圖1所示。
圖1 DDS原理框圖
圖3 優(yōu)化的ROM結(jié)構(gòu)框圖
工作原理:預(yù)先在ROM中存入所需波形的幅度編碼,每來一個(gè)時(shí)鐘信號(hào),N位的相位累加器將頻率控制字K累加,同時(shí)累加器輸出序列的高M(jìn)位去尋址相位/幅值查找表,得到一系列離散的幅度編碼(Y位)。該幅碼經(jīng)數(shù)模轉(zhuǎn)換后得到模擬的階梯電壓,再經(jīng)低通濾波器平滑后,就可得到所需要的波形信號(hào)。
DDS的輸出信號(hào)頻率fout=K·fclk/2N,頻率分辨率為Δfout=foutmin/2N,實(shí)際最高輸出頻率取foutmax=fclk×40%,相對(duì)帶寬為foutmax/foutmin=2N×40%。
傳統(tǒng)DDS結(jié)構(gòu)的運(yùn)算速度受相位累加器運(yùn)算速率的限制,輸出頻率分辨率受相位/幅值查找表(ROM)存儲(chǔ)容量的限制。大多數(shù)情況下頻率控制字的位數(shù)都為20位以上,而傳統(tǒng)DDS結(jié)構(gòu)的相位累加器是采用一級(jí)式全加器和寄存器實(shí)現(xiàn)的。多位數(shù)的加法計(jì)算是由低到高串行進(jìn)行的,這樣會(huì)因?yàn)槲粩?shù)多而影響計(jì)算速度。傳統(tǒng)DDS結(jié)構(gòu)的相位/幅值查找表(ROM)是沒有經(jīng)過優(yōu)化設(shè)計(jì),而是直接將波形的采樣數(shù)據(jù)放入ROM,這樣會(huì)占用很大的空間,而硬件資源是有限的。
相位累加器是DDS的關(guān)鍵部件之一,它的運(yùn)算速度直接影響DDS的運(yùn)算速度。為了改進(jìn)傳統(tǒng)DDS結(jié)構(gòu)因頻率控制字位數(shù)多而帶來的計(jì)算速度問題,采用DSP芯片設(shè)計(jì)中的流水線結(jié)構(gòu),并在每級(jí)流水線中設(shè)計(jì)了反饋電路,形成了累加流水線工作狀態(tài)。將32位頻率控制字的相位累加器采用4級(jí)流水線結(jié)構(gòu)實(shí)現(xiàn),每級(jí)8位,原理如圖2所示。
圖2 32位4級(jí)流水線結(jié)構(gòu)累加器框圖
32位流水線累加器共4級(jí)鎖存,4級(jí)加法。第1級(jí)鎖存用于存儲(chǔ)并穩(wěn)定32位輸入數(shù)據(jù),中間每一級(jí)8位加法器均搭配一級(jí)寄存器,這樣可以減少毛刺。由流水線的原理可知,該累加器的整體速度取決于8位加法器。這樣整體計(jì)算速度比傳統(tǒng)的速度就提高了3倍。
由于QUARTUSⅡ軟件中提供了參數(shù)化的宏功能模塊庫(LPM),通過改變LPM中模塊的某些參數(shù),可以達(dá)到設(shè)計(jì)的要求,所以LPM是提高電路設(shè)計(jì)的一種有效方法[4]。本設(shè)計(jì)中,相位累加器的各級(jí)加法器均調(diào)用參數(shù)化模塊庫中的LPM_ADD_SUB模塊,形成四級(jí)流水線工作狀態(tài),并在每一級(jí)流水線中插入幾個(gè)寄存器來提高系統(tǒng)的數(shù)據(jù)吞吐率。
根據(jù)波形的對(duì)稱性,可以對(duì)采樣波形數(shù)據(jù)的存儲(chǔ)進(jìn)行優(yōu)化,以便節(jié)省ROM空間。以正弦波為例,在[0,π]區(qū)間內(nèi)其波形是關(guān)于π/2對(duì)稱的,因此其[π/2,π]區(qū)間內(nèi)的波形可以通過對(duì)[0,π/2]的波形關(guān)于π/2進(jìn)行翻轉(zhuǎn)得到;同理[π,2π]區(qū)間內(nèi)的波形可以通過對(duì)[0,π]的波形關(guān)于橫軸翻轉(zhuǎn)得到。所以實(shí)際上ROM只需要存儲(chǔ)[0,π/2]內(nèi)的正弦函數(shù)值,通過適當(dāng)控制即可實(shí)現(xiàn)輸出一個(gè)完整周期的正弦函數(shù)值,從而大大減小存儲(chǔ)器的大小。優(yōu)化的ROM結(jié)構(gòu)框圖如圖3所示。
圖4 優(yōu)化設(shè)計(jì)后的DDS仿真波形圖
圖5 優(yōu)化后ROM輸出正弦函數(shù)值仿真結(jié)果
首先將相位寄存器輸出的高M(jìn)位總地址分為3部分:最高位作為數(shù)據(jù)的符號(hào)位,實(shí)現(xiàn)對(duì)數(shù)據(jù)正負(fù)的轉(zhuǎn)換,次高位作為地址的標(biāo)志位,實(shí)現(xiàn)對(duì)ROM地址的轉(zhuǎn)換。而剩下的低M-2位通過地址轉(zhuǎn)換器后作為ROM地址位。如果將最高位和次高位合并起來看,它們實(shí)質(zhì)上是構(gòu)成一個(gè)象限選擇器,其值從00至11分別代表第1、2、3、4象限。這樣只需傳統(tǒng)的DDS結(jié)構(gòu)的1/4的存儲(chǔ)空間。
用QUARTUSⅡ軟件中提供了參數(shù)化的宏功能模塊庫(LPM)來設(shè)計(jì),lpm_rom的波形存儲(chǔ)表只需要產(chǎn)生數(shù)據(jù)文件*.mif,然后直接在定制lpm_rom時(shí),添加數(shù)據(jù)文件即可,但這種方法在FPGA支持內(nèi)部嵌入式陣列塊(EAB)時(shí)才可以使用。mif文件是在編譯和仿真過程中作為存儲(chǔ)器(ROM)初始化輸入的文件,有多種方式可以創(chuàng)建mif文件。
通過FPGA的開發(fā)軟件Quartus II,將編譯綜合后的DDS設(shè)計(jì)文件用軟件自帶的仿真器進(jìn)行仿真,仿真波形如圖4所示,通過仿真波形驗(yàn)證了設(shè)計(jì)是正確的。利用Quartus II自帶嵌入式邏輯分析儀Signal Tap II采集ROM輸出的數(shù)據(jù)所形成的波形,如圖5所示。從輸出波形可以驗(yàn)證設(shè)計(jì)的正確性。
本文通過構(gòu)建流水線結(jié)構(gòu)的相位累加器和波形存儲(chǔ)表ROM的優(yōu)化設(shè)計(jì),改善了DDS傳統(tǒng)機(jī)構(gòu)的所存在的兩個(gè)主要問題。設(shè)計(jì)調(diào)用QUARTUSⅡ軟件中提供了參數(shù)化的宏功能模塊庫(LPM),對(duì)設(shè)計(jì)過程進(jìn)行了詳細(xì)的描述,并仿真驗(yàn)證了優(yōu)化設(shè)計(jì)的正確性。經(jīng)實(shí)驗(yàn)測(cè)試,在QUARTUS II環(huán)境下選取同一種器件,采用優(yōu)化后的DDS設(shè)計(jì)方法,不僅提高了工作頻,而且大大節(jié)省了資源。
[1]劉凌,胡永生譯.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003,5.
[2]陳風(fēng)波,冒燕,李海鴻.基于FPGA的世界數(shù)字頻率合成器設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(5):197-199.
[3]鄒彥,莊嚴(yán)等.EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007,4.
[4]潘松,王國(guó)棟.VHDL實(shí)用教程[M].成都:電子科技大學(xué)出版社,2001,3.
Direct digital frequency synthesizer based on FPGA optimization design
Peng Zhao1,2Hu Jinfeng1
(1.University of Electronic Science and technology,college of Electronic Engineering,Chengdu Sichuan,611731,China;2.Sichuan University of Science and Engineering,college of automation and electronic information,Zigong Sichuan,643000,China)
The basic principle of DDS was introduced.In the light of traditional DDS problems,is proposed based on pipeline structure of the accumulator and based on waveform symmetry ROM optimization design,and in the development of software Quartus II simulation,verif i ed the correctness of design optimization.Not only improves the operation speed of system,but also can save hardware resource.
FPGA;DDS;Pipeline structure;Simulation
彭昭(1982—),男,四川自貢人,實(shí)驗(yàn)師,主要從事信息與信號(hào)處理方面的研究。