Chi-Truc Dinh ; Kevin Peterson ELE6306 : Test de systèmes électroniques Projet de cours Conception d’un multiplexeur JTAG Chi-Truc Dinh ; Kevin Peterson Professeur : A. Khouas Département de génie électrique École Polytechnique de Montréal
Plan de l’exposé Introduction Revue de littérature Méthodologie Résultats Conclusion Questions
Introduction
Définition de termes spécifiques Chaîne locale : chaîne connectée a un des ports JTAG du multiplexeur Chaîne activée : chaîne locale faisant partie de la chaîne JTAG Chaîne JTAG : chaîne formée avec toutes les chaînes activées
ACT8997 de Texas Instruments Caractéristiques: Nombre de chaînes supportées : 4 Sélection : - Select register de 8 bits Configuration : circuit dédiée Dépend du Select register et du Control register Solution pour N > 4 : cascader des ACT8997
PSC110F (NSC) Caractéristiques: Nombre de chaînes supportées : 3 Sélection : transitions appropriées dans les machines a états instruction UNPARK Configuration : Mode register Réseau de multiplexeur Solution pour N > 3 : cascader des PSC110F Particularité : - BIST intégré (LFSR mais pas de MISR)
Scan Ring Linker (Intellitech) Caractéristiques : Nombre de chaînes supportées : N Sélection d’une chaîne locale : inconnue Configuration de la chaîne active : inconnue Particularité : - Supporte plusieurs tensions de référence, plage d’opération entre 1.8 et 5 V
Méthodologie Définition de la fonctionnalité et de l’architecture Implantation des fonctions en VHDL Génération des fichiers BSDL Codage du banc d’essai et vérification du multiplexeur
Architecture du multiplexeur JTAG Caractéristiques : - Nombre de chaînes configurable - Activation/désactivation s’effectue par les 4 pins JTAG lors d’un Scan-IR - Registre IDCODE - Mode Chain Select: gèle le TMS et le TCK des chaînes actives - Routage des TDI et TDO de sortie: de la chaîne active d’index le plus bas -> l’index le plus haut.
Conception de l’architecture Format des instructions envoyées au MUX Exemple de branchement des ports JTAG :
Implémentation du multiplexeur en VHDL Registre/Signal Fonction wrk_cfg Registre servant à mémoriser le mode (Chain Select ou autre) et les chaînes activées wrk_dr Registre de Bypass wrk_ir Registre d’instruction Boundary Scan wrk_state Registre d’état du TAP Controller wrk_tdo Registre servant à mémoriser la valeur du TDO wrk_mode Registre servant à mémoriser le mode Chain Select chselmode Signal servant à extraire le code du mode Chain Select du registre wrk_cfg versionmode Registre servant à mémoriser le mode IDCODE versioncode Registre à décalage pour l’IDCODE tdo_drive Signal servant à déterminer si le TDO doit être actif ou en haute impédance, selon l’état de wrk_state tms_i(N à 0) Signaux se branchant au TDI des chaînes locales tms_ch(N à 0) Registre servant à mémoriser la dernière valeur envoyée sur le TMS des chaînes locales, pour la garder pendant le mode Chain Select
Exemple de fichier BSDL -- Jtag Mux 3 Chain 0 BSDL File -- Updated: December 5, 2003 --********************************************************************** -- entity chain0_3 is generic(PHYSICAL_PIN_MAP : string:= "HYPERCHIP"); port ( TCK : in bit; TDI : in bit; TDO : out bit; TMS : in bit ); use STD_1149_1_1990.all; attribute PIN_MAP of chain0_3 : entity is PHYSICAL_PIN_MAP; constant HYPERCHIP:PIN_MAP_STRING := "TCK : 36,"& "TDI : 33,"& "TDO : 34,"& "TMS : 35"; attribute Tap_Scan_In of TDI : signal is true; attribute Tap_Scan_Mode of TMS : signal is true; attribute Tap_Scan_Out of TDO : signal is true; attribute Tap_Scan_Clock of TCK : signal is (1.0e7, BOTH); -- attribute TAP_SCAN_RESET of TRST : signal is true; attribute Instruction_Length of chain0_3: entity is 14; attribute Instruction_Opcode of chain0_3: entity is "BYPASS (101000110)," & "SAMPLE (000000011)," & "IDCODE (111111100)," & "EXTEST (000000000)"; attribute Instruction_Capture of chain0_3 : entity is "XXXXXXX01"; attribute Boundary_Cells of chain0_3: entity is "BC_1"; attribute Boundary_Length of chain0_3: entity is 1; attribute Boundary_Register of chain0_3: entity is "0 (BC_1, *, control, 0)"; end chain0_3;
Résultats Chronogramme de la lecture de l’IDCODE du multiplexeur à 3 chaînes Chronogramme du déplacement dans la machine à états du multiplexeur à 3 chaînes
Résultats Chronogramme de l’activation des chaînes 0 et 2 dans le multiplexeur à 3 chaînes
Résultats Chronogramme de démonstration du routage des signaux TDI et TDO dans le multiplexeur à 3 chaînes Chronogramme de démonstration du mode Chain Select dans le multiplexeur à 3 chaînes
Résultats Chronogramme de l’activation de toutes les chaînes dans le multiplexeur à 3 chaînes Chronogramme de l’activation de toutes les chaînes dans le multiplexeur à 8 chaînes
Conclusion Travaux a compléter Vérifier toutes les configurations possibles Effet du déplacement dans tous les états du TAP Controller Futurs travaux possibles Implémenter de nouveaux modes d’activation Génération automatisée des fichiers BSDL
Questions