-
TECHNISCHES
GEBIET
-
Die
Erfindung betrifft das Testen von integrierten Schaltungen und insbesondere
das Testen von integrierten Schaltungen durch ein Boundary-Scan-System.
-
STAND DER
TECHNIK
-
Der
IEEE/ANSI-Standard 1149.1 – 1990,
der auch als JTAG und Boundary-Scan bekannt ist, ist ein Standard
zum Testen von integrierten Schaltungen sowie Leiterplatten. Im
Stand der Technik wurden Leiterplatten durch ein automatisches Testgerät (ATE)
getestet, das spezielle Stellen auf einer Platine mittels Sondendrähten, die
an einer Nadelkarte befestigt sind, kontaktierte. Die Nadelkarte
wurde derart mit dem ATE gekoppelt, dass Testsignale zum und vom
ATE zu speziellen Bereichen einer zu prüfenden Platine gesandt werden
konnten. Andererseits erfordert Boundary-Scan, dass bestimmte Register
und zweckorientierte Anschlussstifte auf einem Chip angeordnet werden,
so dass vielmehr eine Software als ein ATE verwendet werden kann,
um Testprozeduren auszuführen.
Relativ kostengünstige
Computer können
nun verwendet werden, um integrierte Schaltungschips zu testen,
selbst nachdem der Chip hergestellt und versandt wurde. Fünf zweckorientierte
Anschlussstifte, die an Chips mit einer Boundary-Scan-Testfähigkeit
vorgesehen sind, kommunizieren mit einem Testzugriffsanschluss (TAP),
der einen Zugriff auf eine Logik gewährt, die Boundary-Scan und
andere Testprozeduren ausführt.
Die Anschlussstifte sind Testdateneingang (TDI), Testdatenausgang
(TDO), Testtakt (TCK), Testbetriebsartauswahl (TMS) und Testrücksetzung
(TRST).
-
Drei
der fünf
zweckorientierten Anschlussstifte, nämlich TMS, TCK und TRST, greifen
auf eine einfache Zustandsmaschine mit 16 Zuständen zu, die als TAP-Steuereinheit bekannt
ist. Die TAP-Steuereinheit steht wiederum zusammen mit den zweckorientierten
Anschlussstiften TDI und TDO mit einem Befehlsregister sowie mit
zwei anderen Registern, die in einer beliebigen Boundary-Scan-Implementierung
obligatorisch sind, in Verbindung. Diese sind das Boundary-Scan-Register
und das Überbrückungsregister.
Das Befehlsregister steht wiederum mit anderen Registern in Verbindung,
die im Allgemeinen als Datenregister bekannt sind, von denen einige
benutzerdefiniert sein können.
Die Datenregister ermöglichen
eine Bauelementkonfiguration, -nachprüfung, -prüfung, -zuverlässigkeitsbewertung
und so weiter. Ein weiteres wichtiges Merkmal der Boundary-Scan-Architektur
ist ein Satz von Testzellen, wobei eine Zelle jedem der funktionalen
Eingangs/Ausgangs-Anschlussstifte der integrierten Schaltung zugeordnet
ist, so dass eine Zelle als Eingangs- oder Ausgangszelle für das Bauelement
verwendet werden kann. Die Zellen sind in einer Schieberegisterorganisation für eine serielle
Kommunikation zwischen den TDI- und TDO-Anschlussstiften angeordnet.
-
Der
JTAG-Standard weist zwei Hauptbetriebsarten auf, eine nichtinvasive
Betriebsart und eine Anschlussstift-Zulassungsbetriebsart. Der Standard
legt eine Schaltungsanordnunggruppe fest, von der garantiert wird,
dass diese vom Rest der Logik innerhalb einer integrierten Schaltung
(IC) unabhängig
ist. Die Logikschaltung innerhalb eines IC, ausschließlich der
JTAG-Schaltung, ist als chipinterne Systemlogik (OCSL) definiert.
In der nichtinvasiven Betriebsart wird die JTAG-Schaltung verwendet,
um asynchron mit der Außenwelt zu
kommunizieren, um Tests einzusetzen oder Ergebnisse auszulesen.
Diese Aktivitäten
beeinflussen das normale Verhalten der IC nicht. In der Anschlussstift-Zulassungsbetriebsart
legt der JTAG-Standard Befehlsbetriebsarten fest, die die Steuerung
der Eingangs/Ausgangs- (E/A) Anschlussstifte der IC übernehmen
können, wobei
die OCSL effektiv von der Außenwelt
getrennt wird. Diese Betriebsarten ermöglichen das Testen der OCSL
oder ihre Isolation von Testaktivitäten, die an ihren Anschlussstiften
stattfinden. Unter den gelehrten Stiftzulassungsbefehlen befinden
sich INTEST, EXTEST und RUNBIST. Der INTEST-Befehl ermöglicht,
dass das Boundary-Scan-Register einen Testimpuls an die OCSL des
Bauelements anlegt und Testergebnisse von dieser erfasst. Der EXTEST-Befehl
ermöglicht,
dass das Boundary-Scan-Register
einen Testimpuls an Platinenebenenverbindungen zwischen integrierten
Schaltungen anlegt und Testergebnisse von diesen erfasst. Der RUNBIST-Befehl
ist ähnlich
dem INTEST-Befehl, außer
dass er irgendein vom Entwickler festgelegtes Register zwischen
den Anschlussstiften TDI und TDO (das das Boundary-Scan-Register umfassen
kann oder nicht) ins Visier nehmen kann.
-
Nach
bestimmten JTAG-Operationen kann die OCSL des Bauelements rückgesetzt
werden müssen, um
zum normalen Betrieb zurückzukehren.
Unter diesen Operationen befinden sich RUNBIST, INTEST, EXTEST,
CLAMP und HIGHZ. Ein OCSL-Rücksetzen
kann auch nach dem Ausführen
von entwurfsspezifischen Nicht-Standard-Befehlen erforderlich sein.
-
In
einer integrierten Schaltung, die die JTAG-Testmethodologie verwendet, würde normalerweise
eine Bauelementrücksetzung
entweder durch (1) Ansteuern eines TRST-Anschlussstifts, der den
BYPASS- oder IDCODE-Befehl in das Befehlregister lädt, oder
(2) Entfernen, dann erneutes Anlegen der Bauelementleistung oder
(3) Entfernen eines Kompatibilitätsfreigabe-Datenmusters
von einem Satz von Kompatibilitätsfreigabe-Anschlussstiften
oder (4) Überführen der
Testzugriffsanschluss-Steuereinheit in den Testlogik-Rücksetz-Zustand
durchgeführt
werden. Jede dieser Handlungen setzt die TAP-Steuereinheit in den
Testlogik-Rücksetz-Zustand
und konfiguriert die Testlogik derart, dass sie die OCSL-Operation
nicht beeinflusst. Jede dieser Prozeduren belegt auch das Befehlsregister
mit dem BYPASS- (oder,
falls er existiert, dem IDCODE-) Befehlscode.
-
Der
Befehlsregisterinhalt kann auch durch Führen der TAP-Steuereinheit durch
den Befehlsregister-Aktualisierungs-Zustand geändert werden. Dies ist tatsächlich das
einzige Verfahren, das die JTAG-Spezifikation zum Ändern des
Befehlsregisterinhalts in irgendetwas anderes als den BYPASS- (oder
IDCODE) Befehl vorsieht. Daher ist dies das einzige gelehrte Verfahren,
durch das der Befehl geändert
werden kann, ohne die Testlogik derart zu konfigurieren, dass sie
die OCSL-Operation nicht beeinflusst.
-
Innerhalb
der vorliegenden JTAG-Testlogikstruktur befinden sich Operationen,
bei denen die Operation der OCSL derart gesteuert werden muss, dass
die OCSL nicht beschädigt
werden kann. Unter diesen Operationen sind die Ausführung der
Befehle EXTEST, CLAMP und HIGHZ. Die JTAG-Spezifikation gibt an,
dass eine solche Steuerung, falls erforderlich, geschehen muss,
während
der spezielle Befehl ausgewählt
wird. Andere Befehle können
auch verschiedene Änderungen
an der Operation der OCSL erfordern. Während beispielsweise der INTEST-Befehl
ausgewählt
wird, muss die OCSL zu einer Ein-Schritt-Taktungsoperation in der Lage
sein (IEEE 1149.1a 7.8.1.c).
-
Tabelle
A zeigt den minimalen Satz von Befehlen, die innerhalb einer IC
enthalten sein müssen,
damit die IC mit den JTAG-Spezifikationen kompatibel ist. Nur die
Befehle BYPASS, EXTEST und SAMPLE/PRELOAD sind für die IEEE 1149.1 Spezifikation
erforderlich.
-
Tabelle
A. Minimaler JTAG-Befehlssatz. STAND DER TECHNIK
-
Tabelle
B listet einen erweiterten Satz von normierten JTAG-Befehlen auf,
die durch die Spezifikation beschrieben sind. Die zusätzlichen
Befehle jenseits derjenigen, die in Tabelle A enthalten sind, sind
in der JTAG-Spezifikation beschrieben, um die Befehlsoperation zu
normieren.
-
Tabelle
B. Voller Standard-JTAG-Befehlssatz, STAND DER TECHNIK
-
4 listet
ein Beispielablaufdiagramm der Operationssequenzen auf, die für den Übergang
zwischen normierten Befehlen erforderlich sind. 4 listet
eine typische Operationssequenz für einen IDCODE-Befehl, gefolgt
von einem SAMPLE/PRELOAD-Befehl, auf. Diese spezielle Sequenz wird üblicherweise
nach dem anfänglichen
Einschalten einer Leiterplatte, die dazu ausgelegt wurde, die JTAG-Schnittstelle
zum Platinentest zu verwenden durchgeführt.
-
In 4 wird
der IDCODE-Befehl zuerst ausgeführt,
um sicherzustellen, dass die korrekten Bauelemente sich an der richtigen
Stelle auf der Platine befinden. In Schritt 411 werden
die Bauelement-Identifikationscodes an ihren TDO-Anschlussstiften herausgeschoben. Das
Steuertestsystem vergleicht diese Codewerte mit dem Satz von erwarteten
Werten. Wenn alle Werte übereinstimmen,
dann ist bekannt, dass sich alle Bauelemente an der richtigen Stelle
befinden, und es ist bekannt, dass die serielle JTAG-Datenkette korrekt arbeitet.
Der SAMPLE/PRELOAD-Befehl kann dann verwendet werden, um festzustellen,
ob die OCSL des Bauelements korrekt eingeschaltet wurde, und um
Daten für
die anschließende
Testoperation zu laden. In 4, Schritt 421,
erfassen die Bauelemente Anfangswerte, die an ihre Boundary-Scan-Register-
(BSR) Zellen übergeben
werden. In Schritt 422 werden diese anfänglichen Erfassungsdaten zur
Prüfung
herausgeschoben. Gleichzeitig werden typischerweise PRELOAD-Daten
in die BSRs der Bauelemente zur Vorbreitung auf einen anschließenden EXTEST-,
INTEST- oder RUNBIST-Befehl
geschoben. Alternativ können
die Schritte 406 bis 408 weggelassen werden, da
die JTAG-Spezifikation
erfordert, dass der IDCODE-Befehl in das Befehlsregister geladen
wird, sobald sich die TAP-Steuereinheit
eines Bauelements im Testlogik-Rücksetz-Zustand befindet.
-
In
vielen Fällen
der sequentiellen JTAG-Befehlsausführung besteht keine Abhängigkeit
zwischen den Operationen. In 4 ist die
SAMPLE/PRELOAD-Operation beispielsweise in keiner Weise von der
Auswahl oder Ausführung
der vorherigen IDCODE-Operation abhängig. Die Ausnahmen für diese
Befehlsunabhängigkeit
sind die Ausführung
eines SAMPLE/PRELOAD-Befehls, gefolgt von einem EXTEST- oder INTEST-Befehl. In
diesen Fällen
lädt der
PRELOAD-Teil des SAMPLE/PRELOAD-Befehls Daten in das BSR. Die folgende
EXTEST- oder INTEST-Operation beruht auf diesen BSR-Daten, um einen
Test entweder der Platinenebenenverbindung oder der OCSL-Operation
durchzuführen.
Selbst in diesen Fällen
wird jedoch die Operation der OCSL insbesondere nicht durch die
anfängliche
SAMPLE/PRELOAD-Operation geändert.
Der SAMPLE/PRELOAD-Befehl dient nur zum Initialisieren der BSR-Daten zur Verwendung
durch den anschließenden
EXTEST- oder INTEST-Befehl. Diese Befehlsabhängigkeit gilt auch für einen
SAMPLE/PRELOAD-Befehl, der einem RUNBIST-Befehl vorangeht oder folgt,
wenn der RUNBIST-Befehl dazu ausgelegt ist, das BSR zu verwenden.
-
Das
Dokument EP-A-639 006 offenbart ein Verfahren zum Durchführen einer
systeminternen Programmierung unter Verwendung einer JTAG-Schaltung,
in der durch Multiplexieren der JTAG-zweckorientierten Anschlussstifte
es möglich
ist, 3 Stifte für
andere Funktionen verfügbar
zu machen.
-
Es
ist eine Aufgabe der Erfindung, die Funktionalität und Flexibilität der JTAG-Testlogikstruktur
und -Methodologie zu erweitern, indem Befehle definiert und aufgenommen
werden, die der Reihe nach arbeiten, so dass ein Befehl dazu ausgelegt
und vorgesehen ist, der Reihe nach nach einem oder mehreren vorangehenden
Befehlen ausgeführt
zu werden, wobei die vorangehenden Befehle die Operation der OCSL
modifizieren. Es ist eine weitere Aufgabe der Erfindung, eine Methodologie
zu entwickeln, durch die die OCSL-Betriebsart des Bauelements durch
die Verwendung einer Zustandsmaschine und einer Befehlsregistersteuerung
geändert
werden kann, wobei Befehle, die alternative Verfahren zum Beenden
oder Ändern
der Operation vorsehen, durch vorher ausgeführte Befehle eingeleitet werden.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
obigen Aufgaben wurden mit einem Boundary-Scan-Verfahren gelöst, durch das der Zustand der OCSL
durch die Verwendung einer Zustandsmaschine geändert wird, die unter anderen
Funktionen das Laden von Befehlen in ein Befehlsregister ermöglicht.
Insbesondere ermöglicht
die Zustandsmaschine, dass ein vordefinierter Satz von Befehlen
einzeln geladen und ausgeführt
wird. Zumindest einige der definierten Befehle sind speziell dazu
ausgelegt, der Reihe nach nach bestimmten anderen vorherigen Befehlen
zu folgen. Der anfängliche
Befehl in der Reihe ändert
die OCSL von einem ersten Zustand in einen zweiten Zustand. Die
anschließende
Befehlsausführung ändert den
OCSL-Zustand wieder. In einigen Fällen wird der OCSL-Zustand wieder
in den ersten Zustand geändert.
In anderen Fällen
wird der OCSL-Zustand in einen dritten Zustand geändert.
-
Um
dieses Ergebnis zu erzielen, wird ein Verfahren, wie in Anspruch
1 beschrieben, bereitgestellt, in dem Befehle zu einem minimalen
Satz von JTAG-Befehlen hinzugefügt
werden. Das Hinzufügen
dieser Befehle kann innerhalb der Struktur der JTAG-Testlogikschaltung
ausgeführt
werden. Änderungen
müssen
nur beim Hinzufügen
von neuen Operationsbefehlen und einer neuen oder modifizierten
OCSL-Steuerung (und möglicherweise
einer modifizierten Boundary-Scan-Register- und/oder Testdatenregister-Steuerung)
für den
Befehlsregisterdecodierer ersichtlich sein.
-
Ein
weiterer Teil dieser Erfindung betrifft die Erzeugung von Befehlen
und zugehörigen
Betriebsarten, für
die eine Beendung innerhalb der integrierten Schaltung selbst ablaufsteuernd
ist. Alternativ kann für
irgendwelche der in dieser Erfindung beschriebenen neuen Befehle
die Befehlsausführung
dazu ausgelegt sein, erst zu beginnen oder zu enden, nachdem der
Befehl auf den neuen Befehl aktualisiert ist und die Zustandsmaschine
in einen gewissen anderen vordefinierten Zustand oder Satz von Zuständen übergegangen
ist. (Der Zustand oder Satz von Zuständen kann zumindest teilweise
durch elektrisch konfigurierte Daten innerhalb des Bauelements und/oder
durch die Signalpegel an externen Bauelementanschlussstiften festgelegt
werden.) Ferner kann die Befehlsausführung dazu ausgelegt sein,
an einer Zustandmaschinen-Taktflanke, die keinen Zustandsübergang
erzeugt, zu beginnen oder zu enden.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine Draufsicht auf einen integrierten Schaltungschip, der Boundary-Scan-Testschaltungen gemäß dem Boundary-Scan-Standard
des Standes der Technik zum Testen des Chips verwendet.
-
2 ist
ein TAP-Steuereinheits-Zustandsdiagramm für eine Befehlsablaufsteuerung
des Standes der Technik für
die vorliegende Erfindung.
-
3 ist
ein Blockdiagramm des Testzugriffsanschlusses (TAP) und der Registerkonfiguration
eines in der vorliegenden Erfindung zu verwendenden Boundary-Scan-Systems des Standes
der Technik.
-
4 ist
ein Ablaufdiagramm einer IDCODE – SAMPLE/PRELORD-Befehlssequenz,
die im Stand der Technik bekannt ist.
-
5 ist
ein Ablaufdiagramm einer STARTOP – STOPOP-Befehlssequenz der vorliegenden Erfindung.
-
6 ist
ein Ablaufdiagramm einer alternativen STARTOP – STOPOP-Befehlssequenz, Testdatenregister-Abtastung
während
STARTOP gemäß der vorliegenden
Erfindung.
-
7 ist
ein Ablaufdiagramm einer alternativen STARTOP – STOPOP-Befehlssequenz, Testdatenregister-Abtastung
während
STOPOP gemäß der vorliegenden
Erfindung.
-
8 ist
ein Ablaufdiagramm einer SELFTIMEDOP-Befehlssequenz gemäß der vorliegenden Erfindung.
-
9 ist
ein Ablaufdiagramm einer Befehlssequenz, bei der der STARTOP-Befehl
im TESTLAUF-LEERLAUF-Zustand (RUN-TEST-IDLE-Zustand) beendet wird, gemäß der vorliegenden
Erfindung.
-
10 ist
ein Ablaufdiagramm einer STARTOP-MODOP-Befehlssequenz gemäß der vorliegenden Erfindung.
-
BESTE ART
ZUR AUSFÜHRUNG
DER ERFINDUNG
-
Mit
Bezug auf 1 ist zu sehen, dass ein integrierter
Schaltungschip 11 eine Vielzahl von funktionalen Anschlussstiften 13 aufweist,
die sich von beiden Seiten des Chips erstrecken. Diese Anschlussstifte
werden verwendet, um alle Funktionen des Chips auszuführen, einschließlich der
Bereitstellung von Versorgungsfunktionen, wie z.B. Leistungsversorgungsfunktionen
und Erdung. Von den Anschlussstiften einwärts liegen Boundary-Register-Zellen 15,
die durch quadratische Rechteckblöcke, die mit dem Buchstaben
x gefüllt
sind, angegeben sind. Diese Zellen können entweder als Eingangs-
oder Ausgangs-Boundary-Register-Zellen
dienen. Jede Zelle ist eine einzelne Schieberegisterstufe, die mit
einer benachbarten Zelle verbunden ist. Auf diese Weise ist jede
Zelle mit anderen Zellen verbunden, was ein Boundary-Scan-Register
bildet, das in 3 gezeigt ist. Wenn das Boundary-Scan-Register
als serieller Weg zwischen den TDI- und TDO-Anschlussstiften angesteuert wird, können Boundary-Zellen-Eingangssignale und
-Ausgangssignale, d.h. Chipeingangssignale und -ausgangssignale,
wahrgenommen werden.
-
Wenn
man zu 1 zurückkehrt,
so stellt eine Testzugriffsanschluss- (TAP) Steuereinheit 17 das
Herz eines Boundary-Scan-Systems dar. Die TAP-Steuereinheit umfasst
eine Zustandsmaschine, die am TCK-Anschlussstift 19 getaktet
wird. Der IEEE-Standard 1149.1 gibt an, dass es 16 Zustände in der
Zustandsmaschine der TAP-Steuereinheit geben soll, die wie im Ablaufdiagramm
von 2 gezeigt arbeiten. Jeder Zustand ist in einem
Block gezeigt, wobei eine 0 oder 1 das Signal am TMS-Anschlussstift 21 der
TAP-Steuereinheit 17 angibt.
TMS ist ein Akronym für
Testbetriebsartauswahl.
-
In 2 ist
die Spalte von Blöcken 25 eine
Datenspalte, während
die Spalte von Blöcken 27 eine
Befehlsspalte ist. Die Datenspalte bezieht sich auf eine Folge von
Schritten für
Datenregister, die mit DR bezeichnet sind, während sich die Befehlsspaltenbezeichnungen
auf eine Folge von Schritten für
ein Befehlsregister IR beziehen. Wenn man zu 1 zurückkehrt,
ist das Befehlsregister 23 als unmittelbar mit der TAP-Steuereinheit 17 verbunden
gezeigt, während
die Datenregister 25 als von der TAP-Steuereinheit entfernt
zu sehen sind. Das Befehlsregister IR und die Datenregister DR werden
mit Bezug auf 3 genauer erörtert.
-
Wenn
man zu 2 zurückkehrt,
ist der obere linke Block 31 ein Initialisierungszustand,
bei dem ein Eingangssignal vom TMS-Anschlussstift 21 in 1 empfangen
wird. In einer Betriebsart wird die ganze Testlogik in den Registern 25 von 1 deaktiviert.
In einer anderen Betriebsart wird der Block 33 Testlauf/Leerlauf (RUN-TEST/IDLE)
aktiviert. Wenn die Steuereinheit über den TMS-Anschlussstift ausgelöst wird,
schreitet sie zum Zustand Datenregister-Auswahl-Scan (SELECT-DR-SCAN),
der durch den Block 35 angegeben ist. Der Block 35 löst einen
Eintritt in die Datenspalte 25 oder alternativ in die Befehlsspalte 27 aus.
Beim Eintritt in die Datenspalte implementiert die Steuereinheit
den Zustand Datenregister-Erfassung (CAPTURE-DR), der durch den Block 37 angegeben
ist, welcher eine Sequenz für
Testdatenregister ist. Mit einem alternativen Ansteuersignal kann
der Block 35 Datenregister-Auswahl-Abtastung eine Tätigkeit durch die Befehlsspalte 37 auslösen, in
welcher sich ein Block 55 Befehlsregister-Auswahl-Scan (SELECT-IR-SCAN)
befindet, der sich in den Block 57 des Zustands Befehlsregister-Erfassung
(CAPTURE-IR) begibt,
in dem sich eine Abtastsequenz für
das Befehlsregister befinden kann. Mit einem anderen TMS-Signal
kann die Steuereinheit andererseits in einer Schleife zum Zustand
Testlogik-Rücksetzung
(TEST-LOGIC-RESET), der vom Block 31 angegeben wird, mittels
eines entlang der Leitung 56 übertragenen Signals zurückkehren.
Der Zustand Befehlsregister-Erfassung erfordert, dass das Befehlsregister 23 von 1 ein
Muster von Logikwerten für
Testzwecke lädt.
Der Austritt aus dem Block 57 Befehlsregister-Erfassung
geschieht entweder zum Block 59 Befehlsregister-Verschiebung (SHIFT-IR)
oder zum Block 61 Befehlsregister-Austritt 1 (EXIT1-IR),
in dem sich eine weitere Verzweigung zum Block 63 Befehlsregister-Pause
(PAUSE-IR) oder in einer weiteren Betriebsart zum Block 65 Befehlsregister-Aktualisierung
(UPDATE-IR) befindet. Andererseits kann der Block 63 Befehlsregister-Pause
zum Block 67 Befehlsregister-Austritt 2 (EXIT2-IR)
führen,
der zum Block 65 Befehlsregister-Aktualisierung in einer
Schleife zurückkehrt
oder weitergeht.
-
Wenn
man zu 2 zurückkehrt,
belegt der Block 37 Datenregister-Erfassung ein vom aktuellen
Befehl im Befehlsregister ausgewähltes
Testdatenregister. Dies führt
entweder zum Block 39 Datenregister-Austritt 1 (EXIT1-DR)
oder direkt zum Block 41 Datenregister-Verschiebung (SHIFT-DR), wobei ein Schleifendurchlauf
für eine
vorgegebene Anzahl von Zyklen stattfinden kann. Der Block 39 Datenregister-Austritt 1 führt entweder
zum Block 43 Datenregister-Pause (PAUSE-DR), in dem ein
Schleifendurchlauf für
eine vorbestimmte Anzahl von Taktzyklen stattfinden kann, oder zum
Block 45 Datenregister-Aktualisierung (UPDATE-DR). Wenn
der Zyklusdurchlauf durch den Zustand 43 Datenregister-Pause
beendet ist, wird in den Zustand 47 Datenregister-Austritt 2 (EXIT2-DR)
eingetreten, wobei der Pausenzustand beendet wird. Vom Zustand 47 Datenregister-Austritt 2 tritt
die Steuereinheit in den Zustand 45 Datenregister-Aktualisierung oder
den Zustand 41 Datenregister-Verschiebung ein. Der Block Datenregister-Aktualisierung
ermöglicht,
dass Daten an den Ausgängen
der Testdatenregister zwischengespeichert werden. Das Register Datenregister-Aktualisierung sieht
einen zwischengespeicherten parallelen Ausgang der Testdatenregister
vor, die Daten normalerweise seriell verschieben. Der Austritt aus
diesem Zustand führt
zum Zustand 35 Testlauf/Leerlauf oder zum Zustand 35 Datenregister-Auswahl-Abtastung
zurück.
Die vorliegende Erfindung arbeitet innerhalb des Rahmens der in 2 gezeigten
Zustandsübergänge.
-
Mit
Bezug auf 3 ist gezeigt, dass die TAP-Steuereinheit 17 zweckorientierte
Eingangsanschlussstifte aufweist, einschließlich des Betriebsartauswahl-TMS-Anschlussstifts 21,
des Testtakt-Anschlussstifts 19 und des Rücksetz-Anschlussstifts 20.
Die TAP-Steuereinheit 17 steht mit dem Befehlsregister 23 in
Verbindung, das die mit Bezug auf 2 erörterten
Zustände
ausführt.
Das Befehlsregister 23 steht mit einem Befehlsdecodierer 24 in
Verbindung, der Betriebsartauswahl-Ausgangssignale auf Leitungen 103 liefert,
die mit den verschiedenen Registern in Verbindung stehen. Man beachte,
dass das Befehlsregister 23 zwischen dem Testdaten-Eingangsanschlussstift
(TDI) 16 und dem Testdaten-Ausgangsanschlussstift (TDO) 18 liegt.
Eine Anzahl von Testdatenregistern 61 sind parallel zwischen
dem TDI-Anschlussstift 16 und dem TDO-Anschlussstift 18 angeordnet.
Diese umfassen das Überbrückungsregister 52 und
das Boundary-Scan-Register 54. Es wird daran erinnert,
dass das Boundary-Scan-Register die in 1 gezeigten
Boundary-Scan-Zellen 15 enthält.
-
Das
hervorstechende Merkmal der vorliegenden Erfindung ist die Ausführung von
zusätzlichen
Befehlen zum Ergänzen
des Standardsatzes von JTAG-Befehlen, die den Zustand einer chipinternen
Systemlogik (OCSL) von integrierten Schaltungen ändern können. Eine Beispielbefehlsliste
eines Teils dieser Erfindung ist als Tabelle C angegeben.
-
-
In
Tabelle C beginnt der Befehl STARTOP eine spezielle interne Bauelementfunktion
(oder einen Satz von Funktionen). Diese Bauelementfunktion umfasst
eine gewisse Modifikation des Betriebs der OCSL, welche sie von
einem ersten Zustand in einen zweiten Zustand ändert. Der Befehl STOPOP beendet
die Funktion, wobei er die OCSL in den ersten Zustand zurückbringt.
Die zweite Zustand kann aus einem gewissen Satz von normalen OCSL-Betriebszuständen bestehen,
oder er kann eine Testbetriebsart oder irgendein anderer OCSL-Betriebszustand
sein, der nicht als Teil der normalen Funktion betrachtet wird.
Diese Funktion kann beispielsweise eine Testbetriebsart, eine Zuverlässigkeitsbelastungsbetriebsart,
eine Funktionstoleranzmessung, eine Geschwindigkeitsleistungs-Bewertungsbetriebsart
oder eine OCSL-Programmierbetriebsart sein.
-
Durch
Aufnehmen des STOPOP-Befehls ermöglicht
diese Erfindung ein neues alternatives Verfahren zum Beenden der
STARTOP-Funktion. Bei Abwesenheit des STOPOP-Befehls lehrt der Stand
der Technik, dass eine Funktion durch eine von drei Optionen beendet
werden kann: (1) Setzen der TAP-Steuereinheit
in den Testlogik-Rücksetzungs-Zustand
durch irgendeines der vorstehend angegebenen vier Verfahren, (2) Durchgang
der TAP-Steuereinheit durch die Befehlsregister-Verschiebungs- und Befehlsregister-Aktualisierungs-Zustände, um
einen normierten JTAG-Befehl auszuwählen, oder (3), wenn die Funktion
auf dieselbe Weise wie der normierte RUNBIST-Befehl arbeitet, die
Ausführung
endet, sobald die TAP-Steuereinheit den Testlauf-Leerlauf-Zustand
verlässt.
-
Das
Hinzufügen
des STOPOP-Befehls ermöglicht,
dass die IC in den vorstehend beschriebenen ersten Zustand zurückkehrt.
Der erste Zustand kann derart sein, dass es nicht möglich wäre, den
Zustand durch Starten des Testlogik-Rücksetzungs-Zustands zu erreichen. Register, die
normalerweise vom chipinternen Speicher im Testlogik-Rücksetzungs-Zustand
zurückgesetzt
oder geladen werden würden,
können
beispielsweise durch die Verwendung der STOPOP-Operation ihren vorliegenden
Wert beibehalten. Es kann auch der Fall sein, dass die Durchführung der
STOPOP-Operation unter einigen Umständen das IC in denselben Zustand
wie das Durchführen
einer Rücksetzung
zurückbringen
kann, aber es kann den Vorteil haben, dass der Rücksetzzustand schneller erreicht
wird, wodurch Betriebszeit und -aufwand gespart wird. Das STOPOP
kann auch verwendet werden, wenn Daten in ein anderes Testdatenregister
als jene eingegeben werden, auf die durch die normierten Befehle
zugegriffen wird. Die vorstehend angegebene zweite Option zum Beenden
einer Funktion wäre
in diesem Fall verboten. Schließlich
gilt die dritte Option zum Beenden einer Funktion nur, wenn die
STARTOP-Ausführung
stattfindet, während
sich die TAP-Steuereinheit
im Testlauf-Leerlauf-Zustand befindet, eine Einschränkung, die
nicht notwendigerweise dem STARTOP-Befehl auferlegt wird, wenn der STOPOP-Befehl
verwendet wird, um die Funktion zu beenden.
-
Ein
weiterer Vorteil für
die Verwendung eines STOPOP-Befehls
besteht darin, dass er ermöglicht,
dass das externe Testsystem die Dauer der STARTOP-Befehlsausführung unabhängig von
der speziellen Anzahl von Taktzyklen, die an das Bauelement angelegt
werden, oder vom TAP-Steuereinheitszustand
steuert. Im Gegensatz dazu endet ein RUNBIST-Befehl, sobald die
TAP-Steuereinheit den Testlauf-Leerlauf-Zustand
verlässt.
Die Verwendung des STOPOP-Befehls,
um die STARTOP-Ausführung
zu beenden, beseitigt diese Einschränkung. Dies ermöglicht beispielsweise,
dass das Bauelement zu den Datenregister-Aktualisierungs- und Datenregister-Verschiebungs-Zuständen übergeht
und den Inhalt des Testdatenregisters untersucht, während der
STARTOP-Befehl immer noch ausgeführt
wird. Dieses Merkmal kann verwendet werden, um den Fortschritt der
STRRTOP-Operation
zu überwachen,
während
sie immer noch ausgeführt
wird. Dieses Merkmal ermöglicht
auch, dass andere Bauelemente in einer üblichen JTAG-Kette frei die
TAP-Steuereinheit
durchlaufen, während
ein oder mehrere Bauelemente den STARTOP-Befehl ausführen. Dies
ist mit einem RUNBIST-Befehl nicht möglich, da die RUNBIST-Ausführung enden
muss, sobald sich die TAP-Steuereinheit des Bauelements nicht im
Testlauf-Leerlauf-Zustand befindet, und da alle ICs in einer einzelnen
JTAG-Kette (mit gemeinsamen TCK- und TMS-Signalen und einem in Kaskade geschalteten
seriellen TDI/TDO-Datenweg) sich immer im gleichen TAP-Steuereinheitszustand
befinden.
-
Die 5, 6 und 7 zeigen
Abtastoperationssequenzen zur Verwendung der STARTOP- und STOPOP-Befehle.
Die TAP-Steuereinheit
arbeitet auf dieselbe Weise, wie für 2 beschrieben.
In 5 wird der STOPOP-Befehl 89 in das Befehlsregister
geladen und unmittelbar nach dem STARTOP-Befehl 80 ausgeführt. In 6 wird
ein Testdatenregister in Schritt 610 (Datenregister-Erfassung)
abgetastet und werden in Schritt 611 (Datenregister-Verschiebung)
die Daten herausgeschoben, während
der STARTOP-Befehl 80 ausgeführt wird. Dies ermöglicht die
Untersuchung des Testdatenregister-Inhalts während der STARTOP-Ausführung, möglicherweise
als Überwachungseinrichtung
der Bauelementfunktionsoperation, der Zuverlässigkeit, der Funktionstoleranz
oder der Bauelementgeschwindigkeitsleistung.
-
In 7 wird
ein Testdatenregister in Schritt 715 (Datenregister-Erfassung)
abgetastet und werden in Schritt 716 (Datenregister-Verschiebung)
die Daten während
der Ausführung
des STOPOP-Befehls 89 herausgeschoben. Dies würde beispielsweise
die Untersuchung der Endergebnisse der STARTOP-Operation ermöglichen.
Während
der STOPOP-Ausführung kann
die OCSL-Operation immer noch von einer normalen Operation infolge
der STARTOP-, STOPOP-Ausführungssequenz
geändert
werden.
-
Ein
weiterer Befehl, der als Teil der vorliegenden Erfindung implementiert
wird, ist in 10 gezeigt. In 10 ist
der STOPOP-Befehl von 5 gegen einen MODOP-Befehl 83 ausgetauscht.
Wenn der MODOP-Befehl 83 nach dem STARTOP-Befehl 80 ausgeführt wird,
modifiziert er die Funktionalität
der OCSL, bringt jedoch die OCSL nicht in ihren Zustand vor der
STARTOP-Befehlsausführung
zurück.
Dies ermöglicht, dass
das Bauelement zwischen verschiedenen Zuständen wechselt: dem Zustand
vor dem STARTOP-Befehl, dem Zustand während der STARTOP-Ausführung und
dem Zustand während
der MODOP-Ausführung.
Für zusätzliche
Flexibilität
können
sowohl der MODOP- als auch der STOPOP-Befehl innerhalb eines einzelnen Bauelementbefehlssatzes
enthalten sein. In diesem Fall kann dem STARTOP-Befehl immer noch
der MODOP-Befehl folgen und dann könnte die OCSL durch die anschließende Ausführung des
STOPOP-Befehls veranlasst werden, zum Vor-STARTOP-Zustand zurückzukehren.
Das Hinzufügen
dieser untereinander abhängigen
Befehle muss die Struktur der JTAG-Testlogikschaltung nicht ändern. Änderungen
müssen
nur beim Hinzufügen
von neuen Operationsbefehlen und einer neuen oder modifizierten
OCSL-Steuerung (und
möglicherweise
einer modifizierten Boundary-Scan-Register-
und/oder Testdatenregister-Steuerung) für den Befehlsregisterdecodierer
ersichtlich sein.
-
Ein
weiteres Ausführungsbeispiel
der vorliegenden Erfindung ist die Erzeugung von Befehlen und zugehörigen Betriebsarten,
für die
die Beendung innerhalb der integrierten Schaltung selbst ablaufsteuernd
ist. Ein minimaler Befehlssatz für
dies wäre
ein einzelner Befehl, beispielsweise ein SELFTIMEDOP genannter Befehl. 8 zeigt
eine Befehlssequenz unter Verwendung des SELFTIMEDOP-Befehls. Die Ausführung dieses Befehls
beginnt, wenn das Befehlsregister auf den SELFTIMEDOP-Befehl 82 aktualisiert
wird. Die Beendung der Befehlsausführung geschieht automatisch,
nachdem ein Zeitraum abläuft,
wobei der Zeitraum durch die IC festgelegt wird. Die Beendung der
SELFTIMEDOP-Befehlsausführung
kann auch dazu ausgelegt sein, dass sie dazu führt, dass der OCSL-Zustand
von jenem Zustand verschieden ist, der vor der SELFTIMEDOP-Ausführung existierte.
-
Für irgendeinen
der in dieser Erfindung beschriebenen neuen Befehle kann die Befehlsausführung alternativ
dazu ausgelegt sein, erst dann zu beginnen, nachdem der Befehl auf
den neuen Befehl aktualisiert ist und die Zustandsmaschine in irgendeinen
anderen vordefinierten Zustand oder Satz von Zuständen übergegangen
ist; beispielsweise den Testlauf-Leerlauf-Zustand. Ferner kann die
Befehlsausführung
dazu ausgelegt sein, erst dann zu beginnen, nachdem der Befehl aktualisiert
ist und die Zustandsmaschine in irgendeinen anderen Zustand oder
Satz von Zuständen übergegangen
ist, der zumindest teilweise durch elektrisch konfigurierte Daten
innerhalb des Bauelements und/oder durch die Signalpegel an externen
Bauelementanschlussstiften festgelegt ist. Ferner kann die Befehlsausführung an
einer Zustandsmaschinen-Taktflanke beginnen, die keinen Zustandsübergang
erzeugt. Wenn Zustandsübergänge beispielsweise
an der steigenden Zustandstaktflanke auftreten, könnte die
Befehlsausführung
an der fallenden Taktflanke innerhalb irgendeines Zustandes beginnen.
-
Ein
weiterer Teil dieser Erfindung betrifft Befehle, für die die
Ausführung
nach dem Eintritt in einen vordefinierten Zustandsmaschinenzustand
oder Satz von Zuständen
endet, ohne den Befehlsregisterinhalt zu ändern. 9 zeigt
ein Ablaufdiagramm für
ein Beispiel, bei dem die Ausführung
des STRRTOP-Befehls 80 dazu ausgelegt sein kann, zu enden,
sobald die Zustandsmaschine in den Testlauf-Leerlauf-Zustand 84 eintritt.
Ferner kann die Befehlsausführung
dazu ausgelegt sein, erst dann zu enden, nachdem die Zustandsmaschine
in irgendeinen anderen Zustand oder Satz von Zuständen übergegangen
ist, der zumindest teilweise durch elektrisch konfigurierte Daten
innerhalb des Bauelements und/oder durch die Signalpegel an externen
Bauelementanschlussstiften festgelegt ist.
-
Alternativ
könnte
die Ausführung
an einer Zustandsmaschinen-Taktflanke stoppen, die keinen Zustandsübergang
erzeugt. Wenn beispielsweise Zustandsübergänge an der steigenden Zustandstaktflanke auftreten,
könnte
die Befehlsausführung
dazu ausgelegt sein, an der fallenden Taktflanke mit einem vorbestimmten
Zustand oder Satz von Zuständen
oder durch irgendeinen anderen Zustand oder Satz von Zuständen zu enden,
der zumindest teilweise durch elektrisch konfigurierte Daten innerhalb
des Bauelements und/oder durch die Signalpegel an externen Bauelementanschlussstiften
festgelegt ist. Ein minimaler Befehlssatz für ein solches Bauelement wäre ein einzelner
Befehl.