MESURES 813 - MARS 2009 - www.mesures.com
42
S
olutions
MESURES 813 - MARS 2009 - www.mesures.com 43
S
olutions
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 à confi-
gurer des circuits logiques ou à activer des
fonctions de test. Prenons l’exemple d’un
circuit dans lequel un FPGA et un micropro-
cesseur 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 flot-
tant (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’émetteur-
ré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 sup-
plé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 logi-
ques du système (voir le point 7).
6 - Pilotez les signaux d’horloge
des composants synchrones
Les mémoires synchrones nécessitent un
signal d’horloge pour les opérations de lec-
ture-é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-
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 sta-
tique pour le contournement de son PLL, de
façon qu’une horloge externe puisse com-
mander les composants synchrones. D’autres
CI de distribution d’horloge proposent des
fonctions similaires.
7 - Utilisez la fonction AutoWrite
pour la programmation flash
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 don-
né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 bas-
culer 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 bi-
naires 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 per-
met de générer des impulsions AutoWrite.
Dans ce cas, il suffit d’un seul flux binaire
traversant la chaîne boundary scan pour con-
figurer 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 pro-
grammation 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 mi-
nimum. Deux facteurs majeurs déterminent
l’efficacité de la programmation de mémoire
flash au moyen des techniques boundary
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 parcou-
rir. 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 re-
gistre 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 bidi-
rectionnelles et des niveaux de tension pré-
définis. Cette situation peut poser des pro-
blè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 modi-
fier 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écifi-
que au FPGA configuré. En général, les fa-
bricants de FPGA fournissent des outils lo-
giciels 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 con-
necteur à tester. Ces émetteurs-récepteurs
excitent les broches des connecteurs et cap-
turent 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
La technique “boundary scan” (balayage de la
périphérie) a été conçue pour accéder indivi-
duellement 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épen-
damment 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.
La technologie boundary scan en quelques mots
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 fonc-
tion 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 inu-
tilisés, des modules DIOS externes ou diffé-
rents composants présentant des capacités
boundary scan.
Anthony Sparks
JTAG Technologies
Adlink
Figure 4. Pilotage de la source de l’horloge par des signaux
supplémentaires.
Figure 3. Contrôle des composants non boundary scan par une broche d’E/S inutilisée.