Datentechnik 1 Kapitel 4: Test-Generatoren Testen hochintegrierter Schaltungen Kapitel 4....

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

Transcript of Datentechnik 1 Kapitel 4: Test-Generatoren Testen hochintegrierter Schaltungen Kapitel 4....

Datentechnik 1Kapitel 4: Test-Generatoren

Testen hochintegrierter Schaltungen

Kapitel 4. Test-Erzeugung

(für kombinatorische Schaltkreise)

Ralph Weper

Datentechnik 2Kapitel 4: Test-Generatoren

Übersicht

Motivation

Modellierung

• Nützliche Definitionen und Datenstrukturen

• Klassifikation von ATPG-Algorithmen

D-Algorithmus von Roth

• Definitionen und Operationen

• Struktur des Algorithmus

• Beispiele

Datentechnik 3Kapitel 4: Test-Generatoren

Motivation: 64-bit Addierer

64

64

64A B Cin

SummeÜ

funktional

• 2129 Eingabemuster

• 265 Ausgabemuster

• ATE mit 1 GHz benötigt ca. 2,2 * 1022 Jahre

Datentechnik 4Kapitel 4: Test-Generatoren

Motivation: 64-bit Addierer

strukturell

• 10 Fehlerklassen für S

• 17 Fehlerklassen für Ü

• 64 * 27 = 1728 Testmuster

• ATE mit 1 GHz benötigt ca. 0,000002 Sekunden

Ai

Bi

Ci

Si= 1

= 1

X

X

X

XXsa0,1

sa0,1

sa0,1

sa0,1

sa0,1

Ai

Bi

Ci

&

&

&

≥ 1 Ci+1

XX

X X

XX

XX

XX

X

X X

sa0,1

sa0

sa1sa0,1

Summe

Übertrag

XX

X X

XX

XX

XX

X

X X

sa0,1

sa0,1

sa0,1sa0,1

10 Fehlerklassen

Datentechnik 5Kapitel 4: Test-Generatoren

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

Datentechnik 8Kapitel 4: Test-Generatoren

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)

Datentechnik 9Kapitel 4: Test-Generatoren

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.

Datentechnik 10Kapitel 4: Test-Generatoren

Definitionen

Vorwärts-Implikation: Aus der Eingangsbelegung eines Gatters kann eindeutig auf die Ausgangsbele- gung geschlossen werden.

&a

bz

D0

0

&a

bz

D’1

D’

&a

bz

D’D

0

0 1 X D D’

0 0 0 0 0 0

1 0 1 X D D’

X 0 X X X X

D 0 D X D 0

D’ 0 D’ X 0 D’

a

b

≥ 1a

bz

D0

D

≥ 1a

bz

D1

1

≥ 1a

bz

D’D

1

a zD D’

=1a

bz

D

1a

bz

D’

0

D’

D

1

Datentechnik 11Kapitel 4: Test-Generatoren

Definitionen

Rückwärts-Implikation: Eindeutige Bestimmung der Eingangssignale eines Gatters bei gegebener Ausgabe und evtl. einiger Eingangssignale.

a zD D’

D1

a

bz0

D’=1

a

bz

01

1&a

bz

11

1

Datentechnik 12Kapitel 4: Test-Generatoren

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.

Datentechnik 13Kapitel 4: Test-Generatoren

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.

Datentechnik 14Kapitel 4: Test-Generatoren

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

Datentechnik 15Kapitel 4: Test-Generatoren

Beispiel

&

=1 ≥ 1

E

A

B

≥ 1J=1

C

D

(3,3) (5,2)

(2,3)

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

Zielvorgabe

Setze J = 1 beiminimalem Aufwand

SCOAP-Algorithmus liefert (CC0,CC1)

Gesucht: Minimaler Wert CC1 am Eingang des abschließenden OR-Gatters

Verfolge Signal J zurück und finde minimale Eingabe, die J = 1 bewirkt

D = 1 hat minimale Kosten

Datentechnik 16Kapitel 4: Test-Generatoren

Beispiel

&

=1 ≥ 1

E

A

B

≥ 1J=0

C

D

(3,3) (5,2)

(2,3)

(1,1)

(1,1)

(1,1)

(1,1)

(1,1)

Zielvorgabe

Setze J = 0

Verfolge zunächst den schwierigsten Weg für CC0: A = 1, B = 1, E = 0

Gesucht: Minimale Kosten, so dass alle Eingänge des OR-Gatters = 0

Dies verlangt C = 0, da B = 1

D = 0 trivialerweise

