Tải bản đầy đủ (.pdf) (36 trang)

Báo cáo game Fix FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.41 MB, 36 trang )

Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 1

HA NOI UNIVERSITY OF SCIENCE AND TECHNOLOGY
SHOOL OF ELECTRONIC AND TELECOMMUNICATION
EMBEDDED SYSTEM AND RECONFIGURABLE COMPUTING LAB


VHDL TRAINING COURSE
2012
Project:
BOMBERMAN ON FPGA
Trainers:
Ngoc A. Le
Khanh V. Nguyen
Hai N. Nguyen

Ha Noi, July 27, 2012
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 2




A. LU. 4
B. NI DUNG. 5
1.T tài. 5
 tài. 5
1.2. Yêu cu c tài. 5


1.2.1. Yêu cu ch 5
1.2.2. Yêu cu phi ch 5
1.3. Mô t  6
1.3.1.Mô t  6
m. 6
1.3.3.Kt thúc. 7
1.4. K hoch thc hin và phân công công vic. 7
1.4.1. K hoch thc hin 7
1.4.2. Phân công công vic 8
2. Gii thiu Công ngh s dng. 8
2.1. Phn cng. 8
 Kit DE1 8
2.2. Phn mm Quartus II 9.1. 10
2.3. Quy trình thit k FPGA vi Quartus II. 10
 khi ca h thng. 11
3.1.Bàn phím 12
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 3

3.2.Màn hình 12
3.3.ROM 12
3.4.Khi x lý ( CU ) 12
c xây dng tng khi ca GAME. 12
4.1. PS2 Keyboard 12
4.1.1.Khi nhn d liu PS2 12
4.1.2.Mch giao tip vi PS2 Keyboard. 16
4.2. Khi VGA. 19
 19
 20

4.2.3. VGA text. 25
4.3. Khi di chuyn. 28
4.4 Kht bom. 29
4.5. Khi hin th TEXT. 30
C. KT LUN 34
1. Kt qu c. 34
2.  34
3.  Xut. 34
Ph lc 35
Tài liu tham kho 36




Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 4

A. 
VHDL là mt ngôn ng mô t phn cng cho các mch tích hp t cao vi
nhit trc ng dng trong nhic mà quan trng nht
là trong các thit b logic có th l
Vi vic vn dng nhng kin thc v 
t hp vi các tài liu tham kho v lp trình VHDL nâng cao
 ng dng làm game nh là game bomberman.
Em xin chân thành bày t lòng bic ti TS Phm Ngc Nam, ti tt c
các anh và các bn tc biu Tip
ng dn cho nhóm chúng em, tu kin cho bn em nghiên cu,
hc tp trong hc k hè. Nhng li nhc nh, nhn xét c
tin b rt nhiu và có th thc hin nt dung thc tp mt cách tt nht.

Do kh n ch và s ng cng logic trên DE1 là có hn nên trong
quá trình làm Game có th không tránh khi nhng thiu sót và gic. Mong
các anh và các bn ch b nhóm em có th hoàn thin
Project này mt cách tt.









Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 5




B. 


Sau khi hoàn thành các bài lab thc hành trên Kit DE1 ca Altera, chúng em
tip tc phát trin k t k và vn dng vào thc tn khai mt h
thng hoàn chnh trên Kit DE1 v Bomberman on FPGA

1.2
1.2.
- Thc hin trên KIT DE1 ca ALTERA

- Màn hình hin th VGA 640x480 pixels
- Bàn phím chun PS/2
- Audio codec W871 (trên kit)
- Ngôn ng VHDL s dng clock 50Mhz.
1.2.
- Yêu cu giao din, d t.
- Tit kic tài nguyên trên kit de1 t
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 6

1.3
1.3.1.
- Bu mt hin  i
t hin  i bên phi ca các b có sn. Thi gian
cu bc ( 200s ).
Mó 4 phím di chuyn:
Player 1
Player 2
Mô t
A

Di chuyn sang trái
S

Di chuyn xui
D

Di chuyn sang phi
W


Di chuyn lên trên
Space
0
t bom

Hinh 1 c s d
- u m có mt mng. Sau khi bom n trúng
t thúc .
- Mi ln n phím mi ch c 1 qu và bom t n sau khi
t là 3s
- n vc

- Gch b phá v khi bom n 1 ln phá v.
1.3.2..
- 20: Phá gch
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 7

 u mm nào, s m ca mi
