Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2:...

17
Datentechnik 1 2. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper

Transcript of Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2:...

Page 1: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 12. Übung THS, 15.November 2006

Testen hochintegrierter Schaltungen

Übung 2: SCOAP-Algorithmus

Ralph Weper

Page 2: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 22. Übung THS, 15.November 2006

Übersicht

Grundlegende Metriken für Testbarkeit

Sandia Controllability/Observability Analysis Program (SCOAP)

• Kombinatorische Schaltkreise

• Sequentielle Schaltkreise

Beispiele

Zusammenfassung

Page 3: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 32. Übung THS, 15.November 2006

Motivation

Welcher Aufwand muß betrieben werden, um eine

Schaltung ausreichend zu testen?

Wie finde ich möglichst effizienten Satz von

Testvektoren?

Wie unterscheide ich die Qualität möglicher

Testmuster?

Gesucht: Leistungsmaße, welche diese

Entscheidungen unterstützten

Page 4: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 42. Übung THS, 15.November 2006

Metriken für Testbarkeit

Steuerbarkeit (Controllability) eines Schaltkreises:

• Schwierigkeit, ein konkretes Signal auf 0 oder 1 zu halten

Beobachtbarkeit (Observability) eines Schaltkreises:

• Schwierigkeit, den Wert eines Signals zu beobachten

Page 5: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 52. Übung THS, 15.November 2006

SCOAP

SANDIA Controllability/Observability Analysis Program

[Goldstein, 1979]

Systematischer Algorithmus: Berechnung der Schwierigkeit,

interne Werte eines Signals k zu steuern und zu beobachten

Vorteil: Gute Approximation bei linearer Komplexität

• O(n) für Steuerbarkeit

• O(2n) für Beobachtbarkeit

Nachteil: Ungenauigkeit bei Vereinigung eines vorher

duplizierten Signals (reconvergent fanout)

Page 6: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 62. Übung THS, 15.November 2006

SCOAP

Steuerbarkeit: N0 [1,∞]

Beobachtbarkeit: N0 [0,∞]

