ABSTRACT The purpose of this project is to continue to perfect the Nintendo Entertainment System...
-
Upload
quentin-mckenzie -
Category
Documents
-
view
217 -
download
0
Transcript of ABSTRACT The purpose of this project is to continue to perfect the Nintendo Entertainment System...
ABSTRACTThe purpose of this project is to continue to perfect the Nintendo Entertainment System (NES) emulation on an FPGA that would showcase Iowa State University’s expertise in reconfigurable hardware. An authentic arcade cabinet was created to house the system to give it a visually appealing look. The demonstration of reconfigurable hardware technology can be used as a recruiting tool for potential students, and showcasing past students’ projects.
DESIGN REQUIREMENTSFunctional Requirements• Emulator must support the instruction set used by the original NES System• All NES-specific emulation must be performed entirely in hardware• Physical interface shall support 2-player arcade style controls• Graphical interface must allow for selection of all available games on compact flash card• Boot loader must read ROM files and initialize emulator memories• Cabinet must support 100lb monitor, and run on standard 120 VAC powerNon-Functional Requirements• All emulator components shall be implemented as individual modules• Cabinet shall be safe for all age groups• Users’ interaction with boot loader shall be understandable without additional help• Cabinet shall be a vintage style arcade cabinet to house the system
CONCLUSIONThe emulator turned out to be more work than expected, especially with getting the timing between the CPU and PPU to be correct. Despite these difficulties the emulator is now better documented and more robust, leaving it in a better position for future groups. For our final demonstration a NES emulator was ported to an embedded PowerPC processor on the FPGA. This was a slight deviation from our original idea, but was not a trivial task. The current implementation successfully meets our goals of displaying the power of FPGA technology. The boot loader has been implemented and allows for an easy to use interface for selecting games for the NES. The completed cabinet will provide years of demonstration capabilities for Iowa State University’s Computer Engineering Department. With a vast selection of games running on a large CRT monitor, it is easy to have many nostalgic memories.
Tony Milosch (CprE)Cory Mohling(CprE)
John Alexander (CprE)David Gartner (CprE)
Team May1114
Danny Funk(CprE)
Client/AdvisorJoseph ZambrenoAssistant Professor
Electrical and Computer Engineering
PROJECT RESOURCESOur budget was only used on the materials for the cabinet, and its construction. Most of our budget was spent on purchasing the best possible arcade monitor because it is the main focus point for the users. The FPGA board was provided by the department, and was not factored into the budget.
Item Cost
Cabinet $760.00 – Total
Wheels $40.00
Speakers $20.00
Screws $10.00
Plywood $90.00
Marquee $20.00
Marquee Light $20.00
T-Molding $10.00
Paint/Primer $50.00
Monitor $500.00
Labor – 963.5hrs $19,270.00
Emulator• Improved functionality of past group’s design• Tweaked PPU and CPU clocks to more closely
match the original NES• Cleaned up existing code to make it more
understandable for future projects
TECHNICAL DETAILS
Central Processing Unit (CPU) • Open source 6502 processor reads instructions
from the ROM files • Decodes instructions and controls rest of system
Picture Processing Unit (PPU)• Responsible for rendering a 256x240 image • Combines the color palettes, sprites, and
background
Boot Loader• C code written to run on MicroBlaze processor• Program displays metadata from compact flash card• Graphical interface allows user to select desired
game from list• Loads game data from ROM files into emulator
memories
Cabinet• ¾” cabinet grade plywood used for economical
strength and durability• Kreg Joints hide screws without compromising
strength• Control box is removable from main cabinet
assembly for demonstrations on any VGA monitor• Wheels attached for easy transportation
CONCEPT DIAGRAM
Compact Flash
Game Controls
27” CRT Monitor
Boot Loader
Xilinx ML507
Emulator Testing• Tested modified pieces of emulator separately• Ran tests found from NES development
community in ModelSim that tested the entire system completely
• When tests passed in ModelSim, implementation was tested for robustness on the hardware
Boot Loader Testing• Tested boot loader with debug statements
sent through UART• Debug statements used to verify values in
memory, and functionality of software
CPU timing fail
Sprite test failure
TESTING
AdvisorPhillip Jones
Assistant ProfessorElectrical and Computer Engineering