“推箱子”游戏的FPGA 实现
- 格式:pdf
- 大小:956.32 KB
- 文档页数:17
59 59 59
2005011191 2005011203 2005011212
1. 2. 3. 4.
FPGA 8 8
8
8 8 1byte
64byte
VGA
1) IP
PicoBlaze
PicoBlaze IP
IP IP IP FPGA
PicoBalze
16 8-bit s0~sF FPGA
1024 x 18 bit 8-bit ALU
64 byte 256 /
64byte
IP PicoBlaze
2)
ROM PicoBlaze PicoBlaze
PicoBlaze
VGA
1) IP
(8x8) 8X8
1) a) lastloca b) i. location lastloca ii. flag 1 flag 0 nextloca location
iii. c) flag 1
2) a) nextloca location
nextloca lastlaca lastloca=location location b) nextloca flag c) lastloca lastloca
3)
flag=0
Ram
2) VGA
a) VGA rgb b) c)
VGA : 25.175MHz( : 31469Hz; : 59.94Hz : );
VGA
i.
VGA
ii. 640 480
ENABLE
rgb 0~640 0~480
d) i. 640*480
color-map
256*256
ii. 256*256 32*32 8*8 64
2
lookup_table;
iii.
iv. 8*8
2
v.
1 if
e)
color-map
vga
3) PS2
PS2
1 8
bit
8
data_ready
4)
a)
PicoBlazeⱘManualϞ ĀЎњ⹂ Ё ˈЁ 䳔㽕 ϸϾ 䩳 ⱘ催⬉ āˈ ℸ䳔㽕 INTERRUPTッ ϔϾ DŽ
Ϟ ˈ data_ready ѻ⫳ ˈD㾺 㹿㕂ԡˈҢ㗠INTERRUPTッ 催⬉ ˈ⬅ѢD㾺 ⱘ䕧 ッϢ䕧 ッⳌ䖲ˈѢ Փdata_ready ˈ催⬉ ⱘ⢊ ҡӮ㓈 DŽ ϸϾ ˈ ⧚ ⹂䅸Ё ˈ ACK ˈ D㾺 ⏙䳊ˈҢ㗠Ё г䱣П⍜ ˈϡӮ䞡 ѻ⫳Ё DŽ
䖭 Ё ⱘ ⧚DŽ ҹⳟ ˈ ⦄г䴲 ㅔ DŽb) 䯈䗮
Ϟ ЎPicoBlaze ⧚ ⱘ 䚼 ⼎ DŽ ҹⳟ ˈ 䗮䖛8bitⱘッ IN_PORTˈOUT_PORTˈPORT_ID Ϣ ⱘ䗮 ⱘDŽ
⧚ 䳔㽕 䬂Ⲭǃ ⱘROM䖯㸠䗮 ˈ ℸ PORT_ID 乏 䆥ⷕ IN_PORT 䏃䗝
ˈѻ⫳ℷ⹂ⱘ䗝䗮 ˈ 䆕 㹿䗕 ℷ⹂ⱘⳂⱘ ˈ Ϩ
䆕 ⬅ℷ⹂ⱘ ⑤䗕 DŽ
⦄ ˈ 䳔㽕 䜡㒭ϡ ⱘ 䆒ˈҢ㗠ḍ ッ ⱘ㣗 ѻ⫳Ⳍ 䆒ⱘ䗝䗮 ҹњˈѢ 䖭䞠гϡ 䌬䗄њDŽ c 䯂乬Ϣ䇗䆩
Ӏⱘ䇗䆩䖛г ↣Ͼ 䖯㸠 㞾 ⱘ䇗䆩ˈ 䖯㸠 Ͼ㋏㒳ⱘ㘨䇗DŽ⬅Ѣ ⧚ˈ Ϩ 䯈 Н ⹂ˈ ҹՓ⫼њIPḌˈ Ͼ䆒䅵䖛Ё≵ 䘛 Ậ ⱘ䯂乬DŽ
Ԛ ⼎ Ϟ㾖 ˈ ⦄ϔϾ ⱘ䯂乬ˈ ↣ ϟ 䬂ˈ ϟ䴲 䬂ˈ ϟ䴲 䬂ˈ ϟ 䬂 ˈ ⼎ Ӯ ⦄ⷁ ⱘĀ咥 āˈ䱣 ℷ DŽ䖭Ͼ䯂乬 њ Ӏ䆌ЙDŽ㒣䖛Ҩ㒚㾖 ˈ Ӏ ⦄咥 ℷ⹂ⱘˈ䖭 䇈 ϡ 䆒䅵Ёⱘ䘏䕥 њ䯂乬DŽ咥 㛑 Ў ⼎ 䙷Ͼ њ DŽѢ Ӏ Ҩ㒚Ẕ њVGA ⱘ䕧 ˈ ⦄ҷⷕ 䑿≵ 䯂乬DŽ䖯ϔℹ㾖 ˈ Ӏ ⦄ 䇗䆩䖛ЁˈЎњẔ 䬂Ⲭ䆥ⷕ ℷ⹂ˈ Ӏ 䆥ⷕ㒧 䗕 њ7↉䆥ⷕ ˈ䗮䖛 ⷕㅵ 㾖 㒧 DŽ㗠 䬂Ϣ䴲 䬂П䯈 7↉ ⷕㅵЁⱘ 䚼 䛑 ⫳њ ˈӮϡӮ ⬅Ѣ䖭⾡ 㟈њ偅 㛑 ⱘϟ䰡Ң㗠 њVGA ⱘ䕧 ˛Ѣ Ӏ䞡 њ 7↉ ⷕㅵⱘ ˈՓ 䬂Ϣ䴲 䬂П䯈ⱘ ⷕㅵ ⫳њ ˈ ⦄ ✊咥 ⱘ䯂乬ϡ ⦄њˈ䖭
г 䆕њ Ӏⱘ⣰ DŽ
c ⦄
㒜ˈ 䆒䅵ⱘ ϟ˖
䩞Ⰸ Ҍ⍨ 喍9*$
䶴㒞 喍ү⩘ ̺ 䔹
䃨
㒣䖛 ⱘ䆩⥽ˈ␌ 㡃 ˈ ⦄BugDŽϟ䴶 Ӏⱘ䆒䅵 ⼎ Ϟⱘ ˖
㒜⬅Xilinx䕃ӊ㒭 ⱘ䌘⑤ ⫼⥛Ў˖
Number of occupied slices:
332/960 33%
г ҙ ⫼њ ⱘ㑺1/3ⱘ䌘⑤ њ䆒䅵DŽ
̶c 㒧Ϣ 㦋
1. 䆒䅵Ϣ㋏㒳ⱘ
X Ϟ䇒ⱘ 䚥㗕 㒭 Ӏ䆆 њ ㋏㒳㑻䆒䅵ⱘⶹ䆚ˈ ҢHDLⱘ㓪ˈ ԧⱘϔѯㅫ⊩ˈ䖬 ϔѯIPḌⱘՓ⫼ˈ
ϔϾ㋏㒳㽕䆆お ԩ䆒䅵 ˈϔ㠀ⱘ ⊩ Ң乊㟇ϟˈ ㋏㒳
ϔѯ ㋏㒳ˈ✊ ϔѯ ԧ 㛑 DŽϡ ⱘ 㛑 ⱘ
ҹ⫼ϡ ⱘ ⊩ˈ䖭䞠 Ӏ䗝 њ⫼PicoBlazeⱘ ⧚ 䖯
㸠 DŽ
2.IPḌⱘՓ⫼Ϣㅔ ⱘ ㋏㒳
X䖭䞠 Ӏ↨䕗 ⡍⚍ⱘϰ㽓 㒧 њPicoBlazeⱘ ⧚ IPḌⱘ ⫼ Ӏⱘ␌ ㋏㒳DŽ㒧 Ӵ㒳ⱘHDLⱘ 䗄㋏㒳ⱘ
⊩ˈ✊ 䖯㸠㓐 䖲 DŽ㗠ϨIPḌⱘՓ⫼㛑 Փ Ͼ㋏㒳 㾘 ˈ
Ϩ㛑 Փ⫼∛㓪䇁㿔 䘏䕥 ˈ њ䇗䆩ⱘ䖛DŽℸ
ˈIPḌг 䖭䮼䇒 㒭 ӀⱘϔϾ䞡㽕ⱘὖ Ϣ ⊩ˈ ҹ
Ӏ 䆩ϔϟՓ⫼IPḌ䖯㸠FPGA ⱘ㒣 DŽ
X Փ⫼IPḌ䖯㸠FPGA㋏㒳㑻 ϔϾ ✊䳔㽕 ⱘϔ䮼ⶹ䆚ˈг Ҟ ⦄↨䕗 㾘㋏㒳ⱘϔϾ䍟 ˈ䇒Ϟˈ䚥㗕 㢅
њ↨䕗 ⱘ 䯈 Ӏ䆆 PicoBlaze MicroBlazeϸ⾡ ⧚
ⱘ⫼⊩ ՟䆆㾷ˈ⫼∛㓪 C䇁㿔г ḋ ҹㅔ 䖯㸠FPGAⱘ