s c cp nht trong mi ván và hin th lên màn hình.
1.3.3..
- i dính bom hoc ht thi gian ca 1 vu
(200s)
- Khi ht gi mà không ai b bom n thì s m. Ai nhi
thng




Tng thi gian thc hin: 01 tháng (27/7/2012 - 28/8/2012)
Báo cáo hàng tun: sáng th 7 hàng tun, trình bày các công vic
hin ti, thc mc cn gi
Báo cáo cui cùng: Th 7, 1/9/2012, báo cáo hoàn chnh và kt thúc
 tài
Tun 0: 26/7/2012 - 28/7/2012
Hoàn thành spec c khi cho c h thng.
Tun 1: 29/7/2012 - 04/7/2012
 c tài liu và vit khu khin VGA, PS2
 Xây dng b c nh
 Bt tín hiu ca nhiu phím
Tun 2: 05/8/2012 - 11/8/2012
Hin th, u khin nhân vt di chuyn trên b.
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 8

Tun 3: 12/8/2012 - 18/8/2012
 t bom, bom n to ra la, phá gch và gi
 Xây d
Tun 4: 19/8/2012 - 25/8/2012
 Ghép và hoàn thin code
 Test game, tìm li phát sinh và sa
Tun 5: 26/8/2012 - 1/9/2012
Vit báo cáo hoàn chnh  tài.
1.4.2. 
 Hoàn thi khi chung cho c h thng : C nhóm
 Hin th VGA, hoàn thiKhánh
 Bt phím, hin th  Ngc
 Vit báo cáo cui cùng : C nhóm





 Kit DE1
DE1 ( Development and Education ) là mt phiên bn thu nh ca Kit DE2. Nó rt
phù h  hn t st máy tính và FPGAs. Con chip Cyclon II 2C20
c thit k  phc v cho m
phòng lab ci hng. Nó phù h làm nhiu bài tp trong
các môn hn t st máy tính thông qua các ví d n.
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 9

Thông s bn ca kit DE1:
 B nh:
- 8Mb SDRAM.
- 512Kb SRAM.
- 4Mb Flash.
 Âm thanh.
- H tr b codec 24 bit.
 Công tc và ch th.
- 10 công tc chuyn và 4 nút bm.
- 4 led 7 thanh.
-  và 8 LED xanh.
 Các kt ni
- VGA, RS-232, và PS2.
- 2 cng m rng 40 chân.
- Khe cm SD/MMC.
 Ngun

- Có th ngun t cáp USB hoc thông qua cáp ngun riêng.

Hinh 2 Kit DE 1
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 10


Quartus II là công c c s dng trong quá trinh thc hi tài.
c cung cp và cp nhng xuyên bi  thit k tt
nht cho các dòng chip FPGA ca Altera bao gm c Cyclon II 2C20 có trên DE1.
Là công c phân tích và tng hp thit k HDL, nó cho phép nhà phát trin
thc hin thit k ca hng thi cho phép phân tích thi gian, ki
RTL, mô phng h thng và cu hình sn phm mt cách phù hp nht.

t k FPGA vi các phn mm thit k FPGA nói chung và
Quartus II nói riêng:

Hinh 3 Design Flow
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 11

Nó bao gn sau:
 Design Entry  Mt k s c mô t bi các ngôn ng mô t
phn c  Schematic.
 Synthesis  Công c t hp s t hp mch to ra mt file netlist có cha các
phn t logic và các kt ni gia chúng.
 Function Simulation  Cha mch sau t hp s c kinh.
 Fitting  Công c máy tính s t các phn t 

netlist xung các phn t logic trong con chip FPGA thc tng thi chn ra
 kt ni chúng vi nhau.
 Timming Analysis  Phân tích tr truyn dng dây khác nhau
nh th giúp ci thin hic ca mch.
 Timming Simulation  King thi c v mt chn thi gian
ca mch.
 Programming and Configuration  Thc hin mch trên con chip vt lý bng
cách cu hình các phn t logic trên chip và thành lp các kt ni cn thit.









Hinh 4  TNG QUAN
CU
FONT
ROM
PS2
INTERFACE
VGA
CONTROLER
KEYBOARD
MONITOR
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 12


3.1.Bàn phím
Bàn phím vi chun giao tip PS2. Giao tip vi khi x lý thông qua khi PS2
Interface.
3.2.Màn hình
c s dng là màn hình máy tính CRT hoc LCD thông dc
u khin thông qua khi VGA Controller.
3.3.ROM
c s d cha font hin th trong game. Là distributed ROM - c trình
biên dch tng hp t các phn t logic có sn trong chip.
3.4.
Khi chu trách nhiu khin toàn b h thng.

