四路電子搶答器EDA課程設(shè)計(jì)報(bào)告_第1頁
四路電子搶答器EDA課程設(shè)計(jì)報(bào)告_第2頁
四路電子搶答器EDA課程設(shè)計(jì)報(bào)告_第3頁
四路電子搶答器EDA課程設(shè)計(jì)報(bào)告_第4頁
四路電子搶答器EDA課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 EDA技術(shù) 課程設(shè)計(jì)報(bào)告專 業(yè): 電子信息工程 班 級(jí): 101 姓 名: XXX 學(xué) 號(hào): 1007400XXX 指導(dǎo)教師: 秦劍 2013年 4 月 22 日一、設(shè)計(jì)題目 四路電子搶答器二、設(shè)計(jì)目的 1.掌握使用VHDL語言設(shè)計(jì)小型數(shù)字電路系統(tǒng); 2.掌握應(yīng)用QUARTUS軟件設(shè)計(jì)電路的流程; 3.掌握電子搶答器的設(shè)計(jì)方法。三、設(shè)計(jì)任務(wù)及要求(1)設(shè)計(jì)一個(gè)可以容納四組參賽隊(duì)進(jìn)行比賽的電子搶答器。(2)具有第一搶答信號(hào)的鑒別和鎖存功能。在主持人發(fā)出搶答指令后,若有參賽者按搶答器按鈕,則該組指示燈亮,顯示器顯示出搶答者的組別。同時(shí),電路處于自鎖存狀態(tài),使其他組的搶答器按鈕不起作用。(3)具有

2、計(jì)時(shí)功能。在初始狀態(tài)時(shí),主持人可以設(shè)置搶答時(shí)間的初始值。在主持人宣布搶答開始,并給出倒計(jì)時(shí)記數(shù)開始信號(hào)以后,搶答者可以開始搶答。此時(shí),顯示器從初始值開始倒計(jì)時(shí),計(jì)到0時(shí)停止計(jì)數(shù),同時(shí)LED亮起超時(shí)警報(bào)信號(hào),并反饋到鎖存模塊進(jìn)行鎖存,使得參賽者不能進(jìn)行搶答。若參賽者在規(guī)定的時(shí)間內(nèi)搶答,則計(jì)數(shù)模塊自動(dòng)終止計(jì)數(shù)。(4)具有計(jì)分功能。在初始狀態(tài)時(shí),主持人可以給每組設(shè)置初始分值。每組搶答完畢后,由主持人進(jìn)行打分,答對(duì)一次加1分。四、設(shè)計(jì)思路:系統(tǒng)的輸入信號(hào)有:各組的搶答按鈕A、B、C、D,系統(tǒng)允許搶答信號(hào)STA,系統(tǒng)清零信號(hào)CLR,系統(tǒng)時(shí)鐘信號(hào)CLK,計(jì)分復(fù)位端CLR,加分按鈕端ADD;系統(tǒng)的輸出信號(hào)有

3、:四個(gè)組搶答成功與否的指示燈控制信號(hào)輸出口可用如LED_A、LED_B、LED_C、LED_D表示,四個(gè)組搶答時(shí)的計(jì)時(shí)數(shù)碼顯示控制信號(hào),搶答成功組別顯示的控制信號(hào),各組計(jì)分動(dòng)態(tài)顯示的控制信號(hào)。整個(gè)系統(tǒng)至少有四個(gè)主要模塊:搶答鑒別模塊;搶答計(jì)時(shí)模塊;搶答計(jì)分模塊;分頻模塊。搶答鑒別及鎖存分頻計(jì)數(shù)計(jì)分器數(shù)碼管顯示數(shù)碼管顯示 系統(tǒng)組成框圖五、各模塊設(shè)計(jì) (一)搶答鑒別和鎖存模塊搶答隊(duì)伍共分為四組A,B,C,D。當(dāng)主持人按下STA鍵同時(shí)R輸入低電平時(shí),對(duì)應(yīng)的START指示燈亮,同時(shí)EN端輸出高電平,這時(shí)四組隊(duì)伍才可以進(jìn)行搶答,即搶答信號(hào)A,B,C,D輸入電路中后,通過判斷是哪個(gè)信號(hào)最先為1得出搶答成功

