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/2/0810/2/2008ECE 561 -ECE Lecture 51 State Machine Implementation 10/2/20081ECE Lecture 5.
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
ECE FPGA Design: Breakout Semester Project Proposal Derek Rose Richard Wunderlich.
FPGA Breakout Atari 2600 Video Game FPGA Reproduction
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.
Lab 3 & 4 Discussion EE414/514 VHDL Design September 25.
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.
THANGJAM105/MAPLD1 EFFICIENT FPGA IMPLEMENTATION OF PWM CORE.
ECE 448: Spring 12 Lab 4 – Part 2 Finite State Machines Basys2 FPGA Board.
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.
CPE 169 Digital Design Laboratory Digilent Inc. Nexys Development Board.
Lab 2: Capturing and Displaying Digital Image
Gheorghe M. Ştefan
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.
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.
Boolean Algebra (Continued) ELEC 311 Digital Logic and Circuits Dr. Ron Hayne Images Courtesy of Cengage Learning.
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.
Spring Introduction  Today’s tutorial focuses on introducing you to Xilinx ISE and Modelsim.  These tools are used for Verilog Coding Simulation.
Comments on Lab #4 Annotating Timing Diagrams Draw viewer’s attention to the points you are trying to show / verify –Important output states glitch or.
Advanced Digital Circuits ECET 146 Week 5 Professor Iskandar Hack ET 221G, Me as I typed this slides.
EE4OI4 Engineering Design UP1core Library Functions.
ECE 477 Design Review Team 2  Fall Outline Project overviewProject overview Project-specific success criteriaProject-specific success criteria.
Serial Link Game Team 1 Levi Balling, Robert Christensen, James Lewis 9 RS232 Team 1CS 3710.
Introduction to VGA 數位電路實驗 TA: 吳柏辰 Author: Trumen.
FPGA Design Flow Based on Using Seven-Segment Displays,
ECE 448: Spring 11 Lab 3 Part 1 Sequential Logic for Synthesis.
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
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.
Computer Engineering 4OI4 Project Proposal James Gurunlian Clarence Ngai
Lopamudra Kundu Reg. No. : of Roll No.:- 91/RPE/ Koushik Basak
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.:
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Project initiation: NOV 2014 PROJECT’S MID PRESENTATION.
Teaching Digital Logic courses with Altera Technology
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Logic Design Dr. Oliver Faust.
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.
ECE 448 Lab 3 FPGA Design Flow Based on Xilinx ISE and Isim. Using Seven-Segment Displays, Buttons, and Switches.
Implementation of Pong over VGA on the Nexys 4 FPGA
Introduction to the FPGA and Labs
Maj Jeffrey Falkinburg Room 2E46E
DE2-115 Control Panel - Part I
Project 2: Ultra Traffic Light Controller
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.
Introduction to VGA Digital Circuit Lab TA: Po-Chen Wu.
EE4OI4 Engineering Design
♪ Embedded System Design: Synthesizing Music Using Programmable Logic
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  Results & Analysis  Conclusion Troubleshooting Troubleshooting 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 count pixel position with H / 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 file vgaSyncControler.vhd 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, water collision results in death ○ Lower portion of screen, object collision results in death Frog on water in upper portion resulting in death sequence *Note: Death sequence to be explain in later slide

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

Design cont’d  frogLocation.vhd

Design cont’d  collisionDetection.vhd

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 win=‘1’ On River Any objcolor = brown/ OnLog =‘1’ Any Bgcolor = black Dead=‘0’ All Bgcolor=green Dead=‘0’ Counter>=3secs/ Reset=‘1’ Design cont’d collisionDetection.vhd collisionDetection.vhd cont’d…

Design cont’d  Score.vhd Upon successfully reaching the end of the course, the user is awarded 10, 20, or 30 points depending on level of difficulty Upon successfully reaching the end of the course, the user is awarded 10, 20, or 30 points depending on level of difficulty ○ Difficulty set by user (3 settings) 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 ○ Utilizes seg7driver.vhd, counterwithPulse.vhd, and led_decoder.vhd

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 (11-bits) 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

Implementation & Verification  VGA drivers 2 Counters ( pixel count) 35 DFFs 2 Adders/Subtractors 8 Comparators  PS/2 Keyboard driver 1 Counter 20 DFFs 1 Xor  Background Generator 8 DFFs  Object Generator 2 Accumulators 8 DFFs 1 Adder/Subtractor 5 Comparators  Frog Generator 1 Counter 8 DFFs 5 Comparators  Frog Location 1 ROM (frog Row location) 42 DFFs 3 Adders/Subtractors 5 Comparators  1 Finite State Machine 5 states, 61 transitions, 22 inputs, 3 outputs 1 Counter 64 DFFs 8 Comparators

Results & Analysis  FPGA Resource Utilization

Results & Analysis cont’d  FPGA Device Utilization

Results and Analysis

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  Troubleshooting  Future Outlook / Development Development of frog and background objects using image files pre-loaded into SRAM Modified level designs

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

Design PS/2 Keyboard Component Instantiation of ○ PS/2 driver core given ○ Basic connection and logic Output clock to keyboard Input keypress data from keyboard (11- bits) Map data to frog direction UpDownLeftRight Game Module Keyboard Data Clock PS/2 Module Data Clock

Design Overview  Block Diagram ○ Object generator ○ Frog generator ○ Background generator ○ Frog Location ○ Collision Detection – Implements Rules and Interactions

Design Rules Implementation  Finite State Machine - Mealy  Define outputs Dead Reset On a log  Define inputs Object colors Background colors Frog position  Define states  Define transitions (interactions with objects and background)