-
Diese Erfindung bezieht sich allgemein
auf elektronische Schaltungen. Insbesondere bezieht sich diese Erfindung
auf integrierte elektronische Schaltungen und ein Testen von I/O-Treiber/Empfängern.
-
Chips mit sehr hohem Integrationsgrad
(VLSI-Chips, VLSI = very large scale integration) können Millionen
von Transistoren und elektrischen Verbindungen enthalten. Da VLSI-Chips so komplex
sein können,
kann umfangreiches Testen erforderlich sein, um zu verifizieren,
daß ein
bestimmter Chip voll funktionstüchtig
ist. Aufgrund der geringen Größe der Merkmale
auf dem Chip kann eine Beobachtung von Signalen, die sich innerhalb
moderner Chipentwürfe befinden,
extrem schwierig sein. Manche Merkmale auf modernen Chips können lediglich
ein Millionstel eines Meters betragen. Diese kleinen Merkmale können es
sehr schwierig machen, einen tatsächlichen elektrischen Knoten
auf einem VLSI-Chip zu „sondieren". Verfahren, die
verwendet werden, um interne Knoten auf einem VLSI-Chip zu sondieren,
umfassen ein Mikrosondieren und ein Elektronenstrahlsondieren. Beide
Verfahren sind zeitaufwendig und können erfordern, daß verschiedene
Schichten des Chips physisch beseitigt werden.
-
Ein weiteres Verfahren, das verwendet
wird, um den Wert oder Zustand eines elektrischen Knotens zu beobachten,
besteht darin, zusammen mit den normalen Schaltungen eine „Abtastketten"-Schaltungsanordnung
aufzunehmen. Eine Abtastkette kann viele Speicherelemente umfassen,
die elektrische Werte vieler Knoten der normalen Schaltungsanordnung
speichern können.
Diese gespeicherten Werte können
dann von einem Abtastkettenspeicherelement zu einem anderen und
dann zu einer oder mehreren Ausgangsanschlußflächen auf einem Chip „getaktet" werden. Die an den
Ausgangsanschlußflächen präsentierten
Werte können
dann zu einem externen Tester getrieben werden, der dann die gespeicherten
elektrischen Werte auswerten kann. Um die in der Abtastkette aufgenommenen elektrischen
Werte abzutasten, muß der
normale Betrieb des Chips angehalten werden. Ein Starten und Anhalten
des Normalbetriebs des Chips und ein Abtasten des Zustands vieler
elektrischer Knoten kann viel Zeit erfordern.
-
Ein weiteres Verfahren, das verwendet
werden kann, um die Funktionalität
eines VLSI-Chips zu testen und von Fehlern zu befreien, besteht
darin, „Breitseitenvektoren" zu verwenden. Ein
Testprogramm wertet die Funktion des VLSI-Chips aus, und ausgehend
von dieser Auswertung erzeugt das Programm einen Satz von Signalen
oder „Vektoren", der an einen VLSI-Chip
angelegt werden kann. Für
jeden Satz von Signalen, den das Testprogramm erzeugt und der an
den VLSI-Chip angelegt werden soll, gibt es einen anderen Satz von
Signalen oder Vektoren, der an den Ausgängen eines VLSI-Chip auftreten sollte.
Ein externer Tester mißt
den Satz von Ausgängen,
der an einem VLSI-Chip auftreten sollte, und ermittelt, ob diese
Ausgänge
mit den durch das Testprogramm vorhergesagten Werten übereinstimmen. Durch
ein Erzeugen vieler „Breitseiten"-Vektoren, kann ein
Teil der Funktionalität
des VLSI-Chips ermittelt werden. Dieses Verfahren kann viel Computerzeit erfordern,
um die Vektoren zu erzeugen, und kann viel Zeit erfordern, um die
Vektoren überhaupt
an den Chip anzulegen.
-
Sowohl ein Abtastvektortesten als
auch ein Breitseitenvektortesten erfordern, daß eine externe Testausrüstung einen
elektrischen Testeingang in einen Chip liefert und einen elektrischen
Ausgang aus einem Chip beobachtet. Die Kosten von Ausrüstungsgegenständen, die
zum Testen von Chips verwendet werden, und die Kosten von Einrichtungen zum
Unterbringen dieser Geräte
sind extrem hoch. Falls der Umfang eines zum Testen eines VLSI-Chips benötigten externen
Te stens verringert werden kann, können die Kosten einer Herstellung
von VLSI-Chips verringert werden.
-
In der Technik besteht ein Bedarf,
in der Lage zu sein, eine Schaltungsanordnung auf einem VLSI-Chip
mit einer minimalen Anzahl von externen Signalen zu testen. Ein
Ausführungsbeispiel
dieser Erfindung ermöglicht,
daß die
Schaltungsanordnung von Eingangs-/Ausgangs-Treiber-Empfängern (I/O-Treiber/Empfängern) mit
sehr wenigen externen Signalen getestet wird. Dieses Ausführungsbeispiel umfaßt einen
spezifischen Bitmustergenerator in dem Treiberabschnitt des I/O-Treiber/Empfängers, der
ein Bitmuster erzeugt, das durch eine Schaltungsanordnung, die in
dem Empfängerabschnitt
eines anderen I/O-Treiber/Empfängers
plaziert ist, erkannt werden kann, wenn die I/O-Treiber/Empfänger ordnungsgemäß funktionieren.
Eine ausführliche
Beschreibung eines Ausführungsbeispiels
dieser Erfindung folgt später.
-
Es ist die Aufgabe der vorliegenden
Erfindung, ein Verfahren und eine Schaltung zu schaffen, die die
Testfähigkeit
von I/O-Treiber/Empfängern
verbessern.
-
Diese Aufgabe wird durch ein Verfahren
gemäß Anspruch
1 sowie eine Schaltung gemäß Anspruch
6 gelöst.
-
Ein Ausführungsbeispiel dieser Erfindung schafft
eine Schaltung und ein Verfahren zum Verbessern der Testfähigkeit
von I/O-Treiber/Empfängern.
Zuerst werden zwei separate I/O-Treiber/Empfänger-Anschlußflächen elektrisch
verbunden. Ein Bitmustergenerator in einem der I/O-Treiber/Empfänger treibt
ein Bitmuster durch einen Treiber zu den verbundenen Anschlußflächen. Das
Bitmuster wird dann durch den Empfänger eines zweiten I/O-Treiber/Empfängers zu
einem ersten getakteten Register getrieben. Ein identischer Bitmustergenerator
in dem zweiten I/O-Treiber/Empfänger
treibt dann ein identisches Bitmuster in ein zweites getaktetes
Register. Ein Komparator vergleicht die Ausgänge dieser beiden Register.
Falls die beiden Bitmuster nicht über einstimmen, signalisiert
der Komparator, daß bei
einem oder beiden der I/O-Treiber/Empfänger ein funktionelles Problem
vorliegt.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
schematische Zeichnung einer I/O-Treiber/Empfänger-Schaltung
des Standes der Technik;
-
2 eine
schematische Zeichnung einer I/O-Treiber/Empfänger-Schaltung
mit einer zusätzlichen
Schaltungsanordnung, die verwendet wird, um eine Funktionalität von I/O-Treiber/Empfängern zu testen;
und
-
3 eine
schematische Zeichnung, die veranschaulicht, wie zwei separate I/O-Treiber/Empfänger verwendet
werden können,
um eine Funktionalität
von I/O-Treiber/Empfängern zu
testen.
-
1 ist
eine schematische Zeichnung eines typischen I/O-Treiber/Empfängers. Daten von einem Chip
können
zu dem Eingang 114 des Treibers 100 getrieben
werden. Falls das Dreizustandsfreigabesignal 104 nicht
freigegeben wird, werden die an dem Eingang 114 des Treibers 100 präsentierten
Daten durch den Empfänger 100 zu
der I/O-Anschlußfläche 106 und
dann von dem Chip herunter zu einem anderen Bauelement getrieben.
-
Damit Daten in einen Chip von der
I/O-Anschlußfläche 106 getrieben
werden, muß das
Dreizustandsfreigabesignal 104 freigegeben sein. Ein Freigeben
des Dreizustandsfreigabesignals 104 hält den Treiber 100 von
einem Treiben ab und präsentiert jeglichem
Quellentreiberknoten 108 eine hohe Impedanz. Wenn ein Signal
auf die I/O-Anschlußfläche 106 getrieben
wird, wird das Signal an dem Eingang 110 des Empfängers 102 präsentiert.
Der Empfänger 102 treibt
dann das Signal von seinem Eingang 110 zu seinem Ausgang 112,
zu einem Punkt, der sich in einem Chip befindet. Die I/O-Anschlußfläche 106 kann
je nach Situation als Eingang oder als Ausgang verwendet werden.
Statt zwei Anschlußflächen zu verwenden,
um einen Eingang und einen Ausgang zu erzeugen, kann eine Anschlußfläche als
Eingang und Ausgang verwendet werden.
-
2 ist
eine schematische Zeichnung eines Ausführungsbeispiels eines I/O-Treiber/Empfängers mit
einer zusätzlichen
Schaltungsanordnung, um ein Testen von I/O-Treiber/Empfängern zu ermöglichen.
Ein Bitmustergenerator 216 erzeugt ein Bitmuster, das einen
Eingang 232 eines MUX 224 und den Eingang 232 eines
getakteten Registers 228 treibt. Wenn der Treiberabschnitt 242 verwendet wird,
um ein Bitmuster zu einem anderen I/O-Treiber/Empfänger zu
treiben, ermöglicht
das Steuersignal 226 des MUX 224 dem Bitmuster
von dem Bitmustergenerator 216, in den Eingang 230 des
Treibers 200 zu gelangen. Wenn der Treiberabschnitt 242 verwendet
wird, um ein Bitmuster zu einem anderen I/O-Treiber/Empfänger zu treiben, wird das Dreizustandsfreigabesignal 204 gesperrt,
und der Treiber 200 treibt das Bitmuster zu der I/O-Anschlußfläche 206
und dann zu einem anderen I/O-Treiber/Empfänger.
-
Im normalen Betrieb wird es Daten
von einer in einem Chip 214 befindlichen Schaltungsanordnung
ermöglicht,
den MUX 224 zu durchlaufen, wenn es das Steuersignal 226 ermöglicht.
Im normalen Betrieb durchlaufen Daten den MUX 224 und werden anschließend durch
den Treiber 200 getrieben, wenn das Dreizustandsfreigabesignal 204 gesperrt
ist. Der Treiber 200 treibt die Daten dann zu der I/O-Anschlußfläche 206 und
von der I/O-Anschlußfläche 206 zu
einer anderen Schaltungsanordnung, die sich nicht auf dem Chip befindet.
-
Der Empfängerabschnitt 244 kann
verwendet werden, um ein von einem anderen I/O-Treiber/Empfänger getriebenes
Bitmuster zu vergleichen. Ein Bitmuster von einem anderen I/O-Treiber/Empfänger kann
zu der I/O-Anschlußfläche 206 und
von der I/O-Anschlußfläche 206 in
den Eingang 210 des Empfängers 202 getrieben
werden. Der Ausgang 212 des Empfängers 202 treibt Daten
in die interne Schaltungsanordnung eines Chips und in den Eingang
eines getakteten Registers, REG2 220. Zusätzlich dazu,
daß der
Bitmustergenerator 216 ein Bitmuster in den MUX 224 treibt,
treibt er auch Daten in den Eingang des/eines getakteten Registers REG1 218.
Da der Bitmustergenerator 216 und die Bitmustergeneratoren
in allen anderen I/O-Treiber/Empfängern identisch sind, kann
das Bitmuster, das durch das getaktete Register REG2 220 und
das getaktete Register REGT 218 getrieben wird, verglichen
werden.
-
Die durch die getakteten Register
REGT 218 und REG2 220 getriebenen Bitmuster können durch ein
Anlegen eines Taktsignals 228 an jedes der Register REGT 218 und
REG2 220 synchronisiert werden. Nach dem Synchronisieren
der beiden Bitmuster können
die beiden Bitmuster durch einen Komparator verglichen werden. Bei
diesem Beispiel ist der Komparator ein XOR-Logikgatter 222.
Ein Bitmuster wird an einen Eingang 234 des XOR-Logikgatters 222 gesendet,
und das andere Bitmuster wird an einen Eingang 236 des
XOR-Logikgatters 222 gesendet.
Falls die beiden Bitmuster identisch sind, gibt der Ausgang 238 lauter „Nullen" aus. Wenn lauter
Nullen aus dem XOR-Logikgatter 222 ausgegeben werden, weist
dies darauf hin, daß der
Treiberabschnitt 242 eines I/O-Treiber/Empfängers und
der Empfängerabschnitt 244 eines
anderen I/O-Treiber/Empfängers funktionstüchtig sein
können.
Falls der Ausgang 238 des XOR-Logikgatters 222 jedoch „Einsen" ausgibt, kann dies
darauf hinweisen, daß entweder
der Treiberabschnitt 242 eines I/O-Treiber/Empfängers oder der
Empfängerabschnitt 244 eines
anderen I/O-Treiber/Empfängers nicht
ordnungsgemäß funktioniert. Falls
aus dem XOR-Logikgatter 222 Einsen ausgegeben werden, kann dies
ferner darauf hinweisen, daß sowohl
der Empfängerabschnitt 244 eines I/O-Treiber/Empfängers als
auch der Treiberabschnitt 242 eines anderen I/O-Treiber/Empfängers nicht
ordnungsgemäß funktionieren.
-
3 veranschaulicht,
wie zwei I/O-Treiber/Empfänger 300 und r verwendet
werden können. um
die Funktionalität
des Treiberabschnitts des I/O-Treiber/Empfängers 300 und den
Empfängerabschnitt
des I/O-Treiber/Empfängers 302 zu
testen. Zunächst
sind eine I/O-Anschlußfläche1 320 und eine
I/O-Anschlußfläche2 322 elektrisch
verbunden 346. Das Steuersignal 312 wird eingestellt,
um es einem Bitmuster von einem Bitmustergenerator 304 zu ermöglichen,
durch einen MUX 310 in einen Eingang 314 eines
Treibers 316 zu gelangen. Das Dreizustandsfreigabesignal 318 wird
gesperrt, und das Bitmuster an dem Eingang 314 des Treibers 316 wird
zu der I/O-Anschlußfläche1 320 und
zu der I/O-Anschlußfläche2 322 getrieben.
-
Das durch den Bitmustergenerator 304 in dem
I/O-Treiber/Empfänger 300 erzeugte
Bitmuster wird nun an dem Eingang des Empfängers 324 des I/O-Treiber/Empfängers 302 präsentiert.
Der Empfänger 324 treibt
den Eingang 328 des REG2 332 und der in einem
Chip befindlichen Schaltungsanordnung. Das Bitmuster von dem Bitmustergenerator
in dem I/O-Treiber/Empfänger 302 wird
an dem Eingang 334 des REG2 336 präsentiert.
Die Ausgänge 338 und 340 des
REG1 336 bzw. des REG2 332 werden durch ein Taktsignal 330 synchronisiert.
Der Ausgang 338 des REG1 336 und der Ausgang 340 des REG2 332 werden
in ein XOR-Gatter 342 mit zwei Eingängen eingegeben.
-
Falls die beiden Bitmuster, die in
das XOR-Gatter 342 eingegeben werden, übereinstimmen, sollte der Ausgang 344 lauter „Nullen" sein. Dies kann
darauf hinweisen, daß der
Treiberabschnitt des I/O-Treiber/Empfängers 300 und der Empfängerabschnitt
des I/O-Treiber/Empfängers 302 funktionstüchtig sind.
Falls jedoch die beiden in das XOR-Gatter
342 eingegebenen
Bitmuster nicht übereinstimmen,
wird zumindest eine „Eins" ausgegeben. Dies
kann darauf hinweisen, daß entweder der
Treiberabschnitt des I/O-Treiber/Empfängers 300 oder
der Empfängerabschnitt
des I/O-Treiber/Empfängers 302 nicht
funktionstüchtig
ist. Es kann ferner darauf hinweisen, daß sowohl der Treiberabschnitt des
I/O-Treiber/Empfängers 300 als
auch der Empfängerabschnitt
des I/O-Treiber/Empfängers 302 nicht
funktionstüchtig
sind.