Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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.