4、的組別1,2,3或4組,然后將組別號(hào)輸出到相應(yīng)端A1,B1,C1,D1,此時(shí)START指示燈滅掉同時(shí)EN端輸出低電平,并將組別序號(hào)換算為四位二進(jìn)制信號(hào)輸出到STATES3.0端鎖存,等待輸出到計(jì)分和顯示單元。一旦R輸入高電平,則把“0000”輸出到STATES3.0端鎖存,同時(shí)四組隊(duì)伍無法進(jìn)行搶答。其模塊如下: 搶答鑒別及鎖存模塊1.搶答鑒別及鎖存源程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb_sc is port(STA,RST:in std_logic; A,

5、B,C,D,R:in std_logic; A1,B1,C1,D1,START:out std_logic; EN : out std_logic; STATES:out std_logic_vector(3 downto 0);end qdjb_sc;architecture one of qdjb_sc issignal abc:std_logic_vector(4 downto 0); signal tmp:std_logic;beginabc<=R&A&B&C&D;process(abc,RST,tmp) begin IF RST='1&#

6、39; then tmp<='0' A1<='0' B1<='0' C1<='0' D1<='0'START<='0'EN<='0'STATES<="0000" end if; if STA='1' then tmp<='1' EN<='1' START<='1' end if; if tmp='1' then CASE

7、 abc IS when "01000" => A1<='1' B1<='0' C1<='0' D1<='0' STATES<="0001" tmp<='0' EN<='0'START<='0' when "00100" => A1<='0' B1<='1' C1<='0' D1<='0

8、' STATES<="0010" tmp<='0' EN<='0'START<='0' when "00010" => A1<='0' B1<='0' C1<='1' D1<='0' STATES<="0011" tmp<='0' EN<='0'START<='0' when "00

9、001" => A1<='0' B1<='0' C1<='0' D1<='1' STATES<="0100" tmp<='0' EN<='0'START<='0' when "10000" => A1<='0' B1<='0' C1<='0' D1<='0' STATES<=&quo

10、t;0000" tmp<='0' EN<='0'START<='0' when others => A1<='0' B1<='0' C1<='0' D1<='0' STATES<="0000" tmp<='1' END CASE; END IF;end process;end one;2波形仿真:仿真圖說明:第一階段,在RST、STA輸入高電平后,START、EN輸出高電平,系統(tǒng)

11、可以進(jìn)行搶答。然后B最先搶答,所以B1輸出高電平,同時(shí)START、EN改為輸出低電平,STATES3.0被鎖存為“0010”。第二階段,當(dāng)RST輸入高電平,所有輸出端復(fù)位,然后C進(jìn)行了搶答,但輸出端沒有作出響應(yīng)。當(dāng)STA輸入高電平,START、EN輸出高電平,系統(tǒng)可以搶答,之后R輸入高電平,此時(shí)START、EN改為輸出低電平,系統(tǒng)被鎖,無法再進(jìn)行搶答,所有輸出端輸出低電平,STATES3.0被鎖存為“0000”。第三階段,當(dāng)RST輸入高電平,所有輸出端復(fù)位,當(dāng)STA輸入高電平,START、EN輸出高電平,A最先搶答,A1輸出高電平,同時(shí)START、EN改為輸出低電平,STATES3.0被鎖存為

12、“0001”。(二)計(jì)分模塊在計(jì)分器電路的設(shè)計(jì)中,按照一般的設(shè)計(jì)原則,按一定數(shù)進(jìn)制進(jìn)行加減即可,但是隨著計(jì)數(shù)數(shù)目的增加,但由于實(shí)驗(yàn)板上數(shù)碼管數(shù)目的限制在,每組都猜用十進(jìn)制數(shù)計(jì)分,這種電路連線簡(jiǎn)單方便。clr為復(fù)位端,將計(jì)分起始分?jǐn)?shù)設(shè)為0。CHOS3.0端功能是鎖存已搶答成功的組別序號(hào),當(dāng)接加分按鈕ADD后,將給CHOS3.0所存的組別加分。每按一次加1分,每組的分?jǐn)?shù)將在對(duì)應(yīng)的數(shù)碼管上顯示。其模塊如下: 計(jì)分模塊1.計(jì)分模塊源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jf

