-
ALLGEMEINER STAND DER TECHNIK
-
ERFINDUNGSGEBIET
-
Die
vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren
zum Erzeugen von Teststrukturdaten zum Testen eines Halbleiterbauelements,
und insbesondere eine Vorrichtung und ein Verfahren zum Erzeugen
von Teststrukturdaten zum Testen eines Haltleiterbauelements, wobei
ein Teststrukturprogramm kompiliert wird durch Vorhersagen einer
Datenoperation zum Erzeugen von Teststrukturdaten auf verschachtelte Weise,
wodurch eine Notwendigkeit entfällt,
dass ein Entwickler des Teststrukturprogramms die Datenoperation
während
eines Schreibens eines Quellcodes analysiert.
-
BESCHREIBUNG DES STANDS DER
TECHNIK
-
Ein
Prüfgerät zum Testen
eines Halbleiterbauelements testet, ob das Halbleiterbauelement
fehlerhaft ist. Das Prüfgerät zum Testen
des Halbleiterbauelements wird entsprechend einem Entwicklungszustand
eines Speicherbauelements, insbesondere eines DRAM, ausgelegt und
entwickelt, das die meisten der Speicherbauelemente aufnimmt, da
das Prüfgerät zum Testen
des Halbleiterbauelements hauptsächlich
zum Testen der Speicherbauelemente verwendet wird.
-
Die
Entwicklung des DRAM schreitet fort von einem EDO-(Extended Data Output)-DRAM,
SDRAM (Sychronous DRAM), Rambus-DRAM bis DDR-(Double Data Rate)-DRAM.
-
Um
das DRAM zu testen, werden für
das Prüfgerät hohe Geschwindigkeit
und hohe Genauigkeit erfordert, um einem Hochgeschwindigkeits-DRAM
zu entsprechen. Wenn die Kapazität
des Speichers erhöht wird,
nimmt auch die zum Testen des DRAMs erforderliche Zeit zu. Deshalb
muss auch die Testgeschwindigkeit erhöht werden. Zudem sollten Kosten
zum Testen des Speichers reduziert werden durch Verkörpern eines miniaturisierten
und wirtschaftlichen Prüfgeräts.
-
Von
dem Prüfgerät zum Testen
des Halbleiterbauelements wird insbesondere das Speicherprüfgerät in der
Regel zum Testen und Verifizieren einer Speicherkomponente oder
eines Speichermoduls in einer Form eines SIMM oder DIMM verwendet.
Das Prüfgerät detektiert
einen funktionalen Defekt des Speichermoduls oder der Speicherkomponente
vor seiner oder ihrer Installation in einem realen Computersystem.
-
Das
Prüfgerät wird in
ein Hardwarehalbleiterbauelementprüfgerät und ein in einer PC-Umgebung
ausgeführtes
Softwarediagnoseprogramm klassifiziert. Da das Softwarediagnoseprogramm
jedoch einen Zustand des Speichers diagnostiziert, wenn das Speichermodul
oder die Speicherkomponente in dem realen Computer installiert ist,
wird das Hardwarehalbleiterbauelementprüfgerät hauptsächlich während eines Halbleiterspeicherherstellungsprozeses
verwendet.
-
Das
Prüfgerät kann als
ein High-End-Prüfgerät, bezeichnet
als ein ATE (Automatic Test Equipment) ein Mittelbereichs-Speicherprüfgerät und ein
Low-End-Speicherprüfgerät klassifiziert
werden.
-
Das
ATE, das das High-End-Prüfgerät ist, wird
in der Regel verwendet, um einen Testprozess des Speicherbauelements
durchzuführen.
Das herkömmliche
ATE führt
Tests durch wie etwa einen Gleichstromtest, um zu testen, ob ein
Gleichstromparameter sich für
einen digitalen Betrieb einer Schaltung eignet, eine Übertragungslaufzeit
von Signalen und einen Wechselstromspielraum hinsichtlich einer
Einstellzeit und einer Haltezeit. Das ATE erzeugt auch eine Teststruktur
und eine Zeitsteuerung für
den Test. Die Herstellungskosten für das ATE sind jedoch hoch,
da das ATE unter Verwendung eines eigenen Geräts hergestellt wird, wie etwa eines
Mainframe mit erheblicher Größe und hohem
Preis.
-
1 ist
ein Blockdiagramm, das ein herkömmliches
Prüfgerät zum Testen
eines Halbleiterbauelements darstellt.
-
Wie
in 1 gezeigt, umfasst das herkömmliche Prüfgerät einen Strukturgenerator 110,
einen Zeitsteuergenerator 120, einen Formatcontroller 130,
einen Treiber 140, einen Ausgangsvergleicher 150 und
eine Testergebnisspeicherung 160. Zusätzlich zu diesen Komponenten
kann das herkömmliche
Prüfgerät einen Stromversorgungscontroller
für den
Gleichstromtest, eine Komponente zum Erzeugen eines Taktsignals,
eine Komponente zum Liefern eines Stroms für einen Betrieb eines DUT (Device
Under Test – zu
prüfendes
Bauelement) 180, eine Komponente zum Übermitteln von Teststrukturdaten
an das DUT 180 und Empfangen eines Testergebnisses von
dem DUT 180, eine Komponente zum Empfangen eines Teststrukturprogramms
von außerhalb
und eine Komponente zum übertragen
des Testergebnisses nach außerhalb
umfassen. Eine Beschreibung davon entfällt jedoch.
-
Der
Strukturgenerator 110 erzeugt die zum Testen des DUT 180 erforderlichen
Teststrukturdaten auf der Basis des Teststrukturprogramms. Beispielsweise
wird das Teststrukturprogramm so geschrieben, dass es eine Anweisung
enthält
zum Ausführen
verschiedener Operationen, um den Test durchzuführen. Der Strukturgenerator 110 erzeugt
die Teststrukturdaten durch Empfangen und Interpretieren des Teststrukturprogramms von
einer externen Speicherung, zum Beispiel. Zu den Teststrukturdaten
zählen
Daten wie etwa ein Befehl, Adresse und in das DUT 180 eingegebene
Daten. Außerdem
werden den erzeugten Teststrukturdaten entsprechende erwartete Daten
erzeugt.
-
Der
Zeitsteuergenerator 120 erzeugt eine Zeitsteuerflanke,
die eine Referenz zum Konvertieren der in dem Strukturgenerator 110 erzeugten
Teststrukturdaten in verschiedene Wellenformen ist. Die Zeitsteuerflanke
wird unter Verwendung mehrerer Takte für eine stetige Konvertierung
erzeugt.
-
Der
Formatcontroller 130 konvertiert die Teststrukturdaten
in eine gewünschte
Wellenform auf der Basis der Zeitsteuerflanke.
-
Der
Treiber 140 überträgt die konvertierte
Testwellenform an das DUT 180.
-
Der
Komparator 150 testet das DUT 180 durch Vergleichen
der von dem DUT 180 ausgegebenen Testausgangsdaten nach
Beendigung einer Operation des DUT 180 durch die an das
DUT 180 angelegte Testwellenform mit den in dem Strukturgenerator 110 erzeugten
erwarteten Daten.
-
Die
Testergebnisspeicherung 160 speichert ein Testergebnis
auf der Basis eines Ergebnisses des Komparators 150. Beispielsweise
wird eine Information über
ein fehlerhaftes DUT gespeichert.
-
Wie
oben beschrieben ist das herkömmliche
ATE ein sehr hochpreisiges Gerät.
Deshalb wird bevorzugt, dass ein Hersteller das hochpreisige ATE
effizient auslegt, um die Wettbewerbsfähigkeit durch Minimieren der
Herstellungskosten davon zu steigern. Für die effiziente Auslegung
des ATE sollte die Erzeugung der Teststruktur und der Zeitsteuerung
optimiert sein.
-
Insbesondere
sollten die Teststrukturdaten einer Operation des Halbleiterbauelements
zum Ausführen des Tests
an dem Halbleiterbauelement entsprechen. Der Strukturgenerator 110 jedoch,
der die Teststrukturdaten erzeugt, wird im allgemeinen unter Verwendung
eines programmierbaren Logikbauelements wie etwa eines bei niedriger
Geschwindigkeit arbeitenden FPGA verkörpert. Deshalb verwendet der
Strukturgenerator 110 mehrere Algorithmusstrukturgeneratoren
auf verschachtelte Weise, um die für das bei hoher Geschwindigkeit
arbeitende Halbleiterbauelement geeigneten Teststrukturdaten zu
erzeugen.
-
Eine
Strukturerzeugungsvorrichtung, die die mehreren Algorithmusstrukturgeneratoren
verwendet, ist aus dem am 26. November 1996 eingereichten und am
19. Juni 1999 von der Firma Ando Electric Co. Ltd. registrierten
koreanischen Patent Nr. 220201 mit
dem Titel "Pattern
Generating Circuit" und
dem am 14. Januar 1997 eingereichten und am 14. November 1999 von
der Firma Advantest Corporation registrierten
koreanischen Patent Nr. 242604 mit
dem Titel "Semiconductor
Device Tester" bekannt.
-
2 ist
ein Diagramm, das eine herkömmliche
Vorrichtung zum Erzeugen von Teststrukturdaten darstellt.
-
Unter
Bezugnahme auf 2 umfasst die herkömmliche
Vorrichtung zum Erzeugen der Teststrukturdaten einen Sequenzcontroller 210,
mehrere Algorithmusstrukturgeneratoren 220a bis 220d und
einen Multiplexer 230.
-
Der
Sequenzcontroller 210 holt eine Anweisung und überträgt einen
in der Anweisung enthaltenen Instruction-Pointer an jeden der mehreren
Algorithmusstrukturgeneratoren 220a bis 220d.
-
Jede
der mehreren Algorithmusstrukturgeneratoren 220a bis 220d führt eine
vorbestimmte Datenoperation auf der Basis des von dem Sequenzcontroller 210 übertragenen Instruction-Pointers
aus und gibt ein Ergebnis davon als Ausgangsdaten aus.
-
Die
Ausgangsdaten enthalten einen Befehl, eine Adresse und die Teststrukturdaten
darstellende Daten. Die Ausgangsdaten können auch den Teststrukturdaten
entsprechende erwartete Daten enthalten. Weil jeder der mehreren
Algorithmusstrukturgeneratoren 220a bis 220d unter
Verwendung eines bei niedriger Geschwindigkeit arbeitenden Bauelements
verkörpert
ist, ist eine Komponente zum Anlegen der Ausgangsdaten in einem
richtigen Format an das mit der hohen Geschwindigkeit arbeitende
Halbleiterbauelement erforderlich.
-
Der
Multiplexer 230 multiplexiert, das heißt serialisiert, die Ausgangsdaten
jedes der mehreren Algorithmusstrukturgeneratoren 220a bis 220d,
um die für
das Halbleiterbauelement geeigneten Teststrukturdaten zu erzeugen.
-
Das
heißt,
der Multiplexer 230 synthetisiert die Ausgangsdaten, die
ein Ergebnis der von den mehreren Algorithmusstrukturgeneratoren 220a bis 220d parallel
ausgeführten
Datenoperation sind.
-
Beispielsweise
weist das jeden der mehreren Algorithmusstrukturgeneratoren 220a bis 220d verkörpernde
FPGA eine Arbeitsgeschwindigkeit von etwa 300 MHz auf. Deshalb eignen
sich die Ausgangsdaten jedes der mehreren Algorithmusstrukturgeneratoren 220a bis 220d für die Arbeitsgeschwindigkeit
von 300 MHz. Wenn die Ausgangsdaten unter Verwendung des Multiplexers 230 multiplexiert
werden, können
die Teststrukturdaten von 1,2 GHz erhalten werden.
-
Wenn
die Teststrukturdaten nicht auf die verschachtelte Weise erzeugt
werden, ist ein Rahmen das gleiche ein Zyklus. Wenn jedoch die Teststrukturdaten
auf die verschachtelte Weise erzeugt werden, das heißt, wenn vier
Algorithmusstrukturgeneratoren beispielsweise als ein Algorithmusstrukturgenerator
verwendet werden, stellen vier Zyklen einen Rahmen dar. Der Rahmen
bezieht sich auf eine Zeitperiode, die für alle die mehreren Algorithmusstrukturgeneratoren 220a bis 220d erforderlich
ist, und der Zyklus bezieht sich auf eine Zeitperiode, die für jeden
der mehreren Algorithmusstrukturgeneratoren 220a bis 220d erforderlich
ist.
-
Deshalb
führen
die mehreren Algorithmusstrukturgeneratoren 220a bis 220d die
vorbestimmte Datenoperation für
jeden der Zyklen während
des einen Rahmens durch und geben die Ergebnisse der Datenoperation
als die Teststrukturdaten aus.
-
Die
mehreren Algorithmusstrukturgeneratoren 220a bis 220d des
herkömmlichen
Prüfgeräts werden unter
Verwendung separater Hardwarekomponenten verkörpert und arbeiten unabhängig. Selbst
wenn jedoch die separaten Hardwarekomponenten verwendet werden,
um die mehreren Algorithmusstrukturgeneratoren 220a bis 220d zu
verkörpern,
wird die Arbeitseffizienz der Algorithmusstrukturgeneratoren 220a bis 220d durch
Vorhersagen eines Ergebnisses der Datenoperationen innerhalb jedes
der Zyklen verbessert. Außerdem
können
die Teststrukturdaten effizient erzeugt werden, wenn die mehreren
Algorithmusstrukturgeneratoren 220a bis 220d,
die unter Verwendung separater Hardwarekomponenten verkörpert sind,
als ein Algorithmusstrukturgenerator angesehen werden.
-
Deshalb
sind die Algorithmusstrukturgeneratoren 220a bis 220d logisch
korreliert.
-
Ein
unten beschriebenes Verfahren kann zum Verkörpern der logischen Korrelation
verwendet werden.
-
Das
Teststrukturprogramm wird derart erzeugt, dass jeder der Algorithmusstrukturgeneratoren 220a bis 220d die
Datenoperation für
jeden der Zyklen unabhängig
durchführt,
und die Ausgangsdaten jedes der Algorithmusstrukturgeneratoren 220a bis 220d werden
dann kombiniert, um die Teststrukturdaten zu erzeugen.
-
Das
Verfahren ist vorteilhaft, weil eine Ausführungsform der Korrelation
einfach ist und die Anweisung, das heißt die Datenoperation, die
korreliert sein kann, nicht begrenzt ist, weil die Korrelation von
einem Entwickler des Teststrukturprogramms berechnet wird.
-
Der
Entwickler des Teststrukturprogramms kann jedoch das Teststrukturprogramm
nicht intuitiv schreiben und sollte das Teststrukturprogramm unter
Berücksichtigung
einer internen Operationsrelation schreiben. Es ist deshalb für den Entwickler
schwierig, das Teststrukturprogramm zu schreiben. Das heißt, der
Entwickler des Teststrukturprogramms sollte die Datenoperation jedes
korrelierten Zyklus wegen der Korrelation zwischen Operationsregistern
der Algorithmusstrukturgeneratoren 220a bis 220d berechnen.
Deshalb sollte der Entwickler des Teststrukturprogramms sich einem
komplexen Prozess zum Schreiben des Teststrukturprogramms unterziehen.
-
Zudem
kann ein Compiler das Teststrukturprogramm auf eine Weise konvertieren
und kompilieren, dass die Datenoperation von dem Zyklus vorhergesagt
wird und in den Algorithmusstrukturgeneratoren 220a bis 220d korreliert
wird. In diesem Fall kann der Entwickler des Teststrukturprogramms
die Algorithmusstrukturgeneratoren 220a bis 220d beim
Schreiben des Teststrukturprogramms als einen Algorithmusstrukturgenerator
ansehen.
-
Der
Entsprecher sagt die Datenoperation vorher, die von jedem der Algorithmusstrukturgeneratoren 220a bis 220d von
dem Zyklus wie etwa einem vorausgegangenen Zyklus und einem gegenwärtigen Zyklus ausgeführt werden sollte,
und konvertiert und kompiliert dann das Teststrukturprogramm zu
einem neuen Operationscode auf der Basis eines Ergebnisses der Vorhersage
anstatt einem direkten Kompilieren des von dem Entwickler des Teststrukturprogramms
geschriebenen Teststrukturprogramms. Die Algorithmusstrukturgeneratoren 220a bis 220d führen die
Datenoperation auf der Basis des konvertierten Teststrukturprogramms
aus. Wenn das Teststrukturprogramm konvertiert und kompiliert wird,
wird das Schreiben des Teststrukturprogramms für den Entwickler des Teststrukturprogramms
erleichtert. Die Ausführungsform
der Algorithmusstrukturgeneratoren 220a bis 220d ist
jedoch schwierig, und die Anweisung, die verwendet werden kann,
ist beschränkt.
-
Insbesondere
wenn die Datenoperation, mehrere Felder zum Erzeugen eines Teststrukturprogramms verwendend,
eine Anzahl der Anweisungen, die sich zur Vorhersage und zur Konvertierung
eignet, ist beschränkt.
Weil die mehreren Felder verwendet werden, zudem die Anzahl der
Anweisungen begrenzt zwischen einem Operationscode in dem Zyklus
eines vorausgegangenen Rahmens und einem Operationscode in dem Zyklus
eines aktuellen Rahmens erhöht.
-
KURZE DARSTELLUNG DER ERFINDUNG
-
Eine
Aufgabe der vorliegenden Erfindung besteht in der Bereitstellung
einer Vorrichtung und eines Verfahrens zum Erzeugen von Teststrukturdaten
zum Testen eines Halbleiterbauelements, wobei ein Teststrukturprogramm
kompiliert wird durch Vorhersagen einer Datenoperation zum Erzeugen
von Teststrukturdaten auf verschachtelte Weise, wodurch eine Notwendigkeit
entfällt,
dass ein Entwickler des Teststrukturprogramms die Datenoperation
während
eines Schreibens eines Quellcodes analysiert.
-
Um
die oben beschriebenen Aufgaben der vorliegenden Erfindung zu erfüllen, wird
eine Vorrichtung zum Erzeugen von Teststrukturdaten zum Testen eines
Halbleiterbauelements bereitgestellt, wobei der Strukturgenerator
folgendes umfasst: einen Teststrukturprogrammleser zum Lesen eines
Teststrukturprogramms erzeugt durch Vorhersagen einer Datenoperation
auf eine Weise, dass die Datenoperation für verschiedene Rahmen ungeachtet
einer Datenvorhersagebedingung zulässig ist und nur die Datenoperation
für mehrere Verschachtelungszyklen
innerhalb eines einzelnen Rahmens gemäß der Datenvorhersagebedingung
zulässig ist;
mehrere Algorithmusstrukturgeneratoren zum Ausführen der Datenoperation auf
verschachtelte Weise auf der Basis des Teststrukturprogramms zum
Erzeugen einer Struktur und einen Multiplexer zum Multiplexieren der
Struktur zum Erzeugen der Teststrukturdaten zum Testen des Halbleiterbauelements.
-
Außerdem wird
ein Verfahren zum Erzeugen von Teststrukturdaten zum Testen eines
Halbleiterbauelements bereitgestellt, wobei das Verfahren die folgenden
Schritte umfasst: (a) Lesen eines durch Vorhersagen einer Datenoperation
erzeugten Teststrukturprogramms auf eine Weise, dass die Datenoperation
für verschiedene
Rahmen ungeachtet einer Datenvorhersagebedingung zulässig ist
und nur die Datenoperation für
mehrere Verschachtelungszyklen innerhalb eines einzelnen Rahmens
gemäß der Datenvorhersagebedingung
zulässig
ist; (b) Ausführen
der Datenoperation auf verschachtelte Weise auf der Basis des Teststrukturprogramms
zum Erzeugen einer Struktur und (c) Multiplexieren der Struktur
zum Erzeugen der Teststrukturdaten zum Testen des Halbleiterbauelements.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm, das ein herkömmliches
Prüfgerät zum Testen
eines Halbleiterbauelements darstellt.
-
2 ist
ein Diagramm, das eine herkömmliche
Vorrichtung zum Erzeugen von Teststrukturdaten darstellt.
-
3 ist
ein Blockdiagramm, das eine Vorrichtung zum Erzeugen von Teststrukturdaten
zum Testen eines Halbleiterbauelements gemäß der vorliegenden Erfindung
darstellt.
-
4 ist
ein Diagramm, das eine Operation für mehrere Felder in einer Vorrichtung
zum Erzeugen von Teststrukturdaten zum Testen eines Halbleiterbauelements
gemäß der vorliegenden
Erfindung darstellt.
-
5 ist
ein Diagramm, das einen Kompilierprozess in einer Vorrichtung zum
Erzeugen von Teststrukturdaten zum Testen eines Halbleiterbauelements
gemäß der vorliegenden
Erfindung darstellt.
-
6 ist
ein Flussdiagramm, das ein Verfahren zum Erzeugen von Teststrukturdaten
zum Testen eines Halbleiterbauelements gemäß der vorliegenden Erfindung
darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
Die
vorliegende Erfindung wird nun unter Bezugnahme auf die beiliegenden
Zeichnungen ausführlich beschrieben.
-
3 ist
ein Blockdiagramm, das eine Vorrichtung zum Erzeugen von Teststrukturdaten
zum Testen eines Halbleiterbauelements gemäß der vorliegenden Erfindung
darstellt.
-
Unter
Bezugnahme auf 3 umfasst die Vorrichtung gemäß der vorliegenden
Erfindung einen Teststruktur programmleser 310, mehrere
Algorithmusstrukturgeneratoren 320a bis 320d und
einen Multiplexer 330.
-
Der
Teststrukturprogrammleser liest ein Teststrukturprogramm.
-
Das
Teststrukturprogramm wird von einem mit der Vorrichtung verbundenen,
nicht gezeigten Teststrukturprogrammprozessor erzeugt.
-
Der
Teststrukturprogrammprozessor ist mit dem Strukturgenerator verbunden,
der einen von einem Entwickler des Teststrukturprogramms beschriebenen
Quellcode kompiliert, um das Teststrukturprogramm zu erzeugen.
-
Bevorzugt
ist der Teststrukturprogrammprozessor in einem die Vorrichtung der
vorliegenden Erfindung umfassenden Halbleiterbauelementprüfgerät enthalten.
Außerdem
kann der Teststrukturprogrammprozessor eine separate Einrichtung
sein.
-
Um
das Teststrukturprogramm zu erzeugen, umfasst der Strukturgenerator
einen Compiler zum Kompilieren des Quellcodes zum Erzeugen des Teststrukturprogramms
und einen Teststrukturprogramminspektor zum Bestimmen, ob der Quellcode
nur die mit der Datenvorhersagebedingung übereinstimmende Datenoperation
enthält.
-
Der
Entsprecher kompiliert den Quellcode, wenn bestimmt wird, dass der
Quellcode nur die mit der Datenvorhersagebedingung übereinstimmende
Datenoperation enthält.
-
Der
Entsprecher erzeugt einen ausführbaren
Binärcode
aus dem Quellcode. Gemäß der vorliegenden Erfindung
wird der Quellcode gegebenenfalls vor dem Kompilieren auf der Basis
der Datenvorhersagebedingung konvertiert.
-
Der
Entsprecher hält
das Kompilieren des Quellcodes an, wenn bestimmt wird, dass der
Quellcode die mit der Datenvorhersagebedingung nichtübereinstimmende
Datenoperation enthält,
und gibt eine Fehlermeldung derart aus, dass der Entwickler des
Teststrukturprogramms den Quellcode so konfiguriert, dass er nur die
mit der Datenvorhersagebedingung übereinstimmende Datenoperation
enthält.
-
Das
Teststrukturprogramm wird derart vorhergesagt und entsprochen, dass
die Datenoperation für verschiedene
Rahmen ungeachtet einer Datenvorhersagebedingung gestattet ist und
nur die mit der Datenvorhersagebedingung übereinstimmende Datenoperation
für mehrere
Verschachtelungszyklen innerhalb eines einzelnen Rahmens gestattet
ist.
-
Das
herkömmliche
Teststrukturprogramm sagt die Datenoperation für die verschiedenen Rahmen
sowie einen einzelnen Rahmen vorher, um eine Verschachtelung zu
verkörpern.
Weil das Teststrukturprogramm die Verschachtelung auf der Basis
einer Datenvorhersage für
einen Datenoperationscode entsprechend einem letzten Verschachtelungszyklus
eines vorausgegangenen Rahmens und eines Datenoperationscodes entsprechend
einem ersten Verschachtelungszyklus eines gegenwärtigen Rahmens verkörpert, eine
Anweisung, die in Verbindung mit den verschiedenen Rahmen verwendet
werden kann, das heißt,
die Datenoperation ist in dem herkömmlichen Teststrukturprogramm
beschränkt.
-
Im
Gegensatz zu dem herkömmlichen
Teststrukturprogramm wird das in der Vorrichtung gemäß der vorliegenden
Erfindung verwendete Teststrukturprogramm durch Vorhersagen der
Datenoperation auf eine Weise, dass die Datenoperation für die verschiedenen
Rahmen ungeachtet der Datenvorhersagebedingung gestattet ist und
nur die Datenoperation für
die mehreren Verschachtelungszyklen innerhalb des einzelnen Rahmens
in Übereinstimmung
mit der Datenvorhersagebedingung gestattet ist, entsprochen. Deshalb
existiert die Beschränkung
bei der Datenoperation nur in jedem Verschachtelungszyklus in dem
einzelnen Rahmen gemäß der vorliegenden
Erfindung. Folglich ist die Beschränkung der Datenoperation beim
Ausführen
der Verschachtelung durch die Vorhersage der Datenoperation reduziert.
-
Der
Teststrukturprogrammleser 310 kann das Teststrukturprogramm
zum Erzeugen der Teststrukturdaten nach dem Speichern des Teststrukturprogramms
in einem Anweisungsspeicher lesen.
-
Der
Leseprozess kann das Holen der Anweisung oder von Daten von dem
Teststrukturprogramm zum Erzeugen der Teststrukturdaten durch eine
Sequenzkontrolle beinhalten.
-
Die
Algorithmusstrukturgeneratoren 320a bis 320d erzeugt
eine Struktur nach dem Ausführen
der Datenoperation auf verschachtelte Weise auf der Basis des Teststrukturprogramms.
Während
vier Algorithmusstrukturgeneratoren gezeigt sind, können zwei
oder drei Algorithmusstrukturgeneratoren verwendet werden. Jedoch
können
für eine
effiziente Verschachtelung zwei oder vier Algorithmusstrukturgeneratoren
verwendet werden.
-
Die
Datenoperation wird auf die verschachtelte Weise auf der Basis jedes
der Rahmen in dem Teststrukturprogramm ausgeführt. Jeder der Rahmen enthält Verschachtelungszyklen
entsprechend einer Anzahl der Algorithmusstrukturgeneratoren 320a bis 320d,
und jeder der Algorithmusstrukturgeneratoren 320a bis 320d führt die
Datenoperation entsprechend dem Verschachtelungszyklus davon parallel
aus. Während
die Algorithmusstrukturgeneratoren 320a bis 320d unter
Verwendung separater Hardwarekomponenten verkörpert sind, kann die Verschachtelung
derart verkörpert
sein, dass die Algorithmusstrukturgeneratoren 320a bis 320d logisch
korreliert sind.
-
Ein
Ergebnis der Datenoperation entsprechend dem letzten Verschachtelungszyklus
wird zu der Datenoperation entsprechend dem ersten Verschachtelungszyklus
rückgekoppelt.
Durch die Rückkopplung
können
die Rahmen korreliert werden. Die Vorrichtung gemäß der vorliegenden
Erfindung ist beim Vorhersagen der Datenoperation zwischen den Rahmen
durch die Korrelation durch die Rückkopplung nicht beschränkt. Das
heißt,
wenngleich die Datenoperation möglicherweise
zwischen den Rahmen in der verschachtelten Weise durch die Vorhersage
gemäß der herkömmlichen
Technologie beschränkt
sein kann, kann die Beschränkung
der Datenoperation durch die Rückkopplung
gemäß der vorliegenden
Erfindung überwunden
werden.
-
Jeder
der Algorithmusstrukturgeneratoren 320a bis 320d kann
die Datenoperation für
mehrere Felder ausführen
(ein erstes Feld und ein zweites Feld, beispielsweise in 3 als
Feld A bzw. B bezeichnet). Das Ergebnis der Datenoperation für das Feld
B kann die Datenoperation für
das Feld A beeinflussen.
-
Jeder
der Algorithmusstrukturgeneratoren 320a bis 320d kann
mehrere Operationsregister enthalten. Die Datenoperation jedes der
Verschachtelungszyklen in dem einzelnen Rahmen wird in den mehreren
Operationsregistern für
die mehreren Felder parallel ausgeführt.
-
Beim
Kompilieren des Teststrukturprogramms werden die Datenoperation
für jedes
der Felder A und B für
jeden Verschachtelungszyklus in dem einzelnen Rahmen vorhergesagt
und entsprochen.
-
Die
Datenoperation für
das Feld A unter Bezugnahme auf Feld B wird jedoch wie unten beschrieben ausgeführt.
-
Zur
Bezugnahme auf das Ergebnis der Datenoperation für das Feld B wird auf das Ergebnis
der Datenoperation für
das Feld B in dem vorausgegangenen Rahmen von der Datenoperation
für das
Feld A in dem gegenwärtigen
Rahmen Bezug genommen. Durch Bezugnahme auf das Ergebnis der Datenoperation
in dem vorausgegangenen Rahmen kann die Datenoperation ausgeführt werden
durch Vorhersagen der mit der Datenvorhersagebedingung in jedem
der Verschachtelungszyklen des aktuellen Rahmens übereinstimmenden Datenoperation.
-
Außerdem wird
das Teststrukturprogramm entsprochen, um auf den vorausgegangenen
Rahmen für die
auf verschiedene Felder bezugnehmende Datenoperation Bezug zu nehmen.
Das heißt,
der Algorithmusstrukturgenerator 320a führt die Datenoperation für das Feld
B aus, um einen Wert B1 auszugeben, und auf den Wert B1 wird von
der Datenoperation von Feld A in einem nächsten Rahmen Bezug genommen,
um einen Wert A1 auszugeben. Die Ausgaben A1 bis A4 der Algorithmusstrukturgeneratoren 320a bis 320d wird
dann zur Ausgabe als die Teststrukturdaten multiplexiert.
-
Durch
Bezugnahme auf das Ergebnis der Datenoperation für das zweite Feld in dem vorausgegangenen
Rahmen anstelle des gegenwärtigen
Rahmens selbst im Fall einer Bezugnahme auf Daten des zweiten Felds
sowie die Datenoperation für
das erste Feld, kann die Datenoperation vorhergesagt werden, um
die Korrelation innerhalb des gleichen Rahmens zu verkörpern. Die
Ausführungsform
der Korrelation innerhalb des gleichen Rahmens reduziert die Beschränkung der
Anweisung, die auf den aktuellen Rahmen anzuwenden ist, das heißt die Datenoperation.
-
4 ist
ein Diagramm, das eine Operation für die mehreren Felder in der
Vorrichtung zum Erzeugen der Teststrukturdaten zum Testen des Halbleiterbauelements
gemäß der vorliegenden
Erfindung darstellt.
-
4 zeigt
jede Sequenz des von dem Teststrukturprogrammlesers gelesenen Teststrukturprogramms
und den Datenoperationscode für
die mehreren Algorithmusstrukturgeneratoren (beispielsweise vier Algorithmusstrukturgeneratoren)
entsprechend jeder Sequenz. Außerdem
zeigt 4 den vorausgegangenen Rahmen, den gegenwärtigen Rahmen
und den nächsten
Rahmen für
jede Sequenz.
-
Ein
Pfeil in 4 stellt die Korrelation dar.
-
Eine
Beschreibung des ersten Rahmens (als der vorausgegangene Rahmen
bezeichnet) ist wie folgt.
-
Wenn
der Quellcode derart beschrieben wird, dass jeder der vier Algorithmusstrukturgeneratoren
die Datenoperation von "A
= A + 1" für das Feld
A und die Datenoperation von "B
= B + 1" für das Feld
B ausführt, beeinflusst
das Ergebnis der Datenoperation von "A = A + 1" oder der Datenoperation von "B = B + 1" einen nächsten Verschachtelungszyklus,
das heißt
eine nächste
Datenoperation des Algorithmusstrukturgenerators.
-
Eine
Beschreibung des zweiten Rahmens (als der gegenwärtige Rahmen bezeichnet) ist
wie folgt.
-
Wenn
der Quellcode derart beschrieben wird, dass jeder der vier Algorithmusstrukturgeneratoren
die Datenoperation von "A
= B" für das Feld
A und die Datenoperation von "B
= B – 1" für das Feld
B ausführt, beeinflusst
das Ergebnis der Datenoperation von "A = B" die Datenoperation der nächsten Datenoperation. Weil
die Datenoperation für
das Feld B sich nicht auf das Ergebnis der Datenoperation für ein anderes
Feld bezieht, kann außerdem
jeder der Verschachtelungszyklen auf eine Weise konfiguriert sein,
dass die Datenoperation durch die Vorhersage innerhalb des vorausgegangenen
Rahmens gestattet wird.
-
Eine
Beschreibung des dritten Rahmens (als der nächste Rahmen bezeichnet) ist
wie folgt.
-
Wenn
der Quellcode derart geschrieben wird, dass jeder der vier Algorithmusstrukturgeneratoren
die Datenoperation von "A
= B" für das Feld
A und die Datenoperation von "B
= B·2" für das Feld
B ausführt,
beeinflusst das Ergebnis der Datenoperation von "A = B" die Datenoperation der nächsten Datenoperation.
Deshalb wird die Datenoperation für das Feld A in dem nächsten Rahmen
durchgeführt
durch Bezugnahme auf das Ergebnis der Datenoperation für das Feld
B in dem gegenwärtigen
Rahmen. Weil die Datenoperation für das Feld B sich nicht auf
das Ergebnis der Datenoperation für ein anderes Feld bezieht,
kann außerdem
jeder der Verschachtelungszyklen auf eine Weise konfiguriert sein,
dass die Datenoperation durch die Vorhersage innerhalb des gegenwärtigen Rahmens
gestattet wird.
-
Wieder
unter Bezugnahme auf 3 multiplexiert der Multiplexer 330 die
Struktur zum Erzeugen der Teststrukturdaten zum Testen des Halbleiterbauelements.
-
5 ist
ein Diagramm, das einen Kompilierungsprozess in der Vorrichtung
zum Erzeugen von Teststrukturdaten zum Testen eines Halbleiterbauelements
gemäß der vorliegenden
Erfindung darstellt.
-
5 zeigt
jede Sequenz des von dem Teststrukturprogrammlesers gelesenen Teststrukturprogramms,
den Quellcode (bezeichnet als "Benutzercode") für die mehreren
Algorithmusstrukturgeneratoren (beispielsweise erster bis vierter
Algorithmusstrukturgenerator) entsprechend jeder Sequenz und den
konvertierten und kompilierten Code durch Vorhersagen des zu korrelierenden
Quellcodes. 5 zeigt auch den voraus gegangenen
Rahmen, den gegenwärtigen
Rahmen und den nächsten
Rahmen für
den Quellcode und den konvertierten und kompilierten Code in jeder
Sequenz.
-
Gemäß dem Quellcode
führt der
erste Algorithmusstrukturgenerator eine Datenoperation "A = A + 1" in dem vorausgegangenen
Rahmen durch, und der zweite Algorithmusstrukturgenerator führt die
Datenoperation durch Empfangen des Ergebnisses der Datenoperation
des ersten Algorithmusstrukturgenerators durch. Da der Quellcode
unter der Annahme geschrieben ist, dass die mehreren Algorithmusstrukturgeneratoren
korreliert sind obwohl nicht, sollte der Quellcode konvertiert werden.
-
Das
heißt,
der Quellcode wird von dem Compiler derart konvertiert und kompiliert,
dass der erste Algorithmusstrukturgenerator die Datenoperation "A = A + 1" ausführt und
der zweite Algorithmusstrukturgenerator die Datenoperation "A = A + 2" durch logisches
Berücksichtigen
des Ergebnisses der Datenoperation des ersten Algorithmusstrukturgenerators
ausführt.
Analog wird der Quellcode derart konvertiert und kompiliert, dass
der dritte Algorithmusstrukturgenerator eine Datenoperation "A = A + 3" ausführt und
der vierte Algorithmusstrukturgenerator eine Datenoperation "A = A + 4" ausführt. Die
dem konvertierten und kompilierten Code entsprechende Datenoperation
wird dann von den mehreren Algorithmusstrukturgeneratoren ausgeführt.
-
Die
Datenoperation für
den gegenwärtigen
Rahmen wird auf der Basis eines Ergebnisses einer letzten Datenoperation
in dem vorausgegangenen Rahmen ausgeführt.
-
Das
heißt,
der Quellcode wird von dem Compiler derart konvertiert und kompiliert,
dass der erste Algorithmusstrukturgenerator die Datenoperation "A = A + 8" ausführt und
der zweite Algorithmusstrukturgenerator die Datenoperation "A = A + 4" anstelle von "A = A – 4" durch logisches
Berücksichtigen
des Ergebnisses der Datenoperation des ersten Algorithmusstrukturgenerators
ausführt.
Analog wird der Quellcode derart konvertiert und kompiliert, dass
der dritte Algorithmusstrukturgenerator eine Datenoperation "A = A + 5" anstelle von "A = A + 1" ausführt und
der vierte Algorithmusstrukturgenerator eine Datenoperation "A = A + 6" anstelle von "A = A + 1" ausführt. Die
dem konvertierten und kompilierten Code entsprechende Datenoperation
wird dann von den mehreren Algorithmusstrukturgeneratoren ausgeführt.
-
Die
Datenoperation für
den nächsten
Rahmen wird auf der Basis eines Ergebnisses einer letzten Datenoperation
in dem gegenwärtigen
Rahmen ausgeführt.
-
Das
heißt,
der Quellcode wird von dem Compiler derart konvertiert und kompiliert,
dass der erste Algorithmusstrukturgenerator die Datenoperation "A = A·2" ausführt und
der zweite Algorithmusstrukturgenerator die Datenoperation "A = A" anstelle von "A = A/2" durch logisches
Berücksichtigen
des Ergebnisses der Datenoperation des ersten Algorithmusstrukturgenerators
ausführt.
Analog wird der Quellcode derart konvertiert und kompiliert, dass
der dritte Algorithmusstrukturgenerator eine Datenoperation "A = A·2" durch logisches
Berücksichtigen
des Ergebnisses der Datenoperation des zweiten Algorithmusstrukturgenerators
ausführt
und der vierte Algorithmusstrukturgenerator eine Datenoperation "A = A·4" anstelle von ausführt. Die
dem konvertierten und kompilierten Code entsprechende Datenoperation
wird dann von den mehreren Algorithmusstrukturgeneratoren ausgeführt.
-
Der
Compiler kann den Quellcode unter Berücksichtigung der Korrelation
zwischen dem vorausgegangenen Code und dem gegenwärtigen Code
innerhalb des gleichen Rahmens konvertieren und kompilieren. Die
Konversion wird jedoch nicht auf alle Datenoperationen angewendet.
-
Tabelle
1 zeigt eine Kombination aus dem vorausgegangenen Code und dem vorhersagbaren
gegenwärtigen
Code und der vorhergesagten Datenoperation, das heißt die vorbestimmte
Datenvorhersagebedingung. [Tabelle
1]
-
"A" und "B" stellt
das Datenfeld dar, "C" stellt einen zuvor
entsprochenen Code dar, "X" stellt einen unvorhersagbaren
Code dar, "imm" stellt einen sofortigen
Wert dar, "/" stellt einen Divisionsoperator
dar, "*" stellt einen Multiplikationsoperator
dar, "+" stellt einen Additionsoperator
dar, "–" stellt einen Subtraktionsoperator dar, "&" stellt
einen bitweisen AND-Operator dar, "|" stellt
einen bitweisen OR-Operator
dar und "^" stellt einen bitweisen
XOR-Operator dar.
-
Wie
in Tabelle 1 gezeigt, kann der gegenwärtige Code auf der Basis des
vorausgegangenen Codes konvertiert werden, um die Datenoperation
auszuführen.
-
6 ist
ein Flussdiagramm, das ein Verfahren zum Erzeugen der Teststrukturdaten
zum Testen des Halbleiterbauelements gemäß der vorliegenden Erfindung
darstellt.
-
Unter
Bezugnahme auf 6 wird der von dem Entwickler
des Teststrukturprogramms geschriebene Quellcode kompiliert, um
das Teststrukturprogramm (S110) zu erzeugen.
-
Das
Teststrukturprogramm wird auf eine Weise entsprochen, dass die Datenoperation
für verschiedene
Rahmen ungeachtet der Datenvorhersagebedingung zugelassen ist und
nur die mit der Datenvorhersagebedingung für mehrere Verschachtelungszyklen
innerhalb des einzelnen Rahmens übereinstimmende
Datenoperation zugelassen ist. Die ausführliche Beschreibung des Kompilierungsprozesses
erfolgt unter Bezugnahme auf 5.
-
Das
Verfahren gemäß der vorliegenden
Erfindung kann das Inspizieren des Quellcodes umfassen, um zu bestimmen,
ob der Quellcode nur die mit der Datenvorhersagebedingung übereinstimmende
Datenoperation enthält.
-
Wenn
bestimmt wird, dass der Quellcode die mit der Datenvorhersagebedingung
nicht übereinstimmende
Datenoperation enthält,
wird das Kompilieren angehalten und eine Fehlermeldung wird ausgegeben.
-
Wenn
bestimmt wird, dass der Quellcode nur die mit der Datenvorhersagebedingung übereinstimmende
Datenoperation enthält,
wird der Quellcode konvertiert und kompiliert.
-
Wenn
danach das Teststrukturprogramm erzeugt und in dem Prüfgerät gespeichert
ist, wird das Teststrukturprogramm gelesen und ausgeführt (S120).
-
Danach
wird die Datenoperation auf die verschachtelte Weise ausgeführt, um
eine Struktur zu erzeugen (S130).
-
Wenn
die Datenoperation auf die verschachtelte Weise ausgeführt wird,
werden zwei oder vier Strukturerzeugungen logisch verbunden, und
die Struktur wird erzeugt durch Ausführen der Datenoperation entsprechend
dem Verschachtelungszyklus jedes der Rahmen des Teststrukturprogramms.
Das Ergebnis der Datenoperation entsprechend dem letzten Verschachtelungszyklus
wird zu der Datenoperation entsprechend dem ersten Verschachtelungszyklus
rückgekoppelt,
so dass die Datenoperation beim Ausführen der Korrelation durch
die Vorhersage nicht beschränkt
ist.
-
Falls
die Datenoperation die mehreren Felder enthält, kann die Datenoperation
für jedes
der mehreren Felder ausgeführt
werden.
-
Wenn
die Datenoperation für
jedes der mehreren Felder ausgeführt
werden kann, wird der Quellcode durch Vorhersagen der Datenoperation
unter Bezugnahme auf das Ergebnis der Datenoperation eines anderen
Felds in dem vorausgegangenen Rahmen derart entsprochen, dass die
Datenoperation entsprechend jedem Verschachtelungszyklus des gegenwärtigen Rahmens
mit der Datenvorhersagebedingung übereinstimmt.
-
Danach
wird die Struktur multiplexiert, um die Teststrukturdaten zu erzeugen
(S140).
-
Die
Teststrukturdaten werden dann an das zu testende Halbleiterbauelement übertragen.
-
Wenngleich
die vorliegende Erfindung unter Bezugnahme auf die bevorzugte Ausführungsform
davon besonders gezeigt und beschrieben worden ist, versteht der
Fachmann, dass darin verschiedene Änderungen hinsichtlich Form
und Details ausgeführt
werden können,
ohne von dem Gedanken und Schutzbereich der Erfindung abzuweichen.
-
Wie
oben beschrieben wird gemäß der Vorrichtung
und dem Verfahren zum Erzeugen der Teststrukturdaten zum Testen
des Halbleiterbauelements das Teststrukturprogramm kompiliert durch
Vorhersagen der Datenoperation zum Erzeugen der Teststrukturdaten
auf die verschachtelte Weise, wodurch die Notwendigkeit entfällt, dass
der Entwickler des Teststrukturprogramms die Datenoperation während des
Schreibens des Quellcodes analysiert.