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