After ordering my Digilent Nexys2 eval board with a 500K-gate Xilinx Spartan-3E and a variety of I/O devices, I never got around to testing it (other than to use the factory-programmed image on the PROM). I brought it to my dorm when I moved back in a few days ago and have had some free time to play around with it.
This is just a very simple example. The board takes two bytes of input and then acts on the data. The first byte says which LEDs to modify (e.g. 11100000 would modify LEDs 0, 1, and 2). The second tells which value to set them all, as a number from 0 to 255. The data is then read into a controller that stores the new value and specifies the brightness of the LED via a PWM block.
Once I got that up and running, I just wrote a few macros that would allow me to set the LEDs. The “chase” macro simply sets an LED and then diminishes the ones behind it. The “grad” macro simply makes a gradient. Currently, I’m implementing Xilinx’s FFT core so that I can take the FFT of some serial data and control the LEDs as necessary.
My implementation can be found here (just create a new project, load this design in, with serpwm.vhd as the top level, and specify the pins: TXD, RXD, LEDS, and clk).