畢業(yè)論文設(shè)計(jì)基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)_第1頁
畢業(yè)論文設(shè)計(jì)基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)_第2頁
畢業(yè)論文設(shè)計(jì)基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)_第3頁
畢業(yè)論文設(shè)計(jì)基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)_第4頁
畢業(yè)論文設(shè)計(jì)基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

畢業(yè)論文設(shè)計(jì)-基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)石家莊經(jīng)濟(jì)學(xué)院本科生科技論文題目:基于VHDL語言的八路數(shù)字搶答器設(shè)計(jì)摘要搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識競賽場合,是競賽問答中一種常用的必備裝置;從原理上講,它是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時(shí)序邏輯電路.電路結(jié)構(gòu)形式多種多樣,可以利用簡單的與非門構(gòu)成,也可以利用觸發(fā)器構(gòu)成,也可以利用單片機(jī)來完成.利用單片機(jī)來設(shè)計(jì)搶答器,使得結(jié)果更簡單,功能更優(yōu)越。本設(shè)計(jì)是基于單片機(jī)控制的六路搶答器,利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)生提示。同時(shí)系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時(shí)間和回答問題的時(shí)間可在1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時(shí)間和回答問題時(shí)間倒記時(shí)顯示,滿時(shí)后系統(tǒng)計(jì)時(shí)自動(dòng)復(fù)位及主控強(qiáng)制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。關(guān)鍵詞:搶答器;EDA;VHDL語言

AbstractAnswerdevicesasanelectronicproducts,haslongbeenwidelyusedinavarietyofoccasions,intelligenceandknowledgecompetitions,quizcontestsareessentialinacommonlyuseddevice;fromtheprinciple,itisatypicaldigitalcircuit,includingacombinationoflogiccircuitsandsequentiallogiccircuit.Circuitstructureofavarietyofforms,canmakeuseofsimpleandnon-gatestructurecanalsobeusedtotriggercomposition,canalsobeusedtocompletesingle-chipmicrocomputer.Answertheuseofsingle-chipdesign,andmakestheresultsmoresimplefunctionbetter.

Thedesignisbasedonthesix-waySCMAnswer,andtheuseofsingle-chiptimer/countertimingandnumberoftheprinciplesinmind,thehardwareandsoftwarecombinetomakethesystemtimecorrectly,whilethedigitalcontrolabletocorrectlydisplaythetime.Switchthekeyboardtodowithoutput,speakerpromptedoccurred.Atthesametime,thesystemcanberealized:IntheAnswer,onlyaftertheAnswertobevalid,ifatthebeginningofpre-AnswerAnswerinvalid;Answertoanswerthequestionoflimitedtimeandthetimecanbesetin1-99s;canshowwho'seffectiveandAnswerAnswerinvalid,thecorrectbuttonpromptafterthemusic;Answerquestiontimeandtime倒記時(shí)showfulltimeafterthesystemautomaticallyresetandmasterresetmandatory;keyslockedintheeffectivestate,thekeyisinvalidillegal.Keywordsanswerdevices;EDA;VHDLlanguage

