ECE 525.442 VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.

Slides:



Advertisements
Similar presentations
Lecture 15 Finite State Machine Implementation
Advertisements

10/14/2005Caltech1 Reliable State Machines Dr. Gary R Burke California Institute of Technology Jet Propulsion Laboratory.
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
TOPIC : Finite State Machine(FSM) and Flow Tables UNIT 1 : Modeling Module 1.4 : Modeling Sequential circuits.
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
ECE FPGA Design: Breakout Semester Project Proposal Derek Rose Richard Wunderlich.
Implementing Logic Gates and Circuits Discussion D5.1.
Implementing Logic Gates and Circuits Discussion D5.3 Section 11-2.
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
GamePal  Mark Fedorak  Vera Casteel  Ron Smith  Kris Pucci.
Team LIT Scott Butler Kristin Haeusler Michael Hatt Brock Smith.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Senior Design I Lecture 2 FPGAs & Verilog.
Lecture 121 Lecture 12: VGA Video ECE 412: Microcomputer Laboratory.
DIGITAL DESIGN WITH VHDL Exercise 1 1Muhammad Amir Yousaf.
THANGJAM105/MAPLD1 EFFICIENT FPGA IMPLEMENTATION OF PWM CORE.
ECE 448: Spring 12 Lab 4 – Part 2 Finite State Machines Basys2 FPGA Board.
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
1 Keyboard Controller Design By Tamas Kasza Digital System Design 2 (ECE 5572) Summer 2003 Presentation for.
PS2 Keyboard Interface Using Spartan-3 Starter Kit Board
Dr. Sanatan Chattopadhyay Dr. Sudipta Bandopahyaya
Programmable Logic- How do they do that? 1/16/2015 Warren Miller Class 5: Software Tools and More 1.
EET 252 Unit 5 Programmable Logic: FPGAs & HDLs  Read Floyd, Sections 11-5 to  Study Unit 5 e-Lesson.  Do Lab #5.  Lab #5a due next week. 
Introduction to Counter in VHDL
Lab 2: Capturing and Displaying Digital Image
Digilent System Board Capabilities Serial Port (RS-232) Parallel Port 1 Pushbutton Hint: Good for a reset button Connected to a clock input. See Digilent.
COE4OI5 Engineering Design Chapter 2: UP2/UP3 board.
Finite State Machines. Binary encoded state machines –The number of flip-flops is the smallest number m such that 2 m  n, where n is the number of states.
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
Owais Ibrahim Akram Mohsin Murad. ONE OF THE BASIC ATTARI GAMES. THE PONG GAME CONSISTS OF A BALL RANDOMLY BOUNCING ON THE SCREEN. A PADDLE AT THE BASE.
Virginia Commonwealth University School of Engineering DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING Embedded Systems-EGRE 631 TECHNO* Toward an Interactive.
Introduction to Experiment 5 VGA Signal Generator ECE 448 Spring 2009.
1 Keyboard Controller Design By Tamas Kasza Digital System Design 2 (ECE 5572) Summer 2003 A Project Proposal for.
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
EE4OI4 Engineering Design UP1core Library Functions.
ECE 477 Design Review Team 2  Fall Outline Project overviewProject overview Project-specific success criteriaProject-specific success criteria.
J. Christiansen, CERN - EP/MIC
FORMAL VERIFICATION OF ADVANCED SYNTHESIS OPTIMIZATIONS Anant Kumar Jain Pradish Mathews Mike Mahar.
ECE 448: Spring 11 Lab 3 Part 1 Sequential Logic for Synthesis.
ACOE361 – Digital Systems Design. Useful information Instructor: Lecturer K. Tatas Office hours: Mo5, Tu3, We6-8, Fri5 Prerequisites: ACOE201 (ACOE161)
Introduction to structured VLSI Projects 4 and 5 Rakesh Gangarajaiah
ECE FPGA Microprocessor Design Erik Lee, Edward Jones, Emily Kan.
Lecture #3 Page 1 ECE 4110–5110 Digital System Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.HW#2 assigned Due.
Programmable Logic Training Course HDL Editor
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Introduction to Experiment 6 Internal FPGA Memories, Pseudo Random Number Generator, Advanced Testbenches ECE 448 Spring 2009.
ECE 448: Lab 4 VGA Display Mini-Pacman. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
ECE 448: Lab 4 VGA Display. Bouncing Ball.. Organization and Grading.
ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
ECE 448: Lab 5 VGA Display. Breaking-Bricks..
ECE 448: Lab 4 VGA Display The Frogger. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
1 ENGG 1015 Tutorial Three Examples of Finite State Machines Supplementary notes Learning Objectives  Learn about Design of Finite State Machines Ack.:
ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
Teaching Digital Logic courses with Altera Technology
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
ECE 448 Lab 3 FPGA Design Flow Based on Xilinx ISE and ISim. Using Seven-Segment Displays, Buttons, and Switches.
ECE 448: Lab 4 VGA Display Snake Game. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
How to use ISE Dept. of Info & Comm. Eng. Prof. Jongbok Lee.
Implementation of Pong over VGA on the Nexys 4 FPGA
LAB #5 Modular Design and Hierarchy using VHDL
Introduction to the FPGA and Labs
Programmable Logic Devices
Introduction to Programmable Logic
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
ECE 4110–5110 Digital System Design
ECE 448: Lab 4 VGA Display Mini-Pacman Game.
Founded in Silicon Valley in 1984
ECE 448 Lab 3 – Part 1 FPGA Design Flow Based on
Implementing Logic Gates and Circuits
Workshop On.
Presentation transcript:

ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones

