《【中期報(bào)告】基于FPGA的多信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《【中期報(bào)告】基于FPGA的多信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)(10頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
畢業(yè)設(shè)計(jì)(論文)中期報(bào)告
題目名稱:基于FPGA的多信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)
9
13
一、課題任務(wù)
1.畢業(yè)設(shè)計(jì)題目:基于FPGA的函數(shù)信號(hào)發(fā)生器。
2.畢業(yè)設(shè)計(jì)要求:本設(shè)計(jì)要求產(chǎn)生頻率,幅度,可調(diào)的正弦波,三角波和方波。
二、總體設(shè)計(jì)方案
該方案采用FPGA作為中心控制邏輯,由于其具有高速和邏輯單元數(shù)多的特點(diǎn),因此可以由FPGA、DAC和I/V運(yùn)放直接構(gòu)成信號(hào)源發(fā)生器的最小系統(tǒng)。在該方案中通過(guò)FPGA控制DAC并直接向DAC發(fā)送數(shù)據(jù),這樣就提高了所需波形的頻率并繞過(guò)了通用存儲(chǔ)器讀取速度慢的
2、特點(diǎn),再加上外部的開關(guān)按鈕就能夠簡(jiǎn)單控制波形切換與頻率選擇。當(dāng)然,為了增加人機(jī)界面的交互性與系統(tǒng)功能,可以在原有的基礎(chǔ)上添加一個(gè)標(biāo)準(zhǔn)鍵盤和LED或LCD,這樣就能夠通過(guò)編程實(shí)現(xiàn)波形的任意性、幅度變化的靈活性。
圖1系統(tǒng)總體方案圖
三、 階段性成果
FPGA軟件設(shè)計(jì)部分
3.1頻率控制部分(相位累加器)
相位累加器模塊如圖2所示,相位累加器根據(jù)參考時(shí)鐘fc=1024hz以頻率控制字K進(jìn)行累加,實(shí)現(xiàn)頻率的控制,輸出信號(hào)頻率:fo=Kfc/2N;本設(shè)計(jì)采用16位的相位累加器,N=16,輸出信號(hào)頻率范圍0.015-1024hz。
LIBRARY IEEE;--頻率控制器
3、
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fcontrol IS
PORT ( clk:in std_logic;
f:in std_logic_vector(15 downto 0);
q:out std_logic_vector(15 downto 0));
END ENTITY fcontrol;
ARCHITECTURE behave OF fcontrol IS
signal qf: std_logic_vector(15 downto 0);
4、
signal q1: std_logic_vector(15 downto 0);
BEGIN
PROCESS(clk)
BEGIN
if clkevent and clk=1 then
qf<=f;
q1<=qf+q1;
end if;
q<=q1;
END PROCESS;
END ARCHITECTURE behave;
圖2 相位累加器
3.2相位控制部分
相位增量模塊如圖3所示,最小相位增量 δ=2π/2N=9.6e-5弧度
LIBRARY IEEE;--相位控制器
U
5、SE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY pcontrol IS
PORT ( x:in std_logic_vector(15 downto 0);
qf:in std_logic_vector(15 downto 0);
q:out std_logic_vector(5 downto 0));
END ENTITY pcontrol;
ARCHITECTURE behave OF pcontrol IS
signal q1: std_logic_vector(1
6、5 downto 0);
BEGIN
q1<=qf+x;
q<=q1(15 downto 10);
END ARCHITECTURE behave;
圖3 相位控制器
3.3主控器
主控器模塊如圖4所示相位累加器根據(jù)參考時(shí)鐘fc以頻率控制字K進(jìn)行累加,將所得N位的二進(jìn)制代碼,加上相位控制字P和波形控制字W,取其高L位作為ROM的地址,已選擇波形。當(dāng)sel=‘000’,輸出為正弦波;sel=‘001’,輸出為方波;sel=‘010’,輸出為三角波;
LIBRARY IEEE;--主控制器
USE IEEE.STD_LOGIC_1164.ALL;
USE
7、IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY control IS
PORT ( sel:in std_logic_vector(2 downto 0);
qx:in std_logic_vector(5 downto 0);
clk:in std_logic;
en:out std_logic;
cs:out std_logic;
q:out std_logic_vector(8 downto 0));
END EN
8、TITY control;
ARCHITECTURE behave OF control IS
BEGIN
PROCESS(sel,qx,clk)
BEGIN
if sel>"100" then
en<=1;
cs<=1;
q<="000000000";
else
en<=clk;
cs<=0;
q<=sel&qx;
end if;
end process;
END ARCHITECTURE behave;
圖4 波形選擇部分
3.4波形數(shù)據(jù)存儲(chǔ)
9、器ROM
波形rom如圖5所示,波形數(shù)據(jù)的建立,F(xiàn)PGA輸出的數(shù)字信號(hào)需要經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換成各種波形輸出。而由D/A轉(zhuǎn)換器可知,TLC7528的分辨率是8位,這樣,將模擬信號(hào)的各種波行在一個(gè)周期內(nèi)平均分成255份,由于已經(jīng)確定每周期的取樣點(diǎn)數(shù)為64,即每隔2π/64的間隔取值一次,所取的值為該點(diǎn)對(duì)應(yīng)的波形的值,通過(guò)計(jì)算可以獲得64個(gè)取樣點(diǎn)的值;也可以通過(guò)查表的方法取得64個(gè)取樣點(diǎn)的值。同理可以獲取方波和三角波的波形數(shù)據(jù)。
圖5 波形ROM存儲(chǔ)器
3.5 FPGA頂層設(shè)計(jì)
圖6 頂層設(shè)計(jì)文件
3.6仿真結(jié)果
仿真環(huán)境是ALTERA公司的Quart
10、us II 9.0sp2軟件的一項(xiàng)特殊功能,設(shè)置不同的輸入信號(hào),可實(shí)現(xiàn)不同的波形數(shù)據(jù)的輸出。根據(jù)選擇的不同開關(guān)信號(hào)組合,可得到如下圖所示各種仿真數(shù)據(jù)。
(a)正弦波仿真波形
圖6正弦波仿真波形
(b)三角波仿真波形
圖7三角波仿真波形
(c)方波仿真波形
圖8方波仿真波形
3.7仿真結(jié)果分析
對(duì)比仿真與實(shí)際所得結(jié)果,本次課程設(shè)計(jì)基本上達(dá)到了預(yù)期的要求,當(dāng)然在對(duì)部分波形輸出的處理與最終結(jié)果的得出上,我們也中遇到并解決了系列問(wèn)題。
首先,我們對(duì)實(shí)驗(yàn)箱的電路組成及連接情況不清楚,不利于編寫程序及為實(shí)體的各個(gè)端口分配引腳。為此,我
11、們找到實(shí)驗(yàn)箱的電路原理圖,對(duì)照原理圖結(jié)合硬件電路,最終我們搞清楚了電路的組成及連接情況,還有知道了一些必要的硬件設(shè)置,比如開關(guān)是否有效、低通濾波電路電容的選擇等問(wèn)題。
然后,就是帶給我們最大困惑的部分——三角波信號(hào)的輸出。起初的時(shí)候我們采用IF語(yǔ)句利用條件賦值語(yǔ)句產(chǎn)生數(shù)字信號(hào),但是觀察不到預(yù)想的波形。經(jīng)過(guò)多次檢查修改還是無(wú)果后,我們改變了方法利用計(jì)數(shù)器和CASE語(yǔ)句產(chǎn)生信號(hào),但是編譯后發(fā)現(xiàn)硬件資源不夠,只能放棄這種方法,采用第一種方法。調(diào)試分為軟件和硬件兩部分。在軟件調(diào)試部分,我們把產(chǎn)生的數(shù)字信號(hào)送給LED,經(jīng)過(guò)觀察,所送的數(shù)據(jù)與預(yù)想的數(shù)字信號(hào)一致,這表明了軟件部分沒(méi)有問(wèn)題;結(jié)合其它波形能夠
12、正確輸出并在示波器上顯示,我們判斷硬件部分也沒(méi)問(wèn)題。在百般無(wú)奈的情況下,我們向老師請(qǐng)教,最終弄明白了問(wèn)題。原來(lái)正斜率斜波信號(hào)經(jīng)過(guò)一段時(shí)間后基本上相當(dāng)于直流信號(hào),而示波器的檔位沒(méi)有調(diào)節(jié),仍為交流耦合,故不能觀察到信號(hào)波形。當(dāng)調(diào)節(jié)為直流檔位后就可觀察到直流波形。
四、 時(shí)間進(jìn)度
第一學(xué)期
08-12周:閱讀相關(guān)的外文文獻(xiàn)并翻譯(漢字3000字以上);
13-17周:熟悉掌握設(shè)計(jì)任務(wù)的要求,查閱資料,確定系統(tǒng)方案;
第二學(xué)期
03-04周:完成頂層文件的設(shè)計(jì);
05-06周:完成相關(guān)軟件流程圖及主程序的設(shè)計(jì);
07-08周:硬件焊接、測(cè)試、軟件編程;
09-1
13、0周:系統(tǒng)軟件調(diào)試。
11-13周:系統(tǒng)調(diào)試;整理有關(guān)資料,完成畢業(yè)論文的初稿。
14-16周:系統(tǒng)測(cè)試、完成畢業(yè)論文的修改。
17周: 完成論文,準(zhǔn)備畢業(yè)答辯。
參考文獻(xiàn)
[1] 盧毅 .VHDL.與數(shù)字電路設(shè)計(jì)[M].科學(xué)出版社.北京:2003.
[2] 樊昌信等.通信原理[M].國(guó)防工業(yè)出版社.北京:1995.
[3] 潘松等.EDA技術(shù)實(shí)用教程[M].科學(xué)出版社[M].北京:2007.
[4] 郝小江,羅彪.基于FPGA的函數(shù)信號(hào)發(fā)生器[J],電測(cè)與儀表.2008.(5).
[5] 許開華 .DDS任意波形發(fā)生函數(shù)器數(shù)據(jù)生成及傳輸接口設(shè)計(jì)[D].電子科技大學(xué)碩士學(xué)位論文,2007
[6] 楊守良,程正富,基于Matlab/DSP Builder 多波形信號(hào)發(fā)生器的設(shè)計(jì)[J].微計(jì)算機(jī)信息。2007,(10)
[7] 高士友,胡學(xué)深,杜興莉,劉橋.基于FPGA的DDS信號(hào)發(fā)生器設(shè)計(jì)[期刊論文]-現(xiàn)代電子技術(shù) 2009(16)
[8] 學(xué)位論文萬(wàn)永波.基于ARM的任意波發(fā)生器開發(fā)研究 2006
[9] 學(xué)位論文黃振華.基于FPGA函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn) 2009
[10] Altera公司Altera數(shù)字圖書館2002年
a