-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft ein ereignsgestütztes Prüfsystem zum Prüfen von
Halbleiterbausteinen und insbesondere ein ereignisgestütztes Prüfsystem,
das Scan-Vektoren zum Prüfen
eines Halbleiterbausteins des Scan-Entwurfs erzeugen kann, ohne
viel Scan-Speicher zu erfordern.
-
DE 101 11 030 A1 betrifft
eine Vorrichtung und ein Verfahren zur Einfügung einer Verzögerungszeit
bei einem ereignisgestützten
Prüfsystem.
Die Vorrichtung weist einen Ereignisspeicher zur Speicherung von
Zeitsteuerungsdaten und Ereignistypdaten für jedes Ereignis auf, wobei
die Zeitsteuerungsdaten eines gegenwärtigen Ereignisses durch eine Verzögerungszeit
gegenüber
einem hierzu unmittelbar vorausgehenden Ereignis unter Verwendung
einer festgelegten Anzahl von Datenbits wiedergegeben werden, und
Mittel, die ein Einfügen
einer Verzögerungszeit
in die Zeitsteuerungsdaten eines spezifizierten Ereignisses in einer
solchen Weise ermöglichen,
dass eine Gesamtverzögerungszeit
des gegenwärtigen
Ereignisses erzielt wird, die länger
ist als die Gesamtverzögerungszeit,
die sich durch die festgesetzte Anzahl von Datenbits im Ereignisspeicher ausdrücken lässt.
-
US 5 212 443 A offenbart
ein automatisches Testsystem, das für jeden Anschluss des Prüflings eine
eigene lokale Ablaufsteuerung vorsieht. Diese Ablaufsteuerung „local
sequencer" enthält einen
Ereignisfolgespeicher, in dem Ereigniszeiten und Ereignistypen gespeichert
sind.
-
IEEE
Standard Test Access Port and Boundary-Scan Architecture (IEEE Standard 1149.1-1990) spezifiziert
den Boundary-Scan-Test.
-
Allgemeiner
Stand der Technik
-
Beim
Prüfen
von Halbleiterbausteinen wie zum Beispiel ICs und LSIs (Hochintegrierte
Schaltungen) durch ein Halbleiter-Prüfsystem, wie zum Beispiel einen
IC-Tester, werden einem zu prüfenden Halbleiter-IC-Baustein
Testsignale oder Testmuster zugeführt, die von einem IC-Tester
an seinen entsprechenden Anschlüssen
mit vorbestimmter Prüf-Zeitsteuerung
erzeugt werden. Der IC-Tester empfängt Ausgangssignale aus dem
geprüften IC-Baustein
als Reaktion auf die Testsignale. Die Ausgangssignale werden mit
Strobe-Signalen mit vorbestimmter Zeitsteuerung abgetastet, um mit
erwarteten Daten verglichen zu werden, um zu bestimmen, ob der IC-Baustein
korrekt arbeitet oder nicht.
-
Zur
Verbesserung der Testeffizienz ist der Scan-Entwurf einer der Ansätze, die
beim Entwurf von integrierten Schaltungen (zur Prüfung) etabliert werden.
Die vorliegende Erfindung betrifft ein ereignisgestütztes Prüfsystem
zum Prüfen
von IC-Bausteinen mit oder ohne einem solchen Scan-Entwurf. Bevor
weitere Einzelheiten der relevanten Probleme in einem herkömmlichen
Halbleiter-Prüfsystem
zum Erzeugen von Scan-Vektoren für
die geprüften IC-Bausteine
mit Scan-Entwurf besprochen werden, soll im folgenden kurz ein Beispiel
für Testsignale
und die zugeordnete Schaltungsstruktur in dem Halbleiter-Prüfsystem
beschrieben werden.
-
Traditionell
wird die Zeitsteuerung der Testsignale und Strobe-Signale in bezug
auf eine Tester-Rate oder einen Tester-Zyklus des Halbleiter-Prüfsystems
definiert. Ein solches Prüfsystem wird
manchmal als auf Zyklen basierendes (oder zyklisiertes) Prüfsystem
bezeichnet. Eine andere Art von Prüfsystem wird als ereignisgestütztes Prüfsystem
bezeichnet, wobei die gewünschten
Testsignale und Strobe-Signale durch Ereignisdaten aus einem Ereignisspeicher
direkt anschlußweise
erzeugt werden. Die vorliegende Erfindung betrifft ein solches ereignisgestütztes Halbleiter-Prüfsystem.
-
In
einem ereignisgestützten
Prüfsystem
wird der Begriff von Ereignissen verwendet, bei denen es sich um
jedwede Änderungen
des logischen Zustands in den Signalen handelt, die zum Prüfen eines zu
prüfenden
Halbleiterbausteins verwendet werden sollen. Solche Änderungen
sind zum Beispiel ansteigende und fallende Flanken von Testsignalen
oder Zeitlageflanken von Strobe-Signalen. Die Zeitsteuerung von
Ereignissen wird mit Bezug auf eine Zeitlänge auf einem Zeitbezugspunkt
definiert. Ein solcher Zeitbezugspunkt ist in der Regel eine Zeitsteuerung des
vorherigen (letzten) Ereignisses. Als Alternative ist ein solcher
Zeitbezugspunkt eine feste Startzeit, die allen Ereignissen gemein
ist.
-
In
einem ereignisgestützten
Prüfsystem
oder in einem Ereignistester kann die Beschreibung der Zeitlagedaten
drastisch vereinfacht werden, da die Zeitlagedaten in einem Zeitlagespeicher
(Ereignisspeicher) keine komplizierten Informationen bezüglich Signalform,
Vektorverzögerung
usw. relativ zu jedem einzelnen Prüfzyklus enthalten müssen. Außerdem ist
im allgemeinen eine große
Speicherkapazität zum
Speichern der Zeitlagedaten in dem Ereignisspeicher notwendig.
-
In
einem ereignisgestützten
Prüfsystem
werden die Zeitlage-(Ereignis-)Daten für jedes Ereignis, das in einem
Ereignisspeicher gespeichert ist, zum Beispiel durch eine Zeitdifferenz
zwischen dem aktuellen Ereignis und dem letzten Ereignis ausgedrückt. Zur
Erzeugung hochauflösender
Zeitsteuerungen wird die Zeitlänge
(der Verzögerungswert)
zwischen den Ereignissen definiert durch eine Kombination eines
ganzzahligen Vielfachen eines Bezugstaktzyklus (ganzzahliger Teil
oder Ereigniszählwert)
und eines Teils des Bezugstaktzyklus (Nachkomma- oder Ereignisfeinwert). Eine Zeitlagebeziehung
zwischen dem Ereigniszählwert
und dem Ereignisfeinwert ist in den Impulsdiagrammen von 3A–3E gezeigt.
In diesem Beispiel weist ein Bezugstakt (Haupttakt oder Systemtakt)
von 3A einen Taktzyklus
T auf (der nachfolgend auch als „Periode" bezeichnet wird). Das Ereignis 0, das
Ereignis 1 und das Ereignis 2 hängen
bezüglich
der Zeitsteuerung wie in 3C gezeigt
miteinander zusammen.
-
Um
Ereignis 1 mit Bezug auf Ereignis 0 zu beschreiben, wird in einem
Ereignisspeicher eine Zeitdifferenz (Verzögerung) ΔV1 zwischen
den beiden Ereignissen definiert. Die Zeitsteuerung von Ereignis
2 wird durch eine Zeitdifferenz (Verzögerung) ΔV2 von
Ereignis 1 definiert. Ähnlich
wird die Zeitsteuerung des Ereignisses 3 in 3E durch
eine Zeitdifferenz (Verzögerung) ΔV3 von Ereignis 3 definiert. In dem Ereignisprüfsystem
werden die Zeitlagedaten in dem Ereignisspeicher herausgelesen und bis
zu allen vorherigen Ereignissen aufsummiert, um eine endgültige Zeitsteuerung
des aktuellen Ereignisses zu erzeugen.
-
Um
in dem Beispiel von 3C das Ereignis 1
zu erzeugen, wird deshalb die Zeitlagebeziehung von 3B verwendet,
in der N1T den Ereigniszählwert bezeichnet, der N1 mal die Bezugstaktperiode T beträgt, und Δ1T
bedeutet den Ereignisfeinwert, der ein Bruchteil der Bezugstaktperiode
T ist. Um das Ereignis 3 in 3E mit
Bezug auf das Ereignis 0 zu erzeugen, werden ähnlich die Zeitlagedaten für alle vorherigen
Ereignisse aufsummiert, um eine Gesamt-Zeitdifferenz zu erzeugen, die durch
N3T + Δ3T ausgedrückt wird, wobei N3T
den Ereigniszählwert bedeutet,
der N3 mal die Bezugstaktperiode T beträgt, und Δ3T
den Ereignisfeinwert bedeutet, der ein Bruchteil der Bezugstaktperiode
T ist.
-
Bei
der eigentlichen Bausteinprüfung ändert sich
möglicherweise
ein Testsignal für
einen bestimmten Anschluß des
geprüften
Bausteins eine lange Zeit lang nicht, wie zum Beispiel für mehrere hundert
Millisekunden, während
sich Testsignale für die
meisten anderen Anschlüsse
mit viel höheren
Raten ändern,
wie zum Beispiel mehrere zehn oder hundert Nanosekunden. Das heißt, daß die Zeitlänge zwischen
den beiden benachbarten Ereignissen in einer sehr großen Vielfalt
liegen kann, so daß zur
Beschreibung der maximal möglichen
Zeitlänge
große Datenstücke erforderlich
sind. Da ein Halbleiter-Prüfsystem
ein großes
System mit zum Beispiel mehreren hundert Testkanälen (Anschlüssen) ist, wobei jeder Testkanal
einen Ereignisspeicher enthält,
ist es erwünscht,
die Kapazität
des Ereignisspeichers möglichst
gering zu halten, um die Gesamtkosten des Prüfsystems zu verringern.
-
Eine
solche Speicherreduktion ist besonders wichtig beim Speichern von
Prüfvektoren
zum Prüfen von
IC-Bausteinen mit Scan-Entwurf. Der Scan-Entwurf ist eine etablierte
Methodik beim IC-Entwurf, damit der IC-Baustein leicht prüfbar wird
(Entwurf zur Prüfung).
Bei der vollen Scan-Methodik werden in der Schaltung anstelle gewöhnlicher
D-Flipflops oder J-K-Flipflops Scan-Flipflops verwendet. Das Scan-Flipflop
enthält
einen Multiplexer, durch den sie während der Prüfung zu
einem Schieberegistermodus verschaltet werden können.
-
6 zeigt ein Beispiel für eine einfache Scan-Struktur
in einem IC-Baustein, in dem das Scan-Entwurfskonzept integriert
ist. Bei diesem Beispiel sieht man, daß zwei Scan-Flipflops 132 und
ein Schalter SW (Multiplexer) und ein Paar von Scan-Flipflops 134 und
ein Schalter SW (Multiplexer) eine kombinatorische Logik in dem
geprüften
Halbleiterbaustein prüfen.
Diese einfache Struktur im Scan-Entwurf
ist in der Technik bekannt, und eine ausführlichere Beschreibung findet
sich in „Digital Hardware
Testing", Rochit
Rajsuman, Artech House, 1992, S. 197-238. Der Scan-Entwurf enthält die folgenden
allgemeinen Prüfschritte:
- (1) Verbinden von Flipflops zu einem Schieberegister
(unter Verwendung des Testmodus) und serielles Einschieben (Einscannen)
eines Prüfvektors.
- (2) Umschalten zum Normalbetriebsmodus und somit Anwenden des
Werts in Flipflops (Prüfvektor)
auf die Schaltung und Erfassen der Antwort in den Flipflops.
- (3) Wieder Zurückschalten
in den Testmodus und serielles Herausschieben (Herausscannen) der Antwort
zur Bewertung.
-
Die
Anzahl von Scan-Vektoren ist im allgemeinen relativ groß, wie zum
Beispiel 16 Millionen bis zu 128 Millionen. In einem ereignisgestützten Prüfsystem
wie dem oben erwähnten
werden die Prüfvektoren
auf der Grundlage einer Werteänderung (Ereignis)
und des Zeitpunkts des Auftretens des Ereignisses gespeichert. Diese
Zeitinformationen werden im allgemeinen mit Bezug auf eine Bezugszeit definiert,
wie zum Beispiel die Zeit des Einschaltens oder die Taktstartzeit,
oder mit Bezug auf das vorherige Ereignis (wie etwa in 3A–3E gezeigt).
Um eine große
Anzahl von Scan-Vektoren (wie zum Beispiel 128 Millionen Vektoren)
in diesem Format zu speichern, ist extrem viel physischer Speicher
erforderlich.
-
Kurze Darstellung
der Erfindung
-
Deshalb
besteht eine Aufgabe der vorliegenden Erfindung darin, ein Scan-Vektor-Erzeugungsverfahren
und eine Scan-Vektor-Erzeugungsvorrichtung in einem ereignisgestützten Prüfsystem
zum Prüfen
eines IC-Bausteins mit einer Scan-Architektur unter Verwendung eines Ereignisspeichers
kleiner Kapazität
bereitzustellen.
-
Bei
der vorliegenden Erfindung kann das ereignisgestützte Prüfsystem Scan-Vektoren zum Prüfen eines
Halbleiterbausteins mit Scan-Entwurf erzeugen, ohne viel Scan-Speicher
zu erfordern. Das ereignisgestützte
Prüfsystem
enthält folgendes:
einen Ereignisspeicher zum Speichern von Zeitlagedaten und Ereignistypdaten
jedes Ereignisses, wobei die Zeitlagedaten durch N Datenbit zum
Definieren eines Prüfvektors
ausgedrückt
werden, einen Ereignisgenerator zum Erzeugen eines Ereignisses unter Verwendung
der Zeitlagedaten und der Ereignistypdaten aus dem Ereignisspeicher,
und eine Modusänderungsschaltung,
die zwischen dem Ereignisspeicher und dem Ereignisgenerator vorgesehen
ist, um Signalwege zwischen einem Normal-Modus zum Erzeugen der
Prüfvektoren
und einem Scan-Modus zum Erzeugen der Scan-Vektoren durch Erkennen des Scan-Modus,
wenn die Ereignistypdaten aus dem Ereignisspeicher ein vorbestimmtes
Wort anzeigen, zu wechseln. In dem Prüfsystem definiert jedes Bit
der N Datenbit in dem Ereignisspeicher jeden Scan-Vektor, und N
Datenbit werden auf serielle Weise dem Ereignisgenerator zugeführt, so
daß bei
jedem Zugriff auf den Ereignisspeicher 2N Scan-Vektoren
erzeugt werden.
-
Gemäß der vorliegenden
Erfindung ist das ereignisgestützte
System in der Lage, die Scan-Vektoren unter Verwendung von N-Bit-Daten
in paralleler Form aus dem Ereignisspeicher zu erzeugen und setzt
die N-Bit-Daten in serielle Daten von 2N-Bit
um, so daß unter
Verwendung von einem Prüfvektor
entsprechenden Speicherstellen 2N Scan-Vektoren
erzeugt werden.
-
In
dem ereignisgestützten
Prüfsystem
der vorliegenden Erfindung bestehen die Zeitlagedaten in dem Ereignisspeicher
aus Verzögerungszähldaten,
die mit einem ganzzahligen Vielfachen eine Bezugstaktperiode (Vorkommateil-Daten)
und Verzögerungsfeinwertdaten
gebildet werden, die mit einem Bruchteil der Bezugstaktperiode (Nachkommateil-Daten)
gebildet werden. Weiterhin werden die Zeitlagedaten zur Erzeugung
der Scan-Vektoren in einem Register gespeichert, das getrennt von
dem Ereignisspeicher vorgesehe ist, und sie werden im Scan-Modus
dem Ereignisgenerator zugeführt.
-
Die
Modusänderungsschaltung
besteht aus einem parallel-zu-seriell-Umsetzer zum Umsetzen der
N Datenbit aus dem Ereignisspeicher bei jedem Zugriff in serielle
2N-Bit-Daten und einem Multiplexer zum Wählen der
seriellen 2N-Bit-Daten aus dem parallel-zu-seriell-Umsetzer,
der außerdem
die seriellen 2N-Bit-Daten während des Scan-Modus dem Ereignisgenerator
zuführt,
um die Scan-Vektoren
zu erzeugen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockschaltbild einer einfachen Struktur eines ereignisgestützten Prüfsystems,
auf das die Scan-Unterstützung
der vorliegenden Erfindung angewandt wird.
-
2 ist
ein Blockschaltbild einer ausführlicheren
Struktur bezüglich
der Anschlußelektronik von 1 und
zugeordneter Ansteuerereignisse (Testsignal) und eines Abtastereignisses
(Strobe-Signal) aus dem Ereignisgenerator.
-
3A–3E sind Impulsdiagramme der Zeitlagebeziehungen
zwischen verschiedenen Ereignissen, einschließlich des Ansteuerereignisses
und des Abtastereignisses, in bezug auf einen Bezugstakt zur Demonstration
des Prinzips einer Ereignis-Zeitlagebeziehung.
-
4 ist
ein Impulsdiagramm von Zeitlagebeziehungen zwischen verschiedenen
Ereignissen auf der Grundlage einer Zeitdifferenz (Delta-Zeit) zwischen
zwei benachbarten Ereignissen.
-
5 ist
ein Diagramm eines Beispiels für Datenspeicherung
in einem Ereignisspeicher in dem ereignisgestützten Prüfsystem, das die Reihe von
in 4 gezeigten Verzögerungen definiert.
-
6 ist
ein Blockschaltbild eines Beispiels für die grundlegende Schaltungsstruktur
in einem IC-Baustein, in den ein Scan-Entwurfskonzept integriert
ist.
-
7A–7C sind
Diagramme eines Beispiels für
die Datenspeicherung in einem Ereignisspeicher in dem ereignisgestützten Prüfsystem
der vorliegenden Erfindung zum Speichern von Scan-Vektoren.
-
8 ist
ein Blockschaltbild eines Beispiels für die Schaltungsanordnung zur
Ermöglichung
einer umschaltbaren Erzeugung entweder von normalen Prüfvektoren
oder von Scan-Vektoren durch das ereignisgestützte Prüfsystem der vorliegenden Erfindung.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsform
-
Um
ein besseres Verständnis
der vorliegenden Erfindung zu erleichtern, wird im folgenden eine kurze
Beschreibung bezüglich
der prinzipiellen Struktur eines ereignisgestützten Prüfsystems und eines Verfahrens
zur Datenspeicherung in einem Ereignisspeicher in dem Prüfsystem
zur Erzeugung von Prüfvektoren
gegeben. In dem Kontext der vorliegenden Erfindung bedeutet der
Begriff „Prüfvektor" ein Testmuster (z.B.
Ansteuerereignisse und Strobe-Ereignisse) zum Prüfen eines gewöhnlichen
IC-Bausteins, und der Begriff „Scan-Vektor" bedeutet ein Testmuster
zum Prüfen
eines IC-Bausteins mit Scan-Entwurf.
-
1 ist
ein Blockschaltbild eines Beispiels für die prinzipielle Struktur
in einem ereignisgestützten
Prüfsystem.
Das ereignisgestützte
Prüfsystem enthält einen
Hostcomputer 12 und eine Busschnittstelle 13,
die beide mit einem Systembus 14, einem internen Bus 15,
einer Adressensteuerlogik 18, einem Ausfallspeicher 17,
einem Ereignisspeicher 20, einem Ereignisdecodierer 23,
einer Ereigniszeitlageeinheit 21, einem Ereignisgenerator 24 und
einer Anschlußelektronik 26 verbunden
sind. Das ereignisgestützte
Prüfsystem
soll einen zu prüfenden
Halbleiterbaustein (DUT) 28 bewerten, der mit der Anschlußelektronik 26 verbunden
ist.
-
Ein
Beispiel für
den Hostcomputer 12 ist eine Workstation, die ein UNIX-Betriebssystem enthält. Der
Hostcomputer 12 wirkt als eine Benutzerschnittstelle, damit
ein Benutzer die Start- und Stopoperation der Prüfung anweisen kann, um ein
Testprogramm oder andere Testbedingungen zu laden, oder um eine
Testergebnisanalyse in dem Hostcomputer durchzuführen. Der Hostcomputer 12 weist
durch den Systembus 14 und die Busschnittstelle 13 Schnittstellen
mit einem Hardware-Prüfsystem
auf. Obwohl es nicht gezeigt ist, ist der Hostcomputer 12 vorzugsweise
mit einem Kommunikationsnetz verbunden, um Prüfinformationen aus anderen
Testsystemen oder Computernetzen zu senden oder zu empfangen.
-
Der
interne Bus 15 ist ein Bus in dem Hardware-Prüfsystem
und ist gewöhnlich
mit dem größten Teil
der Funktionsblöcke
verbunden, wie zum Beispiel der Adressensteuerlogik 18,
dem Ausfallspeicher 17, der Ereigniszeitlageeinheit 21,
dem Ereignisdecodierer 23 und dem Ereignisgenerator 24.
Ein Beispiel für
die Adressensteuerlogik 18 ist ein Tester-Prozessor, der
exklusiv für
das Hardware-Prüfsystem
ist und einem Benutzer nicht zugänglich
ist. Die Adressensteuerlogik 18 liefert den anderen Funktionsblöcken in
dem Prüfsystem
Befehle auf der Grundlage des Prüfprogramms
und der Bedingungen aus dem Hostcomputer 12. Der Ausfallspeicher 17 speichert
Testergebnisse, wie zum Beispiel Ausfallinformationen des DUT 28 in
den durch die Adressensteuerlogik 18 definierten Adressen.
Die im Ausfallspeicher 17 gespeicherten Informationen werden
in der Ausfallanalysestufe des geprüften Bausteins verwendet.
-
Die
Adressensteuerlogik 18 führt dem Ereignisspeicher 20 wie
in 1 gezeigt Adressendaten zu. In einem tatsächlichen
Prüfsystem
werden mehrere Ereignisspeicher bereitgestellt, die jeweils einem Prüfanschluß des Prüfsystems
entsprechen können. Der
Ereignisspeicher speichert die Zeitlagedaten für jedes Ereignis der Testsignale
und Strobe-Signale. Der Ereignisspeicher 20 speichert die
Zeitlagedaten, die aus einem ganzzahligen Vielfachen des Bezugstakts
(Verzögerungszählwert)
und einem Bruchteil des Bezugstakts (Verzögerungsfeinwert) bestehen, wie
in 5 gezeigt. Der Ereignisspeicher 20 speichert
außerdem
Ereignistypdaten (Ansteuerung, Strobe usw.), die dem Ereignisdecodierer 24 zugeführt werden.
-
Die
Ereigniszeitlageeinheit 21 soll Daten erzeugen, die die
Gesamtzeitsteuerung jedes Ereignisses auf der Grundlage der Zeitlagedaten
aus dem Ereignisspeicher 20 zeigen. Im Prinzip werden solche Gesamt-Zeitlagedaten
durch Summieren der Verzögerungszählwertdaten
und der Verzögerungsfeinwertdaten
erzeugt. Während
des Vorgangs des Summierens der Zeitlagedaten wird in der Ereigniszeitlageeinheit 21 außerdem eine Übertragsoperation
der Nachkommateil-Daten (für
die Verzögerungszählwertdaten)
durchgeführt.
Weiterhin können
während des
Vorgangs des Erzeugens der Gesamtzeitsteuerung Zeitlagedaten durch
einen Skalierungsfaktor modifiziert werden, so daß die Gesamtzeitsteuerung entsprechend
skaliert werden kann.
-
Der
Ereignisdecodierer 23 decodiert die Ereignistypdaten, die
einen Ereignistyp angeben, und führt
die Ereignistypinformationen dem Ereignisgenerator 24 zu.
Der Ereignisgenerator 24 soll die Ereignisse tatsächlich auf
der Grundlage der Gesamt-Zeitlagedaten
aus der Ereigniszeitlageeinheit 21 und des Ereignistyps
aus dem Ereignisdecodierer 23 erzeugen. Die so erzeugten
Ereignisse (Testsignale und Strobe-Signale) werden durch die Anschlußelektronik 26 dem
DUT 28 zugeführt.
Im Prinzip besteht die Anschlußelektronik 26 aus
einer großen
Anzahl von Komponenten, die jeweils einen Treiber und einen Komparator
enthalten, sowie aus Schaltern, um Eingangs- und Ausgangsbeziehungen
mit Bezug auf den DUT 28 herzustellen.
-
2 ist
ein Blockschaltbild einer ausführlicheren
Struktur in der Anschlußelektronik 26 mit
einem Treiber 35 und einem Analog-Komparator 36. Der
Ereignisgenerator 24 erzeugt Ansteuerereignisse, die einem
Eingangsanschluß des
DUT 28 durch den Treiber 35 als ein Testsignal
zugeführt
werden. Der Ereignisgenerator 24 erzeugt weiterhin ein
Abtastereignis, das als ein Strobe-Signal dem Analog-Komparator 36 zugeführt wird,
um ein Ausgangssignal des DUT 28 abzutasten. Das Ausgangssignal des
Analog-Komparators 36 wird durch einen Musterkomparator 38 mit
den erwarteten Daten aus dem Ereignisgenerator 24 verglichen.
Wenn ein Unterschied besteht, wird ein Ausfallsignal zu dem Ausfallspeicher 17 in 1 gesendet.
-
3C, 3D bzw. 3E zeigen ein Beispiel für Signalformen
der Ansteuerereignisse (Testmuster), das Ausgangssignal aus dem
DUT und das Abtastereignis (Strobe-Signal). Beim Anlegen der Ansteuerereignisse
von 3C an den DUT 28 durch
den Treiber 35 erzeugt der DUT 28 als Reaktion
darauf das in 3D gezeigte Ausgangssignal,
das durch die durch das Abtastereignis von 3E bestimmte Zeitsteuerung
abgetastet wird. Wie in 3C gezeigt,
bestimmen die Ansteuerereignisse die Zeitsteuerung der ansteigenden
und fallenden Flanken des Testmusters. Im Gegensatz dazu (siehe 3E) bestimmt das Abtastereignis die Zeitsteuerung
des Strobe-Punkts, d.h. ein Strobe-Signal kann nur durch ein einziges
Ereignis erzeugt werden, wenn ein solches Ereignis als Abtastereignis
angezeigt wird. Der Grund dafür
besteht darin, daß ein
Strobe-Signal eine sehr schmale Impulsbreite aufweist, so daß es praktisch
nicht möglich
ist, ein Strobe-Signal
durch Definieren sowohl seiner ansteigenden als auch fallenden Flanke
zu erzeugen.
-
4 ist
ein Impulsdiagramm der Zeitlagebeziehungen zwischen verschiedenen
Ereignissen auf der Grundlage der Zeitdifferenz (Delta-Zeit) zwischen
zwei benachbarten Ereignissen. Wie oben mit Bezug auf 3A–3E erwähnt,
wird die Zeitlänge (der
Verzögerungswert)
zwischen den Ereignissen definiert durch eine Kombination eines
ganzzahligen Vielfachen einer Bezugstaktperiode (Verzögerungszählwert oder
ganzzahliger Teil) und eines Bruchteils der Bezugstaktperiode (Verzögerungsfeinwert
oder Nachkommateil).
-
In
dem Beispiel von 4 werden die Ereignisse 0-7
in bezug auf den Bezugstakt ausgedrückt, der ein Zeitintervall
T = 1 aufweist. Zum Beispiel kann eine Delta-(Verzögerungs-)Zeit ΔV0 für
das Ereignis 0 0,75 betragen (Verzögerungszählwert „0" und Verzögerungsfeinwert „0,75"), und eine Delta-Zeit ΔV1 für
Ereignis 1 kann 1,50 betragen (Verzögerungszählwert „1" und Verzögerungsfeinwert „0,50"). In dieser Situation
beträgt
die Gesamtverzögerung
von Ereignis 1 2,25, wobei eine Logik in dem Prüfsystem zwei Ereignistakte „ 2,0" zählt und
die Summe des Verzögerungsfeinwerts „0,25" als übrige Bruch-Verzögerung berechnet.
-
5 ist
ein Diagramm eines Beispiels für die
Datenspeicherung in einem Ereignisspeicher in dem ereignisgestützten Prüfsystem,
das die in 4 gezeigte Reihe von Verzögerungen
definiert. Die Verzögerungszeit ΔVn (ΔV0, ΔV1, ΔV2 ...) wird durch eine Kombination des Verzögerungszählwerts
Cn (C1, C2, C3, ...) und des Verzögerungsfeinwerts Vn (V1, V2,
V3, ...) ausgedrückt.
Der Verzögerungszählwert ist
die Anzahl von Bezugstakten von dem Bezugspunkt der Zeit, d.h. die
Grob-Verzögerung.
Der Verzögerungsfeinwert
ist die Zahl der Feinauflösung, d.h.
Fein-Verzögerung,
von zum Beispiel 1/128 der Bezugstaktperiode, um die genaue Zeit
des Ereignisses auszudrücken.
Zum Beispiel wird für
den Bezugstakt von 8 Nanosekunden durch den Verzögerungsfeinwert die feinste
Auflösung
von 62,5 Picosekunden erreicht. Das in 5 als ein
Ereignistyp aufgelistete Feld speichert Ereignistypdaten, die zur
Erzeugung verschiedener Ereignistypen während des Prüfens verwendet
werden.
-
In
diesem Beispiel wird jedem Feld die in 5 gezeigte
Anzahl von Bit zugewiesen. Nämlich enthält der Verzögerungszählwert (Grob-Verzögerung)
8-Bit, der Verzögerungsfeinwert
(Fein-Verzögerung)
7-Bit und der Ereignistyp 3-Bit.
Diese Architektur ermöglicht
beträchtliche
Flexibilität
bei Ereigniserzeugungen. Dieselbe Architektur kann auch für die Scan-Vektorerzeugung ohne
zusätzliche
Softwareunterstützung
verwendet werden. Wie oben mit Bezug auf den allgemeinen Stand der
Technik bezüglich der
vorliegenden Erfindung beschrieben wurde, sind Scan-Vektoren jedoch
in der Regel vielmals länger als
die funktionalen Prüfvektoren
und erfordern somit zusätzlichen
physischen Speicher zu ihrer Speicherung.
-
Eine
Möglichkeit
besteht darin, für
ausgesuchte Scan-Anschlüsse
(mit Scan-Eingängen des geprüften Bausteins
verbundene Prüfanschlüsse) eine
große
Menge Ereignisspeicher zu verwenden. Diese Lösung ist jedoch sehr kostspielig
und beseitigt die Flexibilität
der Ereignisprüfsystemarchitektur,
da der eigene Speicher nur einigen wenigen ausgewählten Prüfanschlüssen verfügbar ist.
Wenn ein Ereignisdaten-(Prüf-)Anschluß zum Beispiel
16M Ereignisse aufweist, würde
dies heißen,
daß er 16M-Scan-Vektor
unterstützt.
Um 128M-Scan-Vektor zu unterstützen,
muß der
Prüfanschluß einen
Ereignisspeicher von 16M auf 128M Ereignisse aufrüsten. Außerdem ist
der Prüfanschluß eigens
nur für
die Scan-Prüfung bestimmt
und kann nicht für
andere Prüfzwecke
verwendet werden.
-
In
der vorliegenden Erfindung geben die Erfinder ein unterschiedliches
Verfahren zum Strukturieren von Wörtern in dem Ereignisspeicher
zur Erzeugung der Scan-Vektoren
an. 7A zeigt eine solche Wortstruktur in dem Ereignisspeicher
für Scan-Vektoren.
In dieser Struktur ist das 3-Bit-Feld (Ereignistyp in 5)
für die
Identifizierung des Ereignistyps reserviert. In diesem Beispiel
(7B) ist dieses reservierte Feld als „111" dargestellt, wodurch ein
Ereignis-Scan-Modus als Ereignistyp angezeigt wird. Das heißt, daß, wenn
die niedrigstwertigen Bit des Ereignisworts den Wert „111" zeigen, alle anderen
Bit für
die Scan-Vektor-Unterstützung verwendet werden
können,
ohne daß Verwirrung
bezüglich
anderer Ereignistypen oder des Verzögerungszählwerts/Verzögerungsfeinwerts
entsteht. In 7C sind andere Werte in dem
3-Bit-Feld zur Angabe der Ereignistypen gezeigt.
-
Für das in 7A und 7B gezeigte
Beispiel kann eine Ereignisspeicherstelle „Scan-Ereignis" ein 15 Bit langes
Feld enthalten, um insgesamt 215 Vektoren
zu identifizieren. Dies stellt eine drastische Verbesserung gegenüber einem
(1) Scan-Vektor
dar, der in der Struktur von 5 gespeichert wird.
-
Die
Zeitsteuerung zur Erzeugung des Scan-Ereignisses wird durch Zeitlagedaten
bestimmt, die in einem getrennten Zeitlageregister (siehe 8)
gespeichert sind. 8 ist ein Blockschaltbild einer
Hardwarestruktur (Modusänderungsschaltung),
die zwischen dem Ereignisspeicher 20 und dem Paar aus Ereignisdecodierer 23 und
Ereigniszeitlageeinheit 21 angeordnet ist. Der Hauptzweck der
zusätzlichen
Hardware besteht darin, die Signalwege zwischen dem Normal-Modus
(Prüfvektorerzeugung)
und dem Ereignis-Scan-Modus (Scan-Vektorerzeugung) umzuschalten. 8 stellt
im wesentlichen dar, daß durch
Einschluß einer
sehr kleinen Hardware und Umstrukturierung des Ereignisworts wie
in 7A und 7B gezeigt,
anstelle von einem (1) Scan-Vektor in der ursprünglichen Form von 5 215 Scan-Vektoren pro Ereigniswort gespeichert
werden können.
-
Die
zusätzliche
Hardware in 8 enthält einen parallel-zu-seriell-Umsetzer 152,
ein Scan-Zeitlageregister 154, einen Ereignis-Scan-Decodierer 156 und
Multiplexer 162 und 164. Wenn das Ereigniswort
aus dem Ereignisspeicher 20 den Wert zeigt, der einen Ereignis-Scan-Modus
anzeigt, wie zum Beispiel „111" in dem obigen Beispiel, ändert der
Ereignis-Scan-Decodierer 156 logische Zustände eines Auswahlsignals
für die
Multiplexer 162 und 164. Die Daten aus dem Ereignisspeicher 20 werden
durch den parallel-zu-seriell-Umsetzer 152 in serielle
Daten, d.h. Scan-Vektoren umgesetzt. Somit werden in dem Ereignis-Scan-Modus
die Scan-Vektoren durch den Multiplexer 162 und den Ereignisdecodierer 23 zu
dem Ereignisgenerator 24 transferiert. Die Zeitsteuerungen
der Scan-Vektoren werden durch die Zeitlagedaten gesteuert, die
in dem Scan-Zeitlageregister 154 gespeichert sind, die
durch den Multiplexer 164 der Ereigniszeitlageeinheit 21 zugeführt werden.
-
In
dem obigen Beispiel von 5 bis 8 wurde
ein 18-Bit-Wort verwendet, um das Ereigniswort darzustellen, in
dem ein 3-Bit-Feld verwendet wird, um den Ereignistyp anzugeben.
Es ist jedoch zu beachten, daß diese
Zahlen nur zur Veranschaulichung verwendet werden und jede beliebige
Größe des Ereignisworts
und der Felder gemäß der Erfindung
verwendet werden kann.
-
Wie
oben beschrieben wurde, besteht gemäß der vorliegenden Erfindung
der Hauptvorteil der vorliegenden Erfindung darin, daß 2N mal mehr Scan-Vektoren auf dem ereignisgestützten Prüfsystem
unterstützt
werden können,
ohne daß die
physische Größe des Ereignisspeichers
vergrößert wird, wobei
N die Anzahl von Bit ist, die in dem Ereigniswort zur Angabe der
Grob- und Fein-Ferzögerung
bestimmt sind. Die vorliegende Erfindung ermöglicht außerdem eine Scan-Unterstützung, die
in den normalen Ereignisprogrammfluß eingebettet ist, und erfordert
keinen eigenen Scan-Anschluß,
d.h. jeder Prüfanschluß kann ein
Scan-Anschluß sein.