Outline  Introduction  Background  Design  Implementation/ Verification Troubleshooting Troubleshooting  Results & Analysis  Conclusion Future Outlook Future Outlook  References *Note: Not our version implemented in this project!

Introduction  Low-cost / scalable design influence increases with advances in modern technology  Design reusability becoming more prominent in marketplace  Digital Design w/FPGAs begins to grow Core IP VHDL files easily adaptable and reusable with existing FPGAs Core IP VHDL files easily adaptable and reusable with existing FPGAs Multiple VHDL core instantiations leads to improved design flow Multiple VHDL core instantiations leads to improved design flow

Introduction cont’d  Video game development becomes easier! Functionality of video games application is moved from circuit board ICs to FPGA Functionality of video games application is moved from circuit board ICs to FPGA ○ Alleviates some design challenges, leaving designers to create the implementation Keyboard use Keyboard use Port Control Port Control Display output Display output FPGA selection FPGA selection

Background  Flow of game design Initialize VGA Controller Create initial Background Display Generate Moving Objects Create Frog at Reset Position Detect Frog Motion Check Frog position against objects Output Score Start-Up Sequence Game Sequence

Design  Three files for initial Start-Up Sequence (1) vgaSyncGenerator.vhd (1) vgaSyncGenerator.vhd (2) backGroundGenerator.vhd (2) backGroundGenerator.vhd (3) Objects.vhd (3) Objects.vhd Entity definitions for VHDL files

Design cont’d  vgaSyncGenerator.vhd Creates Horizontal & Vertical display using pixel counters: Hsync / Vsync driven by a 25 MHz clock generated from FPGA Color output created by 8-bit colors generated on VGA port Control Module H-sync V-sync Red (3-bit) Green (3-bit) Blue (2-bit) VGA Port Output Resolution

Design cont’d  backGroundGenerator.vhd Creates the initial background image as a “map” for the game Colors created from horizontal and vertical counting vector position from VGA driver signals Upper Half depicts “water” zone Lower Half depicts “street” zone Grass area always “safe”

Design cont’d  Objects.vhd Implements moving objects for frog to traverse through ○ Upper portion of screen, complete water submersion results in death ○ Lower portion of screen, object collision results in death Log objects on blue portion, car object on black portion

Design cont’d  Four files for Game Sequence (1) frogGenerator.vhd (1) frogGenerator.vhd (2) frogLocation.vhd (2) frogLocation.vhd (3) collisionDetection.vhd (3) collisionDetection.vhd (4) score.vhd (4) score.vhd Entity definitions for VHDL files

Design cont’d  frogGenerator.vhd Generates a square block dubbed as the “frog” to traverse through generated course Implements “dead frog” flashing code if frog moves into hazardous play field Normal Frog Color Dead Frog Flashing

Design cont’d  frogLocation.vhd As the frog moves up the screen, row position & column position vs. objects is being tracked for collision detection Column Position (640 Pixels) Row position (16 blocks)

Design cont’d  collisionDetection.vhd Mealy State machine ○ Places frog “block” in action state Five states as frog travels through game map -On Road -On Grass -On River -Dead -Win State changes depending on object and background colors