0

0

0

0

0

0

11

0

1

Datentechnik 17Kapitel 4: Test-Generatoren

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

Datentechnik 18Kapitel 4: Test-Generatoren

Zufällige Mustergenerierung

start initialisiereW’keiten

Fehler-Simulation

generiereZufalls-vektor

ändereW’keiten

stoppÜber-

deckungok ?

p(0) = 0,5p(1) = 0,5

nein

ja

Keine neuenFehler getestet, d.h.Vektor verwerfen

Datentechnik 19Kapitel 4: Test-Generatoren

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

Datentechnik 20Kapitel 4: Test-Generatoren

Beispiel

&

&

≥ 1 f

x

y

z

e

c

b

a

d

g

h

f = xy + yz

•Testmuster für a: ∂f/∂x = yz y = yz’ yz = 10

•Testmuster für g: f = g + xy ∂f/∂g = 1 xy = (xy)’ x’+ y’ Testen von g/0 g = 1 anlegen

• aus g = yz folgt: y = z = 1• Testmuster: xyz = 011

Datentechnik 21Kapitel 4: Test-Generatoren

Klassifikation von Algorithmen

Methoden der Pfad-Sensibilisierung 1. 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

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

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

Datentechnik 22Kapitel 4: Test-Generatoren

Beispiel

&

&

≥ 1k

A

B

C

h

g

f

i j

&

E

LX

sa0

Test für sa0 für B

2. Fehler-Propagation• a) Pfad f - h - k - L• b) Pfad g - i - j - k - L• c) gleichzeitig a) und b)

1. Fehler-Anregung• setze B = 1• f = D (nach Roth)• g = D

Pfad f - h - k - L

Setze alle nicht auf dem Pfad liegendenGattereingänge auf nicht-kontrollierende Werted.h. A = 1, E = 1, j = 0

1

10

1

3. Signal-Anpassung

1

aus j = 0 folgt i = 1

D

D

unvereinbar mit g = D für sa0

Datentechnik 23Kapitel 4: Test-Generatoren

Beispiel

&

&

≥ 1k

A

B

C

h

g

f

i j

&

E

LX

sa0

Test für sa0 für B

2. Fehler-Propagation• a) Pfad f - h - k - L• b) Pfad g - i - j - k - L• c) gleichzeitig a) und b)

1. Fehler-Anregung• setze B = 1• f = D (nach Roth)• g = D

Setze alle nicht auf dem Pfad liegendenGattereingänge auf nicht-kontrollierende Werted.h. A = 1, C = 1, E = 1

1

1

1

3. Signal-Anpassung

D

Vorwärtspropagation von g und f: h = D, i = D, j = D’

D

D

D-Front endet bei Signal k Fehler erreicht nicht die Ausgabe

1

D’

DD + D’ = 1

1

D-FrontFehler-Kegel

Datentechnik 24Kapitel 4: Test-Generatoren

Beispiel

&

&

≥ 1k

A

B

C

h

g

f

i j

&

E

LX

sa0

Test für sa0 für B

2. Fehler-Propagation• a) Pfad f - h - k - L• b) Pfad g - i - j - k - L• c) gleichzeitig a) und b)

1. Fehler-Anregung• setze B = 1• f = D (nach Roth)• g = D

Setze alle nicht auf dem Pfad liegendenGattereingänge auf nicht-kontrollierende Werted.h. C = 1, E = 1, h = 0

1

1

01

3. Signal-Anpassung

aus h = 0 folgt A = 0

D

D

0

(A, B, C, E) = (0, 1, 1, 1) erkennt sa0 für B mit L = D’

Datentechnik 25Kapitel 4: Test-Generatoren

D-Kalkül: Definitionen

Singular Cover: Minimale Anzahl Eingangsbelegungen eines Logik-Gatters, um dessen vollständige Wahrheitstabelle darzustellen.

D-Würfel: Komprimierte Wahrheitstafel eines Logik- Gatters in D-Notation

AND a b out

0 X 0

X 0 0

1 1 1

Beispiel AND: (Gut/Böse)

Böse

Gut

1 0 D

1 X 1

1 0 DNeue Tafel durch Vertauschen von a und b

Datentechnik 26Kapitel 4: Test-Generatoren

D-Kalkül: Definitionen

Singular Cover: Minimale Anzahl Eingangsbelegungen eines Logik-Gatters, um dessen vollständige Wahrheitstabelle darzustellen.

D-Würfel: Komprimierte Wahrheitstafel eines Logik- Gatters in D-Notation

