CE433 2022 Spring
Week 6
John Hitti

jdhitti@fortlewis.edu

Week 6

Introduction
In this week's project we will be exploring the basics of the video graphics array (VGA) display standard by coding programs in Verilog to have our FPGA output images to a display.

Task 1

In this task we will use the VGA display port on the FPGA to display a simple image to a screen. The image data will be stored in a ROM module and the FPGA will send this data to the display. First we will program the example code and initialize the clock generator module and ROM module.






Once this is complete we can upload the program to our FPGA and connect a screen to verify the functionality.





Task 2
In this task we will be using the same program as the previous task but modifying it so that the screen will display a white image.
First we modify the program and then we upload it to our FPGA for verification. We can do this with a very simple modification that is disabling the ROM in the program and assigning the pixel data to always be white.






Task 3
In this task we will take our previous progress further by changing the display to cycle through a red, green, and blue screen every second.
First we modify the program and then we upload it to our FPGA for verification. We can do this similarly to the previous task but in order to cycles through all three colors we need to make a counter that takes in the clock signal and changes the pixel data based on how much time has passed.
This module is displayed below.



This can then be uploaded to the FPGA. The program appears to be functional! However there is a slight issue with the timing.


Discussion
This project was an excellent introduction to the VGA display standard and how the FPGA and Verilog can interface with different components such as displays.