4.  GAME.
4.1. PS2 Keyboard
 u khing di chuyn ca con rn, nhp m bu
 m s i s dng mt
keyboard.
Hin nay trên th ng có 2 loi keyboard là keyboard cng usb và keyboard
cng ps2.Trong snake game do nhóm thc hic ch
s dng .Chúng ta s lt tìm hiu v lot k
các khi cn thi có th nhc d liu gi t keyboard mt cách chính
xác.
4.1.1.
- Giao tip vt lý cng PS2:
Hinh 5 Cng PS2
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 13





Mt cng ps2 có bn chân : chân data ps2d, chân clock ps2c và hai chân ngun là
c cung cp bi host.
D liu t keyboard ti hoc truyn qua chân data mt cách ni tip theo
chun UART.Quá trình truyn d liu bu vi 1 bit start ,8 bit d liu ,1 bit
chn l và 1 bit stop


Start Bit
(1 bit)
Data Bits
(8 bits)
Odd Parity Bit
(1 bit)
Stop Bit
(1 bit)

Hinh 6 Mô t mt khi d liu
Clock ca bàn pc truyn qua chân ps2c có tn s trong khong t
10Khz ti 16,7 Khz, Tín hiu ps2d phi nh ít nhn
lên và xung ca tín hiu ps2c. Ta có th thu này qua hình mô t v
:

Hinh 7 V trí các bit trong qua trình nhn d liu .

Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 14


- Khi nhn d liu PS2:
 có th thu lc d liu thay vì phi thit k mt b ly mu ta s dung mt
mn xung ca tín him tham khu vào ca mch bao
gm tín hiu ps2d và ps2c nhn t keyboard ,tín hiu clock ca host ,mt tín hiu
reset ca h thng và mt tín hiu cho phép nhn d liu t u ra ca
mch s là 8 bit d liu và mt tín hiu báo hiu rx_done_tick.Tín hiu này  mc
cao sau mi chu kì clock.

Ta có  khi ca mch nhn :
KEYBOARD
Filter & Falling
Edge ps2c
ps2_rx
ps2c
ps2d
Falling edge
rst
clk
rx_en
dout (7 downto 0)
rx_done_tick
clk

Hinh 8  khi mch nhn d liu

 ASM ca khi nhn d liu:
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 15


Rx_en=1 and
Fail_edge=1
b<=ps2d (b>>1)
n<= 9
n=0
b<= ps2d & (b>>1)
Fail_edge=1
n<=n-1
rx_done_tick <=1
T
T
T
F
F
Idle
dps
Load
F

Hinh 9 ASM ca mch nhn
V n, mch hong 
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 16

- c tiên  trng thái ch, mch s kin xung ca tín hiu clock
ca PS2 và nhn là start bit.
- c start bit mch s nhn vào 10 bit tip theo bao gm 8
bit d liu, 1 bit chn l và 1 bit stop.

- Cui cùng xut ra 8 bit d liu và chuyn v trng thái ch.
4.1.2..

Trong mc này chúng ta s u v ng thi thit k
mt m gii mã các lnh gi t bàn phím ti Host.
a. Tng quan v mã hóa bàn phím
Mt bàn phím là ma trc nhúng mu khi u
các hong ca bàn phím.Có 3 ch  hong ca các phím có th xy ra là :
- Khi ta bm mt phím thì make code cc truyn

- Khi ta gi mt phím vi th ln khong 0,5 s thì make
code s c truyt cách lp li vi mt t nh chu kì 100 ms.
- Khi ta nh phím thì break code c c truyn.
Hình v  cho ta thy make code ca các phím ca keyboard
:

Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 17

Hinh 10 Make code ca các phím ca keyboard

i vng thì make code ci vi
các phím m rc là t n 4 byte. PS2 keyboard s
truyn tun t code tùy theo hong ca phím. Ví d ta bm và nh phím A thì
c ga nó :
1C F0 1C
i vi phím m rng ví d nút up : E0 75 F0 E0 75
Nu ta nhn m  ra thì make code s c gi nhiu ln :


Nu nhic bm cùng mt lúc thì code gt là make code và
break code ca 2 phím.ví d ta bm 2 phím Shift và A cùng lúc thì coe g là :
12 1C F0 1C F0 12
b. Mch giao tip PS2 keyboard
Mch giao tip PS2 keyboard làm nhim v lc ly thành phn chính trong scan
c sau các hong bm và nh ng thi to ra mt tín hiu
báo hi b u khin có th nh rng
phc v cho mn ng ca con rn ,ch
ng (dùng trong ving ht kt qu cao)
 thu li thành phn chính trong scan code t hong nhn nh phím
