Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Testen hochintegrierter Schaltungen

Ähnliche Präsentationen


Präsentation zum Thema: "Testen hochintegrierter Schaltungen"—  Präsentation transkript:

1 Testen hochintegrierter Schaltungen
Kapitel 4. Test-Erzeugung (für kombinatorische Schaltkreise) Ralph Weper

2 Übersicht Motivation Modellierung
Nützliche Definitionen und Datenstrukturen Klassifikation von ATPG-Algorithmen D-Algorithmus von Roth Definitionen und Operationen Struktur des Algorithmus Beispiele

3 Motivation: 64-bit Addierer
funktional 64 A B Cin Summe Ü 2129 Eingabemuster 265 Ausgabemuster ATE mit 1 GHz benötigt ca. 2,2 * 1022 Jahre

4 Motivation: 64-bit Addierer
strukturell Summe X sa0,1 Ai = 1 Si 10 Fehlerklassen für S 17 Fehlerklassen für Ü 64 * 27 = 1728 Testmuster ATE mit 1 GHz benötigt ca. 0, Sekunden 10 Fehlerklassen Bi = 1 Ci X sa0,1 sa0 sa1 X sa0,1 Ai Bi Ci & ≥ 1 Ci+1 Übertrag

5 Motivation ATPG: Automatic Test Pattern Generator
Prozess, generiert Muster zum Testen eines Schaltkreises Auffinden redundanter Logik (RID) Äquivalenz von Schaltungen Schaltkreis durch Netzliste beschrieben Verwendung eines Fehler-Generators

6 Datenstrukturen Binary Decision Tree ABC + AB’C’ + A’BC’ + A’B’C = 1
C’ C B’ B A’ A = 1 C

7 Datenstrukturen Binary Decision Diagram = 1 = 1
ABC + AB’C’ + A’BC’ + A’B’C B’ B’ C C C’ C’ 1

8 ATPG Algebren Boolesche Notation einer Menge
Gleichzeitige Darstellung Good vs. Bad Machine Roth: 5-wertige Logik {D, D’, 0, 1, X} D = (1/0): (Gute Maschine = 1 / Fehlerhafte Maschine = 0) D’ = (0/1) 0 = (0/0) 1 = (1/1) X = (X/X) Muth: zusätzlich G0 = (0/X), G1 = (1,X), F0 = (X,0), F1 = (X,1)

9 Definitionen Fault Cone (Fehler-Kegel): Bauelemente einer Schaltung, auf die sich ein Fehler auswirkt. D-Grenze: Menge aller Gatter mit Eingabe D bzw. D’ am Eingang und X am Ausgang. D-Grenze teilt den Schaltkreis in fehlerbehafteten (D und D’) und fehlerfreien Teil.

10 Definitionen Vorwärts-Implikation: Aus der Eingangsbelegung eines Gatters kann eindeutig auf die Ausgangsbele- gung geschlossen werden. a & a b z D ≥ 1 a b z D 1 D’ a z D D’ =1 b 1 1 1 X D D’ & a b z D’ 1 b & a b z D’ D

11 Definitionen Rückwärts-Implikation: Eindeutige Bestimmung der Eingangssignale eines Gatters bei gegebener Ausgabe und evtl. einiger Eingangssignale. 1 D =1 a b z 1 & a b z 1 a b z D’ 1 a z D D’ 1

12 Definitionen Implication Stack: LIFO-Datenstruktur, die speichert, welches Signal eines Schaltkreises von dem ATPG- Algorithmus bereits gesetzt wurde und ob das komplementäre Signal bereits ausprobiert wurde.

