基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)_第1頁(yè)
基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)_第2頁(yè)
基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)_第3頁(yè)
基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)_第4頁(yè)
基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2014級(jí)學(xué)生EDA課程設(shè)計(jì) EDA課程設(shè)計(jì)報(bào)告書(shū)課題名稱基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)姓 名 學(xué) 號(hào) 院、系、部 專 業(yè) 指導(dǎo)教師 2016年6月20日 一、設(shè)計(jì)任務(wù)及要求:設(shè)計(jì)任務(wù):設(shè)計(jì)一個(gè)具有能夠產(chǎn)生方波、三角波、正弦波、及梯形波信號(hào)源電路。要 求: 1. 函數(shù)發(fā)生器能夠產(chǎn)生方波、三角波、正弦波、及梯形波。2. 可以通過(guò)選擇開(kāi)關(guān)選擇相應(yīng)的波形輸出。3. 通過(guò)按鍵確定輸出的波形及確定是否輸出波形。4. 系統(tǒng)具有復(fù)位的功能。指導(dǎo)教師簽名: 2016年 月 日 二、指導(dǎo)教師評(píng)語(yǔ):指導(dǎo)教師簽名: 2016年 月 日 三、成績(jī) 指導(dǎo)教師簽名: 2016年 月 日 基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)

2、1 設(shè)計(jì)目的(1)熟悉集成電路的引腳安排。(2)掌握各芯片的邏輯功能及使用方法。(3)了解面包板結(jié)構(gòu)及其接線方法。(4)了解函數(shù)發(fā)生器的組成及工作原理。(5)熟悉函數(shù)發(fā)生器的設(shè)計(jì)與制作。2 設(shè)計(jì)思路(1)設(shè)計(jì)正弦波發(fā)生電路。(2)設(shè)計(jì)三角波發(fā)生電路。(3)設(shè)計(jì)方波發(fā)生電路。通過(guò)以上分析設(shè)計(jì)要求完成的功能,確定函數(shù)發(fā)生器可由三角波產(chǎn)生模塊、梯形波產(chǎn)生模塊、正弦波產(chǎn)生模塊、方波產(chǎn)生模塊和輸出波形選擇模塊組成,以及按鍵復(fù)位控制和時(shí)鐘輸入。由此可確定系統(tǒng)的總體原理框圖為:波形發(fā)生模塊波形輸出選擇模塊復(fù)位reset時(shí)鐘clk波形 3 設(shè)計(jì)過(guò)程 3.1波形函數(shù)發(fā)生方案對(duì)比選擇 波形函數(shù)發(fā)生是本設(shè)計(jì)的最重要

3、的部分,實(shí)現(xiàn)函數(shù)發(fā)生的途徑也有很多,因此必須選擇一種易于實(shí)現(xiàn)且精度高的方案,以此來(lái)提高本設(shè)計(jì)的實(shí)用性。 方案一:通過(guò)單片機(jī)控制D/A,輸出三種波形。此方案輸出的波形不夠穩(wěn)定,抗干擾能力弱,不易調(diào)節(jié),而且達(dá)不到題目要求的六種波形。 方案二:使用傳統(tǒng)的鎖相頻率合成方法。通過(guò)芯片IC145152,壓控振蕩器搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利用過(guò)零比較器轉(zhuǎn)換成方波,積分電路轉(zhuǎn)換成三角波。此方案,電路復(fù)雜,干擾因素多,不易實(shí)現(xiàn)。 方案三:利用MAX038芯片組成的電路輸出波形。MAX038是精密高頻波形產(chǎn)生電路,能夠產(chǎn)生準(zhǔn)確的三角波、方波和正弦波三種周期性波形,但無(wú)法實(shí)現(xiàn)梯形波和遞增遞減斜波的

