Dix conseils pour optimiser la couverture des tests

publicité
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
Téléchargement