VHDL LED Marquee & Light Square
An LED matrix marquee designed in a hardware description language, plus a "light square" (a flat spin on the classic LED cube) with a super-high refresh rate that takes advantage of the FPGA's crazy-fast clock.

Background
Back when I was training for the digital electronics skills competition, my coach’s assignment was simply to get an LED matrix to light up. Honestly, just lighting it up felt a bit boring, so once I had the basic scanning circuit working and the matrix showing numbers, I went online to teach myself how arrays work in VHDL, and then figured out how to level it up into a scrolling marquee.
How It Works
- Store the whole image you want to show as one really long matrix (e.g. something like 8 rows by 44 columns)
- Read the first 8 × (0–7) slice of that array
- Drive the LED matrix with the scanning circuit to display it
- Shift one column to the right and display the 8 × (1–8) slice
- Keep going until you hit the end of the array, then start over from the beginning

Reflections
This VHDL project wasn’t especially hard, but I had a ton of fun with it. Whenever I saw other people’s 8x8 LED projects on FPGAs online, they were always static images, and mine actually moved, which gave me a weirdly satisfying sense of accomplishment.
If my coach had given me a bit more time, I probably could’ve built a PWM-dimmable LED matrix too. A matrix that both moves and has PWM dimming could maybe even play videos 😂. Hopefully I’ll find time to finish the PWM version someday.