基于OuartusⅡ和GW48EDA開發(fā)工具的電子搶答器設計
0 引言
數字搶答器控制系統(tǒng)在現今許多工廠、學校和電視臺等單位所舉辦的各種知識競賽中起著不可替代的作用?;?strong>EDA技術設計的電子搶答
器,以其價格便宜、安全可靠、使用方便而受到了人們的普遍歡迎。本文以現場可編程邏輯器件(FPGA)為設計載體,以硬件描述語言VHDL為主要表達方式,以OuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設計工具設計的電子搶答器,具有搶答鑒別與鎖存功能以及60秒答題限時功能、對搶答犯規(guī)的小組進行警告和對各搶答小組進行相應的成績加減操作等功能。
1 電子搶答器的功能
該電子搶答器實現的功能主要包括四項操作:
(1)第一搶答信號的鑒別和鎖存
該電子搶答器共設4個組別,每組控制一個搶答開關,分別為a,b,c,d。在主持人發(fā)出搶答指令后,若有參賽者按搶答器按鈕,則該組指示燈亮,同時顯示器顯示出搶答者的組別。同時,電路處于自鎖狀態(tài),以使其他組的搶答器按鈕不起作用。
(2)計時功能
在初始狀態(tài)時。主持人可以設置答題時間的初時值。在主持人對搶答組別進行確認,并給出倒計時計數開始信號以后,搶答者便可開始回答問題。此時,顯示器從初始值開始倒計時,計至0時停止計數,同時揚聲器發(fā)出超時報警信號。若參賽者在規(guī)定的時間內回答完問題,主持人即可給出計時停止信號,以免揚聲器鳴叫。
(3)計分功能
在初始狀態(tài)時,主持人可以給每組設置初始分值。每組搶答完后,由主持人打分,答對一次加1分,答錯一次減1分。
(4)犯規(guī)設置
對提前搶答者和超時搶答者給予蜂鳴警示,并顯示犯規(guī)組別。
2 電子搶答器的結構原理
2.1 電子搶答器的整體結構
電子搶答器的整體結構如圖1所示。它包括鑒別與鎖存模塊、定時與犯規(guī)設置模塊以及計分模塊。
2.2 鑒別與鎖存模塊設計
鑒別與鎖存模塊的主要功能是用于判斷a、b、c、d四個組別搶答的先后,記錄最先搶答的組別號碼,并且不再接受其它輸入信號,而對最先搶答的組別鎖存,同時顯示最先搶答的組別。
根據以上功能要求,該模塊的源程序必須包含四個搶答輸入信號?,F將其信號分別設為a、b、c、d;搶答時必須要有一個允許開始搶答信號,將其信號設為 sta,該信號輸入后,其輸出指示燈亮,以便選手知道允許搶答信號已發(fā)出,故可設置一個sta的輸出指示燈信號為star-t;為了鑒別最先搶答者,可分別設置a、b、c、d組的輸出指示燈為led_a、led_b、led_c、led_d,同時設置顯示最先搶答組別號碼的輸出信號為 states[3..0];為了使系統(tǒng)進入重新搶答狀態(tài),還需要設置一個系統(tǒng)復位信號,可將其設為rst。其鑒別與鎖存模塊的仿真波形如圖2所示。
通過圖2可以看出,當rst=1時,系統(tǒng)處于初始狀態(tài),此時所有輸入均無效;當rst=O且sta=O時,搶答無效;而當rst=O且sta=1 時,start指示燈亮,d組為最先有效搶答組別,led_d指示燈亮,并顯示搶答成功組別d組為“0100”。通過圖2的仿真圖及分析說明,可見其鑒別與鎖存模塊的功能設計正確。
2.3 電子搶答器定時與犯規(guī)模塊設計
定時與犯規(guī)模塊的主要功能是用來對答題限時。當倒計時時間計為0時,系統(tǒng)將輸出報警信號,以對提前搶答者給予蜂鳴警示并顯示犯規(guī)組別號碼。
根據以上功能設計要求,該模塊需要設置一個倒計數器來限制答題時間,可將其信號設為TIme[7..0]。為了使倒計時器能夠開始或停止工作,應設置一個計時使能輸入信號en;為了確定是否有選手提前搶答或超時答題,可將允許搶答信號sta和四個搶答輸入(a、b、c、d)、顯示搶答成功組別 states[3..0]、系統(tǒng)時鐘信號clk_1hz等作為輸入信號,而將犯規(guī)報警器信號alarm和犯規(guī)組別顯示offender作為輸出信號。為了使蜂鳴器停止報警或使系統(tǒng)重新進入有效搶答狀態(tài),應設置系統(tǒng)復位輸入信號rst。定時與犯規(guī)模塊的仿真波形如圖3所示,其中圖3(a)為搶答犯規(guī)及暫停計時控制功能的仿真,圖3(b)為答題犯規(guī)控制功能的仿真。
通過圖3(a)可以看出,當rst=1時,搶答無效,倒計時器初始值設為60s;當rst=O,且sta=O時,d組提前搶答,報警器開始報警,offen-der顯示犯規(guī)組別“0100”,說明提前犯規(guī)組別為d組。此后主持人按下rst鍵,使rst=1,此時報警器停止報警,系統(tǒng)進入初始狀態(tài);而當rs-t=O且sta=1,a組搶答成功,計時使能信號en=1。當時鐘信號clk_lhz的上升沿來時,倒計時器開始計時,當a組在限定時間內回答完問題,主持人按下計時使能信號,使en=O,倒計時器停止計時,同時防止報警器報警。
而通過圖3(b)可以看出,當rst=O,sta=1時,a組搶答成功,但沒在限定時間內回答完問題,60s倒計時時間計為O時,報警器開始報警,offender顯示犯規(guī)組別為“0001”,說明超時犯規(guī)組別為a組;主持人按下復位鍵,使rst=l,報警器停止報警,offender顯示 “0000”,即將犯規(guī)組別的號碼清零,系統(tǒng)重新進入初始狀態(tài)。[!--empirenews.page--]
2.4 計分模塊的設計
計分模塊的主要功能是對搶答成功并答對的組別進行加分操作或對搶答成功但答錯的組別進行減分操作,同時通過譯碼顯示電路顯示出來。根據以上的功能設計要求,該模塊需要將加、減分操作add、sub和系統(tǒng)時鐘clk_lhz作為輸入信號,而各組別的分數顯示作為輸出信號aa0[3..0]、 bb0[3..0]、cc0[3..o]、dd0[3..0];為了確定給哪個組別加或減分,需要有一個搶答成功組別的輸入信號,可將其設為chose。為了使系統(tǒng)能進入下一輪的搶答,應設置系統(tǒng)復位輸入信號rst。其計分模塊的仿真模型如圖4所示。
通過圖4可以看出,當rst=l時,系統(tǒng)進入初始狀態(tài),a、b、c、d組的初始分值都為5,當add=1,系統(tǒng)時鐘信號clk_lhz的一個上升沿到來時,就給chose當前鑒別的組別“0001”組加1分,當sub=1,系統(tǒng)時鐘信號clk_lhz來一個上升沿時,就給chose當前鑒別的組別 “0010”組減1分。
3 電子搶答器的硬件驗證
本設計選用杭州康芯電子有限公司生產的GW48EDA系統(tǒng)作為硬件驗證系統(tǒng),同時選用Altera公司的EPlK30TCl44-3作為主控芯片。該主控芯片是一種基于查找表結構的現場可編程邏輯器件,它的基本邏輯單元是可編程的查找表,能夠實現組合邏輯運算,并能用可編程寄存器實現時序邏輯運算。設計時,只需要對電子搶答器整體設計中的輸入輸出引腳作引腳鎖定,然后重新編譯、下載,就可以進行電子搶答器的硬件驗證了。實驗表明:本設計能夠實現電子搶答器的全部功能。
4 結束語
本文以現場可編程邏輯器件(FPGA)為設計載體,以硬件描述語言(VHDL)為主要表達方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設計工具設計了一種具有第一搶答信號鑒別和鎖存、計時和計分,并可對提前搶答和超時搶答進行蜂鳴警示等功能的電子搶答器。闡述了電子搶答器的工作原理和軟硬件實現方法。并對電子搶答器的各部分模塊進行了時序仿真和硬件驗證,結果表明,該電路能夠實現其所要求的功能。另外,由于FPGA芯片體積小,功耗低,價格便宜,安全可靠,稍加修改就可以改變搶答器的搶答組別數,而且搶答時間設定和成績組成方式以及維護和升級都比較方便,同時也很容易做成ASIC芯片,因而具有較好的應用前景。