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

        ?

        基于FPGA的俄羅斯方塊游戲設(shè)計(jì)與實(shí)現(xiàn)

        2022-01-24 08:38:08呂兆承
        關(guān)鍵詞:游戲信號系統(tǒng)

        李 營,呂兆承,施 勇

        俄羅斯方塊游戲是一款難易程度適中、操作方便的游戲,深受人們喜歡.常見的俄羅斯方塊硬件游戲多由專用集成芯片或者單片機(jī)設(shè)計(jì)實(shí)現(xiàn),而FPGA芯片具有高速并行計(jì)算、可編程,實(shí)現(xiàn)的游戲系統(tǒng)功能易拓展等特點(diǎn),鑒于此本文根據(jù)VGA時(shí)序顯示原理和俄羅斯方塊游戲工作原理,在QuartusⅡ13.1環(huán)境下利用Verilog硬件描述語言和層次化建模思想設(shè)計(jì)實(shí)現(xiàn)硬件俄羅斯方塊游戲系統(tǒng)[1].

        1 俄羅斯方塊游戲系統(tǒng)工作原理

        本文俄羅斯方塊游戲系統(tǒng)選用Altera公司Cyclone V系列的5CSXFC6D6F31C6芯片設(shè)計(jì)實(shí)現(xiàn)相應(yīng)功能,由VGA顯示器、FPGA芯片等構(gòu)成.俄羅斯方塊游戲的規(guī)則是當(dāng)游戲開始初始化后,隨機(jī)產(chǎn)生一個方塊,當(dāng)其下落過程中根據(jù)不同按鍵進(jìn)行操作,比如當(dāng)點(diǎn)擊旋轉(zhuǎn)按鈕時(shí)將方塊旋轉(zhuǎn),點(diǎn)擊LEFT_KEY時(shí)向左移動,一旦下落到底并且滿行時(shí)消除該行,當(dāng)最新方塊掉落行置頂時(shí)游戲結(jié)束.具體的游戲算法流程圖如圖1所示[2].

        圖1 俄羅斯方塊游戲算法流程圖

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

        采用自頂向下層次化建模思想設(shè)計(jì)實(shí)現(xiàn)俄羅斯方塊系統(tǒng)各功能模塊.系統(tǒng)的功能框圖如圖2所示.由圖2可知,系統(tǒng)底層包含:按鍵輸入處理模塊(key.v)、方塊移動控制模塊(game_control.v)、數(shù)據(jù)路徑模塊(datapath.v)、游戲界面輸出模塊(merge.v)、VGA時(shí)序控制模塊(vga_top)[3].

        圖2 系統(tǒng)設(shè)計(jì)思路和實(shí)現(xiàn)功能框圖

        2.1 按鍵輸入處理模塊

        該模塊的功能是對輸入系統(tǒng)的各種控制信號進(jìn)行上升沿檢測及消抖,其接口框圖如圖3所示,圖中輸入按鍵UP_KEY、LEFT_KEY、RIGHT_KEY、DOWN_KEY分別用來控制方塊旋轉(zhuǎn)、方塊向左、向右、向下移動[4],其對應(yīng)消抖后輸出信號為rotate、left、right、down.若UP_KEY按下1次,方塊旋轉(zhuǎn)1次,其他按鍵功能類似,此處不再列出.

        圖3 按鍵輸入處理模塊接口框圖

        2.2 方塊移動控制模塊

        該模塊的功能是:①根據(jù)游戲規(guī)則定義了10個狀態(tài),并采用有限狀態(tài)機(jī)設(shè)計(jì)實(shí)現(xiàn)[5].②接收按鍵輸入處理模塊信號,將其控制輸出后送至數(shù)據(jù)路徑模塊.

        該模塊的狀態(tài)遷移圖如圖4所示.各狀態(tài)的含義如下:

        圖4 系統(tǒng)狀態(tài)遷移圖

        ①空閑狀態(tài)S_idle:點(diǎn)擊系統(tǒng)復(fù)位按鍵rst_n后進(jìn)入該狀態(tài).

        ②新的俄羅斯方塊產(chǎn)生狀態(tài)S_new.

        ③保持狀態(tài)S_hold:在該狀態(tài)中計(jì)時(shí)到固定時(shí)間后,轉(zhuǎn)到下移狀態(tài)S_down狀態(tài);或者根據(jù)不同輸入信號指令轉(zhuǎn)到下移或者移動狀態(tài).

        ④下移狀態(tài)S_down:判斷當(dāng)前俄羅斯方塊能否下移一格.若是則轉(zhuǎn)到S_remove_1狀態(tài),否則轉(zhuǎn)到S_shift狀態(tài).

        ⑤移動狀態(tài)判斷S_move:判斷當(dāng)前俄羅斯方塊是否能夠按照按鍵信號進(jìn)行移動,若是轉(zhuǎn)到S_shift狀態(tài),若不是轉(zhuǎn)到S_remove_1狀態(tài).

        ⑥更新方塊坐標(biāo)狀態(tài)S_shift:更新俄羅斯方塊的坐標(biāo)信息,返回S_hold狀態(tài).

        ⑦更新屏幕狀態(tài)S_remove_1.

        ⑧消除行判斷狀態(tài)S_remove_2:重復(fù)判斷,若無可消除的行跳轉(zhuǎn)S_isdie狀態(tài).

        ⑨游戲結(jié)束判斷狀態(tài)S_isdie:若結(jié)束跳轉(zhuǎn)到S_stop,否則跳轉(zhuǎn)到S_new.

        ⑩清除屏幕狀態(tài)S_stop.

        2.3 數(shù)據(jù)路徑模塊

        該模塊主要功能是:根據(jù)方塊移動控制模塊給出的信號,對方塊當(dāng)前的狀態(tài)進(jìn)行判斷,更新游戲背景[6].具體功能如下:

        (1)游戲背景定義.背景R是24行10列的寄存器組,負(fù)責(zé)保存非活動方塊坐標(biāo)(①所有之前下落的方塊;②下落后方塊消除之后的結(jié)果).背景R中任一位置,如方塊存在,則該位置為1,否則為0.

        (2)數(shù)據(jù)交換.完成本模塊與方塊移動控制模塊game_control間的控制.

        (3)方塊模型定義.定義了七種形狀方塊模型,如圖5所示,圖中陰影部分為固定點(diǎn),即方塊旋轉(zhuǎn)時(shí)不變的格點(diǎn).

        圖5 方塊模型示意圖

        (4)方塊運(yùn)動.指活動方塊的運(yùn)動,所謂活動方塊為當(dāng)前下落中的方塊,通過活動方塊坐標(biāo)表示.俄羅斯方塊的運(yùn)動包括4種:①方塊隨機(jī)產(chǎn)生;②方塊旋轉(zhuǎn)、下落、向左、向右四種移動方式;③方塊停止與消除由S_remove1和S_remove2兩個狀態(tài)完成.④死亡判定.該模塊的接口框圖如圖6所示,圖中各端口含義如下:

        圖6 數(shù)據(jù)路徑模塊接口框圖

        輸入端口.信號MOVE、DOWN、DIE、SHIFT、REMOVE_1、REMOVE_2、NEW、STOP、AUTODOWN、KEYBOARD等信號均連接方塊移動控制模塊相應(yīng)輸出.

        輸出端口.信號n、m指向當(dāng)前活動方塊固定點(diǎn)位置.信號BLOCK[6:0]指方塊類型,由7位編碼構(gòu)成.信號MOVE_ABLE、SHIFT_FINISH、DOWN_ABLE、REMOVE_2_FINISH分別連接方塊移動控制模塊相應(yīng)信號.M_OUT[239:0]指活動和非活動方塊數(shù)據(jù)在背景數(shù)據(jù)輸出.

        2.4 游戲界面輸出模塊

        該模塊主要完成游戲界面最終輸出功能,其接口框圖如圖7所示.圖中各端口的含義如下:游戲界面背景ROW為20行,COL為10列,即非活動矩陣數(shù)據(jù)data_in[239:0],活動方塊形狀數(shù)據(jù)shape[6:0],活動方塊的固定點(diǎn)位置坐標(biāo)是x_pos[3:0]和y_pos[3:0],最終游戲界面數(shù)據(jù)data_out[ROW*COL-1:0],即data_out[199:0].

        圖7 游戲輸出界面模塊接口框圖

        2.5 VGA驅(qū)動控制模塊

        該模塊的功能是接收游戲界面輸出模塊數(shù)據(jù),將結(jié)果通過VGA接口在顯示屏端顯示[7].其接口框圖如圖8所示.

        圖8 VGA驅(qū)動控制模塊接口框圖

        圖中各端口的含義如下:

        輸入端口.num[199:0]連接游戲輸出界面模塊的data_out[199:0]信號.

        輸出端口.紅色、綠色、藍(lán)色三基色信號分別指OUTRed[3:0]、OUTGreen[3:0]、OUTBlue[3:0].hsync_r和vsync_r分別是行、場同步 信 號.圖 中VGA_BLANKn、VGA_SYNCn、DAC_CLK均是 其DE2-115的VGA驅(qū)動 所需的3根 線,其中VGA_BLANKn和VGA_SYNCn分別設(shè)置為1和0,DAC_CLK連接25MHz驅(qū)動時(shí)鐘.

        2.6 系統(tǒng)頂層模塊

        將上述各模塊連接完成后構(gòu)成頂層模塊,其核心代碼如下:

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

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

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

        圖9 系統(tǒng)RTL圖

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

        FPGA作為處理器讀取DE10開發(fā)板鍵盤發(fā)送的按鍵信息后,通過VGA接口顯示俄羅斯方塊游戲運(yùn)行界面.系統(tǒng)通過start按鍵控制游戲開始,通過其他四個按鍵分別控制方塊旋轉(zhuǎn)、向下、向左、向右移動.結(jié)果達(dá)到了系統(tǒng)設(shè)計(jì)要求,其硬件顯示效果如圖10所示[8].

        圖10 硬件顯示效果圖

        4 結(jié)語

        在640*480@60Hz的VGA分辨率下,基于Cyclone V系列 的5CSXFC6D6F31C6 FPGA芯片進(jìn)行了俄羅斯方塊系統(tǒng)硬件驗(yàn)證.文章提出的俄羅斯方塊游戲系統(tǒng)設(shè)計(jì)思路是利用FPGA芯片開發(fā)游戲的有效嘗試,相對于傳統(tǒng)的硬件游戲系統(tǒng),本系統(tǒng)功能更易拓展,如添加PS2鍵盤、LCD液晶顯示等設(shè)備,系統(tǒng)有一定的工業(yè)應(yīng)用前景[9].

        猜你喜歡
        游戲信號系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        完形填空二則
        基于FPGA的多功能信號發(fā)生器的設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:42
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        數(shù)獨(dú)游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        人人妻人人澡人人爽人人dvd| 国产360激情盗摄一区在线观看| 色综久久综合桃花网国产精品| 国内嫩模自拍偷拍视频| 日本真人做爰免费视频120秒| 欧美黑人粗暴多交高潮水最多| 天啦噜国产精品亚洲精品 | 亚洲综合伊人制服丝袜美腿| 久久精品国产亚洲精品色婷婷| 亚洲毛片免费观看视频| 精品成在人线av无码免费看| 亚洲最大日夜无码中文字幕| 3亚洲日韩在线精品区| av在线不卡一区二区| 免费看又色又爽又黄的国产软件 | 久久婷婷五月综合97色一本一本| 好大好硬好爽免费视频| 无码一区二区三区久久精品| 日本免费看片一区二区三区| 日本成本人片免费网站| 无码人妻丰满熟妇精品区| 国产人成在线成免费视频| 粉嫩极品国产在线观看免费一区| 亚洲熟妇久久国产精品| 久久88综合| 亚洲天堂一二三四区在线| 亚洲日韩成人无码| 影视先锋av资源噜噜| 国产思思久99久精品| 杨幂一区二区系列在线| 好吊妞无缓冲视频观看| 丝袜AV在线一区二区三区 | 日本女优久久精品久久| 女人脱了内裤趴开腿让男躁| 97无码人妻Va一区二区三区| av资源在线永久免费观看| 精品高朝久久久久9999| 国产精品免费久久久久软件| 久久精品国产亚洲AV古装片| 亚洲精品在线免费视频| 青楼妓女禁脔道具调教sm|