picture of CPLD BLASTER 72

The CPLD BLASTER 72 started out as a project built with a cheap Xilinx XC9572XL dev board. A little verilog, some resistors, and you have a simple logic device that can output NTSC video. Slap in a EPROM and you can blast some pixels to a TV. It was such a fun idea that I decided I needed to make a dedicated board for it. This is in fact the first board I ever designed and built. If I'd known any better, I would have started with something simpler.

The core is the Xilinx XC9572XL CPLD. It's a fairly simple programmable logic device, offering 1600 gates in a programmable logic array and 72 macrocells. From a modern perspective, that's a tiny amount of logic. From a 1980s perspective, it's more or less several breadboards full of logic chips. Just ask Ben Eater.

The CPLD is connected to a simple three-resistor network for producing 4 grayscale NTSC output, and connected to three parallel two-resistor networks for 64-color VGA output. I also added connections for an audio jack, a 28-pin DIP socket for RAM/ROM, and an 8-bit bus connector. That used every output on the XC9572XL except for one. In retrospect, that was a mistake. There simply isn't enough internal logic to use all of those outputs simultaneously. In practice, you have to choose which things you're going to connect because a lot of logic will be tied up in keeping internal video state.

I did ultimately get it working with a read/write RAM interface, but it was really slow and cumbersome due to my lack of experience with designing a bus interface and the lack of available logic.