Il Joint Test Action Group (JTAG) è un'associazione creata a metà degli anni '80 quando un gruppo di aziende si unì per risolvere il problema del debug e del test dei chip, affrontando al contempo la crescente complessità dei dispositivi.
Lo sforzo manuale necessario per testare centinaia di chip, ognuno dei quali dotato di più pin, e per verificare se ognuno di essi funzionasse bene e comunicasse correttamente, iniziò a essere schiacciante con l'aumento della complessità e della produzione su larga scala dei chip.
Per superare questo problema, i produttori hanno ideato uno standard denominato IEEE 1149.1, che prevede l'integrazione di un componente hardware nel chip stesso, semplificando così i test.
JTAG è solo un modo per testare diversi chip presenti sul dispositivo e per eseguirne il debug tramite una tecnica nota come boundary scan.
Ciò avviene aggiungendo un pezzo di componente chiamato boundary scan cells vicino a ciascun pin del chip da testare.
I vari pin I/O del dispositivo sono collegati in serie per formare una catena, che può quindi essere accessibile tramite quella che viene chiamata porta di accesso di prova (TAP - Test Access Port).
La scansione avviene inviando dati a uno dei chip e confrontando l'output con l'input per verificare che tutto funzioni correttamente.
Fornitori forniscono dei tool di Boundary-scan, quest’ultimi forniscono vari tipi di stimoli e algoritmi sofisticati, non solo per rilevare le reti difettose, ma anche per isolare i guasti su reti, dispositivi e pin specifici.
Un file esterno definisce le capacità della logica di boundary scan di ogni singolo dispositivo.
È possibile accedere a queste celle di boundary scan e verificarne i valori nei pin ad esse associati.
Gli IC sono costituiti da celle logiche, o celle boundary-scan, tra la logica di sistema e i pin o le sfere di segnale che collegano l'IC al PCB. Ogni cella fornisce capacità di test specifiche.
Le celle boundary-scan all'interno di un dispositivo sono collegate tra loro per formare un registro a scorrimento, a cui si accede tramite un'interfaccia seriale di input dati di test (TDI) e di output dati di test (TDO).
Viene definito un controller standard che consente di eseguire un set minimo di funzioni, come la scansione dei dati in entrata o in uscita.
Il meccanismo può essere utilizzato per testare i componenti interni di un dato dispositivo o anche la connessione tra dispositivi. Il software di test boundary-scan può utilizzare un componente per pilotare segnali che verranno rilevati su un secondo componente, verificando la continuità da pin a pin.
I dispositivi possono essere impostati in modalità BYPASS per accorciare la lunghezza complessiva della catena e ridurre i tempi di test.
TAP è un nome collettivo dato alle interfacce JTAG presenti su un dispositivo. Ci sono cinque segnali utilizzati da TAP: