版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> EDA課程設(shè)計報告書</p><p><b> 四人強大器設(shè)計</b></p><p> 設(shè)計者 : </p><p><b> 指導(dǎo)老師 : </b></p><p> 學(xué) 號 : </p><p> 專業(yè)班級:10通
2、信工程</p><p><b> 2013.5</b></p><p><b> 目錄</b></p><p> 一、摘要,關(guān)鍵字………………………………………………………3</p><p> 二、正文…………………………………………………………………3</p><p&g
3、t; 2.1設(shè)計任務(wù)及要求……………………………………………………3</p><p> 2.2方案選擇與論證……………………………………………………3</p><p> 2.3方案的原理框圖及其說明……………………………………………4</p><p> 2.4硬件選擇……………………………………………………………4</p><p>
4、 2.5系統(tǒng)設(shè)計詳述………………………………………………………4</p><p> 2.6系統(tǒng)仿真及分析…………………………………………………… 6</p><p> 2.7下載測試及分析……………………………………………………9</p><p> 2.8收獲體會、存在問題和進一步的改進意見等…………………………10</p><p>
5、 三、參考文獻……………………………………………………………10</p><p> VHDL語言實現(xiàn)四人搶答器的設(shè)計</p><p> 作者:方草 李夢紫 指導(dǎo)老師:李敏老師</p><p> ?。ê蔽睦韺W(xué)院理工學(xué)院)</p><p> ?。壅荩弘S著基于PLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,EDA技術(shù)
6、在電子信息、通信、自動控制及計算機應(yīng)用等領(lǐng)域的重要性日益突出。本文詳細介紹EDA課程設(shè)計任務(wù)——四人搶答器的設(shè)計的詳細設(shè)計過程及結(jié)果,并總結(jié)出心得體會。</p><p> ?。坳P(guān)鍵字]:EDA技術(shù);VHDL語言;子模塊;頂層模塊;四人搶答器;</p><p> EDA技術(shù)作為現(xiàn)代電子設(shè)計技術(shù)的核心,它依賴強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL為系統(tǒng)邏輯描述手段完成的
7、設(shè)計文件,自動地完成邏輯編譯、邏輯簡化、邏輯分割、邏輯綜合,以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。詳細介紹在QUARTUS II軟件環(huán)境下開發(fā)基于VHDL語言四人搶答器的設(shè)計。</p><p><b> 二.正文</b></p><p> 1.設(shè)計任務(wù)及要求 </p><p><b> 1.設(shè)計內(nèi)容</b
8、></p><p> 選用合適的可編程邏輯器件及外圍電子元器件,設(shè)計一個四人搶答器,利用EDA 軟件(QUARTUS Ⅱ)進行編譯及仿真,設(shè)計輸入可采用VHDL硬件描述語言輸入法和原理圖輸入法,并下載到EDA實驗開發(fā)系統(tǒng),連接外圍電路,完成實際驗證。</p><p><b> 2.設(shè)計要求</b></p><p> ?。?)具有搶答
9、功能。</p><p> ?。?)具有鑒別功能。</p><p> ?。?)具有控制及清零和使能功能。</p><p> (4)具有倒計時功能。</p><p> ?。?)具有顯示功能(LED燈顯示和數(shù)碼管顯示)。</p><p><b> 2.方案選擇與論證</b></p>&
10、lt;p> 數(shù)字系統(tǒng)的設(shè)計采用自頂向下、由粗到細, 逐步分解的設(shè)計方法, 最頂層電路是指系統(tǒng)的整體要求, 最下層是具體的邏輯電路的實現(xiàn)。自頂向下的設(shè)計方法將一個復(fù)雜的系統(tǒng)逐漸分解成若干功能模塊, 從而進行設(shè)計描述, 并且應(yīng)用EDA 軟件平臺自動完成各功能模塊的邏輯綜合與優(yōu)化, 門級電路的布局, 再下載到硬件中實現(xiàn)設(shè)計。</p><p> 因此對于四人搶答器來說首先是鑒別功能和倒計時功能,然后能顯示,附帶
11、功能是清零、使能。通過參考EDA課程設(shè)計指導(dǎo)書,有以下方案:</p><p> 作為頂層文件有輸入端口:時鐘信號,清零按鍵,使能按鍵(兩個),搶答按鍵;輸出端口有:用于接數(shù)碼管的八段碼輸出口,用以顯示的LED燈端口。</p><p> 底層文件分為:鑒別模塊: 實現(xiàn)鑒別選手序列號的功能。計時模塊:實現(xiàn)搶答倒計時和回答問題倒計時。報警模塊:當遇到犯規(guī)報警。顯示模塊:有計數(shù)模塊,選擇模塊和
12、譯碼器模塊構(gòu)成,在視覺上實現(xiàn)三個數(shù)碼管同時顯示。</p><p> 3.方案的原理框圖及其說明</p><p><b> 詳細方框圖</b></p><p><b> 層次模塊圖</b></p><p> 以上為方案原理圖,當清零無效搶答使能有效時,計時模塊在時鐘脈沖的作用下開始倒計時,當有
13、人搶答另一個使能有效時,再進行新的倒計時,所有要顯示的數(shù)據(jù)通過計數(shù)模塊和選擇模塊模塊共同組成的掃描功能由譯碼模塊譯碼輸出。</p><p><b> 4.硬件選擇</b></p><p> 本次選用cyclone系列EP1C30QC208-2芯片。外部需接2個不同頻率的時鐘信號,及幾個上升沿按鍵,幾個LED燈顯示,并接揚聲器和譯碼器的數(shù)碼管。以上均由EDA試驗箱提
14、供。</p><p><b> 5.系統(tǒng)設(shè)計詳述</b></p><p> 1. 整個系統(tǒng)的頂層文件如下圖所示。其中輸入端口有: </p><p> Clk——用于jb模塊、jishi模塊和baojingqi模塊的時序脈沖;</p><p> Zxclk——用做jsq的時序脈沖;</p><
15、p> Clr——用于復(fù)位控制;</p><p> A、B、C、D——用于各選手輸入控制端;</p><p> EN1——用于搶答使能;</p><p> EN2——用于回答問題使能;</p><p> Selin——用于選擇數(shù)碼管輸入;</p><p><b> 輸出端口:</b>
16、;</p><p> Dout[6..0]——用于數(shù)碼管顯示輸出;</p><p> Light——用于提醒有人搶答;</p><p> Selout——用于選擇數(shù)碼管輸出;</p><p><b> 2.引腳鎖定見下圖</b></p><p> 3.各子模塊的源程序如下:</p&
17、gt;<p><b> Jb模塊的源程序:</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity jb
18、is</p><p> port(clr,clk,en:in std_logic;</p><p> a,b,c,d:in std_logic;</p><p> a1,b1,c1,d1 : out std_Logic;</p><p> states:out std_logic_vector(3 downto 0);</p&g
19、t;<p> warn:out std_logic);</p><p><b> end jb ;</b></p><p> architecture one of jb is</p><p> signal st:std_logic_vector(3 downto 0);</p><p>
20、 signal qq:bit; </p><p><b> begin</b></p><p> p1:process(a,clr,b,c,d,st,clk,qq)</p><p><b> begin</b></p><p> if clr='1' then </p
21、><p> warn<='0';st<="0000";states<="0000";qq<='0';</p><p> elsif en='1' then</p><p> if qq='0' then</p><p&
22、gt; if clk'event and clk='1' then</p><p> if (a='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' ) </p><p> then st(0)<=
23、9;1';states<="0001"; qq<='1';</p><p><b> end if ;</b></p><p> if (b='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or
24、st(3)='1' ) </p><p> then st(1)<='1';states<="0010";qq<='1';</p><p><b> end if ;</b></p><p> if (c='1' or st(2)=
25、9;1')and not( st(0)='1' or st(1)='1' or st(3)='1' ) </p><p> then st(2)<='1';states<="0011";qq<='1';</p><p><b> end if ;<
26、;/b></p><p> if (d='1' or st(3)='1')and not( st(0)='1' or st(1)='1' or st(2)='1' ) </p><p> then st(3)<='1';states<="0100";qq
27、<='1';</p><p><b> end if ;</b></p><p><b> end if ;</b></p><p><b> end if;</b></p><p><b> end if ;</b><
28、/p><p> warn<=st(0) or st(1) or st(2) or st(3);</p><p> a1<=a;b1<=b;c1<=c;d1<=d;</p><p> end process p1;</p><p><b> end one;</b></p>
29、<p> jishi模塊的源程序:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD LOGIC_UNSIGNED.ALL;</p><p> ENTITY JISHI IS</p><p
30、> PORT(WARN,CLR,EN1,EN2,CLK:IN STD_LOGIC;</p><p> QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> QB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END ENTITY JISHI;</p><
31、p> ARCHITECTURE ART OF JISHI IS</p><p> SIGNAL tmpa : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL tmpb : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> begin </b></
32、p><p> U1: process(CLK,CLR,EN1,EN2,TMPA,TMPB)</p><p><b> BEGIN </b></p><p> if clr='1' then tmpa<="1001"; tmpb<="0000";</p>&l
33、t;p> ELSif CLK'EVENT AND CLK='1' THEN</p><p> IF EN1='1' THEN</p><p> IF WARN='0' THEN </p><p> IF TMPA="0000" THEN TMPA<="000
34、0"; </p><p> ELSE TMPA<=TMPA-1;</p><p><b> END IF;</b></p><p><b> ELSE </b></p><p> IF EN2='0' THEN tmpa<="1001&qu
35、ot;; tmpb<="0010";</p><p><b> ELSE </b></p><p> IF TMPA="0000" THEN TMPA<="1001";</p><p> IF TMPB="0000" THEN TMPB&
36、lt;="0010";</p><p> ELSE TMPB<=TMPB-1;END IF;</p><p> ELSE TMPA<=TMPA-1;END IF;</p><p><b> END IF;</b></p><p><b> end if;</b&
37、gt;</p><p><b> END IF; </b></p><p><b> END IF;</b></p><p> QA<=TMPA;QB<=TMPB;</p><p> END PROCESS ;</p><p><b> END
38、 ART;</b></p><p> Baojingqi模塊源程序: </p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY BAOJINGQI IS</p><p> PORT (CLR:IN S
39、TD_LOGIC;</p><p> CLK :IN STD_LOGIC;</p><p> TMPA,TMPB :IN STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p> ALM:OUT STD_LOGIC );</p><p> END ENTITY;</p><p> ARC
40、HITECTURE ONE OF BAOJINGQI IS</p><p><b> BEGIN</b></p><p> PROCESS(TMPA,TMPB,CLK,CLR)</p><p><b> BEGIN</b></p><p> IF CLR='1'THEN<
41、;/p><p><b> ALM<='0';</b></p><p> ELSIF TMPA="0000" AND TMPB="0000" THEN</p><p><b> ALM<=CLK;</b></p><p> ELS
42、E ALM<='0';</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ONE ; </p><p> Jsq模塊的源程序:</p><p> LIBRARY ieee;</p>
43、<p> USE ieee.std_logic_1164.all;</p><p> LIBRARY lpm;</p><p> USE lpm.all;</p><p> ENTITY jsqqq IS</p><p><b> PORT</b></p><p><b
44、> (</b></p><p> clock: IN STD_LOGIC ;</p><p> q: OUT STD_LOGIC_VECTOR (1 DOWNTO 0)</p><p><b> );</b></p><p> END jsqqq;</p><p&g
45、t; ARCHITECTURE SYN OF jsqqq IS</p><p> SIGNAL sub_wire0: STD_LOGIC_VECTOR (1 DOWNTO 0);</p><p> COMPONENT lpm_counter</p><p><b> GENERIC (</b></p><p>
46、 lpm_direction: STRING;</p><p> lpm_modulus: NATURAL;</p><p> lpm_port_updown: STRING;</p><p> lpm_type: STRING;</p><p> lpm_width: NATURAL</p>&l
47、t;p><b> );</b></p><p><b> PORT (</b></p><p> clock: IN STD_LOGIC ;</p><p> q: OUT STD_LOGIC_VECTOR (1 DOWNTO 0)</p><p><b> );<
48、;/b></p><p> END COMPONENT</p><p><b> BEGIN</b></p><p> q <= sub_wire0(1 DOWNTO 0);</p><p> lpm_counter_component : lpm_counter</p><
49、p> GENERIC MAP (</p><p> lpm_direction => "UP",</p><p> lpm_modulus => 3,</p><p> lpm_port_updown => "PORT_UNUSED",</p><p> lpm_typ
50、e => "LPM_COUNTER",</p><p> lpm_width => 2</p><p><b> )</b></p><p> PORT MAP (</p><p> clock => clock,</p><p> q =>
51、sub_wire0</p><p><b> );</b></p><p><b> END SYN;</b></p><p> Xuanzhe模塊源程序:</p><p> library ieee;</p><p> use ieee.std_logic_116
52、4.all;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL; </p><p> entity xuanzhe is</p><p> port (input :in std_logic_vector(1 downto 0);</p><p> DA :in std_logic_vector(3 d
53、ownto 0);</p><p> DB :in std_logic_vector(3 downto 0);</p><p> states : in std_logic_vector(3 downto 0);</p><p> output :out std_logic_vector(3 downto 0)</p><p><
54、b> );</b></p><p><b> end;</b></p><p> architecture one of xuanzhe is</p><p><b> begin</b></p><p> process(input,DB,DA,states)</
55、p><p><b> begin</b></p><p> case input is</p><p> when "00" => output(3 downto 0)<=DA(3 downto 0);</p><p> when "01" => output
56、(3 downto 0)<=DB(3 downto 0);</p><p> when "10" => output(3 downto 0)<=states(3 downto 0);</p><p> when others=>null;</p><p><b> end case;</b>&l
57、t;/p><p> end process;</p><p> end architecture one;</p><p> yimaqi模塊源程序:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p>
58、 use ieee.std_logic_unsigned.all;</p><p> entity yimaqi is</p><p> port(ain4:in std_logic_vector(3 downto 0);</p><p> dout7:out std_logic_vector(6 downto 0);</p><p>
59、; selin : in std_logic_vector(1 downto 0);</p><p> selout : out std_logic_vector(1 downto 0));</p><p> end yimaqi;</p><p> architecture art of yimaqi is</p><p><
60、b> begin</b></p><p> process(ain4)</p><p><b> begin</b></p><p> case ain4 is</p><p> when "0000"=>dout7<="0111111";&
61、lt;/p><p> when "0001"=>dout7<="0000110";</p><p> when "0010"=>dout7<="1011011";</p><p> when "0011"=>dout7<=&quo
62、t;1001111";</p><p> when "0100"=>dout7<="1100110";</p><p> when "0101"=>dout7<="1101101";</p><p> when "0110"=&
63、gt;dout7<="1111101";</p><p> when "0111"=>dout7<="0000111";</p><p> when "1000"=>dout7<="1111111";</p><p> when &
64、quot;1001"=>dout7<="1101111";</p><p> when others=>dout7<="0000000";</p><p><b> end case;</b></p><p> end process;</p><
65、;p> selout(1 downto 0)<=selin(1 downto 0);</p><p><b> end art;</b></p><p> 4.各模塊及其端口,功能描述如下:</p><p><b> 5.系統(tǒng)仿真及分析</b></p><p> 1.各模塊仿真
66、及分析。</p><p><b> jb模塊</b></p><p> 從仿真圖形上來看,哪個選手先搶答就states就存儲該選手的序列號,警報提示warn為高電平,仿真波形結(jié)果與所要實現(xiàn)的功能一致。</p><p><b> jishi模塊</b></p><p> 從仿真圖形上來看,當清
67、零CLR為有效電平,EN1和EN2也為無效電平時輸出QA為9,QB為0;當清零CLR為無效電平, EN1為有效電平,EN2為無效電平時,QA開始從9倒計時,QB不變;當清零CLR為無效電平, EN1為有效電平,EN2也為有效電平時,QB和QA一起從29開始倒計時,仿真波形結(jié)果與所要實現(xiàn)的功能一致。</p><p> 3、 Baojingqi模塊</p><p> 從仿真圖形上來看,當清
68、零信號CLR清零之后ALM一直輸出低電平,當warn有效時即有人搶答時ALM輸出始終脈沖;當TMPB同時為0000時ALM也輸出時鐘脈沖,仿真波形結(jié)果與所要的到的功能一致。</p><p><b> 4、Jsq模塊</b></p><p> 從仿真圖形上來看,q在時鐘脈沖的作用下進行3進制加計數(shù),波形仿真結(jié)果與所要得到的功能一致。</p><p
69、> 5、xuanze模塊</p><p> 從仿真圖形上來看,當input為00是輸出DA的值,當input為01是輸出DB的值,當input為10是輸出states的值,波形仿真結(jié)果與所要得到的功能一致。</p><p> 6、yimaqi模塊</p><p> 從仿真圖形上來看,當輸出的字形符與輸入的數(shù)值一致,并且三個數(shù)碼管循環(huán)顯示,波形仿真結(jié)果與
70、所要得到的功能一致。</p><p><b> 7、keshe模塊</b></p><p> 上面是頂層文件的仿真波形,當清零后,輸出的字形符為9,當清零信號為無效且使能信號EN1為有效時,選手開始搶答,輸出開始從9倒計時,若有第一個選手為輸出light就為高電平,且輸出顯示第一個搶答的選手的序列號,sound有一個脈沖,若EN2為有效電平時,輸出開始從29 開始
71、倒計時,若到0沒有按復(fù)位即清零時sound有個脈沖。仿真波形結(jié)果分析與所要的功能一致。 </p><p><b> 7.下載測試及分析</b></p><p> 下載測試后的效果如下圖所示,當清零后,第一個使能信號有效時,開始搶答倒計時,若在該有效時間里3號選手搶答,數(shù)碼管輸出顯示3,對應(yīng)的LED燈亮,并提示有人搶答的LED燈也亮,再由主持人將第二個使能信
72、號置為有效,開始回答問題倒計時。</p><p> 8.收獲體會、存在問題和進一步的改進意見等。</p><p> 從這次EDA課程設(shè)計中,可以看我們的動手能力還有待提高和理論知識的實踐化不夠。遇到問題思考的方向單一,要通過多練習(xí)來讓自己遇到更多的問題從而對EDA更熟悉。在本次課設(shè)中我們從簡單的模塊功能不斷的改進,又不斷的遇到新的問題,通過將問題細化一一解決后得到總的結(jié)果。不僅讓我們對
73、EDA有了更深的認識還有對問題的分析能力的提高。在本設(shè)計中特別感謝李敏老師,她細心的講解以及耐心的幫助讓我們有了成功完成的動力。</p><p><b> [參考文獻]</b></p><p> [1] 潘松, 黃繼業(yè). EDA 技術(shù)實用教程——VHDL版第4版 北京: 科學(xué)出版社</p><p> [2] 孫俊毅,劉江海.EDA技術(shù)課程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計四人搶答器
- 課程設(shè)計---四人搶答器
- 四人搶答器課程設(shè)計
- 四人搶答器課程設(shè)計報告
- 課程設(shè)計報告---四人搶答器
- ewb課程設(shè)計四人搶答器
- 課程設(shè)計報告---四人表決器的設(shè)計
- 數(shù)電四人搶答器課程設(shè)計
- 數(shù)電課程設(shè)計——四人搶答器
- 數(shù)電四人搶答器課程設(shè)計
- 數(shù)電課程設(shè)計——四人搶答器
- 課程設(shè)計---四人智力競賽搶答器
- eda課程設(shè)計--eda課程設(shè)計實驗報告
- 數(shù)電課程設(shè)計報告--四人搶答器
- eda課程設(shè)計-- eda與數(shù)字系統(tǒng)課程設(shè)計
- 數(shù)電課程設(shè)計--- 四人競賽搶答器的設(shè)計
- eda課程設(shè)計
- eda課程設(shè)計
- 四人智力競賽搶答器課程設(shè)計報告
- eda課程設(shè)計
評論
0/150
提交評論