課程設(shè)計(jì)報(bào)告-搶答器設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)報(bào)告-搶答器設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)報(bào)告-搶答器設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)報(bào)告-搶答器設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)報(bào)告-搶答器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(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、eda課程設(shè)計(jì)報(bào)告搶答器設(shè)計(jì)專 業(yè):電子信息科學(xué)與技術(shù)班 級(jí):1101班姓 名:崔新寬,張華康指導(dǎo)教師:田老師2013年6月24號(hào)2013年6月28號(hào)一設(shè)計(jì)任務(wù)掌握quartus ii軟件的使用方法;(1) 會(huì)使用vhdl語(yǔ)言設(shè)計(jì)小型數(shù)字電路系統(tǒng);(2) 掌握應(yīng)用quartus ii軟件設(shè)計(jì)電路的流程;(3) 掌握搶答器的設(shè)計(jì)方法。二設(shè)計(jì)要求(1) 設(shè)計(jì)一個(gè)可以容納兩組參賽隊(duì)進(jìn)行比賽的搶答器。(2) 具有第一搶答信號(hào)的鑒別和鎖存功能。在主持人發(fā)出搶答指令后,若有 參賽者按搶答器按鈕,則該組指示燈亮,顯示器顯示出搶答者的組別。同時(shí),電 路處于自鎖存狀態(tài),使其他組的搶答器按鈕不起作用。(3) 具有

2、計(jì)時(shí)功能。在初始狀態(tài)時(shí),主持人可以設(shè)置答題時(shí)間的初始值。在 主持人對(duì)搶答組別進(jìn)行確認(rèn),并給出倒計(jì)時(shí)記數(shù)開(kāi)始信號(hào)以后,搶答者開(kāi)始回答 問(wèn)題。此時(shí),顯示器從初始值開(kāi)始倒計(jì)時(shí),計(jì)到0時(shí)停止計(jì)數(shù),同時(shí)揚(yáng)聲器發(fā)出 超時(shí)警報(bào)信號(hào)。若參賽者在規(guī)定的時(shí)間內(nèi)回答完問(wèn)題,主持人可以給出計(jì)時(shí)停止 信號(hào),以免揚(yáng)聲器鳴叫。(4)具有計(jì)分功能。在初始狀態(tài)時(shí),主持人可以給每組設(shè)置初始分值。每組 搶答完畢后,由主持人打分,答對(duì)一次加10分,答錯(cuò)一次減1分。設(shè)計(jì)方案系統(tǒng)的輸入信號(hào)有:各組的搶答按鈕a、b,系統(tǒng)允許搶答信號(hào)sta,系統(tǒng) 清零信號(hào)clr,系統(tǒng)時(shí)鐘信號(hào)clk,計(jì)分復(fù)位端clr,加分按鈕端add,計(jì)時(shí) 使能端en;系統(tǒng)

3、的輸岀信號(hào)有:兩個(gè)組搶答成功與否的指示燈控制信號(hào)輸岀口 可用如led_a、led_b、表示,兩個(gè)組搶答時(shí)的計(jì)時(shí)數(shù)碼顯示控制信號(hào)若干, 搶答成功組別顯示的控制信號(hào)若干,各組計(jì)分動(dòng)態(tài)顯示的控制信號(hào)若干。整個(gè)系 統(tǒng)至少有三個(gè)主要模塊:搶答鑒別模塊;搶答計(jì)時(shí)模塊;搶答計(jì)分模塊,其他功 能模塊(分頻模塊,輸出顯示模塊)。三、各模塊設(shè)計(jì)(1)分頻模塊該模塊主要是將頻率為40mhz的時(shí)鐘信號(hào)分頻成loohzjhzo其模塊如下:fen piniclk4omclklkhz clklhz clklodhzclk2khzinstlo源程序如下:library ieee;use ieee.stdogic_l 164.

4、all;use ieee.std_logic_unsigned.all; use ieee<std_logic_arith.all; entity fenpin isport(clk40m:in stdjogic;clklkhz,elk 1 hz,clk 100hz,clk2khz:out std_logic); end fenpin;architecture one of fenpin issignal clklk,clkl:std_logic;begin process(clk40m) variable q:integer range 0 to 1999:=0;beginif ris

5、ing_edge(clk40m) thenif q= 19999 thenclklk<=not clklk;q:二 0;else q:=q+l;end if;end if;end process; process(clklk)variable q 1:integer range 0 to 499:=0;beginif rising_edge(clk 1 k)then訐 q 1 =499 then clkl<=not clkl;ql:=0;elseql:=ql+l;end if;end if;end process;clklkhz<=clklk; clklhz<=clkl

6、;end one;architecture two of fenpin is signal clk2k>clk 100:std_logic;begin process(clk40m) isvariable q:integer range 0 to 9999;begin訐 rising_edge(clk40m)the nif q=9999 thenclk2k<=not clk2k;q:=0;elseq:二 q+l;end if;end if;end process;process(clk2k) isvariable q 1:integer range 0 to 9;beginif r

7、ising_edge(clk2k)thenifql=9 thenelk 100<=not elk 100;ql:=0;elseql:=ql + l;end if;end if;end process;clk2khz<=clk2k;clkl00hz<=clkl00;end two;(2) 搶答鑒別模塊:搶答隊(duì)伍共分為兩組a,b。當(dāng)主持人按下sta鍵后,對(duì)應(yīng)的start指示燈 亮,兩組隊(duì)伍才可以按搶答鍵搶答,即搶答信號(hào)a,b輸入電路中后,通過(guò)判斷是 哪個(gè)信號(hào)最先為t得出搶答成功的組別1, 2組,將組別號(hào)輸出到相應(yīng)端a1,b1 并將組別序號(hào)換算為四位二進(jìn)制信號(hào)輸出到states3.

8、 0端鎖存,等待輸出到 計(jì)分和顯示單元。其模塊如下:xuanzeelkplaynum3.o-4 clrstartplayer! play 曰 2j instl搶答鑒別源程序:library ieee;use ieee.skl_logic_1164.all;use ieee.std_logic_unsigned.all;entity xuanze isport(clk,clr,start,playerl,player2:in std_logic; playnum:out std_logic_vector(3 downto 0); end xuanze;architecture one of xu

9、anze issignal lock:std_logic:=,0,;beginprocess(clr,elk,start,player l,player2) beginif clr=,l' thenplaynumv 二“0000"elsif rising_edge(clk) thenif start='rthenif playerl='l'and lock='0' then playnum<=,000r,;lockv 二 t;elsif player2=' 1 'and lock二'o' thenp

10、laynum<='0010'lockv 二 t;end if;else lockv二'o'end if;end if;end process;end one;(3)計(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ù)位端,當(dāng)接加分按鈕add后,組別加分。每組的分?jǐn)?shù)將在對(duì)應(yīng)的數(shù)碼 管上顯示,模塊如下:clrplayer1fen6.o-4elkplayer2fen6.drstartjssgekeyval3.0pl3ynu

