一種基于fpga的dds信號(hào)發(fā)生器及其實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種波形發(fā)生器,具體地講,是涉及一種基于FPGA的DDS信號(hào)發(fā)生器及其實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]隨著電子計(jì)算機(jī)技術(shù),尤其是嵌入式技術(shù)的大力發(fā)展,F(xiàn)PGA (Field 一Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)和 DDS (Direct Digital Synthesizer,直接數(shù)字式頻率合成器)技術(shù)得到了廣泛的發(fā)展與應(yīng)用。FPGA因其并行處理能力強(qiáng)、控制邏輯簡(jiǎn)單等特點(diǎn)逐步成為極具優(yōu)勢(shì)的核心處理器,而DDS技術(shù)因其易于控制、頻率分辨率高和頻率轉(zhuǎn)換速度快等優(yōu)點(diǎn)已經(jīng)成為最為重要的頻率合成技術(shù)。
[0003]現(xiàn)有DDS信號(hào)發(fā)生器的結(jié)構(gòu)相對(duì)復(fù)雜,工作速度相對(duì)較慢,不太適應(yīng)于現(xiàn)在高速發(fā)展的計(jì)算機(jī)科學(xué)技術(shù)。系統(tǒng)輸出信號(hào)頻率fout可由公式計(jì)算得出,其中,K為頻率控制字,fclk為系統(tǒng)輸入時(shí)鐘頻率,N為相位累加器的位數(shù)。根據(jù)上述公式研宄,影響系統(tǒng)輸出信號(hào)的最高頻率的因素之一是相位累加器的工作速度,如果能夠提高相位累加器的工作速度,便能夠在一定程度上提高系統(tǒng)的輸出頻率。
【發(fā)明內(nèi)容】
[0004]為了克服現(xiàn)有技術(shù)的缺陷,本發(fā)明提供一種通過提高相位累加器的工作速度來達(dá)到提高系統(tǒng)輸出頻率的基于FPGA的DDS信號(hào)發(fā)生器,并可實(shí)現(xiàn)提高頻率分辨率和輸出任意波形的目的。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種基于FPGA的DDS信號(hào)發(fā)生器,包括用于生成頻率控制字K和提供系統(tǒng)時(shí)鐘頻率fclk的FPGA核心控制器,對(duì)輸入的頻率控制字K進(jìn)行累加的流水式相位累加器,存儲(chǔ)有波形數(shù)據(jù)并將流水式相位累加器的輸出結(jié)果轉(zhuǎn)換為對(duì)應(yīng)波形幅值信號(hào)的相位/幅值查找表,獲取相位/幅值查找表的輸出結(jié)果并將其轉(zhuǎn)換為模擬信號(hào)輸出的數(shù)模轉(zhuǎn)換器,以及與數(shù)模轉(zhuǎn)換器連接并用于輸出最終波形信號(hào)的低通濾波器。
[0006]具體地,所述流水式相位累加器為32位相位累加器。
[0007]進(jìn)一步地,所述流水式相位累加器包括四路每路輸入8位數(shù)據(jù)的反饋型流水線結(jié)構(gòu),其中四路每路輸入的8位數(shù)據(jù)依次排列構(gòu)成與32位相位累加器匹配的完整32位。
[0008]更進(jìn)一步地,所述反饋型流水線結(jié)構(gòu)包括依次串接的9位加法器和9位鎖存器,其中,8位數(shù)據(jù)由9位加法器輸入并由9位鎖存器輸出,并且9位鎖存器將輸出反饋給本路的9位加法器,也輸出至下一路的9位加法器進(jìn)行累加。
[0009]為了便于同步輸出,每一路所述反饋型流水線結(jié)構(gòu)還包括3個(gè)用于保證每路同步輸出的8位觸發(fā)器。
[0010]具體地,對(duì)應(yīng)頻率控制字K [7:0]的第一路結(jié)構(gòu)由I個(gè)9位加法器、I個(gè)9位鎖存器和3個(gè)8位觸發(fā)器依次連接組成,該9位鎖存器反饋輸出本路的9位加法器,并輸出至第二路的9位加法器;對(duì)應(yīng)頻率控制字K[15:8]的第二路結(jié)構(gòu)由I個(gè)8位觸發(fā)器、I個(gè)9位加法器、I個(gè)9位鎖存器和2個(gè)8位觸發(fā)器依次連接組成,該9位鎖存器反饋輸出本路的9位加法器,并輸出至第三路的9位加法器;對(duì)應(yīng)頻率控制字K[23:16]的第三路結(jié)構(gòu)由2個(gè)8位觸發(fā)器、I個(gè)9位加法器、I個(gè)9位鎖存器和I個(gè)8位觸發(fā)器依次連接組成,該9位鎖存器反饋輸出本路的9位加法器,并輸出至第四路的9位加法器;對(duì)應(yīng)頻率控制字Κ[31:24]的第四路結(jié)構(gòu)由3個(gè)8位觸發(fā)器、I個(gè)9位加法器和I個(gè)9位鎖存器依次連接組成,該9位鎖存器反饋輸出本路的9位加法器。最終流水式相位累加器將四路累加后的數(shù)據(jù)并列合成32位相應(yīng)的輸出數(shù)據(jù)。
[0011]作為優(yōu)選,所述相位/幅值查找表采用雙端口 RAM存儲(chǔ)器。
[0012]作為優(yōu)選,所述FPGA核心控制器采用Altera公司的EP4CE15F17C8,所述數(shù)模轉(zhuǎn)換器采用TI公司的DAC8871,所述低通濾波器采用Linear公司的LT6604-10濾波器。
[0013]基于上述構(gòu)造,本發(fā)明還提供了上述基于FPGA的DDS信號(hào)發(fā)生器的實(shí)現(xiàn)方法,包括如下步驟:
(SlO)流水式相位累加器在系統(tǒng)時(shí)鐘頻率fclk上升沿到來時(shí),對(duì)輸入的頻率控制字K進(jìn)行累加;
(S20)將流水式相位累加器輸出的累加結(jié)果作為相位/幅值查找表的地址進(jìn)行查表,輸出信號(hào)波形在各相位的幅值信號(hào);
(S30)將相位/幅值查找表的結(jié)果輸出至數(shù)模轉(zhuǎn)換器轉(zhuǎn)換為模擬信號(hào);
(S40)經(jīng)低通濾波器濾波后獲得所需的波形信號(hào)。其中可獲取正弦波、方波、三角波、鋸齒波等多種標(biāo)準(zhǔn)波形信號(hào)。
[0014]進(jìn)一步地,該方法還包括(S50)當(dāng)流水式相位累加器經(jīng)過2N/K次累加后產(chǎn)生溢出,完成一個(gè)周期的波形信號(hào)輸出,其中,N為流水式相位累加器的位數(shù),N=32。
[0015]具體地,所述步驟(SlO)中對(duì)頻率控制字K累加時(shí),先將K轉(zhuǎn)換為32位數(shù)據(jù)串,然后按位數(shù)將其依次等分為四路各8位的數(shù)據(jù)對(duì)應(yīng)輸入流水式相位累加器的四路中。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
(I)本發(fā)明構(gòu)思巧妙,通過對(duì)相位累加器進(jìn)行流水式結(jié)構(gòu)改進(jìn),將32為相位累加器分割成4級(jí)流水線,利用多級(jí)流水線對(duì)輸入數(shù)據(jù)的同時(shí)處理明顯地提高了相位累加器的工作速度,從而很好地提高系統(tǒng)的輸出頻率,具有突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步,并且其結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單巧妙,充分利用FPGA的片上資源,有效靈活地實(shí)現(xiàn)了任意波形信號(hào)的發(fā)生,性能穩(wěn)定,資源消耗小,實(shí)用性極強(qiáng),非常適合推廣應(yīng)用,可成功應(yīng)用于通信、儀器測(cè)試、自檢系統(tǒng)等領(lǐng)域。
[0017](2)本發(fā)明巧妙地在每一路反饋型流水線結(jié)構(gòu)中設(shè)計(jì)8位觸發(fā)器,對(duì)流水線進(jìn)行打拍,可靠地保證了每一路流水線的同步輸出。
[0018](3)本發(fā)明采用雙端口 RAM存儲(chǔ)器作為相位/幅值查找表實(shí)現(xiàn)高速存取,結(jié)合DAC8871高速數(shù)模轉(zhuǎn)換器和LT6604-10濾波器,保證了系統(tǒng)的高速工作條件基礎(chǔ)。
【附圖說明】
[0019]圖1為本發(fā)明的結(jié)構(gòu)框圖。
[0020]圖2為本發(fā)明中流水式相位累加器的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0021]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,本發(fā)明的實(shí)施方式包括但不限于下列實(shí)施例。
實(shí)施例
[0022]如圖1所示,該基于FPGA的DDS信號(hào)發(fā)生器,包括用于生成頻率控制字K和提供系統(tǒng)時(shí)鐘頻率fclk的FPGA核心控制器,對(duì)輸入的頻率控制字K進(jìn)行累加的流水式相位累加器,存儲(chǔ)有波形數(shù)據(jù)并將流水式相位累加器的輸出結(jié)果轉(zhuǎn)換為對(duì)應(yīng)波形幅值信號(hào)的相位/幅值查找表,獲取相位/幅值查找表的輸出結(jié)果并將其轉(zhuǎn)換為模擬信號(hào)輸出的數(shù)模轉(zhuǎn)換器,以及與數(shù)模轉(zhuǎn)換器連接并用于輸出最終波形信號(hào)的低通濾波器。其中,所述FPGA核心控制器采用Altera公司的EP4CE15F17C8,所述相位/幅值查找表采用雙端口 RAM存儲(chǔ)器,通過預(yù)先存儲(chǔ)設(shè)置不同波形數(shù)據(jù)的查找表可以獲得相應(yīng)波形信號(hào)的輸出;所述數(shù)模轉(zhuǎn)換器采用TI公司的DAC8871,所述低通濾波器采用MAXM公司的MAX261濾波器。
[0023]具體地,所述流