From Lukaswerner · · 1m 20s
Making a VGA Driver in SystemVerilog
How to build a VGA driver using SystemVerilog on an FPGA board.
In brief
How to build a VGA driver using SystemVerilog on an FPGA board. A student created a working VGA driver in SystemVerilog for an FPGA board, displaying an image with transparency support. Originally reported by Lukaswerner.
Quick answers
- What Is VGA?
- VGA is a display standard from the IBM PS/2 in 1987 using cathode ray tubes.
- What is the key takeaway from Making a VGA Driver in SystemVerilog?
- A student created a working VGA driver in SystemVerilog for an FPGA board, displaying an image with transparency support.
What Is VGA?

VGA is a display standard from the IBM PS/2 in 1987 using cathode ray tubes.
Screen Refresh Rate
The VGA driver needs a 25.175 MHz clock to send pixels in time for 60Hz refresh.
Implementation Approach
The DE10-lite FPGA board has a 50MHz clock that can be divided to 25MHz for VGA.
Horizontal Timing

640 visible pixels plus 16 front porch, 96 sync pulse, and 16 back porch equals 800 total pixels.
Vertical Timing
480 visible pixels plus 33 front porch, 2 sync pulse, and 10 back porch equals 525 total pixels.
Color Mapping
A simple table maps 4-bit inputs to 12-bit color outputs for limited switches.
Image Display

The student loaded an Asterix image from ROM using a custom color mapping system.
Transparency Support
The student implemented alpha channel mixing for transparency in the image display.
Hardware Testing
The VGA driver works on a monitor with a beaver orange color display.
Final Result

The student created a working VGA driver displaying an image with transparency support.
In short
A student created a working VGA driver in SystemVerilog for an FPGA board, displaying an image with transparency support.