13 Definitionen Backtracking: Rückverfolgung des ATPG-Algorithmus
D-Grenze ist die leere Menge, d.h. es gibt keine weitere Möglichkeit, einen Fehler durch das Netz zu propagieren. Ein Signal muss gleichzeitig auf 0 und auf 1 gesetzt werden, um die Bedingungen des Testvektors zu erfüllen. Dies ist natürlich nicht erlaubt. Beim Auftreten von Backtracking löscht der ATPG- Algorithmus eine oder mehrere Signalzuweisungen vom Implication-Stack und wählt die komplementäre Zuweisung für das auf dem Stack zugreifbare Signal.

14 Definitionen Backtrace
Strategie, um zu bestimmen, welche Eingangssignale (Primary Inputs (PI)) gesetzt werden sollen, um eine bestimmte Zielvorgabe (z.B. setze Signal x auf 0) möglichst effizient zu erfüllen. Oftmals Verwendung des SCOAP Algorithmus Zielvorgaben werden durch den ATPG-Algorithmus vorgegeben; oftmals sind diese nicht gleich erfüllbar und erfordern Rückverfolgung (Backtracking).

15 Beispiel Zielvorgabe Setze J = 1 bei minimalem Aufwand ≥ 1 =1 J=1 &
(3,3) (5,2) (2,3) (1,1) E Zielvorgabe Setze J = 1 bei minimalem Aufwand A ≥ 1 =1 B J=1 & ≥ 1 C D Gesucht: Minimaler Wert CC1 am Eingang des abschließenden OR-Gatters SCOAP-Algorithmus liefert (CC0,CC1) Verfolge Signal J zurück und finde minimale Eingabe, die J = 1 bewirkt D = 1 hat minimale Kosten

16 Beispiel Zielvorgabe Setze J = 0 ≥ 1 =1 J=0 & ≥ 1
(3,3) (5,2) (2,3) (1,1) 1 E 1 Zielvorgabe Setze J = 0 A ≥ 1 =1 B 1 J=0 & ≥ 1 C D Gesucht: Minimale Kosten, so dass alle Eingänge des OR-Gatters = 0 Verfolge zunächst den schwierigsten Weg für CC0: A = 1, B = 1, E = 0 Dies verlangt C = 0, da B = 1 D = 0 trivialerweise

17 Klassifikation von Algorithmen
Vollständige Mustergenerierung n Eingaben erfordern 2n Eingabemuster Vorteil: 100% Fehlerüberdeckung Nur sinnvoll, wenn sich die Schaltung in Segmente (Kegel) mit jeweils weniger als 16 Eingaben partitionieren lässt Zufällige Mustergenerierung Fehlersimulator wählt sinnvolle Muster aus Oftmals nur 60-80% Fehlerabdeckung erreichbar Gewichtete Zufallsmuster: P(0) bzw. P(1) ≠ 0,5

18 Zufällige Mustergenerierung
Keine neuen Fehler getestet, d.h. Vektor verwerfen ändere W’keiten p(0) = 0,5 p(1) = 0,5 Über- deckung ok ? start initialisiere W’keiten generiere Zufalls- vektor Fehler- Simulation ja stopp nein

19 Klassifikation von Algorithmen
Symbolische Mustergenerierung Boolesche Differenz bzw. partielle Ableitung Expansionstheorem von Shannon F(X1,..,Xi,..,Xn) = Xi F(X1,..,1,..,Xn) + X’i F(X1,..,0,..,Xn) Stelle Fehler dar als Funktion g = G(X1,..,Xi,..,Xn) Stelle Ausgabe dar als Funktionswert fj = Fj(g,X1,..,Xi,..,Xn) Bilde ∂fj / ∂g = Fj(1,X1,..,Xi,..,Xn)  Fj(0,X1,..,Xi,..,Xn) Sehr aufwändig, daher ungeeignet für große Schaltkreise

20 Beispiel f = xy + yz & Testmuster für a: ∂f/∂x = yz  y = yz’ yz = 10
c b a d g h x & Testmuster für a: ∂f/∂x = yz  y = yz’ yz = 10 ≥ 1 y f Testmuster für g: f = g + xy ∂f/∂g = 1  xy = (xy)’  x’+ y’ & z Testen von g/0  g = 1 anlegen aus g = yz folgt: y = z = 1 Testmuster: xyz = 011 f = xy + yz

