When I use the iMPACT toolto configure a JTAG chain containing FPGAs with the DONE pins tied together, the parts do notcomplete configuration. The I/Os are tri-stated and sending an additional JTAG clock does not resolve this issue. In the Status Register, GHIGH is '1', but the other startup signals are '0'.
How do I resolve this issue?
When oneFPGA is programmed and the other is not, the unconfigured device drives the DONE pins Low. As DONE is released and not driven High, this prevents the configuration from completing.
Assign configuration files to all devices in the chain and program with all devices in the JTAG chain selected.
Manually generate the SVF file that performs JSTART, sends in an additional TCK, and includes a bypass instruction. This takes the device out of the startup sequence.
Example for one Virtex-II device in the chain
// Loading device with a 'jstart' instruction.
SIR 6 TDI (0c) TDO (00) ;
RUNTEST 12 TCK;
//Loading device with 'bypass' instruction.
SIR 6 TDI (3f) ;
Set GTS and GWE to be released during the same cycle as DONE.
Ensure that you have generated a ".msk" file with each bit file. Program all devices in the JTAG chain. After programming, issue each device with a Verify operation. This forces the device to start up.
NOTE: If the device is a Spartan-6 FPGA, there is an additional concern in this situation. If a Spartan-6 device has a watchdog timeout errordue to DONE being held Low,then it will drive INIT and DONE Low. This can prevent JTAG access and configuration on other devices.
The safepractice is to havea hardwarejumper to separate the DONE pin and the INIT_B pin duringJTAG programming, so each device can be programmed separately.