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