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

13
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno

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

Page 1: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

FPGA-Based Arcade

EmulationDanny Funk, Cory Mohling, Tony

Milosch, David Gartner, John Alexander

Advisor: Philip JonesClient: Joseph Zambreno

Page 2: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: 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

Page 3: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

System Decomposition• Breakdown

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

o Cabinet• Physical Controls

o Joysticko Buttons

• Monitor

Page 4: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

System Design

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

• Pin out on FPGA board

Page 5: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

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

Page 6: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

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

Page 7: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

System Design

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

Page 8: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
Page 9: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
Page 10: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

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

Page 11: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

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

Page 12: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

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.

Page 13: FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.

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