Download VGA display - the GMU ECE Department

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
ECE 448: Lab 4
VGA Display
Mini-Pacman
Flexibility in the Second Part of the Semester
Schedule A:
(2 weeks)
– 8 points
Lab 5: Computer Graphics (2 weeks)
– 8 points
Lab 6: PicoBlaze System
(2 weeks)
– 8 points
Lab 7: Logic Analyzer
(in class)
– 2 bonus points
Lab 4: VGA display
Total: 24+2 points
Schedule B:
Lab 4: VGA display
(3 weeks)
– 8 points
Lab 5: Computer Graphics or Lab 6: PicoBlaze System
Lab 7: Logic Analyzer
(3 weeks)
– 8 points
(in class)
– 2 bonus points
Total: 16+2 points
Flexibility in the Second Part of the Semester
Schedule A+:
• Intended for students who do exceptionally well in the first part
of the semester ( ≥ 90% of points for Labs 1-3)
• An open-ended project proposed by students, the TAs, or the
instructor
• Can be done individually or in groups of two students
• Schedule:
Detailed Specification
(1 week)
Milestone 1
(2 weeks)
Milestone 2
(2 weeks)
Final Report & Deliverable (1 week)
Total: 25 points
Expected Project Tasks
Schedule A+:
1. Use of at least one complex input/output device
• VGA display
• Keyboard or Mouse (USB-HID)
• Ethernet, etc.
2. Use of on-chip embedded resources: BRAMs, DSP units
or
External on-board memory
or
Soft microcontroller core (e.g. Picoblaze)
3. (bonus) Use of PMOD Accessory Boards
implementing additional functions,
e.g., A/D, D/A, motor drivers, sensors, cameras.
Lab 4 Exercises
Reading
• P. Chu, FPGA Prototyping by VHDL Examples
Chapter 12, VGA Controller I: Graphic
Chapter 12, VGA Controller II: Text
•Nexys3 Reference Manual
VGA Port, pages 15-17
ECE 448 – FPGA and ASIC Design with VHDL
6
Lab4 Exercise 1
Displaying synchronization signals on the
oscilloscope
clk
hsync
hsync
vsync
vsync
pixel_x 10
reset
Observe these
signals on
oscilloscope
pixel_y 10
video_on
p_tick
vga_sync
Lab4_exercise1
•
•
•
•
•
Develop a testbench for the circuit, described in the figure above.
Perform functional simulation, displaying ALL ports of vga_sync component.
Synthesize and implement the top-level circuit using provided UCF file
Perform timing simulation, displaying ALL ports of vga_sync component.
Perform experimental testing using oscilloscope, displaying clk, hsync, vsync.
7
Lab Exercise 2
• Resolution: 640x480
• Display: 8 colors (3 bits), 16 colors (4 bits),
64 colors (6 bits), 256 colors (8 bits)
• Refresh Rate: 25Hz, 30Hz, 60Hz (frames / second)
Interface
clk
hsync
reset
sw
Lab4_exercise1
5
vsync
3
rgb
Use of switches
Specification of coordinates of three objects
assuming sw(4)=0
Specification of colors of three objects
Specification of dimensions of the ball
Configuration : 1
(0,0)
(639,0)
Wall
Ball
Paddle bar
(0,479)
(639,479)
Wall coordinates = (x_left = 32, x_right = 35)
Bar coordinates = (x_left = 600, x_right = 603, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 480, x_right = 487, y_top = 38, y_bottom = 45)
Configuration-1 ( sw(4) = ‘0’, sw(3..2) = “00”, sw(1..0) = “00” )
Configuration : 2
(0,0)
(639,0)
Wall
Ball
Paddle bar
(0,479)
(639,479)
Wall coordinates = (x_left = 32, x_right = 35)
Bar coordinates = (x_left = 600, x_right = 603, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 480, x_right = 487, y_top = 38, y_bottom = 45)
Configuration-2 ( sw(4) = ‘0’, sw(3..2) = “01”, sw(1..0) = “00” )
Configuration : 3
(0,0)
(639,0)
Wall
Ball
Paddle bar
(0,479)
(639,479)
Wall coordinates = (x_left = 32, x_right = 35)
Bar coordinates = (x_left = 600, x_right = 603, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 480, x_right = 487, y_top = 38, y_bottom = 45)
Configuration-3 ( sw(4) = ‘0’, sw(3..2) = “10”, sw(1..0) = “00” )
Configuration : 4
(0,0)
(639,0)
Wall
Ball
Paddle bar
(0,479)
(639,479)
Wall coordinates = (x_left = 32, x_right = 35)
Bar coordinates = (x_left = 600, x_right = 603, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 480, x_right = 487, y_top = 38, y_bottom = 45)
Configuration-4 ( sw(4) = ‘0’, sw(3..2) = “11”, sw(1..0) = “00” )
Configuration : 5
(0,0)
(639,0)
Paddle bar
Ball
Wall
(0,479)
(639,479)
Wall coordinates = (x_left = 605, x_right = 608)
Bar coordinates = (x_left = 500, x_right = 503, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 380, x_right = 387, y_top = 138, y_bottom = 145)
Configuration-5 ( sw(4) = ‘0’, sw(3..2) = “00”, sw(1..0) = “01” )
Configuration : 6
(0,0)
(639,0)
Wall
Ball
Paddle bar
(0,479)
(639,479)
Wall coordinates = (y_top = 32, y_bottom = 35)
Bar coordinates = (x_left = 400, x_right = 403, y_top = 204, y_bottom = 275)
Ball coordinates = (x_left = 280, x_right = 287, y_top = 238, y_bottom = 245)
Configuration-6 ( sw(4) = ‘0’, sw(3..2) = “00”, sw(1..0) = “10” )
Configuration : 7
(0,0)
(639,0)
Wall
Paddle bar
Ball
(0,479)
(639,479)
Wall coordinates = (y_top = 445, y_bottom = 448)
Bar coordinates = (x_left = 300, x_right = 303, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 180, x_right = 187, y_top = 338, y_bottom = 345)
Configuration-7 ( sw(4) = ‘0’, sw(3..2) = “00”, sw(1..0) = “11” )
Configuration : 8
(0,0)
(639,0)
Wall
Paddle bar
Ball
(0,479)
(639,479)
Wall coordinates = (x_left = 32, x_right = 35)
Bar coordinates = (x_left = 600, x_right = 603, y_top = 204, y_bottom = 276)
Ball coordinates = (x_left = 472, x_right = 495, y_top = 30, y_bottom = 53)
Configuration-8 ( sw(4) = ‘1’, sw(3..2) = “00”, sw(1..0) = “00” )
Introduction to Lab 4
Game Characters and Maze
Pacman
Shadow
Inky
Diamond
Task 1: Displaying the maze (Points: 25%)
• Maze Color: Blue
• Color Generator: Selects colors for the background and
maze
• VGA Controller: Sync generator
Task 2: Displaying Diamonds in four
corners (Points:10%)
• Diamond Color: Magenta
• The diamonds should be stationary objects placed in four corners
shown above.
Task 3: Display and create movement of
character “Inky” (Points: 15%)
•
Inky should move in the direction shown above
Task 4: Display and create movement
of character “Shadow” (Points:15%)
• Shadow should move in the direction shown above
• Shadow and Inky should not collide with each other.
Task 5: Introduce “Pacman”
(Points:25%)
• Use four push buttons (BTNU for Up, BTND for Down, BTNL for Left
and BTNR for Right movement) to control Pacman’s movement.
• Pacman should keep moving in one direction until any other button is
pressed.
• The goal of the Pacman is to get all four Diamonds without collision
with any of the Ghost characters.
Task 5 : Displaying score and number of lives left on
VGA display (Points: 10%)
• Display the score and number of lives on VGA display.
• Each Diamond carries 200 points.
• Whenever Pacman eats any of the Diamonds, the count on the VGA
display should increment and display the total score.
• Pacman should have three lives initially. Every collision with Shadow or
Inky should result in loss of one life. The count of remaining lives should
also be updated on the VGA display . After three such collisions, the
game will be over.
• When Pacman eats all four diamonds, this event should pause the game,
and YOU WON should be displayed on the VGA display.
Related documents