基于FPGA“乒乓球比賽游戲機”的設計
可編程邏輯器件FPGA以其開發周期短、成本低、功耗低、可靠性高等優勢,廣泛應用于通信、航空、醫療等領域,近年來在消費電子領域中的應用也日漸增加。為進一步挖掘FPGA在家庭娛樂如游戲機開發與應用中的巨大商機,介紹了一款以Altera公司FP-GA芯片為控制核心,附加少量外圍電路組成的乒乓球比賽游戲機。整個系統設計模塊劃分清晰:包括裁判端、選手端、控制端、顯示端及模擬乒乓球臺;功能齊全:包括發球權控制、犯規提示、局數比分顯示等,模擬實際乒乓球比賽相似程度高。采用了VHDL語言編程實現,在QuartusⅡ8.1集成環境下進行了模擬仿真,結果表明在設定的比賽規則下,游戲機運行正常,通過進一步優化可將其商品化,推入市場。
本文引用地址:http://www.104case.com/article/191845.htm
1 系統組成
乒乓球比賽游戲機的組成如圖1所示。比賽規則約定:五局三勝;11分一局;裁判發出比賽開始信號,觸發FPGA內部隨機數發生器模塊產生首次發球權方;比賽進行中,選手連續兩次獲得發球權后,發球權交予對方,如未獲發球權方發球,裁判端犯規音響電路鳴響;13個LED排列成行模擬乒乓球臺;點亮的LED模擬乒乓球,受FPGA控制從左到右或從右到左移動;比賽選手通過按鈕輸入模擬擊球信號,實現LED移位方向的控制;若發亮的LED運動在球臺中點至對方終點之間時,對方未能及時按下擊球按鈕使其向相反方向移動,即失去一分。
2 功能模塊設計
圖1中,基于FPGA設計的控制端為整個系統的核心,其內部主要由簡易隨機數發生器、發球權控制器、乒乓球位置控制器、甲乙方計分控制器、犯規音響控制器等模塊組成。整個控制端采用模塊化設計,先用VHDL語言編寫功能模塊,然后用頂層原理圖將各功能模塊連接起來。設計的難點在于協調各模塊工作,嚴格遵守各信號間時序關系。本系統采用1 kHz系統時鐘。
2.1 簡易隨機數發生器
比賽首次發球權由隨機數發生器產生的數據決定,其隨機性要求不嚴,因此,采用非常簡單的模式產生,即一旦FPGA上電,系統時鐘百分頻產生一方波信號square,當裁判閉合開始比賽開關產生start信號上升沿時,讀取此時square信號值作為隨機數發生器輸出randq。模塊仿真如圖2所示,結果滿足設計要求。此模塊設計時保證了square信號周期應遠大于start信號上升沿建立時間,保證隨機數據的正確讀取。
2.2 發球權控制器
發球權控制器的控制過程為:如果按下復位按鈕,發球權數碼管顯示8,否則,開始比賽開關閉合時,顯示隨機數發生器的值(0或1,0代表甲方、1代表乙方)。而在比賽中,為遵守發球權交換規則,設計甲乙雙方計分器總和信號sum_sc是不為0的偶數時(即計分總和最低位sum_sc0下降沿到來時),發球權數碼管顯示由0變為1或由1變為0。
評論