Skip to content

Latest commit

 

History

History
66 lines (42 loc) · 5.36 KB

VGA_Controller.md

File metadata and controls

66 lines (42 loc) · 5.36 KB

VGA Controller Resources

Resources used to implement a 640x480, 60 Hz, 18-bit color VGA controller.

Specification & Timings

The technical specifications used to implement the controller are from Project F here: https://projectf.io/posts/video-timings-vga-720p-1080p/#vga-640x480-60-hz

The timings (µs & ms) for front & back porches, HSYNC & VSYNC are from TinyVGA: http://tinyvga.com/vga-timing/640x480@60Hz

VGA 640x480 uses negative polarity for HSYNC & VSYNC. The meaning of this is explained here: https://electronics.stackexchange.com/questions/522053/what-does-it-mean-positive-or-negative-polarity-in-vgas-hsynch-and-vsynch

Blacking is supposed to be on during front & back porches: https://electronics.stackexchange.com/questions/498338/are-the-front-and-back-porches-required-to-be-black-for-vga

VGA Guides

General guidance from Project F: https://projectf.io/posts/fpga-graphics/

Data sheet for the ADV7123 Triple 10-Bit High Speed Video DAC used by the DE2-70 dev board: https://www.analog.com/media/en/technical-documentation/data-sheets/ADV7123.pdf (see pg. 10)

  • This will help with implementing some specifics for the board: what blank should be, what sync should be, etc.

Implementing a Clock Divider

This slide from George Mason University's ECE 448 outlined the general block diagram for implementing VGA with a mod-2 clock divider: https://people-ece.vse.gmu.edu/coursewebpages/ECE/ECE448/S18/viewgraphs/ECE448_lecture10_VGA_1.pdf


Clock Divider: Reset Signals

Writing my own clock divider means wiring up my own reset signals. Here are some resources I followed: https://www.reddit.com/r/FPGA/comments/126zzqg/reset_best_practice/

How reset signals are interpreted by FPGAs: https://www.reddit.com/r/FPGA/comments/vo61pw/beginner_question_how_to_connect_reset_signals/

18-bit Color Test

Partial inspriation for how to do the color test came from the following resources:

Additional resources that I didn't use but found along the way that may be helpful:

Example from Intel: https://www.intel.com/content/dam/support/us/en/programmable/support-resources/fpga-wiki/asset03/basic-vga-controller-design-example.

Slide deck from Milwaukee School of Engineering's EE 3921 acts as a good TL;DR: https://faculty-web.msoe.edu/johnsontimoj/EE3921/files3921/vga_basics.pdf

Common Errors/Issues:

A collection of some of the errors/issues I ran to and resources to help resolve them.