FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander...

Post on 23-Dec-2015

219 views 1 download

Tags:

Transcript of FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander...

FPGA-Based Arcade

EmulationDanny Funk, Cory Mohling, Tony

Milosch, David Gartner, John Alexander

Advisor: Philip JonesClient: Joseph Zambreno

Project Goal• Goal

o Showcase the capabilities of reconfigurable computing platforms

CPU PPU

ROM Interface

System Control

Memory

I/O (Controllers) Audio Clock Generation

VGA

System Decomposition• Breakdown

o FPGA• CPU• PPU• Video output• Controller I/O• Boot loader • Audio

o Cabinet• Physical Controls

o Joysticko Buttons

• Monitor

System Design

• Controlso Electrical connections to physical controlso Write HDL Module to interface to FPGA

• Pin out on FPGA board

System Design

• Boot loadero Develop Boot loader using Microblaze Processor provided in

Xilinx tools

o Present user with easy to use game selection screen

o Write code to read NES Rom files from Compact Flash

o Parse NES Rom file and load contents into appropriate system memory for the FPGA

o Reset back to Boot loader screen when reset is pressed

System DesignFPGA (Xilinx)

Compact Flash Controller

I/O Interface TFT Controller(VGA Output)

Microblaze

CPU

NES CPU PPU CPU

Frame Buffer

BootloaderC Program

Compact FlashCard

NES Controller VGA Cable

System Design

• Cabineto Use Solid Works to design detailed cabinet drawingso Purchase custom marqueeso Build out of ¾” plywood

System Design

• Audioo Write audio module that generates audioo Connect audio module to CPUo Map all audio related instructions to the moduleo Connect audio module to AC97 to produce sound output

System Design

• PPUo Map CPU memory to PPU registers to allow for game scrollingo Implement Memory mappers to allow for more games to be

playedo PPU is implemented using at 14 stage finite state machine to

render each pixelo Each pixel is stored in a buffer that is then sent to the VGA

output

Test Plan• Test as we go

o After each step, make sure that the game plays as expected

• Simulateo Simulate incremental builds with ModelSim to ensure system

works as expected

• Final Testo Ensure all functional requirements are met, and debug as

necessary.

Current Status• Side Scrolling – 80%• Control Input – 80%• Boot Loader – 25%• Cabinet Design – 95%• Cabinet Construction – 0%• Audio – 0%