4、產(chǎn)生。 方案四:利用在系統(tǒng)編程技術(shù)和FPGA芯片產(chǎn)生。用VHDL語(yǔ)言編寫程序,調(diào)試成功后下載至實(shí)驗(yàn)裝置的芯片上,再利用外接D/A轉(zhuǎn)換電路實(shí)現(xiàn)以上設(shè)計(jì)功能。此種方案完全可以生成設(shè)計(jì)要求的6種波形,而且通過(guò)軟件仿真可以直觀的觀測(cè)的輸出的波形參數(shù),方便調(diào)試和更改波形參數(shù),外圍電路簡(jiǎn)單,減少器件損耗,精度高。 基于方案四的外圍電路簡(jiǎn)單容易實(shí)現(xiàn)、波形產(chǎn)生精度高、易于仿真觀測(cè)調(diào)試的優(yōu)點(diǎn),因此本設(shè)計(jì)的函數(shù)發(fā)生器選擇方案四完成波形發(fā)生的全部功能。3.2 波形函數(shù)輸出控制方式選擇方案一:控制多路D/A開(kāi)關(guān)輸出方式此種方案為每一路輸出的波形函數(shù)使用一路D/A轉(zhuǎn)換后輸出,通過(guò)控制開(kāi)關(guān)控制每一路D/A是否工作,決定輸

5、出的波形。此種方案可以同時(shí)輸出多路波形,但是需要路D/A轉(zhuǎn)化器,外圍電路復(fù)雜,制作成本較高而且控制復(fù)雜。方案二:采用數(shù)據(jù)選擇器方式此種方案可以利用VHDL語(yǔ)言寫出數(shù)據(jù)選擇器,然后每種函數(shù)發(fā)生器的輸出和數(shù)據(jù)選擇器輸入相連接,通過(guò)控制開(kāi)關(guān)選擇對(duì)應(yīng)的波形輸出。方案二完全可以得到方案一的設(shè)計(jì)要求,而且只需一個(gè)D/A轉(zhuǎn)換器就可以。電路不需要外部搭建,節(jié)約成本且控制簡(jiǎn)單方便。方案三:采用數(shù)據(jù)分配器方式此種方案利用數(shù)據(jù)分配器的功能,通過(guò)控制開(kāi)關(guān)選擇相應(yīng)的函數(shù)發(fā)生器模塊,使之產(chǎn)生相應(yīng)的波形輸出,并通過(guò)數(shù)據(jù)分配器的使能復(fù)位控制決定是否輸出波形,此種方案和方案二很相似,也能夠?qū)崿F(xiàn)設(shè)計(jì)的功能也具有方案二的優(yōu)點(diǎn)?;?/p>

6、方案二的設(shè)計(jì)簡(jiǎn)便、節(jié)約制作元件和成本、控制簡(jiǎn)便等優(yōu)點(diǎn),選擇方案二作為波形函數(shù)輸出控制方式。3.3系統(tǒng)細(xì)化框圖通過(guò)以上各個(gè)模塊的分析最終確定函數(shù)信號(hào)發(fā)生器的自頂向下的細(xì)化框圖為:3.4 系統(tǒng)的整體原理框圖:波形選擇模塊三角波模塊梯形波模塊正弦波模塊方波模塊時(shí)鐘clk復(fù)位reset波形選擇開(kāi)關(guān)D/A轉(zhuǎn)換器系統(tǒng)時(shí)鐘輸入后,通過(guò)復(fù)位開(kāi)關(guān)選擇是否產(chǎn)生波形,當(dāng)各個(gè)模塊產(chǎn)生相應(yīng)的信號(hào)波形后,通過(guò)波形選擇模塊波形選擇開(kāi)關(guān)選澤輸出不同的波形,再通過(guò)D/A轉(zhuǎn)換器轉(zhuǎn)換,就可以把數(shù)字信號(hào)(由FPGA輸出)變成了相應(yīng)模擬的信號(hào)波形。整個(gè)系統(tǒng)設(shè)計(jì)的核心就是FPGA部分。4各模塊程序設(shè)計(jì)及仿真根據(jù)自上而下的思路進(jìn)行項(xiàng)目設(shè)計(jì)

