數字式競賽搶答器說明書_第1頁
數字式競賽搶答器說明書_第2頁
數字式競賽搶答器說明書_第3頁
數字式競賽搶答器說明書_第4頁
數字式競賽搶答器說明書_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

..《EDA技術》課程設計說明書數字式競賽搶答器學院:電氣與信息工程學院學生__程波指導王曉麗職稱/學位碩士專業(yè):電氣工程及其自動化班級:電氣本1202班學號:1230140210完成時間:2015年6月28日..摘要當今的社會競爭日益激烈,選拔人才,評選優(yōu)勝,知識競賽之類的活動愈加頻繁,那摩就必然離不開搶答器。搶答器是為智力競賽參賽者答題時進行搶答而設計的一種優(yōu)先判決器電路,競賽者可以分為若干組,搶答時各組對主持人提出的問題要在最短的時間內做出判斷,并按下搶答按鍵回答問題。當第一個人按下按鍵后,則在顯示器上顯示該組的號碼,對應的燈亮,同時電路將其他各組按鍵封鎖,使其不起作用。若搶答時間內無人搶答,則報警燈亮?;卮鹜陠栴}后,由主持人將所有按鍵恢復,重新開始下一輪搶答。此次課程設計的內容是設計一個可容納四組參賽者同時搶答的數字搶答器。主要模塊有搶答鑒別模塊、計時模塊、犯規(guī)模塊、計分模塊以及顯示模塊,這些模塊的組合構成了搶答器系統(tǒng)框圖。通過編寫相應的VHDL程序實現即功能仿真,頂層文件及整體仿真。關鍵詞:搶答器;VHDL..目錄1緒論 12搶答器的設計要求 23搶答器的功能模塊 33.1搶答器的搶答鑒別模塊設計 33.1.1搶答鑒別的功能 33.1.2搶答鑒別模塊的時序仿真圖 33.2搶答器的計時模塊設計 43.2.1計時模塊的功能 43.2.2計時模塊的時序仿真圖 43.3搶答器的計分模塊設計 53.3.1計分模塊的功能 53.3.2計分模塊的時序仿真圖 53.4搶答器的譯碼顯示模塊設計 63.4.1譯碼顯示模塊的功能 63.4.2譯碼顯示模塊的時序仿真圖 63.5搶答器的犯規(guī)模塊設計 73.5.1犯規(guī)模塊的功能 73.5.2犯規(guī)模塊的時序仿真圖 74搶答器的頂層原理圖設計 84.1頂層原理圖的源文件 84.2頂層設計的時序仿真圖 8結束語 10參考文獻 11致謝 12附錄 13附錄A搶答鑒別模塊VHDL源程序 13附錄B計時模塊VHDL源程序 15附錄C計分模塊VHDL源程序 18附錄D譯碼顯示模塊VHDL源程序 21附錄E犯規(guī)模塊VHDL源程序 22..1緒論EDA是電子設計自動化〔ElectronicDesignAutomation的縮寫,在20世紀90年代初從計算機輔助設計〔CAD、計算機輔助制造〔CAM、計算機輔助測試〔CAT和計算機輔助工程〔CAE的概念發(fā)展而來的。EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言VHDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。隨著電子技術和計算機技術的飛速發(fā)展,電子線路的設計工作也日益顯得重要。經過人工設計、制作實驗板、調試再修改的多次循環(huán)才定型的傳統(tǒng)產品設計方法必然被計算機輔助設計所取代,因為這種費時費力又費資源的設計調試方法既增加了產品開發(fā)的成本,又受到實驗工作場地及儀器設備的限制。為了克服上述困難,加拿大InteractiveImageTechnologies公司推出的基于Windows95/98/NT操作系統(tǒng)的EDA軟件〔ElectronicsWorkbench"電子工作臺",EWB。他可以將不同類型的電路組合成混合電路進行仿真。EWB是用在計算機上作為電子線路設計模擬和仿真的新的軟件包,是一個具有很高實用價值的計算機輔助設計工具。目前已在電子工程設計等領域得到了廣泛地應用。與目前流行的電路仿真軟件相比較,EWB具有界面直觀、操作方便等優(yōu)點。他改變了有些電路仿真軟件輸入電路采用文本方式的不便之處,該軟件在創(chuàng)建電路、選用元器件的測試儀器等均可以直接從屏幕圖形中選取,而且測試儀器的圖形與實物外形基本相似,從而大大提高了電子設計工作的效率。2搶答器的設計要求在許多比賽活動中,為了準確、公正、直觀地判斷出第一搶答者,通常設置一臺搶答器,通過數顯、燈光及音響等多種手段指示出第一搶答者。同時,還可以設置計分、犯規(guī)及獎懲計錄等多種功能。本設計的具體要求是:設計一個課容納四組參賽者同時搶答的數字搶答器,可判斷第一搶答者并報警指示搶答成功,其他組再搶答均無效。若提前搶答則對相應的搶答組發(fā)出警報。同時,要求給出系統(tǒng)總體組成框圖,設計思路,完成以上模塊的VHDL文件并進行仿真驗證。3搶答器的功能模塊3.1搶答器的搶答鑒別模塊設計3.1.1搶答鑒別模塊的功能該模塊主要實現搶答過程中的搶答功能,并能對超前搶答進行警告。同時,搶答鑒別模塊還用來準確直觀地判斷A、B、C、D四組搶答者誰最先按下按鈕,并為顯示端送出信號,通過譯碼顯示和報警等途徑使觀眾能夠清楚地知道是哪一組搶答成功,能記錄無論是正常搶答還是超前搶答者的臺號,并且能實現當有一路搶答按鍵按下時,該路的搶答信號會將其余信號封鎖。它是整個系統(tǒng)的核心部分。同時組別顯示端為下一模塊輸入信號,以便主持人為該組搶答成功者進行加分的操作。搶答鑒別模塊設計圖如圖1所示,其VHDL源程序見附錄A。圖1搶答鑒別模塊設計圖3.1.2搶答鑒別模塊的時序仿真圖如圖2,為搶答鑒別模塊的時序仿真圖。搶答時設置時鐘信號CLK,在搶答時需要一個允許開始搶答信號,設置為states,該信號輸入后,指示燈亮,信號為LED,提示選手開始搶答,為了鑒別搶答者,設置A、B、C、D為了使系統(tǒng)重新進入搶答狀態(tài),還需要一個復位信號,設置為CLR。從仿真圖中可以看出,A的速度最快,但明顯有一點搶先,緊隨其后的是B,C,D,這三人均沒有搶先,而且可以看出,搶答開始后,燈LED[0]亮。圖2搶答鑒別模塊的時序仿真圖3.2搶答器的計時模塊設計3.2.1計時模塊的功能該模塊主要實現搶答過程中的計時功能,在有搶答開始后進行所設時間的倒計時,并且在倒計時后無人搶答顯示超時并報警。設置搶答時鐘信號為clk,計時預置控制端ldn,系統(tǒng)復位清零信號為clr,搶答使能信號為en,計時預置數據調整按鈕個位為ta,十位為tb。計時輸出信號端qa[3..0]和qb[3..0]。計時模塊設計圖如圖3所示,其VHDL源程序見附錄B。圖3計時模塊設計圖3.2.2計時模塊的時序仿真圖如圖4,為搶答器的計時模塊的時序仿真圖。當清零信號clr=1時,模塊輸出信號qa=0000,qb=0000。當預置控制信號ldn=1可以通過ta來調整qa,ta來一次高電平,則qa的數值就加1;用tb來調整qb,通過這兩個調整信號可調整參賽者答題所需要的時間。在clr=0,ldn=0,en=1時,通過時鐘信號clk的上升沿來進行倒計時。圖4計時模塊的時序仿真圖3.3搶答器的計分模塊設計3.3.1計分模塊的功能系統(tǒng)的輸入信號為:加分按鈕端ADD,選擇組別號輸入端CHOSE[3..0];系統(tǒng)的輸出信號為:A組分數輸出端A2[3..0]、A1[3..0]、A0[3..0]B組分數輸出端B2[3..0]、B1[3..0]、B0[3..0],C組分數輸出端C2[3..0]、C1[3..0]、C0[3..0]。計分模塊設計圖如圖5所示,其VHDL源程序見附錄C。圖5計分模塊設計圖3.3.2計分模塊的時序仿真圖如圖6,為搶答器的計分模塊的時序仿真圖。計分模塊的運行方式是按照十進制進行加法,即當時鐘出現上升沿時就進行加一的操作。計分模塊為哪組進行計分取決于鑒別模塊的輸入信號CHOSE,當CHOSE=0001時表示A組最先搶答,則在此模塊中為A組計分;當CHOSE=0010時表示B組最先搶答,則在此模塊中為B組計分;當CHOSE=0100時表示C組最先搶答,則在此模塊中為C組計分;當CHOSE=1000時表示D組最先搶答,則在此模塊中為D組計分。圖6計分模塊的時序仿真圖3.4搶答器的譯碼顯示模塊設計3.4.1譯碼顯示模塊的功能該模塊實際上是一個譯碼器,譯碼器是組合邏輯電路的一個重要的器件,該模塊中主要實現搶答過程中將BCD碼轉化成7段數碼管的功能。in4[3..0]為輸入信號,out7[6..0]為輸出信號。譯碼顯示模塊設計圖如圖7所示,其VHDL源程序見附錄D。圖7譯碼顯示模塊設計圖3.4.2譯碼顯示模塊的時序仿真圖如圖8,為搶答器的譯碼顯示模塊的時序仿真圖。當輸入0001,輸出0000110,即在共陰極數碼管上顯示1;即顯示A組搶答成功。當輸入0010,輸出1011011,即在共陰極數碼管上顯示2;即顯示B組搶答成功。當輸入0011,輸出1001111,即在共陰極數碼管上顯示3;即顯示C組搶答成功。當輸入0100,輸出1100110,即在共陰極數碼管上顯示4;即顯示D組搶答成功。圖8譯碼顯示模塊的時序仿真圖3.5搶答器的犯規(guī)模塊設計3.5.1犯規(guī)模塊的功能該模塊主要實現搶答過程中的報警功能,當主持人按下控制鍵,在有限的時間內,沒有人搶答或是主持人未按下控制按鈕就搶答時開始報警,計數開始狀態(tài)start,計數輸入信號a、b、c、d以及狀態(tài)輸出信號y。犯規(guī)模塊設計圖如圖9所示,其VHDL源程序見附錄E。圖9犯規(guī)模塊設計圖3.5.2犯規(guī)模塊的時序仿真圖如圖10,為搶答器的犯規(guī)模塊的時序仿真圖。如圖,當B組有人在未允許搶答之前搶答,其輸出報警信號y為高電平。圖10犯規(guī)模塊的時序仿真圖4搶答器的頂層原理圖設計4.1頂層原理圖的源文件單獨模塊只有彼此聯系起來構成一個完整的系統(tǒng),才能實現其功能,這個過程有兩種實現方法:元件例化和元器件圖示連線。為了能直觀的表示各模塊之間的連接關系。我采用元器件圖示連線,這種連線方法思路清晰可見,而且用的時候很簡單方便,即使出現錯誤也很好檢查。按照要求,我們可以將整個系統(tǒng)分為五個主要模塊:搶答鑒別模塊;搶答計時模塊;搶答計分模塊;譯碼顯示模塊和犯規(guī)模塊。對于需顯示的信息,需要增加或外接譯碼器,進行顯示譯碼。考慮到實驗開發(fā)平臺提供的輸出顯示資源的限制,我們將組別顯示和計時顯示的譯碼器內設,而將各組的計分顯示的譯碼器外接。整個系統(tǒng)的總的頂層設計圖如圖11所示。圖11搶答器總的頂層設計圖4.2頂層設計的時序仿真圖如圖12,為搶答器的頂層設計的時序仿真圖。從仿真圖中可以看出,當允許答題后,四組〔A、B、C、D任意一組搶答時,在規(guī)定的時間搶答成功,即該組就加分。圖中A組,搶答成功加分一次,LED[0]被點亮,其SCOREA加1。譯碼顯示模塊〔YMSC顯示對應組號〔0000110,即為1。B組搶答成功兩次,LED[1]被點亮,其SCOREA加2。譯碼顯示模塊〔YMSC顯示對應組號〔1011011,即為2。D組搶答成功三次,LED[3]被點亮,其SCOREA加3。譯碼顯示模塊〔YMSC顯示對應組號〔1111111,即為8。圖12頂層設計的時序仿真圖結束語本次的EDA課程設計雖然只有短暫的一周時間,但是通過實踐,使我對EDA技術有了更進一步的了解。同時,大致懂得了一個課題制作的具體流程和實施方法。另外,課程設計對QuartusⅡ軟件的使用要求較高,從而使我能較為熟練的運用此軟件。在設計時,采用模塊化的設計思路使得問題變的簡單明了,大大縮短了時間,降低了發(fā)生錯誤的機侓,也便于修改和更新。課程設計中,需要找很多資料,在當今的信息化環(huán)境中,雖然資料很多,但需要仔細斟酌才能找到所要的。這次的課程設計很好的鍛煉了這種能力。此外,與同學和老師的交流必不可少,我從中也學到了不少東西。課程設計是一次很好的鍛煉機會,我從中學的很多知識對將來的學習和工作都有很大的幫助,十分感謝學校能提供這樣一個機會。參考文獻[1]潘松,黃繼業(yè).EDA技術與VHDL[M]〔第2版.北京:清華大學出版社,2007[2]曹昕燕,周鳳臣,聶春燕,EDA技術實驗與課程設計[M].北京:清華大學出版社,2006[3]潘松,黃繼業(yè).EDA技術實用教程-VHDL版[M]〔第四版.北京:科學出版社,2010[4]XX康芯電子GW48-PK3實驗系統(tǒng)說明書.XX康芯電子,2006[5]姜雪松,吳鈺淳.VHDL設計實例與仿真[M].機械工業(yè)出版社,2007[6]李偉英,謝完成.基于EDA技術的搶答器的設計與實現[J].科學技術與實現,2008.8〔11致謝在這次設計中,我花了不少的時間,其中有苦也有樂??嗟氖俏腋冻隽瞬簧俚暮顾?樂的是在付出的過程中我得到了許多,也學會了許多。因為一個人的能力畢竟有限,在設計方面難免會出現這樣或那樣的錯誤,但正是這些促進了我的進步。根據對整體結構的分析,我采用層次結構化的設計概念,將此項設計任務分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,然后再將各模塊合起來聯試,這就培養(yǎng)了我對層次化設計的概念。在此次課程設計中,我真正體會到了知識地重要性。在設計的過程中,遇到問題我會先獨立思考,到自己不能解決的時候我就會和同學討論,實在解決不了就向老師請教,應該說從功能的實現到流程圖的繪制,從程序的編寫到程序的檢查,從程序的調試到文檔的書寫,其間每一個過程都凝集著大家對我的支持。最后,在設計的過程中我進一步養(yǎng)成了軟件設計的方法,完成了一個項目的程序編寫,進一步了解了設計的步驟,也進一步加深了對課程的理解,增強了對本課程的興趣,為以后的工作積累了一定的經驗,在這次課程設計中,非常感謝王曉麗老師為我疑難解惑,也感謝同學們對我的幫助。附錄附錄A搶答鑒別模塊VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityQIANGDAisport<CLR,CLK:instd_logic;A,B,C,D:instd_logic;states:bufferstd_logic_vector<3downto0>;LED:bufferstd_logic_vector<3downto0>;warm:outstd_logic>;endentityQIANGDA;architectureartofQIANGDAissignalQ:std_logic_vector<3downto0>;beginp1:process<A,B,C,D,CLR,CLK>beginifCLR='1'thenwarm<='0';Q<="0000";elsifCLK'eventandCLK='1'thenif<A='1'orQ<0>='1'>andnot<Q<1>='1'orQ<2>='1'orQ<3>='1'>thenQ<0><='1';endif;if<B='1'orQ<1>='1'>andnot<Q<0>='1'orQ<2>='1'orQ<3>='1'>thenQ<1><='1';endif;if<C='1'orQ<2>='1'>andnot<Q<0>='1'orQ<1>='1'orQ<3>='1'>thenQ<2><='1';endif;if<D='1'orQ<3>='1'>andnot<Q<0>='1'orQ<1>='1'orQ<2>='1'>thenQ<3><='1';endif;warm<=Q<0>orQ<1>orQ<2>orQ<3>;endif;endprocessp1;p2:process<states<0>,states<1>,states<2>,states<3>,LED>beginif<Q="0000">thenstates<="0000";elsif<Q="0001">thenstates<="0001";elsif<Q="0010">thenstates<="0010";elsif<Q="0100">thenstates<="0100";elsif<Q="1000">thenstates<="1000";endif;LED<=Q;endprocessp2;endart;附錄B計時模塊VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityJISHIisport<clr,ldn,en,clk:instd_logic;ta,tb:instd_logic;qa:outstd_logic_vector<3downto0>;qb:outstd_logic_vector<3downto0>>;endentityJISHI;architectureartofJISHIissignalda:std_logic_vector<3downto0>;signaldb:std_logic_vector<3downto0>;beginprocess<ta,clr>isbeginif<clr='1'>thenda<="1001";elsif<ta'eventandta='1'>thenif<ldn='1'>thenif<da="0000">thenda<="1001";elseda<=da-1;endif;endif;endif;endprocess;process<tb,clr>isbeginif<clr='1'>thendb<="0101";elsif<tb'eventandtb='1'>thenif<ldn='1'>thenifdb="0000"thendb<="1001";elsedb<=db-1;endif;endif;endif;endprocess;process<clk>isvariabletmpa:std_logic_vector<3downto0>;variabletmpb:std_logic_vector<3downto0>;beginif<clr='1'>thentmpa:="0000";tmpb:="0000";elsifclk'eventandclk='1'thenifen='1'thentmpa:=da;tmpb:=db;elsiftmpa="0000"theniftmpb="0000"thentmpa:="0000";elsetmpa:="1001";endif;iftmpb="0000"thentmpb:="0000";elsetmpb:=tmpb-1;endif;elsetmpa:=tmpa-1;endif;endif;qa<=tmpa;qb<=tmpb;endprocess;endarchitectureart;附錄C計分模塊VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityJIFENisport<ADD:instd_logic;CHOSE:instd_logic_vector<3downto0>;A2,A1,A0:OUTstd_logic_vector<3downto0>;B2,B1,B0:OUTstd_logic_vector<3downto0>;C2,C1,C0:OUTstd_logic_vector<3downto0>;D2,D1,D0:OUTstd_logic_vector<3downto0>>;ENDJIFEN;ARCHITECTURErtlOFJIFENISBEGINPROCESS<ADD,CHOSE>VARIABLEPOINTS_A2,POINTS_A1:STD_LOGIC_VECTOR<3DOWNTO0>;VARIABLEPOINTS_B2,POINTS_B1:STD_LOGIC_VECTOR<3DOWNTO0>;VARIABLEPOINTS_C2,POINTS_C1:STD_LOGIC_VECTOR<3DOWNTO0>;VARIABLEPOINTS_D2,POINTS_D1:STD_LOGIC_VECTOR<3DOWNTO0>;BEGINIFADD'EVENTANDADD='1'THENIFCHOSE="0001"THENIFPOINTS_A1="1001"THENPOINTS_A1:="0000";IFPOINTS_A2="1001"THENPOINTS_A2:="0000";ELSEPOINTS_A2:=POINTS_A2+'1';ENDIF;ELSEPOINTS_A1:=POINTS_A1+'1';ENDIF;ELSIFCHOSE="0010"THENIFPOINTS_B1="1001"THENPOINTS_B1:="0000";IFPOINTS_B2="1001"THENPOINTS_B2:="0000";ELSEPOINTS_B2:=POINTS_B2+'1';ENDIF;ELSEPOINTS_B1:=POINTS_B1+'1';ENDIF;ELSIFCHOSE="0100"THENIFPOINTS_C1="1001"THENPOINTS_C1:="0000";IFPOINTS_C2="1001"THENPOINTS_C2:="0000";ELSEPOINTS_C2:=POINTS_C2+'1';ENDIF;ELSEPOINTS_C1:=POINTS_C1+'1';ENDIF;ELSIFCHOSE="1000"THENIFPOINTS_D1="1001"THENPOINTS_D1:="0000";IFPOINTS_D2="1001"THENPOINTS_D2:="0000";ELSEPOINTS_D2:=POINTS_D2+'1';ENDIF;ELSEPOINTS_D1:=POINTS_D1+'1';ENDIF;ENDIF;ENDIF;A2<=POINTS_A2;A1<=POINTS_A1;A0<="0000";B2<=POINTS_B2;B1<=POINTS_B1;B0<="0000";C2<=POINTS_C2;C1<=POINTS_C1;C0<="0000";D2<=POI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論