-
Hintergrund
der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf Prüfgeräte für integrierte
Schaltungen und insbesondere auf ein Integrierte-Schaltungs-Prüfgerät, das eine
parallele Verarbeitung algorithmischer Anweisungen verwendet, um
die Prüfsignal-Erzeugung
und die Datenerfassung während
der Prüfung
einer integrierten Schaltung zu steuern.
-
Beschreibung
des Stands der Technik
-
Um
eine integrierte Schaltung oder eine ähnliche zu prüfende Vorrichtung
(DUT) zu prüfen, überträgt ein typisches
Integrierte-Schaltungs-Prüfgerät Prüfsignal-Impulse
an verschiedene Anschlüsse
der DUT und erfasst durch die DUT an diesen Anschlüssen erzeugte
Ausgabedaten als Reaktion auf die Prüfsignale. Die erfassten Daten
können
dann analysiert werden, um zu bestimmen, ob die DUT wie erwartet
auf die Prüfsignale
reagiert. Im Allgemeinen muss die Übertragung von Prüfsignalen
und das Erfassen von DUT-Ausgabedaten präzise koordiniert werden.
-
Integrierte-Schaltungs-Prüfgeräte enthalten
typischerweise eine Gruppe von Modulen oder "Knoten", wobei ein Knoten jedem Anschluss der
DUT zugeordnet wird. Eine Prüfung
wird zu einer Gruppe aufeinanderfolgender Zeitabschnitte ("Prüfzyklen") organisiert. Während jedes
gegebenen Prüfzyklusses
kann jeder Knoten entweder ein Prüfsignal zu dem zugeordneten
Anschluss übertragen,
DUT-Ausgabedaten an dem zugeordneten Anschluss erfassen oder weder
das eine noch das andere tun. Jeder Kno ten enthält seinen eigenen Speicher
zum Speichern einer Abfolge von Befehlen. Jeder Befehl zeigt eine
Handlung an, die von dem Knoten während eines Prüfzyklus
durchzuführen
ist, zum Beispiel ob er die Übertragung
beginnen oder beenden oder ob er die Erfassung beginnen oder beenden
soll. Jeder Befehl zeigt auch eine Zeit während des Zyklus an, bei der
die Handlung durchzuführen
ist. Jeder Knoten enthält
auch Schaltungen zum sequentiellen Auslesen der Befehle aus dem
Speicher während
aufeinanderfolgender Prüfzyklen
und zum Durchführen
der angezeigten Handlungen.
-
Die
Knoten sind typischerweise an einem Hauptrechner (Host) über ein
Bus-Netzwerk miteinander verbunden. Bevor eine Prüfung beginnt,
führt der
Hauptrechner einen Algorithmus durch, um die in den Knotenspeichern
zu speichernden Befehle zu erzeugen. Der Hauptrechner überträgt dann
die erzeugten Befehle an die Knoten zur Speicherung in ihren Speichern.
Daraufhin synchronisiert ein an alle Knoten übertragenes Taktsignal die
Knoten derart, dass alle von ihnen die Befehle aus dem Speicher
auslesen und die angezeigten Handlungen im Einklang durchführen.
-
Im
Allgemeinen speichert ein Prüfgerät einen
Befehl in jedem Knotenspeicher für
jeden Prüfzyklus.
In den letzten Jahren haben die Größe und Komplexität integrierter
Schaltungen wie auch die Länge
der Befehlssequenzen, die zum vollständigen Prüfen dieser Schaltungen benötigt werden,
dramatisch zugenommen. Es ist nicht unüblich, dass bei Prüfungen viele
Millionen von Zyklen durchlaufen werden müssen und deshalb Befehlssequenzen
benötigt
werden, die viele Millionen von Elementen haben. Die Speicheranforderungen
für derart
große
Befehlssequenzen überschreiten
die Größe des Speichers,
der praktisch oder wirtschaftlich bei jedem Knoten installiert werden
kann. Somit werden lange Prüfungen
in Segmenten durch geführt,
wobei der Prüfgerät-Betrieb
zwischen jedem Segment aufgehalten wird, während die Befehle für das nächste Segment in
die Knotenspeicher geladen werden. Dies verlängert in großem Umfang
die Gesamtzeit und die Kosten, die für eine Prüfung benötigt werden.
-
So
wie die DUT-Betriebsgeschwindigkeiten zugenommen haben, nahm auch
der Bedarf für
eine präzise
und flexible Steuerung über
die Zeitabstimmung der Prüfsignal-Übertragung
und der DUT-Ausgabesignal-Abtastung während jedes Prüfzyklus
zu. Ein Prüfgerät des Stands
der Technik enthält
eine Zeitformatierungsschaltung, die ein Ausgabe-Referenzsignal
zu einer ausgewählten
Zeit während
eines Prüfzyklus
erzeugen kann. Die Zeit wird in Übereinstimmung
mit einem eingegebenen "Zeitwort" ausgewählt – Daten,
die eine Zahl befördern,
die eine spezielle Zeit während
eines Prüfzyklus
anzeigt. Um die Zeit in kleine Inkremente aufzulösen (z.B. 1/1000000 eines Prüfzyklus),
muss das Zeitwort sehr lang sein (z.B. 20 Bits). Für lange
Prüfungen
würde es
zu viel Speicher erfordern, um ein langes Zeitwort in jeden Befehl
für jeden
Prüfzyklus
zu enthalten. Somit werden vor dem Beginn einer Prüfung einige
wenige (z.B. vier) ausgewählte
Zeitwörter
in Registern innerhalb jedes Knotens des Speichers gespeichert.
Die vier Zeitwörter
zeigen vier unterschiedliche Zeiten innerhalb eines Prüfzyklus
an, bei dem ein Ereignis auftreten kann. Die Befehle in jedem Knoten
brauchen somit nur 2 Bits enthalten, um eine Ereignis-Zeitabstimmung
anzuzeigen. Während
jedoch in einem derartigen Prüfgerät-System
die Ereignis-Zeitabstimmung genau gesteuert werden kann, ist die
Zeitabstimmungs-Auswahl begrenzt. Ein derartiges Prüfgerät kann zum
Beispiel eine Prüfung
durchführen,
bei der eine Signal-Zeitabstimmung um kleine Beträge inkrementell
verschoben wird, um die Toleranz einer Schaltung gegenüber einer
Veränderung
der Signal-Zeit abstimmung zu bestimmen, ohne die Prüfung periodisch
anzuhalten und neue Zeitwörter
in die Knotenregister zu laden.
-
Beispiele
von Integrierten-Schaltungs-Prüfgeräten, die
bekannt waren und die in verschiedenem Umfang beschrieben sind,
werden in den US-Patenten der Nummern 5345186, 4928278, 4862460
und 4517512 sowie in der deutschen Offenlegungsschrift
DE 4305442 beschrieben. Ein Prüfgerät wird auch
in einem Artikel beschrieben mit dem Titel "Linear array systolic tester (LAST)", International Test
Conference 1989 Proceedings, Meeting the Tests Time, Washington
D. C. (29. bis 31. August, 1989, Seiten 543 bis 549, XP000089983 (Institute
of Electrical and Electronics Engineers).
-
Zusammenfassung
der Erfindung
-
Gemäß einem
Gesichtspunkt der Erfindung wird ein Integrierte-Schaltungs-Prüfgerät bereitgestellt zum Prüfen einer
integrierten Schaltung mit einer Vielzahl von Anschlüssen zum
Empfangen von Prüfsignalen und
Aussenden von Ausgabesignalen, die durch die integrierte Schaltung
erzeugt werden, wobei das Gerät die
integrierte Schaltung prüft,
indem ausgewählte
Handlungen bezüglich
jedem der Anschlüsse
zu vorbestimmten Zeiten während
einer Aufeinanderfolge von Prüfzyklen
festgelegter Dauer durchgeführt
werden, wobei jede dieser Handlungen aus einer Gruppe ausgewählt wird,
die das Bestätigen
eines Prüfsignals,
das Nicht-Bestätigen
eines Prüfsignals
und das Abtasten eines Ausgangssignals aufweist, wobei die Prüfvorrichtung
für die
integrierte Schaltung aufweist:
ein Mittel zum Erzeugen eines
periodischen Taktsignals; und
eine Vielzahl von Knoten, wobei
jeder Knoten einem gesonderten Anschluss der Anschlüsse entspricht,
wobei jeder Knoten Mittel aufweist, welche das Taktsignal empfangen,
um die Dau er jedes der Prüfzyklen
bezüglich der
Perioden des Taktsignals festzulegen, wobei jeder Knoten algorithmische
Anweisungen während
mindestens einem der Prüfzyklen
durchführt,
um einen Befehl zu erzeugen, der eine der Handlungen auswählt und eine
Zeit während
eines anschließenden
Prüfzyklusses
anzeigt, bei der die ausgewählte
Handlung durchzuführen
ist, und wobei jeder Knoten auf den erzeugten Befehl reagiert, indem
die ausgewählte
Handlung bezüglich
ihres entsprechenden Anschlusses zu der angezeigten Zeit während des
anschließenden
Prüfzyklusses durchgeführt wird.
-
Typischerweise
weist jeder Knoten auf:
ein Mittel, welches das Taktsignal
empfängt,
um ein Anzeigesignal zu erzeugen, das den Beginn jedes der aufeinanderfolgenden
Prüfzyklen
in Bezug auf Perioden des Taktsignal markiert;
ein Speichermittel
zum Speichern der algorithmischen Anweisungen;
ein Verarbeitungsmittel
zum Reagieren auf das Anzeigesignal durch Ausführen der algorithmischen Anweisungen,
die in dem Speichermittel gespeichert sind, wodurch der Befehl erzeugt
wird; und
ein Mittel, das auf den Befehl reagiert, um die ausgewählte Handlung
bezüglich
des entsprechenden Anschlusses zu der angezeigten Zeit während des
anschließenden
Prüfzyklusses
durchzuführen.
-
Möglicherweise
weist das Mittel, welches das Taktsignal empfängt, auf:
ein Mittel zum
Erzeugen einer Vielzahl von Zeitabstimmungssignalen, wobei die Zeitabstimmungssignale
und das Taktsignal Perioden ähnlicher
Dauern haben, wobei jedoch die Zeitabstimmungssignale ungleiche
Phasen haben;
ein Mittel zum Erzeugen des Anzeigesignals durch
Zählen
von Perioden eines der Zeitabstimmungssignale.
-
Vorzugsweise
zeigt der Befehl die Zeit an, indem eines der Zeitabstimmungssignale
angezeigt wird, und wobei das Mittel, das auf den Befehl reagiert,
die ausgewählte
Handlung als Reaktion auf das angezeigte Signal der Zeitabstimmungssignale
durchführt.
-
Alternativ
zeigt der Befehl die Zeit an, indem eines der Zeitabstimmungssignale
angezeigt wird und eine Verzögerungszeit
angezeigt wird, und wobei das Mittel, das auf den Befehl reagiert,
die ausgewählte Handlung
als Reaktion auf das angezeigte Signal der Zeitabstimmungssignale
durchführt,
wobei die Reaktion durch die angezeigte Verzögerungszeit verzögert wird.
-
Es
können
Mittel vorhanden sein, welche die Vielzahl der Knoten miteinander
verbinden, um zwischen ihnen algorithmische Anweisungen zu befördern.
-
Außerdem weist
das Mittel, welches die Vielzahl der Knoten miteinander verbindet,
auf:
eine Vielzahl von Übertragungsleitungen
zum Befördern
algorithmischer Anweisungen; und
eine Vielzahl von Verbindungsmitteln,
wobei jedes Verbindungsmittel mit einem gesonderten Paar der Übertragungsleitungen
verbunden ist, um algorithmische Anweisungen zu empfangen, die auf
einer der beiden Übertragungsleitungen
befördert
werden, und wahlweise zum Übertragen
der empfangenen Gruppe algorithmischer Anweisungen auf einer anderen
der beiden Übertragungsleitungen
oder zum Weiterleiten der empfangenen Gruppe algorithmischer Anweisungen
zu einem gesonderten Knoten der Knoten, um dadurch ausgeführt zu werden,
wobei die Vielzahl der Übertragungsleitungen
und der Verbindungsmittel ein Netzwerk bilden, um die algorithmischen
Anweisungen zwischen den Knoten zu befördern.
-
Kurzbeschreibung
der Zeichnung
-
1 ist
ein Blockdiagramm eines Integrierte-Schaltungs-Prüfgeräts mit paralleler
Verarbeitung gemäß der vorliegenden
Erfindung;
-
2 ist
ein Blockdiagramm eines typischen Knotens des Integrierte-Schaltungs-Prüfgeräts von 1;
-
3 ist
ein Blockdiagramm, das den phasenstarren Oszillator von 2 zeigt;
-
4 ist
ein Blockdiagramm der Schnittstellenschaltung der zu prüfenden Vorrichtung
von 2;
-
5 ist
ein Blockdiagramm, das den Zeitformatierer von 2 beschreibt;
-
5A ist
eine Darstellung eines Datenwortes, das durch den Zeitformatierer
von 2 verarbeitet wird;
-
6 ist
ein Blockdiagramm, das die Hoch-Ansteuerungsschaltung von 5 zeigt;
-
7 ist
ein Blockdiagramm, das einen typischen Zeitereignis-Generator von 6 zeigt;
-
8 ist
eine Kombination aus Blockdiagramm und Schaltbild, welche die TEG0-Schaltung
von 7 zeigt;
-
9 ist
eine Kombination aus Blockdiagramm und Schaltbild, die eine typische
Multiplexer-Latchschaltung von 5 zeigt;
-
10 ist
ein Blockdiagramm, das die Anweisungs-Verarbeitungseinheit von 2 beschreibt;
-
10A ist ein Blockdiagramm, das den Mikroprozessor
von 10 beschreibt;
-
11 ist
ein Blockdiagramm, das die Netzwerk-Schnittstelle von 2 veranschaulicht;
-
12 ist
ein Blockdiagramm, das ausgewählte
Abschnitte einer Gruppe miteinander verbundener Netzwerk-Schnittstellen
von 11 darstellt;
-
13 ist
ein Diagramm, das die relative Zeitabstimmung von Signalen in 12 darstellt;
-
14 ist
ein Blockdiagramm, das die Zeitabstimmungsschaltung von 11 darstellt;
-
15–17 sind
Blockdiagramme, die verschiedene Betriebs-Konfigurationen für das Integrierte-Schaltungs-Prüfgerät von 1 darstellen;
-
18–28 sind
Flussdiagramme, die durch das Prüfgerät von 1 durchgeführte Algorithmen darstellen.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
-
1 ist
ein Blockdiagramm eines Prüfgeräts 10 gemäß der vorliegenden
Erfindung zum Prüfen
einer integrierten Schaltung oder einer anderen zu prüfenden Vorrichtung
(Device under Test = DUT) 12. Die DUT 12 hat eine
Gruppe von Kontaktstiften, Kontaktflächen oder andersartigen Zugriffsanschlüssen für Eingabe- und
Ausgabesignale. Das Prüfgerät 10 enthält verschiedene
Verarbeitungsknoten 14. Aus Gründen der Einfachheit zeigt 1 nur
einige wenige Knoten 14, doch kann das Prüfgerät 10 eine
viel größere Menge
an Knoten 14 enthalten.
-
Jeder
Knoten 14 kann durch einen gesonderten Leiter 16 mit
einem gesonderten Anschluss der DUT 12 verbunden sein.
Während
einer Prüfung
kann jeder Knoten 14 ein Prüfsignal über den Leiter 16 an
den Knoten übertragen
oder kann Ausgabesignale abtasten, die durch die DUT auf dem Leiter 16 erzeugt
werden.
-
Eine
Prüfung
wird in eine Anzahl von Prüfzyklen ähnlicher
Dauer unterteilt, und zu genau vorbestimmten Zeiten während jedes
Prüfzyklus
einer Aufeinanderfolge von Prüfzyklen
kann jeder Knoten 14 eine oder mehrere Handlungen als Reaktion
auf eine Abfolge von Befehlen durchführen. Jeder nachfolgende Befehl zeigt
eine während
eines nachfolgenden Prüfzyklusses
durchzuführende
Handlung an, wie zum Beispiel das Bestätigen eines Prüfsignals
oder das Abtasten des DUT-Ausgabesignals. Jeder Befehl zeigt auch
eine relative Zeit während
des Prüfzyklusses
an, bei dem die Handlung durchzuführen ist.
-
Anstelle
des Speicherns der Abfolge von Befehlen speichert jeder Knoten 14 algorithmische
Anweisungen zum Erzeugen der Abfolge von Befehlen. Jeder Knoten 14 enthält Schaltungen
zum Verarbeiten der algorithmischen Anweisungen, um die Befehlsabfolgen
zu erzeugen, wobei jeder Befehl unmittelbar bevor er während der
Prüfung
benötigt
wird, erzeugt wird. Jeder Befehl ist ein Datenwort, und es ist allgemein
bekannt, dass ein relativ kleiner Anweisungssatz mathematische Operationen,
wie Addition, Subtraktion, Bit-Verschiebung, und algorithmische
Operationen, wie zum Beispiel Verzweigung und Wiederholung, verwenden
kann, um eine viel größere Datenabfolge
zu erzeugen. Für
lange Prüfoperationen,
die viele Befehle benötigen,
ist der Speicher, der zum Speichern eines algorithmischen Anweisungssatzes
zum Erzeugen der notwendigen Befehle benötigt wird, viel kleiner als
der Speicher, der zum Speichern der eigentlichen Befehle selbst
benötigt wird.
-
Somit
empfangen die Knoten des Prüfgeräts der vorliegenden
Erfindung als Eingabe algorithmische Anweisungen zum Erzeugen der
Befehle anstatt der eigentlichen Befehle selbst. Die Verarbeitungsknoten 14 sind
durch Übertragungsleitungen 18, 19 in
einer Schleife zusammengeschaltet, die als Netzwerk-Schnittstelle wirken,
um ein Schleifen-Netzwerk zu bilden, um die algorithmischen Anweisungen
sowie Steuerungsdaten und Signale zu jedem Knoten zu befördern. Eine
Haupt-Schnittstellenschaltung 20, die in dem Netzwerk anstelle
eines Knotens geschaltet ist, ermöglicht einem Hauptrechner 22 den
Zugriff auf das Netzwerk über
einen Bus 24. Ein Referenzoszillator-Taktsignal ROSC, das
durch eine Taktschaltung 25 von 1 erzeugt
wird, liefert eine gemeinsame Zeitabstimmungs-Referenz an alle Knoten 14,
so dass ihre Operationen während
eines Prüfvorgangs
in der weiter unten beschriebenen Art und Weise synchronisiert werden
können.
-
Bevor
ein Prüfvorgang
beginnt, überträgt der Hauptrechner 22 einen
gesonderten Satz algorithmischer Anweisungen an jeden Knoten 14.
Der Hauptrechner 22 überträgt auch
Steuerungsdaten an jeden Knoten 14 über das Netzwerk. Die in Registern
innerhalb jedes Knotens 14 gespeicherten Steuerungsdaten
wählen
verschiedene Betriebsarten des Knotens aus, wie zum Beispiel den
Spannungspegel von Prüfsignalen,
die zu der DUT 12 übertragen
werden, oder die Dauer eines Prüfzyklusses.
Um einen Prüfvorgang
zu beginnen, überträgt der Hauptrechner 22 ein
START-Steuerungssignal an die Knoten 14 über das
Netzwerk. Jeder Knoten 14 enthält seinen eigenen internen
Anweisungsprozessor, der als Reaktion auf das START-Signal das Lesen
und Verarbeiten der algorithmischen Anweisungen in dem Speicher
des Knotens beginnt, um eine Abfolge von Befehlen zu erzeugen. Jeder
Befehl zeigt eine Handlung an, die während eines nächsten Prüfzyklusses durchzuführen ist,
sowie eine spezielle Zeit während
des nächsten
Prüfzyklusses,
bei welcher der Knoten die angezeigte Handlung durchführen soll.
Jeder Knoten 14 enthält
eine interne "Zeitformatierer"-Schaltung zum Dekodieren
der Befehle. Zu der durch jeden Befehl angezeigten Zeit signalisiert
der Zeitformatierer einer internen DUT-Schnittstellenschaltung,
dass sie die durch den Befehl angezeigte Handlung durchführen soll.
-
2 ist
ein Blockdiagramm eines typischen Knotens 14 des Prüfgeräts 10 von 1.
Der Knoten 14 enthält
eine Netzwerk-Schnittstelle 30 und bildet eine Schnittstelle
zwischen dem Knoten und den unidirektionalen hereinkommenden und
herausgehenden seriellen Übertragungsleitungen 18 und 19,
welche den Knoten mit vorhergehenden und nachfolgenden Knoten der
Netzwerkschleife verbinden. Bei dem bevorzugtem Ausführungsbeispiel
der Erfindung verbinden vier hereinkommende Übertragungsleitungen 18 und
vier herausgehende Übertragungsleitungen 19 jeden
Knoten mit seinen nächsten
Nachbarn.
-
Der
Knoten 14 enthält
auch eine Speicher-Managementeinheit 32, einen Anweisungsspeicher 34 sowie
eine Anweisungs-Verarbeitungseinheit 36.
Der Anweisungsspeicher 34 ist geeigneterweise ein herkömmlicher
adressierbarer Direkt-Zugriffsspeicher
(RAM) zum Speichern algorithmischer Anweisungen. Die Verarbeitungseinheit 36 führt die
in dem Speicher 34 gespeicherten Anweisungen aus, um eine
Abfolge von Befehlen zu erzeugen, welche die Knotenoperationen steuern.
Die Speicher-Managementeinheit 32 ist eine herkömmliche
RAM-Steuerungsvorrichtung
zum Steuern des Lese- und Schreibzugriffs auf den Speicher 34. Jede
Netzwerk-Schnittstelle 30 empfängt serielle Daten und Adressen über eine
hereinkommende Übertragungsleitung 18 und
leitet sie an einen nächsten
Knoten der Netzwerkschleife über
eine herausgehende Übertragungsleitung 19 weiter.
Jede Netzwerk-Schnittstelle 30 kann auch die seriellen
Daten und Adresswörter
in eine parallele Form konvertieren und sie zu einem lokalen Bus 31 weiterleiten.
Die Speicher-Managementeinheit 32 bestimmt, ob auf den
Speicher 34 zugegriffen wird, und, wenn dies der Fall ist,
speichert sie die Daten in dem Speicher 34 ab. Während eines
Prüfvorgangs überträgt die Verarbeitungseinheit 36 Speicheradressen an
die Speicher-Managementeinheit 32 über einen 24-Bit-Bus 33,
und die Speicher-Managementeinheit liest Anweisungen aus dem Speicher 34 bei
diesen Adressen aus und leitet die Anweisungen über einen lokalen Bus 31 an
die Verarbeitungseinheit 36 weiter.
-
Der
Knoten 14 enthält
zusätzlich
eine Zeitformatierer-Schaltung 38 sowie eine Schnittstellenschaltung 40 für die zu
prüfende
Vorrichtung (DUT). Die DUT-Schnittstellenschaltung 40 enthält einen
Eingabe/Ausgabe-Anschluss, der mit der zu prüfenden Vorrichtung über einen
Leiter 16 verbunden ist. Während jedes Prüfzyklusses
kann die DUT-Schnittstellenschaltung 40 ein Prüfsignal
an die DUT über
einen Leiter 16 übertragen und/oder
kann ein Datenbit abtasten und speichern, das durch die DUT auf
dem Leiter 16 erzeugt wird. Wenn die Verarbeitungseinheit 36 die
aus dem Speicher 34 ausgelesenen Anweisungen ausführt, erzeugt
sie Befehle und überträgt sie zu
dem Zeitformatierer 38 über
den Bus 33. Als Reaktion auf jeden Befehl führt der
Zeitformatierer 38 selektiv eine Bestätigung oder Nicht-Bestätigung eines
von drei Ausgabesignalen, COMPARE, DRIVE, und TRISTATE zu einer
geeigneten Zeit durch. Der Zeitformatierer 38 bestätigt oder
nicht-bestätigt
das TRISTATE-Signal, um der DUT-Schnittstellenschaltung 40 mitzuteilen,
wann sie den Leiter 16 mit einem Prüfsignal ansteuern soll. Das
DRIVE-Signal wird bestätigt
und nicht-bestätigt,
um der DUT-Schnittstellenschaltung 40 mitzuteilen, wann
das Prüfsignal
hoch oder tief sein soll. Das COMPARE-Signal wird bestätigt und nicht-bestätigt, um
der DUT-Schnittstellenschaltung 40 mitzuteilen,
wann das Abtasten eines durch die DUT erzeugten Signals begonnen
oder beendet werden soll. Eine an den lokalen Bus 31 angebundene
Eingabe/Ausgabe-(I/O)-Steuerungsvorrichtung 44,
kommuniziert mit anderen Knoten in dem Netzwerk oder mit dem Hauptrechner 22 von 1 über eine
Netzwerk-Schnittstelle 30 und die Übertragungsleitungen 18, 19.
Vor dem Beginn des Prüfvorgangs
empfängt
die I/O-Steuerungsvorrichtung 44 Steuerungsdaten über das
Netzwerk und speichert diese Daten in verschiedenen Registern innerhalb
der Netzwerk-Schnittstelle 30, der Anweisungs-Verarbeitungseinheit 36,
dem Zeitformatierer 38 und der DUT-Schnittstellenschaltung 40.
Die Steuerungsdaten stellen verschiedene Betriebsarten dieser Vorrichtungen
während
einer Prüfung
ein, wie weiter unten besprochen wird. Nachdem eine Prüfung abgeschlossen
ist, gibt die I/O-Steuerungsvorrichtung 44 den Hauptrechner
oder eine andere Vorrichtung frei, um Prüfdaten aus einem Erfassungsspeicher
innerhalb der DUT-Schnittstellenschaltung 40 auszulesen.
-
Der
Knoten 14 enthält
auch Verbindungen zwischen der Netzwerk-Schnittstelle 30 und
der Verarbeitungseinheit 36 zum Befördern hereinkommender und herausgehender
Laufzeit-Steuerungssignale. Diese Laufzeitsignale (RUNTIME-Signale)
können
durch ausgewählte Übertragungsleitungen 18, 19 übertragen werden,
um den Beginn und das Ende von Prüfvorgängen zu signalisieren. Die
Laufzeitsignale können
auch eine Kommunikation zwischen Knoten während Prüfvorgängen erzeugen, um zum Beispiel Änderungen
der Betriebsart oder Fehler anzuzeigen, die während einer Prüfung auftreten.
-
Eine
Oszillatorschaltung 42, die in jedem Knoten 14 enthalten
ist, hilft beim Synchronisieren der Operationen aller Knoten des
Netzwerks während
eines Prüfvorgangs.
Die Oszillatorschaltung 42 erzeugt eine Gruppe von Zeitabstimmungssignalen
T0–T30,
die zu dem Zeitformatierer 38 und der Netzwerk-Schnittstelle 30 übertragen
werden. Diese Zeitabstimmungssignale T0– T30 haben die selbe Frequenz
wie das ROSC-Signal, sind jedoch voneinander zeitlich verschoben,
um die Periode des ROSC-Signals in 31 Segmente im wesentlichen gleicher
Dauer aufzuteilen. In jedem Knoten 14 taktet das Zeitabstimmungssignal
T0 die Anweisungsverarbeitung mittels der Anweisungs-Verarbeitungsschaltung 36.
Als Reaktion auf Befehle wählt
der Zeitformatierer 38 ein Zeitabstimmungssignal aus den
Zeitabstimmungssignalen T0–T30
als Referenz für
die Zeitabstimmung der durch den Befehl angezeigten Handlung aus.
Da die Signale T0–T30
aller Knoten in der selben Phasenbeziehung bezüglich des ROSC-Signals gehalten
werden, sind die Signale T0–T30
jedes Knotens mit ähnlichen
Signalen in jedem anderen Knoten in Phase. Da die Anweisungs-Verarbeitung
und die Ereignis-Zeitabstimmung in jedem Knoten auf die Signale
T0–T30
als Referenz bezogen werden, können
die Aktivitäten
aller Knoten synchronisiert werden.
-
Das
ROSC-Signal, und somit das T0-Signal, wird zweckmäßigerweise
auf die Betriebsgeschwindigkeit eines Mikroprozessors innerhalb
der Verarbeitungseinheit 36 eingestellt. Es ist jedoch
wünschenswert, dass
die Zeitabstimmung der Signale COMPARE, DRIVE und TRISTATE innerhalb
einer höheren
Auflösung steuerbar
ist. Die Signale T0–T30
lösen die
Zeit auf das 1/31-ste eines ROSC-Zyklusses auf, doch enthält der Zeitformatierer 38 Schaltungen,
wie weiter unten besprochen wird, die seine Ausgabesignal-Zeitabstimmung um
einen Faktor 16 weiter auflösen können. Geht man von einem ROSC-Signal
mit 100 MHz aus, das für
die 0,8-Mikrometer-Technologie geeignet ist, so kann der Knoten 14 die
Zeitabstimmungsflanken der Signale COMPARE, DRIVE und TRISTATE bis
auf etwa 20 ps auflösen.
Verwendet man eine 0,4-Mykrometer-Technologie, ermöglicht ein
ROSC-Signal mit 200 MHz eine Auflösung von 10 ps.
-
Die
Vorrichtungen 30, 32, 34, 36, 38, 42 und 44 werden
zweckmäßigerweise
auf einer einzigen hochintegrierten Schaltung 15 unter
Verwendung von CMOS-Logik-Technologie implementiert.
-
3 ist
ein Blockdiagramm, das den phasenstarren Oszillator 42 von 2 beschreibt,
der verwendet wird, um das Synchronisieren der Operationen aller
Knoten 14 des Prüfgeräts von 1 zu
unterstützen. Der
Oszillator 42 enthält
eine Gruppe aus 31 identischen Umkehrschaltungen 45, die
in Serie geschaltet sind, um eine Schleife zu bilden. Ein Signalimpuls
zirkuliert um die Schleife mit einer Geschwindigkeit, die durch
die Ausbreitungs-Verzögerungszeit
der Umkehrschaltungen 45 bestimmt wird. Diese Verzögerungszeit
wird durch die Ausgangsspannung einer Stromversorgung 46 gesteuert,
die allen Umkehrschaltungen 45 Energie zuführt. Die
Zeitabstimmungssignale T0–T30
werden alle bei den Verbindungen zwischen den Umkehrschaltungen 45 abgenommen.
Da die Ausbreitungsverzögerung
aller Umkehrschaltungen 45 im Wesentlichen die selbe ist, sind
die Signale T0–T30
alle voneinander um im Wesentlichen die selben Beträge verschoben.
Das durch eine Verzögerungsschaltung 47 verzögerte Signal
T0 wird als Signal T0' einem
Eingang eines Komparators 48 zugeführt. Das ROSC-Signal wird einem
anderen Eingang des Komparators zugeführt. Immer dann, wenn ein ROSC-Signalimpuls
vor einem T0'-Impuls
kommt, nimmt der Ausgang des Komparators 48 den hohen Pegel ein.
Wenn ein T0'-Impuls
vor einem ROSC-Signalimpuls kommt, nimmt der Ausgang des Komparators 48 den tiefen
Pegel ein. Die Ausgabe des Komparators 48 wird durch ein
Filter 49 gefiltert und der Stromversorgung 46 zugeführt. Die
Spannung der Ausgabe des Filters 49 steuert die Ausgangsspannung
der Stromversorgung 46.
-
Es
dürfte
klar sein, dass bei alternativen Ausführungsbeispielen die Elemente 45 von
den Umkehrschaltungen verschiede ne Vorrichtungen sein können, wie
zum Beispiel mit magerem Strom betriebene Puffer (current starved
buffers) oder differentielle Elemente.
-
Die
durch die Vorrichtungen 46–49 erzeugte Rückkopplung
führt eine
Phasenrastung des Signals T0' mit
dem ROSC-Signal durch, um zu gewährleisten,
dass die Signale T0–T30
die selbe Frequenz wie das ROSC-Signal haben, wobei jedes von ihnen
eine geringfügig
unterschiedliche Phase hat. Da die Signale T0–T30 voneinander um die gleichen
Beträge
phasenverschoben sind, ist die Zeit zwischen aufeinanderfolgenden
T0–T30
gleich groß wie
1/31 der Periode des ROSC-Signals.
-
Damit
das System von 1 eine DUT 12 richtig
prüft,
müssen
diejenigen Knoten 14, welche die Prüfsignale zu der DUT übertragen
und diejenigen Knoten 14, welche Abtastdaten von Signalen
erfassen, die durch die DUT erzeugt werden, dies zu genauen Zeiten
relativ zueinander durchführen.
Das an alle Knoten 14 gesendete ROSC-Signal bildet eine
Referenz zum Synchronisieren ihrer jeweiligen Zeitabstimmungssignale T0–T30. Wenn
zum Beispiel zwei Knoten jeweils einen Prüfsignal-Impuls zu der DUT übertragen
haben, wenn sie einen Impuls des Signals T5 erfasst haben, würden die
beiden Prüfsignale
zu der DUT zur selben Zeit übertragen
werden, da die beiden Signale T5, die als gegenüber dem ROSC-Signal um den
selben Betrag phasenverschoben gelten, miteinander in Phase sind.
Allerdings wären
die beiden Prüfsignale
aus zwei Gründen
nicht notwendigerweise in Phase.
-
Erstens
können
sich die Zeiten unterscheiden, die zwei Knoten 14 benötigen, um
ihre Prüfsignale
nach dem Erfassen ihrer T5-Signalimpulse zu erzeugen. Dies geschieht
dann, wenn die Signal-Bearbeitungsgeschwindigkeiten der beiden Knoten
unterschiedlich sind. Die beiden Knoten sind auf verschiedenen integrierten
Schaltungen implementiert, und Schwankungen der Parameter der Chipherstellung
können
die Verarbeitungsgeschwindigkeiten beeinträchtigen. Da die beiden Knoten
physikalisch getrennt sind, können
sie bei unterschiedlichen Umgebungstemperaturen betrieben werden,
und die Chip-Temperatur beeinflusst die Verarbeitungsgeschwindigkeit.
Um zu helfen, dieses Problem zu lösen, ist die Verzögerungsschaltung 47 in
der Rückkopplungsschleife
des Oszillators 42 von 3 enthalten.
Die Verzögerungsschaltung 47 führt zeitlich vorwärts gerichtete
Phasenverschiebungen der Signale T0–T30 um einen Betrag durch,
der die Verarbeitungsverzögerung
des Zeitformatierers 38 von 2 berücksichtigt.
Die Verzögerungsschaltung 47 ist
einfach eine Serie aus Gattern, welche die selbe Kanalbreite (und
deshalb Verzögerung)
wie die Gatter haben, welche die Signale T0–T30 verarbeiten, um die Signale
COMPARE, DRIVE und TRISTATE zu steuern. Da der Oszillator 42 und
der Zeitformatierer 38 auf der selben integrierten Schaltung 15 implementiert
sind, bewirken alle Veränderungen
des Prozesses und der Umgebung, welche die Signal-Ausbreitungsgeschwindigkeit
durch den Zeitformatierer 38 von 2 beeinflussen,
eine Beeinflussung der Verzögerung
der Verzögerungsschaltung 47 von 3.
Die Verzögerungsschaltung 47 jedes
Knotens stellt daher automatisch ihre eigene Verzögerung ein,
um eine Phasenverschiebung der Signale T0–T30 um geeignete Beträge zu bewirken,
um die Unterschiede der Ausbreitungsverzögerung durch den Zeitformatierer
des Knotens zu berücksichtigen.
Somit tritt zum Beispiel ein T5-Impuls eines langsamen Knotens vor
dem T5-Impuls eines schnelleren Knotens auf, so dass Signale COMPARE,
DRIVE oder TRISTATE, die durch beide Knoten als Reaktion auf den
T5-Impuls bestätigt werden,
tatsächlich
zur selben Zeit bestätigt
werden.
-
Ein
zweites Zeitabstimmungsproblem tritt auf, da es vorkommen kann,
dass das ROSC-Signal nicht bei allen Knoten 14 von 1 zur
selben Zeit ankommt. Die Knoten sind physikalisch getrennt, und
der ROSC-Takt 25 von 1 ist von
einigen Knoten weiter entfernt als von anderen. Selbst wenn die
Zeitabstimmungssignal-T5-Impulse der beiden Knoten von dem ROSC-Signalimpuls um den
selben Betrag phasenverschoben werden, wären sie daher selbst nicht
in Phase. Daher wären
Prüfsignale,
die gemäß unterschiedlicher Zeitabstimmungssignal-T5-Impulse zeitabgestimmt
werden, nicht zeitgleich beziehungsweise nicht simultan. Die vorliegende
Erfindung überwindet
dieses Problem, indem sie eine Kalibrierung der Verzögerungsschaltungen
innerhalb des Zeitformatierers 38 innerhalb jedes Knotens
ermöglicht,
wodurch kleine Einstellungen der Verzögerung ermöglicht werden, um Unterschiede
der ROSC-Signal-Ankunftszeit zu berücksichtigen. Eine derartige
Kalibrierung wird weiter unten in Verbindung mit Einzelheiten des
Zeitformatierers besprochen.
-
4 ist
ein Blockdiagramm der DUT-Schnittstellenschaltung 40 von 2.
Die Schaltung 40 enthält eine
herkömmliche
Dreizustands-Ansteuerungsschaltung 50 zum Zuführen des
Prüfsignals,
das zu der DUT über
den Leiter 16 übertragen
wird. Die Ansteuerungsschaltung 50 empfängt die DRIVE- und TRISTATE-Signale
von dem Zeitformatierer 38 von 2. Das TRISTATE-Signal
bestimmt, ob die Ansteuerung ihre Prüfsignal-Ausgabe über den Leiter 16 zu
der DUT überträgt. Das
DRIVE-Eingabesignal
steuert den logischen Zustand der Prüfsignal-Ausgabe. Die Ansteuerung 50 ist
in dem Sinne programmierbar, dass die Logikpegel ihrer Prüfsignal-Ausgabe
je nach den Anforderungen der DUT eingestellt werden können. Ein
Register 52 speichert die zu ihm übertragenen Steuerungsdaten
von dem Hauptrechner über
die I/O-Steuerungsvorrichtung 44 von 2 vor
einem Prüfvorgang.
Die Daten in dem Register 52 werden der Ansteuerung 50 zugeführt, und
die Prüfsignal-Logikpegel werden
gesteuert.
-
Die
DUT-Schnittstellenschaltung 40 enthält auch einen Komparator 54.
Der Komparator 54 vergleicht ein Signal, das durch die
DUT auf dem Leiter 16 erzeugt wird, mit einer Analogsignal-Ausgabe
eines Digital/Analog-Wandlers (D/A-Wandler) 56. Der Betrag
des Ausgabesignals des D/A-Wandlers 56 wird durch Daten
gesteuert, die in dem Register 58 gespeichert sind und
einen Haltepunkt zwischen einem logisch wahren und einem logisch
falschen Zustand des DUT-Ausgabesignals anzeigen. Der Hauptrechner
lädt Daten
in das Register 58 über
die I/O-Steuerungsvorrichtung,
bevor ein Prüfvorgang
begonnen wird. Wenn das COMPARE-Signal von dem Zeitformatierer 38 von 2 bestätigt wird,
erzeugt der Komparator 54 ein Ausgangsdaten-Bit, das anzeigt,
ob die Spannung des DUT-Ausgabesignals höher als das Ausgabesignals
des D/A-Wandlers 56 ist. Wenn das COMPARE-Signal das nächste Mal
nicht-bestätigt
wird, speichert eine Speicher-Steuerungsschaltung 60 das
Bit in dem Erfassungsspeicher 62. während eines Prüfvorgangs
kann der Erfassungsspeicher 62 somit eine Abfolge von Datenwerten
erfassen und speichern. Danach kann der Hauptrechner, der durch
die I/O-Steuerungsvorrichtung 44 von 2 betrieben
wird, die erfassten Daten über
die Speichersteuerung 60 für eine anschließende Analyse
aus dem Speicher 62 auszulesen.
-
5 ist
ein Blockdiagramm, das den Zeitformatierer 38 von 2 beschreibt.
Der Zeitformatierer 38 enthält eine Gruppe aus sechs Zeitabstimmungs-Schaltungen 71–76 und
eine Gruppe aus Multiplexer-Latchschaltungen 80, 82 und 84.
Eine Hoch-Ansteuerungsschaltung 71 bestimmt,
wann das Ansteuerungssignal DRIVE auf den hohen Pegel gesteuert
wird, und eine Tief-Ansteuerungsschaltung 72 bestimmt,
wann das Ansteuerungssignal DRIVE auf den tiefen Pegel gesteuert
wird. Die Hoch-Abtastschaltung 73 und die Tief-Abtastschaltung 74 bestimmen,
wann das Signal COMPARE auf den hohen beziehungsweise auf den tiefen
Pegel gesteuert wird, und die Hoch-Dreizustands-Schal tung 75 und
die Tief-Dreizustands-Schaltung 76 bestimmen, wann das
Dreizustands-Signal TRISTATE auf den hohen oder den tiefen Pegel
gesteuert wird.
-
Die
Schaltungen 71–76 können in
der einen oder der anderen zweier Betriebsarten betrieben werden, nämlich einer
Prozessor-Betriebsart (PROCESSOR) oder einer Muster-Betriebsart
(PATTERN). Sie müssen nicht
alle in der selben Betriebsart zu einer gegebenen Zeit arbeiten.
Ein Prüfvorgang
wird in eine Gruppe aufeinanderfolgender Prüfzyklen segmentiert, wovon
sich jeder über
eine ausgewählte
Anzahl von Zyklen des T0-Zeitabstimmungssignals
erstreckt. In der Prozessor-Betriebsart überträgt die Anweisungs-Verarbeitungseinheit 36 von 2 einen
oder mehrere Befehle zu dem Zeitformatierer 38 während jedes
Prüfzyklusses.
Jeder Befehl enthält
ein 20-Bit-Zeitwort
(TIMEWORD) sowie ein 6-Bit-Aktionswort (ACTIONWORD). Das Zeitwort
zeigt eine spezielle Zeit an, bei welcher der Zeitformatierer eine
Handlung während
des nächsten
Zyklusses aufführen
soll, und das Aktionswort zeigt die durchzuführende spezielle Handlung an.
Das Zeitwort wird zu jeder Schaltung 71–76 in der Prozessor-Betriebsart
parallel gesendet, während
jedes Bit L1–L6
des Aktionswortes an eine jeweilige entsprechende Schaltung 71–76 gesendet
wird. Wenn ein Aktionswort-Bit
eingestellt wird, speichert die Schaltung 71–76,
die es empfängt,
das Zeitwort und initiiert eine Handlung während des nächsten Prüfzyklusses zu der durch das
Zeitwort angezeigten Zeit. Somit wählt das Aktionswort eine während des
nächsten
Prüfzyklusses
durchzuführende
Handlung aus, indem die spezielle Zeitabstimmungsschaltung 71–76 für den Empfang
des Zeitwortes ausgewählt
wird.
-
In
der Muster-Betriebsart begründet
jede Zeitabstimmungsschaltung 71–76 ihre Zeitabstimmungs-Begründung auf
Abfolgen von Zeitwörtern,
welche der Hauptrechner 22 von 1 in die Zeitabstimmungsschaltung 71–76 über die
I/O-Steuerungsvorrichtung 44 von 2 lädt, bevor
der Prüfvorgang
beginnt. Wenn zum Beispiel das Signal DRIVE in einem kurzen, sich
wiederholenden Muster während
eines Prüfvorgangs
bestätigt
und nicht-bestätigt
werden soll, können
die beiden Schaltungen 71 und 72, welche die Zeitabstimmung
des DRIVE-Signals steuern, in der Muster-Betriebsart betrieben werden.
Wenn das DRIVE-Signal
in einem langen Muster bestätigt
und nicht-bestätigt
werden soll, wird die Prozessor-Betriebsart ausgewählt. Die
Betriebsarten für
die Schaltungen 73–76 werden
auf ähnliche
Weise ausgewählt.
-
5A ist
eine Darstellung eines Zeitwortes (TIMEWORD), das durch den Zeitformatierer 38 verarbeitet
wird. Wenn bei der Prozessor-Betriebsart in 5 und 5A ein
Zeitwort in einer der Schaltungen 71–76 während eines
Prüfzyklusses
gespeichert wird, leitet diese Schaltung eine spezielle Handlung
während des
nächsten
Prüfzyklusses
zu einem Zeitpunkt ein, der durch das Zeitwort gekennzeichnet ist.
Am Anfang dieses nächsten
Prüfzyklusses
sendet die Verarbeitungseinheit einen Neuzyklus-Impuls (NEWCYCLE)
an jede Zeitabstimmungsschaltung 71–76. Wenn zum Beispiel
die Hoch-Ansteuerungsschaltung 71 in der Prozessor-Betriebsart
arbeitet, reagiert sie auf den Neuzyklus-Impuls, indem sie T0 Signalzyklen
bis zu der Anzahl N hochzählt,
die durch die ersten 11 Bits (Bits 0–10) ihres zuletzt gespeicherten
Zeitwortes angezeigt wird, wie in 5A dargestellt.
Die Hoch-Ansteuerungsschaltung 71 wählt dann eine spezielle Untergruppe
DH0–DH7 von
acht der 31 Zeitabstimmungssignale T0–T30 aus, verzögert sie
um einen ausgewählten
Betrag und leitet sie zu einem "Einstell"-Eingang einer Multiplexer-Latchschaltung 80 in
Form ihrer Ausgabesignale DH0–DH7 weiter.
Die Bits 11 und 12 (TAP) des Zeitwortes, wie in 5A gezeigt,
zeigen an, welche spezielle Untergruppe (DH0–DH7) von acht der 31 Zeitabstimmungssignale
T0– T30
ausgewählt
werden. Die Bits 13–16
(DELAY) zeigen den Betrag an, um den diese acht Zeitabstimmungssignale
verzögert
sind. In der Zwischenzeit leitet die Hoch-Ansteuerungsschaltung 71 auch
die letzten drei Bits (SELECT) des Zeitwortes (TIMEWORD) als Auswahlsignale
DHS0–DHS2
an einen "Einstell-Auswahl"-Eingang der Multiplexer-Latchschaltung 80 weiter. Als
Reaktion auf die Bits DHS0–DHS2
wählt die
Multiplexer-Latchschaltung 80 eines der acht ausgewählten Zeitabstimmungssignale
DH0–DH7
aus. Wenn dieses eine Zeitabstimmungssignal dem Einstell-Eingang
der Multiplexer-Latchschaltung 80 einen Impuls zuführt, stellt
die Latchschaltung ihr Ausgangssignal DRIVE ein (steuert es auf
den hohen Pegel).
-
Wenn
somit ein Zeitwort (TIMEWORD) in die Hoch-Ansteuerungsschaltung 71 geladen
wird, zeigt es genau an, wann das DRIVE-Signal während des nächsten Prüfzyklusses auf den hohen Pegel
gesteuert werden muss. Wenn die Tief-Ansteuerungsschaltung 72 ein
Zeitwort als Reaktion auf das Steuerungssignal L2 empfängt, überträgt es dann
auf ähnliche
Weise acht gesonderte Zeitabstimmungssignale DL0–DL7, um die Eingänge der
Multiplexer-Latchschaltung 80 zusammen mit drei Steuerungsbits
DLS0–DLS2
rückzusetzen, um
eines der acht Zeitabstimmungssignale auszuwählen. Die Latchschaltung 80 führt dann
eine Rücksetzung des
DRIVE-Signals als Reaktion auf einen Impuls von dem ausgewählten Zeitabstimmungssignal
DLS0–DLS7 durch
(steuert es auf den tiefen Pegel). wenn ein Zeitwort in die Tief-Ansteuerungsschaltung 72 geladen
wird, zeigt es sehr genau an, wann bezüglich der nächsten Bestätigung des Neuzyklus-Signals (NEWCYCLE)
das DRIVE-Signal auf den tiefen Pegel gesteuert werden muss.
-
Die
Multiplexer-Latchschaltung 82 erzeugt das Vergleichssignal
COMPARE als Reaktion auf Signale von der Hoch-Abtast schaltung 72 und
der Tief-Abtastschaltung 73, und die Multiplexer-Latchschaltung 84 erzeugt
das Dreizustands-Signal TRISTATE als Reaktion auf Signale von der
Hoch-Dreizustandsschaltung 75 und der Tief-Abtastschaltung 76.
Diese Schaltungen arbeiten auf ähnliche
Weise wie die Schaltungen 71, 72 und 80,
um die Zustände
der Signale COMPARE und TRISTATE zu steuern.
-
Für diejenigen
Schaltungen 71–76,
die in der Muster-Betriebsart arbeiten sollen, führt der Hauptrechner 22 von 1 durch
Einwirkung der I/O-Steuerungsschaltung 44 von 2 eine
Vorabladung einer Gruppe von bis zu vier Zeitwörtern in jede Zeitabstimmungsschaltung 71–76 durch,
bevor ein Prüfvorgang
beginnt. So wie in der Prozessor-Betriebsart zeigen die Zeitwörter auch
Zeiten während
aufeinanderfolgender Prüfzyklen an,
während
denen eine Handlung stattfinden soll. Während des Prüfvorgangs
führen
jedoch diejenigen Schaltungen 71–76, die in der Muster-Betriebsart
arbeiten sollen, in wiederholter Weise die Operationen durch, die durch
ihre gespeicherten Zeitwort-Abfolgen während aufeinanderfolgender
Prüfzyklen
angezeigt werden, und empfangen keine Zeitwörter von der Anweisungs-Verarbeitungseinheit.
-
6 ist
ein Blockdiagramm, das die Hoch-Ansteuerungsschaltung 71 von 5 beschreibt.
Die Schaltungen 72–76 von 5 sind ähnlich.
In 6 speichert ein Register 90 das 20-Bit-Zeitwort
(TIMEWORD) als Reaktion auf das L1-Bit des Aktionswortes (ACTIONWORD).
Die ersten elf Bits N des in dem Register 90 gespeicherten
Zeitwortes werden einer Sequenziervorrichtung 91 als Eingabe
zugeführt.
Die verbleibenden neun Bits (TAP, DELAY und SELECT) des in dem Register
(REG) 90 gespeicherten Zeitwortes werden einer Latchschaltung
(LATCH) 92 als Eingabe zugeführt. Die Ausgabe der Latchschaltung 92 wird
einem Eingang eines Multiplexers (MUX) 93 zugeführt. Beim Empfang
des Neuzyklus-Signals (NEWCYCLE) in der Verarbeitungseinheit 36 leitet
die Latchschaltung 92 die Abschnitte TAP, DELAY und SELECT
des Zeitwortes in dem Register 90 zu dem Multiplexer 93 weiter.
Bei dem N-ten ROSC-Signalimpuls, der auf den Neuzyklus-Signalimpuls
folgt, führt
die Sequenziervorrichtung 91 eine Rücksetzung des Flip-Flops 94 durch,
das einen Q-Ausgang (DISABLE) hat, der dem Multiplexer 93 als
Eingang zugeführt
wird. Das Flip-Flop 94 wird durch die Ansteuerungssignal-Ausgabe
(DRIVE) der Latchschaltung 80 von 5 gesetzt.
Der 20/10-Bit-Multiplexer 93 wird durch ein Betriebsart-Bit
(MODE) gesteuert, dort in einem Register 95 durch den Hauptrechner über die
I/O-Steuerungsschaltung 44 von 2 vor dem
Prüfvorgang
gespeichert wird. Das Betriebsart-Bit zeigt an, ob die Hoch-Ansteuerungsschaltung 71 in
der Prozessor- oder Muster-Betriebsart arbeiten soll.
-
Beim
Betrieb in der Prozessor-Betriebsart leitet der Multiplexer 93 die
drei Auswahl-Bits (SELECT) als Ausgabe der Latchschaltung 92 als
Auswahlsignale DHS0–DHS2
zu dem Auswahl-Steuerungseingang der Multiplexer-Latchschaltung 80 von 5 weiter.
Der Multiplexer 93 leitet die verbleibenden sechs Bits
(zwei TAP-Bits und vier DELAY-Bits) der Ausgabe der Latchschaltung 92 zu
einer Zeitereignis-Generator-(TEG)-Schaltung 100 weiter, welche
die acht Zeitabstimmungssignale DH0–DH7 erzeugt, die dem Setz-Eingang
der Multiplexer-Latchschaltung 80 von 5 zugeführt werden.
Die TEG-Schaltung 100 wählt acht
der 31 T0–T30
aus und verzögert
sie in eingestellter Weise, um die Zeitabstimmungssignale DH0–DH7 zu
erzeugen. Die acht Zeitabstimmungssignale DH0–DH7 werden in Übereinstimmung
mit den TAP-Bits ausgewählt,
und der Betrag, um den jedes Zeitabstimmungssignal DH0–DH7 verzögert wird,
wird durch die vier Verzögerungsbits
(DELAY) bestimmt.
-
Der
Multiplexer 93 leitet auch die Sperr-Ausgabe (DISABLE)
des Flip-Flops 94 zu der TEG-Schaltung 100 weiter.
Wenn während
eines Prüfzyklusses
die Multiplexer-Latchschaltung 80 das Ansteuerungssignal (DRIVE)
bestätigt,
setzt sie das Sperrausgabe-Bit des Flip-Flops 94 auf wahr
ein. Dieses Bit "sperrt" die Schaltung TEG 100,
indem sie ihr mitteilt, dass sie ihre Ausgabe-Bits DH0–DH7 der
Schaltung TEG 100 auf den tiefen Wert zieht und sie auf
dem tiefen Wert hält.
Nachdem die Sequenziervorrichtung 91 während des nächsten Prüfzyklus N ROSC-Zyklen gezählt hat,
setzt sie das Flip-Flop 94 zurück, um das Sperrbit (DISABLE)
auf den niedrigen Pegel zu steuern. Dies gibt die TEG 100 frei,
um den Satz der Signalimpulse DH0–DH7 während des nächsten Taktzyklusses T0 zu
erzeugen.
-
In
der Muster-Betriebsart (PATTERN) speichert der Hauptrechner, der
durch die I/O-Steuerungsvorrichtung 44 von 2 tätig wird,
bis zu vier Zeitwörter
in einer Gruppe aus vier Registern 96, bevor ein Prüfvorgang
beginnt. Das in jedem Register 96 gespeicherte Zeitwort
wird einem gesonderten Eingang eines Multiplexers 97 zugeführt. Der
Multiplexer 97 leitet die neun Bits TAP, DELAY und SELECT
eines Zeitwortes eines ausgewählten
Registers 96 zu einem Eingang des Multiplexers 93 weiter.
Der Multiplexer 97 sendet die verbleibenden elf Bits des
ausgewählten
Zeitwortes zu einem Eingang einer Sequenziervorrichtung 98.
Bei jedem Empfang eines Neuzyklus-Impulses schaltet die Sequenziervorrichtung 98 den
Multiplexer 97 um, um das Zeitwort für den nächsten Prüfzyklus auszuwählen, und
beginnt mit dem Zählen
der T0 Signalimpulse. Wenn der Zählwert
N erreicht, setzt die Sequenziervorrichtung 99 ein Flipflop 99 zurück, das
dem Multiplexer 93 ein Sperrsignal (DISABLE) zuführt. Das
Flip-Flop 99 wird durch das Ansteuerungssignal (DRIVE)
gesetzt. In der Muster-Betriebsart wählt das in den Registern 99 gespeicherte
Muster-Bit die Bits TAP, DELAY und SELECT von dem Multiplexer 97 und
das Sperrbit (DISABLE) von dem Flip-Flop 99 aus. Die TEG-Schaltung 100 von 6 und
die Multiplexer-Latchschaltung 80 von 2 verarbeiten
diese Daten auf dieselbe Weise wie in der Prozessor-Betriebsart,
um festzustellen, wann das Ansteuerungssignal (DRIVE) bestätigt werden
soll. Das Flip-Flop 99 arbeitet auf ähnliche Weise wie das Flip-Flop 94,
um die TEG-Schaltung 100 freizugeben,
nachdem es das Ansteuerungssignal einmal während des Prüfzyklus
auf den hohen Pegel gesteuert hat. Die spezielle Muster-Sequenziervorrichtung 98 folgt
beim Auswählen
eines Registers 96, nachdem jedes Neuzyklus-Signal bestimmt
ist, durch Muster-Steuerungsdaten, die der Sequenziervorrichtung 98 durch
den Hauptrechner über
die I/O-Steuerungsvorrichtung 44 von 2 zugeführt werden,
bevor der Prüfvorgang
beginnt.
-
Um
die TEG-Schaltung 100 für
einen gesamten Prüfzyklus
zu sperren, werden die elf Bits N eines Zeitwortes (TIMEWORD), das
entweder in einem Register 96 gespeichert ist (für die Muster-Betriebsart)
oder dem Register 90 zugeführt wird (für die Prozessor-Betriebsart),
auf einen Wert eingestellt, der höher als die Länge des
Prüfzyklus
ist. In einem solchen Fall sind die Sequenziervorrichtungen 98 und 91 nicht
in der Lage, hoch genug zu zählen,
um die Flip-Flops 99 und 94 während jedes Prüfzyklusses
zurückzusetzen.
Wie weiter unten besprochen wird, führt die I/O-Steuerungsschaltung 44 der
TEG-Schaltung 100 Kalibrierungsdaten (CAL) für eine kurzgefasste
Steuerung der Zeitabstimmung der Signale DH0–DH7 zu.
-
7 ist
ein Blockdiagramm, das den Zeitereignis-Generator 100 von 6 beschreibt.
Der Zeitereignis-Generator 100 enthält eine Gruppe aus acht identischen
Auswahl- und Verzögerungszellen
(S/D-Zellen) 110–117.
Wenn das Sperrbit (DISABLE) tief ist, wählt die S/D-Zelle 110 eines
der Zeitabstimmungssignale T0–T3
aus, um es als Reaktion auf die beiden TAP-Bits des Zeitwortes als
Zeitabstimmungssignal DH0 weiterzuleiten. Wenn die S/D-Zelle 110 das
ausgewählte
Abzapfsignal T0–T3
als das DH0-Signal weiterleitet, verzögert sie das ausgewählte Abzapfsignal
(TAP) von null bis 15 "Verzögerungseinheiten", wie dies durch
die vier Verzögerungsbits
(DELAY) bestimmt wird. Wenn das Sperrbit (DISABLE) tief ist, zieht
die Zelle 110 das Signal DH0 auf den tiefen Wert unabhängig von
den Zuständen
der ausgewählten
Zeitabstimmungssignale T0–T3.
Die S/D-Zellen 111–117 arbeiten
auf ähnliche
Weise, wobei jede von ihnen eines von vier Oszillator-Anzapfsignalen
als Reaktion auf die Bits TAP und DELAY auswählt und in abgestimmter Weise
verzögert,
um jeweils ein entsprechendes Ausgangssignal DH1–DH7 zu erzeugen. Wie weiter
unten besprochen wird, empfängt
jede S/D-Zelle auch Kalibrierungsdaten, die von der I/O-Steuerungsschaltung 44 von 2 eingegeben werden,
welche die Signalausbreitungs-Verzögerung durch die S/D-Zellen aus weiter
unten erklärten
Gründen einstellt.
-
Die "Verzögerungseinheit", durch welche die
S/D-Zellen die ausgewählte
Anzapfung verzögern
können,
beträgt
1/16 der Zeitdifferenz zwischen den Impulsen aufeinanderfolgender
Anzapfungen T0–T30
oder 1/17 der Verzögerung
eines Gatters 45 des Oszillators 42 von 3.
Während
der phasenstarre Oszillator 42 von 2 Anzapfsignale
T0–T30
erzeugt, welche den ROSC-Signalzyklus in 31 Zeitsegmente unterteilen, kann
der Zeitereignis-Generator 100 jedes Zeitsegment weiter
in 16 Untersegmente unterteilen. Die Verzögerungsdaten (DELAY) von dem
Zeitwort stellen die Zeitabstimmung jedes Signalimpulses DH0–DH7 in
Schritten von 1/(31 × 16)
oder 1/496 eines ROSC-Signalzyklus
ein. Somit können
wir durch geeignetes Auswählen
und Verzögern
eines Signalimpulses DH0–DH7
einen Referenzsignal-Impuls erhalten, der bei allen der 496 gleichmäßig beabstandeten
Zeiten während
eines ROSC-Signalzyklusses auftritt.
-
8 ist
eine Kombination aus Blockdiagramm und Schaltbild, welche die S/D-Zellen 110 von 7 darstellen.
Die anderen S/D-Zellen 111–117 sind ähnlich.
In 8 enthält
die S/D-Zelle 110 einen
Multiplexer (MUX) 120, der durch die beiden Anzapfsignal-Bits
(TAP) gesteuert wird. Der Multiplexer 120 wählt eines
der Anzapfsignale T0–T3
aus, um sie zu einer programmierbaren Verzögerungsschaltung (PROG.DELAY) 122 weiterzuleiten.
Als Reaktion auf die vier Verzögerungsbits
(DELAY) verzögert
die Verzögerungsschaltung 122 das
ausgewählte
Anzapfsignal um eine bis 15 Verzögerungseinheiten,
um das DH0-Ausgabesignal
zu erzeugen. Ein Transistor 164, der durch das Sperrbit
(DISABLE) gesteuert wird, koppelt das DH0-Signal an eine Quelle
mit logisch "0" (tief), wenn das
Sperrbit (DISABLE) hoch ist. Der Transistor 164 zieht das
DH0-Signal nach unten, nachdem das Ansteuerungssignal (DRIVE) einmal
während
eines Prüfzyklusses
bestätigt
wird, so dass das ausgewählte
Zeitabstimmungssignal T0–T3
nicht wiederholt das Ansteuerungssignal (DRIVE) während des
Restes des Prüfzyklusses
bestätigt.
-
Wie
weiter unten besprochen, kommen die Impulse des ROSC-Signals von 1 bei
den verschiedenen Knoten 14 zu unterschiedlichen Zeiten
an, was zu Zeitabstimmungs-Differenzen zwischen den entsprechenden
Oszillator-Anzapfsignalen T0–T30
dieser gesonderten Knoten führt.
Auch wenn die Verzögerungsschaltung 116 von 3 hilft,
Knoten/Knoten-Differenzen der Signalausbreitungs-Geschwindigkeiten
aufgrund von Schwankungen bei der Verarbeitung der integrierten
Schaltung und Umgebungsschwankungen zu kompensieren, können andere
Faktoren, wie zum Beispiel zyklische Rausch-Störungen, zu kleinen Ausbreitungs-Differenzen
führen.
Zwei Kalibrierungsschaltungen 142 und 144 führen eine
weitere Einstellung der Ausbreitungsverzögerung der ausgewählten Signale
T0–T3
durch, um zu gewährleisten,
dass die Ausbreitungsverzögerungen,
die durch die Verzögerungsschaltungen 122 der
gesonderten Knoten erzeugt werden, gleichwertig sind.
-
Eine
Kalibrierungschaltung 124 innerhalb der S/D-Schaltung 110 von 8 enthält ein Register 126, einen
Multiplexer 128, eine Gruppe von Stromquellen 130, 131 und 132 sowie
drei Transistoren 140, 141 und 142. Die
Transistoren 140–142 koppeln
jeweils die Stromquellen 130–132 an den Eingang
der Verzögerungsschaltung 122.
Jedes Bit einer Drei-Bit-Ausgabe des Multiplexers 128 steuert
den Gate-Anschluss eines gesonderten Transistors der Transistoren 140–142.
Der Hauptrechner speichert über
die I/O-Schaltung 44 von 2 zwölf Bits
in dem Register 126, und zwar drei Bits, die jedem der
vier Anzapfsignale T0–T4
zugeordnet sind. Als Reaktion auf den Wert der Zwei-Bit-Abzapfdaten
(TAP) wählt
der Multiplexer 128 drei der Bits in dem Register 126 aus,
um die Umschaltzustände
der Transistoren 140–142 zu
steuern. Somit werden die speziellen Stromquellen 130–132,
die an den Eingang der Verzögerungsschaltung 122 gekoppelt
sind, ausgewählt
je nach dem, welche Anzapfung T0–T3 momentan ausgewählt ist,
und dem Wert der in dem Register 126 gespeicherten zugeordneten
Daten.
-
Die
Stromquellen 130–132 erzeugen
Ströme
mit jeweiligen relativen Größen 1, 2
und 4, und durch selektives Einschalten der Transistoren 140–142 kann
die Menge des Stromes, welcher dem Eingang der Verzögerungsschaltung 122 zugeführt wird,
jede beliebige relative Größe 0–7 haben.
Dieser Strom bewirkt eine Vorab-Ladung der Eingangs-Kapazität der Verzögerungsschaltung 122,
so dass, wenn der Multiplexer 120 ein Signal zu der Verzögerungsschaltung
weiterleitet, die Verzögerungsschaltung
rascher reagiert. Durch Erhöhen der
Menge des Stroms, der zum Vorab-Laden dieser Eingangs-Kapazität zur Verfügung steht,
verzögern
wir die Ausbreitungs-Verzögerung.
Die in das Regis ter 126 geladenen Daten kalibrieren somit
separat die Ausbreitungs-Verzögerung
für jedes
Zeitabstimmungs-Signal T0–T3.
-
Die
zweite Kalibrierungsschaltung 144 enthält ein Register 146,
einen Multiplexer 148, eine Gruppe aus Stromquellen 150, 151 und 152 sowie
drei Transistoren 160, 161 und 162. Die
Transistoren 160–162 koppeln
jeweils die Stromquellen 150–152 an den Ausgang
der Verzögerungsschaltung 122.
Jedes Bit der Drei-Bit-Ausgabe des Multiplexers 148 steuert
den Gate-Anschluss eines gesonderten Transistors der Transistoren 160–162.
Die I/O-Schaltung 44 von 2 speichert
48 Bits in dem Register 146, und zwar drei Bits, die jeder
der 16 möglichen
Verzögerungen
zugeordnet sind, die durch die Vier-Bit-Verzögerungsdaten
(DELAY) ausgewählt
werden. Als Reaktion auf den Wert der Vier-Bit-Verzögerungsdaten
wählt der
Multiplexer 128 drei der Bits in dem Register 146 aus,
um die Umschaltzustände
der Transistoren 160–162 zu
steuern. Somit werden die speziellen Stromquellen 150–152,
die mit dem Ausgang der Verzögerungsschaltung 122 gekoppelt sind,
je nach dem ausgewählten
Betrag der Verzögerung
der Verzögerungsschaltung 122 und
dem Wert der zugeordneten Daten, die in dem Register 146 gespeichert
sind, bestimmt. Die Kalibrierungsschaltung 144 arbeitet
auf ähnliche
Weise wie die Kalibrierungsschaltung 126, um die Ausbreitungsverzögerung in
der Schaltung durch Vorab-Laden der Eingangskapazität der nächsten Stufe
einzustellen, um die Reaktion der nächsten Stufe auf das DH0-Signal
zu beschleunigen oder zu verlangsamen.
-
Während eines
Kalibrierungsvorgangs werden alle Knoten von 1 so betrieben,
dass sie ein Ausgabe-Prüfsignal
zur selben Zeit bestätigen,
und die DUT wird durch Geräte
zum Messen kleiner Zeitdifferenzen zwischen Signalimpulsen ersetzt.
Bei ausgeschalteten Transistoren 140–142 wird die auf
ein Minimum eingestellte Verzögerung
der Verzögerungsschaltung 122 wie der
Multiplexer 120 in allen Knoten so umgeschaltet, dass T0
ausgewählt
wird. Wenn alle Knoten richtig kalibriert sind, bestätigen alle
Knoten ihre Prüfsignale
zur selben Zeit. Zeitabstimmungsdifferenzen werden überwacht,
und die in dem Register 126 gespeicherten und der Anzapfung
T0 zugeordneten drei Datenbits werden auf einer iterativen Basis
für alle
der Knoten überwacht, bis
alle von ihnen ihre Prüf-Ausgabesignale
zur selben Zeit innerhalb der Auflösung erzeugen, die durch die Kalibrierungsschaltung 124 erzeugt
wird. Der Vorgang wird für
jedes der Referenzsignale T1–T3
für alle
der Knoten wiederholt.
-
Anschließend wird
die Anzapfung T0 in jedem Knoten ausgewählt, die Prüfsignal-Zeitabstimmung wird für alle unterschiedlichen
Verzögerungs-Einstellungen
der Verzögerungsschaltung 122 verglichen,
und die Daten in dem Register 146 werden iterativ eingestellt,
um zu gewährleisten,
dass alle Knoten Prüfsignale
zur selben Zeit für
jede Einstellung der Verzögerungsschaltung 122 innerhalb
der durch die Kalibrierungsschaltung 144 ermöglichten
Auflösung
bestätigen.
Der Kalibrierungsvorgang wird für
alle S/D-Zellen 111–117 des
Zeitereignis-Generators 100 von 6 und 7 sowie
für ähnliche
Zeitereignis-Generatoren wiederholt, die in den Tief-Ansteuerungs-,
den Hoch-Abtastungs-, den Tief-Abtastungs-, den Hoch-Dreizustands-
und den Tief-Dreizustands-Schaltungen 71–76 von 5 jeweils
enthalten sind.
-
9 ist
eine Kombination aus Blockdiagramm und Schaltbild, die eine typische
Multiplexer-Latchschaltung 80 von 5 beschreibt.
Die Multiplexer-Latchschaltungen 82 und 84 sind ähnlich.
Die Multiplexer-Latchschaltung 80 enthält acht CMOS-NICHT-UND-Gatter
N0–N7,
acht CMOS-UND-Gatter A0–A7,
acht pMOS-Transistoren T0–T7,
acht nMOS-Transistoren T8–T15,
eine bistabile Latchschaltung 170 sowie zwei Dekodierer 172 und 174.
Die Hochansteuerung-Auswahlsignale DHS0–DHS3 erzeugen eine Eingabe
für den Dekodierer 172.
Der Dekodierer 172 hat acht Ausgänge, die jeweils einen Eingang
eines gesonderten Gatters der NICHT-UND-Gatter G0–G7 ansteuert
und jeweils als Reaktion auf eine gesonderte Kombination von Dekodierer-Eingabebits
bestätigt
werden. Der Dekodierer 174 dekodiert die Tiefansteuerung-Auswahlsignale DLS0–DLS2, um
acht Ausgaben zu erzeugen, die jeweils einen Eingang eines gesonderten
Gatters von UND-Gattern A1–A7
als Reaktion auf eine gesonderte Kombination der Bits DLS0–DLS2 ansteuern.
-
Die
Hochansteuerung-Zeitabstimmungsbits DH0–DH7 werden jeweils zweiten
Eingängen
der NICHT-UND-Gatter N0–N7
zugeführt,
und die Tief-Ansteuerungsbits werden jeweils zweiten Eingängen von UND-Gattern
A1–A7
zugeführt.
Die Ausgaben der NICHT-UND-Gatter
N0–N7
steuern jeweils die Gate-Anschlüsse
der Transistoren T0–T7,
und die Ausgaben der UND-Gatter A0–A7 steuern jeweils die Gate-Anschlüsse der
Transistoren T8–T15.
Der Source-Anschluss jedes Transistors T0–T7 ist an eine gemeinsame Spannungsquelle
VSS angebunden, während
der Source-Anschluss
jedes Transistors T8–T15
geerdet ist. Die Drain-Anschlüsse aller
Transistoren T0–T15
sind bei einem Knoten 176 miteinander verbunden. Die bistabile Latchschaltung 170 besteht
aus zwei CMOS-Umkehrschaltungen I1 und I2. Der Ausgang von I2 ist
mit dem Eingang von I1 verbunden, und der Ausgang von I1 ist mit
dem Eingang von I2 sowie mit dem Schaltungsknoten 176 verbunden.
Das Latchschaltung-Ausgabesignal (DRIVE) erscheint am Schaltungsknoten 176.
-
Als
Reaktion auf ein spezielles Bitmuster DHS0–DHS2 steuert der Dekodierer 172 einen
Eingang zum Beispiel des NICHT-UND-Gatters N0 auf den hohen Pegel. Wenn
das NICHT-UND-Gatter N0 anschließend einen Impuls von dem Zeitabstimmungs-Signal
DH0 empfängt,
schaltet es den Transistor T0 ein, wodurch das An steuerungssignal
(DRIVE) auf den hohen Pegel gezogen wird. Wenn das Ansteuerungssignal
(DRIVE) auf den hohen Pegel schwingt, geht die Ausgabe Inverters
I2 auf den tiefen Pegel und bewirkt wiederum, dass die Ausgabe des
Inverters I1 auf den hohen Pegel geht. Nachdem das Zeitabstimmungs-Signal
DH0 auf den tiefen Pegel geht, bewirkt die Ausgabe des Inverters
I1 weiterhin, dass das Ansteuerungssignal (DRIVE) nach oben gezogen
wird. Somit wird das Ansteuerungssignal (DRIVE) bis zum Rücksetzen
auf dem hohen Pegel gehalten.
-
Um
anschließend
das Ansteuerungssignal (DRIVE) auf den tiefen Logikpegel rückzusetzen,
steuert der Dekodierer 174 als Reaktion auf ein spezielles
Bitmuster der DLS0–2
einen Eingang zum Beispiel des UND-Gatters A0 auf den hohen Pegel.
Wenn das UND-Gatter A0 anschließend
einen Impuls von dem Zeitabstimmungs-Signal DL0 empfängt, schaltet
es den Transistor T8 ein, wodurch das Ansteuerungssignal (DRIVE) auf
den tiefen Pegel gezogen wird. Der Transistor T8 ist relativ groß im Vergleich
zu den die Umkehrschaltungen I1 und I2 bildenden Transistoren und überwindet
ihre Latchwirkung. Wenn das Ansteuerungssignal (DRIVE) auf, den
tiefen Pegel geht, geht die Ausgabe der Umkehrschaltung I2 auf den
hohen Pegel und bewirkt wiederum, dass die Ausgabe der Umkehrschaltung
I1 auf den tiefen Pegel geht. Nachdem das Zeitabstimmungs-Signal
DL0 auf den tiefen Pegel geht, zieht der Ausgang der Umkehrschaltung
I1 die Ansteuerung DRIVE weiterhin nach unten. Das Ansteuerungssignal
DRIVE verbleibt danach in dem tiefen Logikzustand, bis ein Rücksetzen
auf einen hohen Zustand durch eines der Hoch-Ansteuerungssignale
DH0–DH7
erfolgt.
-
10 ist
ein Blockdiagramm, welches die Anweisungs-Verarbeitungsschaltung 36 von 2 beschreibt.
Die Anweisungs-Verarbeitungsschaltung 36 enthält einen
Mikroprozessor 180, der Anweisungen ausführt, die
auf einem lokalen Bus 31 von dem Speicher 34 von 2 über eine
Speicher-Managementeinheit 32 befördert werden. Wenn der Mikroprozessor 180 eine
24-Bit-Startadresse zu der Speicher-Managementeinheit 32 von 2 über den
Bus 33 und Signale zu der Speicher-Managementeinheit 32 über die
Steuerungsleitungen 183 sendet, reagiert die Speicher-Managementeinheit 32,
indem sie drei Acht-Bit-Datenwörter aus
dem Speicher 34 von 2 beginnend
bei der angezeigten Adresse ausliest. Die Speicher-Managementeinheit 32 lädt die drei
8-Bit-Datenwörter
in eine Gruppe aus drei Registern 181 und lädt dann
gleichzeitig die Inhalte der Register als ein 24-Bit-Datenwort in
einen ersten FIFO-Puffer 182, indem eine Verschiebung des
Steuerungssignals SI auf den Steuerungsleitungen 183 bestätigt wird.
Die Speicher-Managementeinheit 32 von 2 liest
weiterhin 8-Bit-Datenwörter
bei aufeinanderfolgenden Adressen des Speichers 34 aus
und verschiebt sie als 24-Bit-Wörter
in den FIFO-Puffer 182, bis der FIFO-Puffer voll ist. Die
Speicher-Managementeinheit 32 führt dann dem Mikroprozessor 180 über die
Steuerungsleitungen 183 Signale zu und teilt ihm mit, dass
die Anweisungen in dem FIFO-Puffer 182 vorhanden sind.
-
Der
Mikroprozessor 180 erzeugt dann sequentiell ein Herausschiebungs-Signal
S0 (Dauerumschaltung), wodurch bewirkt wird, dass der FIFO-Puffer 182 eine
nächste
Anweisung aus dem Bus 33 herausschiebt. Der Mikroprozessor 180 liest
dann die auf dem Bus 33 erscheinende Anweisung und führt sie
aus. Diese Anweisungen bilden einen Algorithmus, der dem Mikroprozessor 180 mitteilt,
eine Abfolge von Befehlen zu erzeugen, wobei jeder Befehl ein Zeitwort
und ein Aktionswort (TIMEWORD und ACTIONWORD) enthält. Wie
weiter oben besprochen, zeigt ein Aktionswort eine spezielle Handlung
an, die während
eines nächsten Prüfzyklusses
durchzuführen
ist, und zeigt ein Zeitwort eine Zeit während des nächsten Prüfzyklusses an, wann der Zeitformatierer
von 4 die angezeigte Handlung einzu leiten hat. Der
Mikroprozessor 180 gibt einen Aktionswort-Abschnitt des Befehls
auf eine Gruppe von sechs Steuerungsleitungen L1–L6 aus und gibt den 20-Bit-Zeitwort-Abschnitt
des Befehls auf den Bus 33 aus. Die Leitungen L1–L6 und
die 20 Leitungen des Bus 33 befördern den Aktionswort/Zeitwort-Befehl zu der Zeitformatierer-Schaltung 38 von 5.
-
Bevor
ein Prüfvorgang
beginnt, speichert der Hauptprozessor über die I/O-Schaltung 44 von 2 einen
Datenwert in einem Zähler 184 innerhalb
der Anweisungs-Verarbeitungsschaltung 36, wodurch die Länge jedes
Prüfzyklusses
als Anzahl von Signalzyklen T0 angezeigt wird. Nach dem Empfang
eines Start-Steuerungssignals
(START) von dem Mikroprozessor 180 beginnt der Zähler 184 das
Zählen
der Signalimpulse T0. Wenn der Zählwert
die angezeigte Grenze erreicht, erzeugt der Zähler 184 einen Neuzyklus-Impuls
(NEWCYCLE) und beginnt seine Zählung
der Signalimpulse T0 erneut. Wie zuvor besprochen, wird der Neuzyklus-Impuls
zu den Schaltungen 71–76 von 5 gesendet,
um anzuzeigen, wann ein neuer Prüfzyklus
beginnen soll.
-
Der
Mikroprozessor 180 kann jedes beliebige von vier Laufzeit-Ausgabesignalen
(RUNTIME) bestätigen,
wovon jedes zu einer gesonderten Verbindung der vier Verbindungen 30 von 2 gesendet
wird. Der Mikroprozessor 180 kann auch ein beliebiges von
vier Laufzeit-Eingabesignalen empfangen, und zwar eines von jeder
Verbindung 30. Die Ausgabe-Laufzeitsignale ermöglichen
es dem Mikroprozessor 180, dem Hauptrechner oder anderen
Knoten während
eines Prüfvorgangs
Signale zuzuführen,
wenn diese Anweisung erfolgt, um zum Beispiel den Abschluss einer
Prüfung
anzuzeigen. Die Eingabe-Laufzeitsignale ermöglichen es dem Hauptrechner
oder anderen Knoten, dem Mikroprozessor 180 während einer
Prüfung
Signale zuzuführen,
um zum Beispiel den Beginn oder das Ende einer Prüfung zu
markieren oder um dem Mikroprozessor 180 mitzuteilen, ein
Unterbrechungsprogramm auszuführen.
-
Zu
Beginn einer Prüfung
reagiert der Mikroprozessor 180 auf ein Laufzeitsignal,
indem er das Startsignal zu einem Zähler 184 sendet, um
ihm mitzuteilen, das Zählen
der Signalzyklen T0 zu beginnen, und indem er eine erste Adresse
zu der Speicher-Managementeinheit über den Bus 33 sendet.
Die Speicher-Managementeinheit sendet dann eine Abfolge von Anweisungen
zu dem FIFO-Puffer 182. Wenn der Mikroprozessor 180 die
Anweisungen ausliest und ausführt,
sendet er einen Zeitwort/Aktionswort-Befehl zu dem Zeitformatierer 38 von 2 für jede Handlung,
die während
des nächsten
Prüfzyklusses
durchgeführt
werden soll. Wenn der FIFO-Puffer 182 von den Anweisungen
entleert ist, sendet der Mikroprozessor 180 eine weitere
Adresse zu der Speicher-Managementeinheit 32 von 2,
und die Speicher-Managementeinheit lädt den FIFO-Puffer erneut mit einem nächsten Satz
Anweisungen. Eine letzte Anweisung während jedes Prüfzykluses
teilt dem Mikroprozessor 180 mit, dass er ruhen soll, bis
er ein Neuzyklus-Signal
von dem Zähler 184 erhält, das
den Beginn eines neuen Prüfzyklusses
anzeigt. Der Mikroprozessor 180 beginnt dann erneut mit
dem Auslesen von Anweisungen aus dem FIFO-Puffer 182 und ihrer Ausführung, um
Zeitwort/Aktionswort-Befehle
für den nächsten Prüfzyklus
zu erzeugen. Der Vorgang wird für
jeden Zyklus der Prüfung
fortgeführt.
Am Ende eines Prüfvorgangs
kann eine letzte Anweisung dem Mikroprozessor 180 mitteilen,
ein Ausgabe-Laufzeitsignal zu bestätigen, welches die Vollendung
bzw. den Abschluss der Prüfung
anzeigt. Die Netzwerk-Schnittstelle 30 von 2 kann
so konfiguriert werden, dass sie dieses Signal in geeigneter Weise
zu dem Hauptrechner oder anderen Knoten weiterleitet.
-
10A ist ein Blockdiagramm, welches eine geeignete
Architektur für
den Mikroprozessor 180 von 10 veranschaulicht.
Die primäre
Funktion des Mikroprozessors 180 besteht darin, algorithmische
Anweisungen durchzuführen,
wie zum Beispiel Addieren, Subtrahieren, Bit-Verschieben, Verwenden
von Unterprogrammen, Rekursion, Verzweigen sowie andere wohlbekannte
algorithmische Verfahren, um Befehlsabfolgen zu erzeugen. Jeder
Befehl enthält
ein Zeitwort, das auf dem Bus 33 erzeugt wird, sowie ein
Aktionswort, das auf den sechs Leitungen L1–L6 erzeugt wird.
-
Dem
Fachmann ist geläufig,
dass eine Anzahl wohlbekannter 24-Bit-Mikroprozessor-Architekturen derartige
Funktionen implementieren können.
In dem bevorzugten Ausführungsbeispiel
enthält
der Mikroprozessor 180 einen Anweisungs-Dekodierer 185,
eine arithmetische Logikeinheit (ALU) 186, zwei Register 187, zwei
Programmzähler 188 und
eine Stapelschaltung 189. Der Anweisungs-Dekodierer 185 dekodiert 24-Bit-Anweisungen
auf dem Bus 33, um mehrere Steuerungs-Ausgabebits zu erzeugen.
Einige dieser Bits steuern das Laden von Daten in die Register 187 und
wählen
durch die ALU 186 durchzuführende Operationen aus. Die
ALU 186 hat einen Ausgang, der über einen Dreizustands-Puffer 186A,
der durch den Dekodierer 185 gesteuert wird, selektiv an
den Bus 33 gekoppelt ist. Die ALU 186 hat zwei
Eingänge,
die jeweils geschaltet sind, um Daten zu empfangen, die in einem
von den beiden Register 187 gesonderten Register gespeichert sind.
Die Register 187 empfangen und speichern Daten, die auf
dem Bus 33 erscheinen, wenn der Eingang durch Signale von
dem Dekodierer 185 freigegeben wird. Die ALU 186 kann
eine Ausgabe erzeugen, die selektiv entweder die Summe von oder
die Differenz zwischen den beiden in den Registern 187 gespeicherten Werten
ist, oder die eine bit-verschobene (mit zwei multiplizierte oder
durch zwei dividierte) Version eines in dem einen und dem anderen
Register gespei cherten Wertes ist. Die ALU 186 ist zum
Beispiel nützlich,
wenn eine Abfolge von Zeitwörtern
erzeugt wird, wobei jedes aufeinanderfolgende Zeitwort eine Zeit
darstellt, die von der Letzten um einen konstanten Betrag phasenverschoben
ist. Die Programmzähler 188 haben
Ausgänge,
die mit dem Bus 33 durch die Dreizustands-Puffer 188A gekoppelt
sind, sowie Eingänge,
die mit dem Bus 33 durch die Dreizustands-Puffer 188B gekoppelt
sind. Die Puffer 188A und 188B werden durch Signale
von dem Dekodierer 185 gesteuert. Die Zähler 188 sind nützlich,
um Anweisungsadressen im Auge zu behalten. Stapelschaltungen 189,
die durch den Dekodierer 185 gesteuert werden, haben Ausgänge, die
Adressen auf dem Bus 33 über Dreizustands-Puffer 189A empfangen,
und Eingänge
zum Ausgeben der Adressen aus dem Bus 33 über Dreizustands-Puffer 189B.
Die Stapelschaltungen 189 enthalten Programmzähler, Stapelregister und
andere Schaltungen, die auf wohlbekannte Art und Weise arbeiten,
um Unterprogramm-Rücksprungadressen
unter der Steuerung des Dekodierers 185 draufzulegen (push),
abzuheben (pop), zu löschen
(clear), zu halten (hold) oder zu inkrementieren.
-
11 ist
ein Blockdiagramm, das eine Netzwerk-Schnittstelle 30 einer
Gruppe aus vier Netzwerk-Schnittstellen 30 von 2 darstellt.
Jede Verbindung 30 empfängt
die Daten auf einer gesonderten seriellen Eingangs-Übertragungsleitung 18 von
einem vorhergehenden Netzwerkknoten und überträgt Daten auf einer seriellen
Ausgangs-Übertragungsleitung 19 zu
dem nächsten
Netzwerkknoten mit einer klar definierten Übertragungszeit. Dies ermöglicht eine
sehr hohe unidirektionale Bandbreite, die mit Standardbussen nicht möglich ist.
Ein Dreizustands-Puffer 191 kann die hereinkommende Übertragungsleitung 18 mit
einer Seriell/Parallel-Schnittstellenschaltung 190 selektiv
koppeln. Ein weiterer Dreizustands-Puffer 192 kann die
Seriell/Parallel-Schnittstellenschaltung 190 selektiv mit
der herausgehenden Übertragungsleitung 19 koppeln.
-
Die
Schnittstellenschaltung 190, bei der es sich zweckmäßigerweise
um eine skalierbare, kohärente Schnittstelle
vom IEEE-Standard 1596-1993 handelt, empfängt Daten von der Übertragungsleitung 18 in
serieller Form, und leitet sie auf die herausgehende Übertragungsleitung 19 in
serieller Form weiter und leitet sie auf den lokalen Bus 31 in
paralleler Form weiter. Die Seriell/Parallel-Schnittstellenschaltung 190 kann
auch auf dem Bus 31 empfangene parallele Daten in serieller
Form von einer Übertragungsleitung 19 nach
außen übertragen.
-
Eine
Synchronisationsschaltung 193 erzeugt eine genaue Zeitabstimmung
für die Übertragung
und den Empfang von Laufzeit-Signalen,
die auf der hereinkommenden Übertragungsleitung 18 und
der herausgehenden Übertragungsleitung 19 befördert werden.
Die Synchronisationsschaltung 193 umfasst drei Dreizustands-Puffer 195–197,
drei D-Flip-Flops 200–201 und
eine Zeitabstimmungsschaltung (TIMINIG) 203. Ein Ring 18 (Ringlein,
ringlet) ist mit den D-Eingängen
der Flip-Flops 200 und 201 verbunden, und der
Puffer 195 koppelt den Q-Ausgang des Flip-Flops 200 an
die herausgehende Übertragungsleitung 19.
Der Puffer 196 befördert
ein Laufzeitsignal zu der Anweisungs-Verarbeitungseinheit 36 von
dem Q-Ausgang des Flip-Flops 201. Ein durch die Anweisungs-Verarbeitungseinheit 36 von 2 erzeugtes
Laufzeitsignal steuert den D-Eingang des Flip-Flops 202 an.
Ein Puffer 197 koppelt das Laufzeitsignal an dem Q-Ausgang
des Flip-Flops 202 auf die herausgehende Übertragungsleitung 19.
Die Zeitabstimmungs-Schaltung 203 steuert
die Takteingänge
der Flip-Flops 200–202 als
Reaktion auf eine Steuerungseingabe von der I/O-Steuerungsvorrichtung 44 von 2,
wobei die Zeitabstimmungs-Signale
T0–T30
als Referenz verwendet werden. Ein Register 206 speichert
ein Datenwort von der I/O-Steuerungsvorrichtung 44 von 2,
wobei jedes Bit des gespeicherten Da tenwortes die Freigabe der Dreizustands-Puffer 190–197 steuert.
-
Wenn
die Übertragungsleitungen 18 und 19 zum
Befördern
der Anweisungen oder Steuerungsdaten von Knoten zu Knoten verwendet
werden, werden die Puffer 191 und 192 freigegeben,
wodurch die Schnittstellenschaltung 190 zwischen die Übertragungsleitungen
geschaltet wird. In dieser Konfiguration kann ein Hauptrechner auf
den lokalen Bus 31 jedes Knotens über die Seriell/Parallel-Schnittstelle 190 zugreifen.
Mit dem Zugriff auf den Bus 31 kann der Hauptrechner eine
Anweisung in den Speicher 34 von 2 über die Speicher-Managementeinheit 32 schreiben,
Steuerungsdaten in die verschiedenen Vorrichtungen 36, 38 und 40 von 2 über die
I/O-Steuerungsvorrichtung 44 von 2 schreiben
und erfasste Prüfdaten
aus dem Erfassungsspeicher innerhalb der DUT-Schnittstellenschaltung 40 von 2 über die
I/O-Steuerungsvorrichtung 44 auslesen.
-
Während eines
Prüfvorgangs
können
die Übertragungsleitungen 18 und 19 verwendet
werden, um Laufzeitsignale in den Knoten hinein und aus ihm heraus
zu befördern.
Nach einer derartigen Betriebsart wird der Puffer 195 freigegeben,
und die Zeitabstimmungsschaltung 203 taktet das Flip-Flop 200 periodisch,
wodurch ein auf der Übertragungsleitung 18 erscheinendes
Laufzeitsignal auf die Übertragungsleitung 19 geschaltet
wird. Wenn der Knoten auf ein Laufzeitsignal auf der Übertragungsleitung 18 reagieren
soll, wird der Puffer 196 ebenfalls freigegeben, und die
Zeitabstimmungsschaltung 203 taktet periodisch das Flip-Flop 201, so
dass das Flip-Flop 201 das auf der Übertragungsleitung 18 erscheinende
Laufzeitsignal auf die Verarbeitungseinheit 36 von 2 weiterleitet.
Wenn der Knoten ein Laufzeitsignal während eines Prüfvorgangs
erzeugen soll, wird der Puffer 137 freigegeben. Die Zeitabstimmungsschaltung 203 taktet
periodisch das Flip-Flop 202 und bewirkt, dass das Flip-Flop 202 seinen
Laufzeit-Signaleingang periodisch auf die Übertragungsleitung 19 schaltet.
-
12 ist
ein Blockdiagramm, welches veranschaulicht, wie die Laufzeitsignale
von Knoten zu Knoten durch eine Netzwerk-Schnittstelle hindurchtreten. 12 zeigt
relevante Abschnitte jeder Verbindung 30 eines Netzwerks,
das aus N Knoten besteht, die als Knoten 0 bis Knoten N – 1 gekennzeichnet
sind und in einer Schleife geschaltet sind, wobei die herausgehende Übertragungsleitung 19 jedes
Knotens mit der hereinkommenden Übertragungsleitung 18 des
nächsten
verbunden ist. In dem Beispiel erzeugt der Prozessor des Knotens
0 ein Laufzeitsignal, das um die Netzwerkschleife herum zu der Verbindung
in jedem Knoten läuft
und von der Verbindung zu der Anweisungs-Verarbeitungseinheit innerhalb
jedes Knotens läuft.
In dem Beispiel von 12 sind die Puffer 191, 192 und 195–197 von 11 nicht
gezeigt, doch es wird angenommen, dass die Puffer 191 und 192 aller
Knoten gesperrt sind, der Puffer 196 aller Knoten freigegeben
ist, der Puffer 195 nur in dem Knoten 0 gesperrt ist und
der Puffer 197 nur in dem Knoten 0 freigegeben ist.
-
Um
eine synchrone Reaktion für
ein Laufzeitsignal durch alle Konten zu erzeugen, sollten Impulse
des Laufzeitsignals allen Mikroprozessoren innerhalb aller Knoten
zur selben Zeit zugeführt
werden. Offensichtlich wird ein von dem Knoten 0 ausgehender Laufzeit-Impuls
nicht bei allen Knoten zur selben Zeit ankommen. Ein von dem Knoten
0 ausgehender Laufzeit-Impuls wird jedoch sequentiell auf den D-Eingang
des Flip-Flops 200 jedes aufeinanderfolgenden Knotens der
Schleife geschaltet und anschließend durch alle Flip-Flops 201 hindurch
gleich zeitig getaktet, so dass das Signal zu dem Mikroprozessor
jedes Knotens zur selben Zeit gesendet wird.
-
13 zeigt
die Flip-Flop-Zeitabstimmung für 2,
wenn die Anzahl der Knoten N vier beträgt. Alle der Zeitabstimmungssignale
0T, 1T, ..., NT haben die selbe Periode N·T, wobei T eine Einheits-Verzögerungsperiode
ist und in geeigneter Weise größer als
oder gleich groß wie
die maximale mögliche
Signalausbreitungs-Verzögerung
durch den langsamsten Knoten des Netzwerkes ist. Das Signal 0T,
welches das Flip-Flop 202 des Knotens 0 taktet und die
Signale NT, welche die Flip-Flops 201 aller
Knoten takten, sind miteinander in Phase. Jedoch sind alle anderen
Signale 1T–NT
voneinander um T Picosekunden phasenverschoben.
-
Wenn
der Knoten 0 das Laufzeit-Signal bestätigt, macht das Flip-Flop 202 des
Knotens 0 nichts, bis das Signal 0T es zu einer Zeit 0 taktet. Bei
diesem Punkt geht der Laufzeitsignal-Zustand zu dem Q-Ausgang des
Flip-Flops 202 des Knotens 0 über und erscheint an den D-Eingängen der
Flip-Flops 200 und 201 des Knotens 0. T Pikosekunden
später
wird das Flip-Flop 200 des Knotens 1 getaktet, wodurch
das Laufzeitsignal auf die Flip-Flops 200 und 201 des
Knotens 0 übergeleitet
wird. Zu einem Zeitpunkt 2·T
wird das Flip-Flop 200 des Knotens 0 getaktet, wodurch
das Laufzeitsignal auf die Flip-Flops 200 und 201 des
Knotens 3 übergeleitet
wird. Dieser Vorgang geht weiter, bis bei einem Zeitpunkt (N – 1)·T das
Flip-Flop 200 des Knotens N getaktet wird, wodurch das
Laufzeitsignal auf das Flip-Flop 201 des Knotens 0 geleitet
wird. An diesem Punkt erscheint der selbe Laufzeitsignal-Zustand
an den D-Eingängen
zu allen Latchschaltungen 201. Schließlich führen zum Zeitpunkt N·T die
Signale NT eine gleichzeitige Taktung der Flip-Flops 201 aller Knoten durch,
so dass sie das Laufzeitsignal gleichzeitig auf ihre Anweisungs-Verarbeitungsschaltungen übertragen.
-
14 ist
ein Blockdiagramm, welches die Zeitabstimmungsschaltung 203 von 11 veranschaulicht,
welche die Flip-Flop-Taktsignale
zu den Flip-Flops 200–202 erzeugt.
Die Zeitabstimmungsschaltung 203 enthält einen Zeitgeber 211,
der ein die Flip-Flops 202 von 11 taktendes
Zeitabstimmungssignal erzeugt, sowie Zeitgeber 212A und 212B,
welche die Flip-Flops 200 und 201 von 11 taktende
Zeitabstimmungssignale erzeugen. Der Zeitgeber 211 enthält eine
Gruppe aus Registern 213, die Steuerungsdaten enthalten,
die zu ihnen von dem Hauptrechner über die T/O-Steuerungsvorrichtung 44 von 2 vor
dem Beginn eines Prüfvorgangs übertragen
werden. Ein Multiplexer 215 unter der Steuerung der Daten
in den Registern 216 wählt ein
Signal aus den Referenz-Zeitabstimmungssignalen T0–T30 aus,
die durch den Oszillator 42 von 2 erzeugt
werden, und leitet es zu einem Takteingang eines D-Flip-Flops 214 weiter.
Ein Zähler 215 zählt die
Signalimpulse T0 und führt
einen Ausgabe-Signalimpuls dem D-Eingang des Flip-Flops 214 immer
dann zu, wenn der Zählwert
eine Grenze erreicht, die durch Daten in den Registern 212 angezeigt
wird. Die Q-Ausgabe des Flip-Flops 214, die den Zählwert des
Zählers 215 rücksetzt,
liefert das Zeitabstimmungssignal, welches das Flip-Flop 202 von 11 taktet.
Die Daten in den Registern 216 werden so eingestellt, dass
das Zeitabstimmungssignal an dem Q-Ausgang des Flip-Flops 214 die
Periode N·T
hat.
-
Die
Zeitgeber 212A und 212B sind ähnlich wie der Zeitgeber 211 mit
der Ausnahme, dass ihre internen Zähler durch die Ausgabe des
Zeitgebers 211 rückgesetzt
werden und nicht durch ihre eigenen Ausgaben. Da ihre internen Zähler durch
das NT-Signal rückgesetzt
werden, haben ihre Ausgangssignale eben falls eine Periode N·T. Durch
Einstellen der Steuerungsdaten in den Zeitgebern 212A und 212B können jedoch
ihre Ausgangssignale um jeden beliebigen Betrag von dem NT-Signal
phasenverschoben werden.
-
Jeder
Knoten in dem bevorzugten Ausführungsbeispiel
des Prüfgeräts enthält vier
Verbindungen, die zu der in 11 dargestellten
einen Verbindung 30 ähnlich
sind. Jede Verbindung eines Knotens hat eine gesonderte hereinkommende Übertragungsleitung 18 und
eine gesonderte herausgehende Übertragungsleitung 19.
Alle vier Verbindungen können
ihre hereinkommenden und/oder herausgehenden Übertragungsleitungen an den
lokalen Bus 31 koppeln, wenn auch nicht gleichzeitig. Die
vier Verbindungen in jedem Knoten werden mit entsprechenden Verbindungen
ihrer beiden benachbarten Knoten verbunden, um vier unabhängige Schleifen-Netzwerke
zu bilden. Diese vier unabhängigen
Netzwerke ermöglichen
es, das Prüfgerät auf vielfältige Weise
zu konfigurieren, wie dies weiter unten dargestellt ist.
-
Die
Hauptrechner-Schnittstelle 20 von 1 ist in
ihrem Aufbau und ihrer Funktionsweise im Wesentlichen ähnlich wie
die in jedem Knoten enthaltenen Verbindungen 30 von 2.
-
15 ist
ein Blockdiagramm, das eine "Ein-Knoten-Pro-Kontaktstift"-Betriebskonfiguration
für das
Integrierte-Schaltungs-Prüfgerät 10 von 1 darstellt,
bei welcher das Prüfgerät eine Prüfung an
einer einzigen 16-Kontaktstift-DUT 220 durchführt. Die
DUT-Stifte sind mit A0–A15
bezeichnet. Das in 15 gezeigte Prüfgerät hat nur
16 Knoten ND0–ND15,
wobei jedoch ein Prüfgerät eine viel
größere Anzahl
von Knoten haben kann und es mehr Knoten als Kontaktstifte auf der
DUT haben kann. Wie in 15 gezeigt, enthält jeder
Knoten ND0–ND15
vier Verbindungen (A–D)
zusammen mit den Anweisungs-Speicher-
und Verarbeitungsabschnitten (ISP) des Knotens 14, einschließlich allen
in 2 gezeigten mit Ausnahme der Netzwerk-Schnittstelle 30.
Jeder Knoten ND0–ND15
ist mit einem entsprechenden Stift A0–A15 der DUT 220 verbunden,
um Prüfsignale
zu ihr zu übertragen
und/oder Ausgangssignale von ihr zu empfangen. Der Hauptprozessor
(Host) ist nicht gezeigt.
-
Bei
dieser Konfiguration speichert der Anweisungsspeicher in jedem Knoten
alle Anweisungen, die benötigt
werden, um die Prüfsignal-
und Datenerfassungs-Operationen für den DUT-Kontaktstift zu definieren, mit dem
der Knoten verbunden ist. Die einzige Kommunikation zwischen den
Knoten 14 während
einer Prüfung erfolgt über ein
Laufzeitsignal. In dem Beispiel von 15 sind
die Verbindungen A der 16 Knoten auf ähnliche Weise wie in 12 gezeigt
gekoppelt und befördern
das Laufzeitsignal während
des Prüfvorgangs
von Knoten zu Knoten. Die verbleibenden Verbindungen B–D sind
inaktiv, da ihre Dreizustands-Puffer 191–197 (11)
nicht freigegeben sind. Falls mehr als ein Laufzeitsignal während einer
Prüfung
benötigt
würde,
könnten
eine oder mehrere andere Verbindungen B–D durch Einschalten der passenden
Puffer 195–197 (11) aktiviert
werden.
-
16 ist
ein Blockdiagramm, das eine "Mehrere-Knoten-Pro-Kontaktstift"-Betriebskonfiguration
für das
Integrierte-Schaltungs-Prüfgerät von 1 darstellt.
Bei dieser Konfiguration führt
das Prüfgerät eine Prüfung an
einer DUT 230 durch, bei der die Anweisungs-Speicheranforderungen
für einen
oder mehrere Kontaktstifte die Kapazität des lokalen Anweisungsspeichers überschreiten.
In einem solchen Fall verwendet das System verfügbare Anweisungs-Speicherkapazität in anderen
Knoten. Bei dem vereinfachten Beispiel von 16 hat
die DUT 230 nur drei Kontaktstifte A0 bis A2, auf die durch
die jeweiligen Knoten ND6, ND7 und ND8 zugegriffen wird. Die verbleibenden
Knoten sind mit den DUT-Kontaktstiften nicht verbunden. Während eines
Prüfvorgangs
sind die Verbindungen A, C und D aller Knoten für eine serielle Datenübertragung
von Knoten zu Knoten miteinander verbunden. Wie man in
-
11 sieht,
werden die Puffer 191 und 192 der Verbindung A
freigegeben, und die Puffer 195–197 werden gesperrt.
Während
der Prüfung
liest die ISP-Schaltung von Knoten 7 Anweisungen nicht
nur aus ihrem eigenen lokalen Anweisungsspeicher aus, sondern auch
aus den Anweisungsspeichern der Knoten ND0, ND1 und ND3 über das
Netzwerk der Verbindung A. Auf ähnliche
Weise kann der Knoten ND8 Anweisungen von den Knoten ND10, ND12
und ND14 über
das Netzwerk der Verbindung C erhalten, und der Knoten ND6 kann Anweisungen
von den Knoten ND2, ND4 und ND5 über
die Verbindungen D erhalten. Gleichzeitig können die Verbindungen B aller
Knoten miteinander verbunden sein, wie in 12, um
einen Laufzeit-Signalweg zu erzeugen.
-
Einer
der anderen Knoten, die mit einem DUT-Kontaktstift nicht verbunden
sind und keine Anweisungen für
einen anderen Knoten speichern, wie zum Beispiel der Knoten ND15,
kann als "Hauptrechner" wirken. Das heißt, die
in seinem Speicher gespeicherten Anweisungen können ihrem Anweisungsprozessor
mitteilen, wann er ein Laufzeitsignal an die anderen Knoten über die
Verbindungen B übertragen
soll und ihnen mitteilen, eine Prüfung zu beginnen. Der Knoten
ND15 kann auch Unterbrechungsprogramme speichern, um mitzuteilen,
wie er auf Laufzeitsignale von anderen Knoten reagieren soll, die
zum Beispiel Fehler oder das Ende einer Prüfung signalisieren können. Ein
hereinkommendes Laufzeitsignal könnte
dem Knoten ND15 mitteilen, erfasste Prüfdaten auf einem Erfassungsspeicher
in einem der anderen Knoten zum Beispiel über die Verbindung A auszulesen
und die selbe Handlung auf der Grundlage des Wertes der Daten durchführen. Eine
solche Handlung könnte
darin bestehen, eine Adresse zu einem oder mehreren anderen Knoten über die
Verbindung A zu senden, wodurch der lokale Speicherort einer Gruppe
durchzuführender
Anweisungen angezeigt wird. Dies verleiht dem Prüfgerät die Fähigkeit, als Reaktion auf Werte
erfasster Prüfdaten
automatisch den Verlauf einer Prüfung
zu verändern.
-
17 ist
ein Blockdiagramm, welches eine "Mehrfach-DUT"-Betriebskonfiguration für das Integrierte-Schaltungs-Prüfgerät von 1 darstellt.
Bei dieser Konfiguration kann das Prüfgerät unabhängige Prüfungen an mehr als einer DUT
durchführen.
In dem Beispiel von 17 werden zwei 8-Kontaktstift-DUTs 240 und 250 geprüft. Die
Knoten ND0–ND3
und ND12–ND15
prüfen
die Stifte B0–B7
der DUT 240, während
die Knoten ND4–ND7
und ND8–ND11
die Kontaktstifte A0–A7
der DUT 250 prüfen.
Die Verbindungen A aller Knoten sind auf die in 12 dargestellte
Weise miteinander verbunden, um einen Laufzeit-Signalweg für die Prüfung der DUT 250 zu
erzeugen, während
die Verbindung B aller Knoten auf ähnliche Weise miteinander verbunden sind,
um einen Laufzeit-Signalweg für
die Prüfung
der DUT 240 zu erzeugen. Die beiden Prüfungen können völlig unabhängig voneinander ohne jegliche
Laufzeitsignal-Koordination zwischen den beiden Prüfungen durchgeführt werden.
In dieser Konfiguration arbeitet das Prüfgerät als zwei unabhängige Prüfgeräte.
-
PRÜFGERÄT-PROGRAMMIERUNG
-
Um
das Prüfgerät zu programmieren,
stellt ein Benutzer dem Hauptrechner eine Hardware-Beschreibungssprache-(HDL)-Beschreibung
einer Prüfung
zur Verfügung.
Die HDL-Beschreibung ist ein Abfolge von Datenpositionen der Form
(Zeit, Aktionswort, Knoten) beziehungsweise (TIME, ACTIONWORD, NODE). "Knoten" (NODE) zeigt den
speziellen Knoten an, der eine Handlung durchführen soll. Die Größe des Knotens hängt von
der Anzahl der Knoten in dem Prüfgerät ab. In
einem 256- Knoten-Prüfgerät besteht
Knoten (NODE) aus acht Bit. "Zeit" (TIME) zeigt eine
vergangene Zeit seit dem Beginn der Prüfung an, bei der die Handlung durchzuführen ist.
Wenn die Prüfung
in 2N Prüfzyklen
unterteilt ist und jeder Prüfzyklus
in 2M Zeitschlitze aufgelöst ist,
ist Zeit (TIME) ein (M + N)-Bit-Wort.
-
"Aktionswort" (ACTIONWORD) ist
ein Sechs-Bit-Wert, der eine Handlung oder Handlungen anzeigt, die
durch einen Knoten durchgeführt
werden sollen. Die möglichen
Handlungen sind Hoch-Ansteuern, Tief-Ansteuern, Hoch-Vergleichen,
Tief-Vergleichen,
Hoch-Dreizustand und Tief-Dreizustand. Das Aktionswort wird kodiert,
wie in Tabelle I gezeigt. So zeigt zum Beispiel ein Aktionswort-Wert
(100010) an, dass das Prüfgerät den Knoten-Ausgang
hoch ansteuern soll und gleichzeitig seine Dreizustands-Puffersteuerung
hoch einstellen soll, so dass ein Hoch-Logikwert-Prüfsignal
zu dem Kontaktstift der zu prüfenden
Vorrichtung gesendet wird. Andere als die in Tabelle I gezeigten
Werte von Aktionswort sind ungültig.
-
-
Der
Hauptrechner wandelt die HDL-Prüfbeschreibung
in eine Gruppe von Algorithmen um, und zwar in einer für jeden
Knoten, und speichert die Algorithmen in den Knotenspeichern. Jeder
gespeicherte Algorithmus teilt einem Knoten mit, einen Prüfvektor
der Form (TIMEWORD, ACTIONWORD) beziehungsweise (Zeitwort, Aktionswort)
während
jedes Zyklusses der Prüfung
zu erzeugen. Wie zuvor besprochen, zeigt TIMEWORD eine spezielle
Zeit bezüglich
des Beginns des Prüfzyklusses
an, bei dem die Handlung durchzuführen ist. Der 6-Bit-Prüfvektor
ACTIONWORD hat eine identische Bedeutung wie das 6-Bit-HDL-Sprache-Aktionswort
ACTIONWORD. Man beachte jedoch, dass sich das 20-Bit-Zeitwort TIMEWORD
von der (10 + N)-Bit-Zeit TIME der HDL-Abfolge unterscheidet. TIME
zeigt eine Gesamtzeit vom Beginn der Prüfung an, bei der eine Handlung
auftreten soll, während
TIMEWORD nur eine relative Zeit innerhalb einer Prüfperiode
anzeigt, bei der die Handlung auftreten soll. Das 20-Bit-Zeitwort TIMEWORD
ist um N Bits kleiner als der entsprechende TIME-Wert, da es keine
Prüfzyklus-Zahl
enthält.
Bei einer Prüfung,
in der zum Beispiel 220 Prüfzyklen
erfolgen, benötigt
TIME zusätzliche
20 Bits, um den Prüfzyklus
anzuzeigen. Jeder Prüfvektor
wird dem Zeitformatierer 38 von 2 zugeführt. Der
Formatierer 38 reagiert auf einen Prüfvektor, indem er die angezeigte
Handlung zu der angezeigten Zeit in der weiter oben beschriebenen
Art und Weise durchführt.
-
Jeder
durch den Hauptrechner als Reaktion auf die eingegebene HDL-Prüfbeschreibung
erzeugte Algorithmus enthält
eine Abfolge von 24-Bit-Anweisungen, die in aufeinanderfolgenden
Adressen des Knotenspeichers gespeichert werden. Mehrere Arten derartiger
Anweisungen sind in Tabelle II aufgelistet. Jede dieser Anweisungen
werden weiter unten ausführlicher
besprochen.
-
-
18 ist
ein Daten-Flussdiagramm, welches die Art und Weise darstellt, in
der der Hauptrechner 22 von 1 die eingegebene
HDL-Beschreibung einer Prüfung
in die in den Knotenspeichern gespeicherten gesonderten Algorithmen
umwandelt. Ausgehend von Schritt 300 führt der Hauptrechner anfänglich einen
Analyse-Algorithmus (Parsing) an dem eingegebenen HDL-Code-NODE-Wert durch,
um zu bestimmen, welche Prüfgerätknoten
während
der Prüfung
aktiv sein sollen. Bei Schritt 301 selektiert der Hauptrechner
die Periode der für
die Prüfung
zu verwendenden Prüfzyklen,
indem die kürzeste
Periode zwischen aufeinanderfolgenden Handlungen bei jedem Knoten
bestimmt wird. Der Hauptrechner macht dies, indem er die HDL-Beschreibungs-TIME-Werte
für aufeinanderfolgende
Handlungen an den Knoten vergleicht.
-
Bei
Schritt 302 selektiert der Hauptrechner einen ersten der
aktiven Knoten als einen "aktuellen
Knoten", und bei
Schritt 304 filtert und modifiziert er die HDL-Beschreibung,
um eine neue Datensequenz zu erzeugen, die für den aktuellen Knoten spezifisch
ist. Die HDL-Eingabe bei Schritt 302 ist eine Sequenz von
Wörtern
der Form (TIME, ACTIONWORD, NODE). In Schritt 302 wird
die HDL-Sequenz von Wörtern
befreit, bei denen NODE sich nicht auf den in Schritt 302 selektierten
aktuellen Knoten bezieht. Der NODE-Wert wird aus den HDL-Wörtern entfernt. Somit ist die
Ausgabe von Schritt 302 eine Sequenz der Form (TIME, ACTIONWORD)
und befördert
die Zeitabstimmungs- und Handlungsinformation nur für den aktuellen
Knoten.
-
Bei
Schritt 306 ruft der Hauptrechner ein "Umwandlungs"-Unterprogramm
auf, in welchem die Ausgabesequenz von Schritt 304 in einen
Satz Anweisungen umgewandelt wird, die durch den aktuellen Knoten
ausgeführt
werden sollen. Bei Schritt 308 speichert der Hauptrechner
die Anweisungen in dem Speicher des Knotens. Er speichert in dem
Knotenspeicher auch einen Satz Unterprogramme, welche dem Knoten
mitteilen, wie er jede Anweisung ausführen soll. (Diese Unterprogramme
werden weiter unten ausführlicher
beschrieben.) Wenn bei Schritt 310 der Hauptrechner feststellt,
dass der aktuelle Knoten nicht der letzte Knoten auf seiner Liste
der aktiven Knoten ist, kehrt er zu Schritt 302 zurück, und
der Hauptrechner selektiert einen nächsten Knoten aus der Liste
als aktuellen Knoten und wiederholt die Schritte 302 bis 308,
um einen Algorithmus für den
nächsten
Knoten zu erzeugen. Der Prozess schreitet fort, bis der Hauptrechner
einen gesonderten Algorithmus für
jeden aktiven Knoten erzeugt hat und in den Knotenspeichern gespeichert
hat. Bei diesem Punkt endet das Hauptprogramm (Schritt 314).
-
19 ist
ein Daten-Flussdiagramm, welches das Umwandlungs-Unterprogramm darstellt, das bei Schritt 306 von 18 aufgerufen
wird. Dieses Unterprogramm wandelt die HDL-Beschreibung bezüglich eines einzelnen Knotens
in einen Satz algorithmischer Anweisungen für diesen Knoten um. Am Anfang
bei Schritt 320 werden die (TIME, ACTIONWORD)-Datenpositionen
der eingegebenen HDL-Sequenz in NOMAP-Anweisungen der Form (0, TIMEWORD,
ACTION) umgewandelt. Das höchstwertige
Bit der NOMAP-Anweisung ist eine "0",
wodurch die Anweisung als NOMAP-Typ identifiziert wird. Die nächsten 20 Bits
(TIMEWORD) der NOMAP-Anweisung zeigen einen Zeitschlitz innerhalb
eines Prüfzyklus
an, um eine Handlung durchzuführen.
Die verbleibenden drei Bits (ACTION) der NOMAP-Anweisung zeigen
die durchzuführende
Handlung an. Der 3-Bit-ACTIONWORD-Wert ist eine komprimierte Form
des 6-Bit-ACTIONWORD-Codes der HDL-Prüfbeschreibung.
Die Tabelle III zeigt die Umwandlungen zwischen ACTION und ACTIONWORD.
-
-
In
der Eingabesequenz zu Schritt 320 zeigt jedes (TIME, ACTIONWORD)-Wort
eine zu einer speziellen Zeit durchzuführende Handlung an. Da die
HTL-Beschreibung die Prüfung
nicht in Prüfzyklen
organisiert, gibt es keine Übereinstimmung
zwischen (TIME, ACTIONWORD)-Wörtern
und Prüfzyklen.
Der Hauptrechner erzeugt jedoch bei Schritt 320 eine Sequenz
aus NOMAP-Anweisungen, und zwar eine für jeden Prüfzyklus, wobei die Prüfung in
Prüfzyklen
mit einer Periode organisiert werden, die zuvor bei Schritt 301 von 18 bestimmt
wird. Wenn mehrere Prüfzyklen
zwischen Zeiten auftreten, die durch zwei aufeinanderfolgende eingegebene
(TIME, ACTIONWORD)-Wörter dargestellt
sind, erzeugt der Hauptrechner mehrere ähnliche NOMAP-Wörter, und
zwar eines für
jeden Prüfzyklus.
-
Die
Position jeder NOMAP-Anweisung in der erzeugten Sequenz zeigt den
Prüfzyklus
für die
durchzuführende
Handlung an, und ihr TIMEWORD-wert zeigt die Zeit während des
Zyklusses an, bei der die Handlung durchzuführen ist. Der Schritt 320 ist
der einzige Umwandlungsschritt in dem Umwandlungsprogramm, bei dem
die Ausgabesequenz länger
als die Eingabesequenz ist. Die verbleibenden Umwandlungsschritte 322–328 komprimieren
progressiv die Ausgabesequenz von Schritt 320.
-
Nach
dem Umwandeln der HDL-Sequenz in eine Sequenz von 24-Bit-NOMAP-Anweisungen
bei Schritt 320 komprimiert der Hauptrechner die Sequenz
der NOMAP-Anweisungen, wo dies möglich
ist, indem zusammenhängende
Gruppen aus 21 NOMAP-Anweisungen in einzelne 24-Bit-ACTSEL-Anweisungen
umgewandelt werden (Schritt 322). Somit befördert eine
24-Bit-ACTSEL-Anweisung dieselbe Information wie 21-NOMAP-Anweisungen.
Das ACTSEL-Anweisungsformat
verwendet die Tatsache, dass Handlungen oftmals von einem Knoten
zur selben relativen Zeit während
zahlreicher aufeinanderfolgender Zyklen einer Prüfung durchgeführt werden.
Somit kann der Wert von TIMEWORD über viele Prüfzyklen
hinweg unverändert bleiben.
Sobald der Wert von TIMEWORD durch eine NOMAP-Anweisung festgelegt
ist, kann somit dieser TIMEWORD-Wert während aufeinanderfolgender
Zyklen verwendet werden, bis er verändert werden muss. Somit brauchen
Anweisungen, welche der NOMAP-Anweisung folgen, die einen TIMEWORD-Wert
definiert, nicht selbst eine Zeitabstimmung anzeigen, es sei denn,
die Zeitabstimmung ändert
sich gegenüber
vorhergehenden Zyklen. Die ACTSEL-Anweisung selbst befördert keine
Zeitabstimmungs-Information direkt, sondern zeigt inhärent an,
dass 21 aufeinanderfolgende Handlungen jeweils zur selben relativen
Zeit während
21 aufeinanderfolgender Prüfzyklen
durchzuführen
sind, und dass die relative Zeit durch das Zeitwort TIMEWORD angezeigt
wird, das durch die letzte vorhergehende NOMAP-Anweisung erzeugt
wird.
-
Das
ACTSEL-Anweisungsformat nutzt auch die Tatsache, dass bei einem
gegebenen Knoten die Handlungen gewöhnlicherweise auf zwei und
nicht auf vier Wahlmöglichkeiten
begrenzt sind. Wie man in Tabelle III sieht, kann ein Knoten oftmals
auf eine Hin- und Herschaltung beschränkt werden zwischen Hoch-Ansteuerung
und Tief-Ansteuerung (ACTION-Codes 101 und 100) oder zwischen Hoch-Vergleich
und Tief-Vergleich (ACTION-Codes 011 und 010) während aufeinanderfolgender
Zyklen. Man beachte, dass beim Hin- und Herschalten zwischen Hoch-Ansteuerung
und Tief-Ansteuerung oder zwischen Hoch-Vergleich und Tief-Vergleich sich nur
das letzte Bit des ACTION-Codes verändert.
-
Eine
ACTSEL-Anweisung hat die Form (100, A[0], ..., A[20]). Die ersten
drei Bits (101) identifizieren sie als eine ACTSEL-Anweisung, und
die verbleibenden 21 Bits A[0], ..., A[20] zeigen jeweils eine Handlung an,
die während
21 aufeinanderfolgenden Prüfzyklen
durchzuführen
sind. Die verbleibenden 21 Bits A[0], ..., A[20] stellen jeweils
nur das letzte Bit eines ACTION-Codes dar. Wenn ein Knoten die ACTSEL-Anweisung ausführt, nimmt
er an, dass die ersten beiden Bits des ACTION-Codes dieselben sind
wie die, die die letzte vorhergehende NOMAP-Anweisung beförderten.
-
Sobald
ein ACTION-Code und ein TIMEWORD-Code durch eine NOMAP-Anweisung
erstellt sind, kann der Hauptrechner somit Gruppen aus 21 aufeinanderfolgenden
NOMAP-Anweisungen durch ACTSEL-Anweisungen ersetzen unter der Voraussetzung,
dass der TIMEWORD-Code unverändert
bleibt und unter der Voraussetzung, dass nur das letzte Bit des
ACTION-Codes sich von einer NOMAP-Anweisung zur nächsten ändert. Da
die eine 24-Bit-RCTSEL-Anweisung
21 NOMAP-Anweisungen ersetzt, erzeugen die ACTSEL-Anweisungen eine
21/1-Kompression. Die bei Schritt 322 für jeden Knoten erzeugte Ausgabesequenz
besteht daher aus einer Gruppe von ACTSEL-Anweisungen, die durch
eine oder meh rere NOMAP-Anweisungen getrennt sind. Die erste Anweisung
der Sequenz ist stets eine NOMAP-Anweisung, welche das aktuelle
Zeitwort TIMEWORD und den ACTION-Code begründet. Eine NOMAP-Anweisung erscheint
in der Sequenz immer dann, wenn sich TIMEWORD ändert oder immer dann, wenn
sich das eine oder das andere der ersten beiden Bits des ACTION-Codes
verändert.
-
Wenn
die ersten beiden Bits des ACTION-Codes sich häufig ändern, kann die durch den Hauptrechner erzeugte
Sequenz immer noch viele NOMAP-Anweisungen enthalten, die durch
ACTSEL-Anweisungen
nicht ersetzt werden könnten.
Bei Schritt 324 ersetzt der Hauptrechner Gruppen von sieben
aufeinanderfolgenden NOMAP-Anweisungen, die ähnliche TIMEWORD-Werte haben,
durch NOTIME-Anweisungen des Formats (101, ACTION[0], ..., ACTION[6]).
Die ersten drei Bits (101) identifizieren die Anweisung als NOTIME-Typ.
Die verbleibenden 21 Bits bestehen aus 7 ACTION-Codes, und zwar
ACTION[0], ..., ACTION[6], der sieben aufeinanderfolgenden NOMAP-Anweisungen,
welche die NOTIME-Anweisung ersetzt. Für den TIMEWORD-Wert für jeden
Zyklus wird angenommen, dass er der Wert ist, der durch die letzte
vorhergehende NOMAP-Anweisung erstellt wurde. Da jede NOTIME-Anweisung
7 NOMAP-Anweisungen ersetzt, erzeugen die NOTIME-Anweisungen eine
7/1-Kompression.
-
Wenn
die relative Zeitabstimmung (TIMEWORD-Wert) und das eine oder das
andere der beiden Bits ACTION-Codes sich von Zyklus zu Zyklus ändern, enthält die Ausgabe
der Anwendungssequenz von Schritt 324 immer noch zahlreiche
aufeinanderfolgende NOMAP-Anweisungen, welche in die kompakteren
ACTSEL- oder NOTIME-Anweisungen nicht konvertiert werden könnten. Obwohl
TIMEWORD jeden beliebigen von 220 unterschiedlichen
Werten haben kann, kann jedoch die Anzahl unterschiedlicher Werte,
die TIMEWORD in einer gegebenen Prüfung tatsächlich zugeordnet werden, oftmals
auf 16 oder weniger begrenzt sein. Selbst wenn TIMEWORD nicht auf
16 oder auf weniger Werte begrenzt ist, können gewisse Werte von TIMEWORD oftmals
mit einer viel größeren Frequenz
als andere auftreten.
-
Bei
Schritt 326 überprüft der Hauptrechner
somit alle der verbleibenden NOMAP-Anweisungen, um die 16 häufigst auftretenden
TIMEWORD-Werte zu bestimmen. Er ersetzt diese TIMEWORD-Wörter als 20-Bit-"TSEL"-TIMEWORD-Wörter am
Vorderteil der Anweisungssequenz. Der Hauptrechner ersetzt dann,
wo dies möglich
ist, Gruppen aus drei aufeinanderfolgenden NOMAP-Anweisungen durch
TIMESEL-Anweisungen der Form (110, ACTION[0], TSEL[0], ..., ACTION[2],
TSEL[2]). Die ersten drei Bits (110) identifizieren die Anweisung
als den TIMESEL-Typ. Eine Gruppe aus 3-Bit-Werten ACTION[0], ...,
ACTION[2] sind Aktionscodes, die in den drei aufeinanderfolgenden
NOMAP-Anweisungen
enthalten sind, die durch die TIMESEL-Anweisung ersetzt werden.
Eine Gruppe aus drei 4-Bit-Werten TSEL[0], ..., TSEL[2] nehmen bezug
auf diejenigen der 16 gespeicherten TSEL-Wörter, die mit den TIMEWORD-Wörtern übereinstimmen,
die in den ersetzten NOMAP-Anweisungen enthalten sind. Da jede TSEL-Anweisung
3 NOMAP-Anweisungen ersetzt, erzeugen die TIMESEL-Anweisungen eine
3/1-Kompression.
-
Die
Ausgabesequenz von Schritt 326 kann sich wiederholende
Sätze von
Anweisungen enthalten. So tritt z.B. dieselbe ACTSEL-Anweisung viele
Male aufeinanderfolgend auf, wenn ein Knoten seinen Zustand über eine
große
Anzahl von Prüfzyklen
hinweg nicht verändert.
Oder dasselbe Muster von NOTIME-Anweisungen
kann viele Male aufeinanderfolgend wiederholt werden, wenn ein Knoten
dasselbe Muster von Handlungen über
eine große
Anzahl von Prüfzyklen
hinweg wiederholt. Um den durch die Anweisungssequenz-Ausgabe von
Schritt 326 definierten Algorithmus weiter zu komprimieren,
ersetzt der Hauptrechner nun bei Schritt 328 alle bis auf
das erstmalige Er scheinen jedes sich wiederholenden Anweisungsmusters
durch eine Schleifen-Anweisung (LOOP-Anweisung). Eine LOOP-Anweisung
hat die Form (1110, STEP_NUM, LOOP_NUM). Die ersten vier Bits (11 10)
identifizieren die Anweisung als eine LOOP-Anweisung. STEP_NUM ist
zweckmäßigerweise
eine 10-Bit-Größe, welche
die Länge
des Musters anzeigt, das bis zu 1024 Anweisungen lang sein kann.
LOOP_NUM ist zweckmäßigerweise
eine 10-Bit-Größe, welche
die Anzahl aufeinanderfolgender Auftritte des Musters anzeigt, und
zwar bis zu 1024. Somit ersetzt jede LOOP-Anweisung bis zu 220 andere Anweisungen. (STEM_NUM und LOOP_NUM
können
andere Abmessungen haben).
-
Bei
Schritt 330 addiert der Hauptrechner schließlich HALT
und FORWARD-Anweisungen zu der Sequenz. Eine HALT-Anweisung hat
die Form (11111, RUNTIME, x, ..., x), wobei die ersten fünf Bits
die Anweisung als eine HALT-Anweisung identifizieren. Das nächste Bit
(RUNTIME) teilt dem Prozessor mit, ob er ein Laufzeitsignal zu dem
Hauptrechner rückübertragen
soll, um das Ende der Prüfung
zu signalisieren. Die verbleibenden Bits der HALT-Anweisung sind
ungenutzt. Die HALT-Anweisung wird an das Ende der Anweisungssequenz
gestellt, um das Ende der Prüfung
anzuzeigen. Bei Schritt 332 kehrt das Umwandlungs-Unterprogramm
von 19 zu Schritt 308 des Hauptprogramms
von 18 zurück.
-
Eine
FORWARD-Anweisung der Form (11110, NODE, CYCLES, PACKET_SIZE) ermöglicht dem
System die Verwendung von Speichern innerhalb von Leerlauf-Knoten,
um zusätzliche
Anweisungen für
aktive Knoten zu speichern. Dies ist hilfreich, wenn eine Anweisungssequenz
für einen
Knoten länger
ist als das Ausmaß,
das in dem Speicher des Knotens gehalten werden kann. In einem solchen
Fall können
Abschnitte einer Anweisungsgruppe in Speichern von Leerlauf-Knoten
gespeichert werden, denen eine FORWARD-Anweisung vorausgeht. Wenn
ein Knoten auf eine FORWARD-Anweisung trifft, wartet er während einer
durch CYCLES angezeigten Anzahl von Prüfzyklen und leitet dann eine
Gruppe von Anweisungen, die in einer spezifizierten Anzahl ihrer
Knotenspeicher-Orte gespeichert ist (durch PACKET_SIZE angezeigt),
zu dem NODE identifizierten Knoten über den Netzwerkbus weiter.
Diese Anweisungen werden bei sequenziellen Adressen in dem Speicher
des empfangenden Knotens gespeichert, wobei Anweisungen überschrieben
werden, die durch den empfangenden Knoten ausgeführt worden sind. Die Wartezeit,
die durch CYCLES angezeigt wird, reicht aus, um zu gewährleisten,
dass der empfangende Knotenanweisungen im Bereich seines Knotenspeichers,
der die weitergeleiteten Anweisungen empfangen soll, schon ausgeführt hat.
Nachdem der Prozessor des empfangenden Knotens die Anweisungen gelesen
hat, die bei der letzten Adresse des Knotenspeicher-Bereichs gespeichert
wurden, der für
Anweisungen reserviert ist, und dabei auf keine HALT-Anweisung gestoßen ist,
beginnt er mit dem Lesen der neu empfangenen Anweisungen an der
ersten Adresse des Anweisungsbereichs des Knotenspeichers.
-
20 zeigt
ein Hauptprogramm, das durch den Anweisungsprozessor 36 von 2 ausgeführt wird. Der
Hauptrechner speichert das Hauptprogramm und verschiedene Unterprogramme
in den Knotenspeichern bei Schritt 308 von 18,
wenn er die Anweisungsgruppen in den Knotenspeichern speichert.
Der Knotenspeicher beginnt mit der Ausführung seines Hauptprogramms
(20) am Anfang einer Prüfung als Reaktion auf ein START-Signal. Der Anweisungsprozessor
führt einen
Durchlauf durch das Hauptprogramm für jede Anweisung durch. Bei
jedem Durchlauf liest der Anweisungsprozessor eine Anweisung aus
dem Speicher aus, bestimmt den Anweisungstyp und führt das
geeignete Unterprogramm für
diesen Typ von Anweisung aus.
-
In 20 beginnt
das Hauptprogramm bei Schritt 400, wo der Anweisungsprozessor
eine Überprüfung durchführt, um
zu bestimmen, ob er zuvor eine "Schleifen"-Markierung gesetzt
hat. Wenn die Schleifen-Markierung nicht gesetzt ist, befindet sich
der Anweisungs-Prozessor nicht im Prozess der Durchführung einer
Schleifen-Anweisung. In einem solchen Fall liest die Anweisung unmittelbar
eine nächste
Anweisung aus der nächsten
Knoten-Speicheradresse aus (Schritt 402). (Falls die vorherige
Anweisung auf der letzten Adresse des für Anweisungen reservierten
Knoten-Speicherbereichs ausgelesen wurde, liest der Prozessor bei Schritt 402 die
nächste
Anweisung von der nächsten
Adresse des Anweisungsbereichs aus. Diese Anweisung wäre zu dieser
Speicheradresse durch einen anderen Knoten als Reaktion auf eine
FORWARD-Anweisung weitergeleitet worden.)
-
Der
Prozessor überprüft dann
die identifizierenden Bits der Anweisung, um die Eigenart der Anweisung
zu bestimmen (Schritte 404–414) und ruft das
passende Unterprogramm auf (Schritte 416–428),
um die durch die Anweisung angezeigten Prüfvektoren zu erzeugen. Daraufhin
kehrt das Hauptprogramm zu Schritt 400 zurück und wiederholt
den Prozess für
die nächste
Anweisung. Falls eine Anweisung eine HALT-Anweisung ist (das heißt, keine
Anweisung vom Typ ACTSEL, NOTIME, TIMESEL, NOMAP, LOOP oder FORWARD),
ruft das Hauptprogramm bei Schritt 429 ein HALT-Unterprogramm
auf und endet dann bei Schritt 429.
-
Falls
bei Schritt 404 der Knoten feststellt, dass eine Anweisung
ein ACTSEL-Typ ist, wird das ACTSEL-Unterprogramm von 21 aufgerufen.
Dieses Unterprogramm bewirkt, dass der Anweisungs-Prozessor eine
Abfolge von 21 Ausgabe-Prüfvektoren
der Form (TIMEWORD, ACTIONWORD) als Reaktion auf die ACTSEL-Anweisung erzeugt.
Der Datenabschnitt der ACTSEL-Anweisung hat die Form (A[0], ...,
A[20]), wobei jedes Bit A(n) den Zustand des niedrigstwertigen Bits
eines ACTION-Codes darstellt, von dem der ACTIONWORD-Abschnitt eines
der 21 Prüfvektoren
abgeleitet werden soll. Wie man in 21 sieht,
wird ausgehend von Schritt 440 ein Zähler J auf Null gesetzt. J
wird verwendet, um die Anzahl der Ausgabe-Prüfvektoren im Auge zu behalten.
Bei Schritt 442 werden durch den Anweisungs-Prozessor die
Werte von TIMEWORD und ACTION für
den zuletzt erzeugten Prüfvektor
aus dem Speicher wiedergewonnen. (Wie man sehen wird, speichert
der Anweisungs-Prozessor diese Werte in dem Speicher immer dann,
wenn sie sich ändern).
Bei Schritt 444 wandelt der Anweisungs-Prozessor das Bit
A(J) in ein geeignetes ACTIONWORD um, indem das letzte Bit des wiedergewonnenen
ACTION-Codes durch A(J) ersetzt wird und durch Umwandeln des Ergebnisses
in ein ACTIONWORD gemäss
dem in Tabelle III dargestellten Umwandlungsmuster. Als Reaktion
auf einen Neuzyklus-Impuls (NEWCYCLE) von dem Zähler 184 von 10 gibt
der Anweisungs-Prozessor dann einen Prüfvektor aus (Schritt 446),
wobei der aus dem Speicher bei Schritt 442 ausgelesene
TIMEWORD-Wert sowie der bei Schritt 444 gebildete ACTIONWORD-Wert
verwendet werden. Falls J noch nicht 20 ist, wird der Wert J bei Schritt 450 inkrementiert,
und der Prozess wird ausgehend von Schritt 444 wiederholt.
Wenn J bei Schritt 448 den Wert 20 erreicht, hat der Anweisungs-Prozessor 21 Ausgabevektoren
erzeugt, und das Unterprogramm kehrt bei Schritt 452 zu
dem Hauptprogramm (MAIN) zurück.
-
Wie
man bei dem Hauptprogramm von 20 sieht,
wird das NOTIME-Unterprogramm von 22 aufgerufen,
falls bei Schritt 406 der Knoten feststellt, dass die Anweisung
ein NOTIME-Typ ist. Dieses Programm bewirkt, dass der Anweisungs-Prozessor eine Sequenz
von 7 Ausgabe-Prüfvektoren
als Reaktion auf die NOTIME-Anweisung erzeugt. Der Datenabschnitt
der ACTSEL-Anweisung hat die Form (ACTION[0], ... ACTION[6]), wo bei
jeder 3-Bit-ACTION[n]-Code in einen ACTIONWORD-Abschnitt eines der
zu erzeugenden 7 Prüfvektoren
umgewandelt wird. Wie man 22 sieht,
wird bei Schritt 460 ein Zähler J auf Null gesetzt. J behält die Anzahl
der Ausgabe-Prüfvektoren
im Auge. Bei Schritt 462 erfolgt durch den Anweisungs-Prozessor aus
dem Speicher eine Wiedergewinnung des abgespeicherten TIMEWORD für den zuletzt
erzeugten Prüfvektor,
und bei Schritt 464 erfolgt eine Umwandlung von ACTION
(J) in ein ACTIONWORD gemäss
dem in Tabelle III dargestellten Umwandlungsmuster. Als Reaktion
auf einen Neuzyklus-Impuls (NEWCYCLE) aus dem Zähler 184 von 10 gibt
der Anweisungs-Prozessor dann einen Prüfvektor aus (Schritt 466),
wobei der aus dem Speicher bei Schritt 462 ausgelesene
TIMEWORD-Wert und der bei Schritt 464 gebildete ACTIONWORD-Wert verwendet werden.
Falls J noch nicht 6 ist (Schritt 468), wird der Wert von
J bei Schritt 470 inkrementiert, und der Prozess wird ausgehend
von Schritt 464 wiederholt. Wenn J bei Schritt 448 den
Wert 6 erreicht, hat der Anweisungs-Prozessor alle sieben Ausgabe-Prüfvektoren
erzeugt. Bei Schritt 472 speichert dann der Anweisungsprozessor
ACTION(J) als den Speicher-ACTION-Wert ab, und zwar gemäss der zuletzt erzeugten
Ausgabe entsprechend diesem Punkt, und kehrt bei Schritt 474 zu
dem Hauptprogramm (MAIN) zurück.
-
Wenn
bei Schritt 408 des Hauptprogramms von 20 der
Knoten feststellt, dass die Anweisung eine TIMESEL-Anweisung ist,
wird das TIMESEL-Unterprogramm von 23 aufgerufen.
Dieses Unterprogramm bewirkt, dass der Anweisung-Prozessor eine
Abfolge von drei Ausgabe-Prüfvektoren
als Reaktion auf die TIMESEL-Anweisung erzeugt. Der Datenabschnitt
der TIMESEL-Anweisung hat die Form (ACTION[0], TSEL[0], ..., ACTION[2],
TSEL[2]). Wie man in 23 sieht, wird beginnend bei
Schritt 480 ein Zähler
J auf Null gesetzt. J behält
die Anzahl der Ausgabe-Prüfvektoren
im Auge. Bei Schritt 482 er folgt durch den Anweisungs-Prozessor
eine Wiedergewinnung des abgespeicherten ACTIONWORD aus dem Speicher
für den
zuletzt erzeugten Prüfvektor,
und bei Schritt 484 wandelt er ACTION(J) in ein ACTIONWORD
gemäss
dem in Tabelle III dargestellten Umwandlungsmuster um. Bei Schritt 486 gewinnt
er aus einem Speicherort, auf den durch TSEL(J) Bezug genommen wird,
ein in dem nächsten
Ausgabevektor zu verwendendes TIMEWORD. Als Reaktion auf einen NEWCYCLE-Impuls
von dem Zähler 184 von 10 gibt
der Anweisungs-Prozessor einen Prüfvektor aus (Schritt 488),
wobei der aus dem Speicher bei Schritt 486 ausgelesene
TIMEWORD-Wert und der bei Schritt 484 gebildete ACTIONWORD-Wert
verwendet werden. Falls J bei Schritt 490 noch nicht 2
ist, wird der Wert von J bei Schritt 491 inkrementiert,
und der Prozess wird ausgehend von Schritt 484 wiederholt.
Wenn J bei Schritt 492 den Wert 2 erreicht, hat der Anweisungs-Prozessor
alle drei Ausgabe-Prüfvektoren
erzeugt. Der Anweisungs-Prozessor speichert dann das TIMEWORD des
zuletzt erzeugten Vektors ab (Schritt 492) und kehrt zu
dem Hauptprogramm (MAIN) zurück
(Schritt 494).
-
Wenn
bei Schritt 410 der Knoten feststellt, dass eine Anweisung
eine NOMAP-Anweisung ist, wird das TIMESEL-Unterprogramm von 24 aufgerufen.
Dieses Unterprogramm bewirkt, dass der Anweisungs-Prozessor einen
Ausgabe-Prüfvektor
als Reaktion auf die NOMAP-Anweisung erzeugt. Der Datenabschnitt
der NOMAP-Anweisung hat die Form (TIMEWORD, ACTION). Wie man in 24 sieht,
führt der
Anweisungs-Prozessor bei Schritt 500 eine Umwandlung von
ACTION in ein ACTIONWORD gemäss
dem in Tabelle III dargestellten Umwandlungsmuster durch. Bei Schritt 502 speichert
der Anweisungs-Prozessor die Werte von TIMEWORD und von ACTION in
dem Speicher, und bei Schritt 504 erfolgt als Reaktion
auf einen NEWCYCLE-Impuls von dem Zähler 184 von 10 durch
den Anweisungs-Prozessor eine Ausgabe eines Prüfvektors (Schritt 488),
wobei der in der NOMAP- Anweisung
enthaltene TIMEWORD-Wert und der bei Schritt 500 gebildete
ACTIONWORD-Wert verwendet werden. Der Anweisungs-Prozessor kehrt dann zu dem Hauptprogramm
(MAIN) zurück
(Schritt 506).
-
Wenn
bei Schritt 412 der Knoten feststellt, dass eine Anweisung
eine LOOP-Anweisung ist, wird das FLAG-Unterprogramm von 25 aufgerufen.
Wie man in 25 sieht, wird ausgehend von
Schritt 520 durch den Anweisungs-Prozessor ein LOOP_FLAG-Bit gesetzt, um anzuzeigen,
dass er momentan eine Schleifenanweisung verarbeitet. Bei den Schritten 522 und 524 speichert
er im Speicher die Werte von STEP_NUM und von LOOP_NUM ab, die in
der Schleifen-Anweisung enthalten sind, bei Schritt 526 initialisiert
er Werte der Variablen LOOP_CNT und STEP_CNT, die er im Speicher
behält,
und bei Schritt 528 kehrt er zu dem Hauptprogramm zurück. STEP_NUM
zeigt die Abmessung der zu wiederholenden Abfolge von Anweisungen
an, und LOOP_NUM zeigt die Anzahl der Wiederholungen dieser Abfolge
von Anweisungen an. Die Variable LOOP_CNT behält die Anzahl der Wiederholungen
der Abfolge im Auge, die durchgeführt worden sind, und STEP_CNT
behält
die Position innerhalb der Anweisungs-Abfolge der zuletzt ausgeführten Anweisung
im Auge.
-
Bei
dem Hauptprogramm (MAIN) von 20 sieht
man, dass, wenn der Anweisungs-Prozess bei Schritt 400 feststellt,
dass die Schleifen-Markierung gesetzt worden ist, es bei Schritt 426 ein
LOOP-Unterprogramm aufruft. Das Schleifen-Unterprogramm teilt dem Anweisungs-Prozessor
mit, wo er die nächste
Anweisung erhalten soll. Wie in 26 dargestellt,
beginnt das Schleifen-Unterprogramm bei Schritt 530, wo
der aktuelle Wert von STEP_CNT mit STEP_NUM verglichen wird, um
festzustellen, ob die zuletzt ausgeführte Anweisung die letzte Anweisung
der wiederholten Anweisungs-Abfolge ist. Wenn dies nicht der Fall
ist, inkrementiert der Anweisungs- Prozessor den Wert STEP_CNT (Schritt 532)
und kehrt (bei Schritt 533) zu Schritt 402 des
Hauptprogramms (20) zurück, wo er die nächste Anweisung
aus dem Speicher erhält.
-
Der
Anweisung-Prozessor behält
eine Aufzeichnung (einen Anweisung-Zählwert) des Speicherortes der
zuletzt erhaltenen Anweisung (bei Schritt 402, Schritt 20)
und erhält
die nächste
Anweisung von dem nächsten
Speicherort. Wenn bei Schritt 534 von 26 LOOP_CNT
zu LOOP_NUM nicht gleich ist, inkrementiert der Prozessor bei Schritt 536 LOOP_CNT,
um anzuzeigen, dass eine neue Wiederholung der Anweisungs-Abfolge
beginnt, und bei Schritt 538 setzt er STEP_CNT auf Null
zurück,
um anzuzeigen, dass der Prozessor dabei ist, auch die erste Anweisung
der Sequenz zu erhalten. Bei Schritt 540 stellt der Anweisungs-Prozessor
den Anweisungs-Zählwert
ein, der bei Schritt 402 (20) des
Hauptprogramms beibehalten wurde, um den Speicherort der nächsten Anweisung
zu bestimmen. Bei Schritt 540 (26) wird
der Zählwert
gesetzt, so dass die erste Anweisung der wiederholten Abfolge gewonnen
wird.
-
Wie
man in 26 sieht, fährt der Prozessor mit dem Durchschreiten
der Gruppe wiederholter Anweisungen fort, bis bei Schritt 530 STEP_CNT
zu STEP_NUM gleich ist. Bei diesem Punkt befindet sich der Anweisungs-Prozessor
ungefähr
bei der Durchführung
der letzten Anweisung der als Reaktion auf die LOOP-Anweisung zu
wiederholenden Abfolge. Er prüft
dann bei Schritt 534, um festzustellen, ob er die letzte
Wiederholung der Abfolge verarbeitet (das heißt, wenn LOOP_CNT zu LOOP_NUM
gleich ist). In einem solchen Fall setzt der Anweisungs-Prozessor die Markierung
LOOP_FLAG zurück
(Schritt 542), um anzuzeigen, dass keine Schleifen-Anweisung
ausgeführt
wird, und kehrt zu dem Hauptprogramm zurück (Schritt 402, 20),
wo die letzte Anweisung aus dem Speicher wiedergewonnen wird.
-
Wenn
bei dem Hauptprogramm von 20 bei
Schritt 414 eine FORWARD-Anweisung angetroffen wird, wird
bei Schritt 428 ein FORWARD-Unterprogramm aufgerufen. Das
FORWARD-Unterprogramm ist in 27 beschrieben.
Der Datenabschnitt der FORWARD-Anweisung
hat die Form (NODE, CYCLES, PACKET_SIZE), wobei NODE den Prüfgerät-Knoten
zum Empfangen von Anweisungen anzeigt, CYCLES die Anzahl der Prüfzyklen
anzeigt, die vor dem Senden der Anweisung abgewartet werden müssen, und PACKET_SIZE
die Anzahl der zu den empfangenen Knoten zu sendenden Anweisungen
ist. In Schritt 550 wird der Anweisungs-Zählwert
so eingestellt, dass er mit ADDR übereinstimmt, und in Schritt 552 wartet
der Anweisungs-Prozessor während
der angezeigten Anzahl von Zyklen. In Schritt 552 sendet
dann der Prozessor die Anweisungen über den Netzwerkbus zu dem
empfangenden Knoten.
-
Wenn
bei dem Hauptprogramm von 20 bei
Schritt 414 eine HALT-Anweisung angetroffen wird, wird
bei Schritt 429 ein HALT-Unterprogramm aufgerufen. Das
HALT-Unterprogramm ist in 28 beschrieben.
Der Datenabschnitt der HALT-Anweisung hat die Form (RUNTIME, x ...
x). RUNTIME ist ein Bit, welches anzeigt, ob der Knoten ein RUNTIME-Signal
zu dem Hauptrechner senden soll, durch das das Ende der Prüfung angezeigt
wird. Wenn dies der Fall ist, erfolgt dann bei Schritt 560 eine
Wegleitung des Programmflusses zu Schritt 562, wo das RUNTIME-Signal
zu dem Hauptprozessor gesendet wird. Wenn kein RUNTIME-Signal gesendet
werden soll oder nachfolgend auf Schritt 562, kehrt das
HALT-Unterprogramm zu dem Hauptprogramm zurück (Schritt 564).
Das Hauptprogramm endet dann (Schritt 430, 20).
-
Der
Fachmann erkennt, dass die mehrfachen Verbindungen 30 es
dem Prüfgerät ermöglichen,
in einer Vielzahl nützlicher
Konfigurationen betrieben zu werden, und zwar einschließlich derjenigen,
die in 15–17 dargestellt
sind, sowie in Form zahlreicher Kombinationen und Permutationen
davon.
-
Es
wurde somit ein Integrierte-Schaltungs-Prüfgerät beschrieben und dargestellt
zum Übertragen
von Prüfsignalen
an ausgewählte
Anschlüsse
einer zu überprüfenden Vorrichtung
(DUT) und zum Erfassen von Daten, die durch die DUT an anderen ihrer
Anschlüsse
während
einer Aufeinanderfolge von Prüfzyklen
erzeugt werden. Das Prüfgerät enthält mehrere
Verarbeitungsknoten, wobei ein Knoten jedem Anschluss der DUT zugeordnet
ist und jeder Knoten einen Speicher zum Speichern algorithmischer
Anweisungen zum Erzeugen einer Abfolge von Befehlen enthält. Jeder
Befehl enthält
Aktionsdaten, die eine spezielle Handlung anzeigen, die während eines
nächsten
Prüfzyklusses
durchzuführen
ist, sowie Zeitabstimmungsdaten, die eine Zeit während des nächsten Prüfzyklusses anzeigen, bei der
die Handlung durchgeführt
werden soll. Jeder Knoten enthält
auch eine Schaltung zum Verarbeiten der algorithmischen Anweisungen
zum Erzeugen der Befehle sowie Schaltungen, die auf die Befehle
reagieren, um das Prüfsignal
und die Datenerfassung zu steuern, wie dies durch die Befehle angezeigt
wird. Das Integrierte-Schaltungs-Prüfgerät kann eine lange Integrierte-Schaltungs-Prüfung durchführen, ohne
dass es großer
Knotenspeicher bedarf und ohne die Prüfung periodisch anhalten zu
müssen,
um die Knotenspeicher erneut zu laden. Das Prüfgerät kann somit eine hochflexible und
genaue Zeitabstimmung der Prüfereignisse
während
jedes Zyklusses einer Prüfung
zu ermöglichen.
Da es sich um eine Zusammenschaltung von Knoten zu Knoten handelt,
kann die Signal-Übertragungsgeschwindigkeit
maximiert werden, können
die Übertragungsleitungen
optimiert werden und ist eine Knoten-Erweiterung nicht durch die
Gesetze der Physik begrenzt.
-
Wenn
in der obigen Beschreibung auch bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung beschrieben wurden, kann ein Fachmann doch zahlreiche
Abwandlungen an dem bevorzugten Ausführungsbeispiel durchführen, ohne
dass er die Erfindung im weiteren Sinne verlässt. Die beigefügten Ansprüche sollen daher
alle derartigen Abwandlungen abdecken, die innerhalb des wahren
Schutzbereichs der Erfindung liegen.