7、。明確每個(gè)模塊的功能以后,開(kāi)始編寫各個(gè)模塊的程序。4.1 三角波模塊三角波delat的VHDL程序如附錄所示,其中clk是輸入時(shí)鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復(fù)位端口,q為八位二進(jìn)制輸出端口。三角波波形是對(duì)稱的,每邊呈線形變化,所以可以根據(jù)數(shù)據(jù)做簡(jiǎn)單運(yùn)算,就可以得到三角波。圖3 三角波模塊仿真圖程序設(shè)計(jì)的是reset復(fù)位信號(hào)為0時(shí)輸出為0,無(wú)對(duì)應(yīng)的波形產(chǎn)生。當(dāng)復(fù)位信號(hào)為1時(shí),當(dāng)每當(dāng)檢測(cè)到時(shí)鐘上升沿時(shí),當(dāng)計(jì)數(shù)的數(shù)據(jù)不是最大值時(shí),數(shù)值做遞增運(yùn)算,當(dāng)增大到最大時(shí),然后再做遞減運(yùn)算,因此輸出的波形便呈現(xiàn)出三角波的形狀。從仿真波形圖也能看出這種變化規(guī)律。VHDL描

8、述如下:IF reset='0' THEN tmp:="00000000"-復(fù)位信號(hào)為0,置最小值 ELSIF clk'EVENT AND clk='1' THEN-檢測(cè)時(shí)鐘上升沿 IF a='0' THEN IF tmp="11111110" THENtmp:="11111111" -置最大值a:='1' ELSE -不是最大值時(shí)遞增tmp:=tmp+1;-遞增運(yùn)算 END IF; ELSE IF tmp ="00000001" THENtm

9、p:="00000000" -置最小值a:='0' ELSE -a為1時(shí),執(zhí)行遞減運(yùn)算tmp:=tmp-1;-遞減運(yùn)算4.2梯形波模塊梯形波ladder的VHDL程序如附錄所示,其中clk是輸入時(shí)鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復(fù)位端口,q為八位二進(jìn)制輸出端口。圖4 梯形波模塊仿真圖梯形波設(shè)計(jì)的是數(shù)據(jù)的遞增是以一定的梯形常數(shù)向上增加,所以輸出的波形呈現(xiàn)是成梯形狀的,而不是,完全呈現(xiàn)是直線增長(zhǎng)。從仿真波形圖也能看出這種變化規(guī)律。VHDL描述如下:IF reset='0' THEN tmp:="00

10、000000"-復(fù)位信號(hào)為0,置最小值ELSIF clk'EVENT AND clk='1' THEN-檢測(cè)時(shí)鐘上升沿 IF a='0' THEN-判斷a數(shù)值,計(jì)數(shù)。 IF tmp="11111111" THENtmp:="00000000" -計(jì)數(shù)到最大清零a:='1' ELSEtmp:=tmp+16;-梯形常數(shù)為16,可修改a:='1' END IF; ELSEa:='0'-循環(huán)計(jì)數(shù)標(biāo)志 END IF; END IF;q<=tmp;END PROC

11、ESS; END behave;4.3正弦波模塊正弦波sin的VHDL程序如附錄所示,其中clk是輸入時(shí)鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復(fù)位端口,q為八位二進(jìn)制輸出端口。圖5 正弦波模塊仿真圖正弦波產(chǎn)生原理:通過(guò)循環(huán)不斷地從波形數(shù)據(jù)ROM文件中依次讀取正弦波一個(gè)周期在時(shí)域上64個(gè)采樣點(diǎn)的波形數(shù)據(jù)送入波形DAC,從而產(chǎn)生正弦波。4.4方波模塊方波模塊的square的VHDL程序描述如下:其中clk為輸入時(shí)鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復(fù)位端口,q為整數(shù)輸出端口。圖6 方波模塊仿真圖方波模塊的設(shè)計(jì)是當(dāng)內(nèi)部計(jì)數(shù)cnt達(dá)到6

12、4時(shí),根據(jù)輸出標(biāo)志a的數(shù)值輸出對(duì)應(yīng)的數(shù)值,當(dāng)a=0輸出0,也即是方波周期中的低電平,當(dāng)a=1,輸出255,也即是方波周期中的高電平。連續(xù)的輸出便成了觀測(cè)到的方波波形。其VHDL描述如下:IF clr='0' THEN a<='0' ELSIF clk'EVENT AND clk='1' THEN -檢測(cè)時(shí)鐘上升沿IF cnt<63 THEN -計(jì)數(shù)64個(gè)點(diǎn)cnt:=cnt+1;-計(jì)數(shù) ELSEcnt:=0; -當(dāng)計(jì)數(shù)的值大于64時(shí),清零。a<=NOT a; -對(duì)內(nèi)部a變量取反,a變化啟動(dòng)進(jìn)程END PROCESS; .P

13、ROCESS(clk,a)BEGINIF clk'EVENT AND clk='1' THEN IF a='1' THENq<=255; -a=1,輸出一個(gè)波形周期內(nèi)的高電平 ELSEq<=0; -a=0,輸出一個(gè)波形周期的低電平。4.5輸出波形選擇模塊波形選擇模塊是一個(gè)設(shè)計(jì)位6選1的數(shù)據(jù)選擇器,其中sel為波形數(shù)據(jù)選擇端口,d0d5為8位二進(jìn)制輸入端口,q為8位二進(jìn)制輸出端口。該模塊可以根據(jù)外部開(kāi)關(guān)的狀態(tài)選擇相應(yīng)的波形輸出。其選擇VHDL程序如下:CASE sel ISWHEN"001"=>q<=d2;-三角

14、波形輸出WHEN"010"=>q<=d3;-梯形波形輸出WHEN"011"=>q<=d4;-正弦波形輸出WHEN"100"=>q<=d5;-方波輸出WHEN OTHERS=>NULL; 4.6系統(tǒng)聯(lián)調(diào)測(cè)試分析通過(guò)以上各個(gè)模塊的細(xì)化和分析,最終完成了整個(gè)系統(tǒng)的聯(lián)合調(diào)試,并通過(guò)示波器讀輸出信號(hào)的波形符合設(shè)計(jì)的要求。調(diào)試整個(gè)系統(tǒng)了原理圖如下圖所示:5設(shè)計(jì)體會(huì)與建議 5.1設(shè)計(jì)體會(huì)通過(guò)這次對(duì)函數(shù)發(fā)生器的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于函數(shù)發(fā)生器的基本原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路

15、總要先用仿真仿真成功之后才實(shí)際接線的。但是最后的成品卻不一定與仿真時(shí)完全一樣,因?yàn)?,再?shí)際接線中有著各種各樣的條件制約著。而且,在仿真中無(wú)法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒?。所以,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。此外,本實(shí)驗(yàn)也可通過(guò)EDA軟件Multisim10實(shí)現(xiàn)。通過(guò)這次學(xué)習(xí),讓我對(duì)各種電路都有了大概的了解,所以說(shuō),坐而言不如立而行,對(duì)于這些電路還是應(yīng)該自己動(dòng)手實(shí)際操作才會(huì)有深刻理解。5.2對(duì)設(shè)計(jì)的建議我希望老師在我們動(dòng)手制作之前應(yīng)先告訴我們一些關(guān)于所做電路的資料、原理,以及如何檢測(cè)電路的方法,還有關(guān)于檢測(cè)芯片的方法。這樣會(huì)有助于我們進(jìn)一步的進(jìn)入狀態(tài)

16、,完成設(shè)計(jì)。參考文獻(xiàn)1 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第二版).科學(xué)出版社,2007.92 劉艷惠,李娜,孔旭梅.EDA技術(shù)教程.西北師范大學(xué)知行學(xué)院計(jì)算機(jī)與電子信息科學(xué)系3 潭會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用.西安電子科技大學(xué)出版社,2001.94 李洋. EDA技術(shù)使用教程.機(jī)械工業(yè)出版社,2002.3附錄1、三角波形源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sanjiaobo IS PORT(clk,reset:IN STD_LOGIC; q:OUT STD

17、_LOGIC_VECTOR(7 DOWNTO 0);end sanjiaobo;ARCHITECTURE behave OF sanjiaobo ISBEGIN PROCESS(clk,reset) VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); VARIABLE a:STD_LOGIC; BEGINIF reset='1' THEN tmp:="00000000"-復(fù)位信號(hào)為0,置最小值 ELSIF clk'EVENT AND clk='1' THEN-檢測(cè)時(shí)鐘上升沿 IF a='0&#

18、39; THEN IF tmp="11111110" THENtmp:="11111111" -置最大值a:='1' ELSE -不是最大值時(shí)遞增tmp:=tmp+1;-遞增運(yùn)算 END IF; ELSE IF tmp ="00000001" THENtmp:="00000000" -置最小值a:='0' ELSE -a為1時(shí),執(zhí)行遞減運(yùn)算tmp:=tmp-1;-遞減運(yùn)算 END IF; END IF; END IF; q<=tmp; END PROCESS;END behav

