Usually, when you think of driving a VGA–in software or hardware–you think of using a frame buffer. The frame buffer is usually dual port RAM. One hardware or software process fills in the RAM and another process pulls the data out at the right rate and sends it to the VGA display (usually through a digital to analog converter).
[Connor Archard] and [Noah Levy] wanted to do some music processing with a DE2-115 FPGA board. To drive the VGA display, they took a novel approach. Instead of a frame buffer, they use the FPGA to compute each pixel’s data in real-time.
We aren’t sure why, but the project is titled “Bruce in the club” although we suspect it has something to do with [Bruce Land]. It reads in audio to the DE2-115 through a codec, filtered, and provided to the graphics engine. There are four dancers on the screen that move to the music. The lowest frequency detected represents the beat of the song which allows the dancing to synchronize to the music. The FPGA can track up to 64 objects on the screen at a time including depth.
[Conner] and [Noah] describe the system in detail and you can also see a video demonstration below. There’s a lot of good stuff coming out of [Bruce]’s FPGA class at Cornell, including this ultra-fast FPGA audio visualization and this all-FPGA VGA finger-tracking game.