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?
Interesting note: When programming with SelectMap, I can program all four FPGAs without any problems. Also, when I program three of the FPGAs using SelectMap, the fourth one cannot be programmed using JTAG.
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 of the last FPGA for a 330 Ohm resistor doesn't solve the problem.