jtag (joint test action group)
**JTAG (Joint Test Action Group)** refers to the **IEEE 1149.1** standard that defines a serial interface for testing, debugging, and programming integrated circuits and circuit boards. Originally developed for testing solder connections on PCBs, JTAG has become a universal standard used across virtually all modern digital ICs.
**How JTAG Works**
- **TAP (Test Access Port)**: The physical interface consists of just **4–5 signals** — TCK (clock), TMS (mode select), TDI (data in), TDO (data out), and optionally TRST (reset).
- **Instruction Register**: Selects the operation mode — boundary scan, internal scan access, device ID readout, or user-defined functions.
- **Data Registers**: Include the **Boundary Scan Register** (one cell per I/O pin) and optional internal registers for debug access.
**Key Applications**
- **Board-Level Testing**: **Boundary scan** tests solder joints and interconnections between chips on a PCB without physical probes, detecting opens, shorts, and stuck-at faults.
- **In-System Programming**: JTAG is used to program **FPGAs**, **flash memories**, and **CPLDs** directly on the board.
- **Silicon Debug**: Processors and SoCs expose internal debug features through JTAG, enabling **breakpoints**, **register inspection**, **memory access**, and **trace capture** during bring-up and development.
- **Production Test**: JTAG provides access to internal **scan chains** and **BIST controllers** from the tester.
**Why It Matters**
JTAG is one of the most important standards in electronics — it provides a **unified, low-pin-count interface** for testing, debugging, and programming that works from the chip level all the way up to system-level board test.