CPLDs allows for shrinking the number of chips needed for glue logic and more advanced functions.
Nowadays, for programming the CPLD from Atmel, you need a USB to JTAG adapter and the WinCUPL, Atmel ISP softwares.
There is also a simple parallel port dongle you can do in order to program the CPLDs. Atmel ISP can use parallel port at non-standard addresses, so PCI/PCIexpress and PCMCIA adapters can be used.
Please note that USB to parallel port adapters won’t work. It’s because the USB to parallel port is intended to use with printers. Anything else than printers won’t work.
I had an old schematics but I didn’t find it, so I reverse engineered the dongle I’ve made.
I made a PCB for it and I published it at OSH park. Here’s the schematic below.