416
8 Test
vor der Unterbrechung im Gate vorhandenen Ladung. Auf diese Weise „erinnert”
sich das Gate an sein Eingangssignal. Zudem können transiente Fehler und Verzögerungsfehler (Fehler, welche die Laufzeit einer Schaltung verändern) vorkommen.
Verzögerungsfehler können die Folge von Übersprechen zwischen benachbarten Leitungen sein. Fehlermodelle, die solche Hardwarefehler betrachten, sind verfügbar
[312].
Während gute Fehlermodelle für Hardwaretests existieren, ist dies bei Softwaretests nicht der Fall.
8.2.2 Selbsttestprogramme
Eines der Hauptprobleme beim Test moderner integrierter Schaltungen ist deren
begrenzte Anzahl an Kontakten. Dies erschwert immer mehr den Zugriff auf interne
Komponenten. Zudem ist es mittlerweile sehr schwer, die Schaltungen bei voller
Geschwindigkeit zu testen, da die Tester mindestens so schnell wie die Schaltung
selbst sein müssen. Ein Ausweg aus diesem Dilemma bietet die Tatsache, dass viele
eingebettete Systeme auf Prozessoren basieren: Prozessoren sind dazu in der Lage, Testprogramme oder Diagnoseroutinen auszuführen. Solche Diagnoseroutinen
kommen bei Großrechnern schon seit Jahrzehnten zum Einsatz.
Beispiel 8.2: Abb. 8.3 zeigt einige Komponenten, die in einem Prozessor enthalten
sein können.
Abb. 8.3 Einige
Komponenten der
Prozessorhardware
Befehlsregister
Registerbank
ALU
stuck-at- -Fehler?
k k
Um nun auf stuck-at-Fehler am Eingang der ALU zu testen, können wir ein kleines
Testprogramm ausführen:
Speichere Testmuster bestehend aus '1'-Bits im Registersatz;
Führe XOR-Operation zwischen der Konstanten "0000...00" und dem Register aus,
Teste, ob das Ergebnis ein '0'-Bit enthält,
Wenn ja, melde Fehler;
ansonsten starte Test auf nächsten Fehler
∇
Ähnliche kleine Programme können für andere Fehler generiert werden. Unglücklicherweise ist die Erzeugung von Diagnoseroutinen für Großrechner bisher
hauptsächlich manuell erfolgt. Es wurde vorgeschlagen, Diagnoseroutinen automatisch zu generieren [64, 314, 53, 313, 309, 48].
8 Test
vor der Unterbrechung im Gate vorhandenen Ladung. Auf diese Weise „erinnert”
sich das Gate an sein Eingangssignal. Zudem können transiente Fehler und Verzögerungsfehler (Fehler, welche die Laufzeit einer Schaltung verändern) vorkommen.
Verzögerungsfehler können die Folge von Übersprechen zwischen benachbarten Leitungen sein. Fehlermodelle, die solche Hardwarefehler betrachten, sind verfügbar
[312].
Während gute Fehlermodelle für Hardwaretests existieren, ist dies bei Softwaretests nicht der Fall.
8.2.2 Selbsttestprogramme
Eines der Hauptprobleme beim Test moderner integrierter Schaltungen ist deren
begrenzte Anzahl an Kontakten. Dies erschwert immer mehr den Zugriff auf interne
Komponenten. Zudem ist es mittlerweile sehr schwer, die Schaltungen bei voller
Geschwindigkeit zu testen, da die Tester mindestens so schnell wie die Schaltung
selbst sein müssen. Ein Ausweg aus diesem Dilemma bietet die Tatsache, dass viele
eingebettete Systeme auf Prozessoren basieren: Prozessoren sind dazu in der Lage, Testprogramme oder Diagnoseroutinen auszuführen. Solche Diagnoseroutinen
kommen bei Großrechnern schon seit Jahrzehnten zum Einsatz.
Beispiel 8.2: Abb. 8.3 zeigt einige Komponenten, die in einem Prozessor enthalten
sein können.
Abb. 8.3 Einige
Komponenten der
Prozessorhardware
Befehlsregister
Registerbank
ALU
stuck-at- -Fehler?
k k
Um nun auf stuck-at-Fehler am Eingang der ALU zu testen, können wir ein kleines
Testprogramm ausführen:
Speichere Testmuster bestehend aus '1'-Bits im Registersatz;
Führe XOR-Operation zwischen der Konstanten "0000...00" und dem Register aus,
Teste, ob das Ergebnis ein '0'-Bit enthält,
Wenn ja, melde Fehler;
ansonsten starte Test auf nächsten Fehler
∇
Ähnliche kleine Programme können für andere Fehler generiert werden. Unglücklicherweise ist die Erzeugung von Diagnoseroutinen für Großrechner bisher
hauptsächlich manuell erfolgt. Es wurde vorgeschlagen, Diagnoseroutinen automatisch zu generieren [64, 314, 53, 313, 309, 48].
