Openschemes has a tutorial describing their project for bit bang JTAG programming of Xilinx CPLDs using their homebrew SVF player. They describe:
Today’s lesson consists of the development of a bit-banged JTAG SVF player in order to program a device such as a CPLD. It’s quite likely that the SVF player we develop today could program an FPGA or flash a micro or some other good stuff we haven’t thought of yet – SVF is a very powerful data format. But at the moment, we’re going to stick to the task at hand – flash a bitstream to a CPLD using a homebrew JTAG interface.
Openschemes invites you to download and experiment with their FT232 SVF player.