【正文】
28。 END PROCESS。WHEN OTHERS=Q=0000000。 WHEN1001=Q=1101111。 WHEN1000=Q=1111111。 WHEN0111=Q=0100111。 WHEN0110=Q=1111101。 WHEN0101=Q=1101101。 WHEN0100=Q=1100110。 WHEN0011=Q=1001111。 WHEN0010=Q=1011011。 WHEN0001=Q=0000110。 WHEN0000=Q=0111111。 END DISP。 PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 USE 。 END PROCESS。 H=HH。END IF。 SOUND=39。 ELSE LL:=LL1。 HH:=HH1。 LL:=1001。 139。 139。139。 BEGINIF CLK39。 END COUNT。 H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 倒計時模塊COUNT ENTITY COUNT ISPORT(CLK,EN:IN STD_LOGIC。 USE 。 END CH31_ARC。 END CASE。 BEGINPROCESS(SEL,D1,D2,D3) BEGINCASE SEL IS END CH31A。 USE 。 END CH41_ARC。END CASE。 WHEN OTHERS=Q=1111。WHEN 1101=Q=0011。 CASE TMP ISWHEN 0111=Q=0001。D3amp。 BEGINTMP:=D1amp。 PROCESS(D1,D2,D3,D4) VARIABLE TMP:STD_LOGIC_VECTOR(3 DOWNTO 0)。 轉(zhuǎn)換模塊CH41ABEGIN END CH41A。 USE 。 4)、轉(zhuǎn)換模塊CH41A的VHDL源程序ch41a..vhd END PROCESS。END IF。 139。 Q3=D3。 Q1=D1。 THENEVENT AND CLK=39。 039。 Q4=39。 039。 Q2=39。 039。 THENIF CLR=39。 BEGIN BEGIN END LOCKB。 PORT(D1,D2,D3,D4:IN STD_LOGIC。LOCKB USE 。 END SEL_ARC。 A=AA。 END IF。 AA:=AA+1。 THENEVENT AND CLK=39。 BEGIN ARCHITECTURE SEL_ARC OF SEL IS a:OUT INTEGER RANGE 0 TO 7)。 LIBRARY IEEE。 END FENG_ARC。 END IF。 Q=39。 THENEVENT AND CP=39。039。 039。 BEGINPROCESS(CP,CLR) END FENG。 USE 。 這些很大程度都得益于曾經(jīng)幫助過我的老師和同學,請允許我在此向他們表示誠摯的感謝。就比如我的一個quartersII的軟件她就幫我裝了差不多有五遍,可從來都沒有一絲的不耐煩。但其中仍存在一些不足之處,請多見諒!致 謝本設(shè)計是在指導(dǎo)老師周廣麗老師的精心指導(dǎo)下完成的。結(jié) 論本文介紹了基于FPGA的智能電子搶答器的設(shè)計,本設(shè)計使用VHDL語言,對智能搶答器的每一個模塊進行分析,設(shè)計,編譯,并在quartersII軟件的支持下,對其進行仿真。整個電路的仿真圖:圖13 頂層電路仿真波形主持人按下復(fù)位鍵,當有人搶答時,鎖存其組號,并開始倒計時。Feng模塊:圖11 Feng模塊仿真波形主持人按下復(fù)位鍵,清零,當有人搶答,即cp為下降沿時,輸出高電平。Lockb模塊:圖10 Lockb模塊仿真波形此為鎖存模塊,主持人按下復(fù)位鍵時,清零。Sel模塊:圖8 Sel模塊仿真波形此模塊相當于一個計數(shù)器,在每個時鐘上升沿到來時,輸出就自加1。Ch41a模塊:圖7 h41a模塊仿真波形此模塊用二進制顯示搶答的結(jié)果,搶答結(jié)果是低電平有效。經(jīng)實際電路測試驗證,達到了設(shè)計的要求。結(jié)束后主持人可以復(fù)位后將開始按鈕h按下重新進行下一輪的搶答。首先由主持人將開始按鈕h按下之后,選手1,2,3,4開始搶答,網(wǎng)中是1號選手最先按下,q[7..O]顯示段碼結(jié)果為06(臺號顯示為1),此時定時器開始T 作做減計數(shù),qh[3..0]和ql [3..O]依次減小(為截取整張仿真圖。南于文章篇幅原因,本文給出頂層電路的仿真波形。DISP模塊為譯碼模塊,用于將數(shù)據(jù)轉(zhuǎn)換成段碼,以便數(shù)碼管能正確顯示。產(chǎn)生片選信號。搶答結(jié)果低電平有效,當搶答結(jié)果dld2d3d4為Olll時,輸出q為0001;當搶答結(jié)果dld2d3d4為1011時,輸出q為0010;當搶答結(jié)果dld2d3d4為1l0l時,輸出q為0011;當搶答結(jié)果dld2d3d4為111O時,輸出q為0100。當sel為000時,將d1賦值給q1,同時將01111111賦值給WX選通數(shù)碼管;當sel為001時,將d2賦值給q2,同時將1011lll1賦值給WX選通數(shù)碼管;當sel為011時,將d3賦值給q3,同時將11011111 賦值給WX選通數(shù)碼管。當高位從9減少到0時,報警就輸出高電平。設(shè)計中100S時間用00到99表示,顯示分為高位h,底位l,另外還有限時報警sound。clr信號為0時,d1,d2,d3,d4的輸出都為0;當c1r信號為1時,將dl賦給q1,d2賦給q2,d3賦給q3,d4賦給q4,同時將alm輸出為高電平。FENG模塊是搶答判斷模塊,在各個選手1,2,3,4搶答操作后,將四路信號相與,并送出高電平Q 給鎖存器,鎖存當時的按鍵狀態(tài),由于搶答信號是低電平有效,故相與后的結(jié)果可以識別最先搶答選手,由于沒有時鐘同步,所以鎖存的延時時間只是硬件延時時間,從而實現(xiàn)鎖存錯誤的概率接近零。 模塊的設(shè)計根據(jù)上述分析設(shè)計了各功能模塊問的結(jié)構(gòu)關(guān)系,如圖5。該模塊主要任務(wù)是完成二進制數(shù)到段碼的轉(zhuǎn)換。定時與報警模塊:該模塊用來對選手進行答題限時,答題時間到后輸出報警信號。掃描模塊:該模塊主要用來掃描顯示數(shù)據(jù),掃描頻率可以調(diào)整,便于動態(tài)顯示。鎖存模塊:該模塊用以鎖存最先搶答的選手號碼,以便輸出顯示。圖4 搶答器系統(tǒng)原理圖 電子搶答器的設(shè)計 功能模塊劃分根據(jù)對搶答器的功能要求 ,把要設(shè)計的系統(tǒng)劃分為六個功能模塊:搶答信號判別模塊,鎖存模塊,轉(zhuǎn)換模塊,掃描模塊,定時與報警模塊,譯碼與顯示模塊。 設(shè)計思路本系統(tǒng)設(shè)計一個智力競賽搶答器要求具有四路搶答輸入,能夠識別最先搶答的信號,顯示該臺號;對回答問題所用的時間進行計時、顯示、超時報警同時具有復(fù)位功能和倒計時啟動功能。 4)、主持人復(fù)位后,開始搶答,第一信號鑒別鎖存電路得到信號