21 Klassifikation von Algorithmen
Methoden der Pfad-Sensibilisierung Fehler-Sensibilisierung (auch Aktivierung, Anregung) Aktiviere Haftfehler, indem Signale gesetzt werden,die den komplementären Wert an der betreffenden Stelle erzeugen Notwendig für Unterscheidung gute vs. böse Maschine Fehler-Propagation (eigentliche Pfad-Sensibilisierung) Progagiere den aktivierten Fehler auf einem oder mehreren Pfaden bis zu einem Ausgabesignal (primary output (PO)) i.A. exponentielles Wachstum #Pfade abhg. von #Gatter Signal-Anpassung Einstellen der Eingabewerte zur Erzeugung der gewünschten internen Signale bzw. Fehlereffekte Mögliche Konflikte in Phase 2 und 3 fordern evtl. Backtracking

22 Beispiel Test für sa0 für B 1 & 1. Fehler-Anregung D setze B = 1
& ≥ 1 k A B C h g f i j E L 1. Fehler-Anregung setze B = 1 f = D (nach Roth) g = D D X sa0 1 D 1 2. Fehler-Propagation a) Pfad f - h - k - L b) Pfad g - i - j - k - L c) gleichzeitig a) und b) Pfad f - h - k - L Setze alle nicht auf dem Pfad liegenden Gattereingänge auf nicht-kontrollierende Werte d.h. A = 1, E = 1, j = 0 3. Signal-Anpassung aus j = 0 folgt i = 1 unvereinbar mit g = D für sa0

23 Beispiel Fehler-Kegel D-Front Test für sa0 für B 1 & ≥ 1 D + D’ = 1
C h g f i j E L D + D’ = 1 1. Fehler-Anregung setze B = 1 f = D (nach Roth) g = D D X sa0 D 1 D’ D 1 1 D 1 2. Fehler-Propagation a) Pfad f - h - k - L b) Pfad g - i - j - k - L c) gleichzeitig a) und b) Setze alle nicht auf dem Pfad liegenden Gattereingänge auf nicht-kontrollierende Werte d.h. A = 1, C = 1, E = 1 3. Signal-Anpassung Vorwärtspropagation von g und f: h = D, i = D, j = D’ D-Front endet bei Signal k  Fehler erreicht nicht die Ausgabe

24 Beispiel Test für sa0 für B & 1. Fehler-Anregung D setze B = 1
Test für sa0 für B & ≥ 1 k A B C h g f i j E L 1. Fehler-Anregung setze B = 1 f = D (nach Roth) g = D D 1 X sa0 1 D 2. Fehler-Propagation a) Pfad f - h - k - L b) Pfad g - i - j - k - L c) gleichzeitig a) und b) Setze alle nicht auf dem Pfad liegenden Gattereingänge auf nicht-kontrollierende Werte d.h. C = 1, E = 1, h = 0 3. Signal-Anpassung aus h = 0 folgt A = 0 (A, B, C, E) = (0, 1, 1, 1) erkennt sa0 für B mit L = D’

25 D-Kalkül: Definitionen
Singular Cover: Minimale Anzahl Eingangsbelegungen eines Logik-Gatters, um dessen vollständige Wahrheitstabelle darzustellen. AND a b out X 1 Böse Gut D-Würfel: Komprimierte Wahrheitstafel eines Logik- Gatters in D-Notation 1 D X Beispiel AND: (Gut/Böse) Neue Tafel durch Vertauschen von a und b

