EDA課程設(shè)計(jì)-乒乓球游戲電路設(shè)計(jì)(雙打)_第1頁(yè)
EDA課程設(shè)計(jì)-乒乓球游戲電路設(shè)計(jì)(雙打)_第2頁(yè)
EDA課程設(shè)計(jì)-乒乓球游戲電路設(shè)計(jì)(雙打)_第3頁(yè)
EDA課程設(shè)計(jì)-乒乓球游戲電路設(shè)計(jì)(雙打)_第4頁(yè)
EDA課程設(shè)計(jì)-乒乓球游戲電路設(shè)計(jì)(雙打)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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ì)。首先給出狀態(tài)機(jī)的設(shè)計(jì),然后據(jù)此給出完成控制電路所需要的設(shè)計(jì)模塊;給出硬件編程語(yǔ)言的實(shí)現(xiàn),并進(jìn)行仿真;給出下載電路的指導(dǎo)教師簽名: I 1 3 3 3 3 4 6 8 10 12 假設(shè)發(fā)球后丙或丁沒(méi)有提前擊球----規(guī)定球移動(dòng)到對(duì)方第一個(gè)發(fā)光二極管時(shí)允許擊球,那么狀態(tài)機(jī)從“第一盞燈亮狀態(tài)〞轉(zhuǎn)移到“球向丙丁移動(dòng)狀態(tài)〞。假設(shè)在“球向丙丁移動(dòng)狀否否否球向丙丁移 球向丙丁移 球向甲乙移動(dòng)該乒乓球游戲機(jī)的設(shè)計(jì)主要包括的模塊與內(nèi)容有:乒乓球游戲機(jī)實(shí)體的設(shè)計(jì),游戲機(jī)編程的實(shí)現(xiàn),記分譯碼器的設(shè)計(jì)以及構(gòu)造體的設(shè)計(jì)。直接對(duì)狀態(tài)機(jī)進(jìn)行描述,所有的狀態(tài)均可設(shè)計(jì)該乒乓球游戲機(jī)的輸入與輸出端口。首先考慮輸入端口,一般應(yīng)該設(shè)置一個(gè)異步置‘1’分別表示甲乙丙丁的發(fā)球;四個(gè)個(gè)擊球輸入端hit1,hit2,hit3和hit別表示甲丙乙丁擊球;一個(gè)開(kāi)始游戲按鈕startbutton,處于邏輯‘1’表示可以游戲;還得輸出一個(gè)高電平,可以使發(fā)光二極管點(diǎn)亮;另外,要直觀地表示雙方的得分,就得用到4個(gè)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)〕;在整個(gè)程序中,狀態(tài)機(jī)起的是中央控制器的作用,由它控制的信號(hào)來(lái)影響整個(gè)程序中的其他相關(guān)局部,如記分局部,發(fā)光二極管局部。乒乓球游戲機(jī)中有兩個(gè)計(jì)數(shù)器count1和count2,分別記憶甲乙和丙丁的得分,用發(fā)光二極管的輪流發(fā)光表示球的移動(dòng)軌跡。狀態(tài)機(jī)i<=0;count1<"00000";whenwaitserve=>--進(jìn)程處于等待發(fā)球when"00〞or〞01〞=>i<=1;state<=light1on;when"10〞or〞11〞=>i<=8;state<=light8on;whenlight8on=>--進(jìn)程處于第八盞燈亮whenballmoveto1=>--進(jìn)程處于球向丙丁移動(dòng)whenballmoveto2=>--進(jìn)程處于球向甲乙移動(dòng)ount1<=count1+1;stat七段譯碼器是在數(shù)學(xué)電路設(shè)計(jì)中經(jīng)常用到的顯示電路。所謂七段譯碼器,其實(shí)是由7段發(fā)光二極管組成的用于顯示數(shù)字的器件。記分譯碼器〔mydecoder〕:由于記分需要顯示出來(lái),所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è)計(jì)中可以看到,控制整個(gè)乒乓球游戲機(jī)運(yùn)轉(zhuǎn)的就是狀態(tài)機(jī)進(jìn)程,它隊(duì)各個(gè)外圍局部起控制作用。它是整個(gè)程序的核心,起到一個(gè)中心控制器的作用。而外圍的局部,比二極管使之點(diǎn)亮,這樣就可以通過(guò)發(fā)光二極管模擬乒乓球的運(yùn)動(dòng)軌跡??梢钥吹剑诩谆蛞易兊?,而七段譯碼器隨之改變。在圖4.5中可以清楚地看到球的移動(dòng)軌跡。在不允許甲乙位置,其中一只點(diǎn)亮的LED指示球的當(dāng)前位置,點(diǎn)亮的LED依此從左滿21分為1局。甲乙和丙丁雙方各設(shè)一個(gè)發(fā)光二極管,表示擁有發(fā)球球的位置,并能自動(dòng)裁判和記分的裝置。在具體設(shè)計(jì)過(guò)程中還需要改良的是控制系統(tǒng)的糾錯(cuò)這次課程設(shè)計(jì)總的說(shuō)來(lái)收獲很大。在兩位同學(xué)的幫助下才順利完成此次課題。此外,也這次課程設(shè)計(jì)雖然短暫。但卻是我獨(dú)立自主的從設(shè)計(jì)電路到得出結(jié)論。書(shū)本上的內(nèi)容第一次完完全全的綜合運(yùn)用。在設(shè)計(jì)過(guò)程中。遇到了書(shū)本中不曾學(xué)到的知識(shí),經(jīng)過(guò)請(qǐng)教老師和[2]劉艷.EDA技術(shù)在數(shù)字系統(tǒng)電路設(shè)計(jì)實(shí)驗(yàn)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探[7]潭會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,[8]王振紅.VHDL數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程[M].北京:機(jī)械工業(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--進(jìn)程開(kāi)始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=>--進(jìn)程處于等待發(fā)球when("01")=>i<=1;state<=light1when("10")=>i<=8;state<=light8if(hit2='1')or(hit4='1')thencount1<=count1+1;state<=whenlight8on=>--進(jìn)程處于第八盞燈亮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. 本站所有資源如無(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)論