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

        ?

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

        2022-01-24 08:38:08呂兆承
        關(guān)鍵詞:方塊框圖按鍵

        李 營(yíng),呂兆承,施 勇

        俄羅斯方塊游戲是一款難易程度適中、操作方便的游戲,深受人們喜歡.常見(jiàn)的俄羅斯方塊硬件游戲多由專(zhuān)用集成芯片或者單片機(jī)設(shè)計(jì)實(shí)現(xiàn),而FPGA芯片具有高速并行計(jì)算、可編程,實(shí)現(xiàn)的游戲系統(tǒng)功能易拓展等特點(diǎn),鑒于此本文根據(jù)VGA時(shí)序顯示原理和俄羅斯方塊游戲工作原理,在QuartusⅡ13.1環(huán)境下利用Verilog硬件描述語(yǔ)言和層次化建模思想設(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)游戲開(kāi)始初始化后,隨機(jī)產(chǎn)生一個(gè)方塊,當(dāng)其下落過(guò)程中根據(jù)不同按鍵進(jìn)行操作,比如當(dāng)點(diǎn)擊旋轉(zhuǎn)按鈕時(shí)將方塊旋轉(zhuǎn),點(diǎn)擊LEFT_KEY時(shí)向左移動(dòng),一旦下落到底并且滿(mǎn)行時(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)、方塊移動(dòng)控制模塊(game_control.v)、數(shù)據(jù)路徑模塊(datapath.v)、游戲界面輸出模塊(merge.v)、VGA時(shí)序控制模塊(vga_top)[3].

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

        2.1 按鍵輸入處理模塊

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

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

        2.2 方塊移動(dòng)控制模塊

        該模塊的功能是:①根據(jù)游戲規(guī)則定義了10個(gè)狀態(tài),并采用有限狀態(tài)機(jī)設(shè)計(jì)實(shí)現(xiàn)[5].②接收按鍵輸入處理模塊信號(hào),將其控制輸出后送至數(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ù)不同輸入信號(hào)指令轉(zhuǎn)到下移或者移動(dòng)狀態(tài).

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

        ⑤移動(dòng)狀態(tài)判斷S_move:判斷當(dāng)前俄羅斯方塊是否能夠按照按鍵信號(hào)進(jìn)行移動(dòng),若是轉(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ù)判斷,若無(wú)可消除的行跳轉(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)控制模塊給出的信號(hào),對(duì)方塊當(dāng)前的狀態(tài)進(jìn)行判斷,更新游戲背景[6].具體功能如下:

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

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

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

        圖5 方塊模型示意圖

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

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

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

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

        2.4 游戲界面輸出模塊

        該模塊主要完成游戲界面最終輸出功能,其接口框圖如圖7所示.圖中各端口的含義如下:游戲界面背景ROW為20行,COL為10列,即非活動(dòng)矩陣數(shù)據(jù)data_in[239:0],活動(dòng)方塊形狀數(shù)據(jù)shape[6:0],活動(dòng)方塊的固定點(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ū)動(dòng)控制模塊

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

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

        圖中各端口的含義如下:

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

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

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

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

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

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

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

        圖9 系統(tǒng)RTL圖

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

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

        圖10 硬件顯示效果圖

        4 結(jié)語(yǔ)

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

        猜你喜歡
        方塊框圖按鍵
        方塊村(1)
        旋轉(zhuǎn)吧!方塊!
        有多少個(gè)方塊
        不一樣的方塊橋
        基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
        電子制作(2021年3期)2021-06-16 03:14:26
        捷豹I-PACE純電動(dòng)汽車(chē)高壓蓄電池充電系統(tǒng)(三)
        電路圖2017年凱迪拉克XT5
        算法框圖的補(bǔ)全
        一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
        電子制作(2016年1期)2016-11-07 08:43:05
        基于圖表法構(gòu)建《萬(wàn)有引力定律與航天》知識(shí)網(wǎng)絡(luò)
        日韩亚洲欧美中文高清在线| 无码精品一区二区三区在线| 狠狠噜天天噜日日噜无码| 富婆如狼似虎找黑人老外| 亚洲AV日韩AV高潮喷潮无码| 国产精品国产传播国产三级| 欧美大屁股xxxx高潮喷水| 国产老熟女狂叫对白| 91精品国产综合久久青草| 国产一区二区三区小向美奈子| 久久国产成人精品av| 亚洲乱亚洲乱少妇无码99p| 精品一区二区三区四区少妇 | 久久97精品久久久久久久不卡 | 中文字幕一区二区三区.| 亚洲乱码中文字幕视频| 玩中年熟妇让你爽视频| 91视频88av| 亚洲综合网中文字幕在线| 国产精品激情自拍视频| 四虎影视在线影院在线观看| 亚洲精品天堂av免费看| 99久久精品人妻一区| 无码小电影在线观看网站免费| 亚洲欧美国产双大乳头| 日本岛国大片不卡人妻| 亚洲国产丝袜久久久精品一区二区 | 日韩精品久久久肉伦网站| 亚洲天堂成人在线| 骚货人妻视频中文字幕| 一个人看的www片免费高清视频| 国产欧美亚洲精品a| 亚洲一级无码AV毛片久久| 美艳善良的丝袜高跟美腿| 日本怡春院一区二区三区| 亚洲av美女在线播放啊| 九九久久精品一区二区三区av| 亚洲人成网线在线播放va蜜芽 | 久久婷婷综合色拍亚洲| 日本师生三片在线观看| 国产欧美日韩综合精品一区二区|