Fundamentals and Terminology
This section introduces you to the terminology that will be used in this chapter. The following items are explained below:
What is a TAP Group?
The XJLink2 supports up to four Test Access Ports (TAPs) and therefore four JTAG chains.
When two or more chains share their TMS and/or TCK signals, they cannot be operated independently of each other, and chains that are linked by their TMS and/or TCK signals are together called a TAP Group. In most real-world cases each TAP group will correspond to a single TAP, but some circuit designs will see multiple TAPs in a TAP Group.
XJTAG names TAP groups by their TDI pins but enclosed in square brackets, so typically they will be called [TDI], [TDI2], [TDI3], and [TDI4]. For example, [TDI2] is short-hand for a TAP group consisting of a single TAP, which could consist of the signals TDI2, TDO2, TMS2, and TCK2.
A TAP group consisting of more than one TAP would be named something like [TDI, TDI2].
What is a Subchain?
The JTAG devices accessed via the TAPs in a TAP Group are normally continuously accessible once they are running. However in designs where this is not the case there may be alternative configurations possible where some of the devices are accessible and others are not. XJTAG calls this type of configuration a Subchain.
Because XJTAG also supports non-JTAG test equipment in a test, it is also necessary to allow for this, and so XJTAG's definition of a Subchain is that it contains a TAP Group or part of a TAP group and/or a set of External Hardware equipment.
A Subchain can therefore be:
- the complete set of devices in a TAP group,
- a subset of the devices in a TAP group,
- that set (or a subset) in conjunction with non-JTAG test equipment, or
- only External Hardware and no JTAG devices at all.
A Subchain cannot, however, contain devices from different TAP groups.
As a simple example, consider the circuit shown in Figure 1, where one JTAG device controls the power supply of another. In that case, U1 must first run in isolation to enable the power to U2 before U2 can be accessed. In that situation, we therefore have two subchains – one for U1 using the [TDI] TAP group and one for U2 using the [TDI2] TAP group.

Figure 1: Subchains Run Independently
Now consider the following circuit, in which U1 and U2 share the same JTAG signals but are routed to a multiplexer that allows U2 to be switched in or out of the chain under U3's control:

Figure 2: Dynamic Chains with Two TAP Groups
The JTAG devices connected to the [TDI] TAP group can have two different configurations depending on how the multiplexer is set. For this circuit, there are therefore three subchains as depicted in Figure 3 below – two for the [TDI] TAP group to allow for both multiplexer settings, and one for U3 on [TDI2].

Figure 3: Subchains
Each subchain will have its own Test Reset sequence. If this has not been defined by the user, a default one will be used.
What is a Profile?
In the example above (Figure 2 and Figure 3), five different configurations are possible:
- U1, U2, and U3 are all accessible: this is achieved by selecting subchain 1 for [TDI] and subchain 3 for [TDI2].
- Only U1 and U3 are accessible; U2 is removed from the chain: this is achieved by selecting subchain 2 for [TDI] and subchain 3 for [TDI2].
- Only U1 and U2 are accessible: this is achieved by only selecting subchain 1.
- Only U1 is accessible: this is achieved by only selecting subchain 2.
- Only U3 is accessible: this is achieved by only selecting subchain 3.
To tell XJDeveloper which combination of subchains to use for each test, a number of profiles are created, where each profile defines a different collection of subchains. Consider the example where U1 can be used to program the board and U3 sets up a multiplexer. If you want to set the multiplexer and then test the board before programming it using the shortest possible chain, the following sequence would be required:
- Only subchain 3 selected (to allow U3 to set up the multiplexer)
- Subchains 1 and 3 selected (so that all three ICs are accessible for maximum test coverage)
- Only subchain 2 selected (to give the shortest chain for programming)
To achieve this, three profiles would need to be created:
- Profile A subchain 3.
- Profile B: subchains 1 and 3.
- Profile C: subchain 2.
- In real test projects, it is useful to give the profiles more descriptive names such as "MCU only" or "all devices".
Which profile to use at any point during testing is defined in the test list.
XJTAG v4.1.101