When attempting to perform an operation on a device with JDRIVE, the following error
message is returned:
...Error - compare fail.
status of device: [device name] ()
action: [action] ()
procedure: proc_verify (idcode)
flow: flow_verify (idcode)
Pay close attention to the "activity" and "instruction" values for this error message;
if they are "activity: 2, instruction: ISC_READ", then refer to (Xilinx Solution 10777).
This error message can indicate a number of problems. If possible, JTAG Programmer
should be used to determine if the problem is hardware-related or software-related (see
For a list of hardware problems that can cause this error message, see Resolution 3.
For a list of software problems that can cause this error, see Resolution 4.
Troubleshooting "compare fail" with JTAG Programmer:
1. Initialize chain (File -> Initialize chain)
Failure of this operation indicates that the boundary scan chain has not been
set up correctly.
2. JTAG Programmer will ask for files for each of the devices in the boundary
scan chain. If files are not available, JTAG Programmer will at least need to
know the length of the instruction registers of the devices. To determine this,
look in the 1149.1 or 1532 BSDL file for the device in question. Please also
3. If a 1149.1 BSDL file is available for the device that you are attempting
to program, try to program the device with JTAG Programmer. For FPGAs,
manually check the status of the DONE pin to ensure that the device has
1. Any of the TAP lines being tied to ground or VCC, or being disconnected.
2. Noise, reflections, or other signal integrity problems on the TAP lines.
To troubleshoot hardware problems, execute only verify (idcode) instructions
for every device in the chain.
Software problems that can cause a "compare fail":
1. Incorrect devices in the .cmd file.
2. Incorrect ordering of the devices in the .cmd file. In the .cmd file, the
devices should be listed as:
A chain has three devices. Device 1 is closest to initial TDI, and Device 3
is closest to the final TDO. The .cmd file should list the devices as:
Device 3 ...
Device 2 ...
Device 1 ...
If the order is wrong, correct the batch file that generated the .cmd file,
delete the incorrect .cmd file, and try again.
3. An incorrect Instruction Register length being specified for devices in bypass.
To determine the correct IR length, look in the BSDL file for the device in question.
Please also see (Xilinx Solution 10850).