把相對(duì)成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域如通訊,視頻,信息處理等等開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶接受的產(chǎn)品這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問題,另外還有就是與專業(yè)客戶的界面問題產(chǎn)品設(shè)計(jì)還包括專業(yè)工具類產(chǎn)品及民用產(chǎn)品。FPGA因?yàn)榫邆?a target="_blank">接口,控制,功能IP,內(nèi)嵌CPU等特點(diǎn)有條件實(shí)現(xiàn)一個(gè)構(gòu)造簡(jiǎn)單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計(jì)將是FPGA技術(shù)應(yīng)用最廣大的市場(chǎng),具有極大的爆發(fā)性的需求空間產(chǎn)品設(shè)計(jì)對(duì)技術(shù)人員的要求比較高。為解決相關(guān)FPGA工程師及愛好者提供相關(guān)實(shí)際案例和電路參考,電子發(fā)燒友網(wǎng)隆重整合推出《FPGA設(shè)計(jì)實(shí)例全攻略》系列,后期會(huì)陸續(xù)推出相關(guān)章節(jié),以饗讀者,敬請(qǐng)關(guān)注。
一、基于FPGA的信號(hào)發(fā)生器設(shè)計(jì)
以FPGA 芯片為載體, 通過QuartusII 的LPM_ROM 模塊和VHDL 語(yǔ)言為核心設(shè)計(jì)一個(gè)多功能信號(hào)發(fā)生器,根據(jù)輸入信號(hào)的選擇可以輸出遞增鋸齒波、遞減鋸齒波、三角波、階梯波和方波等5 種信號(hào),通過QuartusII 軟件進(jìn)行波形仿真、定時(shí)分析,仿真正確后,利用實(shí)驗(yàn)板提供的資源,下載到芯片中實(shí)現(xiàn)預(yù)定功能。
信號(hào)發(fā)生器又稱為波形發(fā)生器, 是一種常用的信號(hào)源,廣泛應(yīng)用于電子電路、通信、控制和教學(xué)實(shí)驗(yàn)等領(lǐng)域。它是科研及工程實(shí)踐中最重要的儀器之一, 以往多用硬件組成,系統(tǒng)結(jié)構(gòu)比較復(fù)雜,可維護(hù)性和可操作性不佳。隨著計(jì)算機(jī)技術(shù)的發(fā)展,信號(hào)發(fā)生器的設(shè)計(jì)制作越來越多的是用計(jì)算機(jī)技術(shù),種類繁多,價(jià)格、性能差異很大。用FPGA 或CPLD 來實(shí)現(xiàn),它的優(yōu)點(diǎn)是可以進(jìn)行功能仿真,而且FPGA 和CPLD 的片內(nèi)資源豐富,設(shè)計(jì)的流程簡(jiǎn)單。用FPGA 所構(gòu)成的系統(tǒng)來產(chǎn)生波形信號(hào),這個(gè)系統(tǒng)既能和主機(jī)系統(tǒng)相連,用相應(yīng)的上層軟件展示波形信號(hào), 又方便程序的編寫, 而且還有A/D0809接口可以產(chǎn)生模擬信號(hào)的輸出和外面的示波器相連。
1 正弦信號(hào)發(fā)生器的LPM 定制
正弦信號(hào)發(fā)生器由計(jì)數(shù)器或地址發(fā)生器(6 位)、正弦信號(hào)數(shù)據(jù)ROM (6 位地址線,8 位數(shù)據(jù)線, 含有64 個(gè)8 位數(shù)據(jù), 一個(gè)周期)、原理圖頂層設(shè)計(jì)和8 位D/A ( 實(shí)驗(yàn)中用DAC0832 代替)。
其框圖如圖1 所示。其中信號(hào)產(chǎn)生模塊將產(chǎn)生所需的各種信號(hào),這些信號(hào)的產(chǎn)生可以有多種方式,如用計(jì)數(shù)器直接產(chǎn)生信號(hào)輸出,或者用計(jì)數(shù)器產(chǎn)生存儲(chǔ)器的地址,在存儲(chǔ)器中存放信號(hào)輸出的數(shù)據(jù)。信號(hào)發(fā)生器的控制模塊可以用數(shù)據(jù)選擇器實(shí)現(xiàn), 用8 選1 數(shù)據(jù)選擇器實(shí)現(xiàn)對(duì)5 種信號(hào)的選擇。
?
圖1 信號(hào)發(fā)生器結(jié)構(gòu)框圖
最后將波形數(shù)據(jù)送入D/A 轉(zhuǎn)換器,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出。用示波器測(cè)試D/A 轉(zhuǎn)換器的輸出,可以觀測(cè)到5 種信號(hào)的輸出。
1.1 定制初始化數(shù)據(jù)文件
QuartusII 能接受的LPM_ROM 模塊中的初始化數(shù)據(jù)文件的格式有兩種:。mif 格式文件和。hex 格式文件。實(shí)際應(yīng)用中只要使用其中一種格式的文件即可。下面采用。mif 格式文件,調(diào)出產(chǎn)生ROM 數(shù)據(jù)文件大小的選擇窗。根據(jù)64 點(diǎn)8 位正弦數(shù)據(jù)的情況,可選ROM 的數(shù)據(jù)數(shù)Number 為64,數(shù)據(jù)寬Word size 取8 位。單擊OK 按鈕,將出現(xiàn)圖2 所示的空的。mif數(shù)據(jù)表格,表格中的數(shù)據(jù)格式可通過鼠標(biāo)右鍵單擊窗口邊緣的地址數(shù)據(jù)彈出的窗口選擇。
?
圖2 .mif 數(shù)據(jù)表格
將波形數(shù)據(jù)填入mif 文件表中也可以使用QuartusII 以外的編輯器設(shè)計(jì)MIF 文件,其格式如下:
#include
#include "math.h"
main()
{int i;float s;
for (i=0;i<1024; i++)
{ s = sin(atan(1)*8*i/1024);
printf("%d : %d; ",i,(int)((s+1)*1023/2)); }}
把上述程序編譯成程序后, 可在DOS 命令行下執(zhí)行命令:
romgen > sin_ rom. mif;
1.2 定制LPM 元件
打開Mega Wizard Plug_In Manager 初始對(duì)話框, 選擇Create a new custom… 項(xiàng)。單擊Next 按鈕后,選擇Storage 項(xiàng)下的LPM_ROM, 再選擇ACEX1K 器件和VHDL 語(yǔ)言方式;最后輸入ROM 文件存放的路徑和文件名:F:sing_gntdata_rom (定制的ROM 元件文件名),單擊Next 按鈕,選擇ROM 控制線、地址線和數(shù)據(jù)線。這里選擇地址線位寬和ROM 中數(shù)據(jù)數(shù)分別為6 和64; 選擇地址鎖存控制信號(hào)inclock。
對(duì)于地址信號(hào)發(fā)生器的設(shè)計(jì)。方法一:用VHDL 語(yǔ)言設(shè)計(jì)6 位計(jì)數(shù)器,產(chǎn)生其元件符號(hào);方法二:仍采用LPM 定制的方法。
?
1.3 完成頂層設(shè)計(jì)
按圖3 畫出頂層原理圖,然后進(jìn)行編譯,波形仿真如圖4所示。
?
圖3 簡(jiǎn)易正弦信號(hào)發(fā)生器頂層電路設(shè)計(jì)
?
圖4 當(dāng)前工程仿真波形輸出
對(duì)當(dāng)前設(shè)計(jì)通過執(zhí)行Quartus II 的命令Create ∠ Update/ Create Symbol Files for Current File,可以為設(shè)計(jì)電路建立一個(gè)元件符號(hào),以便被頂層設(shè)計(jì)多功能信號(hào)發(fā)生器所調(diào)用。
2 其他信號(hào)部分原程序
其他各信號(hào)發(fā)生器可參照正弦信號(hào)發(fā)生器的設(shè)計(jì)方法設(shè)計(jì)或直接采用VHDL 硬件描述語(yǔ)言進(jìn)行設(shè)計(jì)。
LIBRARY IEEE;--遞增鋸齒波的設(shè)計(jì)
USE IEEE.STD LOGIC 1164.ALL;
USE IEEE.STD LOGIC UNSIGNED.ALL;
ENTITY signal2 IS --遞增鋸齒波signal1
PORT(clk,reset:IN std_logic;--復(fù)位信號(hào)reset, 時(shí)鐘信號(hào)clk
q:OUT std_logic_vector (7 DOWNTO 0));--輸出信號(hào)q
END signal2;
ARCHITECTURE b OF signal2 IS
BEGIN
PROCESS(clk,reset)
VARIABLE tmp:std_logic_vector(7 DOWNTO 0);
BEGIN
IF reset='0' THEN
tmp:="00000000";
ELSIT rising_ege(clk)THEN
IF tmp="11111111"THEN
tmp:="00000000";
ELSE
tmp:=tmp+1; --遞增信號(hào)的變化
END IF;
END IF;
q<=tmp:
END PROCESS;
END b;
LIBRARY IEEE;--方波的設(shè)計(jì)
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity signal5 is --方波signal5
PORT(clk,reset:in std_logic; --復(fù)位信號(hào)reset,時(shí)鐘信號(hào)clk
q:out std_logic_vector (7 DOWNTO 0)); --輸出信號(hào)q,8 位數(shù)字信號(hào)
END signal5;
ARCHITEECTURE a OF signal5 IS
SIGNAL; a:std_logic;
BEGIN
PROCESS(clk,reset)
YARIABLE tmp:std_logic_vector(7 downto 0);
BEQIN
IF reset='0' then
a<='0';
elsif rising_edge(clk)THEN
IF tmp="11111111" THEN
tmp:="00000000";
ELSE
tmp:=tmp+1;
END IF;
if tmp<="10000000" then
a<='1';
else
a<='0';
END IF;
END IF;
END PROCESS;
PROCESS(clk,a)
BEGIN
IF rising_edge(clk)THEN
IF a='1' THEN
q<="11111111";
ELSE
q<="00000000";
END IF;
END IF;
END PROCESS;
END a;
3 頂層電路的設(shè)計(jì)
將上述6 個(gè)模塊生成符號(hào),供頂層電路調(diào)用。這些模塊分別是:遞減鋸齒波信號(hào)產(chǎn)生模塊signall、遞增鋸齒波信號(hào)產(chǎn)生模塊signal2、三角波信號(hào)產(chǎn)生模塊signal3、階梯波信號(hào)產(chǎn)生模塊signal4、方波信號(hào)產(chǎn)生模塊signal5 和數(shù)據(jù)選擇器mux51。頂層電路的連接如圖5 所示。
?
圖5 信號(hào)發(fā)生器頂層電路
4 D/A 轉(zhuǎn)換器的連接
選擇一個(gè)D/A 轉(zhuǎn)換器,將數(shù)據(jù)選擇器的輸出與D/A 轉(zhuǎn)換器的輸入端連接。D/A 轉(zhuǎn)換器的可選范圍很寬,這里以常用的DAC0832 為例。DAC0832 的連接電路如圖6 所示。
?
圖6 DAC0832 的連接電路
5 實(shí)現(xiàn)與測(cè)試
信號(hào)發(fā)生器頂層電路的仿真波形如圖7 所示,這里只就輸入選擇信號(hào)等于5 時(shí)的情況進(jìn)行仿真,此時(shí)輸出波形是方波,輸出的數(shù)字信號(hào)為周期性的全0 或全1。
?
圖7 信號(hào)發(fā)生器頂層電路的仿真波形
信號(hào)發(fā)生器的底層電路模塊也可以分別進(jìn)行仿真,例如對(duì)階梯波信號(hào)產(chǎn)生模塊signal4 進(jìn)行仿真,仿真波形如圖8 所示,輸出的數(shù)字信號(hào)為階梯狀變化。
?
圖8 階梯波信號(hào)產(chǎn)生模塊signal4 的仿真波形
6 結(jié)束語(yǔ)
硬件電路設(shè)計(jì)主要是設(shè)計(jì)相關(guān)模塊的設(shè)計(jì)思想的可視化,是相關(guān)模塊的電路圖的匯總和其相關(guān)仿真波形的集錦,該部分條理清晰,思路明確,從中我們可以清晰地看到該設(shè)計(jì)方案的具體模塊和整個(gè)設(shè)計(jì)的原理結(jié)構(gòu)實(shí)圖;程序設(shè)計(jì)這一部分主要闡述該設(shè)計(jì)的設(shè)計(jì)方法與設(shè)計(jì)思想,進(jìn)一步從軟件設(shè)計(jì)上揭示設(shè)計(jì)構(gòu)思,主要包含了整個(gè)設(shè)計(jì)所用到的模塊的硬件描述語(yǔ)言的設(shè)計(jì), 本文設(shè)計(jì)思路清晰,通過QuartusII 軟件進(jìn)行波形仿真成功,特別是正弦信號(hào)發(fā)生器的LPM 定制對(duì)于編程不是特別強(qiáng)的人員提供另一種途徑來實(shí)現(xiàn),加深理解EDA 的層次設(shè)計(jì)思想,很好的把握住了教學(xué)的改革方向,更好的鍛煉了學(xué)生理論聯(lián)系實(shí)踐的能力。
二、基于FPGA的DDS信號(hào)發(fā)生器設(shè)計(jì)
引 言
信號(hào)發(fā)生器又稱信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱為函數(shù)信號(hào)發(fā)生器。函數(shù)信號(hào)發(fā)生器的實(shí)現(xiàn)方法通常是采用分立元件或單片專用集成芯片,但其頻率不高,穩(wěn)定性較差,且不易調(diào)試,開發(fā)和使用上都受到較大限制。隨著可編程邏輯器件(FPGA)的不斷發(fā)展,直接頻率合成(DDS)技術(shù)應(yīng)用的愈加成熟,利用DDS原理在FP-GA平臺(tái)上開發(fā)高性能的多種波形信號(hào)發(fā)生器與基于DDS芯片的信號(hào)發(fā)生器相比,成本更低,操作更加靈活,而且還能根據(jù)要求在線更新配置,系統(tǒng)開發(fā)趨于軟件化、自定義化。本文研究了基于FPGA的DDS信號(hào)發(fā)生器設(shè)計(jì),實(shí)現(xiàn)了滿足預(yù)定指標(biāo)的多波形輸出。
1 DDS基本原理
DDS建立在采樣定理基礎(chǔ)上,首先對(duì)需要產(chǎn)生的波形進(jìn)行采樣,將采樣值數(shù)字化后存入存儲(chǔ)器作為查找表,然后通過查表讀取數(shù)據(jù),再經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬量,將保存的波形重新合成出來。DDS基本原理框圖如圖1所示。
?
除了濾波器(LPF)之外,DDS系統(tǒng)都是通過數(shù)字集成電路實(shí)現(xiàn)的,易于集成和小型化。系統(tǒng)的參考時(shí)鐘源通常是一個(gè)具有高穩(wěn)定性的晶體振蕩器,為各組成部分提供同步時(shí)鐘。頻率控制字(FSW)實(shí)際上是相位增量值(二進(jìn)制編碼)作為相位累加器的累加值。相位累加器在每一個(gè)參考時(shí)鐘脈沖輸入時(shí),累加一次頻率字,其輸出相應(yīng)增加一個(gè)步長(zhǎng)的相位增量。由于相位累加器的輸出連接在波形存儲(chǔ)器(ROM)的地址線上,因此其輸出的改變就相當(dāng)于查表。這樣就可以通過查表把存儲(chǔ)在波形存儲(chǔ)器內(nèi)的波形抽樣值(二進(jìn)制編碼)查找出來。ROM的輸出送到D/A轉(zhuǎn)換器,經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換成模擬量輸出。
2 系統(tǒng)總體方案設(shè)計(jì)
該設(shè)計(jì)以FPGA開發(fā)平臺(tái)為核心,將各波形的幅值/相位量化數(shù)據(jù)存儲(chǔ)在ROM內(nèi),按照設(shè)定頻率,以相應(yīng)頻率控制字k為步進(jìn),對(duì)相位進(jìn)行累加,以累加相位值作為地址碼讀取存放在存儲(chǔ)器內(nèi)的波形數(shù)據(jù),經(jīng)D/A轉(zhuǎn)換和幅度控制、濾波即可得到所需波形。波形發(fā)生器采取全數(shù)字化結(jié)構(gòu),用硬件描述語(yǔ)言Verilog設(shè)計(jì)實(shí)現(xiàn)其頻率可調(diào)可顯示。經(jīng)開發(fā)平臺(tái)的D/A轉(zhuǎn)化和外加濾波整形處理波形數(shù)據(jù),理論上能夠?qū)崿F(xiàn)任意頻率的各種波形。系統(tǒng)總體設(shè)計(jì)方框圖如圖2所示。
?
系統(tǒng)按工作原理和控制對(duì)象的先后分為三個(gè)功能單元:波形數(shù)據(jù)產(chǎn)生單元、D/A轉(zhuǎn)化單元和濾波整形處理單元。波形數(shù)據(jù)產(chǎn)生單元除具有波形數(shù)據(jù)輸出功能外,還有頻率設(shè)置和輸出顯示功能。波形信號(hào)頻率可設(shè)置范圍為0~99 999 999 Hz,系統(tǒng)時(shí)鐘采用外接晶體振蕩器40 MHz時(shí)鐘脈沖,頻率穩(wěn)定度優(yōu)于10-4輸出采用8位LED數(shù)碼循環(huán)動(dòng)態(tài)顯示。D/A轉(zhuǎn)換單元負(fù)責(zé)對(duì)從ROM表里讀取的波形數(shù)據(jù)進(jìn)行D/A轉(zhuǎn)換,對(duì)D/A轉(zhuǎn)換器件的選用從建立時(shí)間、位數(shù)、轉(zhuǎn)化誤差和轉(zhuǎn)換時(shí)間等四個(gè)方面考慮。濾波整形處理單元完成對(duì)D/A轉(zhuǎn)換的模擬波進(jìn)行平滑,濾除雜波和高頻干擾,補(bǔ)償頻帶損耗和幅度損失,最終輸出低誤差、高質(zhì)量、滿足題設(shè)要求的波形。
?
3 系統(tǒng)功能單元實(shí)現(xiàn)
3.1 波形數(shù)據(jù)產(chǎn)生單元
波形數(shù)據(jù)產(chǎn)生單元是信號(hào)發(fā)生器設(shè)計(jì)的主體。在此,采用DDS原理設(shè)計(jì)的信號(hào)發(fā)生器能完成三種波形(正弦、三角和方波)數(shù)據(jù)的產(chǎn)生,而且根據(jù)控制信號(hào)還可完成選定波形指定頻率的輸出。波形數(shù)據(jù)產(chǎn)生單元按功能實(shí)現(xiàn)上的相互聯(lián)系可劃分為頻率控制字生成模塊、相位累加器模塊和波形數(shù)據(jù)ROM表模塊,如圖3所示。其中,頻率控制字生成模塊可根據(jù)輸入產(chǎn)生指定頻率字,同時(shí)顯示輸入頻率數(shù)字。相位累加器模塊負(fù)責(zé)對(duì)所選波形的相位尋址,以頻率控制字作為步長(zhǎng)反復(fù)進(jìn)行累加運(yùn)算。波形數(shù)據(jù)ROM表模塊存放三種波形的幅值/相位量化值,通過地址選擇相應(yīng)波形的數(shù)據(jù)。
系統(tǒng)輸入控制使用4×4鍵盤.鍵盤主要按鍵功能介紹如下:
“0~9”:數(shù)字鍵,設(shè)定信號(hào)頻率;
“確定”:用于對(duì)波形信號(hào)設(shè)置的確認(rèn),波形信號(hào)的設(shè)置必須“確定”后才有效;
“←”:刪除已輸入信號(hào)頻率數(shù)字的最后一位,用于修改設(shè)置的頻率;
“清零”:將頻率數(shù)字快速全部清零;
“↑”:步進(jìn)增大控制;
“↓”:步進(jìn)減小控制。
設(shè)定頻率輸出范圍為1 kHz~10 MHz,頻率步進(jìn)為50 Hz。系統(tǒng)輸出采用8個(gè)LED數(shù)碼管,以掃描方式顯示(單位為Hz)頻率數(shù)字。根據(jù)DDS原理,以步進(jìn)值50Hz作為頻率控制字1,那么最大值10 MHz對(duì)應(yīng)的頻率控制字為200 000,用18位二進(jìn)制數(shù)值就可以表示(218>200 000)。從抽樣值恢復(fù)出原波形數(shù)據(jù),理論上每個(gè)周期波形數(shù)據(jù)至少抽取2個(gè)點(diǎn),考慮到實(shí)際應(yīng)用時(shí)受頻率損耗、線間串?dāng)_等因素的限制,該設(shè)計(jì)采用22 b的頻率控制字和相位累加器,4 Kb的8位波形ROM表,取相位累加器輸出的高12 b尋址波形數(shù)據(jù),三種波形按幅值/相位對(duì)應(yīng)關(guān)系分別存儲(chǔ)782個(gè)數(shù)據(jù)。故各波形數(shù)據(jù)單位周期有800 768(782×210)個(gè)相位狀態(tài),完全滿足任一波形在單位周期內(nèi)取4個(gè)幅值點(diǎn)的要求,可保證即使輸出最大頻率的波形仍能達(dá)到較好的效果。波形選擇功能由兩位開關(guān)組合實(shí)現(xiàn),共有四種狀態(tài),其中三組用來表征不同的波型,另一組留作擴(kuò)展波形用。
3.2 D/A轉(zhuǎn)換單元
數(shù)/模轉(zhuǎn)換單元是繼波形數(shù)據(jù)產(chǎn)生單元之后,將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求的合成頻率的模擬量形式信號(hào)。DAC輸出信號(hào)實(shí)際上是階梯模擬信號(hào),需在數(shù)/模轉(zhuǎn)換后利用低通濾波器對(duì)波形進(jìn)行平滑處理。在此,采用ADI公司生產(chǎn)的單片雙8位CMOS乘法數(shù)/模轉(zhuǎn)換器AD7528,線性度達(dá)到1/2,轉(zhuǎn)換時(shí)間達(dá)到納秒級(jí),可以很準(zhǔn)確地進(jìn)行10 MHz信號(hào)的量化運(yùn)算。
3.3 濾波處理單元
濾波器是一種能通過有用頻率信號(hào)而同時(shí)抑制(或衰減)無(wú)用頻率信號(hào)的電子裝置。由于運(yùn)算放大器具有近似理想的特性,且可以省去電感,得到接近理論預(yù)測(cè)的頻率響應(yīng)特性。構(gòu)成有源濾波電路后還具有一定的電壓放大和緩沖作用,并能減小體積。綜合考慮,系統(tǒng)采用運(yùn)算放大器SL560構(gòu)成二階低通濾波器。
4 系統(tǒng)功能仿真和驗(yàn)證分析
4.1 頻率控制字生成模塊仿真與分析
頻率控制字的生成直接影響著波形數(shù)據(jù)的尋址,該模塊負(fù)責(zé)快速記錄并實(shí)時(shí)顯示輸入的頻率數(shù)字,準(zhǔn)確計(jì)算得到相應(yīng)的頻率控制字。系統(tǒng)鍵盤為高速動(dòng)態(tài)掃描(頻率為200Hz),采用狀態(tài)機(jī)設(shè)計(jì),設(shè)置了按鍵去抖動(dòng)功能。在FPGA開發(fā)平臺(tái)對(duì)該模塊進(jìn)行功能驗(yàn)證,整體無(wú)誤操作產(chǎn)生,幾乎沒有時(shí)滯效應(yīng),按鍵的防抖動(dòng)效果也良好,達(dá)到了預(yù)期的目的。
4.2 相位累加器模塊仿真與分析
相位累加器用于實(shí)現(xiàn)相位累加,并存儲(chǔ)其累加結(jié)果。當(dāng)前,相位累加器的值和時(shí)鐘周期到來后的相位累加器的值相差k(k為頻率控制字)。該模塊的仿真波形如圖4所示。
?
4.3 實(shí)驗(yàn)波形觀測(cè)與誤差分析
信號(hào)發(fā)生器功能驗(yàn)證無(wú)誤,用示波器觀測(cè)實(shí)驗(yàn)波形如圖5所示。
?
檢測(cè)輸入頻率為0~10 MHz時(shí),波形形狀均良好,未出現(xiàn)明顯失真。計(jì)算理論誤差為0.095%,在實(shí)測(cè)中發(fā)現(xiàn),波形數(shù)字的誤差相對(duì)很小,不足0.1 %。由于濾波整形電路存在高頻耦合通路,產(chǎn)生線間串?dāng)_,對(duì)濾波效果形成了不利影響,因此濾波器設(shè)計(jì)必須滿足頻帶寬,截止特性好,抗干擾性強(qiáng)等特性。
5 結(jié) 語(yǔ)
介紹了以直接數(shù)字頻率合成技術(shù)(DDS)為基礎(chǔ)的波形信號(hào)發(fā)生器工作原理和設(shè)計(jì)過程,并在FPGA實(shí)驗(yàn)平臺(tái)上設(shè)計(jì)實(shí)現(xiàn)了滿足各功能指標(biāo)的信號(hào)發(fā)生器。系統(tǒng)硬件除需外加濾波整形電路外,其余部分均可在FPGA開發(fā)實(shí)驗(yàn)系統(tǒng)KH-310上集成開發(fā),系統(tǒng)軟件可在Quartus下編寫代碼,實(shí)現(xiàn)數(shù)據(jù)信息處理和控制操作等功能。整體開發(fā)環(huán)境成熟,應(yīng)用工具齊全,隨著FPGA性價(jià)比的不斷提高,基于FPGA平臺(tái)開發(fā)信號(hào)發(fā)生器將逐步走向標(biāo)準(zhǔn)化、規(guī)模化和產(chǎn)品化。
現(xiàn)代電子和通信技術(shù)的發(fā)展,對(duì)信號(hào)發(fā)生器提出了更高、更嚴(yán)格的要求。除了對(duì)信號(hào)頻率范圍、帶寬和頻率分辨率的嚴(yán)格限制外,對(duì)信號(hào)的波型及調(diào)制特性等也有著苛刻的規(guī)定。研究和開發(fā)具有更高性價(jià)比的信號(hào)發(fā)生器將是當(dāng)前和今后一段時(shí)間內(nèi)亟需解決的課題。這里旨在建立一種基于FPGA的簡(jiǎn)單數(shù)字信號(hào)發(fā)生器設(shè)計(jì)方法。若能充分利用FPGA強(qiáng)大的數(shù)據(jù)運(yùn)算處理能力以及編程靈活、運(yùn)行速率快等優(yōu)點(diǎn),合理整合IP核資源和SoPC技術(shù),簡(jiǎn)化設(shè)計(jì)結(jié)構(gòu),一定可以設(shè)計(jì)出功能多樣、性能更加出色的信號(hào)發(fā)生器。
評(píng)論