640x480 @ 60Hz VGA using Three PLD's

Last Updated: 2024-09-11 19:09

The Gist

I had some ATF22V10C’s lying around and tossed together a quick VGA card.

NOTE: I happen to have a few 25.175MHz “Standard Clock” TCXO’s and a pile of PLD’s lying around. Admittedly, this is a somewhat luxurious state of affairs. On the one hand, it makes the implementation significantly more straightforward. On the other, those aren’t likely to be super common “just lying around” parts for home hackers…

The POC is some pretty shoddy wire-pasta, but it works brilliantly…and is fun:

Gnarly, VGA, Perfboard Pasta

Development

PLD Sources

Schematics available in the repo, vga-22v10.

Notes

Misc / Fun

Analog Switch Pixel Gate

Use the Visible output of VGASync to toggle 3 x SPST or SPDT switches for red, green, and blue.

NOTE: Watch your propagation delays!

If you use an analog switch that has a large ON/OFF (or Inhibit) propagation delay, relative to the pixel clock, you’ll want to turn it on and off early to avoid offsetting your pixels horizontally.

Boolean Grids

Have some fast CMOS or TTL logic gates lying around? Taking the output from one or more bits from VAddr and HAddr, passing them through some gates, and AND‘ing them with the Visible flag is a great way to check your pixel alignment (this is how the grid pattern in the screenshot below was generated).

Screenshots!

640x480 VGA Screenshot