數(shù)字頻率合成器的FPGA實(shí)現(xiàn)
摘要:介紹了DDFS的原理和Altera公司的FPGA器件ACEX 1K的主要特點(diǎn),給出了用ACEX 1K系列器件EP1K10TC144-1實(shí)現(xiàn)數(shù)字頻率合成器的工作原理、設(shè)計(jì)思路、電路結(jié)構(gòu)和仿真結(jié)果。 關(guān)鍵詞:DDFS;FPGA;快速通道互連;仿真 1 概述 1971年,美國(guó)學(xué)者J.Tierncy,C.M.Rader和B.Gold提出了以全數(shù)字技術(shù),從相位概念出發(fā)直接合成所需波形的一種新的頻率合成方法。限于當(dāng)時(shí)的技術(shù)和器件水平,它的性能指標(biāo)尚不能與已有技術(shù)相比,故未受到重視。近30年間,隨著集成電路技術(shù)和器件水平的提高,一種新的頻率合成技術(shù)――直接數(shù)字頻率合成(DDFS)得到了飛速的發(fā)展,它以有別于其它頻率合成方法的優(yōu)越性能和特點(diǎn)成為現(xiàn)代頻率合成技術(shù)中的佼佼者。 隨著微電子技術(shù)的發(fā)展?現(xiàn)場(chǎng)可編程門陣列?FPGA?器件得到了飛速發(fā)展。由于該器件具有工作速度快,集成度高和現(xiàn)場(chǎng)可編程等優(yōu)點(diǎn),因而在數(shù)字信號(hào)處理中得到了廣泛應(yīng)用,越來越受到硬件電路設(shè)計(jì)工程師們的青睞。直接數(shù)字頻率合成(DDFS)技術(shù)以其具有頻率分辨率高,頻率變換速度快,相位可連續(xù)線性變化等特點(diǎn),而在數(shù)字通信系統(tǒng)中被廣泛采用。本文基于DDFS的基本原理,給出了利用AL-TERA公司的FPGA芯片(ACEX 1K系列EP1K10TC144-1器件)完成DDFS系統(tǒng)設(shè)計(jì)的具體方法。 (1)采用查找表(LUT)和EAB相結(jié)合的結(jié)構(gòu)模式,可提供高效低功耗的優(yōu)良性能。因?yàn)椋蹋眨越Y(jié)構(gòu)適用于實(shí)現(xiàn)高效的數(shù)據(jù)通道、增強(qiáng)型寄存器、數(shù)學(xué)運(yùn)算及數(shù)字信號(hào)處理設(shè)計(jì),而EAB結(jié)構(gòu)可實(shí)現(xiàn)復(fù)雜的邏輯功能和存儲(chǔ)器功能。 (2) 密度高,典型門數(shù)為1萬到10萬門,有多達(dá)49152位的RAM(每個(gè)EAB有4096個(gè)RAM)。 (3)系統(tǒng)內(nèi)核采用2.5V電壓,I/O腳可支持2.5V/3.5V/5.0V多電壓標(biāo)準(zhǔn);器件功耗低;具有高達(dá)250MHz的雙向I/O功能;完全支持33MHz的PCI總線標(biāo)準(zhǔn);內(nèi)置JTAG邊界掃描電路;不需測(cè)試矢量和掃描鏈即可對(duì)所有器件進(jìn)行100%的功能測(cè)試。 ?4?具有快速連續(xù)式延時(shí)可預(yù)測(cè)的快速通道互連(FAST TRACK);能實(shí)現(xiàn)快速加法器、計(jì)數(shù)器和比較器等算術(shù)運(yùn)算功能;具有專用鏈和實(shí)現(xiàn)高速多扇入邏輯功能的專用級(jí)鏈;具有能實(shí)現(xiàn)內(nèi)部三態(tài)總線的三態(tài)仿真;具有多達(dá)6個(gè)全局時(shí)鐘信號(hào)和4個(gè)全局清除信號(hào)。 (5)每個(gè)引腳都有獨(dú)特的三態(tài)輸出使能控制;可編程輸出的壓擺率控制可以減少電平轉(zhuǎn)換產(chǎn)生的噪聲;引腳與引腳間具有用戶可選的鉗位電路;支持熱插拔操作。 2 DDFS基本原理 DDFS技術(shù)是一種可把一系列數(shù)字量形式信號(hào)通過DAC轉(zhuǎn)換成模擬量形式信號(hào)的合成技術(shù)。目前使用最廣泛的一種DDFS方式是利用高速存儲(chǔ)器作查尋表,然后通過高速DAC產(chǎn)生已用數(shù)字形式存入的正弦波。圖1是DDFS的基本原理圖。 2.1 相位累加器 相位累加器由N位加法器與N位累加寄存器級(jí)聯(lián)構(gòu)成。時(shí)鐘脈沖每觸發(fā)一次,加法器便將頻率控制數(shù)據(jù)與累加寄存器輸出的累加相位數(shù)據(jù)相加,然后把相加后的結(jié)果送至累加寄存器的數(shù)據(jù)輸入端。累加寄存器將加法器在上一個(gè)時(shí)鐘作用后所產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一個(gè)時(shí)鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)相加。這樣,相位累加器在參考時(shí)鐘的作用下將進(jìn)行線性相位累加,相位累加器累加滿量時(shí),就會(huì)產(chǎn)生一次溢出,以完成一個(gè)周期性的動(dòng)作,這個(gè)周期就是DDFS合成信號(hào)的一個(gè)頻率周期,累加器的溢出頻率就是DDFS輸出的信號(hào)頻率。 2.2 相位-幅值轉(zhuǎn)換 用相位累加器輸出的數(shù)據(jù)作為取樣地址來對(duì)正弦波波形存儲(chǔ)器進(jìn)行相位-幅值轉(zhuǎn)換,即可在給定的時(shí)間上確定輸出的波形幅值。 2.3 數(shù)模轉(zhuǎn)換 通過DAC可將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求的合成頻率模擬量形式信號(hào),低通濾波器用于衰減和濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號(hào)。 對(duì)于計(jì)數(shù)容量為2N的相位累加器和具有M個(gè)相位取樣的正弦波波形存儲(chǔ)器,若頻率控制字為K,則DDS系統(tǒng)輸出信號(hào)的頻率為:fo=fcK/2N,而頻率分辨率則為:Δf=fomin=fc/2N。3 基于FPGA的DDFS結(jié)構(gòu)設(shè)計(jì) 圖2是利用DDFS原理設(shè)計(jì)的一個(gè)信號(hào)源發(fā)生器的結(jié)構(gòu)框圖。圖中,FPGA用來控制輸出波形的頻率、相位和波形的選擇。波形數(shù)據(jù)的存放有兩種形式,一種是將固定波形數(shù)據(jù)存放在EEPROM里,主要有正弦波,三角波,鋸齒波?包括半正弦波,半三角波,半鋸齒波?數(shù)據(jù)。而對(duì)于特殊的波形,則通過上位機(jī)下載到RAM里,然后從RAM里讀取數(shù)據(jù)。 該系統(tǒng)在工作時(shí),首先由上位機(jī)把控制命令和數(shù)據(jù)參數(shù)通過USB接口用AT96總線傳給FPGA。如果是固定波形,就從EEPROM中讀取數(shù)據(jù),否則就從RAM中讀取數(shù)據(jù)。數(shù)據(jù)傳送給FPGA后即可等待觸發(fā)信號(hào),觸發(fā)信號(hào)由時(shí)基卡或軟件給出。觸發(fā)信號(hào)到來之后,就開始讀取數(shù)據(jù)并輸出波形。同時(shí)由FPGA給上位機(jī)一個(gè)狀態(tài)位,該狀態(tài)位可用于表示發(fā)送波形是正在發(fā)送,還是已經(jīng)發(fā)送結(jié)束了。 信號(hào)源的輸出頻率范圍分為如下幾檔:0.001Hz~1Hz? 1Hz~10Hz? 10Hz~100Hz;100Hz~200Hz,步進(jìn)為1/1000。之所以分檔控制,是為了保證輸出波形頻率具有更高的精度,在輸出波形頻率較低時(shí)可對(duì)數(shù)據(jù)不抽點(diǎn),頻率較高時(shí)應(yīng)進(jìn)行抽點(diǎn)。要達(dá)到較高的頻率精度,必須利用數(shù)字頻率合成器(DDFS)來實(shí)現(xiàn)對(duì)輸出波形頻率的控制?并按頻率要求對(duì)相位增量進(jìn)行累加,然后以累加相位值作為地址碼來讀取存放在存儲(chǔ)器中的波形數(shù)據(jù)。通過改變相位增量寄存器的增量值(即步長(zhǎng)),使相位累加器能夠輸出依據(jù)相位增量寄存器所給出的步長(zhǎng)來改變波形存儲(chǔ)器的地址,從而改變波形每周期的點(diǎn)數(shù),從而達(dá)到改變輸出波形頻率的目的。該電路的設(shè)計(jì)關(guān)鍵在于用硬件構(gòu)造一個(gè)多位累加器來實(shí)現(xiàn)相位的累加。 根據(jù)DDFS的原理,輸出信號(hào)頻率fo與累加器時(shí)鐘fclk、累加器位數(shù)M、相位增量N的關(guān)系如下: fo=(fclkN)/2M 根據(jù)以上原理,結(jié)合實(shí)際情況可得到的各項(xiàng)參數(shù)(這里采用32.768MHz=1000215的晶振頻率)。為了保證所需的精度以及輸出波形頻率的步進(jìn)。這里選M=27。由于D/A的最大轉(zhuǎn)換速度為1MHz,波形每個(gè)周期的樣點(diǎn)數(shù)是128k,因此當(dāng)輸出波形的頻率大于8Hz時(shí),一般就需要進(jìn)行抽樣。 (1)基于EEPROM的尋址方式 這種方式首先用累加器實(shí)現(xiàn)地址的尋址,然后通過改變累加器的第24位和第25位(A15和A16)的所賦初值來改變發(fā)送波形的初始相位。 由于發(fā)送波形的結(jié)束時(shí)刻可通過一個(gè)減法計(jì)數(shù)器來實(shí)現(xiàn),而且波形周期寄存器里寄存的是T/4的個(gè)數(shù)。因此,可根據(jù)所需發(fā)送的波形周期的個(gè)數(shù)來給計(jì)數(shù)器賦初值,并在減到0時(shí)使累加器復(fù)位,從而停止尋址。此時(shí)時(shí)鐘應(yīng)接A14。 EEPROM里面可以存放4種波形,每一種波形的數(shù)據(jù)是64kB。波形的選擇可通過給A17和A18賦初值來實(shí)現(xiàn)。 (2)對(duì)RAM的尋址方式 RAM共有1MB的容量,因此,可尋址20位的地址。對(duì)于RAM里面的波形,只需要控制樣點(diǎn)頻率和發(fā)送波形的結(jié)束時(shí)刻即可。 結(jié)束時(shí)刻的實(shí)現(xiàn)主要是將結(jié)束時(shí)刻值存放到寄存器中,然后把計(jì)數(shù)器的輸出和寄存器的值進(jìn)行比較,若兩者相等就給計(jì)數(shù)器發(fā)送復(fù)位信號(hào)以停止計(jì)數(shù),以結(jié)束發(fā)送波形。 這里的計(jì)數(shù)器是加1計(jì)數(shù),因而可通過改變分頻器的值來改變計(jì)數(shù)器的時(shí)鐘,從而引起讀取樣點(diǎn)頻率的改變。 通過上述結(jié)構(gòu)設(shè)計(jì)可得到頂層電路結(jié)構(gòu)。整個(gè)電路設(shè)計(jì)可采用Verilog語言和原理圖輸入相結(jié)合的方法來設(shè)計(jì)。圖3和圖4分別給出了對(duì)RAM和EEPROM進(jìn)行尋址的仿真結(jié)果。5 結(jié)論 DDFS是現(xiàn)今一種重要的頻率合成手段,高速集成電路的發(fā)展進(jìn)一步改善了DDFS的性能,它與傳統(tǒng)技術(shù)相結(jié)合組成的各種混合設(shè)計(jì)方案將頻率源的性能提高到了一個(gè)新的水平,因此,未來的DDFS不僅可應(yīng)用于需要使用信號(hào)源的傳統(tǒng)領(lǐng)域,而且也必將開拓出許多新的應(yīng)用領(lǐng)域。 |
評(píng)論