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. LU. 4
B. NI DUNG. 5
1.T tài. 5
tài. 5
1.2. Yêu cu c tài. 5
1.2.1. Yêu cu ch 5
1.2.2. Yêu cu phi ch 5
1.3. Mô t 6
1.3.1.Mô t 6
m. 6
1.3.3.Kt thúc. 7
1.4. K hoch thc hin và phân công công vic. 7
1.4.1. K hoch thc hin 7
1.4.2. Phân công công vic 8
2. Gii thiu Công ngh s dng. 8
2.1. Phn cng. 8
Kit DE1 8
2.2. Phn mm Quartus II 9.1. 10
2.3. Quy trình thit k FPGA vi Quartus II. 10
khi ca h thng. 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.Khi x lý ( CU ) 12
c xây dng tng khi ca GAME. 12
4.1. PS2 Keyboard 12
4.1.1.Khi nhn d liu PS2 12
4.1.2.Mch giao tip vi PS2 Keyboard. 16
4.2. Khi VGA. 19
19
20
4.2.3. VGA text. 25
4.3. Khi di chuyn. 28
4.4 Kht bom. 29
4.5. Khi hin th TEXT. 30
C. KT LUN 34
1. Kt qu c. 34
2. 34
3. Xut. 34
Ph lc 35
Tài liu tham kho 36
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 4
A.
VHDL là mt ngôn ng mô t phn cng cho các mch tích hp t cao vi
nhit trc ng dng trong nhic mà quan trng nht
là trong các thit b logic có th l
Vi vic vn dng nhng kin thc v
t hp vi các tài liu tham kho v lp trình VHDL nâng cao
ng dng làm game nh là game bomberman.
Em xin chân thành bày t lòng bic ti TS Phm Ngc Nam, ti tt c
các anh và các bn tc biu Tip
ng dn cho nhóm chúng em, tu kin cho bn em nghiên cu,
hc tp trong hc k hè. Nhng li nhc nh, nhn xét c
tin b rt nhiu và có th thc hin nt dung thc tp mt cách tt nht.
Do kh n ch và s ng cng logic trên DE1 là có hn nên trong
quá trình làm Game có th không tránh khi nhng thiu sót và gic. Mong
các anh và các bn ch b nhóm em có th hoàn thin
Project này mt cách tt.
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 thc hành trên Kit DE1 ca Altera, chúng em
tip tc phát trin k t k và vn dng vào thc tn khai mt h
thng hoàn chnh trên Kit DE1 v Bomberman on FPGA
1.2
1.2.
- Thc hin trên KIT DE1 ca ALTERA
- Màn hình hin th VGA 640x480 pixels
- Bàn phím chun PS/2
- Audio codec W871 (trên kit)
- Ngôn ng VHDL s dng clock 50Mhz.
1.2.
- Yêu cu giao din, d t.
- Tit kic 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.
- Bu mt hin i
t hin i bên phi ca các b có sn. Thi gian
cu bc ( 200s ).
Mó 4 phím di chuyn:
Player 1
Player 2
Mô t
A
Di chuyn sang trái
S
Di chuyn xui
D
Di chuyn sang phi
W
Di chuyn lên trên
Space
0
t bom
Hinh 1 c s d
- u m có mt mng. Sau khi bom n trúng
t thúc .
- Mi ln n phím mi ch c 1 qu và bom t n sau khi
t là 3s
- n vc
- Gch b phá v khi bom n 1 ln phá v.
1.3.2..
- 20: Phá gch
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 7
u mm nào, s m ca mi
s c cp nht trong mi ván và hin th lên màn hình.
1.3.3..
- i dính bom hoc ht thi gian ca 1 vu
(200s)
- Khi ht gi mà không ai b bom n thì s m. Ai nhi
thng
Tng thi gian thc hin: 01 tháng (27/7/2012 - 28/8/2012)
Báo cáo hàng tun: sáng th 7 hàng tun, trình bày các công vic
hin ti, thc mc cn gi
Báo cáo cui cùng: Th 7, 1/9/2012, báo cáo hoàn chnh và kt thúc
tài
Tun 0: 26/7/2012 - 28/7/2012
Hoàn thành spec c khi cho c h thng.
Tun 1: 29/7/2012 - 04/7/2012
c tài liu và vit khu khin VGA, PS2
Xây dng b c nh
Bt tín hiu ca nhiu phím
Tun 2: 05/8/2012 - 11/8/2012
Hin th, u khin nhân vt di chuyn trên b.
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 8
Tun 3: 12/8/2012 - 18/8/2012
t bom, bom n to ra la, phá gch và gi
Xây d
Tun 4: 19/8/2012 - 25/8/2012
Ghép và hoàn thin code
Test game, tìm li phát sinh và sa
Tun 5: 26/8/2012 - 1/9/2012
Vit báo cáo hoàn chnh tài.
1.4.2.
Hoàn thi khi chung cho c h thng : C nhóm
Hin th VGA, hoàn thiKhánh
Bt phím, hin th Ngc
Vit báo cáo cui cùng : C nhóm
Kit DE1
DE1 ( Development and Education ) là mt phiên bn thu nh ca Kit DE2. Nó rt
phù h hn t st máy tính và FPGAs. Con chip Cyclon II 2C20
c thit k phc v cho m
phòng lab ci hng. Nó phù h làm nhiu bài tp trong
các môn hn t st 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 bn ca kit DE1:
B nh:
- 8Mb SDRAM.
- 512Kb SRAM.
- 4Mb Flash.
Âm thanh.
- H tr b codec 24 bit.
Công tc và ch th.
- 10 công tc chuyn và 4 nút bm.
- 4 led 7 thanh.
- và 8 LED xanh.
Các kt ni
- VGA, RS-232, và PS2.
- 2 cng m rng 40 chân.
- Khe cm SD/MMC.
Ngun
- Có th ngun t cáp USB hoc thông qua cáp ngun 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 dng trong quá trinh thc hi tài.
c cung cp và cp nhng xuyên bi thit k tt
nht cho các dòng chip FPGA ca Altera bao gm c Cyclon II 2C20 có trên DE1.
Là công c phân tích và tng hp thit k HDL, nó cho phép nhà phát trin
thc hin thit k ca hng thi cho phép phân tích thi gian, ki
RTL, mô phng h thng và cu hình sn phm mt cách phù hp nht.
t k FPGA vi các phn mm thit 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 gn sau:
Design Entry Mt k s c mô t bi các ngôn ng mô t
phn c Schematic.
Synthesis Công c t hp s t hp mch to ra mt file netlist có cha các
phn t logic và các kt ni gia chúng.
Function Simulation Cha mch sau t hp s c kinh.
Fitting Công c máy tính s t các phn t
netlist xung các phn t logic trong con chip FPGA thc tng thi chn ra
kt ni chúng vi nhau.
Timming Analysis Phân tích tr truyn dng dây khác nhau
nh th giúp ci thin hic ca mch.
Timming Simulation King thi c v mt chn thi gian
ca mch.
Programming and Configuration Thc hin mch trên con chip vt lý bng
cách cu hình các phn t logic trên chip và thành lp các kt ni cn thit.
Hinh 4 TNG 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 vi chun giao tip PS2. Giao tip vi khi x lý thông qua khi PS2
Interface.
3.2.Màn hình
c s dng là màn hình máy tính CRT hoc LCD thông dc
u khin thông qua khi VGA Controller.
3.3.ROM
c s d cha font hin th trong game. Là distributed ROM - c trình
biên dch tng hp t các phn t logic có sn trong chip.
3.4.
Khi chu trách nhiu khin toàn b h thng.
4. GAME.
4.1. PS2 Keyboard
u khing di chuyn ca con rn, nhp m bu
m s i s dng mt
keyboard.
Hin nay trên th ng có 2 loi keyboard là keyboard cng usb và keyboard
cng ps2.Trong snake game do nhóm thc hic ch
s dng .Chúng ta s lt tìm hiu v lot k
các khi cn thi có th nhc d liu gi t keyboard mt cách chính
xác.
4.1.1.
- Giao tip vt lý cng PS2:
Hinh 5 Cng PS2
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 13
Mt cng ps2 có bn chân : chân data ps2d, chân clock ps2c và hai chân ngun là
c cung cp bi host.
D liu t keyboard ti hoc truyn qua chân data mt cách ni tip theo
chun UART.Quá trình truyn d liu bu vi 1 bit start ,8 bit d liu ,1 bit
chn 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 mt khi d liu
Clock ca bàn pc truyn qua chân ps2c có tn s trong khong t
10Khz ti 16,7 Khz, Tín hiu ps2d phi nh ít nhn
lên và xung ca tín hiu ps2c. Ta có th thu này qua hình mô t v
:
Hinh 7 V trí các bit trong qua trình nhn d liu .
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 14
- Khi nhn d liu PS2:
có th thu lc d liu thay vì phi thit k mt b ly mu ta s dung mt
mn xung ca tín him tham khu vào ca mch bao
gm tín hiu ps2d và ps2c nhn t keyboard ,tín hiu clock ca host ,mt tín hiu
reset ca h thng và mt tín hiu cho phép nhn d liu t u ra ca
mch s là 8 bit d liu và mt tín hiu báo hiu rx_done_tick.Tín hiu này mc
cao sau mi chu kì clock.
Ta có khi ca mch nhn :
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 khi mch nhn d liu
ASM ca khi nhn d liu:
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 ca mch nhn
V n, mch hong
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 16
- c tiên trng thái ch, mch s kin xung ca tín hiu clock
ca PS2 và nhn là start bit.
- c start bit mch s nhn vào 10 bit tip theo bao gm 8
bit d liu, 1 bit chn l và 1 bit stop.
- Cui cùng xut ra 8 bit d liu và chuyn v trng thái ch.
4.1.2..
Trong mc này chúng ta s u v ng thi thit k
mt m gii mã các lnh gi t bàn phím ti Host.
a. Tng quan v mã hóa bàn phím
Mt bàn phím là ma trc nhúng mu khi u
các hong ca bàn phím.Có 3 ch hong ca các phím có th xy ra là :
- Khi ta bm mt phím thì make code cc truyn
- Khi ta gi mt phím vi th ln khong 0,5 s thì make
code s c truyt cách lp li vi mt t nh chu kì 100 ms.
- Khi ta nh phím thì break code c c truyn.
Hình v cho ta thy make code ca các phím ca keyboard
:
Final Report Bomberman Game on DE1 board
Group 1- K54 – ESRC LAB Page 17
Hinh 10 Make code ca các phím ca keyboard
i vng thì make code ci vi
các phím m rc là t n 4 byte. PS2 keyboard s
truyn tun t code tùy theo hong ca phím. Ví d ta bm và nh phím A thì
c ga nó :
1C F0 1C
i vi phím m rng ví d nút up : E0 75 F0 E0 75
Nu ta nhn m ra thì make code s c gi nhiu ln :
Nu nhic bm cùng mt lúc thì code gt là make code và
break code ca 2 phím.ví d ta bm 2 phím Shift và A cùng lúc thì coe g là :
12 1C F0 1C F0 12
b. Mch giao tip PS2 keyboard
Mch giao tip PS2 keyboard làm nhim v lc ly thành phn chính trong scan
c sau các hong bm và nh ng thi to ra mt tín hiu
báo hi b u khin có th nh rng
phc v cho mn ng ca con rn ,ch
ng (dùng trong ving ht kt qu cao)
thu li thành phn chính trong scan code t hong nhn nh phím
là bt break code và bt make code.Trong snake game mà nhóm thc hin thì nhóm
n cách bt make code s nh s c thc hin ngay lp
tc nhc khong thi gian tr ch nh phím nu
chúng ta dùng cách bt break code.
khi ca mch giao tip vi 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 tip vi PS2 keyboard
m chú ý trong mch này là tín hiu got_key.Sau khi mch nhn d lic gi
t u ra là dout và mt tín hiu báo hiu là done_tick.tín hiu
u ra này s i mt m nh thành phn chính ca code
mà ta cn thu l phc v cho các ma chúng ta.Tín hiu got_tick s tích
cc cao khi mc thành phn code cng thi cho phép
ghi thành phn code này vào b FiFo ch cho Control Unit x lý.
c. khi giao tip vi PS 2 ( * bt nhiu phím)
- Test trên kit De1 vi các led red và green. Mi led sáng (tng vi 1
c nhn (nh S dng 3 thanh ghi 8 bit
- Trong b Ps2_check có cha 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: Mun bt phím di chuyn 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_syncv_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_xpixel_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
- pl
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
rgbbit mapped
- tile mapped
bittiletile
bittext.
- 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_xpixel_y
on
- muxon
rgb.
mapped
pixel_ xpixel_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 mappedtext tile
siêu pixel tile
b.
- tile
tile
- tilefontfont
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
-