AND b a out

X 0 0

0 X 0

1 1 1

Beispiel AND: (Gut/Böse)

Böse

Gut

1 0 D

1 X 1

1 0 DNeue Tafel durch Vertauschen von a und b

1 X 1

1 0 D

1 0 D

T1 T2

Weitere Tafeln: T1 AND T2 = (D D D) bzw. ersetze D durch D’

Datentechnik 27Kapitel 4: Test-Generatoren

D-Kalkül: Definitionen

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

0 1 X D D’

0 0 0

1 1 1

X 0 1 X D D’

D D

D’ D’

, : undefiniertFalls und : undefiniert: D D = D; D’ D’ = D’: DD’; D’D; dann

Datentechnik 28Kapitel 4: Test-Generatoren

D-Kalkül: Definitionen

Primitive D-Cubes of Failure (PDF) modelliert• Haftfehler

• Kurzschlüsse

• Änderungen des Schaltverhaltens von Gattern

1. Konstruiere Mengen von Würfeln mit der Ausgabe der guten (0, 1) und bösen (0, 1) Maschine sei 0 bzw 1

2. Ä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.

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

Datentechnik 29Kapitel 4: Test-Generatoren

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

Datentechnik 30Kapitel 4: Test-Generatoren

D-Algorithmus

1. Benenne alle (internen) Signale von PIs bis POs

2. Wähle PDF als Testwürfel aus und bilde D-Front für Gatter, deren Ausgaben von D bzw. D’ abhängen

3. Call D-drive /* Propagiere Fehler bis zu PO */

4. Call Consistency /* Einstellen interner Signale */1. Ruft ggf. erneut Prozedur D-drive auf

2. Ruft Prozedur Backtrack bei Inkonsistenzen

5. ENDE

Datentechnik 31Kapitel 4: Test-Generatoren

Beispiel 1

A

B

C

&d

&e

F≥ 1

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F 0 0 0 1 0 0 0 0

Wahrheitstabelle

A B C d e F

1 1 1

0 0

0 0

1 1 0

0 1

0 1

1 0

1 0

0 0 1

SinguläreÜberdeckung

Datentechnik 32Kapitel 4: Test-Generatoren

Beispiel 1

A

B

C

&d

&e

F≥ 1

A B C d e F

1 1 1

0 X 0

X 0 0

1 1 0

0 X 1

X 0 1

X 1 0

1 X 0

0 0 1

A B C d e F

D 1 D

1 D D

D D D

D 1 D’

1 D D’

D D D’

D 0 D’

0 D D’

D D D’

SinguläreÜberdeckung

D-WürfelPropagation

111

0X0

D1D

=

111

X00

1DD

=

DDD

=1DD

D1D

&

Vertausche A und B

Datentechnik 33Kapitel 4: Test-Generatoren

Beispiel 1

A

B

C

&d

&e

F≥ 1

A B C d e F

1 1 1

0 X 0

X 0 0

1 1 0

0 X 1

X 0 1

X 1 0

1 X 0

0 0 1

A B C d e F

D 1 D

1 D D

D D D

D 1 D’

1 D D’

D D D’

D 0 D’

0 D D’

D D D’

SinguläreÜberdeckung

D-WürfelPropagation

1X0

001

D0D’

=

Datentechnik 34Kapitel 4: Test-Generatoren

Beispiel 1

A

B

C

&d

&e

F≥ 1

A B C e d F

1 1 1

0 X 0

X 0 0

1 1 0

0 X 1

X 0 1

1 X 0

X 1 0

0 0 1

A B C d e F

D 1 D

1 D D

D D D

D 1 D’

1 D D’

D D D’

D 0 D’

0 D D’

D’ D’ D

SinguläreÜberdeckung

D-WürfelPropagation

1X0

001

D0D’

=

X10

001

0DD’

=

D’D’D

=0DD’

D0D’

NOR =1,00,00,1

0,01,00,1

NOR

Datentechnik 35Kapitel 4: Test-Generatoren

Beispiel 2

≥ 1

= 1& &

D

≥ 1CBA

Le

f g

h

k

AND

A B e

X 0 0

0 X 0

1 1 1

OR C e f

X 1 1

1 X 1

0 0 0

NOT

f g

1 0

0 1

XOR

A f h

1 0 1

0 1 1

0 0 0

1 1 0

OR D g k

X 1 1

1 X 1

0 0 0

NAND k h L

X 0 1

0 X 1

1 1 0

Überdeckungen

Datentechnik 36Kapitel 4: Test-Generatoren

