What does IDCODE Looping do and how can this be used to debug JTAG and other problems?
For more iMPACT usage and other configuration related articles, see (Xilinx Answer 34104).
IDCODE looping is a function that performs many iterations of the JTAG operation "Get Device ID". You can set the number of iterations performed (the default number is 10000).
The IDCODE looping function also shifts in an explicit IDCODE command. Issuing the IDCODE command utilizes TDI to shift commands into the device. This is different from initializing the JTAG chain, which only shifts out the IDCODE register loaded by default into the Data Register after power up. This operation is not dependent on data coming in to TDI.
So, if the chain initializes but IDCODE looping fails, there might be a problem with TDI.
In general, failing JTAG operations can be due to problems with signal integrity or power.
For more details on these types of failures, see (Xilinx Answer 13529).