Grundprinzip BIST
Vorteile: Verkürzung der Testzeit (Tester muss weniger Daten Senden/Empfangen) Besserer Zugriff auf interne Komponenten im DUT
Nachteil: Zusätzliche Hardware DUT muss BIST-tauglich sein (Möglichkeit der Maskierung von X-Bits)
2
Chip
DUT
Externer Tester
BIST Modul
Steu
ersig
nale
Kompaktierte Testantw
ort / Pass/Fail Inform
ation Testmuster Testantwort
Chip
DUT
BIST Modul inklusive Testablaufsteuerung
Testmuster Testantwort
Aufbau für Feldtest Aufbau für Produktionstest
BIST-Architekturen
Parallele BIST-Architektur
Sequentielle BIST-Architektur
Quelle: J. Rajski, J. Tyszer: „Arithmetic Built-In Self-Test for Embedded Systems“
Testmustererzeugung für BIST
Testmustererzeugung auf dem Chip für: − erschöpfenden Test − pseudo-erschöpfender Test − Test mit Pseudo-zufallsbasierten
Testmustern
Generierung zufälliger Testmuster mittels rückgekoppeltem Schieberegister (LFSR)
Zur Erhöhung der Testüberdeckung Ergänzung um deterministisch erzeugte Testmuster (Testmuster wurden mit einem ATPG Tool erzeugt und durch das LFSR erzeugt Testmuster werden stellenweise manipuliert, um einige der deterministisch erzeugten Testmuster zu erhalten.
4
Testmustererzeugung (z.B. durch ein rückgekoppeltes Schieberegister)
DUT
Testmuster
Scan
kette
Scan
kette
Scan
kette
Komb. Logik
Komb. Logik
LFSR
5
Aufbau rückgekoppelter Schieberegister (LFSR)
D Q D Q D Q D Q D Q …
h0 h1 h2 h3 h4
D Q D Q D Q D Q D Q …
h0 h1 h2 h3 h4
External XOR n–stage LFSR
Internal XOR n–stage LFSR
zur Scankette
zur Scankette
6
Beispiele
D Q D Q D Q D Q
0 0 0 1
1 0 0 0
0 1 0 0
1 0 1 0
0 1 0 1
0 0 1 0
0 0 0 1
D Q D Q D Q D Q
0 0 0 1
1 1 0 0
0 1 1 0
0 0 1 1
1 1 0 1
1 0 1 0
0 1 0 1
1 1 1 0
0 1 1 1
1 1 1 1
1 0 1 1
1 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Seeding
Ziel: Minimale Testzeit bei hoher Fehlerüberdeckung
Lösung: − pseudozufällige Testmuster für die meisten einfach zu testenden Fehler − deterministische Testmuster für die schwierig zu testenden Fehler durch
Seeding des LFSR (Initialisierung des LFSR)
Scan-Kette LFSR Seeds Se
lect
Decoder
8
Analyse der Testanworten
Ausgabe der vollständigen Testantwort an den Tester ist zu aufwändig.
Deshalb: Kompaktierung der Ausgaben auf dem Chip zu einer Signatur
Kompaktierung ist verlustbehaftet. − Maskierung von Mehrfachfehlern möglich.
Ausgabe der Signatur oder Vergleich der Signatur auf dem Chip mit einer
"goldenen" Signatur.
Kompaktierung in − Platz: XOR-Bäume − Zeit: SISR, MISR
9
XOR-Bäume
Scan
kett
e
Scan
kett
e
Scan
kett
e
Scan
kett
e
Scan
kett
e
Scan
kett
e
Scan
kett
e
Scan
kett
e
…
XOR XOR
XOR
XOR XOR
XOR
Testantworten
11
Multiple Input Signature Register (MISR)
D Q D Q D Q D Q D Q …
h0 h1 h2 h3 h4
M0 M1 M2 M3 M4 M5
Mi … Input von Scankette i
12
Chip
Aufbau BIST-Modul
BIST Controller
Testmustererzeugung (z.B. durch ein rückgekoppeltes Schieberegister)
DUT
Analyse der Testantworten (Kompaktierung)
Testmuster
Testantworten
Kompaktierte Testantworten
Scan
kette
Scan
kette
Scan
kette
Komb. Logik
Komb. Logik
LFSR
MISR
14
Logic BIST Architektur (STUMPS)
LFSR
CUT
MISR
PI
Scan
kett
e Sc
anke
tte
Scan
kett
e Sc
anke
tte
PO
…
LFSR
CUT
MISR PI
Sc
anke
tte
Scan
kett
e
Scan
kett
e Sc
anke
tte
PO
…
Linear Phase Shifter
Linear Phase Compactor
Für wenige Scanketten Für viele Scanketten, um LFSR und MISR klein zu halten.
Diagnose
Für jeden Fehler fi in der Schaltung findet Simulation mit den Testmustern (p1,…,pn) statt und liefert die Testantworten (ri1,…,rin)
Abbildung der Testantworten auf Fehler mit einem Fehler-Wörterbuch − Problematisch für Mehrfachfehler und unmodelierte Fehler
Statt voller Testantwort steht bei BIST eine Signatur für die Diagnose zur
Verfügung
Fehler Testantwort
f1 (r11,…,r1n)
f2 (r21,…,r2n)
f3 (r31,…,r3n)
… …
Diagnosis mit BIST
Probleme bei Verwendung einer Signatur: Fehlermaskierung (z.B. durch räumliche Kompaktierung) Erfassen mehrerer Testantworten in einer Signatur Lösungen: Fehlerisolation (erfordert Wiederholung des Tests) Mehrere Signaturen speichern
R.C. Tekumalla: “On Reducing Aliasing Effects and Improving Diagnosis of Logic BIST Failures”, ITC’03
A. Cook, M. Elm, et. al.: “Structural In-Field Diagnosis for Random Logic Circuits”, ETS’11
Applying Fault Isolation Keeping intermediate signatures
Grundprinzip SBST
Ursprüngliche Anwendung − Kein Ersatz für andere Testverfahren (BIST, Scantest) − Unterstützung bei geringen Zusatzkosten
18
Chip
DUT (Prozessor)
Speicher
Test- antworten
Test- programm
VLIW Core
Speicher
ldc r0,0xAAAA ldc r1,0x5555 Add r2,r0,r1 xor r31,r2,r31 ldc r4, 0x259a mul r0,r4,r2 xor r31,r0,r31 . . . store [FFFF],r31
Softwarebasierter Selbsttest (SBST)
19
Testprogramm
Signatur
Signatur erzeugen
Signatur speichern
Signatur
Bestimmung der Fehlerüberdeckung durch
Fehlersimulation.
SBST
Vorteile: Nicht Invasiv At-Speed Testing Kein Übertesten Im-Feld-Testen
Nachteil: Testprogrammgenerierung Nur für programmierbare
Prozessoren nutzbar
20
Chip
DUT
Externer Tester
Speicher
Test
prog
ram
m
Kompaktierte Testantw
ort / Pass/Fail Inform
ation Chip
DUT (Prozessor)
Speicher
Test- antworten
Anwendung Test- programm
Produktionstest Feldtest
Anforderungen an das System
Speichermodul in dem das Testprogramm gespeichert ist, muss für den Prozessor und Tester zugreifbar sein.
Upload Mechanismus, mit dem das Testprogramm in diesen Speicher gebracht werden kann, ist erforderlich.
Methode, um das Testprogramm zu starten.
Überwachung der Testausführung erforderlich.
Ressourcen, in denen die Ergebnisse des Tests abgespeichert werden können.
22
Zeitlicher Ablauf SBST
SBST Programm Upload
SBST
Pro
gram
mst
art SBST Programmabarbeitung &
Ergebnissammlung Download der Ergebnisse
SBST Programmablaufbeobachtung
Zeit
Test mit Prozessortakt
Testprogrammgenerierung (Open Loop)
23
SBST
Mit Strukturinformationen Ohne Strukturinformationen
Open Loop Feedback Based ATPG-basiert
Experte
ld r2,#5 add r2,r3 …
Testprogramm
schreibt
Testprogramm wird durch einen Experten erstellt (Befehlssatz des Prozessors ist bekannt, Bereits vorhandene Testroutinen sind bekannt, …)
Exakte Fehlerüberdeckung kann nicht angegeben werden.
24
Feedback-basierte Testprogrammgenerierung
SBST
Mit Strukturinformationen Ohne Strukturinformationen
Open Loop Feedback-basiert ATPG-basiert
ld r2,#5 add r2,r3 …
Zufallserzeugte Testprogramme
ld r2,#5 add r2,r3 …
ld r2,#5 add r2,r3 …
Simulation
Testprogramm- erzeugung
Fehler- überdeckung
Testprogramme werden zufallsbasiert erzeugt (z.B. durch genetische Algorithmen)
Fehlerüberdeckung wird durch Simulation ermittelt (feedback)
Hohe Fehlerüberdeckung erreichbar
Sehr zeitaufwändig
25
ATPG-basierte Testprogrammgenerierung
SBST
mit Strukturinformationen ohne Strukturinformationen
Open Loop Feedback-basiert ATPG-basiert
11011101010000010011101101
11011101110000010011101101
Testmustergenerator Test-
muster
Teil eines kombinatorischen Blocks (z.B. ALU)
ld r2,#7 ld r3,#0 add r2,r3 …
Testprogramm
Constraints (z.B. Sprünge sind
auf bestimmte Adressen
beschränkt)
Testmuster werden mittels ATPG erzeugt
Abbilden der Testmuster auf Software Templates
Hohe Fehlerüberdeckung ist durch ATPG garantiert.
Nicht alle Testmuster können auf Softwareroutinen abgebildet werden.
26
Testprogramm Upload
Chip
DUT
Externer Tester
Speicher (RAM)
Steu
ersig
nale
Test- programm Speicher
(ROM)
Speicher (RAM) Testantw
ort
Chip
DUT
Externer Tester
Speicher (RAM)
Steu
ersig
nale
Testantwort
Testprogramm im ROM: Speicher permanent belegt durch Testprogramm Kein Upload erforderlich Praktisch für Feldtest
Testprogramm im RAM. Upload erfolgt DMA-basiert, über Dual-Ported RAM, Wrapper.
DMA-basiert
Schneller Programmupload, kostengünstig, weil Systembusstrukturen verwendet werden
Upload-Prozess ist durch den Prozessor getrieben, der noch nicht getestet wurde.
27
Mikroprozessor RAM
DMA
Externer Tester
Dual-Ported RAM
Schnellster Programmupload,
Sehr teuer, wegen zweiten Speicher-Ports
28
Mikroprozessor RAM
Externer Tester
Wrapper-basiert
Häufig serieller Programm-Upload (langsam). Speicher kann isoliert werden, damit kann korrekter Upload gewährleistet
werden. Prozessor wird nicht verwendet beim Upload, Fehler beim Upload durch
fehlerhaften Prozessor können nicht entstehen.
29
Wrapper
Mikroprozessor RAM
Externer Tester
30
Testprogramm starten und Ergebnisse erfassen
Testprogramm starten: Reset des Prozessors, sobald der Testcode im Programmspeicher ist oder Interruptkontrollierter Start. Testergebnisse erfassen: Testergebnisse können durch zusätzliche Anweisungen in einen von außen
zugreifbaren Speicher gebracht werden. Hohes Datenvolumen kann reduziert werden durch HW- oder SW-
implementierten MISR. Signatur wird dann nur noch an ATE weitergegeben oder mit einer Signatur
verglichen. Überwachen des Testprogrammablaufs durch ATE: Feststellen, wann das Testprogramm beendet ist, weil:
− Laufzeit ist im Vorfeld nicht bekannt oder − Im Fehlerfall terminiert das Programm gar nicht.
Monitoring kann durch explizite Kommunikation des Testprogramms mit dem ATE (z.B. über Speicher oder Ports) erreicht werden.
Diagnose mit SBST
31
Verschiedene Fehler erzeugen verschiedene Signaturen.
VLIW Core
Speicher
Testpro-gramm
Signatur A VLIW Core
Speicher
Testpro-gramm
Signatur B
Fehler A
Fehler B
Problem signaturbasierter Ansätze
32
Speicher
Testpro-gramm
Signatur A+B
Zuordnung von Signaturen zu Fehlern muss durch Simulation berechnet werden
Praktisch unmöglich bei Mehrfachfehlern: 100.000 Einzelfehler ergeben ~ 5.000.000.000 Doppelfehler
VLIW Core
Fehler A
Fehler B
Lösungsansatz
Ein Testprogramm zum Test der Funktion(en) einer Komponente Zusammenfassen von Fehlern zu reparierbaren Fehlerklassen
33
VLIW Core
ALU3
Speicher
TP ALU1
TP ALU2
TP n
Fehlerzustand
Fehler A
Fehler B ALU1
ALU2 Lese-ports
Registerbank
Funktionaler Test der Komponenten muss systematisch erfolgen und adaptiv sein.
…
Motivation für systematischen SBST
34
Slot 1 Slot 2 Ldc r0,0xAAAA Nop Ldc r1,0x5555 Nop Add r1,r0,r2 Nop Ldc r3,0xFFFF Nop Cmp r2,r3 Nop Jnz Add1Failed Nop
Initialisierung
Test
Testantwort erfassen
Test des Addierers in Slot 1
Quelle des Fehlers
Aber: Addierer wird als fehlerhaft diagnostiziert
Ideale Lösung: Alle Komponenten des Prozessors, die zur Initialisierung eines Tests und zum Erfassen der Testantwort verwendet werden, müssen
vorher getestet worden und fehlerfrei sein.
Motivation für adaptiven SBST
35
Slot 1 Slot 2 Ldc r0,0xAAAA Nop Ldc r1,0x5555 Nop Add r1,r0,r2 Nop Ldc r3,0xFFFF Nop Cmp r2,r3 Nop Jnz Add1Failed Nop
Wie soll der Addierer 1 getestet werden, wenn ldc-Operation als fehlerhaft
bekannt ist?
Slot 1 Slot 2 Nop Ldc r0,0xAAAA Nop Ldc r1,0x5555 Add r1,r0,r2 Nop Nop Ldc r3,0xFFFF Nop Cmp r2,r3 Nop Jnz Add1Failed
Lösung: Anwendung der softwarebasierten
Selbstreparatur auf das Testprogramm
Prinzip des adaptiven systematischen SBST zur Diagnose im Feld
36
Fehler erkannt?
Passe verbliebene Testprogramme an Fehlerzustand an
Starte Testprogramm für Komponente 1
Speichere Fehlerzustand von Komponente 1
…
Starte Selbstreparatur
Starte Testprogramm für Komponente 2
Starte Testprogramm für Komponente n
ja
nein
Fehler erkannt?
Passe verbliebene Testprogramme an Fehlerzustand an
Speichere Fehlerzustand von Komponente 2
ja
nein