On Grass On Road Dead Win All Bgcolor=black Dead=‘0’ All Bgcolor=green/ Dead=‘0’ Any Objcolor /= black Dead =‘0’ Counter< 3secs Dead=‘1’ Counter >=3secs Dead=‘0’ Reset=‘1’ All objcolor = black Dead = ‘0’ All Bgcolor=blue Dead=‘0’ Any objcolor = green Row = 0 Dead=‘0’ Counter< 3secs Dead=‘0’ On River Any objcolor = brown/ OnLog =‘1’ Any Bgcolor = black Dead=‘0’ All Bgcolor=green Dead=‘0’ Counter>=3secs/ Reset=‘1’, Win=‘1’ Design cont’d collisionDetection.vhd collisionDetection.vhd cont’d…

Design cont’d  Score.vhd Point value of 10, 20, or 50 points depending on level of difficulty Point value of 10, 20, or 50 points depending on level of difficulty ○ Difficulty set by user (3 settings) ○ Max of 5000 ○ Can only set at start position Output of running total is displayed on seven segment display on Spartan 3E dev board Output of running total is displayed on seven segment display on Spartan 3E dev board

Design cont’d  Miscellaneous Components Keyboard Component Instantiation ○ Core Implemented in design ○ Mapped to frog direction Output clock to keyboard Input Key Press data from keyboard Map data to frog direction De-bounce Circuit ○ Mapped to buttons on FPGA for user input and switches for levels UpDownLeftRight Game Module Keyboard Data Clock PS/2 Module Data Clock

Design Cont’d  User input to game Choice of keyboard entry or development board

Implementation & Verification  Synthesized Top Module 15 inputs, 21 outputs  Troubleshooting Object verification, death sequence Object verification, death sequence

Results & Analysis  VGA drivers ○ 2 Counters ( pixel count) ○ 35 DFFs ○ 2 Adders / Subtractors ○ 8 Comparators  Frogger Keyboard driver ○ 1 Counter ○ 20 DFFs ○ 1 XOR  Background Generator ○ 8 DFFs  Object Generator ○ 60 DFFs ○ 7 Adder / Subtractor ○ 9 Comparators  Random Generator ○ 1 Counter ○ 1 DFF ○ 1 Comparator ○ 1 Xor  Frog Generator ○ 1 Counter ○ 8 DFFs ○ 5 Comparators  Frog Location ○ 1 ROM (frog Row location) ○ 42 DFFs ○ 3 Adders / Subtractors ○ 3 Comparators  1 Finite State Machine ○ 5 states, 61 transitions, 22 inputs, 3 outputs ○ 1 Counter ○ 64 DFFs ○ 8 Comparators  Score Keeper ○ 1 ROM ○ 38 DFFs ○ 1 Adder/Subtractor ○ 1 Comparator

Results & Analysis  7 Segment Driver ○ 1 ROM ○ 1 Counter ○ 34 Adders / Subtractors ○ 34 Comparators ○ 4 Multiplexers  LED Decoder ○ 1 ROM  Top Level Frogger ○ 1 Counter ○ 9 DFFs ○ 1 Comparator

Results & Analysis cont’d  FPGA Resource Utilization HDL Resource Synthesis Report ROMs4 Adders/Subtractors124 Counters16 Accumulators48 Registers533 Comparators178 Multiplexors1 FSMs1 XORs57 Flip Flops1163 Inputs15 Outputs21

Results & Analysis cont’d  FPGA Device Utilization

Conclusion  Frogger game provided in-depth experience into all phases of design and development using Xilinx FPGA tools: ○ Multiple Component Instantiation ○ Multi-file Design Integration ○ I/O Port configuration Spartan 3E development board package provides robust environment for video game creation:  Spartan 3E development board package provides robust environment for video game creation: ○ Map drawing and level selection ○ Character direction and event driven outcomes ○ Score computation

Conclusion cont’d  Future Outlook / Development Development of frog and background objects using image files pre-loaded into SRAM Reduction of device utilization ○ Use block or distributed RAM ○ Reduce number of DFFs Add levels of complexity ○ Additional frog lives ○ “Win” screen ○ Sound effects

References  NEXYS2 Reference Manual  FPGA Resource Guide tests/designcontest.cfm?contestid=8 tests/designcontest.cfm?contestid=8 tests/designcontest.cfm?contestid=8  Keyboard Implementation & Application _keyboard_interface/theory_ps2.html _keyboard_interface/theory_ps2.html _keyboard_interface/theory_ps2.html