基于VHDL的智力競(jìng)賽搶答器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于VHDL的智力競(jìng)賽搶答器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于VHDL的智力競(jìng)賽搶答器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于VHDL的智力競(jìng)賽搶答器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于VHDL的智力競(jìng)賽搶答器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..摘要本課程設(shè)計(jì)主要內(nèi)容是利用EDA技術(shù)設(shè)計(jì)一個(gè)可容納四組選手的智力競(jìng)賽搶答器,全面熟悉、掌握VHDL語(yǔ)言基本知識(shí),掌握利用VHDL語(yǔ)言對(duì)常用的組合邏輯電路和時(shí)序邏輯電路編程。本課程設(shè)計(jì)的開(kāi)發(fā)仿真工具是MAX+plusII,采用自頂向下、逐層細(xì)化的設(shè)計(jì)方法設(shè)計(jì)整套系統(tǒng),頂層模塊用圖形描述,底層文件用VHDL語(yǔ)言描述。通過(guò)波形仿真,實(shí)現(xiàn)了智力競(jìng)賽搶答器的基本功能,達(dá)到了設(shè)計(jì)要求。關(guān)鍵字智力競(jìng)賽搶答器;EDA技術(shù);VHDL;MAX+plusII;自頂向下1引言20世紀(jì)90年代,引進(jìn)數(shù)字系統(tǒng)設(shè)計(jì)方法發(fā)生突破性變革的技術(shù)是VHDL〔VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,超高速集成電路硬件描述語(yǔ)言。它是一種IEEE-1076標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,主要用于算法級(jí)、寄存器級(jí)到門(mén)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模,已成為電子設(shè)計(jì)自動(dòng)化〔EDA的一種重要手段。本課程設(shè)計(jì)的主要目的是:全面熟悉、掌握VHDL語(yǔ)言基本知識(shí),掌握利用VHDL語(yǔ)言對(duì)常用的的組合邏輯電路和時(shí)序邏輯電路編程,把編程和實(shí)際結(jié)合起來(lái),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)設(shè)計(jì)綜合電路的能力,養(yǎng)成編寫(xiě)文檔資料的習(xí)慣和規(guī)范編程的思想。2智力競(jìng)賽搶答器的主要功能設(shè)計(jì)一個(gè)4人參加的智力競(jìng)賽搶答計(jì)時(shí)器。該系統(tǒng)具有回答問(wèn)題時(shí)間控制的功能,要求回答問(wèn)題時(shí)間小于等于100秒<顯示為0~99>,時(shí)間顯示采用倒計(jì)時(shí)方式。當(dāng)達(dá)到限定時(shí)間時(shí),發(fā)出聲響以示警告;當(dāng)有某一參賽者首先按下?lián)尨痖_(kāi)關(guān)時(shí),相應(yīng)顯示燈亮并伴有聲響,此時(shí)搶答器不再接受其他輸入信號(hào)。智力競(jìng)賽搶答器的功能分塊如圖2-1所示。頂層文件QDQ頂層文件QDQdaojishi模塊sanxuanyi模塊pianxuan模塊xianshi模塊jianbie模塊suocunqi模塊zhuanhuan模塊圖2-1智力競(jìng)賽搶答器功能模塊劃分圖該智力競(jìng)賽搶答器分為七個(gè)模塊,分別為:鑒別模塊、鎖存器模塊、轉(zhuǎn)換模塊、選擇輸出模塊、倒計(jì)時(shí)模塊、片選模塊和顯示模塊。3主要功能的實(shí)現(xiàn)3.1鑒別功能鑒別模塊jianbie如圖3-1所示,輸入信號(hào)CLK和CLR,若CLR="0",表示無(wú)人按鍵,輸出信號(hào)Q為0;若CLR="1",表示有人按鍵,輸出信號(hào)Q為1。 圖3-1jianbie模塊 鑒別模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYjianbieISPORT<CLK,CLR:INSTD_LOGIC;Q:OUTSTD_LOGIC>;ENDjianbie;ARCHITECTUREjianbie_mkOFjianbieISBEGINPROCESS<CLK,CLR>BEGINIFCLR='0'THEN--利用IF_THEN_ELSE語(yǔ)句Q<='0';ELSIFCLK'EVENTANDCLK='0'THEN--檢測(cè)時(shí)鐘下降沿Q<='1';ENDIF;ENDPROCESS;ENDjianbie_mk;鑒別模塊程序調(diào)試波形如圖3-2所示,給CLK一個(gè)時(shí)鐘信號(hào),在某一時(shí)刻開(kāi)始賦給CLR一個(gè)高電平,則從下一個(gè)時(shí)鐘下降沿開(kāi)始Q輸出高電平。圖3-2鑒別模塊仿真波形圖3.2鎖存器功能鎖存器模塊suocunqi如圖3-3所示,鎖存器對(duì)四位答題者的結(jié)果進(jìn)行鎖存,并將其賦給輸出信號(hào)Q1,Q2,Q3,Q4。圖3-3suocunqi模塊鎖存器模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsuocunqiISPORT<D1,D2,D3,D4:INSTD_LOGIC;CLK,CLR:INSTD_LOGIC;Q1,Q2,Q3,Q4,ALM:OUTSTD_LOGIC>;ENDsuocunqi;ARCHITECTUREsuocunqi_mkOFsuocunqiISBEGINPROCESS<CLK>BEGINIFCLR='0'THENQ1<='0';Q2<='0';Q3<='0';Q4<='0';ALM<='0';ELSIFCLK'EVENTANDCLK='1'THEN--檢測(cè)CLR為高電平,則有人搶答Q1<=D1;Q2<=D2;Q3<=D3;Q4<=D4;ALM<='1';ENDIF;ENDPROCESS;ENDsuocunqi_mk;鎖存器模塊程序調(diào)試波形如圖3-4所示,給CLK一個(gè)時(shí)鐘信號(hào),在某一時(shí)刻開(kāi)始賦給CLR一個(gè)高電平,則從下一個(gè)時(shí)鐘上升沿開(kāi)始:將D1賦給Q1、將D2賦給Q2、將D3賦給Q3、將D4賦給Q4,并輸出ALM為1;在CLR為低電平時(shí)無(wú)輸出。圖3-4鎖存器模塊仿真波形圖3.3轉(zhuǎn)換功能轉(zhuǎn)換模塊zhuanhuan如圖3-5所示,把搶答結(jié)果轉(zhuǎn)化為一個(gè)四位二進(jìn)制數(shù),表示搶答者的編號(hào)。圖3-5zhuanhuan模塊轉(zhuǎn)換模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYzhuanhuanISPORT<D1,D2,D3,D4:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR<3DOWNTO0>>;ENDzhuanhuan;ARCHITECTUREzhuanhuan_mkOFzhuanhuanISBEGINPROCESS<D1,D2,D3,D4>VARIABLETMP:STD_LOGIC_VECTOR<3DOWNTO0>;BEGINTMP:=D1&D2&D3&D4;CASETMPISWHEN"1000"=>Q<="0001";--類似于真值表的CASE語(yǔ)句WHEN"0100"=>Q<="0010";WHEN"0010"=>Q<="0011";WHEN"0001"=>Q<="0100";WHENOTHERS=>Q<="0000";ENDCASE;ENDPROCESS;ENDzhuanhuan_mk;轉(zhuǎn)換模塊程序調(diào)試波形如圖3-6所示,通過(guò)此模塊將D1D2D3D4的輸入結(jié)果轉(zhuǎn)換成Q1Q2Q3Q4這種四位二進(jìn)制數(shù),當(dāng)D1=‘1’,其他三位為‘0’時(shí),輸出Q為"0001";當(dāng)D2=‘1’,其他三位為‘0’時(shí),輸出Q為"0010";當(dāng)D3=‘1’,其他三位為‘0’時(shí),輸出Q為"0011";當(dāng)D4=‘1’,其他三位為‘0’時(shí),輸出Q為"0100";其他情況下,輸出Q為"0000"。圖3-6轉(zhuǎn)換模塊仿真波形圖3.4選擇輸出功能選擇輸出模塊sanxuanyi如圖3-7所示,用兩個(gè)四位二進(jìn)制數(shù)表示倒計(jì)時(shí),其中D1為高位,D2為低位,用一個(gè)四位二進(jìn)制數(shù)D3表示搶答號(hào),輸出信號(hào)Q1和Q2,其中Q1和Q2作為顯示模塊中數(shù)碼管的輸入值。通過(guò)SEL的值控制Q1和Q2輸出搶答號(hào)或者倒計(jì)時(shí),當(dāng)SEL=‘0’時(shí)為輸出倒計(jì)時(shí)狀態(tài),Q1代表高位,Q2代表低位;當(dāng)SEL=‘1’時(shí),為顯示搶答號(hào)狀態(tài),Q1輸出為‘0’,Q2的輸出代表?yè)尨鹫呔幪?hào)。圖3-7sanxuanyi模塊選擇輸出模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsanxuanyiISPORT<SEL:INSTD_LOGIC;D1,D2,D3:INSTD_LOGIC_VECTOR<3DOWNTO0>;Q1,Q2:OUTSTD_LOGIC_VECTOR<3DOWNTO0>>;ENDsanxuanyi;ARCHITECTUREsanxuanyi_mkOFsanxuanyiISBEGINPROCESS<SEL,D1,D2,D3>BEGINIFSEL='1'THENQ1<="0000";Q2<=D3;ELSEQ1<=D1;Q2<=D2;ENDIF;ENDPROCESS;ENDsanxuanyi_mk;選擇輸出模塊程序調(diào)試波形如圖3-8所示,由SEL控制Q的輸出,當(dāng)SEL為‘1’時(shí),將D3賦給Q2,"0000"賦給Q1,輸出結(jié)果代表?yè)尨鹫呔幪?hào);當(dāng)SEL為‘0’時(shí),將D2賦給Q2,D1賦給Q1,輸出結(jié)果代表倒計(jì)時(shí)。圖3-8選擇輸出模塊仿真波形圖3.5倒計(jì)時(shí)功能倒計(jì)時(shí)模塊daojishi如圖3-9所示,用兩個(gè)四位二進(jìn)制數(shù)表示倒計(jì)時(shí),定義變量HH,LL,由時(shí)鐘CLK和使能信號(hào)EN控制,其中EN的值由鎖存器模塊中的ALM控制。當(dāng)?shù)褂?jì)時(shí)至HH==0,LL==0時(shí),發(fā)出聲音停止計(jì)時(shí),輸出H〔XXX,L<XXX>。圖3-9daojishi模塊倒計(jì)時(shí)模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdaojishiISPORT<CLK,EN:INSTD_LOGIC;H,L:OUTSTD_LOGIC_VECTOR<3DOWNTO0>;SOUND:OUTSTD_LOGIC>;ENDdaojishi;ARCHITECTUREdaojishi_mkOFdaojishiISBEGINPROCESS<CLK,EN>VARIABLEHH,LL:STD_LOGIC_VECTOR<3DOWNTO0>;BEGINIFCLK'EVENTANDCLK='1'THENIFEN='1'THEN--EN=1驅(qū)動(dòng)倒計(jì)時(shí)模塊開(kāi)始倒計(jì)時(shí)SOUND<='0';HH:="1001";LL:="1001";ELSIFLL=0THENIFHH=0THENSOUND<='1';--倒計(jì)時(shí)至0時(shí),輸出超時(shí)報(bào)警信號(hào)ELSELL:="1001";HH:=HH-1;ENDIF;ELSELL:=LL-1;ENDIF;ENDIF;H<=HH;L<=LL;ENDPROCESS;ENDdaojishi_mk;倒計(jì)時(shí)模塊程序調(diào)試波形如圖3-10所示,當(dāng)EN為"1"時(shí),在時(shí)鐘上升沿將"1001"賦給H和L,準(zhǔn)備進(jìn)入倒計(jì)時(shí);從EN為"0"且時(shí)鐘的上升沿到來(lái)時(shí),H和L的值開(kāi)始以逐漸遞減,即從99倒計(jì)時(shí)到0,同時(shí)倒計(jì)時(shí)至0時(shí),輸出超時(shí)報(bào)警信號(hào)SOUND=1。圖3-10倒計(jì)時(shí)模塊仿真波形圖3.6片選功能片選模塊pianxuan如圖3-11所示,該模塊用于控制選擇輸出模塊輸出倒計(jì)時(shí)或者搶答號(hào),其中EN1的值由鎖存器模塊中的ALM控制。圖3-11pianxuan模塊片選模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYpianxuanISPORT<CLK,EN1:INSTD_LOGIC;A:OUTSTD_LOGIC>;ENDpianxuan;ARCHITECTUREpianxuan_mkOFpianxuanISBEGINPROCESS<CLK,EN1>BEGINIFEN1='0'THEN--利用IF_THEN_ELSE語(yǔ)句A<='0';ELSIFCLK'EVENTANDCLK='1'THEN--檢測(cè)時(shí)鐘上升沿A<='1';ENDIF;ENDPROCESS;ENDpianxuan_mk;片選模塊程序調(diào)試波形如圖3-12所示,EN1=’0’時(shí),將‘0’賦給A;當(dāng)EN1=’1’時(shí),在CLK時(shí)鐘信號(hào)的下一個(gè)時(shí)鐘上升沿將‘1’賦給A。圖3-12片選模塊仿真波形圖3.7顯示功能顯示模塊如圖3-13所示,將所有進(jìn)程中的數(shù)值轉(zhuǎn)換成七位二進(jìn)制數(shù)。圖3-13xianshi模塊顯示模塊源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYxianshiISPORT<D:INSTD_LOGIC_VECTOR<3DOWNTO0>;Q:OUTSTD_LOGIC_VECTOR<6DOWNTO0>>;ENDxianshi;ARCHITECTURExianshi_mkOFxianshiISBEGINPROCESS<D>BEGINCASEDISWHEN"0000"=>Q<="0111111";WHEN"0001"=>Q<="0000110";WHEN"0010"=>Q<="1011011";WHEN"0011"=>Q<="1001111";WHEN"0100"=>Q<="1100110";WHEN"0101"=>Q<="1101101";WHEN"0110"=>Q<="1111101";WHEN"0111"=>Q<="0000111";WHEN"1000"=>Q<="1111111";WHEN"1001"=>Q<="1101111";WHENOTHERS=>Q<="0000000";ENDCASE;ENDPROCESS;ENDxianshi_mk;顯示模塊程序仿真波形如圖3-14所示,將輸入信號(hào)D轉(zhuǎn)變成能在七段數(shù)碼管上顯示的七位二進(jìn)制數(shù)。圖3-14顯示模塊仿真波形圖3.8頂層模塊各模塊連接后形成頂層文件的電路圖如圖3-15所示

溫馨提示

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

評(píng)論

0/150

提交評(píng)論