26 D-Kalkül: Definitionen
Singular Cover: Minimale Anzahl Eingangsbelegungen eines Logik-Gatters, um dessen vollständige Wahrheitstabelle darzustellen. AND b a out X 1 Böse Gut D-Würfel: Komprimierte Wahrheitstafel eines Logik- Gatters in D-Notation T1 T2 1 D X 1 X D Beispiel AND: (Gut/Böse) Neue Tafel durch Vertauschen von a und b Weitere Tafeln: T1 AND T2 = (D D D) bzw. ersetze D durch D’

27 D-Kalkül: Definitionen
1 X D D’ D-Durchschnitt: Gibt an, ob verschiedene Würfel gleich- zeitig für einen Schaltkreis existieren können Regeln: 0  0 = 0  X = X  0 = 0 1  1 = 1  X = X  1 = 1 X  X = X Beispiel: (0, X, X)  (1, X, X) =  , : undefiniert Falls  und : undefiniert : D  D = D; D’  D’ = D’ : DD’; D’D; dann 

28 D-Kalkül: Definitionen
Primitive D-Cubes of Failure (PDF) modelliert Haftfehler Kurzschlüsse Änderungen des Schaltverhaltens von Gattern Konstruiere Mengen von Würfeln mit der Ausgabe der guten (0, 1) und bösen (0, 1) Maschine sei 0 bzw 1 Ändere die Ausgabe aller 1-Würfel auf 0 und bilde den D-Durchschnitt mit jedem 0-Würfel. Für jeden Schnitt- Würfel setze dessen Ausgabe auf D. Ändere die Ausgabe aller 0-Würfel auf 1 und bilde den D-Durchschnitt mit jedem 1-Würfel. Für jeden Schnitt- Würfel setze dessen Ausgabe auf D’.

29 D-Kalkül: Definitionen
Implikation: Prozedur des D-Algorithmus Fehlermodellierung mittels geeigneter PDF Propagiert Fehler durch das Netz (Prozedur D-drive) Versucht, interne Signale durch singulare Überdeckungen einzustellen (Prozedur consistency) Auswahl der PDF und Überdeckungen ziemlich willkürlich Falls D-Durchschnitt fehl schlägt, backtracking bis zu der letzten Auswahl eines Würfels. Dann neue Wahl und weiter gehts …..

30 D-Algorithmus Benenne alle (internen) Signale von PIs bis POs
Wähle PDF als Testwürfel aus und bilde D-Front für Gatter, deren Ausgaben von D bzw. D’ abhängen Call D-drive /* Propagiere Fehler bis zu PO */ Call Consistency /* Einstellen interner Signale */ Ruft ggf. erneut Prozedur D-drive auf Ruft Prozedur Backtrack bei Inkonsistenzen ENDE

31 Beispiel 1 & ≥ 1 & Singuläre Wahrheitstabelle Überdeckung d A F B e C
F ≥ 1 B e & C A 1 B C F Wahrheitstabelle Singuläre Überdeckung

32 Beispiel 1 & ≥ 1 & Singuläre Überdeckung D-Würfel Propagation d
Vertausche A und B A & A B C d e F 1 X A B C d e F D 1 D’ F ≥ 1 B e & C 1 X D 1 = 1 X D = D = 1 & Singuläre Überdeckung D-Würfel Propagation

33 Beispiel 1 & ≥ 1 & Singuläre Überdeckung D-Würfel Propagation d A F B
X A B C d e F D 1 D’ F ≥ 1 B e & C 1 X 1 D D’ = Singuläre Überdeckung D-Würfel Propagation

34 Beispiel 1 & ≥ 1 & Singuläre Überdeckung D-Würfel Propagation d A F B
X A B C d e F D 1 D’ F ≥ 1 B e & C 1 X 1 D D’ = X 1 D D’ = D’ D = NOR 1,0 0,0 0,1 Singuläre Überdeckung D-Würfel Propagation

35 Beispiel 2 ≥ 1 ≥ 1 & & = 1 Überdeckungen D C e f g h k B L A AND A B e
X 1 OR C e f X 1 NOT f g 1 XOR A f h 1 NAND k h L X 1 Überdeckungen OR D g k X 1

