Présentation
JTAG est une technologie bien établie et, en outre, une norme industrielle. Cependant, son potentiel en tant que test et outil de programmation commence seulement à être pleinement réalisé. Les tests de connexion et de programmation in-situ (ISP) des composants sont les deux applications les plus couramment associés au JTAG. Cependant, la technologie a beaucoup plus à offrir.
XJTAG exploite la pleine puissance du JTAG et implémente toutes les fonctionnalités décrites dans ce document, bien que XJTAG ne soit pas spécifiquement référencé ici.
Contexte
La technologie JTAG a été développée en réponse aux difficultés rencontrées dans les bancs de test en utilisant l’approche traditionnel du “lit à clous”. L’emploi des nouveaux boîtiers tels que BGA et Chip Scale Packaging, a limité et dans certains cas éliminé, l’accès physique aux broches.*.
Figure 1 – Composant JTAG simple
JTAG fournit une méthode pour accéder aux valeurs qui seraient sur ces broches. La figure 1 montre que, en plaçant des « cellules JTAG » entre la broche et la logique interne de la puce, configurées comme registre à décalage, le système JTAG peut définir et récupérer les valeurs des broches sans accès physique direct.
Il y a également une option pour observer simplement le débit des données entre les broches et la logique interne du composant au cours du fonctionnement normal de la puce.
L’interface JTAG se connecte à quatre broches sur chaque circuit intégré, dont TDI pour l’entrée des données vers la puce, TDO pour la sortie des données de la puce, TMS pour contrôler ce qui doit être fait avec les données et finalement TCK, un signal d’horloge pour synchroniser le processus.
Pour qu’un dispositif soit considéré compatible JTAG, il faut que le fabricant fournisse un fichier BSDL (Boundary Scan Description Language) qui décrit le fonctionnement des aspects JTAG de la puce.
Dans le cas où un PCB ou système contient plus d’un composant JTAG, ceux-ci peuvent être reliés entre eux pour former une « chaîne JTAG ». Dans une chaîne JTAG, la sortie de données du premier dispositif devient l’entrée de données au second dispositif. Le signal d’horloge et celui de contrôle sont communs à tous les dispositifs dans la chaîne. La figure 2 donne une représentation d’une chaîne JTAG contenant trois composants JTAG.
Figure 2 – Chaîne JTAG simple
* Le mot « broche » sera utilisé pour décrire à la fois les connexions des QFP et les billes de soudure de BGA.
Boîtier BGA (Matrice de billes)
Figure 3 – Un boîtier BGA
Un boîtier BGA (Ball Grid Array), tel que représenté dans la figure 3, diffère d’un boîtier plus conventionnel, en ce que toutes ses connexions externes sont faites par des billes de soudure entre la face inférieure du dispositif et la carte de circuit imprimé plutôt que par des broches en saillie sur le côté du dispositif.
Le test de circuits contenant des boîtiers BGA a été l’une des forces motrices vulgarisant le test JTAG. Vu que les connexions entre le dispositif et le circuit imprimé sont complètement inaccessibles, que ce soit physiquement ou visuellement, la seule méthode de test non-JTAG capable de fournir de l’information utile est l’inspection aux rayons X. Ce processus coûteux et long exige que chaque PCB soit radiographié et soit inspecté afin de vérifier que chaque bille de soudure a été placé correctement et que le contact entre la carte et le dispositif est intact et ne s’est pas écarté au risque de produire des courts-circuits. Ce processus, tout en fournissant des informations utiles, repose toujours sur l’inspection visuelle, que ce soit manuelle ou automatisée, et par conséquent il faut toujours qu’on se méfie des conclusions.
Dans ces circonstances, le test de connexion JTAG devient beaucoup plus qu’une alternative utile au test « lit à clous »; c’est plutôt un outil économique qui élimine le besoin coûteux de la technologie des rayons X.
Test d’intégrité de la chaîne JTAG
La forme la plus élémentaire de test qui peut être réalisé en utilisant le JTAG est le test d’intégrité de la chaîne, c’est à dire vérifier que les composants JTAG qui devraient être dans la chaîne JTAG existent réellement.
Chaque dispositif compatible JTAG contient un code d’identification. En délivrant la bonne séquence de commandes JTAG, les codes d’identification de tous les dispositifs de la chaîne peuvent être lus. Une simple comparaison des ID réels des dispositifs et ID renvoyées par la chaîne JTAG, fournit un test simple pour vérifier que les dispositifs sont en place et que la chaîne JTAG est correctement branchée.
Test de Connexion
Figure 4 – Example de Test de Connexion
Le test de connexion vérifie les connexions autour des composants JTAG dans un circuit. Ces interconnexions (autrement dit ‘nets’), peuvent avoir des défauts dans quatre catégories: ‘court-circuit’, ‘circuit ouvert’ , ‘fautes de collage’ et des défauts de résistances ‘pull-up’ ou ‘pull-down’. Des exemples de ces défauts sont présentés à la figure 4.
Un test de connexion JTAG ne peut pas complètement vérifier les défauts sur les nets entre les composants JTAG, car ce sont les composants dont la valeur de broche peut être réglée et lue à l’aide de JTAG. (Les nets qui sont associés uniquement à un seul composant JTAG peuvent être testés, sauf les ‘circuit ouverts’.) Des outils boundary-scan professionnels peuvent automatiser la génération des tests complets pour mettre en œuvre les tests de connexion, souvent avec un minimum d’intervention manuelle.
Un test de connexion est un outil indispensable pendant la validation de la fabrication. Chaque circuit qui est produit peut être vérifié pour toute faute de production causée par des erreurs de fabrication telle que court-circuitage à soudure entre les broches d’un dispositif. Dans le cas d’un BGA où il y a peu de possibilité d’inspecter visuellement les billes à soudure, la valeur complète d’un test de connexion entièrement fonctionnel peut être réalisée.
Test des composants Non-JTAG
Les sections non-compatibles JTAG d’un circuit peuvent également être testés. Ce processus est réalisé en utilisant les interconnexions reliées à des dispositifs de la chaîne JTAG, pour accéder aux dispositifs non-compatibles JTAG du circuit.
Une variante de cette méthode est le test de mémoire. Une séquence de signaux de test JTAG est créée pour manipuler les signaux de contrôle, le bus de données et le bus d’adresse d’une mémoire pour écrire des informations dans la mémoire. Une seconde séquence de signaux de test est créée pour lire cette information.
Programmation in-situ
De nombreux dispositifs programmables modernes, tels que les FPGA et CPLD, sont conçus non seulement pour être compatible JTAG pour faciliter les tests déjà décrits ici, mais aussi avec des fonctionnalités JTAG supplémentaires pour leur permettre d’être programmés après avoir été implémentés sur un circuit imprimé.
D’autres dispositifs, tels que certaines mémoires flash, peuvent être programmées indirectement à travers leur connexion à des composants qui peuvent être contrôlés directement par la chaîne JTAG.
La possibilité d’utiliser des composants JTAG pour la programmation in-situ évite d’avoir à acheter des programmeurs dédiés peu efficaces et coûteux. En plus, il est alors facile de faire les mises à jour des logiciels ou des données maintenus dans le dispositif.
Conception en vue du test
JTAG est un outil rentable pour toute la durée de vie d’un circuit imprimé. JTAG peut également aider les concepteurs, les ingénieurs de test de production et les ingénieurs de test sur le terrain.
Cependant, le niveau de l’utilité est déterminé par le degré de couverture atteint par une suite de tests JTAG. C’est limité en partie par les caractéristiques intrinsèques d’un circuit, et en partie par le soin apporté par le concepteur pendant la conception.
Un ensemble complet de Recommandations de Conception en Vue du Test (DFT ou Design For Test) est disponible sur ce site. Cependant, veiller simplement à ce que tous les composants compatibles JTAG soient correctement connectés et qu’un port d’accès de test (TAP) approprié soit inclus dans la conception du circuit.
Autres ressources utiles
Recommandations pour la Conception en Vue du Test (DFT)
Recommandations pour améliorer la testabilité des cartes PCB
Qu’est-ce que le JTAG?
Et comment en tirer parti?
Ressources en anglais
Technical Guide to JTAG
Un regard de bas niveau à la façon dont JTAG est mis en œuvre
JTAG testing with XJTAG
Comment XJTAG étend les possibilités de JTAG
Boundary-Scan Description Language (BSDL) files
Liens vers les sites web des fabricants