19、e;2、梯形波形程序源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY tixingbo ISPORT(clk,reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END tixingbo;ARCHITECTURE behave OF tixingbo ISBEGINPROCESS(clk,reset)VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0); -定義內(nèi)部變量VARIABLE

20、 a: STD_LOGIC; BEGINIF reset='1' THEN tmp:="00000000"-復(fù)位信號(hào)為0,置最小值ELSIF clk'EVENT AND clk='1' THEN-檢測(cè)時(shí)鐘上升沿 IF a='0' THEN-判斷a數(shù)值,計(jì)數(shù)。 IF tmp="11111111" THENtmp:="00000000" -計(jì)數(shù)到最大清零a:='1' ELSEtmp:=tmp+16;-梯形常數(shù)為16,可修改a:='1' END IF;

21、ELSEa:='0'-循環(huán)計(jì)數(shù) END IF; END IF;q<=tmp;END PROCESS; END behave;3、正弦波源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sin IS PORT(clk,clr:IN STD_LOGIC; d: OUT INTEGER RANGE 0 TO 255); END sin ; ARCHITECTURE behave OF sin IS BEGIN PROCESS(clk,clr) VARIABL

22、E tmp: INTEGER RANGE 0 TO 63; BEGIN IF clr='1'THEN d<=0; ELSIF clk'EVENT AND clk='1'THEN IF tmp=63 THEN tmp:=0; ELSE tmp:=tmp+1; END IF; CASE tmp IS WHEN 00=>d<=255;WHEN 01=>d<=254;WHEN 02=>d<=252; WHEN 03=>d<=249;WHEN 04=>d<=245;WHEN 05=>d<

23、=239; WHEN 06=>d<=233;WHEN 07=>d<=225;WHEN 08=>d<=217; WHEN 09=>d<=207;WHEN 10=>d<=197;WHEN 11=>d<=186; WHEN 12=>d<=174;WHEN 13=>d<=162;WHEN 14=>d<=150; WHEN 15=>d<=137;WHEN 16=>d<=124;WHEN 17=>d<=112; WHEN 18=>d<=99; WHEN

24、 19=>d<=87; WHEN 20=>d<=75; WHEN 21=>d<=64; WHEN 22=>d<=53; WHEN 23=>d<=43; WHEN 24=>d<=34; WHEN 25=>d<=26; WHEN 26=>d<=19; WHEN 27=>d<=13; WHEN 28=>d<=8; WHEN 29=>d<=4; WHEN 30=>d<=1; WHEN 31=>d<=0; WHEN 32=>d<=0; W

25、HEN 33=>d<=1; WHEN 34=>d<=4; WHEN 35=>d<=8; WHEN 36=>d<=13; WHEN 37=>d<=19; WHEN 38=>d<=26; WHEN 39=>d<=34; WHEN 40=>d<=43; WHEN 41=>d<=53; WHEN 42=>d<=64; WHEN 43=>d<=75; WHEN 44=>d<=87; WHEN 45=>d<=99; WHEN 46=>d<=

26、112;WHEN 47=>d<=124; WHEN 48=>d<=137;WHEN 49=>d<=150;WHEN 50=>d<=162; WHEN 51=>d<=174;WHEN 52=>d<=186;WHEN 53=>d<=197; WHEN 54=>d<=207;WHEN 55=>d<=217;WHEN 56=>d<=225; WHEN 57=>d<=233;WHEN 58=>d<=239;WHEN 59=>d<=245; WHEN

27、60=>d<=249;WHEN 61=>d<=252;WHEN 62=>d<=254; WHEN 63=>d<=255; WHEN OTHERS=>NULL; END CASE; END IF; END PROCESS;END behave;4、方波源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY fangbo ISPORT(clk,clr:IN STD_LOGIC; q:OUT INTEGER RANGE 0 TO 255); END fangbo; ARCHITECTURE behave OF fangbo ISSIGNAL a:BIT;BEGINPROCESS(clk,clr)VARIABLE cnt:INTEGER; -定義內(nèi)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論