-
Erfindungsgebiet
-
Diese
Erfindung betrifft ein Halbleitertestsystem zum Testen von Halbleiterbauelementen
und insbesondere ein Gerät
und ein Verfahren zur Berechnung des Ereigniszeitablaufs zur Erzeugung
von Testmustern für
ein ereignisbasiertes Hochgeschwindigkeitstestsystem zum Evaluieren
eines Halbleiterprüflings,
wobei der Zeitablauf eines jeden Ereignisses entweder durch eine
Zeitdauer von einem bestimmten Basisereignis oder von der Zeitdauer
eines Nebenereignisses definiert wird.
-
Erfindungshintergrund
-
Beim
Testen von Halbleiterbauelementen, wie etwa integrierten Schaltungen
und hochintegrierten Schaltungen, durch ein Halbleitertestsystem,
wie etwa einen IC-Tester,
wird ein zu testendes IC-Bauelement mit Testsignalen versehen, die
von einem IC-Tester an seinen entsprechenden Pins zu festgelegten
Testzeitpunkten erzeugt werden. Der IC-Tester empfängt Ausgangssignale
vom IC-Prüfling,
die in Erwiderung auf die Testsignale erzeugt werden. Die Ausgangssignale
werden abgetastet, d. h. durch Abtastsignale mit festgelegten Zeitabläufen abgefragt, um
mit Erwartungsdaten verglichen zu werden, um zu bestimmen, ob das
IC-Bauelement korrekt funktioniert.
-
Der
Zessionar dieser Erfindung hat ein ereignisbasiertes Testsystem
entwickelt, wobei die gewünschten
Testsignale und Abtastsignale direkt durch Daten aus einem Ereignisspeicher
auf einer Per-Pin-Basis erzeugt werden. Bei einem Ereignisbasierten
Testsystem werden die Testdaten in Form von Ereignissen und ihrer
Zeitabläufe
beschrieben, wobei Ereignisse irgendwelche Veränderungen des Logikzustands
in den Signalen, die zum Testen eines Halbleiterprüflings verwendet werden.
Beispielsweise sind solche Veränderungen
das Ansteigen und das Abfallen von Testsignalen (Steuerereignisse) und
Abtastsignalen (Abtastereignisse oder Abfrageereignisse). Typischerweise
wird der Zeitablauf eines jeden Ereignisses entweder als die Zeitdauer
ab dem jüngsten
Ereignis (unmittelbar vor dem momentanen Ereignis) oder in absoluter
Zeit (ab der Zeit Null) definiert. Die vorliegende Erfindung ist
auf solch ein ereignisbasiertes Testsystem gerichtet. Ein Beispiel
für den
grundlegenden Aufbau eines ereignisbasierten Testsystems ist in
einem Blockdiagramm von 1 gezeigt.
-
In 1 schließt das ereignisbasierte Testsystem
einen Hostrechner 12 und eine Bus-Schnittstelle 13 ein, die beide
an einen Systembus 14 angeschlossen sind, ferner einen
internen Bus 15, eine Adresssteuerlogik 18, einen
Ausfallspeicher 17, einen Ereignisspeicher 30,
der aus einem Ereigniszählspeicher 20 und
aus einem Ereignisnoniusspeicher 21 besteht, eine Ereignissummierungs-
und -skalierungslogik 22, einen Ereignisgenerator 24 und eine
Pinelektronik 26. Das ereignisbasierte Testsystem evaluiert
einen Halbleiterprüfling
(DUT) 28, der an die Stiftelektronik 26 angeschlossen
ist.
-
Ein
Beispiel für
den Hostrechner 12 ist ein Arbeitsplatzrechner, der darin
ein UNIX-Betriebssystem
aufweist. Der Hostrechner 12 fungiert als eine Benutzerschnittstelle,
um es einem Benutzer zu ermöglichen,
den Beginn und das Anhalten des Testbetriebs anzuweisen, ein Testprogramm
und andere Testbedingungen zu laden oder um im Hostrechner eine
Analyse der Testergebnisse durchzuführen. Der Hostrechner 12 tritt
mit einem Hardware-Testsystem über
den Systembus 14 und die Busschnittstelle 13 in Verbindung.
-
Der
interne Bus 15 ist ein Bus im Hardware-Testsystem und er
ist üblicherweise
an die meisten funktionalen Blöcke
angeschlossen, wie etwa die Adresssteuerlogik 18, den Ausfallspeicher 17,
die Ereignissummierungs- und -skalierungslogik 22 und den
Ereignisgenerator 24. Ein Beispiel für die Adresssteuerlogik 18 ist
ein Prozessor des Testers, der für
das Hardware-Testsystem exklusiv ist und der für einen Benutzer nicht zugänglich ist.
Der Prozessor des Testers (Adresssteuerlogik) 18 liefert
auf der Grundlage des Testprogramms und der Testbedingungen vom
Hostrechner 12 Anweisungen an andere funktionale Blöcke im Testsystem.
Der Ausfallspeicher 17 speichert Testergebnisse, wie etwa
Ausfallinformationen des DUT 28, in der Adresse, die durch die
Adresssteuerlogik 18 definiert wird. Die im Ausfallspeicher 17 gespeicherte
Information wird in der Stufe der Ausfallanalyse des Prüflings verwendet.
-
Die
Adresssteuerlogik 18 liefert Adressdaten an den Ereigniszählspeicher 20 und
den Ereignisnoniusspeicher 21, wie es in 1 gezeigt ist. Bei einem tatsächlichen
Testsystem ist eine Vielzahl von Sätzen von Ereigniszählspeichern
und Ereignisnoniusspeichern vorgesehen, wobei jeder Satz davon einem
Testpin des Testsystems entsprechen kann. Die Ereigniszähl- und
-noniusspeicher speichern für
jedes Ereignis die Zeitablaufdaten der Testsignale und der Abtastsignale.
Der Ereigniszählspeicher 20 speichert
die Zeitablaufdaten, die ein ganzzahliges Vielfaches des Referenztakts
(Ereigniszähldaten)
sind, und der Ereignisnoniusspeicher 21 speichert die Zeitablaufdaten,
die ein Bruchteil des Referenztaktes (Ereignisnoniusdaten) sind.
-
Die
Ereignissummierungs- und -skalierungslogik 22 ist dazu
da, auf der Grundlage der Zeitablaufdaten aus dem Ereigniszählspeicher 20 und
aus dem Ereignisnoniusspeicher 21 Daten zu erzeugen, die
den Gesamtzeitablauf eines jeden Ereignisses zeigen. Im Grunde werden
solche Gesamtzeitablaufdaten durch Summieren der Ereigniszähldaten (ganzzahlige
Vielfachdaten) und der Ereignisnoniusdaten (die Bruchteildaten).
Während
des Prozesses des Summierens der Zeitablaufdaten wird zudem eine Übertragungsoperation
der Bruchteildaten (versetzt zu den ganzzahligen Daten) in der Zeitablaufzähl- und
-versetzlogik 22 durchgeführt. Des Weiteren können während des
Prozesses der Erzeugung des Gesamtzeitablaufs Zeitablaufdaten derart
durch einen Skalierungsfaktor modifiziert werden, dass der Gesamtzeitablauf
entsprechend modifiziert werden kann.
-
Der
Ereignisgenerator 24 ist dazu da, die Ereignisse auf der
Grundlage der Gesamtzeitablaufdaten aus der Ereignissummierungs-
und -skalierungslogik 22 zu erzeugen. Die auf diese Weise
erzeugten Ereignisse (Steuerereignisse und/oder Abtastsignale) werden über die
Pinelektronik 26 an den DUT 28 geliefert. Im Grunde
wird die Pinelektronik 26 aus einer großen Zahl von Komponenten gebildet,
von denen jede einen Treiber und einen Komparator sowie Schaltern
gebildet, um Eingangs- und Ausgangsbeziehungen hinsichtlich des
DUT 28 aufzubauen.
-
Zum
Erzeugen von Zeitabläufen
mit hoher Auflösung
wird, wie es oben erwähnt
wurde, die Zeitdauer (Verzögerungswert)
zwischen den Ereignissen durch eine Kombination eines ganzzahligen
Vielfachen eines Referenztaktzyklus (Ereigniszähldaten) und eines Bruchteils
des Referenztaktzyklus (Ereignisnoniusdaten) definiert. Eine Zeitablaufbeziehung zwischen
der Ereigniszählung
und dem Ereignisnonius ist in einem Zeitablaufdiagramm von 2 gezeigt. Bei diesem Beispiel
weist ein Referenztakt (Ereignistakt) von 2A einen Taktzyklus (Zeitperiode) T auf.
Das Ereignis 0, das Ereignis 1 und das Ereignis 2 von 2C hängen mit dem Zeitablauf in
einer in 2C gezeigten
Art und Weise zusammen. Um das Ereignis 1 unter Bezugnahme auf das
Ereignis 0 zu beschreiben, wird die Zeitablaufbeziehung von 2B verwendet, bei der NT
die Ereigniszählung bezeichnet,
welches das N-fache der Referenztaktperiode T ist, und ΔT bezeichnet
den Ereignisnonius, welches ein Bruchteil der Referenztaktperiode
T ist.
-
Jedes
dieser Ereignisse kann aus einem Steuerereignis oder einem Abfrageereignis
bestehen. Steuerereignisse sind jene Ereignisse, bei denen das Signal
an einem Testpin auf einen bestimmten Spannungspegel gesteuert wird.
Im Allgemeinen gibt es Steuerereignisse, die dazu bestimmt sind,
einen Pin eines Prüflings
(DUT) auf einen logisch hohen Spannungspegel, einen logisch niedrigen
Spannungspegel oder auf einen Spannungspegel mit hoher Impedanz
(Ansteuerung Z) anzusteuern. Die Abfrageereignisse sind dadurch
definiert, dass sie in der Lage sind, die Ausgabe des DUT-Pin bei
einem logisch hohen Spannungspegel, bei einem logisch niedrigen
Spannungspegel oder bei einem dazwischen liegenden Spannungspegel
abzufragen.
-
Wie
es oben erwähnt
wurde, werden die Ereignisdaten bei einem ereignisbasierten Testsystem im
Ereignisspeicher durch die Zeitdifferenz zwischen dem momentanen
Ereignis und dem vorangegangenen Ereignis ausgedrückt. Demgemäß muss ein
ereignisbasiertes Testsystem, um Ereignisse gemäß den Ereignisdaten zu erzeugen,
in der Lage sein, die Summe der Verzögerungen bis zu jedem Ereignis
zu berechnen. Das macht eine Logik im Testsystem erforderlich, um
die Verzögerungszeiten,
ausgedrückt in
der Ereigniszählung,
weiterzuzählen
und die Ereignisnoniuswerte zu summieren.
-
Solch
eine Beziehung ist in einem Zeitablaufdiagramm von 3 gezeigt, bei dem die Ereignisse 0 bis
7 in Bezug auf den Referenztakt ausgedrückt werden, der eine Zeitperiode
von T = 1 aufweist. Beispielsweise kann die Zeitdifferenz ΔV0 für
das Ereignis 0 vom Startpunkt 0.75 betragen (Ereigniszählung "0" und Ereignisnonius "0.75")
und die Zeitdifferenz ΔV1 für
das Ereignis 1 vom Ereignis 0 0.75 betragen (Ereigniszählung "0" und Ereignisnonius "0.75").
In dieser Situation wird die Gesamtverzögerung von Ereignis 1 2.25
betragen, wobei eine Logik im Testsystem zwei Ereignistakte "2.0" zählt und
die Summe des Ereignisnonius "0.25" als der verbleibende Bruchteil
der Verzögerung
berechnet. Für
die Berechnung des korrekten Nonius ist diese Summierungsoperation
während
eines jeden Ereignisses notwendig, das mit einem Testsignal verknüpft ist.
-
Im
US-Patent Nr.
6,360,343 ,
in der US-Patentanmeldung Nr.
09/286,226 ,
eingereicht am 5. April 1999, und in der US-Patentanmeldung Nr.
09/535,031 , eingereicht
am 24. März
2000, die sich im Besitz des gleichen Zessionars dieser Erfindung befinden,
wird eine Ereignissummierungs- und -skalierungslogik zum Berechnen
des Zeitablaufs des momentanen Ereignisses unter Verwendung der
Ereignisdaten aus dem Ereignisspeicher offenbart. Das in der Patentanmeldung
beschriebene Verfahren setzte eine direkte Übereinstimmung sowohl eines Ereignistakts
als auch eines Verarbeitungstakts voraus, d. h. die Ereigniszähllogik
kann einfach die Verarbeitungstakte zählen und die Noniussummierung repräsentiert
Bruchteile eines Verarbeitungstaktzyklus. Das frühere Verfahren berücksichtigt
nämlich nicht
die Differenz zwischen dem Ereignistakt und dem Verarbeitungstakt.
-
Im
Zusammenhang mit der vorliegenden Erfindung ist ein Ereignistakt
eine Verarbeitungsrate der Ereignisdaten und ein Verarbeitungstakt
ist ein Takt, den die Hardware verwendet, um seine Ereignisverarbeitung
durchzuführen.
Typischerweise ist ein Ereignistakt der Takt mit der höchsten Geschwindigkeit,
während
ein Verarbeitungstakt ein Takt mit einer geringeren Geschwindigkeit
ist, der durch Teilung der Frequenz des Ereignistakts erzeugt wird,
damit er mit der Betriebsgeschwindigkeit der Hardware übereinstimmt.
Demgemäß kann bei
einem Hochgeschwindigkeits-Testsystem, bei dem die Hardware in der
Lage ist, mit einer hohen Geschwindigkeit zu arbeiten, der Verarbeitungstakt
der gleiche sein wie der Ereignistakt. Im praktischen Gebrauch ist
bei einem Testsystem mit geringerer Geschwindigkeit der Ereignistakt
wesentlich größer als
der Verarbeitungstakt und folglich kann das in der früheren Patentanmeldung
offenbarte Verfahren nicht wirkungsvoll arbeiten.
-
Was
daher gebraucht wird, ist ein Gerät und ein Verfahren zur Verarbeitung
von Ereignissen für ein
ereignisbasiertes Hochgeschwindigkeits-Testsystem, das in der Lage
ist, eine Ereigniszeitablaufverarbeitung mit hoher Geschwindigkeit
durchzuführen, auch
wenn der Verarbeitungstakt wesentlich kleiner ist als der Ereignistakt.
-
Zusammenfassung
der Erfindung
-
Es
ist deshalb eine Aufgabe der vorliegenden Erfindung, ein ereignisbasiertes
Hochgeschwindigkeits-Testsystem zur Erzeugung von Testvektoren mit
hoher Geschwindigkeit unter Verwendung von Hardware mit vergleichsweise
geringer Betriebsgeschwindigkeit auf der Grundlage von in einem
Ereignisspeicher gespeicherten Ereignisdaten bereitzustellen.
-
Es
ist eine andere Aufgabe der vorliegenden Erfindung, unter Verwendung
eines Verarbeitungstakts, der wesentlich langsamer ist als ein Ereignistakt,
ein Gerät
und ein Verfahren zur Verarbeitung von Ereignissen für ein ereignisbasiertes
Hochgeschwindigkeits-Testsystem bereitzustellen.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, durch Durchführung einer
parallelen Verarbeitung von Ereignissen unter Verwendung des Verarbeitungstakts
ein Gerät
und ein Verfahren zur Verarbeitung von Ereignissen für ein ereignisbasiertes
Hochgeschwindigkeits-Testsystem bereitzustellen, wodurch summierte
Noniusdaten mit einer Rate des Ereignistakts erzeugt werden.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, ein ereignisbasiertes
Testsystem zum Erzeugen von Ereignissen mit hoher Zeitablaufauflösung entsprechend
dem Ereignistakt unter Verwendung des Verarbeitungstakts bereitzustellen,
der wesentlich langsamer ist als der Ereignistakt.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, ein ereignisbasiertes
Testsystem zum Erzeugen von Ereignissen mit hoher Zeitablaufauflösung durch
Umwandeln einer Vielzahl von Noniusdatenwerten, die in paralleler
Form mit der Rate des Verarbeitungstakts erhalten werden, und Erzeugen der
Noniusdatenwerte in einer seriellen Form mit der Rate des Ereignistakts
bereitzustellen.
-
Die
vorliegende Erfindung ist ein Gerät zur Verarbeitung von Ereignissen
zur Verwendung mit einem ereignisbasierten Testsystem zum Testen
eines Halbleiterbauelementprüflings
(DUT), durch Erzeugen von Ereignissen mit verschiedenen Zeitabläufen zur
Zuführung
von Ansteuerereignissen an den DUT und Evaluierung von Ausgaben
des DUT an Zeitpunkten von Abfrageereignissen. Das Gerät zur Verarbeitung
von Ereignissen enthält
einen Ereignisspeicher zum Speichern von Ereignisdaten eines jeden
Ereignisses, wobei die Ereignisdaten Zeitablaufdaten für jedes
Ereignis beinhalten, welche aus einem ganzzahligen Vielfachen einer
Taktperiode und einem Bruchteil der Taktperiode gebildet werden, eine
Ereignissummierungslogik zur Summierung der Zeitablaufdaten und
zur Erzeugung der summierten Zeitablaufdaten in paralleler Form,
und einen Ereignisgenerator zur Erzeugung von Ereignissen, die durch
die Ereignisdaten auf der Grundlage der summierten Zeitablaufdaten
erzeugt werden, die in paralleler Form aus der Ereignissummierungslogik
erhalten werden. Die Ereignisse in den Ereignisdaten werden als
Gruppen aus Ereignissen spezifiziert, wobei jede Gruppe aus einem
Basisereignis und wenigstens einem Nebenereignis aufgebaut ist.
-
Die
im Ereignisspeicher gespeicherten Ereignisdaten enthalten für jedes
Ereignis Ereignistypdaten, um einen Ereignistyp anzugeben, der vom
Ereignisgenerator erzeugt werden soll. Die Zeitablaufdaten für die Basisereignisse
werden aus einem Satz von Ereigniszähldaten und Ereignisnoniusdaten
gebildet, während
die Zeitablaufdaten für
die Nebenereignisse ausschließlich
aus den Ereignisnoniusdaten gebildet werden.
-
Bei
einem Gesichtspunkt sind die summierten Zeitablaufdaten für das Basisereignis
eine Summe der Zeitablaufdaten von vorherigen Basisereignissen und
eines momentanen Basisereignisses sind und die summierten Zeitablaufdaten
für das
Nebenereignis eine Summe aus den summierten Zeitablaufdaten für das Basisereignis
und den Noniusdaten des Nebenereignisses sind, das mit Bezug auf
das Basisereignis definiert ist. Bei einem anderen Gesichtspunkt
sind die summierten Zeitablaufdaten eine Summe der Zeitablaufdaten
von vorherigen Basis- und Nebenereignissen und eines momentanen
Ereignisses, die durch serielle Verarbeitung durch die Ereignissummierungslogik
erzeugt wird. Die summierten Zeitablaufdaten für jede Gruppe aus dem Basisereignis
und dem Nebenereignis werden durch die Ereignissummierungslogik
in paralleler Form erzeugt.
-
Die
Taktperiode ist eine Zyklenzeitdauer eines Verarbeitungstaktes,
der ein Referenztakt zum Betrieb der Hardware des Geräts zur Verarbeitung von
Ereignissen ist. Die Ereignissummierungslogik erzeugt die summierten
Zeitablaufdaten an einer Vielzahl von Ausgängen in einer parallelen Form,
wodurch ermöglicht
wird, die Ereignisse mit einer Rate eines Ereignistaktes zu erzeugen,
der eine Frequenz aufweist, die höher ist als die des Verarbeitungstakts. Die
Zahl von parallelen Ausgängen
der Ereignissummierungslogik entspricht einem Verhältnis der
Frequenzen zwischen dem Verarbeitungstakt und dem Ereignistakt.
Des Weiteren korrespondiert die Zahl der parallelen Ausgänge der
Ereignissummierungslogik mit der Gesamtzahl von Basisereignissen
und der Nebenereignissen in einer jeden Gruppe aus den im Ereignisspeicher
gespeicherten Ereignisdaten.
-
Bei
einem weiteren Gesichtspunkt beinhaltet das Gerät zur Verarbeitung von Ereignissen
einen Ereignisspeicher zum Speichern von Ereignisdaten eines jeden
Ereignisses, wobei die Ereignisdaten Zeitablaufdaten für jedes
Ereignis beinhalten, welche aus einem ganzzahligen Vielfachen einer
Taktperiode (Ereigniszähldaten)
und einem Bruchteil der Taktperiode (Ereignisnoniusdaten) gebildet
werden, wobei die Ereignisdaten als Gruppen aus Ereignissen spezifiziert
werden, wobei jede Gruppe aus einem Basisereignis und wenigstens
einem Nebenereignis aufgebaut ist, eine Ereignissummierungslogik
zur Summierung der Zeitablaufdaten und zur Erzeugung der summierten
Zeitablaufdaten in paralleler Form an N Ausgängen, wobei die Ereignissummierungslogik durch
einen Verarbeitungstakt betrieben wird, und einen Ereignisgenerator
zur Erzeugung von Ereignissen, die durch die Ereignisdaten auf der
Grundlage der summierten Zeitablaufdaten erzeugt werden, die in
paralleler Form aus der Ereignissummierungslogik erhalten werden.
Der Ereignisgenerator empfängt
N summierte Zeitablaufdaten in paralleler Form aus von der Ereignissummierungslogik
mit einer Rate des Verarbeitungstaktes und erzeugt die summierten Zeitablaufdaten
in einer seriellen Form mit einer Rate des Ereignistaktes, die N-mal
höher ist
als die des Verarbeitungstakts.
-
Ein
weiterer Gesichtspunkt der vorliegenden Erfindung ist ein Verfahren
zur Verarbeitung von Ereignissen zur Verwendung mit einem ereignisbasierten
Testsystem. Das Verfahren beinhaltet die folgenden Schritte: Speichern
von Ereignisdaten, die Zeitablaufdaten für jedes Ereignis enthalten
und aus einem ganzzahligen Vielfachen einer Taktperiode (Ereigniszähldaten)
und einem Bruchteil der Taktperiode (Ereignisnoniusdaten) gebildet
werden, wobei die Ereignisdaten als Gruppen aus Ereignissen spezifiziert werden,
wobei jede Gruppe aus einem Basisereignis und wenigstens einem Nebenereignis
aufgebaut ist, Summieren der Zeitablaufdaten und erzeugen der summierten
Zeitablaufdaten für
das Basisereignis und das Nebenereignis in paralleler Form, und
Erzeugung der Ereignisse, die durch die Ereignisdaten auf der Grundlage
der summierten Zeitablaufdaten spezifiziert werden, die in paralleler
Form erhalten werden.
-
Ein
weiterer Gesichtspunkt der vorliegenden Erfindung ist ein Verfahren
zur Verarbeitung von Ereignissen zur Verwendung mit einem ereignisbasierten
Testsystem. Das Verfahren beinhaltet die folgenden Schritte: Speichern
von Ereignisdaten, die Zeitablaufdaten für jedes Ereignis enthalten
und aus einem ganzzahligen Vielfachen einer Taktperiode (Ereigniszähldaten)
und einem Bruchteil der Taktperiode (Ereignisnoniusdaten) gebildet
werden, wobei die Ereignisdaten als Gruppen aus Ereignissen spezifiziert werden,
wobei jede Gruppe aus einem Basisereignis und wenigstens einem Nebenereignis
aufgebaut ist, Summieren der Zeitablaufdaten und Erzeugen der summierten
Zeitablaufdaten an N Ausgängen
in paralleler Form mit einer Rate eines Verarbeitungstakts, und
Empfang von N summierten Zeitablaufdaten in paralleler Form mit
des Rate eines Verarbeitungstakts und Erzeugung der summierten Zeitablaufdaten in
einer seriellen Form mit einer Rate eines Ereignistakts, die N-mal
höher ist
als die des Verarbeitungstakts.
-
Gemäß der vorliegenden
Erfindung kann die Verarbeitung von Ereigniszeitabläufen für ereignisbasierte
Hochgeschwindigkeitstestsysteme durchgeführt werden, um die Noniusdaten
mit der Rate eines Ereignistakts unter Verwendung eines Verarbeitungstakts
zu erzeugen, die wesentlich langsamer ist als die des Ereignistakts.
Das Ereignisverarbeitungsgerät
führt unter
Verwendung des Verarbeitungstakts eine parallele Ereignisverarbeitung
durch, wodurch summierte Noniusdaten mit der rate des Ereignistakts
erzeugt werden.
-
Des
Weiteren ist das ereignisbasierte Testsystem bei der vorliegenden
Erfindung in der Lage, unter Verwendung des Verarbeitungstakts Verzögerungszeiten
mit hohen Zeitablaufauflösungen
entsprechend dem Ereignistakt zu erzeugen. Der Ereignisgenerator
beim ereignisbasierten Testsystem empfängt eine Vielzahl von Noniusdatenwerten,
die in einer parallelen Form mit einer Rate des Verarbeitungstakts
empfangen wurden, und erzeugt die Noniusdatenwerte in einer seriellen
Form mit der rate des Ereignistakts, wodurch die Zeitablaufauflösung mit dem
Ereignistakt übereinstimmt.
-
Kurze Beschreibung
der Zeichnung
-
1 ist ein schematisches
Blockdiagramm, das den grundlegenden Aufbau eines ereignisbasierten
Testsystems für
die Einbeziehung des Geräts
und des Verfahrens der vorliegenden Erfindung zur Verarbeitung von
Ereignissen zeigt.
-
2 ist ein Zeitablaufdiagramm,
das die grundlegende Beziehung zwischen den Ereigniszähldaten
und dem Ereignisnonius zur Beschreibung der Zeitdifferenz zwischen
zwei aufeinander folgenden Ereignissen zeigt.
-
3 ist ein Zeitablaufdiagramm,
das den Zeitablaufzusammenhang zwischen verschiedenen Ereignissen
relativ zu einem Ereignistakt zeigt, um das Konzept einer Ereignissummierungsoperation
im ereignisbasierten Testsystem zu zeigen.
-
4A ist eine Tabelle, die
ein allgemeines Beispiel für
in einem Ereignisspeicher gespeicherte Ereignisdaten zeigt, wenn
sich ein Ereignistakt und ein Verarbeitungstakt in einer Beziehung
1 zu 1 befinden, und 4B ist
ein Signalformdiagramm, das eine Folge von Ereignissen auf der Grundlage
der Ereignisdaten von 4A zeigt.
-
5 ist ein Blockdiagramm,
das ein Beispiel eines Aufbaus in der Ereignissummierungslogik zur
Verarbeitung der Ereigniszeitabläufe
bei der Signalform von 4B auf
der Grundlage der Ereignisdaten, die in der Datentabelle von 4A gezeigt sind.
-
6 ist ein Signalformdiagramm,
das die parallele Verarbeitung bei einem ersten Ausführungsbeispiel
der vorliegenden Erfindung zeigt, bei dem die Zeitperiode eines
jeden Verarbeitungstaktes doppelt so lang ist wie die eines jeden
Ereignistaktes.
-
7A ist eine Datentabelle,
die ein Beispiel für
im Ereignisspeicher gespeicherte Ereignisdaten zeigt, und 7B ist ein Blockdiagramm
zur Ausführung
der parallelen Ereignisverarbeitung 1 zu 2, um den in 6 gezeigten Zusammenhang
des Zeitablaufs zu erzeugen.
-
8 ist ein Signalformdiagramm,
das die parallele Verarbeitung bei einem ersten Ausführungsbeispiel
der vorliegenden Erfindung zeigt, wobei die Zeitperiode eines jeden
Verarbeitungstakt viermal so lange ist wie die eines jeden Ereignistaktes.
-
9 ist eine Datentabelle,
die ein Beispiel für
im Ereignisspeicher gespeicherte Ereignisdaten zeigt, zur Ausführung der
parallelen Ereignisverarbeitung 1 zu 4, um den in 8 gezeigten Zusammenhang des Zeitablaufs
zu erzeugen.
-
10 ist ein Blockdiagramm,
das ein Beispiel eines Aufbaus in der Ereignissummierungslogik zur
Ausführung
der parallelen Ereignisverarbeitung 1 zu N bei einem ersten Ausführungsbeispiel
der vorliegenden Erfindung zeigt.
-
11 ist ein Signalformdiagramm,
das die serielle Ereignisverarbeitung bei einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung zeigt, wobei die Zeitperiode eines jeden
Verarbeitungstaktes doppelt so lange ist wie die eines jeden Ereignistaktes.
-
12 ist eine Datentabelle,
die ein Beispiel für
im Ereignisspeicher gespeicherte Ereignisdaten zeigt, zur Ausführung der
seriellen Ereignisverarbeitung 1 zu 2, um den in 11 gezeigten Zusammenhang des Zeitablaufs
zu erzeugen.
-
13 ist ein Signalformdiagramm,
das die serielle Ereignisverarbeitung bei einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung zeigt, wobei die Zeitperiode eines jeden
Verarbeitungstaktes viermal so lange ist wie die eines jeden Ereignistaktes.
-
14 ist eine Datentabelle,
die ein Beispiel für
im Ereignisspeicher gespeicherte Ereignisdaten zeigt, zur Ausführung der
seriellen Ereignisverarbeitung 1 zu 4, um den in 13 gezeigten Zusammenhang des Zeitablaufs
zu erzeugen.
-
15 ist ein Blockdiagramm,
das ein Beispiel eines Aufbaus in der Ereignissummierungslogik zur
Ausführung
der seriellen Ereignisverarbeitung 1 zu N bei einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung zeigt.
-
16 ist ein Blockdiagramm,
das ein Beispiel eines Aufbaus in einem ereignisbasierten Testsystem
zeigt, wobei ein Ereignisgenerator die Ereignisnoniuswerte als Bruchteile
des Verarbeitungstaktzyklus behandelt.
-
17 ist eine Tabelle, die
die Auflösung des
Zeitablaufs der Noniusdaten mit fixen Noniusbits zeigt, wenn die
Noniusbits ein Bruchteil des Verarbeitungstaktes sind und wenn der
Ereignisgenerator so aufgebaut ist, wie es in 16 gezeigt ist.
-
18 ist eine Tabelle, die
die Auflösung des
Zeitablaufs der Noniusdaten mit variablen Noniusbits zeigt, wenn
die Noniusbits ein Bruchteil des Verarbeitungstaktes sind und wenn
der Ereignisgenerator so aufgebaut ist, wie es in 16 gezeigt ist.
-
19 ist ein Blockdiagramm,
das ein Beispiel eines Aufbaus bei einem dritten Ausführungsbeispiel
der vorliegenden Erfindung zeigt, wobei ein Ereignisgenerator die
Ereignisnoniuswerte als Bruchteile des Ereignistaktzyklus behandelt.
-
Die 20A bis 20E sind Zeitablaufdiagramme, die den
Zusammenhang des Zeitablaufs bei den Noniusdaten beim Ereignisgenerator
von 19 zeigt, wenn der
Ereignisgenerator eine Demultiplexung 1 zu 2 mit einbezieht.
-
Die 21A bis 21E sind Zeitablaufdiagramme, die den
Zusammenhang des Zeitablaufs bei den Noniusdaten beim Ereignisgenerator
von 19 zeigt, wenn der
Ereignisgenerator ein Ereignisdemultiplexen 1 zu 4 mit einbezieht.
-
22 ist eine Tabelle, die
die Auflösung des
Zeitablaufs der Noniusdaten mit fixen Noniusbits zeigt, wenn die
Noniusbits bei einem dritten Ausführungsbeispiel ein Bruchteil
des Ereignistaktes sind, wenn der Ereignisgenerator so aufgebaut
ist, wie es in 19 gezeigt
ist.
-
23 ist eine Tabelle, die
ein Beispiel für die
im Ereignisspeicher gespeicherten Ereignisdaten zeigt, die als Ereignistypdaten
Nichtoperationsereignisse zur Erzeugung der Signalformen der 24A bis 24B beinhaltet.
-
Die 24A bis 24G sind Zeitablaufdiagramme, die den
Zusammenhang des Zeitablaufs zeigt, der vom Ereignisgenerator von 19 erzeugt wird, der das
Ereignisdemultiplexen 1 zu 2 auf der Grundlage der Ereignisdaten
von 23 mit einbezieht.
-
Detaillierte
Beschreibung der Erfindung
-
Die
Ausführungsbeispiele
der vorliegenden Erfindung werden unter Bezugnahme auf die beigefügte Zeichnung
beschrieben werden. Ein Verfahren und ein Gerät zur Verarbeitung von Ereignissen
sind in der Lage, unter Verwendung eines Verarbeitungstakts, der
wesentlich langsamer ist als der Ereignistakt, eine Verarbeitung
des Ereigniszeitablaufs durchzuführen.
Wie es oben erwähnt
wurde, ist bei der vorliegenden Erfindung der Ereignistakt eine
Verarbeitungsrate der Ereignisdaten und ein Verarbeitungstakt ist
ein Takt, den die Hardware verwendet, um seine Ereignisverarbeitung
durchzuführen.
Wegen dieser parallelen Verarbeitung erreicht die vorliegende Erfindung
durch Verwendung mehrfacher Nonien pro Verarbeitungstaktzyklus eine
hohe Ereignisverarbeitungsrate, wodurch ein Hochgeschwindigkeits-Testsystem
erzeugt wird.
-
Zuerst
wird der Prozess der Berechnung des Ereigniszeitablaufs betrachtet,
bei dem der Ereignistakt und der Verarbeitungstakt einander identisch sind.
Dieser Fall tritt auf, wenn ein Ereignistestsystem ein Hochgeschwindigkeitstestsystem
ist, bei dem die Hardware in der Lage ist, mit einem Verarbeitungstakt
zu arbeiten, der die gleiche Wiederholungsrate aufweist wie die
des Ereignistakts. Die direkte Übereinstimmung
sowohl des Ereignistakts als auch des Verarbeitungstakts bedeutet,
dass die Ereigniszähllogik
einfach die Verarbeitungstakte zählen
kann und die Noniussummierung Bruchteile des Verarbeitungstaktzyklus
repräsentiert.
-
4A ist eine Tabelle, die
ein allgemeines Beispiel für
Ereignisdaten zeigt, die in einem Ereignisspeicher gespeichert sind,
und 4B ist ein Signalformdiagramm,
das eine Folge von Ereignissen auf der Grundlage der Ereignisdaten
von 4A zeigt, wobei
die Frequenz des Ereignistakts direkt mit der des Verarbeitungstakts übereinstimmt.
In dieser Situation werden die Zeitablaufdaten, weil keine parallele
Verarbeitung durchgeführt
wird, durch einen Satz von Ereigniszähldaten (ganzer Referenztakt) und
Ereignisnoniusdaten (Bruchteile des Referenztakts) definiert. Des
Weiteren weist jedes Ereignis das gleiche Gewicht auf (d. h. Ereignisbeschreibung),
demgemäß gibt es
keine Unterscheidung zwischen einem Basisereignis und einem Nebenereignis,
wie es bei der parallelen Verarbeitung erforderlich ist.
-
In
der Datentabelle von 4A ist
jedes der Ereignisse E0 bis E8 (8)
eine Zeitdifferenz vom unmittelbar vorangegangenen Ereignis. Solche
Zeitdifferenzen werden in der äußersten
linken Spalte von Tabelle 4A und zudem im Signaldiagramm von 4B durch ΔV0, ΔV1, ΔV2, ... ΔV8 angegeben. Da jede Zeitdifferenz eine Zeitdauer
zwischen zwei aufeinander folgenden Ereignissen ist, wird solch
eine Zeitdifferenz einfach durch eine Kombination der Ereigniszähldaten
und der Ereignisnoniusdaten ausgedrückt. Die Ereigniszähldaten
C0 bis C8 werden in einer Spalte "Zählung" und die Noniusdaten
V0 bis V8 werden in einer Spalte "Nonius" der Tabelle gezeigt. Die Spalte "Ereignistyp" definiert für jedes
Ereignis einen Ereignistyp, wie etwa "Ansteuerung logisch hoch" (von 1 auf 0) und "Ansteuerung logisch
niedrig" (von 0
auf 1).
-
Beispielsweise
ist das Ereignis E2 vom Ereignis E1 um ΔV2 abgesondert
und ist durch die Ereigniszähldaten
C2 (ganzer Teilwert) und die Noniusdaten V2 (Bruchteilwert) definiert.
Demgemäß wird das
Ereignis E2 als ΔVZ = C2 × Tp
+ V2 ausgedrückt, wobei
Tp eine Zyklenzeitdauer des Verarbeitungstakts (Ereignistakts) ist.
Gleichermaßen
ist das Ereignis E3 vom Ereignis E2 um ΔV3 abgesondert
und ist durch die Ereigniszähldaten
C3 (ganzer Teilwert) und die Noniusdaten V3 (Bruchteilwert) definiert.
Demgemäß wird das
Ereignis E3 als ΔV3 = C3 × Tp
+ V3 ausgedrückt. 4B zeigt den Zusammenhang
des Zeitablaufs zwischen den Ereignissen in Bezug auf den Ereignistakt
(Verarbeitungstakt).
-
5 ist ein Blockdiagramm,
das ein Beispiel eines Aufbaus in einer Ereignissummierungslogik
zur Berechnung der Ereigniszeitabläufe auf der Grundlage der in
4A gezeigten Ereignisdaten zeigt,
um den Zusammenhang der Zeitabläufe
in den Ereignissignalformen von
4B zu
reproduzieren. Die Ereignissummierungslogik beinhaltet einen Akkumulator,
der aus einen Addierer
32 und einem Register
34 gebildet
wird, eine Ereigniszähllogik
36 und eine
Ereignisverarbeitungs-Zustandsmaschine
38. Der Verarbeitungstakt
wird herkömmlicherweise
an die Zustandsmaschine
38, die Ereigniszähllogik
36 und
das Register
34 geliefert. Die Ereigniszähldaten aus
dem Ereignisspeicher werden an die Ereigniszähllogik
36 geliefert
und die Ereignisnoniusdaten aus dem Ereignisspeicher werden an den
Addierer
32 geliefert. Die detaillierte Beschreibung bezüglich des Schaltungsaufbaus
der Ereignissummierungslogik und ihrer Funktionsweise wird in der
oben erwähnten
US-Patentanmeldung Nr.
09/286,226 bereitgestellt.
-
Die
Ereigniszähllogik 36 ist
beispielsweise ein Rückwärtszähler, der
durch einen numerischen Wert, der durch die Ereigniszähldaten
ausgedrückt wird,
festgelegt wird. Auf diese Weise erzeugt die Ereigniszähllogik 36 einen
Endzählpuls,
wenn das Zählungsergebnis
durch Zählung
der Zahl an Verarbeitungstakten Null erreicht. Nach dem Erhalt des
Endzählpulses
von der Ereigniszähllogik 36 erzeugt
die Ereigniszustandsmaschine 38 eine Gültig-Daten-Freigabe (Freigabesignal),
die in Synchronisation mit dem Verarbeitungstakt an den Akkumulator
gesandt wird. Der Akkumulator summiert die Noniusdaten und nach
dem Erhalt der Gültig-Daten-Freigabe von der
Ereigniszustandsmaschine 38 erzeugt der Akkumulator die
summierten Noniusdaten.
-
Entsprechend
werden die summierten Noniusdaten zum Zeitpunkt, der durch die Ereigniszähldaten
(Gültig-Daten-Freigabe)
definiert ist, an den Ereignisgenerator
24 (
1) geliefert. Der Ereignisgenerator
24 weist
eine Verzögerungsschaltung
auf, die die Verzögerungszeit,
die durch die summierten Noniusdaten definiert wird, zum Zeitablauf
der Gültig-Daten-Freigabe
hinzuaddiert. Die Details des Ereignisgenerators werden in der US-Patentanmeldung
Nr.
09/286,226 offenbart,
die am 25. September 1999 eingereicht wurde und die sich im Besitz
des gleichen Zessionars dieser Erfindung befindet.
-
Deshalb
wird beispielsweise beim Ereignis E2, bei dem die Ereignisdaten
C2 betragen und die Ereignisnoniusdaten V2 betragen, durch die Ereigniszähllogik 36 ein
Endzählpuls
erzeugt, wenn der Verarbeitungstakt C2-mal gezählt wurde. Nach Erhalt des
Endzählsignals
erzeugt die Ereignisstatusmaschine 38 die Datenfreigabe
(Freigabesignal), die an den Akkumulator gesendet wird. Im Akkumulator werden
die Noniusdaten V2 zu den vorherigen Noniusdaten hinzuaddiert und
die sich ergebenden Noniusdaten werden zum Zeitpunkt der Datenfreigabe von
der Ereigniszustandsmaschine 38 erzeugt. Auf der Grundlage
der Ereignistypdaten (wie etwa Ansteuerung hoch oder Ansteuerung
niedrig) aus dem Ereignisspeicher und der summierten Noniusdaten aus
der Ereignissummierungslogik erzeugt der Ereignisgenerator 24 das
Ereignis E2, das ΔV2 vom Ereignis E1 abgesetzt ist.
-
Da
der Zeitablauf eines jeden Ereignisses durch die Zeitdauer ab dem
unmittelbar vorangegangenen Ereignis definiert wird, wird beim Beispiel
der 4A bis 4B und 5 für
jedes einzelne Ereignis ein Satz der Ereigniszähldaten und der Ereignisnoniusdaten
spezifiziert. Die Ereignissummierungslogik zählt einfach die Verarbeitungstakte
und die Noniussummierung repräsentiert
Bruchteile des Verarbeitungstaktzyklus. Bei diesem Beispiel können jedoch die
Ereignisse, wenn sich der Ereignistakt (Referenztakt für die Ereigniszeitabläufe) vom
Verarbeitungstakt unterscheidet, nicht genau durch die in 4A gezeigten Daten oder
durch die Schaltungsanordnung von 5 erzeugt
werden. Wie es oben erwähnt
wurde, unterscheidet sich die Frequenz des Ereignistakts bei einem
typischen Testsystem von der des Verarbeitungstakts und ist wesentlich
höher als
der Verarbeitungstakt.
-
Um
dieses Problem zu lösen,
wird deshalb bei der vorliegenden Erfindung die Berechnung des Ereigniszeitablaufs
durch die parallele Verarbeitung der Noniusdaten durchgeführt. Die
parallele Ereignisverarbeitung erreicht unter Verwendung eines Verarbeitungstaktes
mit relativ geringer Geschwindigkeit eine Ereigniserzeugung mit
hoher Geschwindigkeit. Ein Beispiel des Zusammenhangs der Zeitabläufe wird
durch die Signalformen veranschaulicht, die in 6 gezeigt sind. Bei diesem Beispiel wird
die parallele Verarbeitung durchgeführt, bei der die Zeitperiode
eines jeden Verarbeitungstaktes doppelt so lang ist wie der des
Ereignistaktes (parallele Ereignisverarbeitung 1 zu 2). Um die erforderliche
Rate zur Erzeugung von Ereignissen zu erreichen, muss jeder Verarbeitungstaktzyklus
zwei Ereignisse aufweisen. Zur Durchführung der in 6 gezeigten parallelen Ereignisverarbeitung
1 zu 2 speichert der Ereignisspeicher die Ereignisdaten in einer
in 7A gezeigten Art
und Weise, welche von der Ereignissummierungslogik (Ereignisverarbeitungspipeline)
von 7B verwendet wird.
-
Wie
es im Signalformdiagramm von 6 gezeigt
ist, der Zeitablauf des Ereignisses E1 beträgt eine Zeitdifferenz ΔV1 vom Ereignis E0, welche die gleiche ist
wie im Beispiel von 4A.
Der Zeitablauf des Ereignisses E2 beträgt jedoch eine Zeitdifferenz ΔV2 vom Ereignis E0, ungleich dem Beispiel
von 4A, bei dem die
Zeitdauer mit Bezug auf das Ereignis E1 definiert wird. Gleicherweise
werden in 6 sowohl das
Ereignis E3 als auch das Ereignis E4 durch die Zeitdifferenzen ΔV3 bzw. ΔV4 vom Ereignis E2 definiert.
-
In
der Datentabelle von 7A werden
die Ereignisse E0, E2 und E4 als Basisereignisse beschrieben, während die
Ereignisse E1, E3, und E5 als Nebenereignisse beschrieben werden.
Diese Nebenereignisse werden lediglich durch die Noniusdaten definiert,
demgemäß werden
für die
Nebenereignisse E1, E3 und E5 keine Ereigniszähldaten bereitgestellt. Die
Ereigniszähldaten
(ganze Zahl an Verarbeitungstakten) der Basisereignisse wird unter
Bezugnahme auf das vorangegangene Basisereignis (nicht auf das vorangegangene
Nebenereignis) definiert. Demgemäß sind die
Ereigniszähldaten
C2 des Ereignisses E2 eine ganze Zahl des Verarbeitungstaktzyklus
ab dem Ereignis E0.
-
Auf
diese Weise wird eine Gruppe aus Basisereignissen und Nebenereignissen
zur Erzeugung paralleler Ausgaben der summierten Noniusdaten spezifiziert.
Entsprechend der Tabelle von 7A werden
eine Gruppe aus dem Basisereignis E0 und dem Nebenereignis E1, eine
Gruppe aus dem Basisereignis E2 und dem Nebenereignis E3 und eine Gruppe
aus dem Basisereignis E4 und dem Nebenereignis E5 erzeugt. Die Ereignisdaten
für jede
Gruppe werden parallel verarbeitet und parallel werden ihre summierten
Noniusdaten für
das Basisereignis und das Nebenereignis erzeugt, wie es in der Ereignissummierungslogik
von 7B gezeigt ist.
-
Wie
es in 6 gezeigt ist,
ist ein momentaner Zeitablauf des Basisereignisses eine Summe aus allen
vorherigen Basisereigissen. Demgemäß ist der Zeitablauf des Ereignisses
E4 (Basisereignis) eine Summe aus Zeitabläufen der Ereignisse E0, E2
und E4, d. h. ΔV0 + ΔV2 + ΔV4. Ein momentaner Zeitablauf von Nebenelementen
ist die Summe aller vorherigen Basisereignisse unter Hinzufügen der
Noniusdaten des momentanen Nebenereignisses. Demgemäß ist der
Zeitablauf des Ereignisses E5 (Nebenereignis) eine Summe aus Zeitabläufen der
Ereignisse E0, E2, E4 und E5, d. h. ΔV0 + ΔV2 + ΔV4 + ΔV5.
-
Wie
es oben erwähnt
wurde, wird die Zeitdifferenz des Basisereignisses durch eine Kombination aus
den Ereigniszähldaten
und den Ereignisnoniusdaten definiert. Demgemäß wird die Zeitdifferenz ΔV0 durch die Ereigniszähldaten C0 und die Noniusdaten V0
definiert, die Zeitdifferenz ΔV2 wird durch die Ereigniszähldaten
C2 und die Noniusdaten V2 definiert und die Zeitdifferenz ΔV4 wird durch die Ereigniszähldaten
C4 und die Noniusdaten V4 definiert. Die Zeitdifferenz der Nebenereignisse
wird jedoch lediglich durch die Noniusdaten definiert. Demgemäß wird die Zeitdifferenz ΔV1 durch die Noniusdaten V1 definiert, die
Zeitdifferenz ΔV3 wird durch die Noniusdaten V3 definiert
und die Zeitdifferenz ΔV5 wird durch die Noniusdaten VS definiert.
-
Um
die Ereigniszeitabläufe
im Beispiel der 6 und 7A zu berechnen, führt die
Ereignissummierungslogik, wie sie etwa in 7B gezeigt ist, die parallele Verarbeitung
1 zu 2 durch. Beim Beispiel von 7B beinhaltet
die Ereignissummierungslogik einen Akkumulator, der aus einem Addierer 32 und einem
Register 34 gebildet wird, eine Ereigniszähllogik 36 und
eine Ereigniszustandsmaschine 38. Wie aus 7B ersehen werden kann, weist die Ereignissummierungslogik
in Bezug auf die Basisereignisse im Grunde den gleichen Schaltungsaufbau
wie der von 5 auf. Die
Ereignissummierungslogik beinhaltet darüber hinaus einen Addierer 44(2) zur
parallelen Verarbeitung der Nebenereignisse. Die Register 40(1), 40(2) und 42(2) sind
für das
Re-Timing der Daten vorgesehen, die in der Schaltungsanordnung der
Ereignissummierungslogik verarbeitet werden.
-
In
der Ereignissummierungslogik werden die summierten Ereignisnonien
(Noniusdaten der vorangegangenen und des momentanen Basisereignisses,
die miteinander summiert wurden) an den Addierer 44(2) geliefert,
wo sie zu den Ereignisnoniusdaten für das Nebenereignis addiert
werden. Der Verarbeitungstakt wird herkömmlicherweise an die Ereigniszustandsmaschine 38,
die Ereigniszähllogik 36 und das
Register 34 geliefert. Die Ereigniszustandsmaschine 38 und
die Ereigniszähllogik 36 sind
die gleichen wie die in 5.
-
Bei
dieser Anordnung werden das Basisereignis und das Nebenereignis
auf parallele Weise verarbeitet, wodurch die Ereigniszeitabläufe eher
in der Geschwindigkeit des Ereignistakts als in der Geschwindigkeit
des Verarbeitungstakts erzeugt werden. Beispielsweise wird in Bezug
auf die Ereignisse E2 und E3 die Berechnung der Zeitabläufe für diese Ereignisse
parallel durchgeführt.
Bei diesem Beispiel ist das Ereignis E2 ein Basisereignis, das die
Ereigniszähldaten
C2 aufweist und bei dem die Ereignisnoniusdaten V2 betragen, und
das Ereignis E3 ist ein Nebenereignis, das nur die Ereignisnoniusdaten
aufweist. Die Noniusdaten des Ereignisses E3 (Nebenereignis) wird
zu den summierten Daten des Ereignisses E2 (Basisereignis) addiert.
-
Bezüglich dem
Ereignis E2 werden die Ereigniszähldaten
C2 an die Ereigniszähllogik 36 geliefert, die
den Verarbeitungstakt zählt
und einen Endzählpuls
erzeugt, wenn das Ergebnis der Rückzählung Null
erreicht, d. h. der Verarbeitungstakt C2-mal gezählt wurde. Nach dem Erhalt
des Endzählpulses
erzeugt die Ereigniszustandsmaschine 38 in Synchronisation
mit dem Verarbeitungstakt eine Gültig-Daten-Freigabe
(Freigabesignal), die an den Akkumulator gesandt wird. Die Ereignisnoniusdaten
für die
Basisereignisse werden an den Akkumulator geliefert, so dass die
Noniusdaten der vorangegangenen Basisereignisse und des Ereignisses
E2 summiert werden, wodurch die summierten Noniusdaten für das Ereignis
E2 über
das Register 40(1) erzeugt werden. Auf diese Weise werden
die summierten Noniusdaten für
das Ereignis E2 mit dem Zeitablauf erzeugt, der durch die Ereigniszähldaten
C2 bestimmt wird.
-
Die
summierten Noniusdaten für
das Ereignis E2 werden des Weiteren durch den Addierer 44(2) zu
den Ereignisnoniusdaten für
das Ereignis E3 hinzuaddiert, wodurch über das Register 40(2) die summierten
Noniusdaten für
das Ereignis E3 erzeugt werden. Die summierten Noniusdaten für das Ereignis
E3 werden erzeugt, sobald die summierten Noniusdaten für das Ereignis
E2 erzeugt werden. Da die summierten Noniusdaten für die Ereignisse
E2 und E3 in paralleler Form erzeugt werden, wie es in 7B gezeigt ist, können demgemäß solche
summierten Noniusdaten durch den Ereignisgenerator durch den Zeitablauf
des Ereignistakts verarbeitet werden. Dies wird in 7B als ein Ereignistakt 1 und ein Ereignistakt
2 veranschaulicht.
-
Ein
anderes Beispiel der parallelen Ereignisverarbeitung bei der vorliegenden
Erfindung ist in den 8 bis 10 gezeigt, bei dem die Zeitperiode
eines jeden Verarbeitungstaktes viermal so lang ist wie die eines
jeden Ereignistaktes (parallele Verarbeitung 1 zu 4). Die Signalform
von 8 zeigt ein Beispiel solch
einer parallelen Ereignisverarbeitung 1 zu 4 und die Datentabelle
von 9 zeigt ein Beispiel
für Ereignisdaten,
die im Ereignisspeicher gespeichert sind, zur Erzeugung der Signalform
von 9. Das Schaltungsdiagramm
von 10 verallgemeinert eine
Ereignissummierungslogik zur Durchführung der parallelen Verarbeitung
1 zu N, wobei N–1
Addierer parallel mit dem Akkumulator für die Basisereignisse vorgesehen
sind. Um die für
die Erzeugung von Ereignissen erforderliche Rate zu erreichen, muss
in diesem Fall jeder Verarbeitungszyklus vier Ereignisse aufweisen.
-
Wie
es im Signalformdiagramm von 8 gezeigt
ist, ist der Zeitablauf des Ereignisses E1 eine Zeitdifferenz ΔV1 vom Ereignis E0, die die gleiche ist wie
beim Beispiel von 4A.
Die Zeitabläufe
der Ereignisse E2 und E3 sind jeweils die Zeitdifferenzen ΔV2 und ΔV3, die jeweils ab dem Ereignis E0 definiert werden.
In 9 werden die Ereignisdaten
für das Ereignis
E0 aus einem Satz von Ereigniszähldaten C0
und Ereignisnoniusdaten V0 gebildet. Die Ereignisdaten für die Ereignisse
E1, E2 und E3 werden lediglich durch die Noniusdaten V1, V2 bzw.
-
V3
gebildet. Mit anderen Worten, das Ereignis E0 ist ein Basisereignis,
während
die Ereignisse E1, E2 und E3 Nebenereignisse sind, wobei eine Gruppe
aus einem Basisereignis (Ereignis E0) und drei Nebenereignissen
(Ereignisse E1 bis E3) werden bei der vorliegenden Erfindung parallel
verarbeitet. Gleicherweise ist bei 8 das
Ereignis E4 ein Basisereignis, das durch die Ereigniszähldaten
C4 und die Ereignisnoniusdaten V4 beschrieben werden, während die
Ereignisse E5, E6 und Eu7 Nebenereignisse sind, die nur durch die
Noniusdaten V5, V6 und V7 beschrieben werden. Auf diese Weise wird
bei der vorliegenden Erfindung eine Gruppe aus einem Basisereignis
(Ereignis E4) und drei Nebenereignissen (Ereignisse E5 bis E7) parallel
verarbeitet.
-
Wie
es in 8 gezeigt ist,
ist ein momentaner Zeitablauf des Basisereignisses eine Summe aus allen
vorhergehenden Basisereignissen. Demgemäß ist der Zeitablauf des Ereignisses
E4 (Basisereignis) beispielsweise eine Summe der Zeitabläufe der
Basisereignisse E0 und E4, d. h. ΔV0 + ΔV4. Ein momentaner Zeitablauf des Nebenereignisses
ist eine Summe aus allen vorhergehenden Basisereignissen unter Addition
der Noniusdaten des momentanen Nebenereignisses. Demgemäß ist der
Zeitablauf des Ereignisses E5 (Nebenereignis) beispielsweise eine Summe
aus den Zeitabläufen
der Ereignisse E0, E4 und E5, d. h. ΔV0 + ΔV4 + ΔV5.
-
Um
die Ereigniszeitabläufe
im vorigen Beispiel zu berechnen, ist die Ereignissummierungslogik 10 für eine parallele
Verarbeitung 1 zu N aufgebaut. Bei diesem Schaltungsdiagramm ist
der Akkumulator, der aus dem Addierer 32 und dem Register 34 gebildet
wird, die Ereigniszähllogik 36 und
die Ereignisverarbeitungszustandsmaschine 38 im Wesentlichen
die gleichen wie jene, die in den 5 und 7B gezeigt sind. Wie aus
der 10 ersehen werden kann,
beinhaltet die Ereignissummierungslogik des Weiteren Addierer 44(2) bis 44(N) für die parallele Verarbeitung
der N Ereignisse (für
jede Gruppe) zur selben Zeit. Die Register 40(1) bis 40(N) und 40(2) bis 40(N) werden
für das
Re-Timing der Daten bereitgestellt, die in der Schaltungsanordnung
verarbeitet werden.
-
Bei
der Ereignissummierungslogik von 10 werden
die summierten Ereignisnoniusdaten (Noniusdaten des vorangegangen
und des momentanen Basisereignisses miteinander summiert) an die Addierer 44(2) bis 44(N) geliefert,
wobei sie zu den Ereignisnoniusdaten für das entsprechende Nebenereignis
addiert werden. Bei dieser Anordnung werden das Basisereignis und
das Nebenereignis auf eine parallele Weise verarbeitet, wodurch
die Ereigniszeitabläufe
für die
Gruppe erzeugt werden, die N Ereignisse zur gleichen Zeit aufweist.
Demgemäß können über die
parallelen Ausgaben der Ereignissummierungslogik die summierten
Noniusdaten mit der Rate des Ereignistaktes erhalten werden, selbst wenn
der Verarbeitungstakt um 1/N langsamer ist als der Ereignistakt.
-
Die 11 bis 15 zeigen das zweite Ausführungsbeispiel
der vorliegenden Erfindung, wobei die parallele Verarbeitung eine
serielle Summierung einer Gruppe aus einem Basisereignis und Nebenereignisseen
einbezieht. Die 11 und 12 zeigen ein Beispiel, bei
dem jeder Verarbeitungstakt doppelt so lang ist wie jeder Ereignistakt.
Die 13 und 14 zeigen ein Beispiel, bei
dem jeder Verarbeitungstakt viermal so lang ist wie jeder Ereignistakt.
Ein Beispiel des Aufbaus einer Ereignissummierungslogik zur Durchführung der
Zeitablaufberechnung ist in 15 gezeigt.
Bei der in den 6 bis 10 gezeigten parallelen Verarbeitung
werden die Noniusdaten für
jedes Nebenereignis lediglich unter Bezug auf das Basisereignis
definiert. Mit anderen Worten, die Noniusdaten für jedes Nebenereignis werden
nicht auf die Noniusdaten der anderen Nebenereignisse bezogen, wie
es in 8 gezeigt ist.
Deshalb kann beim ersten Ausführungsbeispiel
eine reine parallele Verarbeitung die summierten Noniusdaten für eine Gruppe aus
einem Basisereignis und Nebenereignissen parallel erzeugen.
-
Beim
zweiten, in den 11 bis 15 gezeigten Ausführungsbeispiel
werden die Noniusdaten jedoch für
jedes Nebenereignis als eine Zeitdauer ab einem unmittelbar vorhergehenden
Ereignis in einer Art und Weise definiert, die mit dem Beispiel
der 4A und 4B vergleichbar ist. Beim
Beispiel der 11 bis 15 werden die Nebenereignisse
lediglich durch die Noniusdaten beschrieben, die eine Zeitdauer
ab dem unmittelbar vorhergehenden Ereignis sind, und die Basisereignisse
werden durch eine Kombination aus den Ereigniszähldaten und den Ereignisnoniusdaten
beschrieben. Folglich muss die serielle Verarbeitung für die Noniusdaten
innerhalb jeder Gruppe aus dem Basisereignis und den Nebenereignissen
durchgeführt
werden. Da jedes Nebenereignis als eine Zeitdauer ab dem unmittelbar
vorangegangenen Ereignis definiert ist, wird beim zweiten Ausführungsbeispiel
erwartet, dass die Zahl von Datenbits für die Noniusdaten klein sein
kann, da eine Zeitdifferenz zwischen zwei aufeinander folgenden Ereignissen
klein sein kann.
-
Beim
Beispiel von 11 und 12, wo jeder Verarbeitungstakt
doppelt so lang ist wie jeder Ereignistakt, werden zwei Ausgaben
(summierte Noniusdaten) parallel erzeugt, während alle Ereignisdaten auf
eine serielle Weise summiert werden. Wie es im Signalformdiagramm
von 11 und in der Datentabelle
von 12 gezeigt ist,
beträgt
der Zeitablauf des Ereignisses E1 eine Zeitdauer ΔV1 ab dem Ereignis E0, wie beim Beispiel von 4A. Der Zeitablauf des Ereignisses
E2 beträgt
eine Zeitdauer ΔV2 ab dem Ereignis E1 und der Zeitablauf des
Ereignisses E3 beträgt
eine Zeitdauer ΔV3 ab dem Ereignis E2 und so weiter.
-
Auf
diese Weise wird der Zeitablauf eines jeden Ereignisses durch das
unmittelbar vorausgehende Ereignis definiert. Ungleich dem Beispiel
der 4A und 4B gibt es jedoch eine Unterscheidung zwischen
dem Basisereignis und dem Nebenereignis. Eine Gruppe, die aus einem
Basisereignis und Nebenereignissen besteht, wird zur Erzeugung paralleler
Ausgaben der summierten Noniusdaten spezifiziert, wie es in der
Ereignissummierungslogik von 15 gezeigt
ist.
-
In 12 werden die Ereignisdaten
für das Ereignis
E0 aus einem Satz von Ereignisdaten C0 und Ereignisnoniusdaten V0
gebildet und die Ereignisdaten für
jedes der Ereignisse E2 und E4 werden zudem aus einem Satz von Ereigniszähldaten
und Ereignisnoniusdaten gebildet, d. h. C2 und V2 bzw. C4 und V4.
Die Ereignisse E1, E2 und E3 werden jedoch lediglich durch die Noniusdaten
V1, V3, bzw. VS definiert. Mit anderen Worten, die Ereignisse E0,
E2 und E4 sind Basisereignisse, während die Ereignisse E1, E3
und E5 Nebenereignisse sind.
-
Wegen
des Zusammenhangs 1 zu 2 erzeugt die Ereignissummierungslogik zwei
parallele Ausgaben, um die summierten Noniusdaten mit der rate des
Ereignistakts, eine für
das Basisereignis und eine für
das Nebenereignis. Im Fall, dass ein Zusammenhang 1 zu 4 besteht,
erzeugt die Ereignissummierungslogik vier parallele Ausgaben, eine
für das
Basisereignis und die anderen drei für die Nebenereignisse. Um den
Zusammenhang 1 zu N abzudecken, werden im Schaltungsdiagramm von 15 N Ausgaben erzeugt, wie
später
detaillierter beschrieben werden wird. Ungleich den in den 7B oder 10 gezeigten Ausführungsbeispielen, die lediglich
die reine parallele Verarbeitung mit einbezieht, bezieht die Zeitablaufberechnung
beim Beispiel der 11 bis 15 des Weiteren die serielle
Verarbeitung mit ein, weil der Ereigniszeitablauf für jedes
Ereignis als eine Zeitdifferenz ab dem unmittelbar vorhergehenden
Ereignis definiert wird.
-
Beim
Beispiel der 13 und 14, wo jeder Verarbeitungstakt
viermal so lang ist wie jeder Ereignistakt, werden vier Ausgaben
(summierte Noniusdaten) parallel erzeugt, während alle Ereignisdaten in serieller
Weise summiert werden. Wie es im Signalformdiagramm von 13 und in der Datentabelle von 14 gezeigt ist, beträgt der Zeitablauf
des Ereignisses E1 eine Zeitdauer ΔV1 ab
dem Ereignis E0, wie beim Beispiel von 4A. Der Zeitablauf des Ereignisses E2
beträgt
eine Zeitdauer ΔV2 ab dem Ereignis E1 und der Zeitablauf des
Ereignisses E3 beträgt
eine Zeitdauer ΔV3 ab dem Ereignis E2 und so weiter.
-
Auf
diese Art und Weise wird der Zeitablauf eines jeden Ereignisses
als eine Zeitdifferenz ab dem unmittelbar vorhergehenden Ereignis
definiert. In 14 werden
die Ereignisdaten für
das Ereignis E0 aus einem Satz aus Ereigniszähldaten C0 und Ereignisnoniusdaten
V0 gebildet und die Ereignisdaten für das Ereignis E4 werden zudem
aus einem Satz aus Ereigniszähldaten
C4 und Ereignisnoniusdaten V4 gebildet. Die Ereignisse E1, E2 und
E3 werden jedoch lediglich durch die Ereignisnoniusdaten V1, V2 bzw.
V3 definiert. Gleicherweise werden die Ereignisse E5, E6 und E7
lediglich durch die Ereignisnoniusdaten V5, V6 bzw. V7 definiert.
-
Mit
anderen Worten, die Ereignisse E0 und E4 sind Basisereignisse, während die
Ereignisse E1 bis E3 und E5 bis E7 Nebenereignisse sind. Ereignisse
in einer Gruppe, die aus einem Basisereignis (Ereignis E0) und drei
Nebenereignissen (Ereignisse E1 bis E3) besteht, werden bei der
vorliegenden Erfindung parallel verarbeitet. Gleicherweise werden
die Ereignisse in einer anderen Gruppe, die aus einem Basisereignis
(Ereignis E4) und drei Nebenereignissen (Ereignisse E5 bis E7) besteht,
bei der vorliegenden Erfindung parallel verarbeitet.
-
In 15 beinhaltet die Ereignissummierungslogik
eine Ereigniszähllogik 36,
eine Ereigniszustandsmaschine 38, einen Ereignisakkumulator, der
aus einem Addierer 132 und einem Register 134, Addierern 144(1)
bis 144(1-N) und Registern 140(1) bis 140(N-1) zusammengesetzt
ist. Die Ereigniszähllogik 36 und
die Ereigniszustandsmaschine 38 sind im Wesentlichen die
gleichen als jene, die in den 7B und 10 gezeigt sind. Ungleich
den vorherigen Beispielen in den 7A und 10 summiert der Akkumulator
alle Noniusdaten, entweder der Nebenereignisse oder der Basisereignisse,
um die N-ten summierten Noniusdaten zu erzeugen.
-
Der
Addierer 144(1) addiert die Noniusdaten des Basisereignisses
zu den N-ten summierten Noniusdaten aus dem Akkumulator. Der Addierer 144(2) addiert
die Noniusdaten des Basisereignisses und des ersten Nebenereignisses
zu den N-ten summierten Noniusdaten aus dem Akkumulator. Ein ähnlicher Summierungsprozess
wird für
alle verbleibenden Nebenereignisse durchgeführt. Demgemäß führt die Ereignissummierungslogik
von 15 die serielle
Verarbeitung durch, während
die N parallelen Ausgaben erzeugt werden.
-
Wie
es im vorigen beschrieben worden ist, erreicht dieses Verfahren
durch Verwendung mehrfacher Nonien pro Verarbeitungstaktzyklus eine
höhere Ereignisverarbeitungsrate.
Auch wenn der Verarbeitungstakt um 1/N langsamer ist als der Ereignistakt, können die
summierten Noniendaten über
die N parallelen Ausgaben auf diese Weise mit einer Rate des Ereignistakts
erzeugt werden. Die Zahl der Nebenereignisse in jeder Gruppe ist
gleich der Zahl an Ereignistakten im Prozessortaktzyklus minus den
Ereignistakt, der mit dem Basisereignis verbunden ist. Es sollte
beachtet werden, dass dieses Verfahren auf einen Ereignistakt mit
beliebiger Geschwindigkeit skalierbar ist. Des Weiteren setzt das
Verfahren voraus, dass für
jeden Ereignistaktzyklus ein Ereignis (Basis- oder Nebenereignis)
besteht.
-
Das
dritte Ausführungsbeispiel
der vorliegenden Erfindung ist auf die Auflösung der Noniusdatenwerte gerichtet,
d. h. die Auflösung
der Platzierung der Ereignisflanken. Die Auflösung der Noniusdaten hängt davon
ab, wie ein Ereignisgenerator (wie er etwa in
1 gezeigt ist) diese Werte interpretiert. Ein
Beispiel des Aufbaus eines Ereignisgenerators ist in der oben erwähnten US-Anmeldung
Nr.
09/406,300 offenbart.
Die Noniuswerte (summierte Noniusdaten), wie etwa aus der Ereignissummierungslogik
von
10 oder
15 werden an verschiedene
Verzögerungsschaltungen
(Ereignisverzögerungslogik)
im Ereignisgenerator geliefert. Die Ereignisverzögerungsschaltung erzeugt Verzögerungszeiten,
die durch die Noniusdaten mit hoher Zeitablaufauflösung spezifiziert
sind. Wie es im Fachgebiet bekannt ist, werden solche Verzögerungszeiten
durch verschiedene Verzögerungsschaltungen
erzeugt, die typischerweise aus einer Serie verbundener CMOS-Gatter
aufgebaut sind.
-
Der
Ereignisgenerator kann alle hereinkommenden Noniusdatenwerte so
behandeln, dass sie Bruchteile des Verarbeitungstaktzyklus sind.
Das würde
der Fall sein, wenn der Verarbeitungstakt des Ereignisgenerators
selbst die gleiche Frequenz aufweist wie der der Ereignisverarbeitungspipeline
(beispielsweise die oben beschriebene Ereignissummierungslogik),
wie es im Blockdiagramm von 16 gezeigt
ist. Dieses Blockdiagramm zeigt Basiselemente in einem ereignisbasierten
Testsystem, das einen Ereignisspeicher zum Speichern von Ereignisdaten
enthält,
wie sie in den Datentabellen in den vorherigen Ausführungsbeispielen
gezeigt sind, ferner eine Verarbeitungspipeline 122, die
die oben beschriebene Ereignissummierungslogik enthält, und einen
Ereignisgenerator 124 zum Erzeugen von Ereignissen, wie
etwa Ansteuerereignissen und Abfrageereignissen.
-
Im
Beispiel von 16 werden
die Noniusdaten (summierte Noniusdaten) zuerst registriert, bevor
sie direkt an die Ereignisverzögerungslogik
(Ereignisverzögerungsschaltung)
gesandt werden. Die Ereignisverzögerungslogik
muss Verzögerungen
bereitstellen, die eine ganze Verarbeitungstaktperiode überspannt,
da keine anderen Takte mit höherer
Geschwindigkeit bestehen, um eine höhere Zeitablaufgranularität bereitzustellen.
Das bedeutet, dass die Noniusdatenbits in der Lage sein müssen, die
ganze Verarbeitungstaktperiode zu umfassen, während die gewünschte Zeitablaufauflösung beibehalten
wird.
-
Die
Tabelle von 17 veranschaulicht
die Noniusauflösung
(Zeitablaufauflösungen
für die
Ansteuerereignisse und die Abfrageereignisse), wenn feste Zahlen
an Noniusbits verwendet werden. Hier sollte beachtet werden, dass
die Auflösung
gleich der Zeitperiode des Pipelinetakts (Verarbeitungstakt) dividiert
durch die Zahl der Noniusbits ist. Als Beispiel für einen
Verarbeitungstakt von 125 MHz beträgt die Zeitperiode (ein Zyklus
pro Zeitdauer) 8 ns. In diesem Fall beträgt die Zeitablaufauflösung 62.5
ps, da feste 7 Bits der Noniusdaten 8 ns repräsentieren. Für einen Verarbeitungstakt
von 250 MHz beträgt
die Zeitperiode (eine Zykluszeitdauer) 4 ns, daher beträgt die Zeitablaufauflösung durch
die festen 7 Bit der Noniusdaten 31.25 ps.
-
Die
Tabelle von 17 zeigt
den Fall, bei dem die Zeitablaufauflösung auf der Grundlage des Verarbeitungstakts
festgelegt ist (d. h. ein Verarbeitungstakt von 250 MHz und Noniusdaten
von festen 7 Bit), ungeachtet der Ereignistaktfrequenz. Wie in dieser
Tabelle gezeigt ist, beträgt
die Verarbeitungstaktfrequenz (Pipelinetaktfrequenz) dann 125 MHz, die
Zeitablaufauflösung
durch die festen 7 Bit Noniusdaten beträgt 62.50 ps (Picosekunden).
Wenn die Verarbeitungstaktfrequenz 250 MHz beträgt, beträgt die Zeitablaufauflösung durch
die festen 7 Bit Noniusdaten 31.25 ps.
-
Demgemäß macht
es in diesem Fall nichts aus, wie die Ereignistaktfrequenz höher als
der Verarbeitungstakt ist, wie etwa 500 MHz bis 1.5 GHz, die Zeitablaufauflösung ist
unverändert.
Die Spalte "Nonius
pro Takt" gibt die
Zahl der parallelen Ausgaben der in der 10 und 15 gezeigten
Ereignissummierungslogik an. Das bedeutet, dass im Fall der in 17 gezeigten Tabelle die
Ereigniszeitablaufberechnung die Noniusdaten durch die parallele
Verarbeitung erzeugen kann, so dass sie mit der Rate des Ereignistakts
verwendet werden können,
jedoch ist die Zeitablaufauflösung
auf den Verarbeitungstakt beschränkt.
-
Die
Auflösung
des Testsystems kann durch Erhöhung
der Noniusbits verbessert werden, sowie die Ereignistaktfrequenz
steigt. Die Tabelle von 18 veranschaulicht
solch eine Alternative, wenn variable Noniusbits verwendet werden.
Wie die Tabelle von 18 zeigt,
kann die Auflösung
durch Verwendung von mehr Noniusbits verbessert werden. Wenn beispielsweise
die Verarbeitungstaktfrequenz (Pipeline) 250 MHz beträgt und die
Ereignistaktfrequenz 500 MHz beträgt, kann die Zeitablaufauflösung 15.63
ps sein, wenn die Noniusdaten durch 8 Bit definiert werden. Wenn
die Verarbeitungstaktfrequenz (Pipeline) 250 MHz beträgt und die
Ereignistaktfrequenz 1.5 GHz beträgt, kann die Zeitablaufauflösung 3.91
ps sein, wenn die Noniusdaten durch 10 Bit definiert werden.
-
Die
Tabelle von 18 macht
es erforderlich, dass die Noniusverzögerungslogik im Ereignisgenerator
Bits addieren muss, um die Differenz zwischen der Verarbeitunkstakfrequenz
und der Ereignisplatzierungsgenauigkeit zu kompensieren. Das bedeutet,
dass die Verarbeitungslogik im Ereignisgenerator 128 in 16 sowie die Ereignissummierungslogik
in den 10 und 15 jedes Mal erweitert oder
modifiziert werden müssen,
wenn die Ereignisfrequenz zunimmt. Weitere Nachteile beim vorhin
beschriebenen Weg der Noniusverwendung sind, dass die Noniuswerte
ein Bruchteil des Verarbeitungstaktzyklus sind, alle Logiken mit
geringerer Geschwindigkeit laufen, weil die Frequenz des Verarbeitungstakts wesentlich
geringer ist als die des Ereignistakts.
-
Die
Nachteile des obigen Verfahrens können überwunden werden, wenn der
Ereignisgenerator alle hereinkommenden Noniuswerte als Bruchteile des
Ereignistaktzylclus behandelt. Dies würde der Fall sein, wenn der
Verarbeitungstakt des Ereignisgenerators selbst durch Multiplizieren
der Verarbeitungstakte die gleiche Frequenz aufweist wie die Ereignistaktfrequenz.
In diesem Fall wird die Ereignisverarbeitungslogik die Daten verarbeiten,
die eine Taktfrequenz verwenden, die langsamer ist als die Ereignistaktrate,
aber Berechnungen durchführen, die
die Verarbeitung der Ereignisdaten mit der Ereignisdatenrate simuliert.
-
19 zeigt ein Beispiel diesen
Typs von System, bei dem eine Ereignisdemultiplexlogik den Verarbeitungstakt
(Pipelinetakt) als eine Dateneingabe verwendet, um die Demultiplexoperation
mit dem Verarbeitungstaktzyklus zu synchronisieren. Um genauer zu
sein, ein Ereignisgenerator 224 beinhaltet eine Ereignisdemultiplexlogik 226 und
eine Ereignisverzögerungslogik 228.
Die Ereignisdemultiplexlogik 226 empfängt zwei oder mehrere summierte
Noniuswerte aus der Ereignisverarbeitungspipeline (Ereignissummierungslogik) 122 in
paralleler Weise mit der Rate des Verarbeitungszyklus und erzeugt
eine serielle Ausgabe, die die Rate des Ereignistakts aufweist,
d. h. sie führt
eine Umwandlung parallel zu seriell durch.
-
Was
den Schaltungsaufbau betrifft, ist die Ereignisverzögerungslogik 228 äquivalent
mit der Ereignisverzögerungsschaltung 128 in 16, um eine feine Verzögerungszeit
zu erzeugen, die durch die summierten Noniusdaten spezifiziert wird.
Die Ereignisverzögerungslogik 228 arbeitet
jedoch mit der Rate des Ereignistakts, um eine Verzögerungszeit
zu erzeugen, die durch jeden der Noniuswerte spezifiziert wird,
die in einer seriellen Weise am Ausgang der Ereignisdemultiplexlogik 226 erzeugt
werden. Wie es im Fachgebiet bekannt ist, werden solche Verzögerungszeiten
durch variable Verzögerungsschaltungen
erzeugt, die typischerweise durch eine Serie von verbundenen CMOS-Gattern
aufgebaut sind.
-
Im
Beispiel der 20A bis 20E führt der Ereignisgenerator ein
Ereignisdemultiplexen 1 zu 2 durch, wodurch die Zeitablaufauflösung um
das zweifache gesteigert wird. Im Beispiel der 21A bis 21G führt der
Ereignisgenerator ein Ereignisdemultiplexen 1 zu 4 durch, wodurch
die Zeitablaufauflösung um
das vierfache gesteigert wird. Die Ereignisdemultiplexlogik 226 empfängt in paralleler
Weise die summierten Noniusdaten V0, V2, V4, ... für das Basisereignis,
wie sie in der 20C gezeigt
sind, und die summierten Noniusdaten V1, V3, V5, ... für das Nebenereignis,
wie sie in 20D gezeigt
sind. Solch eine parallele Form der summierten Noniusdaten wird
von der Ereignissummierungslogik von 7B geliefert,
die eine parallele Verarbeitung 1 zu 2 durchführt. Die Ereignisdemultiplexlogik 226 erzeugt
die demultixten Noniusdaten mit der Wiederholungsrate des Ereignistakts,
wie e in 20E gezeigt ist.
Mit anderen Worten, die Noniusdaten, die in Synchronisation mit
dem Verarbeitungstakt in paralleler Weise empfangen werden, werden
in Synchronisation mit dem Ereignistakt in serieller Form ausgegeben.
Demgemäß ist der
Ereignisgenerator 224 in der Lage, auf der Grundlage des
Ereignistakts eine Verzögerungszeit
mit der Zeitablaufauflösung
zu erzeugen, die zweimal größer ist
als die originale Zeitablaufauflösung.
-
In
den 21A bis 21G weist der Ereignistakt
von 21B eine Frequenz
auf, die viermal größer ist
als die des Verarbeitungszyklus von 21A. Die
Ereignisdemultiplexlogik 226 empfängt parallel die Noniusdaten
für das
Basisereignis und für
die Nebenereignisse. Die Demultiplexlogik 226 wird nämlich mit
den summierten Noniusdaten V0, V4, V8, ... für das Basisereignis, wie es
in 21C gezeigt ist, und
den summierten Noniusdaten V1, V5, V9, ... für das erste Nebenereignis versorgt,
wie es in 21D gezeigt
ist. Die Demultiplexlogik 226 wird darüber hinaus mit den summierten
Noniusdaten V2, V6, V10, ... für
das zweite Nebenereignis, wie es in 21E gezeigt
ist, und mit den summieren Noniusdaten V3, V7, V11, ... für das dritte
Nebenereignis versorgt, wie es in 21F gezeigt
ist.
-
Solch
eine parallele Form der summierten Noniusdaten wird aus der Ereignissummierungslogik von 10 geliefert, die eine parallele
Verarbeitung 1 zu 4 durchführt.
Die Ereignisdemultiplexlogik 226 erzeugt die demultiplexten
Noniusdaten mit der Wiederholungsrate des Ereignistakts, wie es
in 21G gezeigt ist.
Mit anderen Worten, die Noniusdaten, die in Synchronisation mit
dem Verarbeitungstakt in paralleler Weise empfangen werden, werden
in Synchronisation mit dem Ereignistakt in serieller Form ausgegeben.
Demgemäß ist der
Ereignisgenerator 224 in der Lage, auf der Grundlage des
Ereignistakts eine Verzögerungszeit
mit der Zeitablaufauflösung
zu erzeugen, die viermal größer ist
als die originale Zeitablaufauflösung.
-
Die
Tabelle in 22 fasst
den Effekt des dritten Ausführungsbeispiels
der vorliegenden Erfindung zusammen, bei dem die Auflösung der
Noniusbits an die Geschwindigkeit des Ereignistakts gebunden wird
als an den Verarbeitungstakt, Dadurch, dass man dieses tut, werden
die festen Noniusdaten immer die gleiche Datenauflösung liefern.
Da die Noniusdaten mit der Geschwindigkeit des Ereignistakts erzeugt
werden, wird die sich ergebende Zeitablaufauflösung eines jeden Noniuswerts
mit der Steigerung der Geschwindigkeit des Ereignistakts zunehmen,
wie es in der Tabelle gezeigt ist. Wenn beispielsweise die Verarbeitungstaktfrequenz
(Pipeline) 250 MHz beträgt
und die Ereignistaktfrequenz 500 MHz beträgt, wird die Zeitablaufauflösung durch
die festen 7-Bit-Noniusdaten 15.63 ps betragen. Wenn die Verarbeitungstaktfrequenz
(Pipeline) 250 MHz beträgt
und die Ereignistaktfrequenz 1.5 GHz beträgt, wird die Zeitablaufauflösung durch
die festen 7-Bit-Noniusdaten 5.21 ps betragen.
-
Dieser
Typ von Noniusverwendung, der in den 19 bis 22 gezeigt ist, hat den Vorteil,
dass (1) die Noniusdaten immer noch Bruchteile eines Ereignistaktzyklus
sind und (2) nur der Ereignisgenerator mit der Geschwindigkeit des
Ereignistakts laufen muss. Wenn beispielsweise ein tatsächliches
System implementiert wird, erlaubt dieses Verfahren, dass die Noniusdaten
mit geringer Geschwindigkeit zwischen Chips übertragen und innerhalb des
Generatorchips auf eine Hochgeschwindigkeitsdomäne konvertiert werden. Demgemäß braucht
bei der vorliegenden Erfindung jede Ereignisverarbeitungspipeline nur
Daten auf eine feste Zahl von Bits zu verarbeiten, ungeachtet der
Ereignistaktfrequenz. Mehrere identische Pipelines würden dann
erzeugt werden, um die notwendige Zahl an Nonien zu gewinnen.
-
Die
Verarbeitungsverfahren beim dritten Ausführungsbeispiel der vorliegenden
Erfindung erfordern die Verwendung mehrfacher Noniusereignisse während eines
jeden Verarbeitungstaktzyklus. Bei einem tatsächlichen Test hängt die
Verwendung der Nonien vom Zeitablauf eines bestimmten Pins eines Bauteilprüflings (DUT)
ab. Beispielsweise wird ein Taktpin eine höhere Ereignisrate erfordern
als ein Datenbuspin. Das bedeutet, dass einige der Noniuswerte eine
Verzögerung
liefern aber sonst nicht ein Ereignis (wie etwa ein Ansteuerereignis
oder ein Abfrageereignis) a Pin des DUT erzeugen müssen.
-
Das
kann durch Einfügen
von Nichtbetriebsereignissen (NOP) in die im Ereignisspeicher gespeicherten
Ereignisdaten erreicht werden. Solche NOP-Ereignisse werden typischerweise als
ein Ereignistyp in den Ereignisdaten spezifiziert. Diese NOP-Ereignisse
erlauben es, dass die Noniusverzögerungswerte
verwendet werden, ohne eine Veränderung
des Zustands des speziellen Pins des DUT zu verursachen. Die 23 und 24A bis 24G veranschaulichen
ein Beispiel solch einer Modifikation auf der Grundlage des multiplexten
Ereignistakts für solch
eine Anwendung. Die Tabelle in 23 zeigt ein
Beispiel für
von im Ereignisspeicher gespeicherten Ereignisdaten und die Zeitablaufdiagramme
der 24A bis 24G zeigen den Effekt des
Einfügens der
NOP-Ereignisse gemäß der vorliegenden
Erfindung.
-
Der
Ereignisgenerator, wie er etwa in der oben erwähnten US-Patentanmeldung Nr.
09/406,300 gezeigt wird,
empfängt
die Daten vom Ereignistyp aus dem Ereignisspeicher, um den Typ des Ereignisses
zu bestimmen, das an seinem Ausgang erzeugt werden soll. Beim Beispiel
der
23 und
24A bis
24G erzeugt der Ereignisgenerator ein
Ereignis einer ansteigenden Flanke (Ansteuerung hoch) oder einer
abfallenden Flanke (Ansteuerung niedrig), das eine Verzögerungszeit
aufweist, die durch die summierten Noniusdaten definiert wird. Wenn
der Ereignisdatentyp NOP ist, erzeugt der Ereignisgenerator ein
NOP-Ereignis, das nur die angegebene Verzögerung aufweist, ohne die Veränderungen
im Logikzustand einzubeziehen.
-
Bei
den Signalformen, die in den 24A bis 24G gezeigt sind, ist der
Zusammenhang des Zeitablaufs, der in den 24A bis 24E gezeigt
ist, im Wesentlichen der gleiche wie der der 20A bis 20E, da
sie den Fall des Demultiplexens 1 zu 2 zeigen. Wie es in 24H gezeigt ist, zeigen
die Ereignistypdaten, die von der Ereignisdemultiplexlogik 226 im Ereignisgenerator
von 19 demultiplext
wurden, die Ereignistypdaten in der Folge des Ereignistakts. Die
Ereignistypdaten in 24H entsprechen
denen, die in der Tabelle von 23 gezeigt
sind, wie etwa Ansteuerung hoch (Drv 1), Ansteuerung niedrig (Drv 0)
und NOP. Es sollte beachtet werden, dass anstelle des NOP-Ereignisses
der gleiche Effekt durch Ersetzen des NOP-Ereignisses durch eine
längere
Ereigniszählung
am Basisereignis erreicht werden kann.
-
Gemäß der vorliegenden
Erfindung kann die Verarbeitung von Ereigniszeitabläufen für ereignisbasierte
Hochgeschwindigkeitstestsysteme durchgeführt werden, um die Noniusdaten
mit der Rate eines Ereignistakts unter Verwendung eines Verarbeitungstakts
zu erzeugen, die wesentlich langsamer ist als die des Ereignistakts.
Das Ereignisverarbeitungsgerät
führt unter
Verwendung des Verarbeitungstakts eine parallele Ereignisverarbeitung
durch, wodurch summierte Noniusdaten mit der Rate des Ereignistakts
erzeugt werden.
-
Des
Weiteren ist das ereignisbasierte Testsystem bei der vorliegenden
Erfindung in der Lage, unter Verwendung des Verarbeitungstakts Verzögerungszeiten
mit hohen Zeitablaufauflösungen
entsprechend dem Ereignistakt zu erzeugen. Der Ereignisgenerator
beim ereignisbasierten Testsystem empfängt eine Vielzahl von Noniusdatenwerten,
die in einer parallelen Form mit einer Rate des Verarbeitungstakts
empfangen wurden, und erzeugt die Noniusdatenwerte in einer seriellen
Form mit der rate des Ereignistakts, wodurch die Zeitablaufauflösung mit dem
Ereignistakt übereinstimmt.
-
Obwohl
hierin nur ein bevorzugtes Ausführungsbeispiel
speziell veranschaulicht und beschrieben wurde, wird man erkennen,
dass im Lichte der obigen Lehren und innerhalb des Geltungsbereichs der
beigefügten
Ansprüche
viele Modifikationen und Variationen der vorliegenden Erfindung
möglich
sind, ohne von der Wesensart und vom beabsichtigten Umfang der Erfindung
abzuweichen.
-
Zusammenfassung:
-
Gerät und Verfahren
zur Berechnung des Ereigniszeitablaufs für ein ereignisbasiertes Hochgeschwindigkeitstestsystem.
Das Gerät
zur Verarbeitung von Ereignissen beinhaltet einen Ereignisspeicher
zum Speichern von Ereignisdaten für jedes Ereignis, wobei die
Ereignisdaten aus einem ganzzahligen Vielfachen einer Taktperiode
und aus einem Bruchteil einer Taktperiode gebildet werden, eine
Ereignissummierungslogik zum Summieren der Zeitablaufdaten und zur
Erzeugung der summierten Zeitablaufdaten in einer parallelen Form,
und einen Ereignisgenerator zum erzeugen von Ereignissen, die durch
die Ereignisdaten spezifiziert werden, auf der Grundlage der summierten
Zeitablaufdaten, die in paralleler Form aus der Ereignissummierungslogik erhalten
wurden.