là bt break code và bt make code.Trong snake game mà nhóm thc hin thì nhóm
n cách bt make code s nh s c thc hin ngay lp
tc nhc khong thi gian tr ch nh phím nu
chúng ta dùng cách bt break code.
 khi ca mch giao tip vi PS2 keyboard :
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 18

PS2_rx
ps2c
ps2d
ps2c
ps2d
clk
FSM to
get make
code
dout
done_tick

FIFO
wr
w_data
r_data
rd
got_tick
Key_code
got_key

Hinh 11 giao tip vi PS2 keyboard
m chú ý trong mch này là tín hiu got_key.Sau khi mch nhn d lic gi
t u ra là dout và mt tín hiu báo hiu là done_tick.tín hiu
u ra này s i mt m nh thành phn chính ca code
mà ta cn thu l phc v cho các ma chúng ta.Tín hiu got_tick s tích
cc cao khi mc thành phn code cng thi cho phép
ghi thành phn code này vào b FiFo ch cho Control Unit x lý.
c.  khi giao tip vi PS 2 ( * bt nhiu phím)

- Test trên kit De1 vi các led red và green. Mi led sáng (tng vi 1
c nhn (nh S dng 3 thanh ghi 8 bit 

- Trong b Ps2_check có cha ba thanh ghi 8 bit.
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 19


Hinh 12 ba thanh ghi 8 bit
- Ví d: Mun bt phím di chuyn sang trái




4.2.1.
a. 
- 



- 


Xanh (G)


0
0
0

0
0
1

0
1
0
Xanh
0
1
1


1
0
0

1
0
1

1
1
0

Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 20

1
1
1


Hinh 13 
b. 
- 
h_syncv_sync

- 

-
N



- 

3
n.
4.2.2.
- 

VGA_sync
VGA_sync
Pixel generation
circuit
Pixel generation
circuit
h_sync
v_sync
video_on
pixel_x
pixel_y
External
data/control
rgb
VGA
monitor
clock

Hinh 14 
- 
 VGA_sync.

 .
- VGA_sync
h_sync v_sync 
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 21

Pixel_xpixel_y

VGA_sync video_on

- pixel generation circuit rgb


a. 
- h_sync
v_sync
 h_sync:
 v_sync:
- 

- 


border
Visible area
x
y
O
h_video_on

h_sync
0
639 655 751
799
Left
border
display
Right
border
retrace
Left
border

Hinh 15 
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 22


- 
h_sync
 
 

 
.
 


- 

v_video_on
v_sync
0
479 489 491
524
Top
border
display
Bottom
border
retrace
Top
border

Hinh 16 
- 
 
 

 

 


b. 
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 23

- pl

s p*l*s.
- 
- 
p = 800 pixel/line, l=525 line/screen, s=60 screen/second 
 pixel/s.

c. 
-  bit rgb
pixel_x
pixel_y
 bit  mapped .
 tile  mapped .
 object  mapped.
- bit  mapped
trong 
pixel_x, pixel_y

rgbbit  mapped
 
- tile  mapped
bittiletile
bittext.
- object  mapped



 mapped .
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 24


Object 1
Generation circuit
Object 1
Generation circuit
Object 2
Generation circuit
Object 2
Generation circuit
Object 3
Generation circuit
Object 3
Generation circuit
rgb
mux
Data/control
Video_on
pixel_x
pixel_y
rgb

Hinh 17  mapped
- mux

 
pixel_xpixel_y
 
on
 
- muxon

rgb.
  mapped


pixel_ xpixel_y
  mapped
- text sau.
Final Report Bomberman Game on DE1 board

Group 1- K54 – ESRC LAB Page 25

4.2.3. VGA text.
a. 
- tile  mappedtext tile
siêu pixel tile

b. 
- tile
tile 

- tilefontfont
font 8x16



00000000
00000000
00010000
00111000
01101100

11000110
11000110
11111110
11000110
11000110
11000110
11000110
00000000
00000000
00000000
00000000
00000000
00000000
00010000
00111000
01101100
11000110
11000110
11111110
11000110
11000110
11000110
11000110
00000000
00000000
00000000
00000000

Hinh 18 
- 


- tile
tile
tile
-

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×