VGA background Information
VGA is a legacy computer graphics standard introduced by IBM in 1987.
It supports various resolutions and color formats and is widely recognized by its iconic 15-pin D-sub connector.
Common VGA resolutions go up to 1920x1200 (WUXGA) with a 24-bit color depth.
VGA Controller Design Basics
To create a basic VGA controller, five key signals must be considered: the analog color channels (R, G, B)
and the synchronization signals (hsync and vsync).
These signals are present on the physical VGA connector and play distinct roles:
-
Analog Color Signals (R, G, B):
These signals convey the analog color intensity of each pixel. For example:
- (0.7V, 0V, 0V) represents a red pixel.
- (0.7V, 0.7V, 0V) represents a yellow pixel.
A voltage of 0.7V indicates the maximum intensity for a color, while 0V represents the minimum intensity.
- hsync: Indicates the end of a horizontal line (active area) and prepares the display for the next
line.
- vsync: Marks the end of the entire visible frame, prompting the display to start a new frame.
The timing diagram on the right illustrates the basic VGA signal structure:
The
yellow area represents the active display region.
The
green and orange areas show the front porch and sync intervals.
Why Use a Front and Back Porch?
These timing intervals originate from old CRT displays. The back porch allowed the electron beam to return to
the
screen's starting position, while the front porch provided a black reference and time to disable the color
signals, ensuring no unwanted image artifacts appeared during beam retrace.
VGA Signal Generation
Since VGA uses analog data transmission for colors, high-speed digital-to-analog converters (DACs) are typically
required for high color depth. However, for this experimental design, the FPGA’s digital pins will directly
generate color signals. While this approach reduces the number of available colors, it also simplifies the
design.
Similarly, the
vsync and
hsync signals will be generated using the FPGA’s digital outputs,
enabling
proper
synchronization by marking the end of each horizontal and vertical display area.