版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、深圳大學(xué)研究生試題紙學(xué)院 信息工程學(xué)院 專業(yè) 集成電路工程,電 子與通信工程課程名稱 數(shù)字系統(tǒng)設(shè)計擬題人 審題人課程設(shè)計:采用 FPGA 實(shí)現(xiàn)一個 VGA 顯示的小游戲基本要求:1) 采用 Verilog 語言在 Spartan3A FPGA 開發(fā)板實(shí)現(xiàn)該設(shè)計2) 該游戲應(yīng)該采用純邏輯實(shí)現(xiàn),不能在 FPGA 內(nèi)部嵌入 CPU 或者外接 CPU3) 該游戲應(yīng)該有 VGA 接口輸出4) 該游戲應(yīng)該具有按鍵或者其他輸入方式5) 游戲的復(fù)雜度將作為一個評分依據(jù)6) 游戲的創(chuàng)新性和可玩性將作為一個加分依據(jù)設(shè)計報告要求:1. 報告的格式采用標(biāo)準(zhǔn)的深圳大學(xué)設(shè)計報告格式。2. 報告中應(yīng)提供 CPU 的工作流程
2、說明,如果實(shí)現(xiàn)了高級要求,應(yīng)提供新增功能的說明和 介紹。3. 報告中應(yīng)包括 ASM 圖 , 以及 verilog 代碼,并且代碼應(yīng)該與 ASM 圖相一致。4. 設(shè)計報告應(yīng)包括該電路的 verilog 仿真。5. 設(shè)計報告應(yīng)該有布局布線后資源利用以及運(yùn)行速度的評價結(jié)果。深圳大學(xué)研究生課程論文題目 基于 FPGA 實(shí)現(xiàn) VGA 的小游戲 成績專業(yè) 電子與通信工程年級 2014 屆課程名稱 數(shù)字系統(tǒng)設(shè)計姓名 李曼曼學(xué) 號 2141130208時間 2015 年 1 月 15 號任課教師 徐淵目錄摘要(關(guān)鍵詞)錯. 誤!未定義書簽1.游戲功能概述2.3.2. 系統(tǒng)分析和方案3. 硬件電路設(shè)計 4.3.
3、1 游戲的硬件組成 4.3.2 VGA 控制模塊設(shè)計 4.3.3 移動和控制模塊設(shè)計 8.3.4 按鍵消抖模塊設(shè)計 1.84. 端口配置 2.2.5. 游戲設(shè)計結(jié)果 2.4.5.2 總結(jié)錯. 誤!未定義書簽5.1 軟件調(diào)試結(jié)果 2.4.摘要本次課程設(shè)計介紹了用 FPGA 來驅(qū)動 VGA 顯示躲避障礙游戲的具體實(shí)現(xiàn)方 法。躲避障礙的游戲規(guī)則是玩家使用方向鍵操控一個方塊不斷躲避障礙, 同時方 塊若果到達(dá)指定位置則游戲勝利, 當(dāng)方塊碰到障壁時游戲結(jié)束。 本課程設(shè)計采用 Verilog HDL 語言編寫, VGA 顯示,狀態(tài)機(jī)等相關(guān)知識。關(guān)鍵詞: FPGA ;VGA ;Verilog HDL ;躲避障
4、礙游戲1 游戲功能概述游戲的主要功能設(shè)計如下:(1)方塊在整個屏幕邊框內(nèi)可以通過按鍵上下左右控制進(jìn)行移動;設(shè)置屏幕分辨率為 600*800,邊框?qū)挾葹?5,并且顏色為黃色。方塊大小為 60*60 顏色為紅色,游戲中設(shè)有四個不斷垂直下落的長方塊障礙物,障礙物的長 度為 200,寬度為 10,以不同的速率下降。 在屏幕的左上方還有一個特定的區(qū)域, 沒用顏色顯示,有特定的坐標(biāo)位置。(2)障礙物自發(fā)下落,;游戲中有四個不同顏色的障礙長方塊,不斷下落。當(dāng)小方塊碰到長方塊時, 游戲界面停止,進(jìn)入到死亡狀態(tài),障礙物也消失。(3)游戲的三個狀態(tài)和三個不同界面當(dāng)通過按鍵對小方塊進(jìn)行上下左右移動時, 游戲一直停留
5、在游戲界面。 如果 小方塊碰到四個當(dāng)中任何一個障礙物,則游戲結(jié)束并顯示一個“ N”的標(biāo)志表示 死亡。如果小方塊到達(dá)指定的左上方區(qū)域,則游戲勝利,并顯示一個“Y ”的標(biāo)志即游戲獲勝。不管游戲勝利或者結(jié)束,按下復(fù)位鍵,游戲又重新開始。綜上,本游戲設(shè)置四個按鍵控制小方塊的移動,障礙物則自己不斷下落。A7 為上按鍵, M4 為下按鍵, G11為左按鍵, G12 為右按鍵。游戲通過 P11開 關(guān)設(shè)定為游戲的復(fù)位鍵,讓游戲重新開始。2 系統(tǒng)分析和方案2.1 系統(tǒng)分析本設(shè)計采用 VGA顯示的方式將游戲展現(xiàn)出來。 游戲中玩家通過四個按鍵控制 方塊的身體上下左右移動來到達(dá)指定位置以獲得勝利, 如果方塊撞到障礙物
6、, 則 游戲失敗。所要設(shè)計的躲避障礙游戲基于 FPGA芯片為硬件,采用 Verilog HDL 語言編 寫程序。在本設(shè)計中,有個 5 按鍵,分別是上、下、左、右和復(fù)位按鍵。它們都 是輸入信號,輸出是 VGA,在電腦屏幕實(shí)現(xiàn) VGA顯示游戲畫面。其系統(tǒng)設(shè)計結(jié)構(gòu) 框圖如 2.1 所示。圖 2.1 躲避障礙游戲系統(tǒng)設(shè)計結(jié)構(gòu)框圖電源給 BASYS 2 開發(fā)板供電,將程序下載到 BASYS 2開發(fā)板上,用 VGA 線將顯示器與開發(fā)板相連接, 在通電情況下, 游戲在顯示器上顯示, 可通過開發(fā) 板上按鍵控制方塊的運(yùn)動狀態(tài)。3 硬件電路設(shè)計3.1 游戲的硬件組成硬件電路設(shè)計包括 3 個模塊,它們分別是:act
7、ion :產(chǎn)生各個 VGA 掃描部件的坐標(biāo)及方塊和障礙的運(yùn)動軌跡并控制游 戲的三種狀態(tài)之間的轉(zhuǎn)換vga: vga 掃描控制模塊 key:按鍵掃描模塊 完成后的 RTL view 如圖 3.1 所示。圖 3.1 系統(tǒng)總體設(shè)計3.2 VGA 控制模塊設(shè)計顯示器掃描方式為逐行掃描: 逐行掃描是掃描從屏幕左上角一點(diǎn)開始, 從左像右逐點(diǎn)掃描,每掃描完一行 ,電子束回到屏幕的左邊下一行的起始位置,在這 期間, CRT 對電子束進(jìn)行消隱,每行結(jié)束時,用行同步信號進(jìn)行同步;當(dāng)掃描 完所有的行,形成一幀,用場同步信號進(jìn)行場同步,并使掃描回到屏幕左上方, 同時進(jìn)行場消隱 ,開始下一幀。標(biāo)準(zhǔn) VGA 一共 15 個
8、接口,本設(shè)計用到的信號接口有五個, HSYNC 行同步 信號, VSYNC 場同步信號, VGA_R 、 VGA_G 、VGA_B 三原色信號。VGA 控制模塊硬件設(shè)計如圖 3.2.3 所示圖 3.2 VGA 控制模塊硬件設(shè)計電路VGA 接口輸出模塊 verilog 代碼如下:module vga(clk,rst,HSYNC,VSYNC,hc,vc); input clk;input rst;reg hs;reg vs;reg vsenable;output HSYNC;output VSYNC;output reg9:0 vc;output reg10:0 hc; always(posedg
9、e clk or posedge rst)beginif(rst)hc = 0;elsebegin if(hc = 1039)beginhc = 0; vsenable=1;endelse begin hc = hc+1; vsenable=0;endendendalways(posedge clk or posedge rst)begin if(rst)vc = 0;elsebeginif(vsenable = 1) beginif(vc = 665) vc =0;elsevc =vc+1;endelsevc = vc;endendassign HSYNC=hs;assign VSYNC=v
10、s;always(posedge clk or posedge rst) beginif(rst)hs = 1b1;else if(hc = 10d0)hs = 1b0;else if(hc = 10d120)hs = 1b1;endalways(posedge clk or posedge rst)beginif(rst)vs = 1b1;else if(vc = 10d0)vs = 1b0;else if(vc = 10d6)vs 0)&(move_x160)&(move_x360)&(move_x560)&(move_x=10)&(move_x=20)&(move_y=200)?1b1:
11、1b0;assign die=(square1)|(square2)|(square3)|(square4)?1b1:1b0;wire9:0 xlabel,ylabel;assign xlabel = hc-11d187;assign ylabel = vc-10d31;/VGA 掃描模塊:always(posedge clk or posedge rst)beginif(rst)begincolor =8b0000_0000;flag182&hc981&hc29&vc624&vc=629)color =move_x+182)&(hc=move_y+29)&(vc(move_y+40+29)b
12、egincolor =10) & (hc-187=10+y_addr) & (vc-31=50+y_addr)begincolor =200) & (hc-187=10+y_addr1) & (vc-31=50+y_addr1)begincolor =400) & (hc-187=10+y_addr2) & (vc-31=50+y_addr2)begincolor =600) & (hc-187=10+y_addr3) & (vc-31=50+y_addr3)begincolor =8b1111_0000; / 第四個橫條end11else color =240)&(xlabel=140)&(
13、ylabel=280)&(xlabel=180)&(ylabel=320)&(xlabel=220)&(ylabel=360)&(xlabel=260)&(ylabel=240)&(xlabel=180)&(ylabel=240)&(xlabel=220)&(ylabel=240)&(xlabel=260)&(ylabel=400)&(xlabel=260)&(ylabel=400)&(xlabel=220)&(ylabel=400)&(xlabel=180)&(ylabel=400)&(xlabel=140)&(ylabel180)begincolor =8b1111_1100;12ende
14、lsebegincolor=8b0000_0000;endflag=1b1;flag1=240)&(xlabel=140)&(ylabel=440)&(xlabel=180)&(ylabel=280)&(xlabel=180)&(ylabel=480)&(xlabel=140)&(ylabel=320)&(xlabel=220)&(ylabel=360)&(xlabel=260)&(ylabel=400)&(xlabel=220)&(ylabel=360)&(xlabel=260)&(ylabel=360)&(xlabel=300)&(ylabel=360)&(xlabel=400)&(yla
15、bel=360)&(xlabel=340)&(ylabel400)begincolor =8b1111_1111; endelsebegincolor=8b0000_0000;endflag=1b0;flag1=1b1;endelsebegincolor = 8b0000_0000;endendalways(posedge clk or posedge rst)beginif (rst)beginmove_x = 340;move_y = 500;endelse if (up_key_press)beginif(move_y=0)beginmove_y = move_y;14endelsebe
16、ginmove_y = move_y-40;endendelse if (down_key_press)beginif(move_y=560)beginmove_y = move_y;endelsebeginmove_y = move_y+40;endendelse if (left_key_press)beginif(move_x=0) begin move_x = move_x;endelsebeginmove_x = move_x-40; endend15 else if (right_key_press)begin if(move_x=760)beginmove_x = move_x;
17、endelsebeginmove_x = move_x+40;endendendalways(posedge clk or posedge rst)beginif(rst)beginy_addr = 10;endelsebeginif (counter = 50_0000)begincounter = 0;y_addr = y_addr + 1;endelse counter = counter + 1;endendalways(posedge clk or posedge rst)16beginif(rst)beginy_addr1 = 10;endelsebeginif (counter1
18、 = 30_0000)begincounter1 = 0;y_addr1 = y_addr1 + 1;endelse counter1 = counter1 + 1;endendalways(posedge clk or posedge rst)beginif(rst)beginy_addr2 = 10;endelsebeginif (counter2 = 18_0000)begincounter2 = 0;y_addr2 = y_addr2 + 1;endelse counter2 = counter2 + 1;end17end always(posedge clk or posedge r
19、st)beginif(rst)beginy_addr3 = 10;endelsebeginif (counter3 = 10_0000)begincounter3 = 0;y_addr3 = y_addr3 + 1;endelse counter3 = counter3 + 1;endendendmodule3.4 按鍵消抖模塊設(shè)計抖動時間的長短由按鍵的機(jī)械特性決定, 一般為 5ms10ms。本消抖模塊消 抖時間為 10ms。鍵抖動會引起一次按鍵被誤讀多次。為確保芯片對鍵的一次閉 合僅作一次處理, 必須去除鍵抖動。 在鍵閉合穩(wěn)定時讀取鍵的狀態(tài), 并且必須判 別到鍵釋放穩(wěn)定后再作處理。流程圖如下
20、:18開始消抖模塊硬件設(shè)計如圖 3.4 所示。圖 3.4 消抖模塊硬件圖 消抖模塊 verilog 代碼如下:module key( input clk,input rst,input left,input right,input up,19input down,output reg left_key_press, output reg right_key_press, output reg up_key_press,output reg down_key_press);/* reg 31:0clk_cnt;reg left_key_last;reg right_key_last;reg up
21、_key_last;reg down_key_last; always(posedge clk or posedge rst)begin if(rst)beginclk_cnt=0;left_key_press=0; right_key_press=0; up_key_press=0;down_key_press=0; left_key_last=0;right_key_last=0; up_key_last=0;down_key_last=0;endelsebegin20if(clk_cnt=5_0000)beginclk_cnt=0;left_key_last=left;right_key_last=right;up_key_last=up; down_key_last=down;if(left_key_last=0&left=1)beginleft_key_press=1;end if(right_key_last=0&right=1) beginright_key_press=1;end if(up_key_last=0&up=1)beginup_key_press=1;end if(down_key_last=0&down=1) begin down_key_press=1;endendelsebeginclk_cnt=clk_cnt+1;left_key_pre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能充電樁施工安裝服務(wù)合同范本4篇
- 2025年中國紗庫支架行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2024版研究生實(shí)習(xí)合同模板2篇
- 2025年度公共安全設(shè)施招標(biāo)文件編制及安全性能評估服務(wù)合同3篇
- 狗仔扣鑰匙鏈行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2025年水資源利用項目投產(chǎn)資金借貸合同3篇
- 2025年度個人健康數(shù)據(jù)共享合同范本3篇
- 2025年度個人農(nóng)業(yè)貸款抵押合同示范文本4篇
- 2025年挖掘機(jī)采購與專業(yè)人才引進(jìn)合同3篇
- 2025年度個人入股分紅合作開發(fā)項目合同4篇
- 機(jī)械點(diǎn)檢員職業(yè)技能知識考試題庫與答案(900題)
- 成熙高級英語聽力腳本
- 北京語言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 肺癌的診治指南課件
- 人教版七年級下冊數(shù)學(xué)全冊完整版課件
- 商場裝修改造施工組織設(shè)計
- (中職)Dreamweaver-CC網(wǎng)頁設(shè)計與制作(3版)電子課件(完整版)
- 統(tǒng)編版一年級語文上冊 第5單元教材解讀 PPT
- 中班科學(xué)《會說話的顏色》活動設(shè)計
- 加減乘除混合運(yùn)算600題直接打印
- ASCO7000系列GROUP5控制盤使用手冊
評論
0/150
提交評論