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

Slides:



Advertisements
Similar presentations
Nios Multi Processor Ethernet Embedded Platform Final Presentation
Advertisements

Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another.
Trackmate Nathan Beste, Justin Flair, Arzhang Badiozamani, Evan Graves ECE 189 A/B Spring 2013.
Design Methodology for High-Level Model Based on an Eight Bit Entertainment System Alejandro Lizaola, Ricardo D. Castro, Gilberto Beltran. Manuel Salim.
Computer Hardware Software Network Peripheral devices Input Breaking codes Modeling weather systems Mainframe Server System unit CPU Input Devices Data.
Types of Computers & Computer Hardware Computer Technology.
Team 7 / May 24, 2006 Web Based Automation & Security Client Capstone Design Advisor Prof. David Bourner Team Members Lloyd Emokpae (team Lead) Vikash.
Computer Basics 1 Computer Basic 1 includes two lessons:
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion - Israel institute of technology department of Electrical Engineering Virtex II-PRO Dynamical.
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
CAD/CAM Design Process and the role of CAD. Design Process Engineering and manufacturing together form largest single economic activity of western civilization.
P08009 Audible Memo Board Phase II Monday, October 22, 2007 P08009: Audible Memo Board Phase II Sponsor: Tala Hopkins Jon GosligaAudio Output Lead Loic.
Computer Parts There are many parts that work together to make a computer work.
Computer Basics Flashcards #2
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
M. Guymon Pleasant Grove High Spring 2003 Types of Computers & Computer Hardware Computer Technology Day 1.
8. INPUT, OUTPUT and storage DEVICES i/o units
Unit 3: Hardware Components & Software Concepts
Guide to MCSE , Second Edition, Enhanced 1 Objectives Understand and use the Control Panel applets Describe the versatility of the Microsoft Management.
Ashley Good David Graziano Tim Meyer Ben Petersen Matt Saladin Advisors Joseph Zambreno Phillip Jones.
 Chasis / System cabinet  A plastic enclosure that contains most of the components of a computer (usually excluding the display, keyboard and mouse)
Operating systems.
Computer Organization
Elements of a Computer System Dr Kathryn Merrick Thursday 4 th June, 2009.
Bomberman Fredrik Ahlberg – Magnus Hultin – Adam Johansson –
ABSTRACT The purpose of this project is to continue to perfect the Nintendo Entertainment System (NES) emulation on an FPGA that would showcase Iowa State.
ECE 477 Design Review Team 19  Spring 2013 Paste a photo of team members here, annotated with names of team members. Calvin Mwesigwa John Marston Noah.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
INTRODUCTION TO COMPUTING
Impulse Embedded Processing Video Lab Generate FPGA hardware Generate hardware interfaces HDL files HDL files FPGA bitmap FPGA bitmap C language software.
Operating Room Instrument Rapid Delivery System sddec11-03 Group Members: Charles Ristau (Group Manager) Yik Sen Tan (Webpage Designer) Tariq Azmy (Secretary)
Translate the following message:
By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.
Serial Link Game Team 1 Levi Balling, Robert Christensen, James Lewis 9 RS232 Team 1CS 3710.
Panzer Division bit Central Processing Unit.
The Guts. CPU CPU Socket The CPU is generally a 2 inch ceramic square with a silicon chip located inside. The chip usually about the size of a thumbnail.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
 The TenCup Entertainment Table is an interactive table that enhances the game-play experience of Beirut for both the player and the spectator.
Advisor: Dr. Edwin Jones 1 Client: Paul Jewell ISU Engineering Distance Learning Facility May01-13 Design Team: David DouglasCprE Matt EngelbartEE Hank.
Network Enabled Wearable Sensors The Combined Research Curriculum Development (CRCD) project works with the Virtual Reality Applications Center (VRAC)
Soundscapes James Martin. Overview Problem Statement Proposed Solution Solution Created (Modules, Model, Pics) Testing Looking Back See It in Action Q&A.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
By Danny Matthews Supervised by Dr Des Watson. 8 Bit 8 Bit console released in Million 60 Million Units Sold 1000 Released Titles Over 1000 Released.
 The TenCup Entertainment Table is an interactive table that enhances the game-play experience of Beirut for both the player and the spectator.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Click once to reveal the definition. Think of the answer. Then click to see if you were correct. HARDWARE Physical parts of the computer.
