Knowledge Base - Browsing by Topic
Often, when designing a JTAG compatible device, the developer creates a RESET signal (or another type of initialisation signal) to reset the device's JTAG boundary scan circuits. This/these pin(s) must be kept in a specified state for the device to meet the IEEE 1149.1 standard (JTAG), and it is this sort of pin that is often overlooked when designing RESET circuitry.
For example, many FPGAs have PROGRAM pins which, when pulled low, reset the boundary scan circuitry. Then the device will not be recognised in the JTAG chain, effectively 'breaking the chain'. When there are two JTAG devices, one controlling the other's compliance pattern, it should be checked that the default (reset) state is such that the compliance pattern is correctly set.
If a compliance pin is not held in the correct state, it is likely that you will see the "JTAG chain appears to be broken" error message while running XJTAG.
'JTAG chain is broken' errors
This application note
describes how a "broken JTAG chain" is detected and some circumstances that can cause this error.
JTAG chain debugging
This application note
describes the symptoms associated with various JTAG chain initialisation problems - for instance, a TDI, TDO or TMS connection not being made, or compliance pin issues.
JTAG chain initialisation - troubleshooter
is used to help with problems encountered when trying to initialise the JTAG chain. For instance, the hardware was found successfully, but no JTAG devices were found in the JTAG chain, or the wrong number of devices were found.
For more information on the JTAG standard, you can buy the IEEE 1149.1 standard specification document
Using XJTAG with differential signals
Differential signalling such as LVDS is now supported by many FPGA vendors and can cause some problems when these signals are used in JTAG tests. This article
attempts to describe some of the pitfalls and remedies associated with using differential signalling paths with JTAG.
My BSDL file has multiple INSTRUCTION_PRIVATE attributes.
Some BSDL files have multiple INSTRUCTION_PRIVATE attributes rather than one with a list of multiple instructions. This is contrary to the JTAG/BSDL specification, so you need to combine the INSTRUCTION_PRIVATE attributes into a single list.