10 likes | 115 Views
DESIGN REQUIREMENTS. ABSTRACT. TECHNICAL DETAILS. Functional 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
E N D
DESIGN REQUIREMENTS ABSTRACT TECHNICAL DETAILS • Functional 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 power • Non-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 The 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. • 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 CONCEPT DIAGRAM • 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 Boot Loader Compact Flash Game Controls • 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 27” CRT Monitor • 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 PROJECTRESOURCES Xilinx ML507 Our 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. TESTING • 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 CONCLUSION The 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. Team May1114 Tony Milosch(CprE) Cory Mohling(CprE) John Alexander (CprE) David Gartner (CprE) Advisor Phillip Jones Assistant Professor Electrical and Computer Engineering Client/Advisor Joseph Zambreno Assistant Professor Electrical and Computer Engineering Danny Funk(CprE)