Software Engineering Lecture # 1.
Types of Computers & Computer Hardware Computer Technology Day 1.
1 ENG224 INFORMATION TECHNOLOGY – Part I 1. Introduction to Computers.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
Computer parts Kara Ross. Mother board A motherboard (sometimes alternatively known as the mainboard, system board, planar board or logic board[1]) is.
R. Stewart Fayetteville High School Types of Computers & Computer Hardware Computer Technology.
ECpE Student Database Team 21 Adviser: Tien Nguyen ECpE and Tony Moore.
Virtual Machines Module 2. Objectives Define virtual machine Define common terminology Identify advantages and disadvantages Determine what software is.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
GCSE Computing: A451 Computer Systems & Programming Topic 3 Software System Software (1) The Operating System.
Abstract Hooked on Harmonix has been helping you play piano since The project takes input from a commercial MIDI keyboard and displays an image of.
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
System Software (1) The Operating System
PARSLEY PIE BOX James (Kyle) Parsley Network Security & Electronics Program.
Part 1 WHAT SHOULD HAVE BEEN COVERED DAY ONE Ms. T. N. Jones1.
Advanced Computer Systems
Computer Architecture & Operations I
Serial Data Hub (Proj Dec13-13).
FPGA-Based Arcade Emulation
Outline Chapter 2 (cont) OS Design OS structure
♪ Embedded System Design: Synthesizing Music Using Programmable Logic
Presentation transcript:

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

Overview Project Plan and Design Design Challenges 2 nd Semester Implementation Final Results

Project Objective Goals o Showcase the capabilities of reconfigurable computing platforms o Have a system that can be used for demonstrations Problem o Demonstrating reconfigurable computing to non-technical users o Demonstrate capabilities in captivating way

Conceptual Solution FPGA Capabilities o Continue 09/10 Senior Design teams NES Emulation through FPGA o Entire NES and game selection contained on single FPGA board Presentations o Have wide selection of playable games o Create arcade machine that can be put on display

Concept Diagram Controls (I/O) Boot loader Compact Flash Card

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

Functional Requirements 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 100 lb 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 Cabinet shall be durable to withstand demonstrations

Considerations Constraints o System has to be designed around NES ROM files and NES instruction set o Only a limited amount of logic on FPGA board o Cabinet should be able to be moved from building to building on campus Technology o Using new monitor technology with old NES o Interfacing with arcade controls

Market Survey Another project currently exists (Veri NES). The source is not available. Various software emulators are available and will help with understanding the NES. Researched how similar arcade cabinets have been built. Took measurements of button layouts from original arcade cabinets.

Risks and Mitigations Unfamiliarity with FPGA coding and NES Architecture o Research with assistance of advisor Audio may require CPU to be rewritten o Start early on Audio Unforeseen extra design required o Start Early on FPGA work Little experience with woodworking o Seek outside advice and make detailed blueprints

Schedule Split team into 3 groups o Emulator, Boot Loader, and Cabinet

System Decomposition FPGA o CPU o PPU o Video output o Controller Input o Boot loader o Audio Cabinet o Physical Controls Joystick Buttons o Monitor

System Design- Controls Develop an arcade style interface for the NES emulator Create wire riggings for all the joysticks and buttons Each button is mapped directly to the controller status register

System Design-Boot Loader Develop boot loader using Microblaze Processor provided in Xilinx tools Present user with easy to use game selection screen Read NES Rom files from Compact Flash Parse NES Rom file and load contents into appropriate system memory for the FPGA Reset back to boot loader screen when reset is pressed

System Design

System Design- Cabinet Use Solid Works to design detailed cabinet drawings Used feedback from client Purchase custom marquees Build out of ¾ plywood Detachable Control Box Hidden screw and nail holes Hinged control box for easy viewing of FPGA

System Design- Audio Write audio module that generates audio Connect audio module to CPU Map all audio related instructions from the CPU to the module Connect audio module to AC97 to produce sound output

System Design PPU o Map CPU memory to PPU registers to allow for game scrolling o Implement Memory mappers to allow for more games to be played o PPU is implemented using a 14 stage finite state machine to render each pixel o Each pixel is stored in a buffer that is then sent to the VGA output

Emulator Implementation Improved functionality of past groups 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

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 CPU Timing Failure Sprite Test Failure

Emulator Design Revision True NES hardware emulation required more resources then initially predicted Adopted strategy of software emulation New design still met original goals of the project Allows for over 120 games to work

Boot Loader Implementation C code written to run on PowerPC processor Initializes memories for screenshots, fonts, and music 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

Boot Loader Testing Tested boot loader with debug statements sent through UART Debug statements used to verify values in memory, and functionality of software

Cabinet Construction ¾ cabinet grade plywood used for economical strength and durability Kreg Joints hide screws without compromising strength Used Jim Jensen as resource while building the cabinet

Cabinet Construction Control box is removable from main cabinet assembly for demonstrations on any VGA monitor Wheels attached for easy transportation Construction presented interesting engineering challenges

Final Costs ItemCost 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$ Cabinet Total$ Labor – 1130hrs$22,600.00

Final Results

Moving Forward Lessons Learned o Take the time to learn the tools o Allow for ample time to acquire supplies o Don't set goals until you understand the full complexity of the project o Don't be worried about asking stupid questions o Have a base understanding before diving in Future of the project o Cabinet can be reused o Networked gaming o Advanced systems

Questions