JTAG Protocol Support

Embedded Systems

Joint Test Action Group (IEEE 1149.1)

What is JTAG?

JTAG (Joint Test Action Group) is a debug and test interface standardized as IEEE 1149.1, originally designed for boundary scan testing of circuit boards but now widely used for IC programming, debugging, and real-time trace in embedded systems. The JTAG interface uses a TAP (Test Access Port) with four required signals: TCK (Test Clock), TMS (Test Mode Select), TDI (Test Data In), and TDO (Test Data Out), plus an optional TRST (Test Reset). The TAP controller is a 16-state finite state machine driven by TCK and TMS, through which instructions and data are shifted in and out via TDI and TDO. JTAG supports shifting data through instruction registers (IR) to select operations, and through data registers (DR) to transfer data such as boundary scan patterns, device IDs, debug memory access, and breakpoint configurations. The protocol allows multiple devices to be daisy-chained on a single JTAG scan chain with TDO of one device connected to TDI of the next. JTAG is found in virtually every FPGA, ASIC, microprocessor, microcontroller, and complex SoC, making it one of the most important debug interfaces in electronics. Protocol analysis for JTAG is valuable for verifying scan chain integrity, debugging boundary scan test failures, analyzing debug port communication, and reverse-engineering device configurations. Engineers need to decode TAP state transitions, instruction register contents, and data register values to understand and troubleshoot JTAG communication.

JTAG Quick Reference

type Serial, synchronous
signals TDI, TDO, TMS, TCK, TRST
max Speed 10 – 100 MHz typical
voltage Range 1.8V – 3.3V
features Boundary scan

Acute Instruments Supporting JTAG

Recommended Solutions

Recommended for Decode

TB3016F

TB3016F

With Analog Channels

MSO2116E

MSO2116E

All Supporting Products

Ready to analyze this protocol?

See how Acute instruments capture and decode this protocol in real time. Request a demo or contact our team.

How to Analyze JTAG with Acute Instruments

1

Connect your Acute logic analyzer to the JTAG signals: TCK, TMS, TDI, and TDO. Optionally connect TRST if present.

2

Attach a ground lead to the target board's ground, ideally at the JTAG header.

3

In the Acute software, select the JTAG protocol decoder and assign each signal to the corresponding channel.

4

Configure the decoder with the instruction register length (IR length) for each device in the scan chain.

5

Capture and view decoded JTAG activity showing TAP state transitions, instruction register values (BYPASS, IDCODE, EXTEST, etc.), data register shifts, and scan chain data for each device.

Frequently Asked Questions

What sample rate is required for JTAG analysis?
JTAG TCK frequencies vary widely — from a few hundred kHz for boundary scan to 20-50 MHz for ARM debug ports. Sample at a minimum of 4x the TCK frequency. For 20 MHz JTAG, use at least 100 MHz sampling. For lower-speed boundary scan at 1 MHz, 10 MHz sampling is sufficient. Check your debug adapter or JTAG programmer's configured TCK speed.
Why is my JTAG decoder not showing meaningful instruction or data values?
JTAG decode requires knowing the IR (instruction register) length for each device in the scan chain. If the IR length is configured incorrectly, the decoder cannot properly separate instruction and data shifts. Check the device datasheet or BSDL file for the correct IR length. For multi-device scan chains, each device's IR length must be specified in the correct order.
How many channels do I need for JTAG?
Standard JTAG requires 4 channels: TCK, TMS, TDI, and TDO. If the optional TRST (Test Reset) signal is used, add a 5th channel. Some systems add custom signals like RTCK (Return Test Clock) for adaptive clocking, which would require a 6th channel. For SWD (Serial Wire Debug, a 2-pin alternative to JTAG), only 2 channels are needed.

Related Protocols

Need help choosing the right instrument for your protocol? Contact our engineering team.