Kombinatorisch (# Signale zur Kontrolle/Beobachtung von k):

• 0-Steuerbarkeit eines Signals k: CC0(k)

• 1-Steuerbarkeit eines Signals k: CC1(k)

• Beobachtbarkeit eines Signals k: CO(k)

Sequentiell (# Taktzyklen zur Kontrolle/Beobachtung von k):

• 0-Steuerbarkeit eines Signals k: SC0(k)

• 1-Steuerbarkeit eines Signals k: SC1(k)

• Beobachtbarkeit eines Signals k: SO(k)

Page 7: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 72. Übung THS, 15.November 2006

SCOAP: CC0(k), CC1(k)

Starte bei Eingabesignalen PI (primary input): Logikstufe 0

Setze für alle PI: CC0(PI) = 1, CC1(PI) = 1

Berechne für jedes Gatter die Logikstufe (max. Abstand eines

der Eingangssignale zu PI)

Starte mit Logikstufe i=1, berechne für die Ausgabesignale z

der Gatter der Stufe CC0/1(z)(i) als Funktion von CC0/1(z)(i-1)

Propagiere CC0/1(z)(i) als Eingabe der Logikstufe i+1

Steuerbarkeit: Ausgabe der letzten Logikstufe CC0/1(out)

Page 8: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 82. Übung THS, 15.November 2006

SCOAP: Berechnung von CC0/1(k)CC0/1 (a)

CC0/1 (b)

&a

bz

CC0(z) = min(CC0(a), CC0(b)) + 1

CC1(z) = CC1(a) + CC1(b) + 1

1a

bz

CC0(z) = CC0(a) + CC0(b) + 1

CC1(z) = min(CC1(a), CC1(b)) + 1

=1a

bz

CC0(z) = min(CC0(a) + CC0(b), CC1(a) + CC1(b)) + 1

CC1(z) = min(CC1(a) + CC0(b), CC0(a) + CC1(b)) + 1

a zCC0(z) = CC1(a) + 1

CC1(z) = CC0(a) + 1

Page 9: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 92. Übung THS, 15.November 2006

SCOAP: Berechnung von CC0/1(k)

&a

bz

CC0(z) = CC1(a) + CC1(b) + 1

CC1(z) = min(CC0(a), CC0(b)) + 1

1a

bz

CC0(z) = min(CC1(a), CC1(b)) + 1

CC1(z) = CC0(a) + CC0(b) + 1

=1a

bz

CC0(z) = min(CC1(a) + CC0(b), CC0(a) + CC1(b)) + 1

CC1(z) = min(CC0(a) + CC0(b), CC1(a) + CC1(b)) + 1

Page 10: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 102. Übung THS, 15.November 2006

Beispiel

&

1

&

in0

in1

in2

out

1

1

1

CC1(out) = 2

min(3,1,3) + 1 = 2

1 + 1 + 1 = 3

1 + 1 + 1 = 3

in1 = 1 out = 1

Page 11: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 112. Übung THS, 15.November 2006

Beispiel

&

1

&

in0

in1

in2

out

1

1

1

min(1,1) + 1 = 2

min(1,1) + 1 = 2

2 + 1 + 2 + 1 = 6

CC0(out) = 6

NEIN!!! in1 = 0 out = 0 !!!Ist es wirklich schwieriger, out auf 0 zu setzen?

Page 12: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 122. Übung THS, 15.November 2006

SCOAP: CO(k)

Berechne zunächst CC0(k) und CC1(k) für alle Signale

Starte bei der Ausgabe der letzten Logikstufe

Setze CO(out) = 0

Berechne für die Eingangssignale a, b CO(a), CO(b) als

Summe von CO(out) und CC0/1(b) bzw CC0/1(a)

Rückwärtstraversierung des Schaltkreises, Propagation der

zuvor berechneten Werte

Stopp bei den Eingabewerten

Page 13: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 132. Übung THS, 15.November 2006

SCOAP: Berechnung von CO(k)

&a

bz

CC0/1(a)CO(a)

CC0/1(b)CO(b)

CO(a) = CO(z) + CC1(b) + 1

CO(b) = CO(z) + CC1(a) + 1

1a

bz

CO(a) = CO(z) + CC0(b) + 1

CO(b) = CO(z) + CC0(a) + 1

=1a

bz

CO(a) = CO(z) + min(CC0(b), CC1(b)) + 1

CO(b) = CO(z) + min(CC0(a), CC1(a)) + 1

a zCO(a) = CO(z) + 1

CO(z)

Page 14: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 142. Übung THS, 15.November 2006

SCOAP: Berechnung von CO(k)

1a

bz

CO(a) = CO(z) + CC0(b) + 1

CO(b) = CO(z) + CC0(a) + 1

&a

bz

CO(a) = CO(z) + CC1(b) + 1

CO(b) = CO(z) + CC1(a) + 1

=1a

bz

CO(a) = CO(z) + min(CC0(b), CC1(b)) + 1

CO(b) = CO(z) + min(CC0(a), CC1(a)) + 1

az1

z2

zn

CO(a) = min(CO(z1), CO(z2), … , CO(zn))

Page 15: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 152. Übung THS, 15.November 2006

Beispiel CC0(k), CC1(k)

Stufe 4

(5,7)

(1,1)

(1,1)

(1,1)

Steuerbarkeit: (CC0(k), CC1(k))

(1,1)

(1,1)

(1,1)

Stufe 1

(2,2)

(2,2)

Stufe 2

(3,5)

(3,5)

(3,5)

(3,5)

Stufe 3

(2,6)

(2,7)

(2,7)

(2,6)out7

out8

1

R

1

Z

i7

i8

&

&

Page 16: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 162. Übung THS, 15.November 2006

Beispiel CO(k)

(5,7)

(1,1)

(1,1)

(1,1)

Beobachtbarkeit: CO(k)

(1,1)

(1,1)

(1,1)

(2,2)

(2,2)

(3,5)

(3,5)

(3,5)

(3,5)

(2,6)

(2,7)

(2,7)

(2,6)out7

out8

1

R

1

Z

i7

i8

&

&

0

0

0

0 + 2 + 1

0 + 2 + 1

3

34

4

4

6

0

23

3

06

8

2

6

8

Page 17: Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2: SCOAP-Algorithmus Ralph Weper.

Datentechnik 172. Übung THS, 15.November 2006

Schlussfolgerung

Schwierigkeit, Haftfehler an Knoten x zu erkennen

• T(x stuck-at-0) = CC1(x) + CO(x)

• T(x stuck-at-1) = CC0(x) + CO(x)

Testbarkeit einer Schaltung für Haftfehler

• Testbarkeit-Index = log T(fi)

Anzahl der benötigten Testvektoren für 90%-ige

Fehlerüberdeckung ist ungefähr linear abhängig von

dem Testbarkeits-Index einer Schaltung

Was soll das?