VGA Timing (Sync, Porches)
VLSI → Display + Frame-Buffer RTL
A pixel clock and two counters
640×480@60Hz needs a 25.2 MHz pixel clock. Each line isn't just 640 active pixels — it's 800 total: 640 active, then a front porch, an h-sync pulse, and a back porch, in that order. The same structure repeats vertically across 525 total lines. You generate the hsync/vsync pulses purely from free-running x/y pixel counters compared against these four boundaries.
Why the blanking regions exist at all
The front porch and back porch are timing margins — real CRT monitors needed time for the electron beam to physically settle before/after retracing to the next line. Modern LCDs don't need this physically, but the VGA standard (and every monitor's expectations) still requires it, so your RTL must generate it even though nothing is "moving."
"Explain front porch / back porch" is a classic whiteboard question at companies like Cadence — precisely because it tests whether you understand the timing standard, not just whether you can copy a counter comparison from a tutorial.
Try it — scrub through one horizontal line
x = 0x = 799
x = 0 → Active video
This x maps to a real pixel column — RGB outputs drive actual color.
Completion saves automatically after you read through to the end.
Next lesson →