13、is port(clr: in std_logic; add: in std_logic; chose: in std_logic_vector(3 downto 0); aa,bb: out std_logic_vector(3 downto 0); cc,dd: out std_logic_vector(3 downto 0);end jf;architecture two of jf isbegin p1: process(add,chose) is variable a2:std_logic_vector(3 downto 0); variable b2:std_logic_vecto

14、r(3 downto 0); variable c2:std_logic_vector(3 downto 0); variable d2:std_logic_vector(3 downto 0); begin if(clr='1')then a2:="0000" b2:="0000" c2:="0000" d2:="0000" elsif(add'event and add='1')then if chose="0001"then if a2="

15、1001"then a2:="0000" else a2:=a2+'1' end if; elsif chose="0010" then if b2="1001" then b2:="0000" else b2:=b2+'1' end if; elsif chose="0011"then if c2="1001"then c2:="0000" else c2:=c2+'1' end if; elsi

16、f chose="0100"then if d2="1001"then d2:="0000" else d2:=d2+'1' end if; end if; end if; aa<=a2; bb<=b2; cc<=c2; dd<=d2; end process;end two;2.波形仿真:仿真圖說明:第一階段,clr輸入高電平,aa,bb,cc,dd均被賦為“0000”。當(dāng)chose輸入為“0001”,add輸入高電平時(shí),aa+1,改為“0001”;當(dāng)chose輸入為“0010”,add輸入高

17、電平時(shí),bb+1,改為“0001”;當(dāng)chose再次輸入“0001”,add輸入高電平時(shí),aa+1,改為“0010”。第二階段,clr輸入高電平,aa,bb,cc,dd均被復(fù)位,賦為“0000”。當(dāng)chose輸入為“0011”,add輸入高電平時(shí),cc+1,改為“0001”;當(dāng)chose輸入為“0100”,add輸入高電平時(shí),dd+1,改為“0001”;當(dāng)chose再次輸入“0100”,add輸入高電平時(shí),dd+1,改為“0010”。(三)計(jì)時(shí)模塊本系統(tǒng)中的計(jì)時(shí)器電路既有計(jì)時(shí)初始值的預(yù)置功能,又有減計(jì)數(shù)功能,功能比較齊全。其中將初始值設(shè)置為5秒,clk為時(shí)鐘信號(hào),en端為高電平后開始計(jì)時(shí),rs

18、t為復(fù)位端,操作簡(jiǎn)潔。其模塊如下: 計(jì)時(shí)模塊1.計(jì)時(shí)模塊源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt isport(clk,en,rst:in std_logic; ring:out std_logic; data:out std_logic_vector(3 downto 0);end cnt;architecture bhv of cnt is signal a:std_logic_vector(3 downto 0);beginprocess(clk)begi

19、n if rst='1' then a<="0101"ring<='0' elsif clk'event and clk='1' then if en='1' then a<="0101" a<=a-1; if a="0000" then a<="0000"ring<='1' end if; end if; end if;end process; data<=a;end bhv;2.波形

20、仿真:仿真圖說明:第一階段,rst輸入高電平,data輸出“0101”,ring輸出低電平。當(dāng)en持續(xù)輸入高電平時(shí),每遇到clk的上升沿,data-1。當(dāng)data為“0000”時(shí),en仍然輸入高電平,則ring輸出高電平。第二階段,rst輸入高電平,data輸出“0101”,ring復(fù)位輸出低電平。當(dāng)en持續(xù)輸入高電平時(shí),每遇到clk的上升沿,data-1。當(dāng)data為“0011”時(shí),en中斷輸入高電平,則ring仍然輸出高電平。(四)分頻模塊 該模塊主要是將頻率為20MHz的時(shí)鐘信號(hào)分頻成1Hz。其模塊如下: 分頻模塊1.分頻模塊源程序:library ieee;use ieee.std_l

21、ogic_1164.all;use ieee.std_logic_unsigned.all;entity clk_1s isport(clk:in std_logic;-50M in clk_fp:out std_logic);end clk_1s;architecture bhv of clk_1s is signal cnt:std_logic_vector(27 downto 0);beginprocess(clk)begin if clk'event and clk='1' then cnt<=cnt+1;clk_fp<='0' if

22、 cnt=x"1312d00" then cnt<=x"0000000" clk_fp<='1' else clk_fp<='0' end if; end if;end process;end bhv;2.波形仿真:仿真圖說明:由于在時(shí)鐘信號(hào)為20MHz的情況下,遇到20M次上升沿,clk_fp端口才輸出一次矩形波。因此仿真器難以進(jìn)行仿真,就此沒有仿真出真實(shí)結(jié)果。(五)搶答器的頂層原理圖設(shè)計(jì)1.頂層原理圖: 2.搶答器整體系統(tǒng)仿真:仿真圖說明: 由于如果仿真時(shí)長超過1S進(jìn)行仿真的話,QUARTUS軟件難以

23、進(jìn)行仿真,因此把仿真時(shí)間按比例縮小1/1000000,即計(jì)時(shí)從1uS開始倒計(jì)時(shí)。 上兩幅圖為整體系統(tǒng)仿真圖,由于受電腦屏幕的限制,使得分開兩部分截取。 clkin始終輸入20MHz的時(shí)鐘信號(hào)。 第一階段,當(dāng)clrin輸入高電平時(shí),aaout、bbout、ccout、ddout均被賦值為“0000”,當(dāng)rstin輸入高電平, STAout被復(fù)位為“0000” ,dataout被復(fù)位為“0101”。當(dāng)stain輸入高電平時(shí),START輸出高電平,對(duì)應(yīng)LED燈亮,系統(tǒng)開始搶答,同計(jì)時(shí)器從“0101”開始倒計(jì)時(shí),每隔1uS減一,dataout每隔1uS更改為計(jì)時(shí)器對(duì)應(yīng)數(shù)字(但由于從開始搶答到搶答成功時(shí)

24、間過短,倒計(jì)時(shí)功能并沒有體現(xiàn)出來)。cin最先輸入高電平,所以C組先搶答。同時(shí)START改為輸出低電平,對(duì)應(yīng)LED燈熄滅,STAout被鎖存為“0011” ,計(jì)時(shí)器停止計(jì)時(shí)。然后addin輸入高電平,C組得一分,所以ccout進(jìn)行+1處理,被鎖存為“0001”,C組成績(jī)?yōu)?分。 第二階段,當(dāng)rstin輸入高電平,STAout被復(fù)位為“0000” ,dataout被復(fù)位為“0101”。當(dāng)stain輸入高電平,START輸出高電平,對(duì)應(yīng)LED燈亮,系統(tǒng)開始搶答,同計(jì)時(shí)器從“0101”開始倒計(jì)時(shí),每隔1uS減一,dataout每隔1uS更改為計(jì)時(shí)器對(duì)應(yīng)數(shù)字(但由于從開始搶答到搶答成功時(shí)間過短,倒計(jì)時(shí)

25、功能并沒有體現(xiàn)出來)。bin最先輸入高電平,所以B組先搶答。同時(shí)START改為輸出低電平,對(duì)應(yīng)LED燈熄滅,STAout被鎖存為“0010” ,計(jì)時(shí)器停止計(jì)時(shí)。然后addin輸入高電平,B組得一分,所以bbout進(jìn)行+1處理,被鎖存為“0001”,B組成績(jī)?yōu)?分。 第三階段,當(dāng)rstin輸入高電平,STAout被復(fù)位為“0000” ,dataout被復(fù)位為“0101”。當(dāng)stain輸入高電平,START輸出高電平,對(duì)應(yīng)LED燈亮,系統(tǒng)開始搶答,同計(jì)時(shí)器從“0101”開始倒計(jì)時(shí),每隔1uS減一,dataout每隔1uS更改為計(jì)時(shí)器對(duì)應(yīng)數(shù)字(但由于從開始搶答到搶答成功時(shí)間過短,倒計(jì)時(shí)功能并沒有體現(xiàn)

26、出來)。cin最先輸入高電平,所以C組先搶答。同時(shí)START改為輸出低電平,對(duì)應(yīng)LED燈熄滅,STAout被鎖存為“0011” ,計(jì)時(shí)器停止計(jì)時(shí)。然后addin輸入高電平,C組得一分,所以ccout進(jìn)行+1處理,被鎖存為“0010”,C組成績(jī)?yōu)?分。 第四階段,當(dāng)rstin輸入高電平,STAout被復(fù)位為“0000”,dataout被復(fù)位為“0101”。當(dāng)stain輸入高電平,START輸出高電平,對(duì)應(yīng)LED燈亮,系統(tǒng)開始搶答,同計(jì)時(shí)器從“0101”開始倒計(jì)時(shí),每隔1uS減一,dataout每隔1uS更改為計(jì)時(shí)器對(duì)應(yīng)數(shù)字。當(dāng)5uS過后,計(jì)時(shí)器減為“0000”,同時(shí)dataout更改為“0000

