EDA課程設(shè)計-乒乓球游戲電路設(shè)計(雙打)_第1頁
EDA課程設(shè)計-乒乓球游戲電路設(shè)計(雙打)_第2頁
EDA課程設(shè)計-乒乓球游戲電路設(shè)計(雙打)_第3頁
EDA課程設(shè)計-乒乓球游戲電路設(shè)計(雙打)_第4頁
EDA課程設(shè)計-乒乓球游戲電路設(shè)計(雙打)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

乒乓球游戲電路的設(shè)計。首先給出狀態(tài)機的設(shè)計,然后據(jù)此給出完成控制電路所需要的設(shè)計模塊;給出硬件編程語言的實現(xiàn),并進行仿真;給出下載電路的指導(dǎo)教師簽名: I 1 3 3 3 3 4 6 8 10 12 假設(shè)發(fā)球后丙或丁沒有提前擊球----規(guī)定球移動到對方第一個發(fā)光二極管時允許擊球,那么狀態(tài)機從“第一盞燈亮狀態(tài)〞轉(zhuǎn)移到“球向丙丁移動狀態(tài)〞。假設(shè)在“球向丙丁移動狀否否否球向丙丁移 球向丙丁移 球向甲乙移動該乒乓球游戲機的設(shè)計主要包括的模塊與內(nèi)容有:乒乓球游戲機實體的設(shè)計,游戲機編程的實現(xiàn),記分譯碼器的設(shè)計以及構(gòu)造體的設(shè)計。直接對狀態(tài)機進行描述,所有的狀態(tài)均可設(shè)計該乒乓球游戲機的輸入與輸出端口。首先考慮輸入端口,一般應(yīng)該設(shè)置一個異步置‘1’分別表示甲乙丙丁的發(fā)球;四個個擊球輸入端hit1,hit2,hit3和hit別表示甲丙乙丁擊球;一個開始游戲按鈕startbutton,處于邏輯‘1’表示可以游戲;還得輸出一個高電平,可以使發(fā)光二極管點亮;另外,要直觀地表示雙方的得分,就得用到4個useieee.std_logic_11useieee.std_logic_ariuseieee.std_logic_unsigned.all;//引用必要的entitypingponggamehit1,hit2,hit3,hit4a,b:intstd_logic;--甲乙和丙丁的擊Llight:outstd_logiscore11,score12,score21,score22:outstd_logic_vector(1to7)〕;在整個程序中,狀態(tài)機起的是中央控制器的作用,由它控制的信號來影響整個程序中的其他相關(guān)局部,如記分局部,發(fā)光二極管局部。乒乓球游戲機中有兩個計數(shù)器count1和count2,分別記憶甲乙和丙丁的得分,用發(fā)光二極管的輪流發(fā)光表示球的移動軌跡。狀態(tài)機i<=0;count1<"00000";whenwaitserve=>--進程處于等待發(fā)球when"00〞or〞01〞=>i<=1;state<=light1on;when"10〞or〞11〞=>i<=8;state<=light8on;whenlight8on=>--進程處于第八盞燈亮whenballmoveto1=>--進程處于球向丙丁移動whenballmoveto2=>--進程處于球向甲乙移動ount1<=count1+1;stat七段譯碼器是在數(shù)學(xué)電路設(shè)計中經(jīng)常用到的顯示電路。所謂七段譯碼器,其實是由7段發(fā)光二極管組成的用于顯示數(shù)字的器件。記分譯碼器〔mydecoder〕:由于記分需要顯示出來,所useieee.std_logic_11useieee.std_logic_ariuseieee.std_logic_unsingnport(binaryin:intstd_logbcdout1:outstd_logic_vector(1to7);--七段譯bcdout2:outstd_logiwhen"00000"=>bcdout1<="1111110";bcdout2<="1111110when"00001"=>bcdout1<="1111110";bcdout2<="0110000when"00010"=>bcdout1<="1111110";bcdout2<="1101101when"00011"=>bcdout1<="1111110";bcdout2<="1111001when"00100"=>bcdout1<="1111110";bcdout2<="0110011when"00101"=>bcdout1<="1111110";bcdout2<="1011011when"00110"=>bcdout1<="1111110";bcdout2<="1011111when"00111"=>bcdout1<="1111110";bcdout2<="1110000when"01000"=>bcdout1<="1111110";bcdout2<="1111111when"01001"=>bcdout1<="1111110";bcdout2<="1111011when"01010"=>bcdout1<="0110000";bcdout2<="1111110when"01011"=>bcdout1<="0110000";bcdout2<="0110000when"00000"=>bcdout1<="0110000";bcdout2<="1101101when"01100"=>bcdout1<="0110000";bcdout2<="1111001when"01101"=>bcdout1<="0110000";bcdout2<="0110011when"01111"=>bcdout1<="0110000";bcdout2<="1011011when"10000"=>bcdout1<="0110000";bcdout2<="1011111when"10001"=>bcdout1<="0110000";bcdout2<="1110000when"10010"=>bcdout1<="0110000";bcdout2<="1111111when"10011"=>bcdout1<="0110000";bcdout2<="1111011when"10100"=>bcdout1<="1101101";bcdout2<="1111110when"10101"=>bcdout1<="1101101";bcdout2<="0110000whenothers=>bcdout1<="1101101";bcdout2<="1111110useieee.std_logic_11useieee.std_logic_ariuseieee.std_logic_unsignport(reset1,clk1:instred1,red2,green1,green2:insLlight:outstd_logiscore11,score12,score21,score22:outstd_logicstartbutton,hit1,hit2,himap(count1=>d,count2=>e,hit1=>red1,hit2=>green1,hit3=>red2,hit4=>green2,clk=startbutton=>lopen,serve=>fire,reset=>r從構(gòu)造體設(shè)計中可以看到,控制整個乒乓球游戲機運轉(zhuǎn)的就是狀態(tài)機進程,它隊各個外圍局部起控制作用。它是整個程序的核心,起到一個中心控制器的作用。而外圍的局部,比二極管使之點亮,這樣就可以通過發(fā)光二極管模擬乒乓球的運動軌跡??梢钥吹?,在甲或乙變到1,而七段譯碼器隨之改變。在圖4.5中可以清楚地看到球的移動軌跡。在不允許甲乙位置,其中一只點亮的LED指示球的當(dāng)前位置,點亮的LED依此從左滿21分為1局。甲乙和丙丁雙方各設(shè)一個發(fā)光二極管,表示擁有發(fā)球球的位置,并能自動裁判和記分的裝置。在具體設(shè)計過程中還需要改良的是控制系統(tǒng)的糾錯這次課程設(shè)計總的說來收獲很大。在兩位同學(xué)的幫助下才順利完成此次課題。此外,也這次課程設(shè)計雖然短暫。但卻是我獨立自主的從設(shè)計電路到得出結(jié)論。書本上的內(nèi)容第一次完完全全的綜合運用。在設(shè)計過程中。遇到了書本中不曾學(xué)到的知識,經(jīng)過請教老師和[2]劉艷.EDA技術(shù)在數(shù)字系統(tǒng)電路設(shè)計實驗中的應(yīng)用[J].實驗室研究與探[7]潭會生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,[8]王振紅.VHDL數(shù)字電路設(shè)計與應(yīng)用實踐教程[M].北京:機械工業(yè)出版社,useieee.std_logic_arith.aluseieee.std_logic_unsigned.alport(reset1,clk1:instd_logic;red1,red2,green1,green2:instd_logfire:instd_logic_vectoLlight:outstd_logic_vector(1toscore11,score12,score21,score22:outstd_logic_vectarchitecturegameofyingisstartbutton,hit1,hit2,hit3,hit4:count1,count2:bufferport(binaryin:instd_lobcdout1:outstd_logic_vector(1signald,e:std_logic_vector(4beginportmap(count1=>d,count2=>e,hit1=>red1,hit2=>green1,hit3=>red2,hit4=>green2,clk=>clk1,startbutton=>lopen,serve=>fire,reset=>reset1,liu2:mydecoderportmap(binaryin=>d,bcdout1=>scoru3:mydecoderportmap(binaryin=>e,bcdout1=>scorend;useieee.std_logic_unsigned.alstartbutton,hit1,hit2,hit3,hit4:count1,count2:bufferarchitectureoneofpingponggameistypepingponggameis(waitserve,light1on,ballmoveallow24hit,light8on,ballmoveto1,albeginprocess(reset,hit1,hit2,hit3,hit4,clk,a,b,i)begin--進程開始ifreset='1'then--異步置位i<=0;count1<="00000";count2<="00000";a<elsifclk'eventandclk='1'thenifcount1="10101"orcount2="10101"theni<=0;count1<="00000";count2<elsifstartbutton='0'theni<=0;count1<="00000";count2<whenwaitserve=>--進程處于等待發(fā)球when("01")=>i<=1;state<=light1when("10")=>i<=8;state<=light8if(hit2='1')or(hit4='1')thencount1<=count1+1;state<=whenlight8on=>--進程處于第八盞燈亮if(hit1='1')or(hit3='1')thencount2<=count2+1;state<=whenballmoveto1=>--if(hit1='1')or(hit3='1')thencount2<=count2+1;state<=elsifi=2theni<=1;whenballmoveto2=>--if(hit2='1')or(hit4='1')thencount1<=count1+1;state<=elsifi=7theni<=8;whenallow13hit=>--if(hit1='1')or(hit3='1')theni<=2;elsif(hit3='1')and(a=1)theni<=2;whenallow24hit=>--if(hit2='1')and(b=0)theni<=7;b<=1;elsif(hit4='1')and(b=1)theni<=2;b<=0;dddddprocess;light<="10000000"whenuseieee.std_logic_arith.aluseieee.std_logic_unsigned.alport(binaryin:instd_lobcdout1:outstd_logic_vector(1architecturemofmydecoderissignaltembinaryin:std_logic_vectobeginprocess(binaryin)beginwhen"00000"=>bcdout1<="1111110";bcdout2<="111111when"00001"=>bcdout1<="1111110";bcdout2<="011000when"00010"=>bcdout1<="1111110";bcdout2<="110110when"00011"=>bcdout1<="1111110";bcdout2<="111100when"00100"=>bcdout1<="1111110";bcdout2<="011001when"00101"=>bcdout1<="1111110";bcdout2<="101101when"00110"=>bcdout1<="1111110";bcdout2<="101111when"00111"=>bcdout1<="1111110";bcdout2<="111000when"01000"=>bcdout1<="1111110";bcdo

溫馨提示

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

評論

0/150

提交評論