Beispiel 2

≥ 1

= 1& &

D

≥ 1CBA

Le

f g

h

k

X

sa0 A B C D e f g h k L

D 1 D

1 D D

D 0 D

0 D D

D D’

D 0 D

D 1 D’

0 D D

1 D D’

D 0 D

0 D D

D 1 D’

1 D D’

Wie kann Fehler propagiert werden ?

1. Kette AefhL

D0

D

0

D

D’D

D 1

Datentechnik 37Kapitel 4: Test-Generatoren

Beispiel 2

≥ 1

= 1& &

D

≥ 1CBA

Le

f g

h

k

X

sa0 A B C D e f g h k L

D 1 D

1 D D

D 0 D

0 D D

D D’

D 0 D

D 1 D’

0 D D

1 D D’

D 0 D

0 D D

D 1 D’

1 D D’

Wie kann Fehler propagiert werden ?

1. Kette AefhL

2. Kette AhL

DD

D’0

1

Datentechnik 38Kapitel 4: Test-Generatoren

Beispiel 2

≥ 1

= 1& &

D

≥ 1CBA

Le

f g

h

k

X

sa0

A B C D e f g h k L

1. Benenne interne Signale

2. Wähle Fehler, bilde D-Front

3. Call D-Drive

D

Schritt 1: D

Schritt 2: D 0 D

Schritt 3: D 0 D 0 D 1 D’ = D 0 D 1 D’

D

1

D’0

Datentechnik 39Kapitel 4: Test-Generatoren

Beispiel 2

≥ 1

= 1& &

D

≥ 1CBA

Le

f g

h

k

X

sa0

A B C D e f g h k L

1. Benenne interne Signale

2. Wähle Fehler, bilde D-Front

3. Call D-Drive

4. Call Consistency

D

Schritt 3: D 0 D 1 D’

Schritt 4: 1 1

Schritt 5: 0 1

D

1

D’0

100

0

Schritt 6: 0 0 0

Schritt 7: 0 0

0

Testmuster: D 0 0 X D’

Datentechnik 40Kapitel 4: Test-Generatoren

Beispiel 3

≥ 1

AB

C

X

&

= 1

&= 1

e

&d

= 1

h

g

k

f

l

m

n

p q

r

st

u

v

Y

Z

sa1 X

1

(9,9)

(1,1)

(1,1)

(1,1)

(2,3)(4,4)

(7,7)

(2,3)

(5,5)

(11,3)

(15,2)

(13,6)

sa1 @ u

SCOAP

A B C d m q r u v X Y Z

1 1 D’

2 0 1 D’ D

3 0 1 1 1 D’ D D’

4 0 1 1 1 1 D’ D D’

PDF

1

Propagiere D via v

D’D

0

0

Propagiere D’ zu PO Z

1 1

1

D’

Versuche d = 1 für r als Abdeckung

1

Datentechnik 41Kapitel 4: Test-Generatoren

Beispiel 3

≥ 1

AB

C

X

&

= 1

&= 1

e

&d

= 1

h

g

k

f

l

m

n

p q

r

st

u

v

Y

Z

sa1 X

0

(9,9)

(1,1)

(1,1)

(1,1)

(2,3)(4,4)

(7,7)

(2,3)

(5,5)

(11,3)

(15,2)

(13,6)

sa1 @ u

A B C d m q r u v X Y Z

1 1 D’

2 0 1 D’ D

3 0 1 1 1 D’ D D’

4 0 1 0 1 1 D’ D D’

PDF

1

Propagiere D via v

D’D

0

0

Propagiere D’ zu PO Z

1 1

1

D’

Versuche Alternative d = 0

0

Backtracking

Datentechnik 42Kapitel 4: Test-Generatoren

Beispiel 3

≥ 1

AB

C

X

&

= 1

&= 1

e

&d

= 1

h

g

k

f

l

m

n

p q

r

st

u

v

Y

Z

sa1 X

1

(9,9)

(1,1)

(1,1)

(1,1)

(2,3)(4,4)

(7,7)

(2,3)

(5,5)

(11,3)

(15,2)

(13,6)

sa1 @ u

A B C d m q r u v X Y Z

1 1 D’

2’ 1 1 1 1 D’ D’ D

3’ 1 1 1 1 D’ D’ D

4’ 1 1 1 1 1 1 D’ D’ D

PDF

1

Propagiere D’ via v, D zu Z

D’D’

1

1

Abdeckung für r

1 1

1

D

Abdeckung für A

1

Backtracking

1