36 Beispiel 2 ≥ 1 ≥ 1 & & = 1 Wie kann Fehler propagiert werden ?
D’ 1 C e f g h k ≥ 1 ≥ 1 B & & L A X = 1 sa0 A B C D e f g h k L 1 D’ Wie kann Fehler propagiert werden ? 1. Kette AefhL

37 Beispiel 2 ≥ 1 ≥ 1 & & = 1 Wie kann Fehler propagiert werden ?
1 C e f g h k ≥ 1 ≥ 1 B & & L A X = 1 sa0 A B C D e f g h k L 1 D’ Wie kann Fehler propagiert werden ? 1. Kette AefhL 2. Kette AhL

38 Beispiel 2 ≥ 1 ≥ 1 & & = 1 1. Benenne interne Signale
D 1 C e f g h k ≥ 1 ≥ 1 D’ B & & L D A X = 1 D sa0 1. Benenne interne Signale A B C D e f g h k L 2. Wähle Fehler, bilde D-Front Schritt 1: D Schritt 2: D D 3. Call D-Drive Schritt 3: D D  D 1 D’ = D D 1 D’

39 Beispiel 2 Schritt 6: 0 0 0 ≥ 1 ≥ 1 & & = 1 1. Benenne interne Signale
D Schritt 6: 1 C e f g h k ≥ 1 ≥ 1 1 D’ B & & L D A X = 1 D sa0 1. Benenne interne Signale A B C D e f g h k L 2. Wähle Fehler, bilde D-Front Schritt 3: D D 1 D’ Schritt 4: 3. Call D-Drive Schritt 5: 4. Call Consistency Schritt 7: Testmuster: D X D’

40 Beispiel 3 SCOAP & = 1 sa1 @ u & = 1 ≥ 1 = 1 & e r f 1 n 1 A d g 1 B m
(9,9) (1,1) (2,3) (4,4) (7,7) (5,5) (11,3) (15,2) (13,6) r & = 1 u f 1 n 1 A & d g 1 B = 1 m X 1 s k t ≥ 1 h p sa1 X q Y D’ u D = 1 l v D’ 1 & 1 Z C A B C d m q r u v X Y Z 1 D’ PDF 2 1 D’ D Propagiere D via v 3 1 D’ D Propagiere D’ zu PO Z 4 1 D’ D Versuche d = 1 für r als Abdeckung

41 Beispiel 3 & = 1 sa1 @ u & = 1 ≥ 1 = 1 & Backtracking e r f n 1 A d g
(9,9) (1,1) (2,3) (4,4) (7,7) (5,5) (11,3) (15,2) (13,6) r & = 1 u f n 1 A & d g B = 1 m X 1 s k t ≥ 1 h p sa1 X q Y D’ u D = 1 l v D’ 1 & 1 Z C A B C d m q r u v X Y Z 1 D’ PDF 2 1 D’ D Propagiere D via v Backtracking 3 1 D’ D Propagiere D’ zu PO Z 4 1 D’ D Versuche Alternative d = 0

42 Beispiel 3 & = 1 sa1 @ u & = 1 ≥ 1 = 1 & Backtracking e r f 1 1 n 1 A
(9,9) (1,1) (2,3) (4,4) (7,7) (5,5) (11,3) (15,2) (13,6) r & = 1 u f 1 1 n 1 A & d g 1 B = 1 m X 1 s 1 k t ≥ 1 h p sa1 X q Y D’ u D’ = 1 l 1 v D 1 & 1 Z C A B C d m q r u v X Y Z 1 D’ PDF 2’ 1 D’ D Propagiere D’ via v, D zu Z Backtracking 3’ 1 D’ D Abdeckung für r 4’ 1 D’ D Abdeckung für A


Herunterladen ppt "Testen hochintegrierter Schaltungen"

Ähnliche Präsentationen


Google-Anzeigen