Testen hochintegrierter Schaltungen

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Eine dynamische Menge, die diese Operationen unterstützt,
6. Regelbasierte Systeme
Das LCA – Problem in Suffixbäumen
Suche in Texten (Stringsuche )
SETS, March 2006Institut für Elektrotechnik und Informationstechnik Test hochintegrierter Schaltungen November 07 Test hochintegrierter Schaltungen Übung.
Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.
Algorithmen und Komplexität
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
Sortierverfahren Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Dynamische Programmierung (2) Matrixkettenprodukt
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Christian Schindelhauer
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Materialien zu Übung 9 Bälle in Körbe Ranged.
Minimum Spanning Tree: MST
6. Zusammengesetzte Daten (Verbund)
Wismar Business School
Grundsätzliche Resultate Theorem: Für jeden Relationstyp R(A 1,...,A n ) und jede Menge von FDs über {A 1,...,A n } gibt es: –eine verlustlose (aber nicht.
Vortrag über Graphen Von Jörg Hendricks.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Basisinformationstechnologie HK-Medien
Diskrete Mathematik II
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
SETS, March 2006Institut für Elektrotechnik und Informationstechnik Test hochintegrierter Schaltungen Übung 9.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
SETS, March 2006Institut für Elektrotechnik und Informationstechnik Test hochintegrierter Schaltungen November 07 Test hochintegrierter Schaltungen Übung.
Optimierungs- Algorithmen
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Gliederung der Vorlesung
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Übung zu Grundlagen der Technischen Informatik
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
 Präsentation transkript:

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

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

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

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,000002 Sekunden 10 Fehlerklassen Bi = 1 Ci X sa0,1 sa0 sa1 X sa0,1 Ai Bi Ci & ≥ 1 Ci+1 Übertrag

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

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

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

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)

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.

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

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

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.

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.

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).

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

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

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

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

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

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

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

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

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

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’

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

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’

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 

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’.

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 …..

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

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

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

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

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

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

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

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

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 0 D 3. Call D-Drive Schritt 3: D 0 D  0 D 1 D’ = D 0 D 1 D’

Beispiel 2 Schritt 6: 0 0 0 ≥ 1 ≥ 1 & & = 1 1. Benenne interne Signale D Schritt 6: 0 0 0 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 0 D 1 D’ Schritt 4: 1 1 3. Call D-Drive Schritt 5: 0 1 4. Call Consistency Schritt 7: 0 0 Testmuster: D 0 0 X D’

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 sa1 @ 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

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 sa1 @ 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

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 sa1 @ 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