27、”,ringout輸出高電平,對(duì)應(yīng)LED亮起作為搶答超時(shí)警報(bào)。此時(shí)搶答器被鎖,無法進(jìn)行搶答。 第五階段,當(dāng)rstin輸入高電平,STAout被復(fù)位為“0000”,dataout被復(fù)位為“0101”。當(dāng)clrin輸入高電平時(shí),aaout、bbout、ccout、ddout均被賦值為“0000”。六、設(shè)計(jì)總結(jié)通過對(duì)Quartus軟件仿真,證明了本產(chǎn)品在實(shí)際運(yùn)用中的正確性,完全可以實(shí)現(xiàn)預(yù)期任務(wù)的要求,在有一組信號(hào)搶答成功后數(shù)碼管顯示相應(yīng)的組別。且計(jì)分器在實(shí)現(xiàn)計(jì)分功能時(shí)能夠準(zhǔn)確記錄每組的成績(jī)并將分?jǐn)?shù)通過對(duì)應(yīng)的數(shù)碼管呈一位數(shù)顯示,計(jì)時(shí)器在按下?lián)尨痖_始按鈕后同時(shí)從5秒倒計(jì)時(shí)并通過譯碼器實(shí)時(shí)顯示計(jì)時(shí)結(jié)果。如果在5秒時(shí)間內(nèi)無人搶答,系統(tǒng)將發(fā)出警報(bào),由小燈顯示。但是該設(shè)計(jì)仍有需要改進(jìn)的地方:1.在搶答鑒別模塊中,只有當(dāng)主持人按下?lián)尨鹦盘?hào)時(shí),各小組才能開始搶答,并顯示組號(hào)及對(duì)應(yīng)的小燈。而當(dāng)主持人沒有按下?lián)尨鹦盘?hào)時(shí),各組進(jìn)行搶答,但系統(tǒng)沒有顯示偷步搶答的組別,因此需要完善。2在計(jì)分模塊中,只有當(dāng)每組搶答正確時(shí)加一分,而搶答錯(cuò)誤時(shí),沒進(jìn)行設(shè)計(jì)減分功能,這是我在這次設(shè)計(jì)中最大的不足,因此需要改進(jìn)。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論