亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA 的貪吃蛇游戲設(shè)計與實現(xiàn)

        2020-07-29 06:40:20呂兆承權(quán)循忠
        通化師范學(xué)院學(xué)報 2020年8期
        關(guān)鍵詞:游戲信號系統(tǒng)

        李 營,呂兆承,陳 帥,權(quán)循忠

        當(dāng)前硬件游戲?qū)δ艿囊笤絹碓綇?fù)雜,傳統(tǒng)硬件游戲系統(tǒng)易被盜版且功能不易拓展,已經(jīng)難以適應(yīng)市場對硬件設(shè)計的要求.可編程邏輯器件FPGA 具有高速并行計算、可編程、易拓展等優(yōu)點,在智能家居等方面得到廣泛地應(yīng)用[1-3],若采用帶有加密功能的FPGA 芯片實現(xiàn)游戲機平臺設(shè)計,可避免軟件游戲易受到黑客攻擊的問題,且功能易拓展.鑒于此,本文根據(jù)PS2 鍵盤原理和VGA 時序顯示原理,利用層次化建模思想設(shè)計硬件貪吃蛇游戲系統(tǒng).

        1 貪吃蛇游戲系統(tǒng)工作原理

        1.1 游戲設(shè)計思路

        本系統(tǒng)選用Altera 公司的鋯石Cyclone IV系列EP4C6E10F17C8 開發(fā)板設(shè)計實現(xiàn)貪吃蛇游戲[4],系統(tǒng)由PS2 鍵盤接口、VGA 接口、FPGA芯片等構(gòu)成.設(shè)計時將PS2 鍵盤與系統(tǒng)的PS2接口連接,將VGA 接口連接到一臺顯示器.顯示器上有一自動移動的“蛇”,通過PS2 鍵盤的W、S、A、D 鍵實現(xiàn)“蛇”相應(yīng)上、下、左、右方向改變.“蛇”在顯示器一定范圍內(nèi)運動,若碰到VGA 顯示器的邊緣或者“蛇”的身體,則游戲結(jié)束.每當(dāng)“蛇”吃到一只青蛙則VGA 屏幕有效區(qū)域會隨機出現(xiàn)一只“青蛙”,且此時得分加1,分值在數(shù)碼管顯示.最終以FPGA 芯片為核心控制器,完成簡單的硬件貪吃蛇游戲.

        1.2 VGA 顯示原理

        設(shè)計中VGA 顯示及時序信號控制應(yīng)遵循VGA 工業(yè)標(biāo)準(zhǔn),文中采用的640*480@60 Hz 通信時序,其原理在文獻[5]中已詳述,此處不再敘述,對應(yīng)的行周期為31.75 ns,場周期為16.6 ms.

        1.3 PS2 協(xié)議與通信原理

        PS2 是一種應(yīng)用于鼠標(biāo)和鍵盤的遵循雙向同步串行協(xié)議[6].文章使用PS2 接口鍵盤發(fā)送數(shù)據(jù)到FPGA,故主要分析PS2 鍵盤原理.PS2 鍵盤到主機傳送的數(shù)據(jù)以11 位為一幀,具體含義如表1 所示.

        表1 鍵盤到主機PS2 幀數(shù)據(jù)含義

        PS2 鍵盤要發(fā)送數(shù)據(jù)時,首先檢查時鐘是否為1,若不是則主機抑制通信設(shè)備,鍵盤需要緩沖任何要發(fā)送的數(shù)據(jù)直至?xí)r鐘線為高電平才可以發(fā)送數(shù)據(jù)[7-8],如圖 1 所示.主機可在停止位之前將時鐘電平拉低,鍵盤放棄發(fā)送當(dāng)前字節(jié).

        圖1 鍵盤到主機的通信過程

        1.4 PS2 接口鍵盤控制器設(shè)計

        按鍵被按下或釋放時,鍵盤上的處理器會根據(jù)相應(yīng)的按鍵發(fā)送唯一的“通碼”或“斷碼”[9-10],文中用到的控制上、下、左、右鍵方向的四個鍵分別是W、S、A 和D,其相應(yīng)的通碼、斷碼和ASCII 碼如表2 所示.

        表2 文中用到的PS2 的第二套掃碼集信息

        2 系統(tǒng)總體實現(xiàn)

        依據(jù)層次化建模思想和Verilog HDL 設(shè)計實現(xiàn)各功能模塊.系統(tǒng)的設(shè)計思路和功能框圖如圖2 所示.從圖2 可知,該系統(tǒng)底層可劃分為:用于控制方向的鍵盤掃描模塊(Ps2.v),鍵盤譯碼消抖模塊(Ps2_duma.v),游戲控制模塊(Game_ctrl.v),蛇身運動軌跡處理模塊(Snake.v),蛇吃青蛙處理模塊(Snake_eating_frog.v),數(shù)碼管顯示模塊(Seg_display.v),VGA 時序控制模塊(VGA_control.v),頂層模塊(top.v).

        圖2 系統(tǒng)設(shè)計思路和功能框圖

        2.1 鍵盤掃描模塊

        該模塊的輸入信號包括50 M 時鐘clk,復(fù)位信號rst_n,PS2 接口時鐘信號ps2k_clk 和8bit數(shù)據(jù)信號ps2k_data.模塊功能是在ps2k_clk 時鐘下,不斷掃描讀取ps2k_data,從而輸出按下鍵的8bitASCII 碼值ps2_byte,并輸出此時的鍵盤狀態(tài)ps2_state.其中ps2_state 為1 表示有鍵被按下,ps2_state 為0 表示無鍵按下.該模塊的接口框圖如圖3 所示.

        圖3 鍵盤掃描模塊接口圖

        2.2 鍵盤譯碼及消抖模塊

        該模塊的功能首先是接收PS2 鍵盤掃描模塊輸入鍵的ASCII 碼值ps2_byte 和按鍵狀態(tài)ps2_state,然后進行消抖和譯碼,最后控制下一時刻蛇身的運動方向.該模塊的接口框圖如圖 4 所示 .圖 4 中,輸入端口 ps2_byte 為 PS2鍵盤的按鍵的ASCII 碼值,ps2_state 代表按鍵狀態(tài).輸出端口有 up、down、left、right 4 個,分別表示 PS2 鍵盤 W、S、A、D 四個按鍵的各自狀態(tài),利用其值控制蛇身的上、下、左、右運動方向.如up 值若為1,代表W 鍵被按下,蛇身朝上運動,其他按鍵功能類似,此處不再列出.

        圖4 鍵盤譯碼消抖模塊接口圖

        2.3 游戲控制模塊

        本模塊是從其他模塊接收信號,決定游戲狀態(tài)(ready、play、die),并且產(chǎn)生其他模塊的控制信號.在ready 的狀態(tài)下,只要有鍵按下(上、下、左、右),蛇就會自動向右運動,從而進入play 狀態(tài).在play 狀態(tài)下,本模塊等待hit_wall 或者hit_body 的信號,如果這兩個信號發(fā)生,則進入die 狀態(tài),即游戲結(jié)束.在die 狀態(tài)下,屏幕會閃爍一段時間,最后進入ready狀態(tài)[8],該模塊的接口框圖如圖5 所示.

        圖5 游戲控制模塊接口框圖

        2.4 蛇吃青蛙處理模塊

        此模塊的功能是在液晶顯示器有效區(qū)域內(nèi)隨機產(chǎn)生一只青蛙,并且需要判斷蛇是否已吃下青蛙,該模塊的接口示意圖如圖6 所示,圖中head_x、head_y 是蛇頭出現(xiàn)的位置,frog_x、frog_y 是青蛙出現(xiàn)的位置,add_cube 的含義是蛇身新增方塊.

        圖6 蛇吃青蛙處理模塊接口框圖

        2.5 蛇身運動軌跡處理模塊

        該模塊需要完成以下四個功能:①保持蛇的運動;②根據(jù)按下的鍵改變蛇的運動方向;③判斷蛇是否碰撞墻或者自己的身體;④在液晶顯示器上顯示[4].該模塊最終完成后的接口框圖如圖7 所示,圖中cube_num 的含義是蛇身方塊構(gòu)成蛇身,head_x、head_y 是蛇頭出現(xiàn)的位置,hit_body 指蛇運動時撞到蛇身,hit_wall 指蛇運動時撞到墻.

        圖7 蛇身運動軌跡模塊接口框圖

        2.6 VGA 時序控制模塊

        該模塊直接控制液晶屏的顯示.產(chǎn)生五個信號:紅、綠、藍三色信號和行幀同步信號.設(shè)計中接收蛇頭snake 的像素坐標(biāo),以及青蛙的坐標(biāo)進行相應(yīng)地顯示,該模塊的接口框圖如圖8 所示.

        圖8 VGA 時序控制模塊接口框圖

        2.7 頂層模塊

        頂層模塊的作用是進行各底層模塊間數(shù)據(jù)信號和控制信號之間的連接,同時調(diào)用上述6 個模塊,以及數(shù)碼管顯示模塊,數(shù)碼管模塊較為簡單,文章不再列出,最終實現(xiàn)系統(tǒng)要求.其核心代碼為:

        module Greedy_Snake(

        input clk,

        input reset,

        input PS2_CLK,//PS2 的時鐘端口

        input PS2_DATA,//PS2 的數(shù)據(jù)端口

        output h_sync,

        output v_sync,

        output[7:0]color_out

        output[7:0]seg_out,

        output[3:0]sel);

        //中間連線聲明

        //調(diào)用上述六個模塊(略)

        //調(diào)用數(shù)碼管顯示模塊(略)

        endmodule

        3 系統(tǒng)仿真結(jié)果

        3.1 系統(tǒng)開發(fā)工具

        ①仿真軟件:QuartusⅡ13.1;

        ②硬件描述語言:Verilog HDL;

        ③實驗開發(fā)板:鋯石A4系列EP4C6E10F17C8.

        3.2 系統(tǒng)軟件仿真

        系統(tǒng)設(shè)計完成后生成的RTL 圖,如圖9 所示,由圖9 可知各個功能模塊與圖2 系統(tǒng)設(shè)計思路和功能框圖一致[4],說明系統(tǒng)設(shè)計思路正確.

        3.3 系統(tǒng)時序信號仿真

        系統(tǒng)設(shè)計完成后編寫測試文件進行時序仿真,結(jié)果如圖 10 所示. 圖 10 中 sclk 是 50 MHz 輸入時鐘信號,ps2_clk 為鍵盤輸入時鐘,ps2_data 是鍵盤依次按下 A、B、C 三個按鍵時對應(yīng)的截圖,圖10 中分析線對應(yīng)的是B 鍵發(fā)送時的情形,此時對應(yīng)的接收后的ASCII 碼是8‘h32,且此時 PS2 時鐘為 100 us,PS2 鍵盤到主機傳送的數(shù)據(jù)以11 位為一幀,且與文中1.3小節(jié)所要求的PS2 幀數(shù)據(jù)接口時序一致,說明PS2 鍵盤時序滿足系統(tǒng)設(shè)計要求.

        圖9 系統(tǒng)RTL 圖

        圖10 PS2 鍵盤發(fā)送按鍵B 時對應(yīng)時序仿真圖(截圖)

        3.4 系統(tǒng)硬件顯示效果

        FPGA 作為處理器讀取PS2 鍵盤發(fā)送按鍵信息后,通過VGA 接口顯示貪吃蛇游戲運行界面,通過W、S、A、D 四鍵分別控制蛇上、下、左、右移動,最終使其能夠吃到青蛙,并在數(shù)碼管端顯示游戲成績,結(jié)果達到了系統(tǒng)設(shè)計要求.

        4 結(jié)語

        文章在640*480@60 Hz 分辨率下,利用自頂向下層次化建模思想,設(shè)計出基于FPGA 的貪 吃蛇系統(tǒng)[11],并通過 Cyclone IV 系列的EP4C6E10F17C8 器件進行了硬件驗證.文章提出的利用 FPGA 芯片、PS2 鍵盤、VGA 顯示器等硬件設(shè)計貪吃蛇游戲系統(tǒng)是一種新的硬件游戲設(shè)計思路,該思路是利用FPGA 芯片開發(fā)游戲的有效嘗試,相較傳統(tǒng)的單片機游戲系統(tǒng)而言,本系統(tǒng)功能更易拓展,具有一定的參考價值.

        猜你喜歡
        游戲信號系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        完形填空二則
        基于FPGA的多功能信號發(fā)生器的設(shè)計
        電子制作(2018年11期)2018-08-04 03:25:42
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        數(shù)獨游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        成人亚洲av网站在线看| 国产自拍精品一区在线观看| 日韩亚洲欧美久久久www综合| 人人人妻人人澡人人爽欧美一区| 精品无码一区二区三区亚洲桃色| 一区二区三区不卡在线| 亚洲成a人片在线观看中| 精品日本免费观看一区二区三区| 蜜臀av在线一区二区尤物| 亚洲国产中文字幕一区| 亚洲国产婷婷香蕉久久久久久| 超碰97资源站| 免费无码又爽又刺激网站| 国产精品视频免费的| 美女被强吻并脱下胸罩内裤视频| 白白色发布的在线视频| 性无码专区无码| 国产乱子伦露脸在线| 国产av综合一区二区三区最新| 国产女主播在线免费看| 一本到在线观看视频| 免费国产裸体美女视频全黄| 国产精品白浆视频一区| 你懂的视频网站亚洲视频| 伊人久久大香线蕉av色| 亚洲日本va中文字幕久久| 国产一区二区三区白浆在线观看| 精品国产日韩亚洲一区在线| 亚洲av网一区二区三区| 精品乱码一区内射人妻无码| 欧美做受视频播放| 国产一区二区三区色区| 女同同性av观看免费| 国产av精国产传媒| 国产日韩三级| 亚洲精品久久区二区三区蜜桃臀 | 美女视频黄的全免费视频网站| 久久精品国产一区二区蜜芽| 丝袜美腿在线观看视频| av狠狠色丁香婷婷综合久久| 激情婷婷六月|