-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft
ein System und ein Verfahren zum Testen von Bussen auf einer gedruckten
Schaltungsplatte (PC-Platte) unter Verwendung von JTAG.
-
Beschreibung des Stands
der Technik
-
Ein wohlbekanntes Verfahren zum Testen von
Schaltungsanordnungen, beispielsweise auf einer PC-Karte, ist in
der von der internationalen Joint Test Action Group (JTAG) ausgehenden
Boundary-Scan-Norm IEEE 1149.1 dargelegt, worauf hiermit verwiesen
sei. Eine Implementation dieser Norm betrifft das Entwickeln von
Komponenten (beispielsweise integrierten Schaltungen) für das serielle
Boundary-Scan-Testen durch Bereitstellen von in einer kettenartig
hintereinander angeordneten Schieberegisterelementen zur Bildung
eines Wegs um die Peripherie der integrierten Schaltungskomponente.
-
Das allgemeine Konzept für das Boundary-Scan-Testen
unter Verwendung von JTAG besteht darin, serielle Daten durch eine
Anzahl integrierter Schaltungskomponenten (IC-Komponenten) zu schieben,
um die Schaltungsanordnung auf einer PC-Karte zu stimulieren, und
IC-Eingangssignale von der Schaltungsanordnung der PC-Karte abzutasten.
Weil die Verbindungstopologie und die Logikfunktionen der PC-Karte
bekannt sind (also zwischen einem JTAG-Ausgangssignal und einem
JTAG-Eingang anderswo auf der PC-Karte),
kann eine Haupt-Testschaltung die zurückkehrenden Daten mit einem
erwarteten Ergebnis (also einem Ergebnis, das von den Funktionen
der bekannten Schaltungsanordnung und der PC-Kartenverbindung abhängt) vergleichen.
Mit anderen Worten erzeugen die der getesteten Schaltung zugeführten seriellen
Dateneingaben bekannte Ausgaben, falls die PC-Kartenverbindung richtig
ist und jede Schaltungsanordnung zwischen der JTAG-Quelle und Abtastpunkten
richtig funktioniert. Beim seriellen Testen werden auch Eingangs-
und Ausgangsanschlüsse
und Puffer einer JTAG aufweisenden integrierten Schaltung getestet, weil
diese zwischen dem JTAG-Ausgang und den JTAG-Eingangs-Abtastpunkten
liegen.
-
Falls der zur Haupt-Testschaltung
zurückgegebene
Datenstrom nicht wie erwartet ist, ist der Verbindungsweg auf der
PC-Karte offen oder mit einem anderen Signal kurzgeschlossen, oder
es existiert eine Fehlfunktion in irgendeiner Logik, die entlang dem
Weg vom JTAG-Ausgang zum analysierten JTAG-Eingang existiert. Eine
sorgfältige
Analyse der Abweichungen im Datenstrom unter Softwaresteuerung kann
jegliche Fehlfunktionen innerhalb der PC-Karte isolieren.
-
Es ist in bestimmten Fällen wünschenswert, einen
Zweig oder einen Abschnitt eines Busses auf einer PC-Karte zu testen.
Wenn beispielsweise der Entwurf eines Systems getestet wird, ist
es häufig wichtig,
auf Kurzschlüsse
oder offene Schaltkreise auf der Leiterplatte zu testen. Dies liegt
daran, daß sich
bei eng beabstandeten Anschlüssen
Lötbrücken zwischen
benachbarten Anschlüssen
befinden können.
Alternativ kann eine fehlende oder ungeeignet gebildete Lötverbindung
zu einem offenen Schaltkreis führen.
-
Manchmal endet der Abschnitt des
Busses, der zu testen ist, beispielsweise in einem Speicher-Slot,
so daß durch
den Bus kein geschlossener Schaltkreis gebildet wird. Demgemäß ist an
bestimmten Abschnitten des zu testenden Busses keine JTAG-Schaltungsanordnung
vorhanden, so daß das JTAG-Testen
des Busses nicht möglich
ist. Dieses Problem kann beispielsweise in Fällen auftreten, in denen keine
Speicherkarte in den Speicher-Slot eingesteckt ist, oder wenn die
in den Slot eingesteckte Speicherkarte keine JTAG-Testfähigkeiten
hat. Beispielsweise weist ein Standard-Einzelreihenanschluß-Speichermodul
(SIMM) oder ein Standard-Doppelreihenanschluß-Speichermodul (DIMM) keine
JTAG-Testfähigkeiten
auf.
-
Eine Lösung dieses Problems besteht
in der Verwendung einer "Stiftbett"-Testeinrichtung,
die kundenspezifisch ausgelegt und aufgebaut ist, um die Abschnitte
des Busses auf der PC-Karte, die in leeren Slots enden, zu testen.
Solche Stiftbett-Testeinrichtungen können jedoch Tausende von Dollars kosten,
so daß eine
solche Testeinrichtung in vielen Fällen kostspielig wäre. Zusätzlich ist
für die
Herstellung der Testvorrichtung, die die Stiftbett-Testeinrichtung
für eine
spezifische PC-Karte kundenspezifisch auslegt, Zeit erforderlich,
und sie könnte
für die
Verwendung in der Prototypenphase des PC-Kartenentwurfs nicht verfügbar sein.
Daher besteht weiterhin ein Bedarf an einer kostengünstigen
Vorrichtung und einem kostengünstigen
Verfahren zum Testen von Bussen in einem Computersystem oder dergleichen.
-
In der europäischen Patentanmeldung 578386
sind ein Protokoll und zugeordnete adressierbare Shadow-Port-Schaltungsanordnungen
zum wirksamen Erweitern serieller Busfähigkeiten auf die Rückwand-Platinenumgebung
beschrieben. Das Protokoll ist dafür ausgelegt, mit existierenden
Verfahren für
serielle Busse zu koexistieren und damit voll kompatibel zu sein.
Es sind Schaltungsanordnungen und ein Protokoll beschrieben, wodurch
beliebige der Leiterplatten auf dem System-Rückwand-Platinenbus mit dem
seriellen Hauptbus gekoppelt werden können, wobei das Protokoll die
Leiterplatten auswählt
und ihre Auswahl aufhebt, ohne die normalen Operationen auf dem
System-Rückwand-Platinenbus
zu stören.
Das Protokoll und die Schaltungsanordnung läßt sich auf hierarchisch angeordnete
Systeme erweitern, so daß eine
primäre serielle
Haupt-Busvorrichtung auf eine Vorrichtung, die auf einer beliebigen
Hierarchieebene angeordnet ist, selektiv zugreifen und damit kommunizieren kann.
-
Zusammenfassung der Erfindung
-
Gemäß einem Aspekt der vorliegenden
Erfindung ist ein System zum Testen von Punkt-zu-Punkt-Busverbindungen
auf einer Schaltungsplatte unter Verwendung von JTAG vorgesehen,
welches die Schaltungsplatte einschließlich einer unter Verwendung
von JTAG zu testenden Schaltungsanordnung aufweist. Ein Bus auf
der Schaltungsplatte weist Verbindungsanschlüsse auf, während mehrere Peripherie- oder
Erweiterungs-Einsteck-Slots
elektrisch mit den Bus-Verbindungsanschlüssen verbunden sind. Eine Einsteck-JTAG-Testkarte greift
weiterhin in einen der Einsteck-Slots ein, um eine elektrische Verbindung
damit einzurichten. Die Testkarte weist eine JTAG-Test-Pufferschaltungsanordnung
zum Anlegen von Testsignalen an die Bus-Verbindungsanschlüsse über den
Einsteck-Slot, der
mit der Testkarte in Eingriff ist, auf. Schließlich weist das System eine
JTAG-Testschaltung
auf, die mit dem Bus auf der Schaltungsplatte in Verbindung steht.
Die von der Testkarte ausgegebenen Testsignale werden von der JTAG-Testschaltung entgegengenommen,
um die Unversehrtheit der Punkt-zu-Punkt-Busverbindungen auf der
Schaltungsplatte zu testen. Gemäß einer
bevorzugten Ausführungsform
weist die JTAG-Testschaltung eine zweite JTAG-Testkarte auf, die
mit einem zweiten Einsteck-Slot in Eingriff ist. Gemäß einer
alternativen bevorzugten Ausführungsform
weist die JTAG-Testschaltung einen integrierten Schaltungs-Chip
mit JTAG-Testfähigkeiten
auf der Schaltungsplatte auf.
-
Gemäß einem anderen Aspekt sieht
die Erfindung ein Verfahren zum Testen von Busverbindungen auf einem
Motherboard, die über
eine Schnittstelle mit einem Einsteck-Slot in Verbindung stehen, vor. Das
Verfahren umfaßt
den Schritt des Bereitstellens einer Einsteck-Testkarte mit einer JTAG-Test-Pufferschaltungsanordnung
mit einem Boundary-Scan-Register.
Die Testkarte ist dafür
konfiguriert, in den Einsteck-Slot eingesteckt zu werden. Das Verfahren
umfaßt
weiterhin die Schritte des Einsteckens der Testkarte in den Einsteck-Slot,
des Schiebens eines Testvektors mit Datenbits in das Boundary-Scan-Register,
des Ausgebens der Testvektor-Datenbits aus dem Boundary-Scan-Register über die
Busverbindungen durch den Einsteck-Slot, des Empfangens der ausgegebenen
Testvektor-Datenbits über die
Busverbindungen sowie des Vergleichens der empfangenen ausgegebenen
Testvektor-Datenbits mit einem vorbestimmten Ausgabemuster, um Fehlfunktionen
der Busverbindungen zu identifizieren. Gemäß einer bevorzugten Ausführungsform
des Verfahrens werden die Schritte des Erzeugens, Einsteckens, Schiebens,
Ausgebens, Empfangens und Vergleichens für jeden Satz von Bus-Slot-Verbindungen
auf dem Motherboard wiederholt. Gemäß einem anderen Aspekt der
vorliegenden Erfindung ist eine JTAG-Einsteck-Testkarte zur Verwendung
beim Testen von Busverbindungen auf einer Schaltungsplatte vorgesehen,
die eine Schnittstelle mit einem Einsteck-Bus-Slot aufweisen, wobei die
Testkarte beinhaltet: einen ersten Verbinder-Abschnitt zum Eingriff
in den Einsteck-Bus-Slot,
einen zweiten Verbinder-Abschnitt zum Bereitstellen einer Schnittstelle
mit JTAG-Dateneingangs-
und -ausgangsleitungen und JTAG-Steuerleitungen und eine integrierte
Schaltung mit einer JTAG-Test-Pufferschaltungsanordnung, die mehrere
Bus-Sende-/Empfänger in
elektrischer Verbindung mit dem ersten Verbinder-Abschnitt zur Übertragung
von Daten an und zum Empfangen von Daten von dem Bus-Slot beinhaltet,
und mit einer JTAG-Schnittstelle zum Empfang serieller Daten und
von Steuersignalen von dem zweiten Verbinder-Abschnitt und zur Übertragung
von Daten zwischen den JTAG-Datenleitungen und den Bus-Sende-/Empfängern, wodurch
die integrierte Schaltung als JTAG-Testschaltung arbeiten kann, die den
Bus-Slot testet, wobei sie nicht entsprechend der Hauptfunktion
der integrierten Schaltung sondern als JTAG-Testvorrichtung arbeitet.
-
Kurzbeschreibung der Zeichnung
-
1 ist
ein vereinfachtes schematisches Blockdiagramm eines Computersystems
mit einem Bus, der mit Einsteckspeicher und Ein-/Ausgabe-Slots (E/A-Slots)
verbindet.
-
2 ist
eine schematische Draufsicht einer Seite einer gemäß der vorliegenden
Erfindung aufgebauten Doppelreihenanschluß-Speichermodul-Einsteckkarte
(DIMM-Einsteckkarte), die nur eine JTAG-Pufferschaltungsanordnung
aufweist.
-
3 ist
ein schematisches Blockdiagramm, in dem einer der auf der DIMM-Einsteckkarte aus 2 implementierten Boundary-Scan-Testpuffer dargestellt
ist.
-
Die 4A und 4B zeigen die internen Elemente
des Boundary-Scan-Registers aus 3 in näheren Einzelheiten.
-
5 zeigt
schematisch eine Ausführungsform
der Einsteckkarte, wobei die JTAG-Verbindungen auf der Rückseite
der Karte entgegengesetzt den Busverbindungen ausgebildet sind.
-
6 zeigt
mehrere während
des Testens eines Motherboards angeschlossene Einsteckkarten.
-
7 zeigt
ein Testsystem gemäß der vorliegenden
Erfindung.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsform
-
1 ist
ein vereinfachtes schematisches Blockdiagramm, in dem ein Computersystem 100 dargestellt
ist. Das Computersystem 100 weist einen Mikroprozessor 110 auf,
der über
einen Systembus 130 mit einer Busbrücke 120 und einer
Steuerung 140 eines dynamischen Direktzugriffsspeichers (DRAM)
in Verbindung steht. Gemäß einer
vorteilhaf ten Ausführungsform
weist der Mikroprozessor 110 einen P6-Mikroprozessor auf,
und die Busbrücke 120 weist
eine P6-zu-PCI-Brücke
auf. Die P6-zu-PCI-Brücke 120 steht über einen
Peripheriekomponentenverbindungs-Bus (PCI-Bus) 170 in Verbindung
mit einem Plattenlaufwerk 150 und einem Einsteck-E/A-Slot 160.
Die DRAM-Steuerung 140 ist über einen Speicherbus 195 mit
einem ersten Einsteck-Doppelreihenanschluß-Speichermodul-Slot (DIMM-Slot) 180 und
einem zweiten Einsteck-DIMM-Slot 190 verbunden. Wenn das
Computersystem 100 betriebsbereit ist, sind DIMMs (in 1 nicht dargestellt) mit
daran installiertem DRAM in die Slots 180, 190 gesteckt.
Wenngleich in der Ausführungsform
aus 1 DIMM-Einsteckkarten dargestellt
sind, könnten
gemäß den Lehren
der vorliegenden Endung ebenso Einzelreihenanschluß-Speichermodule
(SIMMs, nicht dargestellt) verwendet werden.
-
Es ist im Herstellungsstadium wünschenswert,
jede der integrierten Schaltungskomponenten sowie jede Punkt-zu-Punkt-Verbindung
zwischen den Schaltungschips und entlang allen Bussen unter Verwendung
eines JTAG-Boundary-Scan-Tests testen zu können. Es kann jedoch in bestimmten
Fällen schwierig
sein, viele der Punkt-zu-Punkt-Verbindungen entlang einigen der
Kommunikationsbusse zu testen, weil einer oder mehrere der Einsteck-Slots leer
sind oder kein Modul mit einer JTAG-Kompatibilität enthält.
-
Insbesondere können, wie in 1 dargestellt ist, der Einsteck-E/A-Slot 160 und
die Einsteck-DIMM-Slots 180 und 190 leer sein,
so daß der PCI-Bus 170 und
der Speicherbus 195 an einer offenen Verbindung enden.
Folglich gibt es keinen geschlossenen Schaltkreis, durch den die
Leitungen des PCI-Busses 170 oder des Speicherbusses 195 unter
Verwendung von JTAG getestet werden könnten. Weiterhin können die
Einsteck-Slots 160, 180 und 190 alternativ
Module aufweisen, die nicht JTAG-kompatibel sind, so daß die Slots 160, 180 und 190 sowie
Teile der PCI-Busse 170, 195 nicht unter Verwendung
von JTAG testbar wären.
-
Um demgemäß ein kostengünstiges
und wirksames System und Verfahren zum Testen von jeder der Verbindungen
auf dem PCI-Bus 170 und dem Speicherbus 195 unter
Verwendung von JTAG bereitzustellen und um die DIMM-Slots 180, 190 zu
testen, wird ein speziell konfiguriertes Einsteckmodul 200 (siehe 2) in jeden der Slots eingeführt, der
zum Testen eine JTAG-Kompatibilität benötigt.
-
Wie in 2 dargestellt
ist, weist die Einsteck-JTAG-Testkarte 200 einen Einsteckverbinder 210 auf,
der beispielsweise eine Mehranschlußverbindung mit dem Speicherbus 195 (oder
alternativ dem PCI-Bus 170) bereitstellt. Eine jeweilige JTAG-Testkarte
für jeden
der Slots 160, 180, 190 weist für jeden
der Slots 160, 180, 190 einen geeigneten
Verbinder auf. Die Einsteck-JTAG-Testkarte 200 weist weiterhin
eine JTAG-Testschnittstelle 220 zu mehreren JTAG-Testschaltungsanordnungen
in der Art der JTAG-Testpuffer
230 auf. Wie in 2 dargestellt ist, werden
die JTAG-Testpuffer 230 verwendet, um jeden Signalanschluß des zu
testenden Busses (beispielsweise des Speicherbusses 195 oder
des PCI-Busses 170) zu verbinden. Gemäß einer bevorzugten Ausführungsform
weisen die JTAG-Testpuffer 230 die JTAG-Boundary-Scan-Logik auf,
die innerhalb von Texas Instruments erhältlicher oktaler Bus-Sender/Empfänger vorgefunden
wird und unter der Modellnummer SN74ABT8245 verkauft wird. Dieser
oktale Bus-Sender/Empfänger weist
zwei Gruppen von acht bidirektionalen JTAG-Testpuffern auf, wobei
sich jede Gruppe eine Ausgangsfreigabe teilt.
-
Es sei bemerkt, daß die Einsteckkarte 200 keinen
Speicher aufweist, wenngleich Speicher oder andere Schaltungsanordnungen
auf der Karte 200 implementiert werden könnten, je
nachdem wie es von spezifischen Anwendungen gefordert wird. Die Einsteckkarte 200 wird
vielmehr nur zum Vervollständigen
der JTAG-Testschaltung verwendet, so daß die Karte 200 keine
Funktionen außer
als eine JTAG-Testschaltung aufweist. Demgemäß können die Busse 170, 195 durch
Einfügen
der JTAG-Testschaltung 200 in einen oder mehrere der Einsteck-Slots 160, 180 und 190 kostengünstig getestet werden.
Weiterhin kostet die vorliegende Erfindung erheblich weniger als
eine Stiftbett-Testeinrichtung, die kundenspezifisch entwickelt
und aufgebaut werden muß und
Tausende von Dollars kostet.
-
Während
des Testens können
eine oder mehrere der Einsteckkarten 200 immer wieder in
die aufnehmenden Einsteck-Slots eingeführt werden und als Testschaltung
für Busse
an mehreren zu testenden Computersystemen verwendet werden.
-
Wenn die Einsteckkarten 200 zum
Testen von Verbindungen für
Busse verwendet werden, die bereits für das JTAG-Testen konfiguriert
sind (wie der in 1 dargestellte
PCI-Bus 170), sind die geeigneten Leitungen zum Schieben
von JTAG-Daten und -Befehlen in die Daten- und Befehls-Boundary-Register
(siehe die 3 und 4) innerhalb der JTAG-Testschaltungen
bereits bereitgestellt. Falls die Einsteck-JTAG-Testkarte 200 jedoch
für einen Test
mit einem Bus verbunden ist, der nicht normal für JTAG konfiguriert ist (wie
ein ISA-Bus, ein herkömmlicher
Speicherbus oder ein PCI-Bus ohne eine verwendbare JTAG-Schnittstelle),
müssen über spezielle
Verbinder spezielle JTAG-Leitungen mit den Karten 200 verbunden
werden, so daß die
Daten und Befehle in die JTAG-Daten-
und Befehls-Schieberegister geschoben werden können, wie in den 5 und 6 dargestellt
ist.
-
5 zeigt
schematisch eine Ausführungsform
einer Einsteckkarte 200, wobei die JTAG-Verbindungen an
dem Rand der Karte ausgebildet sind, der den Busverbindungen entgegengesetzt
ist. Vier JTAG-Leitungen einschließlich einer Modusauswahlleitung
(TMS-Leitung) 240, einer Taktleitung (TCK-Leitung) 242,
einer Dateneingabeleitung (TDI-Leitung) 244 und einer optionalen
Rücksetzleitung
(TRST*-Leitung) 246 sind mit den JTAG-Testpuffern 230 verbunden.
Die TMS-, TCK- und TRST*-Leitungen 240, 242, 246 sind
parallel mit jedem der Puffer 230 verbunden, während die
TDI-Leitung 244 seriell (also hintereinander in einer Kette) über die
Testpuffer 230 geschaltet ist, wie auf dem Fachgebiet wohlbekannt
ist. Eine fünfte
JTAG-Datenausgabeleitung (TDO-Leitung) 248 gibt die Ausgangsdaten
vom letzten Puffer 230 zurück. Die Eingangsleitungen 240, 242, 244, 246 sind über einen JTAG-Eingangsverbinder 250 mit
der Karte 200 in 5 verbunden.
Die TMS-, TCK- und TRST*-Eingangsleitungen 240, 242, 246 sind
auch mit einem JTAG-Ausgangsverbinder 252 verbunden, und
die TDO-Leitung 248 ist auch am JTAG-Ausgangsverbinder 252 bereitgestellt.
Ein paralleler Bus 254 stellt Verbindungen zwischen einem
Busverbinder 256 und den Ein-/Ausgangsanschlüssen der
JTAG-Testpuffer 230 bereit.
-
6 zeigt
mehrere während
des Testens eines Motherboards 600 angeschlossene Einsteckkarten.
Wie in 6 dargestellt
ist, sind die JTAG-Testleitungen auf der Rückseite der Karten 200 und
nicht über
die Busverbindung angeschlossen, weil bei der dargestellten Anwendung
entweder der Bus keine JTAG-Testleitungen aufweist oder der Bus JTAG-Testleitungen
enthält,
die mit der Scan-Kette des Motherboards nicht hintereinander verkettet sind.
-
3 ist
ein Funktionsblockdiagramm eines SN74ABT82425. 3 zeigt die interne Schaltungsanordnung
eines im Handel erhältlichen
ICs, der verwendet werden könnte,
um die Scan-Testpuffer 230 aus 2 bereitzustellen. Wie in 3 dargestellt ist, weisen
die Puffer 230 ein Boundary-Scan-Register 300 und
acht bidirektionale Pufferkanäle 310 auf (in 3 ist nur ein Pufferkanal 310 dargestellt).
Jeder bidirektionale Kanalpuffer 310 stellt eine Verbindung
zwischen einem Bit eines A-Busses (auf der linken Seite in 3 dargestellt) und einem
entsprechenden Bit eines B-Busses (auf der rechten Seite in 3 dargestellt) bereit. Nur
der bidirektionale Kanalpuffer 310 für die Verbindung zwischen dem
ersten Bit (A1) des A-Busses und dem ersten Bit (B1) des B-Busses
ist in 3 dargestellt.
Die anderen sieben Pufferkanäle
(nicht dargestellt) verbinden die Bits A2 und B2, die Bits A3 und
B3, die Bits A4 und B4, die Bits A5 und B5, die Bits A6 und B6,
die Bits A7 und B7 sowie die Bits A8 und B8. Jeder Pufferkanal 310 weist
jeweilige Eingangspuffer 312, 318 und jeweilige
Ausgangspuffer 314, 316 auf. Die Ausgangspuffer 314, 316 sind
Dreizustandspuffer mit einem Hochimpedanzzustand, der im Normalmodus durch
den Ausgangsfreigabe-A-Ausgang (OEA-Ausgang) und den Ausgangsfreigabe-B-Ausgang (OEB-Ausgang)
eines UND-Gatters 320 bzw. eines UND-Gatters 322 gesteuert
wird, und im JTAG-Testmodus durch die jeweiligen JTAG-Boundary-Scan-Ausgangszellen
(OUT CELL) 324, 326 gesteuert wird.
-
Das UND-Gatter 320 nimmt über ein
Puffer 330 einen ersten invertierenden Eingang von einer Active-Low-Ausgangsfreigabeleitung
(OE-Leitung) 328 entgegen. Eine JTAG-Boundary-Scan-Eingangszelle
(IN CELL) 332 im Boundary-Scan-Register 300 ist
mit dem Ausgang des Puffers 330 verbunden, um den Zustand
der Ausgangsfreigabeleitung 328 zu überwachen. Ein zweiter nichtinvertierender Eingang
des UND-Gatters 320 ist über ein Puffer 336 durch
eine Richtungsleitung (DIR-Leitung) 334 bereitgestellt.
Eine JTAG-Boundary-Scan-Eingangszelle 338 im Boundary-Scan-Register 300 ist
mit dem Ausgang des Puffers 336 verbunden, um zu ermöglichen,
daß der
Zustand der Richtungsleitung 334 überwacht wird. Das UND-Gatter 322 nimmt über die Puffer 330 bzw. 336 einen
invertierten Eingang von der Ausgangsfreigabeleitung 328 und
einen invertierten Eingang von der Richtungsleitung 334 entgegen. Es
ist demgemäß ersichtlich,
daß bei
der ursprünglich
vorgesehenen Verwendung des Puffers 230 nur eines von dem
OEA-Signal und dem OEB-Signal von den UND-Gattern 320, 322 zu
einer Zeit entsprechend dem Zustand des DIR-Signals auf der Leitung 334 aktiv
sein kann. Gemäß der bevorzugten
Ausführungsform
sind die Ausgangsfreigabeleitung 328 und die Richtungsleitung 334 auf
den hohen Zustand gelegt, so daß die
sechzehn E/A-Anschlüsse
des oktalen Puffers im Hochimpedanzmodus sind und den getesteten
Bus nicht beeinflussen, wenn sich die Scan-Testpuffer 230 nicht im JTAG-Testmodus
befinden. In dem hier beschriebenen JTAG-Modus werden die Ausgangsfreigabeleitung 328,
die Richtungsleitung 334 und die UND-Gatter 320, 322 nicht
verwendet, und die Puffer werden ausschließlich durch die JTAG-Ausgangszellen 324, 326 gesteuert.
-
Jeder der acht Kanäle wird
weiterhin durch eine JTAG-Eingangszelle 340 auf der Seite
des A-Busses, eine JTAG-Ausgangszelle 342 auf der A-Seite,
eine JTAG-Eingangszelle 346 auf der B-Seite und eine JTAG-Ausgangszelle 348 auf
der B-Seite im Boundary-Scan-Register 300 gesteuert,
wie nachstehend in Verbindung mit den 4A und 4B vollständiger erörtert wird.
-
Das Boundary-Scan-Register 300 empfängt Daten-
und Befehlsbits, welche, von einer herkömmlichen JTAG-Testschaltungsanordnung
gesteuert, in das Boundary-Scan-Register 300 geschoben
werden können.
Insbesondere umfaßt
die JTAG-Testschaltungsanordnung, welche das Boundary-Scan-Register 300 steuert,
ein Bypass-Register 350, ein Boundary-Steuerregister 355,
ein Befehlsregister 360 und eine TAP-Steuerung 365.
Die Register 350–360 empfangen über einen
Puffer 371 auf einer Leitung 370 ein Testdaten-Eingangssignal (TDI-Signal).
Die TAP-Steuerung 365 empfängt auf einer Leitung 372 über einen
Puffer 373 ein Testmodusauswahl-Signal (TMS-Signal) und
auf einer Leitung 374 über
einen Puffer 375 ein Testtaktsignal (TCK-Signal). Die TAP-Steuerung 365 liefert Steuerausgaben an
das Befehlsregister 360, das Boundary-Steuerregister 355 und
das Bypass-Register 350.
-
Die Ausgabe des Boundary-Scan-Registers 300 wird
als eine erste Eingabe einem Multiplexer 380 mit drei Eingängen zugeführt, während die
Ausgaben des Bypass-Registers 350 und des Boundary-Steuerregisters 355 als
zweite und dritte Eingabe für
den Multiplexer 380 dienen. Das Befehlsregister 360 führt dem
Multiplexer 380 eine Auswahlausgabe zu. Die Ausgabe des
Multiplexers 380 dient als eine erste Eingabe in einen
2 : 1-Multiplexer 385, während die Ausgabe des Befehlsregisters 360 als
eine zweite Eingabe für
den Multiplexer 385 dient. Die TAP-Steuerung liefert dem
Multiplexer 385 eine Auswahleingabe, und sie liefert auch
einem Testdaten-Ausgangspuffer 390, der mit dem Ausgang
des Multiplexers 385 verbunden ist, eine Dreizustandseingabe.
Die Ausgabe des Ausgangspuffers 390 ist das TDO-Signal
auf einer Leitung 392.
-
Das Verfahren zum Ausführen des JTAG-Testens
unter Verwendung der Schaltung aus 3 ist
Durchschnittsfachleuten wohlbekannt. Es sei beispielsweise für eine Beschreibung
des zum Einschieben der geeigneten Testvektoren usw. verwendeten
Verfahrens auf den vorstehend aufgenommenen IEEE 1149.1 JTAG-Boundary-Scan-Standard verwiesen.
-
In den 4A und 4B sind detailliertere Funktionsblockdiagramme
der Eingangszellen und der Ausgangszellen des Boundary-Scan-Registers 300 dargestellt.
Insbesondere ist die Eingangszelle 340 in 4A dargestellt und die Ausgangszelle 348 in 4B dargestellt. Die anderen
Eingangs- und Ausgangszellen haben ähnliche Konfigurationen.
-
Wie in 4A dargestellt
ist, weist die als Beispiel dienende Eingangszelle 340 einen 2-zu-1-Multiplexer 400 auf,
der einen ersten Eingang (0) von der Boundary-Scan-Kette entgegennimmt. Das
heißt,
daß der
erste Eingang geschaltet ist, um den Ausgang der vorhergehenden
Eingangszelle oder Ausgangszelle im Boundary-Scan-Register 300 oder
den TDI-Eingang vom Puffer 371 in 3 entgegenzunehmen. Der Multiplexer 400 weist
einen zweiten Eingang (1) auf, der den Ausgang des Eingangspuffers 312 entgegennimmt.
Andere Eingangszellen (nicht dargestellt) nehmen entsprechende Eingänge von
der Boundary-Scan-Kette und von entsprechenden Eingangspuffern entgegen.
-
Der Multiplexer 400 hat
einen Auswahleingang (S), der durch ein CAPTURE_DR-Signal gesteuert
wird, welches von der TAP-Steuerung 365 in 3 erzeugt wird. Wenn das CAPTURE_DR-Signal aktiv
ist, wählt
der Multiplexer 400 den Ausgang des Eingangspuffers 312 aus.
Wenn das CAPTURE_DR-Signal inaktiv ist, wählt der Multiplexer 400 den
Eingang von der Boundary-Scan-Kette aus.
-
Die Ausgabe des Multiplexers 400 wird
als die Dateneingabe (D) eines Flipflops 402 bereitgestellt,
der durch ein von der TAP-Steuerung 365 (3) erzeugtes Datenregister-Taktsignal (DR_CLK-Signal)
getaktet wird. Die Ausgabe (Q) des Flipflops 402 wird als
die Schiebeausgabe der Eingangszelle 340 bereitgestellt,
die als die Schiebeeingabe der nächsten
Zelle in der Boundary-Scan-Kette oder, falls die spezielle Eingangszelle
die letzte Zelle in der Boundary-Scan-Kette ist, als die Datenausgabe
des Boundary-Scan-Registers 300 dem Multiplexer 380 in 3 zugeführt wird. Während der Boundary-Scan-Schiebeoperationen
ist das CAPTURE_DR-Signal für
den Auswahleingang des Multiplexers 400 inaktiv, so daß der Flipflop 402 als Teil
eines Boundary-Scan-Schieberegisters geschaltet ist, das die anderen
Eingangszellen und die Ausgangszellen aufweist.
-
Wie weiterhin in 4A dargestellt ist, wird die Ausgabe
des Eingangspuffers 312 als eine Eingabe der Ausgangszelle 348 zugeführt, die
nachstehend in Zusammenhang mit 4B beschrieben wird.
-
Wie in 4B dargestellt
ist, weist die als Beispiel dienende Ausgangszelle 348 einen
Eingangsmultiplexer 420 mit einem ersten Eingang (0), einem
zweiten Eingang (1), einem Auswahleingang (S) und einem Ausgang
auf. Der erste Eingang ist geschaltet, um den Ausgang der vorhergehenden
Eingangszelle oder Ausgangszelle im Boundary-Scan-Register 300 oder
einen TDI-Eingang vom Puffer 371 in 3 entgegenzunehmen. Der zweite Eingang
nimmt den Ausgang des Eingangspuffers 312 (4A) entgegen. Der Auswahleingang wird durch
das vorstehend beschriebene CAPTURE_DR-Signal gesteuert.
-
Der Ausgang des Eingangsmultiplexers 420 wird
als der Dateneingang (D) eines Flipflops 422 bereitgestellt,
der auch durch das vorstehend beschriebene DR_CLK-Signal getaktet
wird. Der Datenausgang (Q) des Flipflops 422 wird als der
Dateneingang einer Latch-Stufe 424 zugeführt, die
einen Latch-Freigabesteuereingang aufweist, der durch ein von der
TAP-Steuerung 365 in 3 erzeugtes UPDATE_DR-Signal
gesteuert wird. Das UPDATE_DR-Signal wird ansprechend auf über die TMS-Signalleitung 372 (3) empfangene Aktualisierungsbefehle
von der TAP-Steuerung 365 aktiviert.
-
Die Datenausgabe des Flipflops 422 wird auch
als die Schiebeausgabe der Ausgangszelle 348 zugeführt, welche
als die Schiebeeingabe der nächsten
Zelle in der Boundary-Scan-Kette oder, falls die jeweilige Ausgangszelle
die letzte Zelle in der Boundary-Scan-Kette
ist, als die Datenausgabe des Boundary-Scan-Registers 300 dem
Multiplexer 380 in 3 zugeführt wird.
-
Die Ausgangszelle 348 weist
weiterhin einen Ausgangsmultiplexer 426 auf, der einen
ersten Eingang (0), einen zweiten Eingang (1), einen Auswahleingang
(S) und einen Ausgang aufweist. Der erste Eingang des Ausgangsmultiplexers 426 empfängt die
Ausgabe des Eingangspuffers 312 (4A). Der zweite Eingang des Ausgangsmultiplexers 426 empfängt die
Datenausgabe der Latch-Stufe 424. Der Auswahleingang empfängt ein
TEST_MODE-Signal, das ansprechend auf den Empfang eines Testmodusbefehls
auf der TMS-Leitung 372 von der TAP-Steuerung 365 erzeugt
wird. Wenn das TEST_MODE-Signal
inaktiv ist, wird die Ausgabe des Puffers 312 (4A) als die Ausgabe des
Ausgangsmultiplexers 426 zugeführt, die als die Eingabe dem
Ausgangspuffer 316 zugeführt wird (auch in den 3 und 4B dargestellt). Wenn das TEST_MODE-Signal
aktiv ist, wird die Ausgabe der Latch-Stufe 424 als die
Ausgabe des Ausgangsmultiplexers 426 dem Ausgangspuffer 316 zugeführt.
-
Die Ausgangspuffer 314 und 316 in 3 werden durch Signale von
den Ausgangszellen 326 bzw. 324 freigegeben. Die
Ausgangszellen 326, 324 ähneln den in 4B beschriebenen, wobei jedoch die Ausgänge der
Zellen 324, 326 mit dem Hochimpedanz-Steuereingang
der jeweiligen Ausgangspuffer 316, 314 verbunden
sind. Zusätzlich
kommen die Eingänge
der Zellen 326, 324 von OEA bzw. OEB (Ausgangsfreigabe
A bzw. Ausgangsfreigabe B).
-
Im SN74ABT8245-Puffer 230 gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung sind die Eingangszellen 340 und
die Ausgangszellen 348 im Boundary-Scan-Schieberegister
folgendermaßen
verbunden. Das Testdaten-Eingangssignal (TDI-Signal) 370 wird
vom Eingangspuffer 371 der OEB-Ausgangszelle 324 zugeführt, dann
der OEA-Ausgangszelle 326 zugeführt, dann der DIR-Eingangszelle 338 zugeführt, dann
der OE-Eingangszelle 332 zugeführt, dann den Eingangszellen auf
der B-Seite (B8, B7, B6, B5, B4, B3, B2, B1) zugeführt, dann
den Ausgangszellen auf der B-Seite (B8, B7, B6, B5, B4, B3, B2,
B1) zugeführt,
dann den Eingangszellen auf der A-Seite (A8, A7, A6, A5, A4, A3,
A2, A 1) zugeführt,
dann den Ausgangszellen auf der A-Seite (A8, A7, A6, A5, A4, A3,
A2, A1) zugeführt
und dann über
den Multiplexer 380, den Multiplexer 385 und den
Ausgangspuffer 390 dem Testdaten-Ausgangssignal (TDO-Signal)
zugeführt.
-
Es sei bemerkt, daß die JTAG-Testlogik
innerhalb der integrierten Schaltung SN74ABT8245 komplexer ist als
in den 4A und 4B dargestellt ist. Der Einfachheit
halber sind nur die Funktionen dargestellt, die für den Boundary-Scan-Test
erforderlich sind. Eine integrierte Schaltung SN74ABT8245 weist
auch eine Logik zum Unterstützen
anderer JTAG-Funktionen auf, die auch verwendet werden können, welche
jedoch nicht zur Implementation der hier beschriebenen Erfindung
erforderlich sind.
-
Bei der von der vorliegenden Erfindung
vorgesehenen Testoperation werden die in das Boundary-Scan-Register 300 geschobenen
Daten in jeder der mit dem A-Bus und dem B-Bus verbundenen Ausgangszellen 342, 348, 326 und 324,
in jedem der Ausgangsmultiplexer 426, die zur Auswahl der
zweiten Eingänge
(I) gesteuert werden, und in jedem der Ausgangspuffer 314 und 316,
die mit jeder Ausgangszelle 342, 348 verbunden
sind, in die Latch-Stufen 424 eingegeben und zwischengespeichert,
und sie werden von den Ausgangszellen 326, 324 freigegeben,
so daß ein
getesteter Bus, der mit den Anschlüssen der Puffer 230 verbunden
ist, mit ausgewählten
Daten von den Puffern 230 angesteuert wird. Die Daten auf
dem Bus werden von anderer Logik empfangen, die mit dem getesteten
Bus verbunden ist, und mit erwarteten Daten verglichen, um zu bestimmen,
ob jeder der Anschlüsse
auf dem getesteten Bus richtig angesteuert worden ist.
-
Umgekehrt kann der getestete Bus
durch andere Logik angesteuert werden, wenn die Ausgangspuffer 314, 316 deaktiviert
sind. Die Daten auf dem getesteten Bus werden dann über die
Eingangspuffer 312, 318 empfangen und in den jeweiligen
Flipflops 402 festgehalten. Danach werden die empfangenen Daten
aus dem Boundary-Scan-Register 300 zur TDO-Leitung geschoben.
Die seriellen Ausgangsdaten auf der TDO-Leitung werden durch eine JTAG-Test-Haupteinrichtung
(siehe 7) empfangen
und mit erwarteten Daten verglichen, um zu bestimmen, ob der getestete
Bus richtig funktioniert.
-
Auf diese Weise bilden die Einsteckkarten 200 einschließlich der
JTAG-Schaltungsanordnung innerhalb des Boundary-Scan-Registers 300 ein
kostengünstiges
und wirksames System und ein kostengünstiges und wirksames Verfahren
zum Testen von Abschnitten des PCI-Busses 170 und des Speicherbusses 195,
welche andernfalls nicht in einer JTAG-Umgebung testbar wären.
-
Beim Betrieb werden, wie in 7 schematisch dargestellt
ist, JTAG-Befehle und -Daten in Befehls- und Datenregister innerhalb
der JTAG-Schaltungsanordnung (in 7 nicht
dargestellt) auf dem Motherboard 600 und der JTAG-Schaltungsanordnung
(in 7 auch nicht dargestellt)
auf der ersten und der zweiten DIMM-Karte 200 von einer JTAG-Haupt-Testschaltung 700 geschoben.
Die Daten und Befehle werden über
einen Verbinder 705, ein Kabel 710, einen Verbinder 715,
einen Verbinder 420, ein Kabel 720, einen Verbinder 725,
einen Verbinder 730, ein Kabel 735, einen Verbinder 740,
einen Verbinder 745 und ein Kabel 750 in ihre
jeweiligen Register geschoben. Der Verbinder 715 greift
in einen passenden Verbinder 420 am Rand des Motherboards 600 ein,
wie in 7 dargestellt
ist, während
die Verbinder 725, 730, 740 und 745 in
entsprechende passende Verbinder an den Rändern der Einsteckkarte 200 eingreifen.
Gemäß einer
vorteilhaften Ausführungsform
sind die Verbinder 725, 730, 740 und 745 alternierend
männliche
und weibliche Verbinder (beispielsweise ist der Verbinder 725 des
Kabels 720 ein männlicher
Verbinder, ist der Verbinder 730 des Kabels 735 ein
weiblicher Verbinder usw.), so daß eine oder mehrere der Einsteckkarten 200 umgangen
werden können
(falls es beispielsweise einen leeren Slot gibt). Falls demgemäß beispielsweise
die Slots 180, 190 beide leer sind, kann der Verbinder 725 des
Kabels 720 direkt in den Verbinder 745 des Kabels
750 eingreifen,
so daß die JTAG-Haupt-Testschaltung
leicht angeschlossen werden kann, um so viele Schaltungen zu testen,
wie sie das JTAG-Testen unterstützen.
-
Sobald die geeigneten Daten in die JTAG-Register
geschoben worden sind, werden die Daten den Verbindungspunkten zugeführt und
an einer anderen Stelle, die in Verbindung mit den Verbindungspunkten
steht, von einer JTAG-Schaltungsanordnung empfangen. Beispielsweise
könnte
die erste Einsteckkarte 200 (die in den Slot 180 eingreift)
Daten auf den Bus 195 (siehe 1)
ausgeben, die beispielsweise von der DRAM-Steuerung 140 entgegengenommen
werden. Die JTAG-Schaltungsanordnung innerhalb der DRAM-Steuerung 140 (nicht
dargestellt) liest die Daten auf dem Bus 195 und überträgt sie über den
Verbinder 715 in die JTAG-Haupt-Testschaltung 700 zurück, um eine
Prüfung
vorzunehmen.
-
Wenngleich die bevorzugte Ausführungsform
der vorliegenden Erfindung vorstehend detaillierte beschrieben worden
ist, werden Durchschnittsfachleute verstehen, daß bestimmte offensichtliche Modifikationen
vorgenommen werden können,
ohne vom in den anliegenden Ansprüchen definierten Schutzumfang
der vorliegenden Erfindung abzuweichen. Beispielsweise könnten andere
kostengünstige Testschaltungen
als die hier beschriebene SN74ABT8245 verwendet werden, um die JTAG-Einsteck-Testkarte 200 zu
implementieren. Daher sollte die vorstehende Beschreibung als erläuternd und nicht
als einschränkend
ausgelegt werden.