11、m3.oinst計(jì)分模塊源程序:library ieee;use ieee.std_logic_h64.ah;use ieee.std_logic_unsigned.all;entity jifen isport(clr,clk,start,judge:in stdjogic;keyval:in integer range 0 to 15; playnumiin std_logic_vector(3 downto 0); player 1 fen,player2fen:buffer integer range 0 to 99 ); end jifen; architecture one of

12、jifen is signal adden:stdogic:-0 begin process(clr,elk,start judge,keyvahplaynum) beginifclr='rthenplayer 1 fen<=0;player2fen<=0;elsif rising_edge(clk) thenif start='o' thenif judge-o' thenif playnum="0001" and adden='l' then player 1 fen<=player 1 fen+keyv

13、al; adden<=t0,;elsif playnum=u0010" and adden=' 1 'then play er2fen<=player2fen+key val; adden<=,0,;end if;if judge-1* thenif playnum="0001" and adden='l' then player 1 fen<=playerl fen-key val; adden<=,0,;elsif playnum二"0010" and adden-1't

14、hen play er2fen<=player2fen-key val; adden<=,0,;end if;end if;end if;else adden<-i1;end if;end if;end process;end one;(4) 鍵盤(pán)和去抖模塊其模塊如下:1 keyooe 2clklotlei3.ohar>g3.oqout3.04i inst4:cnteoclkjnclk6clr列i3.0 sw3.o i inst2 鍵盤(pán)和去抖模塊源程序:library ieee ;use ieee.std_logic_1164.all;entity keycode is

