2.5 Boundary Scan (JTAG) JTAG = Joint Test Action Group (für Boundary Scan verantwortliches Gremium) 2.5.2 Prinzipieller Aufbau eines Boundary-Scan-fähigen Bausteins Boundary-Scan-Zelle 2.5. Überblick D7 Y7 IC-Pin Zweck: Test von Platinen mit Digitalschaltungen Mit Einschränkungen auch geeignet zum Test von einzelnen IC's D6 D5 D4 Y6 Y5 Y4 Voraussetzungen: D3 Y3 Y2 - Vorhandensein von zusätzlicher Testhardware auf den verwendeten Bausteinen D Y - Zusätzliche Verdrahtung auf den Platinen D Y Prinzip: - Alle Ein- und Ausgänge der verwendeten Bausteine können zu einem Schieberegister verschaltet werden TRST * TD * Option Vorteil: möglich Nachteil: - Mit Hilfe einer speziellen Schnittstelle (Test Access Port, TAP ) können Daten unabhängig vom Zustand der Schaltung an jeden Eingang eines IC's gelegt und von jedem Ausgang eines IC's gelesen werden - Test der gesamten Platine mit 4-Draht-Schnittstelle (TAP) - Fertigungstest und Fehlersuche bei Reparatur mit gleicher Schnittstelle und Testsoftware möglich Zwischen jedem Baustein- Ein- und Ausgang und der On-Logik liegt eine Boundary-Scan-Zelle. Zusätzlich: - Test - Access - Port (,,,) Anschlüsse zur Steuerung der Boundary - Scan (BS)-Logik - TAP - Controller Interne Logik zur BS-Steuerung - Zusätzliche Testhardware erforderlich, nur Boundary-Scan-fähige Bauelemente dürfen benutzt werden 2.Test von Digitalschaltungen 39 D. Kohlert 8/2 2.Test von Digitalschaltungen 4 D. Kohlert 8/2
2.5.2 Verschaltung mehrerer BS-fähiger IC's auf der Platine 2.5.3 Aufbau einer Scan - Zelle Eine BS-Schleife: Din D Q Dout Shift_Dr Clock_DR Update_DR Mode D7 Y7 D7 Y7 D6 Y6 D6 Y6 D5 D4 Y5 Y4 D5 D4 Y5 Y4 - bildet Schieberegister D3 Y3 D3 Y3 - Latch legt Daten an IC- oder IC-Ausgang D Y2 Y D Y2 Y - Multiplexer steuern Datenfluß D Y D Y 2.5.4Verschaltung von BS-Zellen, Ein- und Ausgängen sowie IC TD TD Eingänge Ausgänge TD Chipinterne Logik D5 Y5 D5 Y5 Y2 Y Y2 D D Y D Y TD D3 D4 Y3 TD D Y4 D3 D4 Y Y3 Y4 Y6 Y7 D6 D7 Y6 Y7 D6 D7 2.Test von Digitalschaltungen 4 D. Kohlert 8/2 2.Test von Digitalschaltungen 42 D. Kohlert 8/2
Steuerung: 2.5.5 Aufbau der BS-Steuerlogik Eingänge Ausgänge - Multiplexer werden vom TAP-Controller gesteuert - Latch-Übernahmepuls wird vom TAP-Controller erzeugt 's werden mit CkDr getaktet, CkDr kann vom TAP-Controller an- und abgeschaltet werden - CkDr wird aus erzeugt Design-specific Registers (opt) Mögliche Datenflüsse: T A P Device ID Register Bypass (opt.) MUX - Parallele Datenübernahme in die Scan-'s: Test Data Registers von den Eingängen bzw. von den Ausgängen der Logik : "Capture" TRST CkDr ShiftDR UpdateDR CkIr ShiftIR UpdateIR Reset Instruction Register Instruction Decode - Durchschieben der Daten durch die als Schieberegister verschalteten Scan-'s Einschieben von neuen und Ausschieben von übernommenen Daten : "Shift" - Parallele Datenübernahme von den Scan-'s in die Update-Latches: "Update" Register: Boundary-Scan-Register BS-Zellen an den Ein- und Ausgängen (s.o.) Bypass-Register Bit, dient zur Überbrückung des BS-Registers Device-ID-Register enthält Bitmuster zur Bausteinidentifizierung (optional) Design Specific Test Data Register Zusätzliche Register für beliebige Zwecke (optional) 2.Test von Digitalschaltungen 43 D. Kohlert 8/2 2.Test von Digitalschaltungen 44 D. Kohlert 8/2
Instruction Register: Register zur Aufnahme eines Befehls Aufbau des Instruction Register: Übersicht: zur Befehlsdekodierung Funktionen: Shift_Ir=: SHIFT: Shift_Ir=: CAPTURE: UPDATE_IR: Daten werden durchgeschoben Daten werden parallel ins Schieberegister geladen Inhalt des Schieberegisters wird ins Update- Register (Latches) geladen UpdateIr ShiftIr CkIr Update Latches Ausgang serielle Daten Registerlänge: von Mindestens 2 Bit: Zwei Bit für die vorgeschriebene Mindestzahl Befehlen Zwei Bit, die parallel immer mit "", "" geladen werden (zum Test der Testhardware) Für zusätzliche, herstellerspezifische Befehle können längere Befehlsregister verwendet werden Designspezifisch (optional) "" "" 2.5.6 Steuerung der BS - Hardware Serieller Dateneingang Paralleler Dateneingang Steuerung der TAP - State-Machine durch, : Innerer Aufbau: UpdateIr ShiftIr CkIr Designspezifische Daten Test-Logic Reset Run-Test/Idle Select-DR-Scan Capture-DR 2.Test von Digitalschaltungen 45 D. Kohlert 8/2 2.Test von Digitalschaltungen 46 D. Kohlert 8/2
TAP - State - Machine: Zustände der TAP - State - Machine Capture IR: Instruktionsregister wird parallel geladen ( Mit positiver - Flanke ) Test-Logic-Reset Run-Test/Idle Select_Dr-Scan Capture-Dr Select_Ir-Scan Capture-Ir DR: Alle Datenregister werden parallel geladen ( Mit positiver - Flanke ) Shift IR Instruktionsregister wird weitergeschoben IR wird auf durchgeschaltet ( Solange = ; => Anzahl der geschobenen Bits beliebig ) Shift-Dr Shift-Ir DR: Jedes Datenregister wird weitergeschoben Durch vorherigen Befehl selektiertes DR wird auf durchgeschaltet Exit-Dr Pause-Dr Exit2-Dr Update-Dr Pause-Ir Exit-Ir Exit2-Ir Update-Ir Update IR: Inhalt des IR - Schieberegisters wird in die Update-Latches übertragen DR: Inhalt des DR - Schieberegisters wird in die Update-Latches übertragen Update_DR Exit-DR Update-DR Latches übernehmen => Daten mit ( ) => Update-Latches Test-Logic-Reset Chip im Normalbetrieb; Testlogik inaktiv alle BS-Zellen überbrückt kann immer erreicht werden mit = für mindestens 5 Takte Run-Test/Idle Pause Falls Selbsttest möglich, dann Durchführung in diesem Zustand vorgeschrieben Wartezustand, z. B. zum Nachladen von Daten von der Festplatte Restliche Zustände: Nötig zur Steuerung der State-Machine 2.Test von Digitalschaltungen 47 D. Kohlert 8/2 2.Test von Digitalschaltungen 48 D. Kohlert 8/2
Schiebetakt für IR,DR : Wird nur im Zustand Shift-Ir bzw. Shift-Dr erzeugt. => Kein vollsynchrones Design (Zentraler Takt nicht permanent mit allen Speicherelementen verbunden, gilt auch für Update-Latches) => Spike-freie Erzeugung von Clock-Dr, Clock-Ir nötig: Timing: Hardware: TAP FSM CK 2.5.7 Funktionsabläufe der BS - Logik 2.5.7. Befehlssatz Vorgeschriebene Befehle (nach IEC Standard 49.) : Zusätzlich: Daher: Extest Sample/Preload Bypass Häufiger Befehlssatz: Bausteinspezifische Befehle möglich Länge der Befehlsbitfolge variabel Bypass Extest Sample/Preload Intest User User2 User3 => 3 Bit Befehlsfolge nötig => Länge des Befehlsregister: 3 Bit 2.Test von Digitalschaltungen 49 D. Kohlert 8/2 2.Test von Digitalschaltungen 5 D. Kohlert 8/2
2.5.7.2 Einlesen eines Befehls 2.5.7.3 Ausführung von Befehlen TAP-State-Machine wird in den Befehlslesezyklus gesteuert (siehe Zustandsdiagramm) Befehl: Bypass Signalverläufe: Bypass-Register wird aktiviert: D D - Serieller Datenstrom wird über das Bypass-Register am Baustein - vorbeigeführt - z.b. Test von einzelnen Bausteinen möglich: CkIr IR2 D D IR D D IR UpdateIr D Bypass- Register Bypass- Register Bypass- Register IR_UL2 IR_UL D IR_UL Test-Logic-Reset Run-Test/Idle Select-Dr_Scan Select-Ir_Scan Undef Ir_old Ir_old Ir2_old Capture-Ir Shift-IR Shift-IR Shift-IR Exit-DR D Update-IR D werden Es müssen nicht alle Schieberegisterketten durchgeschoben => Zeitersparnis 2.Test von Digitalschaltungen 5 D. Kohlert 8/2 2.Test von Digitalschaltungen 52 D. Kohlert 8/2
Befehl: Sample/Preload Bitfolge: ( = I2 I I ) Funktion : - Laden des BS-Registers mit neuen Daten - Ausschieben gespeicherter Daten - Keine Beeinflussung des normalen Betriebs Zustandsfolge: Run-Test/Idle Capture-DR Shift Shift... Exit-DR Update-DR Datenflüsse: Befehl: EXTEST Bitfolge : Zweck: Testen der Platine auf Kurzschlüsse und Unterbrechungen Zustandsfolge: Run-Test/Idle Select-DR-Scan Capture-DR Shift-Dr... Exit-DR Update-DR Ausgangszustand nach Preload/Sample, EXTEST/Update: 2.Test von Digitalschaltungen 53 D. Kohlert 8/2 2.Test von Digitalschaltungen 54 D. Kohlert 8/2
Befehl: INTEST Zweck: In-Circuit-Test eines einzelnen Bausteins Nur für Bausteine, die im Step-Modus betrieben werden können Zustandsfolge: Run-Test/Idle Select-DR-Scan Capture-DR Shift-DR... Exit-DR Update-DR Datenflüsse: Ausgangszustand nach vorherigem Preload/Sample, INTEST-Update: 2.5.7.4 Behandlung von Tristate-Ausgängen und I/O-Pins Tristate-Ausgänge: Ausgang und Enable werden wie je ein separater Ausgang behandelt: Chipkern Enable Pin BS-Zellen I/O-Pins: Ausgang und Enable werden wie je ein separater Ausgang behandelt. Für die Funktion als Eingang ist eine zusätzliche BS-Zelle notwendig Chipkern Enable I/O-Pin Beliebig viele INTEST-Durchläufe möglich! 2.Test von Digitalschaltungen 55 D. Kohlert 8/2 2.Test von Digitalschaltungen 56 D. Kohlert 8/2
Beschreibungssprachen für Boundary-Scan-Devices: BSDL = Boundary Scan Description Language Beispiel: = Beschreibungssprache für Einzelbausteine Angelehnt an VHDL entity AMD_MAC445 is generic(physical_pin_map: string:= "PQFP_pin"); port ( DED_IN: in bit_vector( to 5); -- Clocks/Inputs IO: inout bit_vector( to 63); -- I/O-Pins,,, TRST: in bit; --JTAG Pins : out bit; --JTAG Output ENABLEB: linkagebit; --Program Enable Pin VCC :linkagebit_vector( to 7); GND :linkagebit_vector( to 5) ); "PRIVATE (,,,,,)," & "PRIVATE (,,,,,)," & "PRIVATE (,,,,,)" ; attribute INSTRUCTION_CAPTURE of AMD_MACH_445: entity is ""; attribute INSTRUCTION_DISABLE of AMD_MACH_445: entity is "HIGHZ"; attribute INSTRUCTION_PRIVATE of AMD_MACH_445: entity is "PRIVATE"; attribute IDCODE_REGISTER of AMD_MACH_445: entity is "" & --version number "" & -part id "" & -- company code ""; --mandatory attribute USERCODE_REGISTER of AMD_MACH_445: entity is ""; attribute REGISTER_ACCESS of AMD_MACH_445: entity is "BYPASS (BYPASS; HIGHZ)," & "BOUNDARY (EXTEST, SAMPLE,REG_PRE,REG_OBS),"; use STD_49 99.all; -- get JTAG Definitions and Attributes attribute PIN_MAP of AMD_MACH_445: entity is PHYSICAL_PIN_MAP; constant PIN_MAP of AMD_MACH_445: entity is PHYSICAL_PIN_MAP; constant PQFP_pin: PIN_MAP_STRING:= "DED_IN:(3,8,54,63,68,4), "& --Dedicated Clock/Input Pins "IO: (93,94,95,96,97,98,99,, " & --I/OA... attribute TAP_SCAN_IN attribute TAP_SCAN_MODE attribute TAP_SCAN_OUT attribute TAP_SCAN_RESET attribute TAP_SCAN_CLOCK of : signal is true; of : signal is true; of : signal is true; of TRST: signal is true; of : signal is true; --Instruction Register Definitions attribute INSTRUCTION_LENGTH of AMD_MACH_445: entity is 6; attribute INSTRUCTION_OPCODE of AMD_MACH_445: entity is "BYPASS ()," & "EXTEST ()," & "SAMPLE ()," & "IDCODE ()," & "USERCODE ()," & "HIGHZ ()," & "REG_PRE ()," & "REG_OBS ()," & 2.Test von Digitalschaltungen 57 D. Kohlert 8/2 2.Test von Digitalschaltungen 58 D. Kohlert 8/2
HSDL = Hierarchical Scan Description Language Beispiel: = Beschreibungssprache für Boards und Systeme Angelehnt an VHDL 2.Test von Digitalschaltungen 59 D. Kohlert 8/2