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