-
Die
vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Testen
einer integrierten Schaltung (IC) mit einem Kompaktor zum Komprimieren
der Testantworten von einer unter Test stehenden Schaltung, die Teil
einer IC ist, und mit einer Maskierungsschaltung, die zwischen die
unter Test stehende Schaltung und dem Kompaktor zum Maskieren einer
oder mehrerer der Testantworten von der unter Test stehenden Schaltung
geschaltet ist.
-
Die
vorliegende Erfindung bezieht sich auch auf ein Verfahren zum Testen
einer IC.
-
Die
Erfindung bezieht sich außerdem
auf ein Verfahren zum Berechnen komprimierter Maskierungsdaten zum
Maskieren von Testdaten von einer IC.
-
Es
ist von Vorteil, Testantworten von einer IC zu komprimieren, da
dies eine Reduzierung des Testdatenvolumens und der Testzeit ermöglicht.
Die Werte einiger Testantworten können jedoch nicht von vorn
herein bestimmt werden, während
andere Testantworten drei Zustände
annehmen oder unzuverlässig
sein können. Diese
unbekannten, drei Zustände
annehmenden und unzuverlässigen
Testantworten werden als 'X'-Testantworten bezeichnet
und machen ein zuverlässiges
Komprimieren der Testantworten sehr schwierig oder sogar unmöglich.
-
Produktionstests
für ICs
werden typischerweise mit automatisierten Testeinrichtungen (ATE)
durchgeführt,
die auch als IC-Tester bezeichnet werden. Eine ATE speichert Teststimuli
und führt
diese Stimuli der IC zu. Die anschließenden Antworten der IC werden
dann von der ATE beobachtet oder ausgewertet. Die ATE vergleicht
die beobachteten Antworten mit den erwarteten Antworten einer fehlerfreien
IC. Dies ermöglicht
es, zu bestimmen, ob die IC den Test bestanden oder nicht bestanden
hat, und die Fehler zu diagnostizieren. Die ATE speichert die Teststimuli
und die fehlerfreien Testantworten in ihrem Speicher.
-
Digitale
ICs enthalten üblicherweise
Abtastketten. Dieses impliziert, dass die Flip-Flops in der IC im Testbetrieb zu seriellen
Schieberegistern konfiguriert werden können, d. h. zu Abtastketten
(scan chains). Ein Test wird wiederholt folgendermaßen durchgeführt: (1)
Einschieben eines Teststimulus in die Abtastketten der IC im Testbetrieb,
(2) Betreiben der IC für
eine Anzahl von Taktzyklen in ihrem Funktionsanwendungsmodus und
(3) Ausschieben der Testantworten im Testbetrieb. Wenn die Testantworten
ausgeschoben werden, werden üblicherweise
neue Teststimuli eingeschoben.
-
Ständige Verbesserungen
in der IC-Prozesstechnologie erlauben nach dem Moore-schen Gesetz
eine exponentielle Zunahme der Anzahl von Transistoren in einer
IC. Dementsprechend steigen die Testdatenvolumina ebenfalls exponentiell
an. Neue IC-Prozesstechnologien führen zu neuen Fehlerarten,
und zusätzliche Tests
sind notwendig, um diese Fehler festzustellen, was wiederum zu einer
Zunahme der Testdatenvolumina führt.
Diese deutliche Zunahme von Testdatenvolumina schafft kritische
Probleme in Bezug auf die Benutzung von ATEs und in Bezug auf die
Testkosten. Die Testdatenvolumina können die Kapazität der Speicher
der ATEs überschreiten
und die Zeit zur Durchführung
der Tests nimmt zu.
-
Lösungen ergeben
sich durch Techniken der Testdaten-Kompression und Techniken der
eingebauten Selbstprüfung
(BIST = Built-In-Self-Test). Diese Techniken kompaktieren die Testantworten
raum- und/oder zeitmäßig durch
Benutzung spezieller Schaltungen zur Testanworten-Kompaktierung,
wie zum Beispiel eines Multiple-Input Signature Registers (MISR)
oder einer Space-Compaction Logik (SCL). Diese Kompaktierungs-Schaltungen
können
entweder auf dem Chip, nicht auf dem Chip, d. h. zum Beispiel auf
der Testschaltung (load-board), oder in der ATE untergebracht sein.
Die Kompaktierungs-Schaltung gibt kompaktierte Testantworten aus,
die durch die ATE beobachtet und mit den erwarteten, kompaktierten
Antworten einer fehlerfreien Schaltung verglichen werden. Somit
muss nun die ATE nur die kompaktierten Testantworten speichern, was
die Speichererfordernisse reduziert.
-
Ein
Problem ist mit dem Stand der Technik verbunden und besteht darin,
dass einige Testantworten unterdrückt oder maskiert werden müssen, bevor
die Testantworten kompaktiert werden können. Dies ist der Fall bei
Ternär-Zuständen (tri state)
(Z), unbekannten (U) und unzuverlässigen Testantworten, d. h. 'X'-Antworten.
-
Ternär-Testantworten
haben einen Hochimpedanz-Zustand (Z) und können z. B. von bi-direktionalen Eingang/Ausgang-Stiften
herrühren.
-
Unbekannte
Testantworten haben einen unbekannten Wert (U) und können z.
B. von nicht initialisierten, eingebetteten Speichern, Mischsignal-Modulen
und/oder widersprüchlichen
oder schwebenden (floating) Bussen herrühren. Auch wenn der erste Stimulus
in eine IC eingeschoben wird, können
unbekannte Werte aus der IC ausgeschoben werden. Eine unbekannte
Testantwort impliziert eine Testantwort, die entweder logisch niedrig
(L), d. h. 0, logisch hoch (H), d. h. 1 oder Ternär-Zustand
(Z) ist, aber ihre Antwort kann nicht bestimmt werden, bevor der
Test durchgeführt
ist.
-
Unzuverlässige Testantworten
haben ein unzuverlässiges
Resultat, das falsch sein kann. Dies kann zum Beispiel in Schaltungen
mit Mehrfachtaktbereichen auftreten, in denen unzuverlässige Testantworten
aufgrund von Taktverschiebungen auftreten können, wenn die Signalleitungen
geprüft
werden, die Taktbereichsgrenzen kreuzen.
-
Das
Kompaktieren von Testantworten, die 'X'-Antworten
enthalten, führt
zu unzuverlässigen
kompaktierten Testantworten, die nicht benutzt werden können, um
zu bestimmen, ob die Schaltung in der IC den Test besteht oder nicht
besteht, oder eine Diagnose der Fehler durchzuführen. Somit kann keine Kompaktierung der
Testantworten für
Schaltungen durchgeführt
werden, die 'X'-Antworten erzeugt.
-
Ternär-Zustände, unbekannte
und unzuverlässige
Werte in Testantworten sollten entweder unterdrückt, d. h. maskiert, oder am
Auftreten gehindert werden.
-
Eine
Teillösung
nach dem Stand der Technik besteht darin, unbekannte Testantworten
innerhalb der Schaltung durch Hinzufügen geeigneter Design-for-Testability (DfT)
Hardware zu klären.
Zum Beispiel können Testpunkte
in Signalleitungen mit unbekannten Werten eingefügt werden, die die Signalleitungen
auf einen bekannten, fixierten Wert zwingen. Das Hinzufügen von
DfT an die Schaltung zum Verhindern von unbekannten Werten erfordert
jedoch eine, häufig
manuelle, Modifikation der Schaltung. Dies kann in Fällen von 'hard cores' unmöglich sein,
in denen nur das Schaltungslayout verfügbar ist, oder unerwünscht in
Fällen,
in denen die DfT-Hardware das Timing derart beeinträchtigt,
dass die getestete Schaltung nicht mit der erforderlichen Frequenz
betrieben werden kann.
-
Eine
zu bevorzugende Lösung
erfordert, dass alle ternären,
unbekannten und unzuverlässigen
Testantworten am Ausgang der IC maskiert werden, bevor sie in die
Kompaktierungsschaltung gelangen. Dies kann mit einer X-Maskierungslogik
(XML) erzielt werden. Die XML maskiert alle 'X'-Antworten,
in denen 'X' entweder eine ternäre (Z),
eine unbekannte (U) oder eine unzuverlässige Testantwort anzeigt.
Das Maskieren impliziert, dass die 'X'-Antwort
durch einen bekannten, festen Wert ersetzt wird, zum Beispiel ein
logisches hoch (H). Ein Beispiel einer solchen Anordnung ist in
der US-Patentanmeldung
US-A-2003/0115521 beschrieben. Wird
die XML auf dem Chip implementiert, sollte der zusätzliche
Siliziumbereich für
die XML idealerweise klein sein. Außerdem sollte die XML flexibel
in der Weise sein, dass sie in Fällen
verschiedener erzielter Testantworten benutzt werden kann, zum Beispiel
aufgrund verschiedener Testmuster oder bei Konstruktionsänderungen.
Der Betrieb der XML kann von der ATE gesteuert werden. In einem
solchen Fall sollte die Menge der in der ATE gespeicherten Daten
für die
Steuerung der XML auch idealerweise klein sein. Darüber hinaus
sollten die Bandbreitenanforderungen zum Transport dieser Daten
von der ATE zur IC ebenfalls idealerweise gering sein. Leider wurden
im Stand der Technik verschiedene XML-Implementierungen vorgeschlagen,
die die vorher erwähnten
Anforderungen nicht vollständig
erfüllen.
-
Der
Erfindung liegt die Aufgabe zugrunde, die Menge der Testdaten zu
reduzieren.
-
In
einem ersten Aspekt der Erfindung wird die Aufgabe dadurch gelöst, dass
die Maskierungsschaltung darüber
hinaus eine Dekompressionsschaltung zum Empfangen von komprimierten
Maskierungsdaten von der Vorrichtung enthält und dekomprimierte Maskierungsdaten
liefert.
-
In
einer vorteilhaften Ausführungsform
der vorliegenden Erfindung kann die Dekompressionsschaltung darüber hinaus
ein Schieberegister mit linearem Feedback enthalten.
-
In
einer anderen vorteilhaften Ausführungsform
der vorliegenden Erfindung kann die Dekompressionsschaltung darüber hinaus
einen Phasenschieber enthalten.
-
In
einer weiteren vorteilhaften Ausführungsform der vorliegenden
Erfindung kann die Dekompressionsschaltung darüber hinaus eine Gewichtungslogik
enthalten.
-
In
noch einer weiteren vorteilhaften Ausführungsform der vorliegenden
Erfindung können
die komprimierten Maskierungsdaten mindestens ein Steuersignal enthalten.
-
In
noch einer weiteren vorteilhaften Ausführungsform der vorliegenden
Erfindung ist das zumindest eine Steuersignal ein alles maskierendes
(mask_all) Steuersignal.
-
In
noch einer weiteren vorteilhaften Ausführungsform der vorliegenden
Erfindung ist das zumindest eine Steuersignal ein die Maskierung
aktivierendes (mask_enable) Steuersignal.
-
In
einem zweiten Aspekt der vorliegenden Erfindung wird die Aufgabe
dadurch gelöst,
dass der Dekompressionsschaltung komprimierte Maskierungsdaten zugeführt werden,
dass die komprimierten Maskierungsdaten dekomprimiert werden, um
dekomprimierte Maskierungsdaten zu erzeugen, und dass Testantworten
von der integrierten Schaltung abhängig von den dekomprimierten
Maskierungsdaten maskiert werden.
-
In
einem dritten Aspekt der vorliegenden Erfindung wird die Aufgabe
dadurch gelöst,
dass ein Satz von Gleichungen, die den Maskierungsdaten zugeordnet
sind, erzeugt werden, und dass die Gleichungen gelöst werden,
um die komprimierten Maskierungsdaten zu erhalten.
-
Für ein besseres
Verständnis
der Vorrichtung nach der Erfindung und um deutlicher zu zeigen,
wie sie ausgeführt
werden kann, wird nun in Form eines Beispiels auf die beigefügten Zeichnungen
Bezug genommen.
-
1 zeigt
ein Beispiel einer X-Maskierungslogik (XML) nach der vorliegenden
Erfindung,
-
2 zeigt
ein detaillierteres Beispiel einer X-Maskierungslogik (XML) nach
der vorliegenden Erfindung und
-
3 zeigt
ein Beispiel eines Flussdiagramms einer automatische Testmustergeneratoreinrichtung (ATPG)
zum Berechnen von XML-Steuersignalen.
-
1 zeigt
ein Beispiel einer X-Maskierungslogik (XML) nach der vorliegenden
Erfindung. 1 enthält eine IC 10, die
selbst eine zu prüfende
Schaltung 14, die XML 18 und einen Kompaktor 22 aufweist.
Die zu prüfende
Schaltung 14 enthält
n Abtastketten (scan chains) SC1 bis SCn, deren Ausgänge über die
XML 18 mit dem Kompaktor 22 verbunden sind, um
Testantworten von der zu prüfenden
Schaltung 14 zu kompaktieren. Der Kompaktor 22 kann
zum Beispiel durch ein Multiple-Input Signature Register (MISR)
oder eine Space Compaction Logic (SCL) implementiert werden; solche
Implementationen sind im Stand der Technik bekannt. Obwohl 1 zeigt,
dass die XML 18 und der Kompaktor 22 als Teile
in der IC 10 enthalten sind, können die XML 18 und/oder
der Kompaktor 22 auch außerhalb des Chips zum Beispiel
auf der Testschaltung (load-board) der automatischen Testeinrichtung
(ATE) oder sogar innerhalb einer ATE (nicht gezeigt) selbst untergebracht
sein.
-
Die
XML 18 enthält
ein Schieberegister mit linearem Feedback (LFSR) 26, einen
Phasenschieber mit einer Gewichtungslogik 30 und eine Steuerlogik 34.
Die XML 18 wird von der ATE unter Benutzung von Steuersignalen
mask_all (maskiere alles) und mask_enable (Maskierung aktiviert)
gesteuert. Die ATE aktualisiert in jedem Taktzyklus die logischen
Zustände
der XML 18 durch Eingangsanschlüsse, die die Signale m1 bis mq, d. h. die
komprimierten Maskierungsdaten, liefern.
-
Gemäß der vorliegenden
Erfindung ermöglicht
die XML 18 eine Reduzierung der Menge der in der ATE zu
speichernden Maskierungsdaten. Dementsprechend muss die ATE q +
2 Bits pro Taktzyklus speichern, die die Signale mask_all, mask_enable
und m1 bis mq repräsentieren.
Diese q + 2 Bits werden durch die XML 18 in eine Maske
von n Ausgangsbits dekomprimiert, wobei q << n
ist. Ohne XML 18 gemäß der vorliegenden Erfindung
müsste
die XML normalerweise eine n-Bit Maske für jeden Taktzyklus speichern,
und n IC-Eingangsstifte wären
erforderlich, um eine solche Maske von der ATE zur IC 10 zu übertragen.
Bei der Benutzung der XML 18 gemäß der Erfindung hat die ATE
den Vorteil, dass sie nur q + 2 Bits der XML 18-Daten speichern muss,
die die Steuer- und Maskierungsdatensignale mask_all, mask_enable
und m1 bis mq für jeden
Taktzyklus repräsentieren,
und nur q + 2 IC-Eingangsstifte sind erforderlich, um diese Daten
von der ATE zur IC 10 zu übertragen.
-
2 zeigt
ein weiter detailliertes Beispiel einer X-Maskierungslogik (XML)
nach der vorliegenden Erfindung.
-
Die
als Beispiel dienende XML 18 der 2 zeigt:
eine zu prüfende
Schaltung 14, die vier Abtastketten SC1 bis SC4, ein 4-Bit-LFSR 26,
einen Phasenschieber 30 und eine Steuerlogik 34 mit
drei Stufen.
-
Das
in 2 gezeigte LFSR 26 hat einen bekannten
Aufbau und enthält
ein Schieberegister sowie ein Feedback-Netzwerk aus XOR-Gates. Das
LFSR 26, das die komprimierten Maskierungsdaten von der
ATE empfängt,
hat eine Breite von p Bits, d. h., dass sein Schieberegister enthält p Flip-Flops:
in diesem Beispiel ist p = 4. Bei jedem Taktzyklus wird der Zustand
des LFSR 26 partiell aktualisiert unter Benutzung von q
Maskierungsdatenbits von der ATE, hierbei ist q ≤ p bei den Eingangssignalen m1 bis mq: in diesem
Beispiel ist q = 1. Dieses Aktualisieren kann zum Beispiel durch
Hinzufügen
von XOR-Gates zu dem Schieberegister erfolgen, wobei der Eingang
jedes von i XOR-Gates angeschlossen ist, ein entsprechendes Eingangssignal
mi zu empfangen: hierbei ist 1 ≤ i ≤ q. Das LFSR 26 führt einen
partiellen Dekompressionsvorgang aus, um die komprimierten Maskierungsdaten
von der ATE zu dekomprimieren. Die partiell dekomprimierten Ausgangsdaten vom
LFSR 26 werden als Eingangsdaten zum Phasenschieber 30 benutzt.
-
Der
in 2 gezeigte Phasenschieber 30 ist ebenfalls
von bekanntem Aufbau und enthält
ein Netzwerk von XOR-Gates. Der Phasenschieber 30 führt einen
weiteren Dekompressionsvorgang an den Daten von dem LFSR 26 durch
und erzeugt n Ausgangssignale aus p Eingangssignalen, wobei p ≤ n ist, in
diesem speziellen Beispiel ist n = 4. Der Phasenschieber 30 ist
derart aufgebaut, dass die Ausgangssignale des Phasenschiebers unkorreliert
sind, d. h. jedes Ausgangssignal hängt von einem unterschiedlichen
Satz von Eingangssignalen ab. Es wird bemerkt, dass dem Phasenschieber 30 Gewichtungslogik
(nicht gezeigt) hinzugefügt
werden kann, die es ermöglicht,
die Wahrscheinlichkeit zu erhöhen
(biasing), dass ein bestimmtes Ausgangssignal eine logische 0 oder
eine logische 1 ist. Die Gewichtungslogik enthält typischerweise eine gewisse
Kombinationslogik, die wahlweise durch zusätzliche Eingangssignale von
der ATE gesteuert werden kann.
-
Die
n Ausgangssignale (in diesem speziellen Beispiel ist n = 4) des
Phasenschiebers 30 werden als Eingangssignale für die Steuerlogik 34 benutzt.
-
Die
erste Stufe 36 der Steuerlogik 34 enthält vier
AND-Gates, die durch das Steuersignal mask_enable gesteuert werden
und die Daten vom Phaseschieber 30 weiter dekomprimiert.
Wenn mask_enable logisch 1 ist, sind die entsprechenden Ausgänge der
AND-Gates gleich, spiegelbildlich, ihren entsprechend zugeordneten
Ausgängen
vom Phasenschieber 30. Wenn mask_enable logisch 0 ist,
werden die Ausgänge
aller AND-Gates auf eine logische 0 gezwungen, und deshalb wird
die n-Bit Ausgangsmaske des Phasenschiebers 30 zu einer
Ausgangsmaske, die alle eine logische 0 enthalten. Die zweite Stufe 38 der
Steuerlogik 34 enthält vier
OR-Gates, die durch das Steuersignal mask_all gesteuert werden und
die Daten der ersten Stufe 36 weiter dekomprimiert. Wenn
mask_all logisch 0 ist, sind die entsprechenden Ausgänge der
OR-Gates gleich, spiegelbildlich, ihren entsprechend zugeordneten
Ausgängen
von der ersten Stufe 36 der Steuerlogik 34. Wenn mask_all
logisch 1 ist, werden die Ausgänge
aller OR-Gates auf
eine logische 1 gezwungen, und deshalb wird die n-Bit-Maske von
den Ausgängen
der zweiten Stufe 38 der Steuerlogik durch eine n-Bit-Maske
ersetzt, die alle logische 1 enthält.
-
Die
dritte Stufe 40 der Steuerlogik 34 enthält vier
OR-Gates, die operativ angeordnet sind, Ausgangssignale von den
Abtastketten SC2 bis SC4 und die Ausgangssignale der zweiten Stufe 38 zu
empfangen. Diese dritte Stufe 40 von OR-Gates modifiziert die IC-Testantworten
von den Abtastketten SC2 bis SC4 mit der n-Bit-Maske von der zweiten
Stufe 38 der Steuerlogik.
-
Die
dritte Stufe 40 der Steuerlogik 34 ist immer notwendig,
da diese die tatsächliche
Maskierung durchführt.
-
Die
dritte Stufe 40 wirkt als Maskierungsschaltung, die operativ
die n-Bit-Maske von der zweiten Stufe 38 zusammen mit den
entsprechenden n Ausgangssignalen über die n Abtastketten SC1
bis SCn von der zu prüfenden
Schaltung 14 erhält.
In einem ersten Beispiel, in dem ein Ausgangssignal von der zweiten
Stufe 38 eine logische 1 ist und einem OR-Gate in der dritten
Stufe 40 zugeführt
wird, wird dann die entsprechende Testantwort von der entsprechenden
Abtastkette durch eine logische 1 ersetzt, und die Testantwort wird
als maskiert betrachtet. In einem zweiten Beispiel, in dem ein Ausgangssignal
von der zweiten Stufe 38 eine logische 0 ist, passiert
die entsprechende Testantwort das OR-Gate und wird deshalb nicht maskiert.
Somit zeigt eine logische 1 in einer Maske an, dass die Testantwort
der entsprechenden Abtastkette maskiert ist, und wohingegen eine
logische 0 in einer Maske anzeigt, dass die Testantwort der entsprechenden
Abtastkette nicht maskiert ist. Eine alternative Ausführungsform
(nicht dargestellt) der dritten Stufe 40 der 2 würde darin
bestehen, dass die OR-Gates durch AND-Gates ersetzt sind. Bei einer
solchen Implementation der dritten Stufe 40 mit AND-Gates
zeigt eine logische 0 in einer Maske an, dass die Testantwort der
entsprechenden Abtastkette maskiert ist, und wohingegen eine logische
1 in einer Maske anzeigt, dass die Testantwort nicht maskiert ist. In
einem solchen Fall sollte die dritte Stufe AND-Gates anstelle von
OR-Gates enthalten. Somit sollte klar sein, dass die illustrierte
Steuerlogik nur eine als Beispiel dienende Ausführung ist und alternative Implementationen mit
anderen Arten von logischen Gates ebenfalls möglich sind.
-
Die
erste Stufe 36 und/oder die zweite Stufe 38 der
Steuerlogik 34 sind ebenso optional wie der Phasenschieber 30,
einschließlich
dessen zugeordnete Gewichtungslogik.
-
Die
Steuerlogik 34 kann auch angepasst werden. Zum Beispiel
kann das Steuersignal mask_all derart bearbeitet werden, dass es
in zwei solche unabhängige
Steuersignale aufgespalten wird. Diese beiden Steuersignale mask_all
können
dann derart benutzt werden, dass jedes einen Teil der Maskierung
der Datenausgangssignale von den Abtastketten SC1 bis SCn steuert.
Auf ähnliche
Weise kann das Steuersignal mask_enable derart bearbeitet werden,
dass es zum Beispiel in zwei unabhängige Steuersignale aufgespalten wird:
Die beiden Steuersignale mask_enable können dann derart benutzt werden,
dass jedes einen Teil der enable/disable-Maskierung der Datenausgangssignale
von den Abtastketten SC1 bis SCn steuert.
-
Die
Arbeitsweise der XML 18 wird nun in dem folgenden Beispiel
im Detail beschrieben.
-
Das
Beispiel der 2 illustriert eine XML 18 für eine zu
prüfende
Schaltung 14, die vier Abtastketten SC1 bis SC4 enthält. Die
XML 18 enthält
ein 4-Bit-LFSR 26,
einen Phasenschieber 30 und eine dreistufige Steuerlogik.
-
Die
Symbole x1, x2,
x3 und x4 stellen
Anfangswerte, d. h. logische Zustände, des LFSR 26 im
Taktzyklus 1 dar. Der Zustand des LFSR 26 in nachfolgenden
Taktzyklen kann in der Form der logischen Zustände des LFSR 26 zusätzlich zu
dem Zustand des Eingangssignals m von der ATE ausgedrückt werden.
Diese Ausdrücke
können
auf einfache Weise mittels symbolischer Simulation abgeleitet werden.
Die logischen Zustände des
LFSR 26 in den nächsten
fünf Taktzyklen
sind wie folgt, wobei LFSRi den Zustand
des LFSR 26 im Taktzyklus i anzeigt und mi den
Wert des Signals m im Taktzyklus i bedeutet.
-
- LFSR1 = (x1,
x2, x3, x4)
- LFSR2 = (x3 ⊕ x4, x1, x2 ⊕ m1, x3)
- LFSR3 = (x2 ⊕ x3 ⊕ m1, x3 ⊕ x4, x1 ⊕ m2, x2 ⊕ m1)
- LFSR4 = (x1 ⊕ x2 ⊕ m1 ⊕ m2, x2 ⊕ x3 ⊕ m1,x3 ⊕ x4 ⊕ m3,x1 ⊕ m2)
- LFSR5 = (x1 ⊕ x3 ⊕ x4 ⊕ m2 ⊕ m3, x1 ⊕ x2 ⊕ m1 ⊕ m2, x2 ⊕ x3 ⊕ m1 ⊕ m4, x3 ⊕ x4 ⊕ m3)
- LFSR6 = (x2 ⊕ x4 ⊕ m1 ⊕ m3 ⊕ m4, x1 ⊕ x3 ⊕ x4 ⊕ m2 ⊕ m3, x1 ⊕ x2 ⊕ m1 ⊕ m2 ⊕ m5, x2 ⊕ x3 ⊕ m1 ⊕ m4)
-
In ähnlicher
Weise können
die Ausgangssignale des Phasenschiebers 30 ebenfalls in
der Form der Symbole x1, x2,
x3, x4 und mi ausgedrückt
werden.
-
- PS1 = (x1,
x1 ⊕ x2, x3, x4)
- PS2 = (x3 ⊕ x4, x1 ⊕ x3 ⊕ x4, x2 ⊕ m1, x3)
- PS3 = (x2 ⊕ x3 ⊕ m1,x2 ⊕ x4 ⊕ m1, x1 ⊕ m2, x2 ⊕ m1)
- PS4 = (x1 ⊕ x2 ⊕ m1 ⊕ m2, x1 ⊕ x3 ⊕ m2, x3 ⊕ x4 ⊕ m3, x1 ⊕ m2)
- PS5 = (x1 ⊕ x3 ⊕ x4 ⊕ m2 ⊕ m3, x2 ⊕ x3 ⊕ x4 ⊕ m1 ⊕ m3, x2 ⊕ x3 ⊕ m1 ⊕ m4, x3 ⊕ x4 ⊕ m3)
- PS6 = (x2 ⊕ x4 ⊕ m1 ⊕ m3 ⊕ m4, x1 ⊕ x2 ⊕ x3 ⊕ m1 ⊕ m2 ⊕ m4, x1 ⊕ x2 ⊕ m1 ⊕ m2 m5, x2 ⊕ x3 ⊕ m1 ⊕ m4)
-
Die
Ausgänge
des Phasenschiebers dienen als Maske. Diese Maske wird in der Steuerlogik
weiter aktualisiert unter Benutzung der Eingangssignale mask_enable
und mask_all, wie in Tabelle 1 angegeben.
mask_all | mask_enable | |
0 | 0 | keine
Abtastkette ist maskiert |
0 | 1 | Maskierung
der Ausgangssignale von Abtastketten wird durch das LFSR und den
Phasenschieber gesteuert |
1 | 0 | alle
Ausgangssignale von Abtastketten sind maskiert |
1 | 1 | alle
Ausgangssignale von Abtastketten sind maskiert |
Tabelle
1: Steuersignale
-
Es
wird angenommen, dass die Testantworten der IC, die an den Ausgängen der
Abtastketten SC1 bis SC4 in den obigen sechs Taktzyklen beobachtet
werden, wie folgt sind:
-
- R1 = (U, U, U, U)
- R2 = (L, L, H, L)
- R3 = (H, U,
L, H)
- R4 = (U,
H, H, L)
- R5 = (H, L, L, H)
- R6 = (L, H, H,
L)
-
R4 drückt
aus, dass im Taktzyklus vier das Ausgangssignal der Abtastkette
1 SC1 ,U' ist, das
Ausgangssignal der Abtastketten 2 und 3 SC2 bis SC3 ,H' ist und das Ausgangssignal
der Abtastkette 4 SC4 ,L' ist.
-
Die
unterstrichenen Testantworten sind diejenigen, die maskiert werden
sollten. Dies ist der Fall der unbekannten Antworten ,U' in R1,
R3 und R4 sowie
der unzuverlässigen
Antwort ,H' in der
Abtastkette 3 SC3 in R6.
-
Die
fett gedruckten Antworten zeigen ,wesentliche Antworten', an denen ein Fehlereffekt
durch die ATE beobachtet werden kann. Die Antworten R1 bis
R6 sind Antworten der fehlerfreien, geprüften Schaltung 14,
wenn ein bestimmtes Testmuster angelegt wird. Das Testmuster kann
das Vorhandensein bestimmter Fehler in der zu prüfenden Schaltung (CUT = circuit-under-test) 14 feststellen.
Wenn ein solcher Fehler in der CUT 14 vorhanden ist, dann
wird eine oder werden mehrere der wesentlichen Antworten einen unterschiedlichen Wert
zeigen, und somit wird ein Fehler erkannt. Die wesentlichen Antworten
sollten durch die XML 18 nicht maskiert werden.
-
Die
verbleibenden Antworten, die weder unterstrichen noch fett gedruckt
sind, sind solche, die entweder logisch niedrig ,L' oder logisch hoch
,H' sind. Dieses
sind nicht-wesentliche Antworten, und an diesen Antworten wird kein
Fehlereffekt für
solche Fehler beobachtet, auf die das Testmuster zielt. Es kann
jedoch der Fall sein, dass andere Fehler, auf die das aktuelle Testmuster
nicht zielt, zu Fehlereffekten führt,
die an diesen Antworten beobachtet werden können. Diese Fehler werden jedoch
durch andere Muster erkannt. Somit können die nicht-wesentlichen Antworten
maskiert werden, ohne die Fehlererfassung zu beeinträchtigen.
Es wird dennoch bevorzugt, diese Antworten nicht zu maskieren, da
mehrfaches Erkennen von Fehlern das Erfassen von Fehlern verbessert.
-
Alle
Antworten in R1 sollten maskiert werden.
Dies wird erreicht durch Einstellen des Steuersignals mask_all auf
logisch 1 im Taktzyklus 1. In den Taktzyklen 2 bis 6 wird mask_all
auf logisch 0 gestellt.
-
Keine
Antworten müssen
in R2 und R5 maskiert
werden und somit wird das Steuersignal mask_enable in den Taktzyklen
2 und 5 auf logisch 0 eingestellt. In den verbleibenden Taktzyklen
ist ein Maskieren erforderlich und mask_enable wird auf logisch
1 eingestellt.
-
In
den verbleibenden Testantworten R3, R4 und R6 ist das
folgende Maskieren erforderlich:
- – R3,2, d. h. das Ausgangssignal der Abtastkette
2 im Vektor R3, ist unbekannt ,U' und sollte maskiert
werden;
- – Fehlereffekte
können
in R3,3, R4,3 und
R6,2 beobachtet werden und somit sollten
diese wesentlichen Testantworten nicht maskiert werden;
- – R4,1 ist ebenfalls unbekannt ,U' und sollte maskiert
werden;
- – R6,3 ist eine unzuverlässige Antwort und sollte maskiert
werden.
-
Diese
Bedingungen können
in Kombination mit den symbolischen Ausdrücken für die Maske benutzt werden,
wie sie durch das Ausgangssignal des Phasenschiebers 30 gegeben
sind. Das Resultat ist das folgende System von linearen Gleichungen.
-
- R3,2: x2 ⊕ x4 ⊕ m1 = 1
- R3,3: x1 ⊕ m2 = 0
- R4,1: x1 ⊕ x2 ⊕ m1 ⊕ m2 = 1
- R4,3: x3 ⊕ x4 ⊕ m3 = 0
- R6,2: x1 ⊕ x2 ⊕ x3 ⊕ m1 ⊕ m2 ⊕ m4 = 0
- R6,3: x1 ⊕ x2 ⊕ m1 ⊕ m2 ⊕ m5= 1
-
Ein
solches System von linearen Gleichungen kann zum Beispiel auf einfache
Weise durch Gauß'sche Elimination
gelöst
werden. Eine mögliche
Lösung
ist: x1 = 1, x2 =
0, x3 = 1, x4 =
0, m1 = 1, m2 =
1, m3 = 1, m4 = 0
und m5 = 0.
-
Einsetzen
dieser Lösung
in die symbolischen Gleichungen am Ausgang des Phasenschiebers 30 und Berücksichtigen
der Werte der Steuersignale mask_enable und mask_all führt zu den
folgenden Masken:
-
- Maske1 = (1, 1, 1, 1)
- Maske2 = (0, 0, 0, 0)
- Maske3 = (0, 1, 0, 1)
- Maske4 = (1, 1, 0, 0)
- Maske5 = (0, 0, 0, 0)
- Maske6 = (0, 0, 1, 0)
-
Die
Testantworten am Eingang des Kompaktors 22 nach der Maskierung
sind nun wie folgt (das Symbol ,m' bezeichnet eine maskierte Antwort):
-
- R1' = (m, m, m, m) ⇒ (1, 1,
1, 1) ist der Eingang am Kompaktor
- R2' =
(L, L, H, L) ⇒ (0,
0, 1, 0)
- R3' =
(H, m, 1, m) ⇒ (1, 1,
0, 1)
- R4' =
(m, m, H, L) ⇒ (1, 1,
1, 0)
- R5' =
(H, L, L, H) ⇒ (1,
0, 0, 1)
- R6' =
(L, H, m, L) ⇒ (0, 1,
1, 0)
-
Folgendes
ist zu beobachten:
- – alle Antworten, die maskiert
werden sollten, d. h. die unterstrichenen Antworten, sind tatsächlich maskiert;
- – alle
wesentlichen Antworten, die nicht maskiert werden sollten, d. h.
die fett gedruckten Antworten, sind tatsächlich nicht maskiert; und
- – einige
nicht-wesentliche Antworten, die maskiert werden könnten, sind
maskiert und diese sind durch das nicht unterstrichene Symbol ,m' angezeigt.
-
Das
vorstehende Beispiel zeigt einen Weg der Berechnung der Werte für die Steuersignale
der XML 18. Dieses Verfahren kann auf einfache Weise in
einer automatischen Testmustergeneratoreinrichtung (ATPG) realisiert
werden.
-
3 zeigt
ein Beispiel eines Flussdiagramms einer ATPG zum Berechnen der Steuersignale
für die XML 18.
-
Die
ATPG erzeugt ein Testmuster, das bestimmte Fehler erkennt, d. h.
Zielfehler. Das Testmuster enthält
Teststimuli und die entsprechenden Testantworten. Die ATPG analysiert
als nächstes
die Testantworten, um einerseits alle ternären, unbekannten und unzuverlässigen Antworten,
die maskiert werden sollten, und andererseits die wesentlichen Antworten,
die nicht maskiert werden sollten, zu identifizieren. Wesentliche
Antworten sind diejenigen, die beobachtet werden sollten, um die
Zielfehler zu erkennen.
-
Die
Werte für
die Signale mask_all und mask_enable werden durch identifizierende
Antwortvektoren bestimmt, in denen entweder alle oder keine der
Antworten maskiert werden sollten.
-
Das
System von linearen Gleichungen, die aus der symbolischen Simulation
des Betriebes der XML 18 abgeleitet werden, kann als nächstes gelöst werden,
um die Steuereingangssignale für
das LFSR 26 in der XML 18 zu bestimmen. Das System
enthält
Gleichungen für
alle X-Antworten, die maskiert werden sollten, und zumindest eine
wesentliche Antwort, die nicht maskiert werden sollte. Wenn die
Gleichung lösbar
ist, dann können
zusätzliche
wesentliche Antworten, die Fehlereffekte von zusätzlichen Zielfehlern zeigen,
zu dem Gleichungssystem hinzugefügt
werden, und das Gleichungssystem kann erneut gelöst werden. Dies wird solange wiederholt,
bis alle wesentlichen Antworten dem Gleichungssystem hinzugefügt worden
sind oder bis das Gleichungssystem nicht mehr lösbar ist. Die Reihenfolge des
Hinzufügens
der wesentlichen Antworten zu dem Gleichungssystem kann durch die
Anzahl von Fehlern bestimmt werden, die bei jeder wesentlichen Antwort erkannt
werden kann. Zuerst werden die wesentlichen Antworten zu dem Gleichungssystem
hinzugefügt,
die die meisten Fehler erkennen, usw.
-
Der
letzte Schritt besteht darin, unter Ausnutzung der Testantworten
nach der Maskierung eine Fehlersimulation auszuführen, um festzustellen, welche
Fehler tatsächlich
erkannt werden. Dieser Schritt ist notwendig, weil in dem Fall,
dass das Gleichungssystem nicht gelöst werden konnte, einige wesentliche
Antworten möglicherweise
maskiert wurden. Die Zielfehler, die nicht erkannt wurden, werden
durch die ATPG erneut als Ziel angesprochen, wenn nachfolgende Muster
erzeugt werden.
-
3 zeigt,
wie die Steuersignale der XML 18 mit dem Testmuster berechnet
werden können.
Eine alternative Implementation besteht darin, die Steuersignale
durch Lösen
von linearen Gleichungen für
nur einen Teil eines Testmusters oder für Mehrfachtestmuster zu berechnen.
-
Die
Chance, dass das System von Gleichungen gelöst werden kann, ist größer, wenn
die Anzahl der Gleichungen klein ist. Somit sollte die Anzahl von
Testantworten, die maskiert und die nicht maskiert werden sollten,
vorzugsweise so klein wie möglich
gehalten werden. Aus diesem Grund ist es von Vorteil, Steuersignale
mask_all und mask_enable zu haben, da diese es zulassen, vollständige Antwortvektoren
zu maskieren oder nicht zu maskieren, und die entsprechenden Gleichungen
nicht gelöst
werden müssen.
Auf ähnliche
Weise ist es von Vorteil, die nicht-wesentlichen Antworten, an denen
kein Zielfehlereffekt beobachtet werden kann, nicht zu betrachten.
Diese nicht-wesentlichen Antworten können dem Gleichungssystem später hinzugefügt werden,
nachdem alle wesentlichen Antworten hinzugefügt wurden, solange das System
von Gleichungen immer noch lösbar
ist.
-
Die
vorgeschlagene XML 18, wie sie in dieser Erfindung beschrieben
wurde, schafft eine effektive, flexible und billige Lösung zum
Maskieren von X-Antworten.
Die XML 18 erlaubt eine Reduzierung von Maskierungsdaten,
die während
der Testmustererzeugung in der ATPG erzeugt und in der ATE gespeichert
werden müssen,
und sie reduziert außerdem
die Bandbreitenerfordernisse zum Transportieren der Maskierungsdaten von
der ATE zur IC 10.
-
Die
XML 18 kann eine große
Anzahl von verschiedenen Masken erzeugen, die von der ATE gesteuert werden.
Die Masken und die entsprechenden Steuersignale zum Steuern der
XML 18 können
während
der Testmustererzeugung in der ATPG berechnet werden. Die XML 18 stützt sich
auf ein dynamisches Wiedereinschreiben (reseeding) des Startmusters
in das LFSR 26, wobei der Zustand des LFSR 26 in
jedem Taktzyklus partiell vom ATE aktualisiert wird. Dieses schafft
einen Weg, die Steuerdaten der XML 18 zu komprimieren.
Für die
zu prüfende
Schaltung 14 mit n Abtastketten sind nur q Steuer-Bits
pro Taktzyklus erforderlich zum Wiedereinschreiben (reseeding) des
Startmusters in das LFSR 26, wobei q < n ist. Das LFSR 26, zusammen
mit dem optionalen Phasenschieber mit der Gewichtungslogik 30,
expandiert die q Eingänge
zu einer n-Bit-Maske.
-
Die
zusätzliche
Steuerlogik erlaubt es, auf einfache Weise alle Abtastketten zu
maskieren oder das Maskieren pro Taktzyklus zu verhindern.
-
Die
Hardware des XML 18 ist einfach und erfordert nur eine
kleine Silizium-Fläche, wenn
sie auf einer IC 10 implementiert wird. Die XML 18 kann
auch teilweise auf dem Chip und teilweise außerhalb des Chips implementiert
werden. Die Anzahl von Steuersignalen zur Steuerung des Zustandes
des LFSR 26, die Größe des LFSR 26,
die Größe des Phasenschiebers
und der Gewichtungslogik 30, und auch die Anzahl der sich
auf mask_all und mask_enable beziehenden Steuersignale können für jedes
Design unterschiedlich konfiguriert werden, abhängig von dem Profil der erwarteten
X-Antworten.
-
Es
wird bemerkt, dass die vorstehend beschriebenen Ausführungsformen
die Erfindung erläutern
und nicht beschränken,
und der Fachmann wird in der Lage sein, viele alternative Ausführungsformen
zu entwerten, ohne sich von dem Inhalt der Erfindung zu entfernen,
wie sie in den beigefügten
Ansprüchen
definiert ist. Die Erfindung kann durch Hardware mit verschiedenen
Elementen und durch einen geeignet programmierten Computer implementiert
werden. In einem Anspruch, der verschiedene Mittel aufzählt, können verschiedene dieser
Mittel durch ein und dasselbe Teil dieser Hardware erfüllt werden.