15、port (clkl00:in std_logic;lie:in std_logic_vector(3 downto 0); hang:buffer std_logic_vector(3 downto 0); qout:out std_logic_vector(3 downto 0);end;architecture one of keycode isbegin process(clkloo)variable s:integer range 0 to 3;beginif rising_edge(clk 1 oo)thens:二s+1;case s iswhen 0 =>hang<=

16、"011 ln;when 1 =>hang<="1011"when2=>hang<=u1101n;when 3 =>hang<二"1110"end case;case hang & lie iswhen ,011101ir, => qout<=noooon;when "01111011” 二qoutv二“0001”;when n01111101h => qout<=noo 10”;when "01111110” => qout<=,0011n;w

17、hen "loholir1 => qout<=no 100"when “10111011“=qout<=no 101”;when ”10111101” => qout<=,0110m;when t0111110” => qout<=n011 lu;when t 1010111 “ => qout<=n 1000h;when ”11011011“=qout<=u 1001”;when ”11011101“=qout<=u 1010"when n11011110h => qoutv二“ 1011

18、“;when t1100111” => qout<=hl 100u;when h1110101 ln =>qout<=u 1101h;when “11101101“ => qoutv二“1110“;when t1101110” => qout<=hl 11 ln;when others => null;end case;end if;end process;end one;library ieee ;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity debance

19、 isport ( clk2k : in std_logic;keyvaluein : in std_logic_vector (3 downto 0); keyvalueout: out std_logic_vector (3 downto 0); led:out std_logic_vector (3 downto 0);end debance;architecture behavioral of debance issignal tempnum:std_logic_vector(3 downto 0);signal counter:std_logic_vector(3 downto 0)

20、;signal start: std_logic:=*0*;beginprocess(clk2k)beginif rising_edge(clk2k) then led<=keyvaluein;訐 sta匸'o' thentempnum<=,llir,; keyvalueout<=h 1111”;start<-1'elseif keyvaluein/=tempnum then tempnum<=keyvaluein;countcr<=”()0()0”;elseif counter>=m01h" thenkeyvalue

21、out<=keyvaluei n; counter<=n0000n;elsecounter<=counter+l;end if;end if;end if;end if;end process;end behavioral;(5) 譯碼顯示模塊木譯碼器用于將搶答鑒別模塊搶答成功的組別和計(jì)時(shí)器的時(shí)間進(jìn)行顯示,模塊如 下:deconeclklqmhz atog6.0l ag3.osel5035(3.0t>g3.obs3.0閃3.0c53.oinst12譯碼顯示源程序:library ieee;use ieee.skl_logic_1164.all;use ieee.std_

22、logic_unsigned.all;entity decode isport(clklooohz: in std_logic;ag,as,bg,bs,cg,cs: in std_logic_vector(3 downto 0); atog: out std_logic_vector(6 downto 0);sei: out std_logic_vector(5 downto 0);end decode;architecture one of decode issignal q: std_logic_vector(3 downto 0);signal count: integer range

23、0 to 5:=0;beginprocess(clklooohz)beginif rising_edge(clk 1 ooohz) thencoiint<=count+1;end if;end process;process(count,ag,as,bg,bs,cg,cs)beginif count=0 then q<=ag;sel<="000001 ”;els訐 count=l then q<=as;sel<="000010u;elsif count=2 then q<=bg;sel<=,000100" elsif co

24、unt=3 then q<=bs;sel<=u001000h; elsif count=4 then q<=cg;sel<="010000" elsif count=5 then q<=cs;sel<=" 100000°end if;end process;process(q)begincase q is 段碼選擇輸出when n0000n=>atog<=',01111ir,;0when ”0001atog<="0000110u;when ”0010“二atog<=h10110

25、irr;-2when ”0011 ”=>atog<=n 1001111”;-3when h0100u=>atog<=ml 100110h;-4when h0101n=>atogv二t101101"when ”0110”=>atog<=ul 111101°-6when ”0111 ”二 atog<=u0l00111m;-7when h1000h=>atog<=ml 11111 ln;-8when h1001n=>atog<=ml 101111m;-9when others=>atog<=&qu

26、ot;1110001 ”;-0end case;end process;end one;搶答器的頂層原理圖設(shè)計(jì):0*c-eo*mis0!x 0|0)c*0林5wcklchx*5碘58“45“ 5邸.5*5mew門cq0700*wic-eo*mis*43 00| e 50<g血* e5t9ckloochx0)叫5*5k«yvm<(3 03 .0c*»yw<3 cxefc 皿wc*w«alamwarn1皿呦2五 eda課程設(shè)計(jì)總結(jié):通過(guò)對(duì)quartus軟件仿真,證明了本產(chǎn)品在實(shí)際運(yùn)用中的正確性,完全可以 實(shí)現(xiàn)預(yù)期任務(wù)的要求,在有一組信號(hào)搶答成功后數(shù)碼管顯示相應(yīng)的組別,在兩組 或兩組以上信號(hào)同時(shí)搶答時(shí)視搶答無(wú)效。且計(jì)分器在實(shí)現(xiàn)計(jì)分功能時(shí)能夠準(zhǔn)確記 錄每組的成績(jī)并將分?jǐn)?shù)通過(guò)對(duì)應(yīng)的數(shù)碼管呈一位數(shù)顯示,計(jì)時(shí)器在按下計(jì)時(shí)開(kāi)始 按鈕后可以通過(guò)譯碼器實(shí)時(shí)顯示計(jì)時(shí)結(jié)

溫馨提示

  • 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)論