VGA
Recommend reading
It may be overwhelming to people who are first learning video connectors or interfaces. I highly recommend reading Chapter 9.4.2 of Harris & Harris DDCA. This chapter provides detailed explanations and HDL code examples that are crucial for understanding VGA.
Key points
VGA signals
We need 5 signals to drive a VGA monitor.
R, G and B (red, green and blue signals)
HS and VS (horizontal and vertical synchronization)

The R, G and B are analog signals, while HS and VS are digital signals.
Important parameters
See more at https://projectf.io/posts/video-timings-vga-720p-1080p/.
Horizontal Active Pixels
640
1280
Horizontal Front Porch
16
110
Horizontal Sync Width
96
40
Horizontal Back Porch
48
220
Horizontal Total Blanking
160
370
Horizontal Total Pixels
800
1650
Horizontal Sync Polarity
negative
positive
Vertical Active Pixels
480
720
Vertical Front Porch
10
5
Vertical Sync Width
2
5
Vertical Back Porch
33
20
Vertical Total Blanking
45
30
Vertical Total Pixels
525
750
Vertical Sync Polarity
negative
positive


Generate VGA signals
Because the pixel clock is often different with the system clock, we need a pixel clock generator. We can use counter to do this, but more often we use PLL or MMCM IP cores. If we have pixel clock, then we can build hsync and vsync signals.
The following exmaple code demonstrate how to generate some of the important signals. (comes from simple_480.sv)
Top level design
Four stages:
Pixel Clock
Display Signals
Drawing Graphics
Video Output (VGA, HDMI, DisplayPort)

References
Last updated