CE433 Embedded Systems Tutorial 5: Video Graphics Array (VGA)
Name: Audra Benally Email: albenally1@fortlewis.edu
1. Title: Video Graphics Array
2. Introduction: In this lab we learned about the VGA signal 640 x
480 @ 60 Hz Industry standard timing basics. We learned about how the
refresh rates were timed out based on the pixel frequency. We also
learned about how the screen was framed and how there are actually 800
x 525 total pixels in this standard. Then we were tasked with following
the textbook example to type the code, create a clock module and create
a distributed ROM so we can display a given picture on the monitor.
After this we were challenged with creating a blank screen on the
monitor then getting the screen to flash red, green, and blue in 1
second intervals.
3. Materials and Methods:
Materials: - Computer - Vivado Software
- GVim Software
Methods:
The first portion of the code
was a walkthrough to display the image in figure 1 on the monitor. A
25MHz clock signal was created for the VGA controller pixel frequency
and a distributed ROM was made to store the given image file. Results
from this tutorial are seen in figure 1. The next task was to display a
white screen on the monitor. The red, green, blue, and pixel_data
variables were expanded to utilize all 12 bits to display the fully
white screen. Then the next task was to flash the colors red, green,
and blue, in 1 second intervals. I used a counter and the 100MHz clock
to accomplish the flashes. Results can be seen in video 1 below.
4. Results:
Figure 1. Basys 3 board picture on the monitor.
Figure 2. White screen displayed on the monitor.
Figure 3.
Code used to display the white screen. The sizes of the colors and
pixel_data were changed in the VGAmodule code as well.
Video 1. Red
green and blue flashing. The screen looked much more green in person
than it does in the video.
Video link: https://youtu.be/qj6Dyd8tgn0
Figure 4. Red green and blue screen flash code.
5. Discussion
For this tutorial I learned a lot about the way our monitors work. Just
learning the basics amazes me about how complex our computer systems
are! I enjoyed the challenges and liked learning more about distributed
ROM. Everything went pretty smoothly. I kept getting a yellow screen
instead of a white screen but was able to figure out that I wasn't
sizing my variables correctly once I revisited the code again. My
pictures also came out blurry or really dim. Overall great week!