I have a JTAG chain connecting 4 Spartan 6 FPGAs that I program using ISE iMPACT. The software can program any strict subset of the 4 FPGAs in a row successfully, and in any order. However, when I attempt to program *all four* FPGAs, the DONE pin of the last FPGA does not go high, and the programming fails.

What could be causing this strange behaviour?

*Design notes*: Each of the four done pins are pulled-up to 3V3 through 4.7K Ohm resistors, and then tied together.

*Things I have tried*:

 1. Disconnecting one of the FPGAs from the chain allows for the remaining 3 FPGAs to still be programmed.

 2. Swapping the 4.7K Ohm pull-up resistor for the last FPGA for a 330 Ohm resistor didn't solve the problem.