Implementation of Pong over VGA on the Nexys 4 FPGA

Slides:



Advertisements
Similar presentations
Lecture 15 Finite State Machine Implementation
Advertisements

Table 7.1 Verilog Operators.
1 COMP541 Video Monitors Montek Singh Oct 1, 2014.
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Microcontroller Video Object Tracking Featuring Human Tetris, Brick Breaker, and Whack-A-Mole ECE4760: Final Project by Kerran Flanagan (kaf42) & Adam.
ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
FPGA Breakout Atari 2600 Video Game FPGA Reproduction
Stop Watch Sean Hicks Dongpu Jin ELEC 307 Project 2 Instructor: Alvaro Pinto April/12/2011.
Display Technology  Images stolen from various locations on the web...
Display of Objects on Screen. COUNTERS b A horizontal counter represents the horizontal position of the monitor’s electron beam. b A vertical counter.
This Snake is Down Right Fierce Charles Hung Final Project.
Analog-to-Digital Converters Lecture L11.2 Section 11.3.
User-friendly stylus and video surface CAD system Jeremy Schwartz Paul Peeling Faraz Ahmad.
VGA Port Discussion D9.1. Raster Scan Displays Electron beam CRT.
Project 3 Build an Astable Multivibrator
Lecture 121 Lecture 12: VGA Video ECE 412: Microcomputer Laboratory.
Laser Tracking System (LTS) Son Nguyen Jassim Alshamali Aja ArmstrongMatt Aamold.
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.
Introduction to Counter in VHDL
Piano Dance Revolution - CHARLIE’S ANGELS …and Charlie.
Introduction to TouchDevelop
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.
ECE 448: Lab 6 VGA Display (mini chess game). Video Graphic Array (VGA) Resolution: 640x480 Display: 16 colors (4 bits), 256 colors (8 bits) Refresh Rate:
Analog to Digital conversion. Introduction  The process of converting an analog signal into an equivalent digital signal is known as Analog to Digital.
Introduction to Experiment 5 VGA Signal Generator ECE 448 Spring 2009.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 1 VGA Synchronization ECE 448 Lecture 9.
1 COMP541 More on State Machines; and Video Scanout Montek Singh Feb 16, 2010.
Introduction to VGA 數位電路實驗 TA: 吳柏辰 Author: Trumen.
COMP541 Video Monitors Montek Singh Oct 2, 2015.
BYU ECEn 320 Lab 4 UART Transmitter. BYU ECEn 320 UART Transmimtter Specification VGA Serial A1 Expansion Connector PS2 A2 Expansion Connector B1 Expansion.
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.
CascadedBCDCntr&Display Aim : Capture, simulate and implement a 2-digit, loadable BCD up/down counter, with chip enable I/P (CE) and chip enable O/P (CEO).
Assignment 8 solutions 1) Design and draw combinational logic to perform multiplication of two 2-bit numbers (i.e. each 0 to 3) producing a 4-bit result.
ECE 448: Lab 4 VGA Display. Bouncing Ball.. Organization and Grading.
Computer Engineering 4OI4 Project Proposal James Gurunlian Clarence Ngai
December 14, 2006Anuj K. Purwar1 Design proposal for Read Out Card (ROC) Anuj K. Purwar December 14, 2006 Nevis Meeting.
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..
Figure 10.1 Color CRT and Phosphor Dots on Face of Display.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 3 Animation ECE 448 Lecture 11.
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Project initiation: NOV 2014 PROJECT’S MID PRESENTATION.
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 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.
TFT-LCD Display + Camera
1 COMP541 Video Monitors Montek Singh Mar 11, 2016.
A versatile FPGA based photon counter and correlator sudersan dhep meet’16.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 3 Animation ECE 448 Lecture 11.
Status and Plans for Xilinx Development
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 5 The Complete Pong Game ECE 448 Lecture 13.
COMP541 Video Monitors Montek Singh Oct 7, 2016.
Free Projects For CENG 3430 CENG3430 Free Projects v.7c.
Sequential Logic An Overview
COMP541 Video Monitors Montek Singh Sep 15, 2017.
VGA Display Part 1 VGA Synchronization
Digital Electronics Multiplexer
COMP541 Video Monitors Montek Singh Feb 20, 2015.
Iwaki System Readout Board User’s Guide
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Digital Electronics Multiplexer
EEL 3705 / 3705L Digital Logic Design
FPGA Project I: Up/Down Counter w/ Async Reset
Introduction to VGA Digital Circuit Lab TA: Po-Chen Wu.
COMP541 Video Monitors Montek Singh Feb 6, 2019.
Advanced Computer Architecture Lecture 1
VGA Display: VGA Synchronization & Pixel Generation
Presentation transcript:

Implementation of Pong over VGA on the Nexys 4 FPGA EECS 443: Digital Systems Design Final Project Presentation Austin Cosner and David Easley 5/3/2016

Presentation Overview Project Introduction VGA Tutorial Project Implementation Project Demo Wrap-Up

Project Introduction Project Objective Advantages of Pong Game using VGA Advantages of Pong Easy Implementation Rectangular Objects Basic Physics

VGA Tutorial Basic VGA Components H Sync (Horizontal Sync) V Sync (Vertical Sync) Colors On the Nexys 4 Board 4 bits per color RGB

VGA Tutorial H Sync and V Sync Signal Explanation

VGA Tutorial Sync Signal Components Sync Pulse Back Porch Front Porch Visible Display Area

VGA Tutorial RGB Signal Explanation 4 bits for each RGB Component 12 bit Color total 4096 Color Combinations Creates a Voltage 0V to 0.7V Color is sampled per pixel

VGA Tutorial Timing Example (800x600@60 Hz)

Project Implementation 7 Modules

Project Implementation (G1 : CLK Wiz) Module 1 : Clocking Wizard Xilinx IP Found in IP Catalog Operation 100 MHz => 40 MHz Generate Pixel Clock

Project Implementation (G2 : VGA Contr.) Module 2 : VGA Controller Custom Design Backbone Module Operation Create H Sync, V Sync and Video On Signals Generate Signals and Pixel Counters

Project Implementation (G2 : VGA Contr.) Main Process 2 Counters Horizontal Counter Range 0 to 1055 Vertical Counter Range 0 to 627 Horizontal Visible 216 to 1016 Vertical Visible 29 to 629

Project Implementation (G3 : Pixel Gen.) Module 3 : Pixel Generator Custom Design Backbone Module Operation Generate RGB Signals Generate RGB Signals based on VGA Controller Counters

Project Implementation (G3 : Pixel Gen.) Object Drawing While the current pixel being drawn is within the bounds of an object, set that object to the “on” state Constants (for permanent bounds) and signals (for movement)

Project Implementation (G3 : Pixel Gen.) Color Selection Processes Decisions made on a per-pixel basis Aligned with the VGA clock With-select-when dependent on what pixel is currently in question

Project Implementation (G3 : Pixel Gen.) Paddle Movement Reset to middle of side Button press sends paddle up/down Paddle movement signals used in ball reflection

Project Implementation (G3 : Pixel Gen.) Ball Movement Reset to center, starting velocity randomized (see random generator later) Next state logic advancement at beginning of process iteration

Project Implementation (G3 : Pixel Gen.) Ball Movement ctd. Result of ball impact on paddle varies on paddle movement Same direction movement = higher velocity ball Opposite direction slows and changes ball’s vertical movement

Project Implementation (G3 : Pixel Gen.) Ball Movement ctd. Ball reflects off of the screen bounds and the wall based on current position

Project Implementation (G3 : Pixel Gen.) Ball Movement ctd. Prevent ball’s next position from going through the paddle or wall

Project Implementation (G4 : CLK Divider) Module 4 : Clock Divider Custom Design Support Module Operation Create the Animation Clock Used in: Paddle/Ball Movement

Project Implementation (G4 : CLK Divider) Main Process Simple Counter Generic Input Argument Max Count Val 50% Duty Cycle Count to Half

Project Implementation (G5 : State Mach.) Module 5 : State Machine Contrl. Custom Design Backbone Module Operation Control the Game State and Internal Signals Used in: Scorekeeping Object Reset

Project Implementation (G5 : State Mach.) Basic State Diagram Simple FSM, only three states Returns to idle state upon reset signal Point scored during game adds to count and returns to idle

Project Implementation (G5 : State Mach.) Main Process Basic case statement State iteration through conditional signal assignment

Project Implementation (G6 : 7-Seg Contr.) Module 6 : 7-Segment Controller Custom Design Support Module Operation Display the Score for the game on the 7-Segments Used in: Score Counter Output

Project Implementation (G6 : 7-Seg Contr.) Main Process With...Select MUX Build Cathode String Hardcoded Anode String

Project Implementation (G7 : RNG) Module 7 : Random Number Gen. Custom Design Support Module Operation Create 2 pseudo-random numbers Used in: Velocity variation

Project Implementation (G7 : RNG) Two Processes Each process is triggered off of a different VGA clock Pseudo random at its finest Two counters for 6 states (0-5) Mapped to speeds via with-select-when statements

Project Demo

Wrap-Up Future Work/Improvements 2 players Round Ball Variable Speed Improved Input Display Buffer

Wrap-Up Thanks for listening! Questions?