基于FPGA“乒乓球比賽游戲機”的設(shè)計-設(shè)計應(yīng)用_第1頁
基于FPGA“乒乓球比賽游戲機”的設(shè)計-設(shè)計應(yīng)用_第2頁
基于FPGA“乒乓球比賽游戲機”的設(shè)計-設(shè)計應(yīng)用_第3頁
基于FPGA“乒乓球比賽游戲機”的設(shè)計-設(shè)計應(yīng)用_第4頁
基于FPGA“乒乓球比賽游戲機”的設(shè)計-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯基于FPGA“乒乓球比賽游戲機”的設(shè)計-設(shè)計應(yīng)用可編程邏輯器件FPGA以其開發(fā)周期短、成本低、功耗低、可靠性高等優(yōu)勢,廣泛應(yīng)用于通信、航空、醫(yī)療等領(lǐng)域,近年來在消費電子領(lǐng)域中的應(yīng)用也日漸增加。為進一步挖掘FPGA在家庭娛樂如游戲機開發(fā)與應(yīng)用中的巨大商機,介紹了一款以Altera公司FP-GA芯片為控制,附加少量外圍電路組成的乒乓球比賽游戲機。整個系統(tǒng)設(shè)計模塊劃分清晰:包括裁判端、選手端、控制端、顯示端及模擬乒乓球臺;功能齊全:包括發(fā)球權(quán)控制、犯規(guī)提示、局數(shù)比分顯示等,模擬實際乒乓球比賽相似程度高。采用了VHDL語言編程實現(xiàn),在QuartusⅡ8.1集成環(huán)境下進行了模擬仿真,結(jié)果表明在設(shè)定的比賽規(guī)則下,游戲機運行正常,通過進一步優(yōu)化可將其商品化,推入市場。

1系統(tǒng)組成

乒乓球比賽游戲機的組成如圖1所示。比賽規(guī)則約定:五局三勝;11分一局;裁判發(fā)出比賽開始信號,觸發(fā)FPGA內(nèi)部隨機數(shù)發(fā)生器模塊產(chǎn)生首次發(fā)球權(quán)方;比賽進行中,選手連續(xù)兩次獲得發(fā)球權(quán)后,發(fā)球權(quán)交予對方,如未獲發(fā)球權(quán)方發(fā)球,裁判端犯規(guī)音響電路鳴響;13個LED排列成行模擬乒乓球臺;點亮的LED模擬乒乓球,受FPGA控制從左到右或從右到左移動;比賽選手通過按鈕輸入模擬擊球信號,實現(xiàn)LED移位方向的控制;若發(fā)亮的LED運動在球臺中點至對方終點之間時,對方未能及時按下?lián)羟虬粹o使其向相反方向移動,即失去一分。

2功能模塊設(shè)計

圖1中,基于FPGA設(shè)計的控制端為整個系統(tǒng)的,其內(nèi)部主要由簡易隨機數(shù)發(fā)生器、發(fā)球權(quán)控制器、乒乓球位置控制器、甲乙方計分控制器、犯規(guī)音響控制器等模塊組成。整個控制端采用模塊化設(shè)計,先用VHDL語言編寫功能模塊,然后用頂層原理圖將各功能模塊連接起來。設(shè)計的難點在于協(xié)調(diào)各模塊工作,嚴格遵守各信號間時序關(guān)系。本系統(tǒng)采用1kHz系統(tǒng)時鐘。

2.1簡易隨機數(shù)發(fā)生器

比賽首次發(fā)球權(quán)由隨機數(shù)發(fā)生器產(chǎn)生的數(shù)據(jù)決定,其隨機性要求不嚴,因此,采用非常簡單的模式產(chǎn)生,即一旦FPGA上電,系統(tǒng)時鐘百分頻產(chǎn)生一方波信號square,當裁判閉合開始比賽開關(guān)產(chǎn)生start信號上升沿時,讀取此時square信號值作為隨機數(shù)發(fā)生器輸出randq。模塊仿真如圖2所示,結(jié)果滿足設(shè)計要求。此模塊設(shè)計時保證了square信號周期應(yīng)遠大于start信號上升沿建立時間,保證隨機數(shù)據(jù)的正確讀取。

2.2發(fā)球權(quán)控制器

發(fā)球權(quán)控制器的控制過程為:如果按下復位按鈕,發(fā)球權(quán)數(shù)碼管顯示8,否則,開始比賽開關(guān)閉合時,顯示隨機數(shù)發(fā)生器的值(0或1,0代表甲方、1代表乙方)。而在比賽中,為遵守發(fā)球權(quán)交換規(guī)則,設(shè)計甲乙雙方計分器總和信號sum_sc是不為0的偶數(shù)時(即計分總和位sum_sc0下降沿到來時),發(fā)球權(quán)數(shù)碼管顯示由0變?yōu)?或由1變?yōu)?。

此模塊設(shè)計中,發(fā)球權(quán)數(shù)碼管的信號控制受多個時鐘的控制,即開始比賽開關(guān)start和計分值sum_sc0信號,這在VHDL編程語言中無法用一個進程實現(xiàn),必須將兩個信號組合成一個時鐘信號,并統(tǒng)一兩個時鐘的觸發(fā)沿。因此時鐘觸發(fā)方式如圖3所示的f_en信號。為滿足這種時序要求,借助計分總和次低位sum_sc1信號設(shè)計entitysum_sc_mod2,由于start和sum_sc1的頻率都遠低于系統(tǒng)時鐘信號clk頻率,則可借助clk高頻信號捕捉其邊沿產(chǎn)生新的時鐘信號f_en,并產(chǎn)生其計數(shù)值,仿真波形如圖4(a)所示。為保證發(fā)球權(quán)數(shù)碼管顯示正確,設(shè)計entitvled_f_ctl在f_en下降沿時,根據(jù)其計數(shù)值產(chǎn)生相應(yīng)的數(shù)碼管輸出信號led_f,仿真波形如圖4(b)所示。

發(fā)球權(quán)控制器的VHDL程序如下:

2.3乒乓球位置控制、甲乙計分、犯規(guī)音響控制

乒乓球位置控制電路為FPGA控制端的,依據(jù)比賽規(guī)則,采用了Mealy型狀態(tài)機來實現(xiàn),大大降低了設(shè)計難度。狀態(tài)機共定義了7個狀態(tài),各狀態(tài)定義如表1所示,狀態(tài)轉(zhuǎn)換如圖5所示,轉(zhuǎn)換條件如表2所示,具體程序如下。

3頂層模塊仿真測試

由于篇幅限制,本系統(tǒng)中的分頻器、譯碼器等常用模塊的設(shè)計就不再此贅述,終頂層原理圖設(shè)計如圖6所示,仿真波形如圖7所示,分析波形可知,圖中開始比賽信號產(chǎn)生后,首次發(fā)球權(quán)方為乙方,甲方發(fā)球造成犯規(guī)音響電路鳴響,即speaker信號為高電平,然后乙方發(fā)球,乒乓球依次移位,甲方接球成功后乙方未接球成功,甲方得分,cnta信號為“0110000”,注意,此處輸出為驅(qū)動數(shù)碼管輸出信號,代表數(shù)字“1”。通過仿真可知,該系統(tǒng)設(shè)計滿足游戲機比賽規(guī)則要求。

4結(jié)語

采用VHDL語言編程,基于FPGA成功設(shè)計了一款乒乓球比賽游戲機,通過仿真驗證可知,結(jié)果滿足設(shè)計需求,系統(tǒng)具有發(fā)球權(quán)控制、自動計分

溫馨提示

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

評論

0/150

提交評論