Solutions Solutions TEST B O U N D A R Y S C A N Dix conseils pour optimiser la couverture des tests Figure 1. Configuration des conditions de test boundary scan au moyen d’un CPLD. La technique de test dite “boundary scan” a été normalisée en 1990. Elle était promise à un bel avenir du fait qu’elle donnait accès à des points sur la carte inaccessible au testeur in situ. Cependant, pour tirer pleinement parti du test boundary scan, il est impératif d’intégrer celui-ci dès le stade de la conception plutôt que de l’ajouter a posteriori. Pour améliorer la couverture des défauts et la testabilité des circuits, il faut respecter certaines procédures. Voici dix conseils proposés par Jtag Technologies, qui conduisent à des gains de temps et facilitent le travail aussi bien lors des tests de prototypage et de conception que des tests de production. D ans les années 90, la technologie de test “boundary scan” en était à ses balbutiements. On constate aujourd’hui son utilisation sur le terrain. Cette technologie normalisée (IEEE 1149.1), et également connue sous le nom de JTAG, est intégrée à la plupart des composants complexes qui sont alors dotés de cellules “boundary scan” pour leur test. Alors qu’il y a dix ans de tels composants faisaient figure d’exception. La première raison de cette adoption s’explique par le fait que les fabricants exploitent euxmêmes cette technologie pour tester les composants qu’ils produisent. La seconde vient du fait que des industriels utilisent ce bus standard pour effectuer d’autres opérations que du test ou de la programmation telle que de l’émulation ou du débogage. Il est même employé comme bus fonctionnel pour l’échange d’informations entre comL’essentiel posants. La technique de boundary La technologie bounscan ou Jtag est conçue dary scan est désorpour faciliter et automatiser mais mélangée à le test des cartes d’autres techniques de électroniques numériques. test notamment quand Elle consiste à donner un l’accessibilité aux accès auxiliaire aux broches points de test sur la d’Entrée/Sortie des circuits carte est limitée. Les intégrés. broches d’un compo Voici dix conseils pour sant JTAG peuvent être exploiter cette technologie transformées en clous de manière optimale. virtuels. Ainsi, un 40 composant JTAG de 500 broches implanté au milieu d’une carte électronique peut offrir 500 points d’accès complémentaires à un testeur in situ ou à sondes mobiles. La technologie boundary scan est devenue un passage obligé pour la plupart des composants BGA. Si bien, qu’il est aujourd’hui courant d’intégrer des fonctionnalités de test boundary scan lors d’une mise à jour de testeur in situ. Et de nos jours, pratiquement tous les testeurs proposent des ressources boundary scan. Mais pour pouvoir profiter pleinement du potentiel de cette technologie et d’optimiser la couverture de test des cartes électroniques intégrant des composants boundary scan, il faut respecter quelques règles. Voici dix astuces proposées par Anthony Sparks qui compte plus de quatorze années d’expérience dans le domaine de l’ingénierie de test de cartes électroniques. Il travaille actuellement au marketing technique chez JTAG Technologies, spécialiste des outils de test boundary scan. permet de programmer individuellement le niveau de sortie et le seuil d’entrée de chaque port TAP (Test Access Port). Dans certains cas, les ingénieurs peuvent avoir besoin d’accéder à un composant isolément pour prendre en charge des émulateurs et débogueurs tiers et d’optimiser la programmation des mémoires flash. La présence de plusieurs chaînes boundary scan ne réduit pas la couverture des tests lorsque l’on utilise un générateur automatique de vecteurs de test (ATPG) pouvant opérer sur un nombre quelconque de chaînes, séparément ou en parallèle durant un même test. 2 - Sélectionnez des composants testables par boundary scan Le succès du test boundary scan dépend directement de l’implantation de structures de test dans les circuits intégrés (CI). Par conséquent, autant que possible, choisissez des composants intégrant déjà des capacités boundary scan, en tenant compte de plusieurs facteurs. • Le fabricant a-t-il testé électriquement le fichier de description BSDL du CI en termes d’exactitude et de conformité ? Un composant non conforme à la norme IEEE 1149.1 risque d’engendrer des difficultés et de ne pas être accessible aux tests 1 - Partitionnez les chaînes boundary scan Les ingénieurs pensent souvent – à tort – que tous les composants boundary scan doivent se trouver dans une seule et même chaîne pour faire l’objet d’un test d’interconnexion. En séparant les composants en familles logiques compatibles, les concepteurs peuvent éviter le recours à des convertisseurs de niveau.Aujourd’hui, le matériel boundary scan JTAG Technologies développe, fabrique et commercialise des outils matériels et logiciels pour le test et la programmation des circuits intégrés et des cartes électroniques selon la norme boundary scan (IEEE 1149.1). boundary scan, ce qui peut considérablement réduire la couverture attendue. Les informations d’en-tête d’un fichier BSDL autorisent la vérification de la syntaxe, de la sémantique ou des caractéristiques électriques. Vous pouvez également demander à votre fournisseur d’outils boundary scan si d’autres ont déjà utilisé avec succès un CI particulier dans le cadre d’un test boundary scan. • Le composant reconnaît-il des instructions boundary scan optionnelles telles que HIGHZ et CLAMP ? Ces instructions peuvent se révéler extrêmement utiles pour les applications de programmation flash et certains autres tests. • Le composant nécessite-t-il des vecteurs de conformité ou bien des connexions logiques externes pour fonctionner en mode test boundary scan ? Certains composants boundary scan comportent une ou plusieurs broches qu’un circuit doit maintenir dans un état logique donné pour que le composant fonctionne en mode IEEE 1149.1. En pareil cas, les concepteurs doivent mettre en œuvre une logique externe de sorte que les conditions adéquates soient réunies sur leur circuit pendant le test. Ils doivent donc rechercher dans les fichiers BSDL des lignes Compliance_Patterns qui décrivent ces cas. pas le test boundary scan. De tels composants peuvent être qualifiés de compatibles avec la norme IEEE 1149.1 plutôt que conformes (compliant). Par exemple, la fiche signalétique du DSP TMS320C203 de Texas Instruments indique, bien que le composant possède un port TAP, qu’il est dépourvu de registre boundary scan et ne permet donc pas ce type de test. D’autres complications peuvent survenir avec des composants présentant des ports TAP multifonction. Le processeur Freescale MPC860, par exemple, partage ses broches TAP JTAG avec son port de débogage en tâche de fond (BDM, Background Debug Mode). En mode BDM, ces broches ne fonctionnent pas comme broches TAP JTAG et ont donc pour effet d’interrompre la chaîne boundary scan pour les composants situés en amont ou en aval. En d’autres termes, le port BDM n’offre ni conformité ni même compatibilité avec la norme IEEE 1149.1. Un composant peut fonctionner en mode BDM sans affecter les broches TAP. Les ingénieurs peuvent activer la configuration “Hard Reset” du MPC860 en appliquant des valeurs spécifiques au bus de données pendant une réinitialisation matérielle afin de forcer les broches TAP en mode JTAG. Plus précisément, les bits 11 et 12 doivent avoir la valeur logique 01 ou 11 (00 étant leur état par défaut pendant une réinitialisation matérielle). Pour assurer le bon positionnement de ces bits via le bus de données du MPC860, utilisez des cavaliers ou bien un CPLD (circuit logique programmable complexe) programmé aux fins de test uniquement, comme le montre la Figure 1. Si vous utilisez un CPLD, placez-le sur une chaîne boundary scan qui ne contient pas le MPC860. En effet, si les deux composants se trouvent dans la même chaîne, il n’est pas possible de programmer le CPLD lorsque le MPC860 est en mode BDM. 4 - Contournez les composants non conformes à la norme boundary scan Parfois, vous ne pouvez avoir la certitude que de nouveaux composants ou Asic sont totalement conformes à la norme IEEE 1149.1, à moins d’avoir été vérifiés électriquement. Dans ce cas, envisagez de placer des résistances 0 Ω (cavaliers) autour du composant, comme le montre la Figure 2a. Pendant le test, retirez les cavaliers situés avant la broche d’entrée de données de test (TDI) et après celle de sortie de données de test (TDO), et ajoutez un cavalier en position Bypass, de sorte que la chaîne boundary scan contourne le composant (Figure 2b). ➜ 3 - S’assurez de la conformité 1149.1 des composants La technique boundary scan autorise le test de circuits intégrés depuis le connecteur de la carte électronique sur laquelle ils sont implantés. MESURES 813 - MARS 2009 - www.mesures.com Certains composants, tels que les DSP et les microcontrôleurs, offrent un port TAP JTAG pour le débogage ou la programmation de mémoire flash, toutefois celui-ci n’autorise Figure 2. Cavaliers de contournement des composants non conformes. MESURES 813 - MARS 2009 - www.mesures.com 41 Solutions Solutions La technologie boundary scan en quelques mots La technique “boundary scan” (balayage de la périphérie) a été conçue pour accéder individuellement aux circuits intégrés numériques présents sur une carte électronique. Pour cela, chaque broche d’Entrée/Sortie n’est pas connectée directement à l’intérieur du composant numérique, mais à travers une “cellule JTAG” permettant de la piloter indépendamment de sa fonction initiale. Les cellules sont connectées entre elles par un bus série faisant le tour de la puce (d’où la notion de périphérie ou boundary), équivalent à un grand registre à décalage de taille égale au nombre de broches d’Entrée-Sortie du composant. Le TAP Controller, qui reçoit les signaux JTAG de l’extérieur, permet d’activer et de piloter les cellules selon une séquence normalisée. Les différentes broches des composants et les différents composants sont raccordés sur un bus spécialisé (boundary scan) accessible depuis le connecteur de la carte. Cette technique permet de réaliser de la programmation in situ de composants (mémoires et microcontrôleurs) et de tester ces composants. Le gros intérêt du boundary scan est d’éviter de recourir au traditionnel lit à clous, encombrant, peu flexible (il faut en développer un pour chaque type de carte à tester) et coûteux. Revers de la médaille, cette technique impose d’utiliser des versions boundary scan des composants classiques qui nécessitent plus de surface sur le silicium et sont donc plus onéreuses. Le terme boundary scan est également connu sous le nom de JTAG et il fait l’objet d’une norme (IEEE 1149.1). Le boundary scan n’est pas limité aux tests de continuité. Il est en effet également possible de tester (au moins partiellement) des fonctions logiques combinatoires, même si elles sont composées de puces non-compatibles JTAG, en élaborant des vecteurs de test appropriés et à condition que les Entrées et Sorties de ces fonctions soient connectées à des composants JTAG. De même, il est possible de tester des mémoires en écrivant puis relisant des valeurs de test. Le bus JTAG est aussi utilisé pour programmer les composants logiques (FPGA et CPLD) ainsi que de nombreux microcontrôleurs (grâce à la capacité du JTAG de programmer la mémoire Flash des microcontrôleurs), voire pour déboguer un microprocesseur. Figure 4. Pilotage de la source de l’horloge par des signaux supplémentaires. dary scan de façon qu’il se substitue au signal d’horloge du système (Figure 4). Dès lors, les tests boundary scan pourront piloter le signal d’horloge et accéder à la mémoire de façon synchrone. Si cette horloge pilote un CI de distribution d’horloge avec un PLL interne (boucle à verrouillage de phase), il est peu probable qu’une horloge lente générée par boundary scan se synchronise avec ce PLL. Par conséquent, le circuit de test doit le contourner. Le générateur d’horloge à PLL MPC9331, par exemple, offre une voie statique pour le contournement de son PLL, de façon qu’une horloge externe puisse commander les composants synchrones. D’autres CI de distribution d’horloge proposent des fonctions similaires. scan : la longueur de la chaîne et la fréquence de l’horloge de test (TCK). Plus une chaîne boundary scan compte de composants, plus le flux binaire met de temps pour la parcourir. Pour programmer des mémoires flash, placez les composants boundary scan non nécessaires à l’opération en position Bypass ou, lorsque c’est possible, en mode HIGHZ, ce qui réduit la longueur du trajet à un registre Bypass de 1 bit. Ces registres faisant toujours partie de la chaîne boundary scan, vous devez tenir compte de leur fréquence TCK maximale. 8 - Testez des composants FPGA après leur configuration Avant sa configuration, un FPGA présente par défaut des lignes d’Entrées/Sorties bidirectionnelles et des niveaux de tension prédéfinis. Cette situation peut poser des problèmes lorsque les circuits environnants nécessitent des signaux différentiels ou des niveaux logiques spécifiques. Dans certains cas, des dommages peuvent en résulter. Une fois le FPGA configuré, vous pouvez modifier vos capacités boundary scan. Sachant que le fichier BSDL générique d’un FPGA reflète son comportement avant configuration, vous devez générer un fichier BSDL spécifique au FPGA configuré. En général, les fabricants de FPGA fournissent des outils logiciels pour réaliser cette tâche. 9 - Utilisez des modules externes pour tester les connecteurs Pendant le test de la carte électronique, des connecteurs de celle-ci peuvent ne pas être testés car vous ne disposez pas d’un moyen externe pour injecter ou lire des signaux sur leurs broches. Afin d’améliorer la couverture des tests, ajoutez des composants externes qui autorisent les opérations boundary scan. Les modules d’Entrées/Sorties numériques (DIOS) se présentent sous de nombreuses formes et offrent un émetteur-récepteur boundary scan pour chaque broche de connecteur à tester. Ces émetteurs-récepteurs excitent les broches des connecteurs et capturent les stimuli générés par les composants boundary scan sur la carte. Si vous prévoyez d’utiliser une interface de test, les modules DIOS permettent d’établir la connexion à la carte sous test via des points de test et des sondes à ressort. 10 - Visualisez la couverture des tests Avant de valider la disposition d’une carte, effectuez une analyse DFT (Design For Testability). Des outils logiciels assurent aux ingénieurs l’examen rapide de la couverture potentielle actuelle des tests boundary scan. Ces outils mettent également en évidence les zones de la carte qui échappent aux tests et les endroits où des modifications peuvent être apportées. Fault Coverage Examiner, par exemple, peut évaluer des circuits en fonction des fichiers BSDL, des listes de nœuds sur une carte et des modèles des composants non conformes à la norme boundary scan. Après avoir identifié les lacunes des tests, les ingénieurs peuvent déterminer comment exploiter des signaux d’Entrées/Sorties inutilisés, des modules DIOS externes ou différents composants présentant des capacités boundary scan. Anthony Sparks JTAG Technologies 7 - Utilisez la fonction AutoWrite pour la programmation flash ➜ 5 - Tirez parti des broches d’Entrées/Sorties libres Dans de nombreux cas, les FPGA et CPLD comportent des broches d’Entrées/Sorties inutilisées dont vous pouvez vous servir pour produire des signaux destinés à configurer des circuits logiques ou à activer des fonctions de test. Prenons l’exemple d’un circuit dans lequel un FPGA et un microprocesseur partagent un bus de données avec un émetteur-récepteur non conforme (Figure 3). Si, pendant le test, le signal d’activation de sortie (OE) de l’émetteur-récepteur est flottant (flèche rouge), les signaux de bus de ce dernier peuvent entrer en conflit avec ceux qui sont produits par la chaîne boundary scan afin de tester les connexions entre le FPGA et le processeur. Ce type de situation peut dégrader la couverture des tests. Une sortie FPGA libre ou une sortie provenant d’un module DIOS (Digital I/O Scan) permet de commander le signal OE de l’émetteurrécepteur et de forcer ses sorties à un état de haute impédance qui n’affecte pas les tests de bus. En outre, le tracé de cette piste supplémentaire n’aura pas d’incidence sur la conception des circuits. Au moment de la configuration finale du FPGA, définissez la sortie comme étant non connectée de sorte qu’elle n’interfère pas avec les circuits logiques du système (voir le point 7). 6 - Pilotez les signaux d’horloge des composants synchrones Figure 3. Contrôle des composants non boundary scan par une broche d’E/S inutilisée. 42 Les mémoires synchrones nécessitent un signal d’horloge pour les opérations de lecture-écriture. Si les ingénieurs ne prennent pas en compte la testabilité au stade de la conception, il est très probable qu’ils utilisent un oscillateur simple, ce qui signifie que les tests boundary scan ne pourront pas piloter l’horloge. Pour pallier cette limitation, utilisez une sortie de FPGA libre afin de désactiver l’oscillateur et de mettre la sortie de ce dernier en “ou” logique avec un autre signal boun- Les applications traditionnelles exigent qu’un flux binaire série parcoure une fois l’ensemble de la chaîne boundary scan afin de configurer les lignes d’adresses, de données et de commande de la mémoire flash. Ensuite, le système a besoin d’un deuxième flux à travers toute la chaîne pour faire basculer le signal d’activation d’écriture (WE) de la mémoire au niveau logique 0, puis d’un troisième pour remettre le signal WE au niveau logique 1. De ce fait, une seule opération d’écriture nécessite trois flux binaires dans la totalité de la chaîne. Si vous pouvez fournir un accès externe au signal WE de la mémoire flash, le contrôleur boundary scan peut le faire basculer s’il permet de générer des impulsions AutoWrite. Dans ce cas, il suffit d’un seul flux binaire traversant la chaîne boundary scan pour configurer les lignes d’adresses, de données et de commande. Le contrôleur boundary scan déclenche directement le signal WE, ce qui fait gagner un temps considérable. La programmation de mémoire flash étant souvent l’opération boundary scan la plus longue, il importe de prendre des mesures pour réduire les temps de programmations au minimum. Deux facteurs majeurs déterminent l’efficacité de la programmation de mémoire flash au moyen des techniques boundary MESURES 813 - MARS 2009 - www.mesures.com Adlink MESURES 813 - MARS 2009 - www.mesures.com 43