JTAG and System on Chip TestingAlexandru IOVANOVICIJanuary 2011
TDI (Test Data In)TDO (Test Data Out)TCK (Test Clock)TMS (Test Mode Select)TRST (Test Reset) optional.The protocol is serial
Communication modelone or more test access ports (TAPs);
More TAPS  scan chain;
JTAG adapter: at least level shifting, galvanic isolation
Host manipulates TMS and TDI and reads TDO
On top of this primitives are some higher level protocols for specific tests:
state switch;
Register shifting;
Free running;
Watchpoint/breakpointBoundary scan registerIO pins: limited observabillity of the internal state;
Additional shift-register for each signal pin: path around device’s boundary  bypass of the IO and more visibility of the signals;
Boundary Scan Description Language: similar to netlists in CAD/EDA;Example: ARM11 Debug TAPARM1136 core: extensive JTAG capabilities;
Similar capabilities found also in FPGAs and ASICs;
ARM11 core found inside many SoC:
OMAP2420 (from TI) includes a boundary scan TAP, the ARM1136 Debug TAP, an ETB11 trace buffer tap, a C55x DSP, and a tap for an ARM7TDMI-based imaging engine, with the boundary scan TAP ("ICEpick-B") having the ability to splice TAPs into and out of the JTAG scan chain.Example: ARM11 Debug TAP (cont’d)Debugging in low power modes;
Scan chain modification (IEEE1149.4)
Halt mode debugging:
Single threaded approach: (!!!) RT-systems
Monitor mode debugging:
Hardware exception: debug monitor routine
Core-specific extensions
Ie. ARM Core Sight, Infineon Nexus;
Usually over JTAG layer; Widespread usesAlmost all devices with enough pincount;ARM and almost all 32bit CPU/MCU in the world;
Atmel 16 bit: when there are enough pins to spare;
FPGA and CPLDs: for programming and debugging;
Many MIPS and PowerPCs;
PCI and PCIx connectors have pins;
Most of the boards have JTAG connectors (or just pads) to support testing during the manufacturing;
JTAG is used for field update of debugging;

Prezentare tcs2011