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:
Disconnecting one of the FPGAs from the chain allows for the remaining 3 FPGAs to still be programmed.
Swapping the 4.7K Ohm pull-up resistor for the last FPGA for a 330 Ohm resistor didn't solve the problem.