Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2:...
-
Upload
emilie-gilgen -
Category
Documents
-
view
104 -
download
1
Transcript of Datentechnik12. Übung THS, 15.November 2006 Testen hochintegrierter Schaltungen Übung 2:...
Datentechnik 12. Ü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
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
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
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)
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)
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)
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
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
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
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?
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
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)
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))
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
&
&
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
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?