Télécharger cette page au format PDF
Présentation
Les présentes lignes directrices fournissent des recommandations pour la Conception en Vue du Test (Design-for-Test, DFT) en utilisant XJTAG afin d’augmenter la testabilité des assemblages complexes de circuits imprimés via le boundary-scan JTAG. Ces lignes directrices ne devraient pas être vues comme un ensemble de règles. Les avantages potentiels en termes de testabilité doivent être considérés conjointement avec toutes les autres conséquences (par exemple, la fonctionnalité, le coût de composants et la surface de la carte de circuit imprimé).
En préparant le présent document, nous avons supposé que le lecteur possède une connaissance de base des normes IEEE 1149.1 et 1149.6.
Tout au long de ce document, le terme « 1149.x » fait référence aux normes « IEEE 1149.x (JTAG) Boundary Scan ». Le terme « composant JTAG » désigne un composant qui met en œuvre la technologie boundary-scan JTAG et est entièrement conforme à ces normes, tandis que le terme « composant non-JTAG » désigne celui qui ne met pas en œuvre la technologie boundary-scan JTAG.
Définir et utiliser des composants JTAG
Une plus grande couverture de test sera obtenue en utilisant des composants JTAG dans la mesure du possible, bien que XJTAG soit capable de tester les connexions entre les composants JTAG et non-JTAG dans la plupart des cas. Plus il y a de composants JTAG incorporés dans un circuit, plus la couverture de test est élevée.
La norme 1149.6 permet de tester des signaux à grande vitesse simples ou différentiels ayant un couplage capacitif, qui ne peuvent pas être testés en utilisant 1149.1. Pour utiliser cette fonctionnalité, il faut veiller à ce que les connexions qui doivent être testées de cette manière aient des broches compatibles 1149.6 de chaque côté du condensateur de couplage.
Vérifier qu’il existe des fichiers BSDL pour tous composants JTAG
La conformité aux normes 1149.x nécessite que le composant ait un fichier BSDL (Boundary Scan Description Language). Ce fichier décrit pour chaque composant, la mise en œuvre spécifique de 1149.x. Assurez-vous que ce fichier est disponible (en général, directement à partir du site Web du fabricant) et qu’il a été pleinement validé (la vérification de la syntaxe BSDL est effectuée en tant que partie intégrante de la configuration des projets XJTAG).
Prendre un soin particulier avec la disposition des chaînes 1149.x
Les composants JTAG peuvent avoir des connecteurs distincts pour fournir l’accès aux signaux TAP, mais ils peuvent également être associés pour former une « chaîne JTAG ». On connecte ainsi le signal TDO d’un composant au signal TDI du composant suivant, de manière à former une chaîne.
Les autres signaux, TCK, TMS et (en option) nTRST, sont communs et doivent être connectés en parallèle à tous les composants de la chaîne JTAG. Il est important que les signaux nTRST ne soient pas reliés à niveau logique bas directement, car cela désactive complètement le JTAG, non seulement pour un composant individuel, mais pour la chaîne JTAG complète.
De préférence, les signaux TAP doivent être éloignés des autres signaux actifs, afin d’améliorer l’intégrité du signal. L’interface série JTAG se contrôle normalement avec une fréquence d’horloge de 10 MHz à 30 MHz, et un mauvais routage peut induire des erreurs qui sont très difficiles à cerner.
Le débogage peut être plus facile si les signaux TAP sont intercalés avec la distribution de l’alimentation. Un signal en court-circuit à un signal constant est beaucoup plus facile à diagnostiquer que deux broches TAP en court-circuit.
Utiliser une terminaison correcte pour les signaux TAP
De préférence, TCK devrait être terminé par une résistance de 68 Ω et un condensateur de 100 pF en série avec la masse, placés aussi près que possible de l’endroit où le signal arrive sur le composant final de la chaîne. TDI, TDO et TMS devraient être branchés, chacun à une résistance pull-up de valeur 10 kΩ, tandis que TDO bénéficie d’une résistance en série 22 Ω montée à proximité du composant final de la chaîne. Il est également recommandé de brancher le signal nTRST à une résistance pull-down de valeur 10 kΩ, afin d’éviter des entrées flottantes.
De multiples chaînes JTAG
S’il est nécessaire d’avoir des composants directement reliés à leurs propres connecteurs à des fins de débogage pendant le développement ou la programmation, il serait prudent d’ajouter la possibilité de relier ces connecteurs dans une seule chaîne JTAG, ce qui peut réduire à la fois le nombre des composants et les coûts de manutention en cours de production. La sonde JTAG XJLink2 de XJTAG peut se connecter à un maximum de quatre connecteurs JTAG sur une carte.
Conception du connecteur
En spécifiant les positions de signal sur le connecteur JTAG, il est important de considérer la possibilité d’interférence et de diaphonie, qui sont mieux contrôlées si les signaux TAP sont intercalés avec la distribution de l’alimentation ou de masse. En cas de pénurie de broches sur le connecteur, prendre soin au moins du signal TCK, comme décrit ci-dessus. Dans le cas où il n’y a aucun signal d’alimentation ou de masse qui soit disponible, acheminer le signal TCK à côté d’un signal qui est peu susceptible de changer au cours de balayage, par exemple, nTRST.
Il est particulièrement important d’éviter d’acheminer n’importe quel signal TDO à côté de tout signal TCK. Les transitions de signal TDO se produisent suivant les fronts descendants du signal TCK; donc diaphonie entre les signaux TDO et TCK peut causer des impulsions parasites sur TCK, ce qui peut corrompre les données.
Il est très important d’avoir une connexion signal de masse étroite entre le circuit en cours de test et le contrôleur JTAG. En cas de broches libres, utiliser celles-ci pour fournir des connexions de signaux de masse supplémentaires. Le XJLink2 est doté de deux broches de masse fixes, à savoir, broches 10 et 20. Relier celles-ci permettra d’améliorer l’intégrité du signal.
Dans la mesure du possible, utiliser un connecteur et brochage normalisés pour chaque nouvelle conception, afin que les câbles de test puissent être réutilisés. Ces connecteurs doivent être « clavetés » (keyed) pour éviter tout désalignement. Si le connecteur peut être installé accidentellement en sens inverse, choisissez une disposition de broche qui empêchera les courts-circuits entre les broches d’alimentation et les broches GND (ou « soft GND ») du contrôleur TAP.
L’acheminement des signaux TAP à des broches non utilisées sur d’autres connecteurs peut permettre l’accès à la chaîne JTAG même si le connecteur de test dédié est manquant ou inaccessible. Avertissement: dans ce cas, veiller à ne pas créer des bras de réactances importants, qui peuvent dégrader l’intégrité du signal.
Sélection du mode JTAG
Dans le cas de certains composants, les broches TAP peuvent être configurées pour avoir des fonctions supplémentaires, au-delà du boundary-scan 1149.x. Le mode de fonctionnement désiré est défini en échantillonnant d’autres broches du composant durant sa remise à zéro. Il est donc important de veiller à ce que la conception n’empêche pas le fonctionnement comme composant JTAG. Selon l’exigence de la conception, cette configuration peut être réalisée de plusieurs façons:
- Si les broches TAP sont utilisées uniquement pour la fonction boundary-scan, les broches de configuration peuvent être branchées en permanence aux niveaux requis.
- S’il y a la possibilité que les broches TAP puissent être utilisées autrement, envisager le montage en option des résistances qui permettraient de brancher les broches de configuration à haut ou bas niveau, avec un changement d’assemblage mineur.
- S’il faut basculer facilement entre les fonctions, les signaux de configuration peuvent être reliés à un connecteur. Des résistances de rappel peuvent être utilisées pour définir l’état par défaut, qui peut ensuite être forcé par un contrôleur, par exemple XJLink2.
Les broches, EMU0 et EMU1, liées à plusieurs processeurs Texas Instruments font un bon exemple de ces broches de configuration. D’autres comprennent les broches de ‘Mode’ associées à processeurs Freescale et aussi le signal JTAGSEL associé à la famille de processeurs AT91.
Les valeurs requises pour ces broches seront définies dans la fiche technique / manuel de référence pour le composant. Il est également utile de se pencher pour la section COMPLIANCE_PATTERNS du fichier BSDL pour le composant.
Considérer l’horloge fournie aux composants synchrones
De nombreux composants synchrones peuvent être testés par boundary-scan, mais la réussite dépend de la source de l’horloge. SDRAM, par exemple, exige que l’horloge soit contrôlée par un composant compatible JTAG. Si une horloge autonome était reliée directement à la SDRAM, alors il ne serait pas possible de synchroniser les valeurs de test lues avec le balayage de la chaîne JTAG.
Si un composant JTAG configurable est disponible, par exemple un CPLD ou FPGA, alors acheminer la source d’horloge à travers ce composant vers la SDRAM ou tampon d’horloge pour maximiser la couverture de test comme indiqué ci-dessous.
Il est également important de veiller à ce que les buffers d’horloge n’ont pas une fréquence minimale de fonctionnement. Certains buffers d’horloge ont des entrées de contrôle spéciales qui permettent le fonctionnement à basse fréquence. Ces signaux doivent être accessibles à partir d’un composant compatible JTAG.
D’autres composants, tels que les PHY et commutateurs Ethernet, exigent une entrée d’horloge de fréquence spécifique pour fonctionner. Dans ces cas, il est important de s’assurer que l’horloge n’est pas fournie par une broche à partir d’un composant JTAG. Un oscillateur ou un cristal doit être connecté au composant non-conforme, soit directement ou par l’intermédiaire d’un tampon d’horloge.
Bien qu’il ne soit pas possible d’utiliser le boundary-scan pour interagir avec le composant non conforme à une vitesse élevée, la fourniture d’une horloge appropriée permet souvent un certain niveau de test qui ne serait pas possible autrement.
Faire attention à l’horloge de surveillance
Fournir une liaison cavalier ou logique contrôlable 1149.x pour assurer que l’horloge de surveillance peut être désactivée pendant le test. Les remises à zéro générés quand une horloge de surveillance ne parvient pas à recevoir une entrée régulière au cours des tests peuvent produire des résultats inattendus, voire empêcher le fonctionnement des tests.
De préférence, tester avec des FPGA et CPLD non configurés
Les composants configurables tels que les FPGA et CPLD ont une forte proportion de signaux d’E / S qui sont idéales pour des niveaux élevés de couverture de test. Toutefois, lorsque ces composants sont configurés, de nombreux signaux ne donnent pas leur pleine capacité I / O car des fonctionnalités qui ne sont pas nécessaires sont « dévalidés ». L’utilisation de boundary-scan sans réactiver ces fonctionnalités réduirait la couverture de test.
Il existe une note d’application sur le site XJTAG décrivant la meilleure stratégie de test pour les circuits imprimés contenant ces types de composants.
Maintenir un faible décalage pour les signaux TAP
Le fonctionnement correct demande que les signaux TAP soient maintenus à un faible décalage. Le retard de routage, et retard de tampon des signaux TCK et TMS en particulier doivent être égalisés autant que possible.
Fournir un accès de test pour aider à localiser les erreurs sur la chaîne JTAG
Il est utile de permettre l’accès physique entre le signal TDO d’un composant et le signal TDI du prochain composant afin de cerner plus facilement le composant à l’origine d’un problème dans le cas de non-fonctionnement de la chaîne JTAG. Il peut s’agir d’une résistance de terminaison en série ou d’un point de test.
Bufferiser les signaux TAP et considérer les zones de niveau de signalisation
Si possible, bufferiser les signaux les signaux TAP primaires afin de minimiser le bruit de signal, d’éviter les désadaptations d’impédance et améliorer la sortance. En général, si les pistes sont relativement courtes alors il est acceptable de mettre en œuvre un sortance de 4-6, tandis que les pistes longues ne devraient pas relier plus de 1 ou 2 composants. De préférence, TCK, TDI, TMS et nTRST devraient être bufferisés à l’entrée du circuit imprimé, tandis que TDO devrait être bufferisé proche de la sortie. Il est important de veiller à ce que les tampons soient non-inverseur.
S’il y a des composants JTAG qui fonctionnent à des tensions différentes, il est recommandé de les séparer dans des chaînes JTAG multiples, dont chacune fonctionne à un niveau de tension particulier. Vous pouvez également utiliser une chaîne JTAG unique en regroupant consécutivement les composants de la même famille de tension dans un même ensemble / en blocs. Par exemple, une groupe de composants à une tension de 3,3 V, peut être reliée à une groupe suivante de composants à tension 1,8 V, à travers un translateur de niveau pour ajuster le signal en conséquence.
S’il n’est pas possible de bufferiser les signaux TAP à travers des translateurs de niveau, il vous conviendrait de concevoir la chaîne JTAG dans l’ordre correct, disposé de la tension la plus haute vers la tension la plus basse. Par exemple 3,3 V vers 2,5 V, en utilisant un diviseur à résistances, ce qui est plus facile à organiser que les tensions croissantes.
Il est important que chacun des signaux bufferisés soit équipé d’une terminaison comme décrit précédemment. TCK, TMS et TDI nécessitent chacuns une terminaison de résistance de fin de ligne. Tous les signaux TDO nécessitent une terminaison en série, près de la source du signal.
Contourner les composants JTAG équipés en option
Lorsqu’un composant JTAG est monté en option sur un circuit imprimé, prendre soin de fournir une résistance de 0 Ω, pour compléter la chaîne de données de TAP, dans le cas où le composant JTAG n’est pas installé.
Sans un tel contournement, le débit de données dans la chaîne JTAG serait interrompu, ce qui empêcherait le fonctionnement de la chaîne entière. Si un composant est peu susceptible d’être installé alors envisager de le placer dans une chaîne indépendante.
Relier la chaîne 1149.x à travers des composants sur cartes-filles
Où une carte-fille est utilisée, relier la chaîne JTAG à travers les composants sur la carte-fille via le connecteur. Si la carte-fille est installée en option, mettre en œuvre une logique de détection de la carte-fille pour contourner le chemin de données JTAG au cas où la carte-fille n’est pas installée, comme indiqué ci-dessous.
Conformité 1149.x des ASIC ou tout autre silicium personnalisé
Si votre conception comprend des ASIC ou d’autre silicium personnalisé, alors envisager que ceux-ci soient conçus en conformité de 1149.x, sinon vous risquez une couverture de test réduite.
Fournir un accès à partir de la chaîne 1149.x à tous les composants soumis à la programmation
Si la programmation in-situ de composants tels que Flash ou EEPROM est nécessaire, assurez-vous que toutes les broches requises pour la programmation sont accessibles à partir de composants JTAG.
La vitesse de programmation in-situ dépend à la fois de la longueur de la chaîne JTAG et de la fréquence de TCK. Pour la programmation la plus rapide, la fréquence de TCK doit être aussi élevée que possible et la chaîne JTAG doit être aussi courte que possible.
De préférence, rendre tous les broches requises accessibles à partir d’un composant JTAG unique. XJTAG permet d’optimiser automatiquement le processus de programmation en mettant tous les composants JTAG qui ne sont pas nécessaires pour un balayage particulière dans un mode appelé ‘CLAMP’, ce qui raccourcit le chemin de données à travers chaque composant, à un seul bit.
Il est recommandé d’éviter les conceptions qui comprennent verrouillage d’adresse, ce qui multiplie le nombre de balayages nécessaires pour écrire chaque octet / mot, en augmentant considérablement le temps de programmation.
Fournir un accès direct aux signaux de programmation
Des signaux qui doivent être basculés fréquemment par boundary-scan exigent habituellement deux balayages complets par impulsion. La vitesse de programmation peut être optimisée en contrôlant directement les signaux critiques pour la programmation, tel que la validation d’écriture ou même des protocoles entiers tels que SPI et IIC. En reliant les signaux de programmation au connecteur de test, ceux-ci peuvent être contrôlés à l’aide de broches libres sur le contrôleur JTAG plutôt que par boundary-scan. Les signaux critiques peuvent être basculés indépendamment de la longueur de la chaîne et de la fréquence, ce qui permet de réduire le temps de programmation.
Pour utiliser cette fonctionnalité, il doit être possible de désactiver tous les sorties de boundary-scan reliés à ces signaux.
Logique non-JTAG entourée par des composants JTAG
Organiser la logique non-JTAG en ‘clusters non-JTAG’ entourée par des composants JTAG qui peuvent contrôler toutes les entrées et sorties du cluster. Dans la mesure du possible, assurer suffisamment d’accès aux nœuds dans le ‘cluster’ afin de tester le fonctionnement du ‘cluster’ aussi complètement que possible. Si nécessaire, ajouter des connexions JTAG supplémentaires pour accéder aux nœuds requis. Alternativement, il peut être avantageux d’avoir le système de logique dans un circuit logique programmable, compatible boundary-scan.
Étendre les tests 1149.x à travers les connecteurs
La couverture de test est fortement augmentée si les broches des connecteurs externes peuvent être contrôlées via JTAG, ce qui permet d’inclure alors les tests de ‘circuit ouvert’. La carte E/S XJIO est conçue pour fournir ce genre de signaux supplémentaires contrôlés via JTAG.
Ce type de test n’est possible que pour les signaux numériques standards. Lorsque ce genre de test n’est pas possible, par exemple pour des signaux Ethernet et RS485, utiliser un câble de bouclage durant le test.
Envisager de tester plusieurs cartes comme une seule unité
Lorsque plusieurs cartes sont construites comme une seule unité, considérer le routage des signaux TAP et d’alimentation à travers une partie, ou l’ensemble des cartes sur une unitépour permettre le test simultané de toutes les cartes.
Circuits analogiques
Bien que 1149.1 et 1149.6 ne comprennent pas toute la fonctionnalité explicite pour le test de circuits analogiques, de nombreux tests peuvent être effectués avec une conception soignée. Envisager d’utiliser les sorties conformes 1149.x afin de forcer les entrées de comparateurs ou d’amplificateurs vers niveaux fixes, et de surveiller les sorties de ces composants. L’ajout à coût faible des CNA et des CAN, dont les ports numériques sont connectés aux composants de la chaîne boundary-scan, peut fournir des contrôles supplémentaires pour le test des clusters analogiques. En ajoutant quelques composants appropriés, des tests analogiques complémentaires peuvent être effectués.
Se méfier des résistances configurables
De préférence, n’utiliser pas les pull-up programmables, ceux qui soient fournis dans les E/S de certains composants configurables. Si, par exemple, le fonctionnement d’un bus IIC dépend de ces pull-up, la réussite des tests IIC ne peut pas être garantie. Si cela ne peut pas être évité alors rendez les broches de bus IIC disponible sur un connecteur externe, ainsi les pull-up peuvent être ajoutés à l’extérieur à fins de test.
Prendre avantage de la fonctionnalité des composants JTAG
Il y aura toujours certaines parties de chaque circuit qui ne peuvent pas être testées en utilisant des techniques 1149.x standards, tandis que d’autres parties de la conception exigeront des tests ‘de vitesse’. Dans ces situations, il peut être possible d’utiliser les programmes chargés dans les composants inclus dans la chaîne JTAG pour exercer les fonctions du système.
Composants configurables comme CPLD et FPGA peuvent être programmés en exécutant des fichiers SVF ou STAPL. Pour les processeurs, il peut être possible d’utiliser la flexibilité du langage de programmation XJEase pour charger la configuration.
Utiliser la fonctionnalité de test des composants non-JTAG
Certains composants non-JTAG disposent de fonctionnalités de test spéciaux qui peuvent être utilisés pour augmenter la couverture de test. Ces fonctionnalités, telles que ‘NAND tree’ ou la génération des motifs de test, permettent de tester des réseaux connectés à des signaux qui ne peuvent pas être autrement testés. Elles peuvent être invoquées par écrit aux registres en utilisant des interfaces telles que SPI, IIC et MDIO qui peuvent être contrôlés au moyen de boundary-scan.
Tests interactifs
Un certain nombre de tests ne peuvent se faire qu’à l’aide de l’opérateur. Composants visuels peuvent être testés par l’opérateur qui observe leur fonction et qui signale les résultats via le clavier. Commutateurs peut être reliés à un composant JTAG, ce qui permet la lecture de l’état de l’interrupteur, tout en étant actionné par l’opérateur. D’autres composants tels que les contrôleurs de moteurs pas à pas et de systèmes de haut-parleurs peuvent également être testés.
Fournir la programmation pour mémoire non volatile
XJTAG peut être utilisé pour programmer de nombreux mémoires tels que NOR et NAND Flash avec les interfaces série ou parallèle. Ceci est utile pour le chargement des logiciels ou tout simplement l’enregistrement des options de configuration, tel que numéros de série, adresses MAC Ethernet, etc., dans le cadre de la procédure de test.
Programmation Flash rapide
La programmation in-situ des mémoires Flash via boundary-scan peut être très lente car on ne peut pas basculer les états logiques des broches plus d’une fois par balayage JTAG et chaque balayage peut être de plusieurs milliers de bits. Une solution à ce problème est d’utiliser des routines de programmation assistées soit par FPGA ou par processeur. Ces routines chargent d’abord le FPGA ou le processeur avec un moteur de programmation qui contrôle la programmation Flash. Le port JTAG est ensuite utilisé pour transférer des données vers le moteur de programmation.
La programmation assistée par FPGA peut être implémentée en utilisant les technologies « XJFlash » de XJTAG. En conséquence, les mémoires Flash peuvent être programmées à une vitesse qui proche de leur maximum théorique. Parfois votre conception contient une mémoire Flash, qui ne nécessite pas être connectée à un FPGA pour le fonctionnement normal. Mais si le design contient un autre FPGA avec suffisamment de broches libres, en les relieant à la mémoire Flash, vous pourriez utiliser XJFlash.
La programmation assistée par processeur, tandis que moins rapide que XJFlash, est toujours beaucoup plus rapide que d’utiliser boundary-scan. L’interface de débogage prévue sur plusieurs marques de processeurs utilise JTAG comme protocole de communication. Ces processeurs peuvent être configurés via JTAG pour utiliser leurs contrôleurs Flash afin de programmer des données ou logiciels dans la mémoire Flash.
Pour plus d’informations sur la mise en œuvre de la programmation Flash rapide, veuillez contacter support@xjtag.com.
Glossaire
ASIC | Application Specific Integrated Circuit |
BSDL | Boundary Scan Description Language |
CAN | Convertisseur Analogique-Numérique |
CNA | Convertisseur Numérique-Analogique |
CPLD | Complex Programmable Logic Device (Circuit logique programmable complexe) |
DFT | Design for Testability (Conception en vue du test) |
EEPROM | Electrically Erasable and Programmable Read Only Memory (Mémoire morte effaçable électriquement et programmable) |
FPGA | Field Programmable Gate Array (Réseau de portes programmables in-situ) |
IEEE | Institute of Electrical and Electronics Engineers |
1149.1 | La norme IEEE 1149.x: 1149.1: Test Access Port and boundary scan architecture 1149.6: AC coupled and differential signals (voir www.ieee.org) |
IIC | Inter-Integrated Circuit (I2C) |
E/S | Entrée / Sortie |
JTAG | Joint Test Action Group |
NTRST |
Neutral Test Reset (Réinitialisation neutre matérielle).
Signal commutant tout le matériel sur un statut connu du programmeur afin d’initier une communication plus facilement. |
PCB | Printed Circuit Board (Carte de circuit imprimé) |
STAPL | Standard Test And Programming Language |
SVF | Serial Vector Format |
TAP | Test Access Port (ou Port d’Accès de Test, l’interface 4 ou 5 fils à un composant JTAG) |
TCK | Test Clock – Horloge, signal TAP |
TDI | Test Data Input – Entrée des données, signal TAP |
TDO | Test Data Output – Sortie des données, signal TAP |
TMS | Test Mode Select – Signal d’activation de la communication JTAG, signal TAP |
TRST | Test ReSeT – Réinitialisation. Ce signal optionnel est actif au niveau bas. |
XJTAG | Une suite d’outils de développement et de test de systèmes électroniques |