摘要:直接數(shù)字頻率合成器(DDS)廣泛應(yīng)用于航空控制、通信、電子測量及研究等領(lǐng)域。現(xiàn)提出一種DDS信號發(fā)生器,采用EDA自頂向下的設(shè)計方法,在Quartus Ⅱ集成開發(fā)環(huán)境中利用原理圖和調(diào)用PLM宏功能模塊完成軟件設(shè)計,并通過FPGA進(jìn)行硬件測試。
關(guān)鍵詞:FPGA;直接數(shù)字頻率合成器(DDS);PLM
0 ? ?引言
直接數(shù)字頻率合成器(DDS),是一種新型的頻率合成技術(shù)和信號產(chǎn)生方法,具有較高的頻率分辨率,可以實現(xiàn)頻率的快速切換,并且在改變時能夠保持相位連續(xù),很容易實現(xiàn)頻率、相位和幅度的數(shù)控調(diào)制。因此,在現(xiàn)代電子系統(tǒng)及設(shè)備的頻率源設(shè)計中,尤其是在通信領(lǐng)域,DDS的應(yīng)用尤為廣泛。
1 ? ?系統(tǒng)的整體設(shè)計方案
本文設(shè)計的是一個DDS信號發(fā)生器,如圖1所示,它主要由相位累加器、相位調(diào)制器、正弦ROM查找表和D/A轉(zhuǎn)換模塊四部分組成。它根據(jù)ROM查找表中存放的mif波形數(shù)據(jù)文件,可以產(chǎn)生正弦波、方波、三角波等信號。
相位累加器是整個DDS的核心,主要完成累加的功能,相位累加器的輸入是相位增量BΔθ,又由于BΔθ與輸出頻率fout是簡單的線性關(guān)系:BΔθ=2N·fout/fclk,相位累加器的輸入又可稱為頻率字輸入。當(dāng)系統(tǒng)基準(zhǔn)時鐘fclk是2N時,BΔθ就等于fout。頻率字輸入在圖1中還經(jīng)過了一組同步寄存器,使得當(dāng)頻率字改變時不會干擾相位累加器的正常工作。
相位調(diào)制器接收相位累加器的相位輸出,在這里加上一個相位偏移值,主要用于信號的相位調(diào)制,如PSK(相移鍵控)等,在不使用時可以去掉該部分,或者加一個固定的相位字常數(shù)輸入。相位字輸入最好也用同步寄存器保持同步。注意,相位字輸入的數(shù)據(jù)寬度M與頻率字輸入N往往是不相等的,M 正弦波形數(shù)字存儲ROM(查找表)完成fsin(Bθ)的查找轉(zhuǎn)換,也可以理解成相位到幅值度的轉(zhuǎn)換,它的輸入是相位調(diào)制器的輸出,事實上就是ROM的地址值;輸出送往D/A,轉(zhuǎn)化為模擬信號。由于相位調(diào)制器的輸出數(shù)據(jù)位寬M也是ROM的地址位寬,因此在實際的DDS結(jié)構(gòu)中N往往很大,而M為10位左右。 2 ? ?電路設(shè)計 DDS信號發(fā)生器電路原理圖如圖2所示,主要由加法器ADDER32、寄存器REG32、數(shù)據(jù)波形ROM三大功能子模塊組成。 (1)32位加法器ADDER32。由LPM_ADD_SUB宏模塊構(gòu)成,設(shè)置了2階流水線結(jié)構(gòu),使其在時鐘控制下有更高的運(yùn)算速度和數(shù)據(jù)輸入穩(wěn)定性。 (2)32位寄存器REG32。由LPM_FF宏模塊擔(dān)任。ADDER32與REG32構(gòu)成一個32位相位累加器,其高10位A[31..22]作為波形數(shù)據(jù)ROM的地址。 (3)正弦波形數(shù)據(jù)ROM。正弦波形數(shù)據(jù)ROM模塊sin_rom的地址線與數(shù)據(jù)線位寬都是10位。這就是說其中一個周期的正弦波數(shù)據(jù)有1 024個,每個數(shù)據(jù)有10位。其中輸出可以接一個10位的高速DAC;如果只有8位DAC,可截去低2位輸出。ROM中的mif數(shù)據(jù)文件可用Mif_Maker2010等相關(guān)軟件生成。 (4)頻率控制字輸入B[24..17]。本來的頻率控制字是32位的,但為了方便實驗驗證,把高于24和低于17的輸入位分別預(yù)先設(shè)置成0或1。頻率控制字B[31..0]與DAC[9..0]驅(qū)動DAC的正弦信號頻率的關(guān)系,可以由公式(1)算出: fsin=fclk ? ? ? ? ? ? ? ? ?(1) 式中:fsin為DAC輸出的正弦波信號頻率;fclk是clk的時鐘頻率,直接輸入是20 MHz,接入鎖相環(huán)后可達(dá)到更高頻率。 頻率上限要看DAC的速度。如果接高速DAC,如10位的DAC900,輸出上限速度可達(dá)180 MHz。但應(yīng)該注意,DAC900需要一個與數(shù)據(jù)輸入相同的工作時鐘驅(qū)動,圖2中的DAC_CLK作為外部DAC的工作時鐘。 3 ? ?軟件仿真 電路設(shè)計完成后,對DDS信號發(fā)生器的整個系統(tǒng)進(jìn)行仿真,仿真波形如圖3所示,通過仿真結(jié)果可以看出,設(shè)計滿足功能要求。 4 ? ?硬件測試 DDS信號發(fā)生器通過Cyclone Ⅱ器件中的EP2C35F672C8學(xué)習(xí)開發(fā)板上的部分資源加以實現(xiàn),時鐘由開發(fā)板上的晶振Y2提供,約27 MHz,撥碼開關(guān)SW8-SW1分別控制頻率字輸入B[24..17]的大小,DAC[9..0]輸出的信號外接數(shù)模(D/A)轉(zhuǎn)換模塊,并通過示波器觀察輸出的波形。 5 ? ?結(jié)語 本文提出的基于DDS技術(shù)的信號發(fā)生器,采用EDA自頂向下的設(shè)計方法,在Quartus Ⅱ集成開發(fā)環(huán)境中利用原理圖和調(diào)用PLM宏功能模塊完成軟件設(shè)計,并通過FPGA進(jìn)行硬件測試。實驗結(jié)果表明了本設(shè)計方案的正確性和可行性。 [參考文獻(xiàn)] [1] 張晉頊,任勇峰,單彥虎,等.基于FPGA的可調(diào)節(jié)信號發(fā)生器的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2019,27(22):137-141. [2] 田宇,施賽烽,鄭子賢,等.基于FPGA的高分辨率數(shù)字脈沖信號發(fā)生器的設(shè)計與實現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2020,43(2):224-226. [3] 潘松,黃繼業(yè).EDA技術(shù)實用教程——VHDL版[M].6版.北京:科學(xué)出版社,2018. [4] 李巖,方彬,靳自璇,等.基于FPGA的信號發(fā)生器的設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)創(chuàng)新,2020(1):70-72. 收稿日期:2020-07-22 作者簡介:蔣小軍(1981—),女,湖南株洲人,碩士,講師,從事集成電路與系統(tǒng)方面的教學(xué)和研究工作。