設(shè)計(jì)原理與技術(shù)方法:整體簡介Max+plusII(或?qū)懗蒑axplus2,或MP2)是Altera公司推出的的第三代PLD開發(fā)系統(tǒng)(Altera第四代PLD開發(fā)系統(tǒng)被稱為:QuartusII,主要用于設(shè)計(jì)新器件和大規(guī)模CPLD/FPGA).使用MAX+PLUSII的設(shè)計(jì)者不需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu)。設(shè)計(jì)者可以用自己熟悉的設(shè)計(jì)工具(如原理圖輸入或硬件描述語言)建立設(shè)計(jì),MAX+PLUSII把這些設(shè)計(jì)轉(zhuǎn)自動(dòng)換成最終所需的格式。其設(shè)計(jì)速度非??臁τ谝话銕浊чT的電路設(shè)計(jì),使用MAX+PLUSII,從設(shè)計(jì)輸入到器件編程完畢,用戶拿到設(shè)計(jì)好的邏輯電路,大約只需幾小時(shí)。設(shè)計(jì)處理一般在數(shù)分鐘內(nèi)內(nèi)完成。特別是在原理圖輸入等方面,Maxplus2被公認(rèn)為是最易使用,人機(jī)界面最友善的PLD開發(fā)軟件,特別適合初學(xué)者使用。使用Maxplus2基本上也是有以下幾個(gè)步驟:1.設(shè)計(jì)輸入2.設(shè)計(jì)編譯3.設(shè)計(jì)仿真4.下載搶答器的邏輯結(jié)構(gòu)主要由搶答鑒別lock模塊、定時(shí)模塊、譯碼模塊和報(bào)警器模塊組成。在整個(gè)搶答器中最關(guān)鍵的是如何實(shí)現(xiàn)搶答封鎖,在控制鍵按下的同時(shí)計(jì)數(shù)器倒計(jì)時(shí)顯示有效剩余時(shí)間。除此之外,整個(gè)搶答器還需有一個(gè)“復(fù)位開始”信號,以便搶答器能實(shí)現(xiàn)清零和開始。搶答器共有3個(gè)輸出顯示,選手代號、計(jì)數(shù)器的個(gè)位和十位,他們輸出全都為BCD碼輸出,這樣便于和顯示譯碼器連接。當(dāng)主持人按下控制鍵、選手按下?lián)尨疰I蜂鳴器短暫響起。整體原理框圖如圖1所示。圖1整體原理框圖搶答器同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕[a1]~[a8]。設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān)Reset,該開關(guān)由主持人控制。搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號,揚(yáng)聲器發(fā)出聲響提示,數(shù)碼顯示選手號碼。其他人再按鍵,系統(tǒng)進(jìn)行了優(yōu)先鎖存,不再響應(yīng),優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止,下一次搶答開始。擴(kuò)展功能:該電路具有犯規(guī)報(bào)警功能。當(dāng)主持人未按下開關(guān)開始搶答前,參賽選手若按下開關(guān),則搶答系統(tǒng)發(fā)出蜂鳴聲報(bào)警并顯示犯規(guī)組別。(二)搶答器工作流程搶答器的基本工作原理:在搶答競賽或呼叫時(shí),有多個(gè)信號同時(shí)或不同時(shí)送入主電路中,搶答器內(nèi)部的寄存器工作,并識別、記錄第一個(gè)號碼,同時(shí)內(nèi)部的定時(shí)器開始工作,記錄有關(guān)時(shí)間并產(chǎn)生超時(shí)信號。在整個(gè)搶答器工作過程中,顯示電路、語音電路等還要根據(jù)現(xiàn)場的實(shí)際情況向外電路輸出相應(yīng)信號。搶答器的工作流程分為、系統(tǒng)復(fù)位、正常流程、犯規(guī)流程等幾部分,如圖2所示。加載程序加載程序運(yùn)行行開始開始數(shù)碼管顯示30開始搶按時(shí)間倒計(jì)時(shí)開始前有選手搶按顯示犯規(guī)選手號碼并伴有語音報(bào)警倒計(jì)時(shí)結(jié)束,超時(shí)有選手搶按顯示FFF顯示選手號碼,倒計(jì)時(shí)時(shí)間,語音報(bào)警,答題,答題時(shí)間倒計(jì)時(shí)正常流程犯規(guī)流程若超過答題時(shí)間,則數(shù)碼管示00答題完根據(jù)選手表現(xiàn)由主持人加分圖2搶答器工作流程(三)搶答器各部分電路1、搶答器鑒別模塊:在這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的搶答功能,并且能實(shí)現(xiàn)當(dāng)有一路搶答按鍵按下時(shí),該路搶答信號將其余個(gè)綠搶答封鎖的功能。在這個(gè)模塊輸入端有WARN輸入(以時(shí)間控制系統(tǒng)的WARN輸出信號為信號源)、一個(gè)和“時(shí)間控制系統(tǒng)”公用的CLEAR端、6人搶答輸入信號端S0,S1,S2,S3,S4,S5和有一個(gè)時(shí)鐘信號端CLK,這個(gè)時(shí)鐘信號是個(gè)高頻信號,用以掃描S0,S1,S2,S3是否有信號輸入。輸出端有對應(yīng)于S0,S1,S2,S3,S4,S5編號的6個(gè)指示燈LED和4線2進(jìn)制輸出端STATES(用于鎖存當(dāng)前的狀態(tài)),還有一個(gè)STOP端用于指示S0,S1,S2,S3,S4,S5按鈕狀態(tài)(控制計(jì)時(shí)器停止)。在此模塊中高頻時(shí)鐘信號一直作用,此時(shí),若主持人按下CLEAR即為開始搶答信號,所有輸出端都自動(dòng)清零。在有效時(shí)間范圍(N秒)內(nèi)只要有人搶答,STOP就有高電平輸出至“時(shí)間控制系統(tǒng)”的STOP端以控制倒計(jì)時(shí)的停止,并且對應(yīng)的LED指示燈點(diǎn)亮,STATES鎖存輸出到譯碼顯示模塊,用以顯示優(yōu)先搶答人的組號,并鎖定輸入端S以阻止系統(tǒng)響應(yīng)其他搶答者的信號。當(dāng)有效時(shí)間到了之后還沒有人搶答,則記時(shí)模塊發(fā)出報(bào)警信號,同時(shí)反饋回來給搶答鑒別模塊,禁止選手在搶答。2、譯碼模塊:將搶答過程中鎖存的BCD碼轉(zhuǎn)換成7段碼用于LED的顯示。3、定時(shí)器模塊:這個(gè)模塊的輸入端有時(shí)鐘信號CLK1、系統(tǒng)復(fù)位信號CLEAR和一個(gè)STOP輸入信號;輸出端有秒時(shí)間狀態(tài)顯示信號高位HIGH和低位LOW,無人搶答時(shí)計(jì)時(shí)中止警報(bào)信號WARN。這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的計(jì)時(shí)功能,在搶答開始后進(jìn)行N秒的倒計(jì)時(shí),并且在N秒倒計(jì)時(shí)后無人搶答的情況下顯示超時(shí)并輸出信號至WARN報(bào)警,或者只要N秒內(nèi)有人搶答,由搶答鑒別模塊輸出的STOP信號控制停止計(jì)時(shí),并顯示優(yōu)先搶答者的搶答時(shí)刻,輸出一個(gè)信號經(jīng)WARN傳至“搶答鑒別系統(tǒng)”,鎖存不再讓選手搶答。4、報(bào)警模塊:在這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的報(bào)警功能,當(dāng)主持人按下控制鍵,有限時(shí)間內(nèi)(N秒內(nèi))有人搶答或是倒計(jì)時(shí)到了之后蜂鳴器開始報(bào)警,輸出SOUND有效電平為高。若有選手提前搶答或者延后搶答同時(shí)報(bào)警。顯示模塊:由于試驗(yàn)箱的限制,附加了顯示電路的設(shè)計(jì)。計(jì)分模塊:設(shè)置一個(gè)計(jì)分電路,每組開始設(shè)置100分,由主持人計(jì)分,答對一次加10分,答錯(cuò)一次減10分。(四)單元電路元件設(shè)計(jì)1、搶答器鑒別模塊VHDL程序及模塊:在這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的搶答功能,并且能實(shí)現(xiàn)當(dāng)有一路搶答按鍵按下時(shí),該路搶答信號將其余個(gè)綠搶答封鎖的功能。在這個(gè)模塊輸入端有WARN輸入(以時(shí)間控制系統(tǒng)的WARN輸出信號為信號源)、一個(gè)和“時(shí)間控制系統(tǒng)”公用的CLEAR端、6人搶答輸入信號端S0,S1,S2,S3,S4,S5和有一個(gè)時(shí)鐘信號端CLK,這個(gè)時(shí)鐘信號是個(gè)高頻信號,用以掃描S0,S1,S2,S3,S4,S5是否有信號輸入。輸出端有對應(yīng)于S0,S1,S2,S3,S4,S5編號的6個(gè)指示燈LED和4線2進(jìn)制輸出端STATES(用于鎖存當(dāng)前的狀態(tài)),還有一個(gè)STOP端用于指示S0,S1,S2,S3,S4,S5按鈕狀態(tài)(控制計(jì)時(shí)器停止)。生成模塊如圖3所示。圖3LOCK模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLOCKISPORT(CLK,CLEAR:INSTD_LOGIC;WARN:INSTD_LOGIC;S0,S1,S2,S3,S4,S5:INSTD_LOGIC;STATES:OUTSTD_LOGIC_VECTOR(3DOWNTO0);STOP:OUTSTD_LOGIC;LED:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDLOCK;ARCHITECTUREONEOFLOCKISSIGNALG:STD_LOGIC_VECTOR(5DOWNTO0);BEGINPROCESS(CLEAR,CLK,S0,S1,S2,S3,S4,S5)BEGINIFCLEAR='1'THENG<="000000";LED<="000000";STOP<='0';ELSIFCLK'EVENTANDCLK='1'THENIFWARN='0'THENIF(S5='1')ANDNOT(G(0)='1'ORG(1)='1'ORG(2)='1'ORG(3)='1'ORG(4)='1')THENG(5)<='1';LED(5)<='1';ELSIF(S4='1')ANDNOT(G(0)='1'ORG(1)='1'ORG(2)='1'ORG(3)='1'ORG(5)='1')THENG(4)<='1';LED(4)<='1';ELSIF(S3='1')ANDNOT(G(0)='1'ORG(1)='1'ORG(2)='1'ORG(4)='1'ORG(5)='1')THENG(3)<='1';LED(3)<='1';ELSIF(S2='1')ANDNOT(G(0)='1'ORG(1)='1'ORG(3)='1'ORG(4)='1'ORG(5)='1')THENG(2)<='1';LED(2)<='1';ELSIF(S1='1')ANDNOT(G(0)='1'ORG(2)='1'ORG(3)='1'ORG(4)='1'ORG(5)='1')THENG(1)<='1';LED(1)<='1';ELSIF(S0='1')ANDNOT(G(1)='1'ORG(2)='1'ORG(3)='1'ORG(4)='1'ORG(5)='1')THENG(0)<='1';LED(0)<='1';ENDIF;STOP<=G(0)ORG(1)ORG(2)ORG(3)ORG(4)ORG(5);ENDIF;ENDIF;CASEGISWHEN"000001"=>STATES<="0001";WHEN"000010"=>STATES<="0010";WHEN"000100"=>STATES<="0011";WHEN"001000"=>STATES<="0100";WHEN"010000"=>STATES<="0101";WHEN"100000"=>STATES<="0110";WHENOTHERS=>STATES<="0000";ENDCASE;ENDPROCESS;ENDARCHITECTUREONE;2、譯碼模塊VHDL程序及模塊:將搶答過程中鎖存的BCD碼轉(zhuǎn)換成7段碼用于LED的顯示。生成模塊圖如圖4所示。 圖4CODE模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCODEISPORT(INSTATES:INSTD_LOGIC_VECTOR(3DOWNTO0);QOUT:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDCODE;ARCHITECTURETWOOFCODEISBEGINPROCESS(INSTATES)BEGINCASEINSTATESISWHEN"0000"=>QOUT<="0111111";WHEN"0001"=>QOUT<="0000110";WHEN"0010"=>QOUT<="1011011";WHEN"0011"=>QOUT<="1001111";WHEN"0100"=>QOUT<="1100110";WHEN"0101"=>QOUT<="1101101";WHEN"0110"=>QOUT<="1111101";WHEN"0111"=>QOUT<="0000111";WHEN"1000"=>QOUT<="1111111";WHEN"1001"=>QOUT<="1101111";WHENOTHERS=>QOUT<="0000000";ENDCASE;ENDPROCESS;ENDARCHITECTURETWO;3.定時(shí)模塊VHDL程序及模塊:這個(gè)模塊的輸入端有時(shí)鐘信號CLK、系統(tǒng)復(fù)位信號CLEAR和一個(gè)STOP輸入信號;輸出端有秒時(shí)間狀態(tài)顯示信號高位HIGH和低位LOW,無人搶答時(shí)計(jì)時(shí)中止警報(bào)信號WARN。這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的計(jì)時(shí)功能,在搶答開始后進(jìn)行N秒的倒計(jì)時(shí),并且在N秒倒計(jì)時(shí)后無人搶答的情況下顯示超時(shí)并輸出信號至WARN報(bào)警,或者只要N秒內(nèi)有人搶答,由搶答鑒別模塊輸出的STOP信號控制停止計(jì)時(shí),并顯示優(yōu)先搶答者的搶答時(shí)刻,輸出一個(gè)信號經(jīng)WARN傳至“搶答鑒別系統(tǒng)”,鎖存不再讓選手搶答。生成的模塊圖如圖5所示。圖5COUNT模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTISPORT(CLK,CLEAR,STOP:INSTD_LOGIC;WARN:OUTSTD_LOGIC;HIGH,LOW:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOUNT;ARCHITECTURETHREEOFCOUNTISSIGNALHS:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALLS:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK)BEGINIFCLEAR='1'THENHS<="1001";LS<="1001";WARN<='0';ELSIFCLK'EVENTANDCLK='1'THENLS<=LS-1;IFLS="0000"THENLS<="1001";HS<=HS-1;IFHS="0000"ANDLS="0000"THENWARN<='1';HS<="0000";LS<="0000";IFSTOP='1'THENHS<=HS;LS<=LS;WARN<='1';ENDIF;ENDIF;ENDIF;ENDIF;HIGH<=HS;LOW<=LS;ENDPROCESS;ENDARCHITECTURETHREE;4報(bào)警模塊VHDL:=1\*GB2⑴在這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的報(bào)警功能,當(dāng)主持人按下控制鍵,有限時(shí)間內(nèi)(N秒內(nèi))有人搶答或是倒計(jì)時(shí)到了之后蜂鳴器開始報(bào)警,輸出SOUND有效電平為高。生成的模塊圖如圖6所示。 圖6ALARM模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYALARMISPORT(CLEAR,WARN:INSTD_LOGIC;SOUND:OUTSTD_LOGIC);END;ARCHITECTUREFOUROFALARMISBEGINPROCESS(WARN,CLEAR)BEGINIFCLEAR='1'THENSOUND<='0';ELSIFWARN='1'THENSOUND<='1';ELSESOUND<='0';ENDIF;ENDPROCESS;ENDALARM;=2\*GB2⑵具有犯規(guī)設(shè)置電路對提前搶答和超時(shí)搶答者,則報(bào)警并顯示組別。生成的模塊圖如圖7所示。 圖7FOUL模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFOULISPORT(CLEAR:INSTD_LOGIC;S0,S1,S2,S3,S4,S5:INSTD_LOGIC;lede:OUTSTD_LOGIC_VECTOR(5DOWNTO0);warns:OUTSTD_LOGIC);ENDfoul;ARCHITECTUREONEOFfoulISbeginPROCESS(CLEAR,S0,S1,S2,S3,S4,S5)BEGINIFCLEAR='1'THENIFS5='1'THENlede(5)<='1';warns<='1';ELSIFS4='1'THENlede(4)<='1';warns<='1';ELSIFS3='1'THENlede(3)<='1';warns<='1';ELSIFS2='1'THENlede(2)<='1';warns<='1';ELSIFS1='1'THENlede(1)<='1';warns<='1';ELSIFS0='1'THENlede(0)<='1';warns<='1';ELSELEDe<="000000";warns<='0';ENDIF;ENDIF;endprocess;ENDONE;顯示模塊設(shè)計(jì):由于試驗(yàn)箱的限制,附加了動(dòng)態(tài)顯示模塊。模塊圖如圖8所示。圖8動(dòng)態(tài)顯示模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux18ISPORT(aa0,aa1,aa2:INSTD_LOGIC_VECTOR(3DOWNTO0);bb0,bb1,bb2:INSTD_LOGIC_VECTOR(3DOWNTO0);cc0,cc1,cc2:INSTD_LOGIC_VECTOR(3DOWNTO0);dd0,dd1,dd2:INSTD_LOGIC_VECTOR(3DOWNTO0);ee0,ee1,ee2:INSTD_LOGIC_VECTOR(3DOWNTO0);ff0,ff1,ff2:INSTD_LOGIC_VECTOR(3DOWNTO0);xx0,xx1,xx2:INSTD_LOGIC_VECTOR(3DOWNTO0);choice:STD_LOGIC_VECTOR(5DOWNTO0);g,h,i:INSTD_LOGIC;yyy:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDmux18;ARCHITECTURErt1OFmux18ISSIGNALsel:STD_LOGIC_VECTOR(2DOWNTO0);BEGINsel<=i&h&g;PROCESS(sel,choice)BEGINIF(choice="000001")THENIF(sel="000")THENyyy<=aa0;ELSIF(sel="001")THENyyy<=aa1;ELSIF(sel="010")THENyyy<=aa2;ENDIF;ELSIF(choice="000010")THENIF(sel="000")THENyyy<=bb0;ELSIF(sel="001")THENyyy<=bb1;ELSIF(sel="010")THENyyy<=bb2;ENDIF;ELSIF(choice="000100")THENIF(sel="000")THENyyy<=cc0;ELSIF(sel="001")THENyyy<=cc1;ELSIF(sel="010")THENyyy<=cc2;ENDIF;ELSIF(choice="001000")THENIF(sel="000")THENyyy<=dd0;ELSIF(sel="001")THENyyy<=dd1;ELSIF(sel="010")THENyyy<=dd2;ENDIF;ELSIF(choice="010000")THENIF(sel="000")THENyyy<=ee0;ELSIF(sel="001")THENyyy<=ee1;ELSIF(sel="010")THENyyy<=ee2;ENDIF;ELSIF(choice="100000")THENIF(sel="000")THENyyy<=ff0;ELSIF(sel="001")THENyyy<=ff1;ELSIF(sel="010")THENyyy<=ff2;ENDIF;ENDIF;IF(sel="011")THENyyy<=xx0;ELSIF(sel="100")THENyyy<=xx1;ELSIF(sel="101")THENyyy<=xx2;ENDIF;ENDPROCESS;ENDrt1;6、計(jì)分模塊:設(shè)置一個(gè)計(jì)分電路,每組開始設(shè)置100分,由主持人計(jì)分,答對一次加10分,答錯(cuò)一次減10分。模塊如圖9所示。圖9計(jì)分模塊圖LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYscoreISPORT(clr,sub,add,clk:INSTD_LOGIC;choose:INSTD_LOGIC_VECTOR(5DOWNTO0);aa0,aa1,aa2,bb0,bb1,bb2,cc0,cc1,cc2:OUTSTD_LOGIC_VECTOR(3DOWNTO0);dd0,dd1,dd2,ee0,ee1,ee2,ff0,ff1,ff2:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDscore;ARCHITECTURErt1OFscoreISBEGINPROCESS(choose,clk,add,sub)VARIABLEa1,a2:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEb1,b2:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEc1,c2:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEd1,d2:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEe1,e2:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEf1,f2:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIF(clr='1')THENa2:="0001";a1:="0000";--置100b2:="0001";b1:="0000";c2:="0001";c1:="0000";d2:="0001";d1:="0000";e2:="0001";e1:="0000";f2:="0001";f1:="0000";ELSIF(clk'EVENTANDclk='1')THENIF(add='1')THENIF(choose="000001")THENIF(a1="1001")THENa1:="0000";IF(a2="1001")THENa2:="0000";ELSEa2:=a2+'1';ENDIF;ELSEa1:=a1+'1';ENDIF;ELSIF(choose="000010")THENIF(b1="1001")THENb1:="0000";IF(b2="1001")THENb2:="0000";ELSEb2:=b2+'1';ENDIF;ELSEb1:=b1+'1';ENDIF;ELSIF(choose="000100")THENIF(c1="1001")THENc1:="0000";IF(c2="1001")THENc2:="0000";ELSEc2:=c2+'1';ENDIF;ELSEc1:=c1+'1';ENDIF;ELSIF(choose="001000")THENIF(d1="1001")THENd1:="0000";IF(d2="1001")THENd2:="0000";ELSEd2:=d2+'1';ENDIF;ELSEd1:=d1+'1';ENDIF;ELSIF(choose="010000")THENIF(e1="1001")THENe1:="0000";IF(e2="1001")THENe2:="0000";ELSEe2:=e2+'1';ENDIF;ELSEe1:=e1+'1';ENDIF;ELSIF(choose="100000")THENIF(f1="1001")THENf1:="0000";IF(f2="1001")THENf2:="0000";ELSEf2:=f2+'1';ENDIF;ELSEf1:=f1+'1';ENDIF;ENDIF;ELSIF(sub='1')THENIF(choose="000001")THENIF(a1="0000")THENIF(a2="0000")THENa1:="0000";a2:="0000";ELSEa1:="1001";a2:=a2-'1';ENDIF;ELSEa1:=a1-'1';ENDIF;ELSIF(choose="000010")THENIF(b1="0000")THENIF(b2="0000")THENb1:="0000";b2:="0000";ELSEb1:="1001";b2:=b2-'1';ENDIF;ELSEb1:=b1-'1';ENDIF;ELSIF(choose="000100")THENIF(c1="0000")THENIF(c2="0000")THENc1:="0000";c2:="0000";ELSEc1:="1001";c2:=c2-'1';ENDIF;ELSEc1:=c1-'1';ENDIF;ELSIF(choose="001000")THENIF(d1="0000")THENIF(d2="0000")THENd1:="0000";d2:="0000";ELSEd1:="1001";d2:=d2-'1';ENDIF;ELSEd1:=d1-'1';ENDIF;ELSIF(choose="010000")THENIF(e1="0000")THENIF(e2="0000")THENe1:="0000";e2:="0000";ELSEe1:="1001";e2:=e2-'1';ENDIF;ELSEe1:=e1-'1';ENDIF;ELSIF(choose="1000000")THENIF(f1="0000")THENIF(f2="0000")THENf1:="0000";f2:="0000";ELSEf1:="1001";f2:=f2-'1';ENDIF;ELSEf1:=f1-'1';ENDIF;ENDIF;ENDIF;ENDIF;aa2<=a2;aa1<=a1;aa0<="0000";bb2<=b2;bb1<=b1;bb0<="0000";cc2<=c2;cc1<=c1;cc0<="0000";dd2<=d2;dd1<=d1;dd0<="0000";ee2<=e2;ee1<=e1;ee0<="0000";ff2<=f2;ff1<=f1;ff0<="0000";ENDPROCESS;ENDrt1;(五)整體綜合模塊:將以上的模塊整合到一起,生成整體電路。整體電路圖如圖10所示。 圖10整體電路整體電路仿真圖,如圖11所示:圖11整體電路仿真圖結(jié)論VHDL是一種用普通文本形式設(shè)計(jì)數(shù)字系統(tǒng)的硬件描述語言,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,可以在任何文字處理軟件環(huán)境中編輯。除了含有許多具有硬件特征的語句外,其形式、描述風(fēng)格及語法十分類似于計(jì)算機(jī)高級語言。VHDL程序?qū)⒁豁?xiàng)工程設(shè)計(jì)項(xiàng)目(或稱設(shè)計(jì)實(shí)體)分成描述外部端口信號的可視部分和描述端口信號之間邏輯關(guān)系的內(nèi)部不可視部分,這種將設(shè)計(jì)項(xiàng)目分成內(nèi)、外兩個(gè)部分的概念是硬件描述語言(HDL)的基本特征。當(dāng)一個(gè)設(shè)計(jì)項(xiàng)目定義了外部界面(端口),在其內(nèi)部設(shè)計(jì)完成后,其他的設(shè)計(jì)就可以利用外部端口直接調(diào)用這個(gè)項(xiàng)目?;赩HDL語言設(shè)計(jì)的8路數(shù)字搶答器有其本身的優(yōu)點(diǎn),更利于新功能的開發(fā)。

參考文獻(xiàn)1.劉昌華等編著,《數(shù)字邏輯EDA設(shè)計(jì)與實(shí)踐》國防工業(yè)出版社,20062.譚會(huì)生等主編,《EDA技術(shù)及應(yīng)用》,西安電子科技大學(xué)出版社,20013.潘松等主編,《EDA技術(shù)實(shí)用教程》,科學(xué)出版社,20064.雷伏容主編,《VHDL電路設(shè)計(jì)》,清華大學(xué)出版社,20065.CharlesH.Roth等著,《數(shù)字系統(tǒng)設(shè)計(jì)與VHDL》,電子工業(yè)出版社6.\t"result2"丁建偉.《搶答器電路設(shè)計(jì)》[J].\t"result2"蘭州

溫馨提示

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

最新文檔

評論

0/150

提交評論