-
Diese
Erfindung bezieht sich auf eine integrierte Schaltung.
-
In
diesem Dokument bezieht sich der Ausdruck "Hardwaretesten" auf einen strukturellen oder Herstellungstest,
d.h. der Vorgang, bei welchem die korrekte Herstellung des Siliciums
oder der Hardware festgestellt wird. "Softwaretesten" bezieht sich auf das Überwachen
oder Debuggen, d.h. den Vorgang, bei welchem bei Korrektheit der
Software oder der Interaktion zwischen Software und Hardware festgestellt
wird. Der Ausdruck "testen" kann sich entweder
auf jeweils einen oder beide dieser Tests beziehen.
-
Testanschluss
(TAP, engl.: Test Access Port)-Steuerungen sind im Stand der Technik
wohlbekannt. Die Buchstaben TAP-Steuerungen
werden dafür
verwendet, eine Kommunikation von Testdaten auf (bzw. on-Chip) und
entfernt (bzw. off-Chip) von einem Chip über einen als JTAG (Joint Test
Action Group)-Anschluss (engl.:
Port) zu bewirken. Die Funktionen bekannter TAP-Steuerungen werden
durch den IEEE-Standard 1149.1-1990 definiert. Dieser Standard definiert
eine Testlogik, die in einem integrierten Schaltkreis eingeschlossen
werden kann, um einen standardisierten Ansatz zum Testen der Verbindungen
zwischen integrierten Schaltungen, Testen der integrierten Schaltung
selbst und Beobachten und Verändern
von Schaltkreisaktivitäten
während
des "normalen" oder "Benutzermodus"-Betriebs der integrierten
Schaltungen bereitzustellen.
-
Gemäß dem IEEE-Standard
ist die TAP-Steuerung in der Lage, eine Reihe von verschiedenen
Testmoden auszuführen.
Bei jedem dieser Testmoden werden Testdaten der integrierten Schaltung über einen
Eingangs-PIN der TAP-Steuerung zugeführt und resultierende Daten,
die dem Test folgen, werden von dem Chip über einen Ausgangs-PIN der
TAP-Steuerung geführt.
Testdaten können
auch über
mehrere PINs des Chips eingegeben und ausgegeben werden, wobei diese
nicht durch die TAP-Steuerung laufen, entsprechend dem gewählten Testmodus.
Die resultierenden Daten hängen
von den Testdaten ab und werden mit erwarteten Daten verglichen,
um die Gültigkeit
des Tests zu überprüfen. Die
Eingangs- und Ausgangs-PINs werden entsprechend als TDI (Testdateneingang,
engl.: Test Data Input) und TDO (Testdatenausgang, engl.: Test Data
Output) bezeichnet. Viele existierende integrierte Schaltungen enthalten
bereits eine TAP-Steuerung dieser Art mit den Eingangs- und Ausgangs-PINs
(TDI und TDO).
-
Der
IEEE-Standard definiert auch ein Testtaktsignal (TCK) und ein Testmodusauswahlsignal
TMS, die Eingaben an die TAP-Steuerung
sind. Optional kann auch zur Verwendung zum Neustarten der Vorrichtung ein
Test-Neustarteingangssignal notTRST (in manchen Schriften auch als
TRST* bezeichnet) definiert werden.
-
Unsere
frühere
Patentanmeldung
EP-A-0
840 217 beschreibt ein System, das diese PINs und die TAP-Steuerung
verwendet, um die Kommunikationsfähigkeiten der integrierten
Schaltung ohne Multiplexen der PINs zu vergrößern und dadurch den Standard
zu verletzen.
-
In
der Vergangenheit wurden Prozessoren (CPU) so hergestellt, dass
ein einzelner Prozessor in einer integrierten Schaltung aufgenommen
wird, wodurch ein von dem Chip entfernter Zugriff auf alle seine
Hilfsschaltkreise, wie beispielsweise Speicher, notwendig wird.
Als Ergebnis hat die integrierte Schaltung mehrere Eingangs-PINs,
so dass Information über
die CPU, insbesondere Speicheradressinformation, von außen über diese
Zugangs-PINs extern verfügbar
war.
-
Zusätzlich zur
Speicheradressinformation ist es nützlich, in der Lage zu sein,
Statusinformation über den
internen Zustand des Prozessors zu erhalten, zum Beispiel solche
Ereignisse wie Interrupts, Veränderungen
in Befehlsströmen,
Setzen von Flags in verschiedenen Statusregistern der CPU, usw.
-
Heutzutage
sind Chips komplexer und enthalten nicht nur einen Prozessor auf
dem Chip, sondern auch seinen zugehörigen Speicher und andere Hilfsschaltkreise.
Oftmals ist mehr als ein Prozessor auf einem Chip und diese Prozessoren
können
interagieren. Daher ist es nicht mehr eine einfache Aufgabe, den
Betrieb des Prozessors zu überwachen,
da die Signale, die normalerweise entfernt vom Chip verfügbar sind,
nicht mehr einen direkten Hinweis auf den internen Betrieb der CPU
bereitstellen.
-
Mit
der vergrößerten Komplexität von Software,
die konstruiert ist, auf CPUs von integrierten Schaltungen zu laufen,
wird es immer wichtiger, die Software entsprechend zu testen. Dies
benötigt
Techniken zur Überwachung
des Betriebes der CPU, während
sie die Software ausführt.
Es ist eine besonders lästige
Anforderung, die Software ohne einzugreifen zu überwachen, während sie
in Echtzeit läuft.
Es gibt eine Anforderung für
ein System dieses zu erreichen, wenn viele CPUs auf dem Chip vorhanden
sind, die getestet werden sollen. Selbst dort, wo es nicht praktisch
oder nicht möglich
ist, ein nicht-eingreifendes Überwachen
zu erreichen, besteht dennoch ein Bedarf, einen Zugriff auf den
Betrieb der Software, die auf mehreren CPUs auf dem Chip ausgeführt wird,
mit einem Minimum an Eingriff zu erhalten.
-
Eine
Möglichkeit
des Testens von mehreren CPUs auf dem Chip wäre es, einzelne TAP-Steuerungen für jede CPU
zu haben, und einen Satz externer PINs zur Kommunikation entfernt
vom Chip für
jede der TAP-Steuerungen. Allerdings ist dies nicht wünschenswert,
wegen der vergrößerten Anzahl
von benötigen PINs,
was dann nicht praktisch ist, wenn die Grenze von verfügbaren PINs
bereits erreicht wurde.
-
Unsere
vorige Patentanmeldung
EP-0-982
595 beschreibt ein alternatives Verfahren zum Testen mehrerer
CPUs auf einem Chip. Eine TAP-Steuerung auf dem Chip vermittelt
zwischen den externen PINs und einer Datenanpassungsvorrichtung.
Die Datenanpassungsvorrichtung steuert Kommunikationen zu zwei CPUs zum
Testen. Während
dieses System nützlich
beim Testen von mehreren CPUS unabhängig voneinander ist, ist dieses
System nicht besonders flexibel.
-
Der
Erfinder hat erkannt, dass ein Problem bei dem bekannten Vorschlag
zum Testen einer integrierten Schaltung, die mehr als einen Prozessor
hat, die Anforderung ist, für
jeden Prozessor eine geeignete Schnittstelle zu der Datenanpassungsvorrichtung
zu haben. Eine derartige Lösung
ist nicht verfügbar,
wo die mehreren CPUs auf dem Chip nicht von derselben Familie oder
demselben Unternehmen sind. Typischerweise weist eine CPU für eingebettete
Anwendungen eine JTAG-Schnittstelle auf, aber sie wird keine Einrichtung
für eine alternative
Schnittstelle haben.
-
US 5,627,842 beschreibt
eine Vorrichtung und ein Verfahren für hierarchisches, zentralisiertes,
grenzenabtastendes Fehlertesten von erweiterten elektronischen Schaltungen,
einschließlich
Zwischen-Bauteiltesten innerhalb eines vereinheitlichten Standardprotokolls.
Es existiert ein System mit einem Bus-Leiterplatten-Testbus und
Platinen. Jede der Platinen weist eine Slotverbindungs-TAP-Steuerung
und eine Anzahl von Chips auf, jeweils mit einer TAP-Steuerung.
Wenn das System eingeschaltet wird, werden alle TAP-Steuerungen
einschließlich
der Acht-Slotverbindungs-TAP-Steuerung und der Chip-TAP-Steuerung,
die zu den einzelnen Chips auf der Platine verknüpft sind, in einen logischen
Test-Neustartzustand
gesetzt.
-
US 5,640,521 offenbart ein
System, bei welchem eine integrierte Schaltung auf einer Platine
zum Testen in Reihe geschaltet ist, wobei jede Schaltung eine TAP-Steuerung
umfasst.
-
US 2003/009715 offenbart
eine parallele Testarchitektur, bei der ein gleichzeitiger Zugriff
auf verschiedene elektronische Schaltungen zum Testen, Debuggen
oder Einrichtung der Schaltung offenbart ist.
-
US 6,064,743 offenbart einen
Neustart-PIN, der eine Priorität über mehrere
von Testmoden hat.
-
In Übereinstimmung
mit einem Aspekt der Erfindung wird eine integrierte Schaltung (10)
bereitgestellt, die umfasst: mehrere Bereiche, wobei jeder Bereich
einen Teststeuerschaltkreis aufweist, wenigstens einen Testeingang,
der eingerichtet ist, Testsignale zu empfangen, wobei eine oder
mehrere der Teststeuerschaltkreise mehrere Testmodi aufweisen, bei
welcher in wenigstens einer der Testmodi ein oder mehrere der mehreren
Bereiche getestet werden können,
bei welcher die Schaltung einen Neustartmodus aufweist, der eine Priorität hat, die über der
des Testmodus liegt.
-
Vorzugsweise
umfasst der Neustartmodus einen Umgehungsmodus.
-
Vorzugsweise
hat der Neustartmodus die höchste
Priorität
eines jeden Modus der integrierten Schaltung.
-
Vorzugsweise
ist der Testmodus ein Strukturtestmodus.
-
Vorzugsweise
ist der Testmodus ein Abtasttestmodus.
-
Vorzugsweise
weist einer der Teststeuerschaltkreise einen Haupttestschaltkreis
auf.
-
Vorzugsweise
ist der Haupttestschaltkreis eingerichtet, wenigstens einen anderen
der mehreren Bereiche der Schaltung zu testen.
-
Vorzugsweise
ist der Haupttestschaltkreis eingerichtet, alle anderen Bereiche
der Schaltung zu testen.
-
Vorzugsweise
weist der Haupttestschaltkreis eine TAP-Steuerung auf.
-
Vorzugsweise
weist der Teststeuerschaltkreis einen TAP-Multiplexer auf, um Eingabe- und/oder
Ausgabetestdaten zu/von mehreren Testschaltkreisen zu multiplexen.
-
Vorzugsweise
umfasst der TAP-Multiplexer ein Umgehungsschaltnetz und ein Schaltwerk.
-
Vorzugsweise
wird das Schaltwerk in einem Umgehungsmodus umgangen.
-
Vorzugsweise
wird das Schaltwerk über
den Haupttestschaltkreis getestet.
-
Vorzugsweise
hat der Testmodus Vorrang vor einem Multiplexermodus.
-
Für ein besseres
Verständnis
der vorliegenden Erfindung und um zu zeigen, wie selbige verwirklicht werden
kann, wird nun auf die beigefügten
Zeichnungen Bezug genommen, in welchen:
-
1 schematisch
eine Testumgebung zum Testen von Vorrichtungen auf einer integrierten
Schaltungsplatine in Übereinstimmung
mit einem ersten Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
2 schematisch
den Schaltkreis veranschaulicht, der den Multiplexerblock von 1 umfasst;
-
3 die
Zustände
und die möglichen
Zustandsübergänge für ein Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
4 eine
Tabelle mit TAP-Signalen und deren Signifikanz für die Zustände und Zustandsübergänge, wie
in 3 gezeigt, zeigt;
-
5 schematisch
einen Überabtastschaltkreis
veranschaulicht, der in einem Ausführungsbeispiel der vorliegenden
Erfindung aufgenommen ist.
-
In Übereinstimmung
mit einem anderen Aspekt der Erfindung, wird eine integrierte Schaltung
bereitgestellt, die umfasst: mehrere Bereiche, wobei jeder Bereich
einen Teststeuerschaltkreis aufweist; wenigstens einen Ausgang,
der eingerichtet ist, Testsignale von einem der mehreren Bereiche
auszugeben; und einen Multiplexer zwischen dem wenigstens einen
Testausgang und dem Teststeuerschaltkreis, wobei der Multiplexer
wenigstens einen Steuereingang hat, wodurch der Multiplexer steuerbar
ist, um Testsignale von einem der mehreren Bereiche zu dem wenigstens
einen Testausgang zu leiten.
-
Vorzugsweise
wird ein Überabtastmittel
bereitgestellt, um Testdaten überabzutasten,
die über
den einen Testausgang empfangen wurden, und zur Steuerung des Eingangstaktens
der empfangenen Daten in Abhängigkeit
der Überabtastung.
-
In Übereinstimmung
mit einem anderen Aspekt der Erfindung wird eine integrierte Schaltung
bereitgestellt, die umfasst: wenigstens einen Testeingang zum Empfangen
von Testdaten; einen Teststeuerschaltkreis zwischen dem wenigstens
einen Testeingang und dem zu testenden Schaltkreis; wobei die Testdaten
eingangsgetaktet werden auf einer steigenden Taktflanke und einer
fallenden Taktflanke.
-
In Übereinstimmung
mit einem weiteren Aspekt der vorliegenden Erfindung wird eine integrierte
Schaltung bereitgestellt, die umfasst: wenigstens einen Testausgang
zum Ausgeben von Testdaten; einen Teststeuerschaltkreis zwischen
dem wenigstens einen Testausgang und dem zu testenden Schaltkreis;
wobei die Testdaten ausgetaktet werden auf einer steigenden Taktflanke
und einer fallenden Taktflanke.
-
Vorzugsweise
werden mehrere Teststeuerschaltkreise und mehrere zu testende Schaltkreise
bereitgestellt, wobei die Testdaten die auf der steigenden Taktflanke
ein- bzw. ausgetaktet werden zu bzw. von einem ersten der Teststeuerschaltkreise
geleitet werden und Testdaten, die an dem fallenden Taktflankenschaltkreis ein-
bzw. ausgetaktet werden, werden zu bzw. von einem zweiten Teststeuerschaltkreis
geleitet.
-
Vorzugsweise
umfasst die integrierte Schaltung einen Schaltkreis zum Trennen
von Testdaten, die auf der steigenden Flanke des Taktsignals eingetaktet
wurden und Testdaten, die auf der fallenden Flanke des Taktsignals
eingetaktet wurden.
-
Vorzugsweise
weist der Trennungsschaltkreis mehrere Flip-Flops auf, wobei einer von diesen durch ein
Taktsignal getaktet wird und der andere von diesen durch ein Inverses
des Taktsignals gesteuert wird.
-
Vorzugsweise
werden die Daten durch Überabtastung
genommen.
-
In Übereinstimmung
mit einem weiteren Aspekt der Erfindung, wird eine integrierte Schaltung
bereitgestellt, die umfasst: mehrere Bereiche, wobei jeder Bereich
einen Teststeuerschaltkreis aufweist; wenigstens einen Testeingang,
der eingerichtet ist, Testdaten zu empfangen; wobei die Testdaten
in mehreren Zeitschlitzen eingetaktet werden, wobei die Testdaten
für verschiedene
der mehreren Bereiche verschiedenen Zeitschlitzen zugewiesen sind.
-
Vorzugsweise
entspricht jeder Zeitschlitz einem Taktzyklus.
-
Vorzugsweise
ist jeder Zeitschlitz in zwei Halbschlitze geteilt.
-
Vorzugsweise
ist jeder Halbschlitz eines Zeitschlitzes einem unterschiedlichen
der mehreren Bereiche zugeordnet.
-
Vorzugsweise
werden Frames bereitgestellt, wobei jeder n Zeitschlitze enthält.
-
Vorzugsweise
ist n gleich 8.
-
Vorzugsweise
werden die Schlitze in einem Frame vorgegebenen der mehreren Bereiche
des Schaltkreises zugewiesen und diese Zuweisung wird für mehrere
der Frames verwendet.
-
Vorzugsweise
werden die Slots dynamisch zugewiesen.
-
Vorzugsweise
ist ein Bereich des Schaltkreises einer Hälfte der verfügbaren Slots
zugewiesen.
-
Vorzugsweise
ist einer der Bereiche des Schaltkreises einem Viertel der verfügbaren Schlitze
zugewiesen.
-
Vorzugsweise
ist ein gegebener Zeitschlitz einem gegebenen Zeitkanal zugewiesen,
bis die Information Token empfangen wird, um den Zeitschlitz einem
anderen Kanal zuzuweisen.
-
Vorzugsweise
ist die Datenmenge pro Kanal gleich wenigstens einem Schlitz.
-
In Übereinstimmung
mit einem anderen Aspekt der Erfindung wird eine integrierte Schaltung
bereitgestellt, die umfasst: mehrere Bereiche, wobei jeder Bereich
einen Teststeuerschaltkreis aufweist; und mehrere Testeingänge, die
eingerichtet sind, Testdaten zu empfangen, wobei in einem Testmodus
Daten unter Verwendung von Token übertragen werden, wobei jeder
Token m Bits aufweist, m/2 Bits werden über eine steigende Flanke eines
Taktsignals übertragen
und m/2 Bits werden über
eine fallende Flanke eines Taktsignals übertragen, so dass ein Token
in einem Taktzyklus übertragen
wird.
-
Vorzugsweise
ist die Tokeneingabe kodiert.
-
Vorzugsweise
ist die Dekodierung der Eingabe davon abhängig, ob ein Schlitz einem
Kanal zugewiesen wurde oder nicht.
-
Vorzugsweise
wird, wenn der Kanal nicht einem gegebenen Schlitz zugewiesen ist,
eine vorgegebene Kombination von Eingaben den gegebenen Schlitz
einem Kanal mit dem Token zuweisen.
-
Vorzugsweise
wird, wenn der Kanal zugewiesen ist, der Token eines der folgenden
bereitstellen: Daten für
den zugewiesenen Kanal; Freigeben des Schlitzes; Bereitstellen eines
ungenutzten Schlitzes; Bereitstellen eines Neustarts.
-
Vorzugsweise
wird ein Neustartmodus ausgelöst,
wenn ein Token eine vorgegebene Eingabe bereitstellt.
-
Vorzugsweise
kann die Information, die von dem Token bereitgestellt wird, durch
eine Hälfte
des Tokens bereitgestellt werden.
-
Vorzugsweise
sind die beiden Hälften
des Tokens dieselben bei wenigstens manchen Betriebsmoden des Schaltkreises.
-
Vorzugsweise
wird der Neustartmodus bereitgestellt, wenn eine Hälfte des
Tokens vollständig
niedrige Werte hat.
-
Vorzugsweise
ist die Kodierung, die verwendet wird, wenn ein Schlitz freigegeben
wird oder zugewiesen wird, dieselbe, aber die Information, die bereitgestellt
wird, wird dadurch festgelegt, ob der Schlitz zugewiesen wurde oder
nicht.
-
In Übereinstimmung
mit einem anderen Aspekt, wird ein integrierte Schaltung bereitgestellt,
die einen ersten Modus und einen zweiten Modus für die Datenübertragung aufweist, wobei
in dem ersten Modus für
die Datenübertragung
die Zeit, die für
eine Testdateneingabe, die von einem externen Testschaltkreis empfangen werden
soll, und für
entsprechende Testdaten, die an den externen Testschaltkreis ausgegeben
werden sollen, benötigt
wird weniger ist, als eine Taktperiode des externen Testschaltkreises
und bei einem zweiten Modus der Datenübertragung die Zeit, die für eine Testdateneingabe,
die von einem externen Testschaltkreis empfangen werden soll, und
entsprechende Testdaten, die an den externen Testschaltkreis ausgegeben
werden sollen, benötigt
wird, größer ist,
als eine Taktperiode des externen Testschaltkreises, wobei die integrierte
Schaltung umfasst: einen Zielschaltkreis zum Interagieren mit der
dekodierten Testdateneingabe; und ein Kodiermittel zum Kodieren
eines Signals von dem Testschaltkreis für den externen Testschaltkreis,
wobei der Schaltkreis eingerichtet ist, sowohl im ersten als auch
im zweiten Datenübertragungsmodus
einen n-Zyklusbetrieb zu haben, in dem das Dekodiermittel das Signal
dekodiert, wobei der Zielschaltkreis mit dem Signal interagiert
und das Kodiermittel das Signal kodiert.
-
Vorzugsweise
ist n gleich 3.
-
In Übereinstimmung
mit einem anderen Aspekt der Erfindung, wird ein Testschaltkreis
zum Testen einer integrierten Schaltung bereitgestellt, wobei der
Testschaltkreis bezüglich
der integrierten Schaltung extern ist, wobei die integrierte Schaltung
einen ersten Modus und einen zweiten Modus für die Datenübertragung aufweist, wobei
bei dem ersten Übertragungsmodus
die Zeit, die für
die Testdateneingabe von dem externen Testschaltkreis für den Empfang
und die entsprechende Testdatenausgabe an den externen Testschaltkreis benötigt wird,
kleiner ist als eine Taktperiode des externen Testschaltkreises
und bei einem zweiten Datenübertragungsmodus
die Zeit, die für
den Empfang einer Testdateneingabe von einem externen Testschaltkreis und
für eine
entsprechende Testdatenausgabe an den externen Testschaltkreis benötigt wird,
größer ist
als eine Taktperiode des externen Testschaltkreises, wobei der Testschaltkreis
mehrere Pufferbereiche aufweist zum Puffern von Signalen, die von
dem Testschaltkreis empfangen wurden und/oder zu dem Testschaltkreis gesendet
wurden, wobei bei dem ersten Datenübertragungsmodus die Signale,
die von dem Testschaltkreis empfangen wurden und/oder zu dem Testschaltkreis
gesendet wurden, eine kleinere Verzögerung aufweisen, die von den
Pufferbereichen bereitgestellt wird, als bei dem zweiten Datenübertragungsmodus.
-
Vorzugsweise
wird bei dem ersten Datenübertragungsmodus
wenigstens einer der Pufferbereiche umgangen.
-
Es
sollte begrüßt werden,
dass jeder beliebige Aspekt in Verbindung mit jedem beliebigen anderen oder
mehreren der anderen Aspekte verwendet werden kann.
-
Für ein besseres
Verständnis
der vorliegenden Erfindung und um zu zeigen, wie selbige verwirklicht werden
kann, wird nun auf die beigefügten
Zeichnungen Bezug genommen, in welchen:
-
1 schematisch
eine Testumgebung zum Testen von Vorrichtungen auf einer integrierten
Schaltungsplatine in Übereinstimmung
mit einem ersten Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
2 schematisch
den Schaltkreis veranschaulicht, der den Multiplexerblock von 1 umfasst;
-
3 die
Zustände
und möglichen
Zustandsübergänge eines
Ausführungsbeispieles
der vorliegenden Erfindung veranschaulicht;
-
4 eine
Tabelle mit TAP-Signalen und deren Signifikanz für die Zustände und Zustandsübergänge, die
in 3 gezeigt sind, zeigt;
-
5 schematisch
einen Überabtastschaltkreis
veranschaulicht, der in einem Ausführungsbeispiel der vorliegenden
Erfindung aufgenommen ist;
-
6 ein
Taktdiagramm für
zwei Ausgaben der Anordnung von 5 zeigt;
-
7 ein
Taktdiagramm zeigt, das eine Doppeldatenratenübertragung veranschaulicht,
die in Ausführungsbeispielen
der vorliegenden Erfindung verwendet wird;
-
8 schematisch
eine Testumgebung zum Testen von Vorrichtungen auf einer integrierten
Schaltungsplatine in Übereinstimmung
mit einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
9 den
Schaltkreis des Multiplexer-Treibers von 8 zeigt;
-
10 den
Multiplexerblock von 9 zeigt;
-
11 eine
Tabelle zeigt, die ein Kodierschema genau zeigt, das in Ausführungsbeispielen
der vorliegenden Erfindung verwendet wird;
-
12a einen Schaltkreis zur Ausführung der Doppeldatenratenübertragung
in Ausführungsbeispielen
der vorliegenden Erfindung zeigt;
-
12b eine Abänderung
eines Teils des Schaltkreises von 12a zeigt,
um die Überabtastung
aufzunehmen;
-
13 ein
Zeitdiagramm zeigt, mit zwei möglichen
Formaten für
Datensignale;
-
14 ein
Zeitdiagramm für
die Anordnung von 12a zeigt;
-
15 einen
Frame von 16 Halbschlitzen zeigt;
-
16 eine
Tabelle zeigt, die Verbindungen während eines Abtasttests des
Multiplexerblocks auflistet;
-
17a das transparente Testen veranschaulicht; und
-
17b Pipelinetesten zeigt.
-
1 veranschaulicht
schematisch ein Ausführungsbeispiel
der vorliegenden Erfindung. Ein Hostcomputer 1 ist mit
einer Testeinrichtung 2 verbunden, die wiederum mit externen
PINs 3 bis 9 auf einer integrierten Schaltung
oder einem Chip 10 verbunden ist. Die integrierte Schaltung 10 empfängt von
der Testeinrichtung 2 eine Testtakteingabe TCK am PIN 3,
eine Testneustarteingabe notTRST am PIN 4, eine Testmodusauswahleingabe
TMS an PIN 5, eine Testdateneingabe TDI am PIN 6,
eine erste Kanalauswahleingabe BYPASS_SELECT0 an PIN 8 und
eine zweite Kanalauswahleingabe BYPASS_SELECT1 an PIN 9.
Die Umgehungsauswahl-PINs können
in einigen Ausführungsbeispielen
der Erfindung weggelassen werden. Die integrierte Schaltung 10 gibt
Testdaten TDO an PIN 7 an die Testeinrichtung aus. Diese
Eingaben und Ausgaben sind, so, ausgenommen wie weiter unten diskutiert,
wie durch den JTAG-Standard
festgelegt.
-
Die
Testeinrichtung 2 kann die Testeinrichtung von einem Dritten
umfassen oder eine DEBUGG-Einrichtung oder ein TAP-Multiplexer (TAPMux)-Treiber,
der detaillierter weiter unten beschrieben werden wird.
-
Auf
dem Chip sind die externen PINs 3 bis 9 mit einem
Multiplexerblock 11 (TAPMux) verbunden, der die Eingaben
von der Testeinrichtung 2, wie oben beschrieben wurde,
empfängt
und auch die Testausgabe an die Testeinrichtung ausgibt. Der Multiplexerblock 11 ist
mit vier entsprechenden Eingangskanälen und vier entsprechenden
Ausgangskanälen
mit jeweils einer von drei TAP-Steuerungen 12, 13 und 14 und
einer Vorrichtung 15 verbunden. Jeder der Ausgangskanäle 0 bis
3 des Multiplexerblocks 11 zu den TAP-Steuerungen und der
Vorrichtung umfasst die Signale: ein Testtaktsignal tmx_TCK(n),
ein Testmodusauswahlsignal tmx_TMS(n), ein Testdateneingabesignal
tmx_TDI(n); und ein Testneustartsignal tmx_notTRST(n) zeigt den Kanal
an. Jeder der Eingangskanäle
0 bis 3 zu dem Multiplexerblock 11 von den TAP-Steuerung
und der Vorrichtung 15 umfasst ein Testdatenausgabesignal
tmx_TDO(n).
-
Die
erste TAP-Steuerung
12 kommuniziert über eine erste Schnittstelle,
das ist ein erster Datenadapter
16a (ein derartiges Beispiel
einer Schnittstelle ist in dem
Europäischen Patent
Nr. 840 217 beschrieben) mit einer ersten Vorrichtung,
die eine erste Diagnosesteuereinheit DCU1
18 und eine erste
CPU
150 umfasst. In diesem beispielhaften Ausführungsbeispiel
ist die erste CPU
150 von einer ersten Art von einer Familie
von CPUs. Die zweite TAP-Steuerung
13 kommuniziert über eine
zweite Schnittstelle
16b oder Datenadapter mit einer zweiten
Diagnosesteuereinheit DCU2
152 und einer zweiten CPU
154,
die zu einer zweiten Art von Familien von CPUs gehört. Die
dritte TAP-Steuerung
14 ist integriert in einer Einheit
17 aufgenommen,
die auch eine dritte Diagnosesteuereinheit DCU3
156 und
eine dritte CPU
158 aufweist. Der dritte Datenadapter
16c ist zwischen
der TAP-Steuerung
14 und
der dritten DCU
156 bereitgestellt. Die dritte CPU
158 ist
von einer dritten Art oder Familie von CPUs. Die letzte Vorrichtung
15,
die mit dem Multiplexerblock
11 verbunden ist, umfasst eine
Logik, die die Funktion einer TAP-Steuerung aufnimmt, wie durch
den IEEE-Standard oder andere proprietäre Logik mit einer ähnlichen
Schnittstelle festgelegt wird.
-
Jede
der TAP-Steuerungen 12, 13, 14 soll als
optional betrachtet werden.
-
Es
sollte begrüßt werden,
dass die Datenadapter 16a bis c dieselben oder unterschiedlich
sein können.
Auf ähnliche
Art und Weise können
die DCU 18, 152, 156 dieselben sein oder
unterschiedlich sein.
-
In
manchen Ausführungsbeispielen
der Erfindung können
der Datenadapter und die DCU-Struktur unbekannt sein für den Hersteller
des Chips. Dies kann beispielsweise dann auftauchen, wenn ein proprietärer Schaltkreis
eines Dritten in der integrierten Schaltung enthalten ist.
-
Unterschiedliche
CPU-Familien können
von unterschiedlichen Herstellern oder Lieferanten bereitgestellt
werden, d.h. von Dritten.
-
Es
sollte begrüßt werden,
dass Ausführungsbeispiele
der Erfindung mit vier Kanälen
beschrieben wurden. Es sollte begrüßt werden, dass in anderen
Ausführungsbeispielen
mehr oder weniger Kanäle
bereitgestellt sein können.
In der gezeigten Anordnung ist jeder Kanal als durch leicht unterschiedliche
Elemente verbunden gezeigt. In anderen Ausführungsbeispielen der Erfindung
können
zwei oder mehr Kanäle
mit derselben Art von Anordnung verbunden sein, so dass dort weniger
als vier unterschiedliche Arten von Anordnungen sein können. In
anderen Ausführungsbeispielen
der Erfindung können
die Kanäle
alle mit derselben Art von Anordnung verbunden sein.
-
Es
sollte begrüßt werden,
dass die vier Arten von Anordnungen, die mit den vier Kanälen verbunden sind,
nur beispielhaft sind und jede andere geeignete Anordnung stattdessen
verwendet werden kann. Die Anordnungen können einen Prozessor aufweisen,
aber in anderen Ausführungsbeispielen
der Anordnungen, können
andere Einheiten, wie beispielsweise Einheiten zur Überwachung
oder zum Zugreifen auf einen internen Bus aufweisen, Arbiter- oder
andere algorithmische Maschinen. Die unterschiedlichen Anordnungen
können
ziemlich unterschiedliche Funktionen bereitstellen und aus unterschiedlichen
Einheiten hergestellt sein.
-
Eine
TAP-Steuerung kann durch von einem Benutzer festgelegte Befehle
erweitert werden oder andererseits in Übereinstimmung mit den Regelungen
des JTAG-Standards. Die TAP-Steuerung 12 kann ein derartiges
Beispiel sein. Die anderen TAP-Steuerungen 13 und 14 können dieselben
oder unterschiedlich sein. Die Vorrichtung 15 wird eine
TAP-Steuerungsfunktion aufweisen, wie sie beispielsweise durch die
TAP-Steuerung bereitgestellt wird, aber sie kann einen integrierten
Teil der Anordnung der Vorrichtungen 15 bilden.
-
Der
Betrieb der TAP-Steuerung bei der Ausführung von Tests einer integrierten
Schaltung ist vollständig
in IEEE 1149.1-1990
erklärt.
Zusammengefasst, werden endliche Abtastketten auf der integrierten
Schaltung gebildet, wie beispielsweise die, die durch eine Chip-Randabtastkette
gebildet wird.
-
Die
TAP-Steuerung ist eine synchrone finite Zustandsmaschine, wie sie
durch den IEEE-Standard 1149.1-1990 festgelegt ist. Der IEEE-Standard
1149.1-1990 definiert eine Testlogik, die in einer integrierten Schaltung
enthalten sein kann, um standardisierte Ansätze zum Testen der Verbindungen
zwischen integrierten Schaltungen bereitzustellen, Testen der integrierten
Schaltung selbst und Beobachten oder Verändern der Schaltungsaktivität während des
normalen Betriebs der integrierten Schaltung.
-
In Übereinstimmung
mit dem Standard ist, während
eines normalen Betriebs der integrierten Schaltung, die TAP-Steuerung in einem
Neustartzustand und alle ihre Eingänge und Ausgänge sind
inaktiv. Wenn ein Test, der den Testzugangsport in Übereinstimmung
mit dem IEEE-Standard 1149.1-1990 verwendet, ausgeführt werden
soll, funktioniert die Testzugangsportsteuerung in Übereinstimmung
mit den Definitionen von diesem Standard. In einem derartigen Testmodus
muss die Testzugangsportsteuerung in der Lage sein, wenigstens einen
Testmodus des Betriebes auszuwählen.
Ein möglicher
Testmodus ist ein Abtasttestmodus.
-
Alternativ
oder zusätzlich
können
komplexere Abtastvorgänge
ausgeführt
werden, wie beispielsweise das Abtasten von Daten, die in einer
funktionalen Logik auf dem Chip eingegeben werden, funktionales
Takten des Chips für
einen oder mehrere Tastzyklen und dann Abtasten der Ausgaben der
funktionalen Logik. Jede beliebigen Verbindungspunkte oder Schaltkreise
auf dem Chip können
für solche
Zwecke verbunden werden, um eine Abtastkette zu bilden. Die TAP-Steuerung
kann zusätzlich
zu ihrer Verwendung als eine Teststeuerung für einen Strukturtest für eine Logik
auf dem Chip über
Abtastketten verwendet werden und kann auch für den Zugriff auf interne Zustände verwendet
werden, zum Zwecke der Überwachung,
Steuerung oder Diagnose der Funktionalität oder Software, während der
Chip funktional getaktet wird und normal betrieben wird. Es wird
angenommen, dass alle TAP-Steuerungen 12, 13, 14, 15 eine
zusätzliche
Funktionalität
für Diagnosezwecke
haben und, dass nur eine TAP-Steuerung 12 für eine Strukturabtasttestung
des Chips verwendet wird. Dies kann in verschiedenen Ausführungsbeispielen
der Erfindung unterschiedlich sein, wo mehr als eine TAP-Steuerung für den Strukturabtasttest
der integrierten Schaltung verwendet wird oder eine unterschiedliche
TAP-Steuerung verwendet werden kann.
-
-
Ein
wichtiger Aspekt des Ausführungsbeispieles
der vorliegenden Erfindung ist der, dass der Multiplexerblock 11 in 1 nicht
nur die Multiplexfunktion bereitstellt, die für die Diagnose der mehreren
CPUs benötigt
wird, sondern auch, über
Verbindung zu der TAP-Steuerung 12, es ermöglicht,
die sequentielle Logik (Multiplexer 41 – im Zusammenhang mit 2 erörtert) sich
selbst einem strukturellen Abtasttest zu unterziehen. Eine Eigenschaft
bekannter Testmoden, die den Testzugangsport von IEEE-Standard 1149.1-1990
verwenden, ist der, dass die Abtastkette von endlicher Länge oder
eine geschlossene Schleife darstellt, und, dass das Testdatenausgabesignal
TDO von dem Testdateneingabesignal TDI abhängig ist und eine Zeitbeziehung
zwischen diesen besteht.
-
In
dem beschriebenen Ausführungsbeispiel
wird der Diagnose-(Softwaretesten)Betriebsmodus
für jede
beliebige der TAP-Steuerung 12, 13, 14, 15 für das Ausführen von
Diagnoseprozeduren von Quell-/Ziellogik auf dem Chip bereitgestellt,
die mit dem IEEE-Standard 1149.1-1990 kompatibel ist. In einem derartigen Diagnosetestmodus
ist das Testdatenausgabesignal TDO nicht von dem Testdateneingabesignal
abhängig und
weist keine dazwischenliegende Zeitbeziehung auf. Die Kette zwischen
dem Testdateneingabesignal TDI und dem Testdatenausgabesignal TDO
wird als mit unendlicher Länge
angesehen, oder als offene Schleife. In dem Diagnosemodus der TAP-Steuerung,
während
diese damit fortfährt,
die normalen Funktionalitäten
bereitzustellen, agiert sie zusätzlich
als ein Transportagent der Vollduplex, flussgesteuert, unbegrenzt,
serielle Daten trägt,
obwohl die TAP-Steuerung 12 nicht weiß, dass dies die Form der Daten
ist. Umgekehrt handhabt die TAP-Steuerung normalerweise einen einzelnen
Datenstrom ohne irgendeine Flusssteuerung, der durch eine ausgewählte Abtastkette
verläuft.
-
Einen Überblick über den
Betrieb der TAP-Steuerung und ein Testmodus wird nun gegeben. In
einem Betriebstestmodus werden das Testdateneingabesignal TDI und
das Testmodusauswahlsignal TMS an die TAP-Steuerung unter Steuerung
des Testtaktsignal TCK geliefert. Eine Statusmaschine innerhalb
der TAP-Steuerung
spricht auf den Wert des Testmodusauswahlsignals TMS bei jeder aktiven
Flanke des Testtaktsignals TCK an, um entsprechend, wie durch die
IEEE-Standard 1149.1-1990 festgelegt, durch seine Zustände durchzulaufen.
Das Testneustartsignal notTRST stellt eine asynchrone Initialisierung
der TAP-Steuerung bereit, wenn diese in einem niedrigen logischen
Zustand in Übereinstimmung
mit dem IEEE-Standard 1149.1-1990
ist.
-
Befehle
werden in einer seriellen Art und Weise aus dem Testdateneingabesignal
TDI geladen, das durch den Testtakt TCK getaktet ist. In Übereinstimmung
mit dem gespeicherten Befehl wird entweder das Abtasttestmodus SCANMODE-Signal
oder das Diagnosemodussignal DIAGMODE in Abhängigkeit davon gesetzt, ob
es ein Abtasttest oder ein Diagnosetest ist, der ausgeführt werden
soll.
-
In
einem anderen Modus des Testbetriebs kann es nötig sein, dass die TAP-Steuerung
einer bestimmten Zielvorrichtung lediglich das Testdateneingabesignal
TDI mit dem Testdatenausgabesignal TDO verbindet.
-
Wenn
der Testmodus, der ausgeführt
werden soll, ein Abtasttestmodus ist, setzt die TAP-Steuerung das
Testsignal SCANMODE 59 (2). In diesem
Fall werden die Abtastausgabedaten SCANOUT als das Testdatenausgabesignal
TDO ausgegeben. Während
eines solchen Abtastmodus werden Tastdaten in die ausgewählte Abtastkette
abgetastet auf dem Abtasteingangssignal SCANIN 53 (2),
das direkt mit dem Testdateneingabesignal TDI verbunden ist. Das
Abtasttesten, insbesondere das Grenzabtasttesten, ist vollständig in
dem IEEE-Standard 1149.1-1990 beschrieben. Es wird begrüßt werden,
dass zusätzliche
Steuersignale in Übereinstimmung
mit dem auszuführenden
Test an die Abtastkette geliefert werden müssen, um den benötigten Testbetrieb
zu erreichen.
-
Es
kann auch in einen Diagnosemodus eingetreten werden, wobei in diesem
Fall die TAP-Steuerung das Diagnosesignal DIAGMODE setzt. Weiterhin
wird die TAP-Steuerung das Diagnose- oder Abtastmodusausgabesignal
DIAGSCANOUT mit dem TDO-Ausgang verbinden, der durch die negative
Taktflanke des TCK getaktet wird.
-
Im
Diagnosemodus kann der serielle Datenfluss zwischen dem Testdateneingabesignal
TDI und dem Testdatenausgabesignal TDO so betrachtet werden, dass
er durch ein Schieberegister von unendlicher Länge im Gegensatz zu dem Abtasttestmodus
durchläuft,
bei welchem der serielle Datenfluss durch ein Schieberegister (Schieberegisterkette)
von endlicher Länge
läuft.
In dem Diagnosemodus wird eine Abfolge von Bitmustern, die in den
Testzugangsport als das Testdateneingabesignal TDI geschoben werden,
nicht in der Abfolge von Bitmustern wiedergegeben werden, die aus
dem Testzugangsport als das Testdatenausgabesignal geschoben werden.
Die Kommunikation von Diagnosedaten kann Speicherzugriffsanfragen
von dem Host zu dem Ziel und dem Ziel zu dem Host (Lesen und Schreiben)
enthalten; Statusinformation von CPU-Registern; Daten, die aus dem
Hostspeicher oder Zielspeicher in Reaktion auf eine Speicherzugriffsanfrage
gelesen werden; Statusdaten zum Laden in die CPU-Register; und Information über Speicheradressen,
die durch die Ziel-CPU adressiert sind. Folglich wird der Diagnosemodus
das nicht-eingreifende Überwachen
von Daten einschließen
oder das nicht-eingreifende Laden von Daten.
-
In
dem Diagnosemodus sind die seriellen Daten, die in den Testzugangsport
geschoben wurden, ein unidirektionaler serieller Datenstrom, die
von einem entsprechenden Mittel kodiert werden können, zum Beispiel mit Start-
und Stoppbits, um Dateneinheiten zu beschreiben. Auf ähnliche
Art und Weise sind Daten, die über
den Testzugangsport herausgeschoben werden, ein unidirektionaler
serieller Datenstrom, der von jedem beliebigen gewünschten
Mittel kodiert werden kann, zum Beispiel mit Start- und Stoppbits,
um Dateneinheiten zu beschreiben. Normalerweise werden die eingeschobenen
und ausgeschobenen Daten auf dieselbe Art und Weise kodiert werden.
Die unidirektionalen Eingangs- und Ausgangs-Datenströme können gleichzeitig verwendet
werden, um Vollduplex, bidirektionale, serielle Kommunikation zu
ermöglichen.
Die Abfolge von seriellen Datenbits kann ein Byte an Informationen
bilden.
-
Es
sollte begrüßt werden,
dass in dem Ausführungsbeispiel
der vorliegenden Erfindung der Mechanismus unabhängig von dem Mechanismus in
irgendeiner der TAP-Steuerungen 12, 13, 14, 15 zum
Zugreifen auf eine funktionale Logik ist, wie beispielsweise einer
CPU, für
Diagnose oder ähnliche
Zwecke. Der Mechanismus kann über
einen Diagnosemodus, wie oben beschrieben, oder über eine oder mehrere Abtastketten
auf eine andere Art gebildet werden, um Diagnoseinformation auszuführen. Die
einzige Bedingung ist, dass jede der TAP-Steuerungen 12, 13, 14, 15 eine
JTAG-Schnittstelle hat, die mit dem Standard konform ist, ausgenommen
dem, was weiter unten beschrieben ist.
-
Der
Multiplexerblock 11 in 1 ist konstruiert,
um Kommunikationen zwischen den externen PINs 3 bis 7 der
integrierten Schaltung 10 und den vier Kanälen, wie
unter Bezugnahme auf 2 beschrieben wird, zu multiplexen. 2 zeigt
den Multiplexerblock 11 in Übereinstimmung mit einem Ausführungsbeispiel
der vorliegenden Erfindung. Die vier Eingangs-PINs TCK, notTRST,
TMS und TDI 3 bis 6, die bereits beschrieben wurden,
sind mit einem Bus 40 verbunden. Der Bus 40 ist
mit einem "multiplexed
in"-Eingang 160 eines
ersten Multiplexers 41 verbunden und mit einem von zwei
Dateneingängen
von einem zweiten Multiplexer 42. Der Block, der mit 41 bezeichnet
ist, ist in bevorzugten Ausführungsbeispielen
der Erfindung mehr als ein einfacher Multiplexer und enthält a synchrone
(getaktete) Logik. Die anderen Teile des Multiplexerblocks 11 sind
eine reine Kombinationslogik. Der Multiplexer 41 hat einen
Zustand und einen Speicher und ist das einzige Teil des Multiplexerblocks 11,
der derart ausführen
kann.
-
Der
andere Dateneingang des zweiten Multiplexers 42 ist mit
dem Kanal-0-Ausgang des ersten Multiplexers 41 verbunden.
Die Ausgabe des zweiten Multiplexers 42 bildet die Kanal-0-Ausgabe für den Multiplexerblock 11,
der in 1 gezeigt ist. Die externen PINs 8 und 9 stellen
eine optionale zusätzliche
Steuerinformation an dem Multiplexer in bestimmten Modi bereit,
d.h. die Umgehungsauswahlsignale 0 bzw. 1.
-
Das
Kanal-0-Eingabesignal wird sowohl an den Kanal-0-Eingang an dem
ersten Multiplexer 41 und an einem der zwei Dateneingänge eines
dritten Multiplexers 43 geliefert. Die andere Dateneingabe
an dem dritten Multiplexer 43 kommt von einem "multiplexed aus" Ausgang 162 des
ersten Multiplexers 41.
-
Der
erste Multiplexer 41 hat weitere drei Kanalausgaben, Kanal
1, 2 und 3, die den Ausgabekanälen 1,
2 und 3, wie in 1 gezeigt ist, entsprechen.
Die drei Kanaleingänge,
Kanäle
1, 2 und 3 entsprechen auch den Multiplexerblockeingangskanälen 1, 2
und 3, wie in 1 gezeigt ist. Zusammengefasst,
weist der erste Multiplexer 41 Eingänge von jedem der vier Kanäle und Ausgänge von
jedem der vier Kanäle
auf. Der erste Multiplexer stellt eine Multiplex- und eine Demultiplexfunktion bereit.
Die Kanalausgänge
1 bis 3, obwohl sie nicht gezeigt sind, sind für dieselben Kanäle wie für Kanal
0 hergestellt, d.h. tmx_TCK(n), tmx_notTRST(n), tmx_TD(n). Die Kanal
n Eingaben an den Multiplexer umfassen alle tmx_TDO(n).
-
Es
sollte begrüßt werden,
dass in der Praxis die Kanäle
1, 2 und 3 Eingänge
auch mit dem Eingang des dritten Multiplexers 43 verbunden
sind.
-
Der
Multiplexer 41 enthält
eine sequentielle Logik und führt
das Multiplexen in Übereinstimmung
mit seinem internen Zustand aus und wird durch TCK getaktet. Vier
zusätzliche
Multiplexer 42, 49, 50 und 51 ermöglichen
dem Multiplexer 41, umgangen zu werden und mit einer rein
kombinatorischen Logik betrieben zu werden. Die Multiplexer 44, 50 und 51 gehören zu den
Kanälen
1, 2 bzw. 3 und funktionieren auf eine ähnliche Art und Weise wie der
Multiplexer 42, wie vorher beschrieben wurde. Wenn der
Multiplexer 41 umgangen wird, kann nur einer der Multiplexer 42, 49, 50 oder 51 so
gesetzt werden, dass ein einzelner Kanal mit den externen PINs 3 bis 7 verbunden
wird.
-
In
der Praxis kann die Umgehung, die für Kanal 0 beschrieben wurde,
für jeden
der anderen Kanäle ausgeführt werden.
In manchen Ausführungsbeispielen
kann es von diesem eine Ausnahme geben. Wie hierin nachfolgend detaillierter
beschrieben werden wird, kann einer der Kanäle, Kanal 0, der voreingestellte
Hauptkanal sein. Der voreingestellte Hauptkanal ist der Kanal, der
nach dem Neustart ausgewählt
wird. Dies ist so, da dieser Kanal die Haupt-TAP-Steuerung 12 für das Hardwaretesten
enthält.
In unterschiedlichen Ausführungsbeispielen
können
verschiedene TAP-Steuerungen als die Haupt-TAP-Steuerung fungieren.
-
Der
Bus 40 stellt weiter die Eingaben für ein Vier-Eingangs-OR-Gate 44 bereit.
Insbesondere sind die Eingaben an dem OR-Gate 44 die TCK, notTRST, TMS
und TDI Signale. Die Ausgabe des OR-Gates 44 ist ein Neustartsignal
und wird über
einen Entstörblock 45 mit
einem der Eingänge
des ersten Multiplexers 41 für Neustartzwecke verbunden.
Es sollte begrüßt werden,
dass, während
die Neustartbedingung auf mehreren Signalen kodiert ist, die durch
das OR-Gate 44 dekodiert werden, es möglich ist, dass diese Neustartbedingung versehentlich
durch andere legale Übergänge zwischen
Signalisierungszuständen
an den Signalen, die an PINs 3 bis 6 empfangen
werden, dekodiert wird und dies als eine Störung gesehen wird, d.h. ein
sehr kurz dauernder Puls, auf einem andersartigen stabilen Dekodieren
des normalen Betriebs, wobei dies irgendetwas anderes als die Neustartbedingung
ist. Der Entstörblock 45 verhindert
solche falschen Störungen,
die aus einem versehentlichen Veranlassen eines Neustarts des Multiplexers 41 während normalen
Betriebs entstehen, durch Herausfiltern von Pulsen, die kürzer als
eine bestimmte Dauer sind.
-
Die
Eingaben an dem logischen Block 46 sind ein Umgehungssignal
bypass_mode 47 von dem ersten Multiplexer 41,
Umgehungsauswahlsignale 59 ebenfalls von dem ersten Multiplexer 41 und
ein Testabtastmodussignal tst_SCANMODE 48, das verwendet
wird, wenn der Multiplexerblock 11 abtastgetestet werden
soll. Umgehungsauswahlsignale werden an drei Leitungen bereitgestellt – eines,
um anzuzeigen "Auswahl
durch Reihenfolge" und
zwei weitere, um anzuzeigen, welcher Kanal. Dies wird nachfolgend
detaillierter erörtert.
-
Die
Ausgabe des logischen Blocks 46 steuert die Multiplexer 42, 49, 50 und 51,
die verwendet werden, um zu bestimmen, welcher, wenn überhaupt
einer, der Kanäle
0 bis 3 durch den Umgehungsmultiplexer 140 ausgewählt wurden.
-
Drei
weitere Verbindungen zu dem ersten Multiplexer 41 sind
ein Abtasttestfreigabesignal tst_scanenable 52, das eine
Ausgabe von der Haupt-TAP-Steuerung 12 ist, ein Testabtasteingabesignal tst_scanin 53 und
ein Testabtastausgabesignal tst_scanout 54, die verwendet
werden, wenn und falls der Multiplexerblock 11 abtastgetestet
werden soll. Ein Teststeuersignal tst_rst_n auf Leitung 55 wird
mit den Multiplexern 42, 49 bis 51 auch
für die
Verwendung während
eines Abtasttests verbunden. Es sollte begrüßt werden, dass in manchen
Ausführungsbeispielen
der Erfindung diese Abtasttestsignale von der Haupt-TAP-Steuerung kommen
können.
-
In
einem Betriebsmodus, dem Umgehungsmodus, kann ein Kanal von den
Kanalauswahleingabesignalen BYPASS_SELECT0 und BYPASS_SELECT1 ausgewählt werden,
die ihren Ursprung entfernt vom Chip bei der Testeinrichtung 2 haben.
Um einen der vier Kanäle
auszuwählen,
wird ein Zweibitsignal bereitgestellt, das vier verschiedene binäre Signalkombinationen
00, 01, 10 und 11 bereitstellt. Bei Verwendung einer dieser vier
Kombinationen wird einer der vier Kanäle ausgewählt. Diese Steuerung wird verwendet,
um auszuwählen, zu
welchem Kanal der Multiplexerblock eine Verbindung herstellt für Signale,
die zu und/oder von der entsprechenden TAP-Steuerung oder -vorrichtung
gehen. Die zwei Bits, die das Auswahlsignal BYPASS_SELECT0 und BYPASS_SELECT1
bereitstellen, werden durch entsprechende Eingabe-PINs der integrierten
Schaltung bereitgestellt. In diesem Modus, dem Umgehungsmodus, kann
die Auswahl des einen Kanals durch diese Eingabeauswahlsignale,
auch als "Auswahl
durch PINs", durch "Auswahl durch Reihenfolge", das als nächstes beschrieben
wird, aufgehoben werden.
-
Ebenfalls
kann in demselben Betriebsmodus, dem Umgehungsmodus, ein Kanal durch
die Ausgabe einer endlichen Zustandsmaschine (FSM, eng.: Finite
State Machine) ausgewählt
werden, die schematisch als Umgehungsauswähler 56 intern im
Multiplexer 41 angezeigt ist, wobei die Ausgabe derselbigen
von einer nachfolgenden Signalisierung der vier Eingabesignale TCK,
notTRST, TMS und TDI abhängt.
Insbesondere ist die FSM eingerichtet, eine "illegale" Reihenfolge der vier Eingabesignale
zu empfangen. Mit "illegal" ist gemeint, dass
die Kombination der vier Eingabesignal nicht in dem JTAG-Standard
definiert ist und keine Bedeutung im Zusammenhang mit dem JTAG-Standard
hat. Diese illegale Kombination von Signalen wird von der FSM 56 verwendet,
um in einen solchen Modus gesetzt zu werden, dass die nächste Kombination
von Eingabesignalen festlegen wird, welcher der Kanäle ausgewählt werden
soll. In manchen Ausführungsbeispielen
der vorliegenden Erfindung werden eine oder mehrere zusätzliche
Signalkombinationen benötigt,
zwischen der ersten illegalen Kombination und der Signalkombination,
die den Kanal festlegt, der ausgewählt werden soll. Die Kombination,
die den benötigten
Kanal auswählt,
kann auch eine illegale Kombination von Signalen sein, genauso wie
auch jede beliebige zwischenliegende Signalkombination. Dies wird
nachfolgend detaillierter beschrieben werden. Die FSM 56 stellt
ein Zweibitsignal "Auswahl
durch Reihenfolge" bereit,
das die "Auswahl durch
PINs", die vorher
beschrieben wurde, aufhebt.
-
Mit
anderen Worten, werden manche Ausführungsbeispiele der vorliegenden
Erfindung nur eine Auswahl durch Reihenfolge haben, manche Ausführungsbeispiele
der Erfindung werden eine Auswahl durch PINs haben und manche Ausführungsbeispiele
werden sowohl die Auswahl durch PINs als auch die Auswahl durch Reihenfolge
haben. Dort, wo sowohl die Auswahl durch PINs als auch die Auswahl
durch Reihenfolge bereitgestellt sind, wird durch die Logik 46 eine
Arbitrierung bereitgestellt, die die Umgehungsauswahlsignale 0 und 1
empfängt,
und die Umgehungsauswahl durch Reihenfolgesignale. Abhängig von
der Ausführung
wird einem oder anderen der Signale Priorität gegeben. Bevorzugte Ausführungsbeispiele
geben eine Priorität
der Auswahl durch Reihenfolge über
der Auswahl durch PINs.
-
Es
sollte ebenfalls begrüßt werden,
dass die Anzahl von Bits, die für
das Steuersignal zur Steuerung des Umgehungsmodus benötigt werden,
von der Anzahl der Kanäle
abhängt.
Weiter kann in Fällen,
wo externe Chip-PINs wertvoll sind, die Umgehungsauswahl-PINs 8, 9 vollständig weggelassen
werden können,
unter vollständigem
Verlass auf "Umgehung
durch Reihenfolge" zur
Auswahl des einen Kanals in dem Umgehungsmodus.
-
In
Ausführungsbeispielen
der vorliegenden Erfindung kann der Hostcomputer 1 auf,
nahezu gleichzeitig, jede der Vorrichtungen zugreifen, wie beispielsweise
CPUs 150, 154 und 158, zum Beispiel,
auf dem Chip. Dies wird durch die Schaltung von 2 erreicht,
wobei der Betrieb derselbigen nun detaillierter unter Bezugnahme
auch auf die 3 und 4 erklärt wird.
-
Eine
Anforderung von einem Ausführungsbeispiel
ist, dass der Zielchip in Übereinstimmung
mit dem IEEE-Standard getestet wird. In Übereinstimmung mit dem IEEE
JTAG-Standard muss der Signalneustart notTSRT hoch sein, damit irgendein
Betrieb stattfindet. 3 zeigt ein Zustandsübergangsdiagramm
in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung, und 4 zeigt
die entsprechenden Signale in einer Tabelle. Es gibt drei Zustände oder
Betriebsmodi, Umgehungsmodus, Warnmodus und Multiplexmodus. Es soll
begrüßt werden,
dass zusätzliche
zu diesen drei Betriebsmoden ein Strukturtest auch unterstützt wird.
Nachfolgend eines erfolgreichen Dekodierens der "TAPMux Neustartbedingung", unabhängig von
irgendeinem vorherigen Zustand, wird in den Umgehungsmodus eingetreten.
Das Umgehungssignal 47 (2 – Signal 47 ist
zwischen dem Multiplexer 41 und Logik 46) wird
auf Hoch gehen und das Umgehungsauswahlsignal 59 für "Auswahl durch Reihenfolge", wird inaktiv sein.
-
Bezugnehmend
auf 2 wird, wenn das Umgehungssignal 47 hochgeht,
was anzeigt, dass in den Umgehungsmodus gegangen werden soll, der
logische Block 46 die Multiplexer 42, 43, 49, 50, 51 veranlassen, den
ersten Multiplexer 41 zu umgehen. Die Haupt-TAP-Steuerung 12 auf
Kanal 0 wird folglich für
jegliche Kommunikation ausgewählt,
während
des Umgehungsmodus, bis ein anderer Kanal durch das Mittel der Umgehungsauswahl-PINs 8 und 9 ausgewählt wird.
Der Multiplexerblock 11 wird als transparent erscheinen
und wird keine Takttotzeit hinzufügen, um entweder Daten zu übertragen
oder Daten zu empfangen.
-
Für andere
Betriebsmoden verwendet das System illegale Signalkombinationen
in dem IEEE-Standard. Eine Standard-TAP- Steuerung ohne die Merkmale des Ausführungsbeispieles
der vorliegenden Erfindung wird immer dann in einem Neustartmodus
sein, wann immer das Neustartsignal nTRST niedrig ist. In Ausführungsbeispielen
der vorliegenden Erfindung können,
während
das Neustartsignal nTRST niedrig ist, andere Betriebsmoden betreten
werden. In dem in 3 gezeigten bevorzugten Ausführungsbeispiel
erscheint der Neustart des Multiplexerblocks 11, wenn alle
vier Eingänge
TCK, notTRST, TMS und TDI niedrig sind. Dies ermöglicht dem Neustart notTRST
Eingabe-PIN, für
Daten verwendet zu werden, wenn das System nicht in dem Multiplexerblock-Neustart
ist, vorausgesetzt, dass alle anderen drei Eingabe-PINs zusammen
nicht niedrig. Der Neustart des Multiplexerblocks 41 ist
durch das Vier-Eingangs-OR-Gate 44 und den Entstörblock 45 verwirklicht.
Wenn der Multiplexerblock 11 Neustart auftaucht, d.h. alle
vier Eingaben TCK, notTRST, TMS und TDI niedrig sind, veranlasst
das OR-Gate 44 das Neustartsignal niedrig zu werden und
das System kehrt in den Umgehungsmodus zurück.
-
Bezugnehmend
auf 3 und 4 verbleibt der Multiplexer 41 im
Umgehungsmodus, wenn der ausgewählte
Kanal neu gestartet wird durch Setzen von notTRST auf niedrig, für normalen
TAP-Betrieb des ausgewählten Kanals,
wenn nTSRT hoch ist oder, wenn Kalibrierung ausgewählt ist,
durch Setzen von notTRST auf niedrig, TMS hoch und TDI hoch. Wenn
notTRST niedrig ist, ist TMS niedrig und TDI ist hoch auf der steigenden
Flanke des Takts TCK und dann wird in den Warnmodus eingetreten.
Im Warnmodus wird in den Multiplexmodus eingetreten, wenn notTRST
niedrig ist, TMS hoch ist und TDI niedrig ist auf der steigenden Flanke
des Taktes, ansonsten, wenn notTRST hoch ist, wird der "Auswahl durch Reihenfolge" Kanal in Übereinstimmung
mit dem Zustand von TMS und TDI ausgewählt und der Multiplexer 41 kehrt
in den Umgehungsmodus zurück.
Wenn der Multiplexmodus betreten ist, verbleibt er in ihm bis ein
gültiger
Neustart erkannt wird, wobei in diesem Fall der Umgehungsmodus betreten
wird.
-
Im
Umgehungsmodus wird, wenn man zuerst annimmt, dass es keine von
dem FSM innerhalb des Multiplexers
41 vorgenommene "Auswahl durch Reihenfolge" gibt, der Logikblock
46 den
Eingangspins
8 und
9 erlauben, den Kanal zu wählen. Wenn
keine Signale an den Eingabepins BYPASS_SELECT0 und BYPASS_SELECT1
bereitgestellt sind, wird, vielleicht, weil die Testeinrichtung
2 nicht
diese Signale liefern kann, eine Hauptsteuerung (Master) als die
voreingestellte Vorrichtung für
den Test ausgewählt
werden, welche in diesem Fall die erste Vorrichtung
18 auf
Kanal 0 ist. Andererseits wird, wenn Signale an den zwei Eingangspins
BYPASS_SELECT0 und BYPASS_SELECT1 bereitgestellt werden, ein Kanal
ausgewählt
werden, der die Hauptsteuerung übergeht.
Abhängig
von den Multiplexereinstellungen kann jede Kombination von Signalen
an den Pins BYPASS_SELECT0 und BYPASS_SELECT1 jeden der Kanäle auswählen, aber
in einem bevorzugten Ausführungsbeispiel
werden die Kanäle
ausgewählt,
wie in der folgenden Tabelle gezeigt ist:
| BYPASS_SELECT1 | BYPASS_SELECT0 | Eingabe-/Ausgabekanal |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 2 |
| 1 | 1 | 3 |
Tabelle
1
-
Im
Umgehungsmodus, mit gewählten
Kanal 0, kann der Chip strukturgetestet werden, wie durch den IEEE
JTAG-Standard festgelegt ist. Die Testeinrichtung 2 wird
das Taktsignal TCK das Neustartsignal notTRST, TMS und Testdaten
im Signal TDI in Übereinstimmung
mit dem IEEE JTAG-Standard an den entsprechenden Eingabepins des
integrierten Schaltungs-Chips 10 bereitstellen. Diese Signale
werden an den Multiplexerblock 11 geleitet, von wo aus
sie an den "multiplexed
in" Eingang des
ersten Multiplexers über
Bus 40 geleitet werden. Der zweite Multiplexer 42 empfängt ein
niedriges Signal an seinem Steueranschluss von dem Logikblock 46,
was folglich zur Auswahl des Kanal 0 Pfads von dem ersten Multiplexer 41 führt.
-
Ferner
wird in dem Umgehungsmodus die Testeinrichtung 2 Eingabesignale
BYPASS_SELECT0 und BYPASS_SELECT1 an den entsprechenden Pins des
integrierten Schaltungs-Chips bereitstellen, um irgendeine der Zielvorrichtungen
auf dem Chip zur Überwachung,
Einrichtung oder Diagnose auszuwählen.
Ansonsten wird die Voreinstellung so sein, dass der Master gewählt wird,
in diesem Fall auf Kanal 0.
-
Im
Umgehungsmodus wird, wenn die Diagnose eine Vorrichtung auf einem
Kanal vollendet ist, ein Multiplexerblock-Neustart angewendet und
dann ein verschiedener Kanal für
die Diagnose unter Verwendung der Pins 8 und 9,
dem "Auswahl durch
Pins" Mechanismus,
oder durch Verwenden des "Auswahl
durch Reihenfolge" Mechanismus
ausgewählt.
Alternativ kann dieselbe Zielvorrichtung Gegenstand weiterer Diagnose sein.
-
Das
Diagramm von 3 und die Tabelle von 4 können wie
folgt zusammengefasst werden:
Unabhängig des aktuellen Modus' wird der Umgehungsmodus
betreten, wenn alle Signale niedrig sind.
-
Im
Umgehungsmodus kann es einen TAP-Neustart für einen gewählten Kanal, Kalibrierung oder
normalen TAP Betrieb für
den gewählten
Umgehungskanal geben. Dies wird von den Werten von nTRST, TMS und
TDI auf einem steigenden TCK abhängen.
Die zugehörigen
Werte sind in 4 gezeigt.
-
Der
Warnmodus wird von dem Umgehungsmodus betreten, wenn nTRST und TMS
0 sind und TDI 1 auf dem steigenden TCK ist. Der Umgehungsmodus
kann auch von dem Warnmodus betreten werden. Auf einem steigenden
TCK, wird nTRST hoch sein und die Werte von TMS und TDI werden den
Kanal festlegen.
-
Im
Multiplexmodus wird Multiplexmodussignalisierung stattfinden. Es
ist nur dann möglich
den Multiplexmodus zu verlassen, wenn alle Signale 0 sind und das
bedeutet, dass der nächste
Modus der Umgehungsmodus ist.
-
Es
sollte offensichtlich sein, dass die Diagnose jeder Vorrichtung
auf einem der Kanäle,
auf einer einer pro Zeit Basis, keine Diagnose von Interaktionen
zwischen den Vorrichtungen auf den getrennten Kanälen ermöglicht.
Der Multiplexmodus ermöglicht
nahezu gleichzeitige Interaktion zwischen der externen Einrichtung und
allen verfügbaren
Kanälen.
-
Im
Multiplexmodus können
bis zu vier Host 113, 114, 115, 166 über einen
externen Treiber 112 verbunden werden, wobei jeder Host
dazu verwendet wird, unabhängig
aber nahezu gleichzeitig Kanäle
0, 1, 2 bzw. 3 zu diagnostizieren. Dies wird nachfolgend unter Bezugnahme
auf 9 detaillierte beschrieben.
-
Alternativ
kann in dem bevorzugten Ausführungsbeispiel
im Multiplexmodus ein einzelner Hostcomputer 1 gleichzeitig
alle Vorrichtungen auf dem Chip diagnostizieren. Dies ist insbesondere
dort wichtig, wo die Interaktionen zwischen den verschiedenen Vorrichtungen
auf dem Chip verstanden werden müssen
und koordiniert werden müssen
und dies am Besten erreicht wird, indem ein einzelner Host alle
Vorrichtungen gemeinsam verwaltet. Es sollte allerdings begrüßt werden,
dass die Entwicklung der Steuersoftware auf dem einzelnen Hostcomputer
als komplexer erachtet wird, als für getrennte Hosts. Aus diesem
Grund wird als erstes ein weiteres Ausführungsbeispiel der vorliegenden
Erfindung beschrieben, das getrennte Hosts und einen externen Treiber 112 verwendet.
-
In
diesem weiteren Ausführungsbeispiel
der vorliegenden Erfindung kann mehr als ein Host auf die integrierte
Schaltung 10 zugreifen, um eine Vorrichtung zu testen,
wie in 8 gezeigt ist. 8 zeigt
eine integrierte Schaltung 10, die dieselbe ist, wie die
in 1,11 gezeigte integrierte Schaltung 10 und
wird nicht nochmals beschrieben. Von dem Chip entfernt wurde die
Testeinrichtung durch einen Multiplexerblocktreiber 112 ersetzt,
der konstruiert ist, mehreren Host-Computern 113 bis 116 Zugriff
auf die Verbindungs-PINs TCK, nTRST, TMS, TDI und TDO zu ermöglichen.
Eine Testeinrichtung von Dritten ist auch mit der integrierten Schaltung
kompatibel.
-
Bisher
wurden Schaltkreise beschrieben zum Diagnostizieren von Ziel-CPU's oder Ziellogik
einzeln auf dem integrierten Schaltungschip. Allerdings gibt es
einen Aufruf für
ein Verfahren und einen Schaltkreis, der es einer Vielzahl von Zielen
ermöglicht,
gemeinsam und insbesondere deren Interaktion diagnostiziert zu werden.
In Übereinstimmung
mit dem Ausführungsbeispiel
der Erfindung, das in 8 gezeigt ist, können eins,
zwei, drei oder vier der Ziele 150, 154, 158, 15 zur
selben Zeit durch eine, zwei, drei bzw. vier der Hosts 113 bis 116 diagnostiziert
werden.
-
9 zeigt
den Multiplexerblocktreiber 112 in Übereinstimmung mit einem Ausführungsbeispiel
der vorliegenden Erfindung. Vier „zuerst herein/zuerst heraus" (FIFO)-Puffer und
Synchronisierblocks 61 bis 64 empfangen jeweils
Signale TCK, notTRST, TMS und TDI von ihrem entsprechenden Host 113, 114, 115 oder 116 (in 8 gezeigt).
Jeder weist auch einen TDO-Ausgang zu deren entsprechenden Hosts
auf. Die FIFO-Synchronisierblocks 61 bis 64 werden
durch einen getrennten Takt clk 65 getaktet und stellen
eine Pufferung einer Synchronisation an den Signalen bereit, die
von den Hostcomputern empfangen wurden. Ein Zeitmultiplex-Demultiplex-Block 66 (time
division multiplex demultiplex block 66) empfängt Signale
von den FIFO-Synchronisierblocks 61 bis 64 über entsprechende
Kodierblocks 67 bis 70 und Rücksignale zu jedem der FIFO-Synchronisierblocks über entsprechende
Dekodierblocks 71 bis 74. Die Kodier- und Dekodierblocks
erlauben die Verwendung eines Kodierschemas zur Kommunikation zwischen
dem Multiplexerblocktreiber 112 und dem Multiplexerblock 11 auf
dem Chip, wie später
detaillierter beschrieben werden wird. Der Multiplexer-Demultiplexerblock 66 gibt
die Signale notTRST, TMS und TDI an die integrierte Schaltung 10 aus
und empfängt
Signale TDO von der integrierten Schaltung 10. Er empfängt auch
als Steuerungen ein Signal auf Leitung 75 von einem Block
Init Seq 164, der sicherstellt, dass der Multiplexerblock 11 in
den dem Multiplexermodus folgenden Neustart, einem Neustartsignal
rst_n auf Leitung 76 und das Taktsignal clk 65 betritt.
Das Taktsignal clk 65 wird auch als ein viertes Eingabesignal
TCK an die integrierte Schaltung 10 geliefert.
-
Das
Neustartsignal rst_n und das Taktsignal clk werden jeweils den FIFO-Synchronisierblöcken eingegeben
und zu jedem der Kodier- und Dekodierblocks.
-
Der
Multiplexerblocktreiber 112 führt eine Anzahl von Funktionen
aus. Als Erstes führt
er Zeitmultiplexen der Eingabesignale von den Hosts 113 bis 116 auf
den Ausgabeleitungen notTRST, TMS und TDI aus. Zum Beispiel werden,
wenn Host 113, Host 114, Host 115 und
Host 116 einen Zugriff auf Kanäle 0, 1, 2 bzw. 3 wünschen,
die vier TDI-Signale
von den vier Hosts als zeitgemultiplext auf dem einzelnen Ausgang
TDI benötigt.
Die verfügbare
Bandbreite auf der Ausgabeleitung TDI könnte so geteilt werden, dass
einem Host ein größerer Teil
der Bandbreite gegeben wird als anderen Hosts. Zum Beispiel kann
der Host 113 Zugriff auf die Hälfte der verfügbaren Bandbreite
auf der TDI-Verbindung haben. Die Hosts 114, 115 und 116 können jeweils 1/6
der Bandbreite auf Leitung TDI für
Signale haben, die auf den Kanälen
1, 2 und 3 auf der integrierten Schaltung 10 entsprechend
gemultiplext werden. Dasselbe Zeitmultiplexen wird auf die Ausgabesignale
nTST und TMS von dem Multiplexerblocktreiber 112 angewendet.
-
Das
Zeitmultiplexen ist vorteilhaft dahingehend, dass es Flexibilität bereitstellt
und die Synchronisierung der Kanäle
ermöglicht.
Bei der Verwendung von Schlitzen, ist es möglich in manchen Ausführungsbeispielen
der vorliegenden Erfindung den Bedarf an Kanalmarken zu vermeiden,
die den Kanal anzeigen würden,
für den
die Daten gedacht sind. Dies ist deshalb so, da bestimmt werden
kann, dass, wenn die Daten im Schlitz n sind, die Daten auf dem
Kanal x usw. sein müssen.
Dies bedeutet, dass die Bandbreite nicht mit Kanalinformationsmarken
oder dergleichen überlastet
wird.
-
Es
sollte begrüßt werden,
dass der Teil, der jedem Kanal zugewiesen ist, verändert werden
kann, in Abhängigkeit
davon, wieviel der Bandbreite von den aktuellen Diagnosekonditionen
benötigt
wird. Der Multiplexerblocktreiber 112 führt auch ein Zeitdemultiplexen
des Eingabesignals TDO von der integrierten Schaltung 10 aus.
TDO wird an den benötigten
Host gesendet, das durch einen der Dekodierblocks 71 bis 74 dekodiert wurde
und es wird weiter durch eine der FIFO-Synchronisierblocks 61 bis 64 geleitet.
-
10 zeigt
den Multiplexerblock 41 detaillierter. Dieser Block empfängt die
Signale TCK, notTRST, TMS und TDI von dem Multiplexerblocktreiber 112 in
dem in 9 gezeigten Ausführungsbeispiel. Es sollte begrüßt werden,
dass der Multiplexerblock 41 von 10 in
dem Ausführungsbeispiel
von 1 verwendet werden kann. Die Signale TCK, notTRST,
TMS und TDI werden über
einen Bus 140 mit einem Multiplexermoduserkennungsblock 80 verbunden,
einen Token-Dekodierblock 81 und
mit einem Zeitmultiplex/Demultiplexblock 82. Eine Ausgabe
TDO von dem Multiplexer-/Demultiplexerblock 82 wird an
die Ausgabeleitung 83 geliefert. Der Multiplexer-/Demultiplexerblock 82 führt Zeitmultiplexen
der Signale von den Eingangs-PINs notTRST, TMS und TDI bei der Ausgabe
entsprechender Ausgabe Leitungen auf Kanäle 0, 1, 2 und 3 aus. Die Ausgabe
zu jedem der vier Kanäle
wird durch einen der vier Dekodierblocks 84 bis 87 dekodiert
und die Eingaben an den Multiplexerblock von jeweils den vier Kanälen wird
durch einen der vier Kodierblocks 88 bis 91 kodiert.
Der Multiplexerblock 82 führt auch das Multiplexen der
Signale aus, die von den Kanälen
0, 1, 2 und 3 empfangen werden, wobei diese Ausgabe extern von dem
Chip an den Multiplexerblocktreiber über den Ausgabe-PIN TDO geleitet
wird. Der Kanal 0 ist mit getrennten Signalen gezeigt. Die Kanäle 1 bis
3 haben dieselbe Struktur, aber diese ist nicht gezeigt.
-
Während des
Multiplexermodus, können
Daten zwischen dem Multiplexerblocktreiber und dem Multiplexerblock 11 bei
doppelter Datenrate gesendet werden als die Rate, die durch den
IEEE-Standard 1149.1 1990 festgelegt ist. Es wird nun auf die 7 Bezug
genommen, die ein Zeitdiagramm für
Signale in einem normalen TAP-Modus und in einem Multiplexermodus
zeigt. In Übereinstimmung
mit dem IEEE 1149.1 JTAG-Standard ist nur eine Halbperiode für den Rücklauf der
TDO-Daten zu dem Host erlaubt, bevor sie durch den Testtakt TCK,
wie durch Pfeil 90 gezeigt ist, getaktet werden. Daher
können
ohne Anwendung jeglicher strengerer Beschränkungen auf die Verbindung
zwischen der Testeinrichtung und dem Ziel, die Daten (TDI oder TDO)
sowohl bei der steigenden als auch der fallenden Flanke von TCK
getaktet werden. Der Schaltkreis zum Ausführen dieses Merkmals ist in 12a gezeigt.
-
12a zeigt den Schaltkreis, der in dem Multiplexerblocktreiber
bzw. dem Multiplexerblock aufgenommen sein kann, um die Daten bei
doppelter bezüglich
der normalen Rate zu takten. Block 200 ist ein Schaltkreis,
der zwei Datenleitungen A1 und B1 zu einer einzelnen Leitung AB
kombiniert. Das Signal AB stellt ein Signal dar, bei welchem für die Hälfte eines
Taktzyklusses das Signal durch die Daten auf der Datenleitung A1
definiert ist und der folgende halbe Taktzyklus, wobei das Signal
durch die Daten auf der Datenleitung B1 festgelegt ist. Die Daten
auf Leitung A1 und B1 stellen eines der Signale TDI, TMS oder notTRST
von zwei der Hostcomputer dar, die das Ziel für zwei der Zielvorrichtungen
auf dem Chip sind. Die Leitung A1 ist mit dem Datenausgang eines
ersten D-Typs Flip-Flops 201 verbunden und Leitung B1 ist
mit dem Dateneingang eines zweiten D-Typ Flip-Flops 202 verbunden.
Jeder der Flip-Flops 201, 202 hat einen Takteingang,
der mit einem gemeinsamen Taktsignal clk-Signal verbunden ist. Die Ausgabe des
ersten Flip-Flops 201 wird mit der Dateneingabe eines dritten
Flip-Flops 203 verbunden, der durch die fallende Flanke
desselben Taktsignals clk getaktet wird. Die Ausgaben des zweiten
und dritten Flip-Flops 202, 203 sind mit den zwei
Eingaben eines Multiplexers 204 verbunden, wobei die Ausgabe
des Multiplexers 204 das Signal AB bildet, das auf einer
der Leitungen der integrierten Schaltungsplatine gesendet werden
soll. In diesem Ausführungsbeispiel
wird der Multiplexer 204 durch das Taktsignal clk gesteuert.
-
Der
Block 205 teilt das Signal auf Leitung AB zurück in zwei
separate Signale A2 und B2 auf, um diese an ausgewählte Zielvorrichtungen
zu senden. Die Leitung AB ist mit den Dateneingängen eines ersten und zweiten
D-Typ Flip-Flops 206 und 207 verbunden. Sowohl
der erste als auch der zweite Flip-Flop 206, 207 weisen
Takteingänge
auf, die mit einem gemeinsamen Taktsignal clk verbunden sind, aber
der erste Flip-Flop 206 wird durch die fallende Taktflanke
getaktet und der zweite Flip-Flop 207 durch die steigende
Flanke. Dies wird dadurch erreicht, dass der erste Flip-Flop 206 das
inverse Taktsignal empfängt,
während
der zweite Flip-Flop 207 das Taktsignal empfängt, das
nicht invertiert ist. Die Ausgabe des ersten Flip-Flops 206 ist
mit dem Dateneingang eines dritten D-Typ Flip-Flops 208 verbunden,
der durch die positive Flanke des Taktsignals clk getaktet wird.
Die Ausgänge
A2 und B2 von dem ersten und dritten Flip-Flop sind verzögerte Versionen
der Eingaben auf Leitungen A1 und B1.
-
Daten
auf Leitungen C1 und D1 stellen das Rücksignal TDO von zwei der Zielvorrichtungen
auf dem Chip dar, die für
zwei der Hostcomputer bestimmt sind. Der Block 209 arbeitet
auf dieselbe Art und Weise wie der oben beschriebene Block 200,
wobei er dieselbe Struktur und Funktion aufweist. Block 210 arbeitet
auf dieselbe Art und Weise wie der oben beschriebene Block 205,
wobei er dieselbe Struktur und Funktion aufweist. Die Ausgaben C2
und D2 sind verzögerte
Versionen der Signale C1 und D1.
-
Der
Betrieb des Schaltkreises in 12a wird
nun unter Bezugnahme auf das Zeitdiagramm, das in 14 gezeigt
ist, beschrieben. Das Zeitdiagramm zeigt das Taktsignal und die
Signale auf Leitungen A1, B1, AB, A2 bzw. B2. Laufzeitverzögerungen
zwischen dem Multiplexerblocktreiber und dem Multiplexerblock wurden
zum Zwecke der Klarheit weggelassen. Die Signale auf Leitungen A1
und B1 weisen Daten a0, a1, ... und b0, b1, ... auf, wie entsprechend
gezeigt. Die Leitung B1 wird durch Flip-Flop 202 auf der
steigenden Taktflanke 220 des Taktsignals CLK getaktet
und während
das Taktsignal CLK hoch ist, werden Daten b0 von dem Multiplexer 204 auf
der Ausgabeleitung AB ausgegeben. Die Leitung A1 wird durch den
Flip-Flop 201 auf der steigenden Flanke 220 des
Taktsignals CLK getaktet und diese Ausgabe wird dann nochmals durch
Flip-Flop 203 auf der fallenden Flanke 221 des
Taktsignals CLK getaktet. Wenn das Taktsignal CLK niedrig ist, gibt
der Multiplexer 204 Daten a0 auf der Leitung AB aus und
wenn es hoch ist, werden Daten b0 ausgegeben.
-
Der
empfangende Block 205 funktioniert dann wie folgt. Die
Leitung AB wird durch Flip-Flop 207 getaktet auf der steigenden
Flanke 222 des Taktsignals CLK. Daher werden die Daten
a0 kurz nach der steigenden Taktflanke 222 auf Leitung
a2 ausgegeben. Das Signal auf Leitung AB wird ebenfalls durch den
Flip-Flop 206 auf der fallenden Flanke 221 des
CLK-Signals getaktet
und diese Ausgabe wird wiederum durch den Flip-Flop 208 auf
der steigenden Flanke 222 des Taktsignals CLK getaktet.
Daher werden die Daten b0 auf Leitung b2 kurz nach dieser Taktflanke
ausgegeben.
-
13 zeigt
zwei mögliche
Formate der Taktsignale 230 und 231 zwischen dem
Multiplexerblocktreiber 112 und dem Multiplexerblock 11,
die in verschiedenen Ausführungsbeispielen
verwendet werden können. TCK
ist das Testtaktsignal, das verwendet wird, um die Daten bei dem
Multiplexerblock zu takten. Das Signal 230 zeigt, dass
in Übereinstimmung
mit einem Ausführungsbeispiel,
ein Datenelement für
einen bestimmten Kanal zu dem Multiplexerblock 11 während jeder
Taktperiode gesendet werden kann. Jedes Datenelement ist einer Schlitzzahl
zugeordnet, wobei acht Schlitze einen Rahmen (Frame) bilden. Auf
diese Art und Weise wird, ohne den Bedarf für extra Steuersignale, die
Ziele für
jeden der Schlitze in einem Rahmen auf einmal zugewiesen werden
und können
dann erinnert werden für
nachfolgende Rahmen. Es sollte begrüßt werden, dass in alternativen
Ausführungsbeispielen
der vorliegenden Erfindung die Schlitze auf einer Rahmen-nach-Rahmen
Basis für
alle n Rahmen zugewiesen werden können oder durch jede Kombination
dieser beschriebenen Optionen.
-
Vorzugsweise
werden Daten bei doppelter Datenrate, wie oben beschrieben wurde,
gesendet, was durch Signal 231 gezeigt ist. In diesem Falle
weist ein Rahmen 16 Halbschlitze auf, wobei jeder einem bestimmten
Kanal zugewiesen ist. Die Ausführungsbeispiele
der vorliegenden Erfindung sind so eingerichtet, dass sie eine Signalisierung
bei doppelter Datenrate bereitstellen, aber ohne Vergrößerung der
Bandbreite oder der kritischen Zeitpfade.
-
Nun
wird der Betrieb im Multiplexmodus beschrieben. Der Multiplexmoduserkennungsblock 80,
der in 10 gezeigt ist, erkennt die
Kombination von Signalen, die für
den Eintritt in den Multiplexmodus über einen Warnmodus, wie in 3 und 4 gezeigt
ist, benötigt
wird. Das Signal „Multiplex_mode" wird verwendet, um
die gesamte Kommunikation auf Bus 140 über einen Multiplexblock 82 zu
leiten und ebenfalls die gesamte Kommunikationen von den Kanälen 0, 1,
2 und 3 über
den Multiplexblock 82. Der Token-Dekodierblock 81 dekodiert
Tokens, die von dem Multiplexertreiberblock 112 empfangen
wurden.
-
Ein
Tokenkodierschema wird in einem bevorzugten Ausführungsbeispiel der Erfindung
ausgeführt,
damit Steuersignale zur Steuerung des Multiplexerblocks 82 von
dem Multiplexerblocktreiberblock 112 gesendet werden können und
ebenfalls die normalen Testsignale, ohne, dass zusätzliche
PINs benötigt
werden.
-
15 zeigt
ein bevorzugtes Schema, bei welchem ein Rahmen 8 Tokens enthält, die
in Reihe empfangen wurden. Jeder Token ist in zwei Halbtoken unterteilt.
Jeder Halbtoken kann einem bestimmten Kanal 0 bis 3 zugeordnet sein.
In dem gezeigten Beispiel ist der Kanal 0 der Hälfte der verfügbaren Halbtoken
zugeordnet, was der Hälfte
der verfügbaren
Bandbreite entspricht. Der Kanal 1 ist einem Viertel der verfügbaren Halbtokens
zugewiesen, was einem Viertel der verfügbaren Bandbreite entspricht.
Kanäle
2 und 3 sind jeweils einem Achtel der verfügbaren Halbtokens zugewiesen,
was einem Achtel der verfügbaren
Bandbreite pro Kanal entspricht. Es sollte begrüßt werden, dass in bevorzugten
Ausführungsbeispielen
der vorliegenden Erfindung die zwei Halbtoken, die jeweils einen
Token herstellen, verschiedenen Kanälen zugewiesen sind. Es sollte
ebenfalls begrüßt werden,
dass die Teilung der Kanäle
zwischen den Tokens nur beispielhaft ist und verschiedene Aufteilungen
der Kanäle
zwischen den Tokens verwendet werden können, in Abhängigkeit
der relativen Bandbreiten, die von den verschiedenen Kanälen benötigt werden.
Es sollte begrüßt werden,
dass die Zuweisung von Tokens zu den entsprechenden Kanälen in den
Rahmen von Rahmen zu Rahmen dieselbe sein kann, wie oben erwähnt wurde,
oder dynamisch geändert
werden kann. Es sollte ebenfalls begrüßt werden, dass keine Daten
für einen
besonderen Schlitz übertragen
werden können,
während
seine Zuweisung geändert
wird, wobei beachtet wird, dass in einem Ausführungsbeispiel der Schlitz
in einem Rahmen benötigt wird,
um den Schlitz freizugeben und ein Schlitz in einem weiteren Rahmen
benötigt
wird, um den Schlitz einem anderen Kanal zuzuweisen.
-
11 zeigt
ein Kodierschema, das durch ein Ausführungsbeispiel der vorliegenden
Erfindung ausgeführt
wird, während
es im Multiplexermodus ist. Die linke Hälfte der Tabelle 240 zeigt
kodierte 6 Bits eines Tokens. Die rechte Hälfte der Tabelle 241 zeigt
die dekodierte Ausgabe, die an einen oder mehrere der Kanäle 0 bis
3 gesendet werden soll und die Signifikanz dieser Ausgabe. Ein Token
weist 6 Bits auf, die auf Leitungen notTRST, TMS und TDI empfangen
werden. Die ersten 3 Bits eines Tokens werden an der fallenden Flanke des
TCK empfangen und die zweiten 3 Bits werden auf der steigenden Flanke
von TCK empfangen. Die erste Leitung 242 in der Tabelle
zeigt, dass, wann immer Nullen auf der steigenden Flanke von TCK
für alle
drei Eingaben empfangen werden, der Multiplexerblockneustart ausgeführt wird.
Dies setzt voraus, dass alle Ausgabesignale an die vier Kanäle niedrig
sind.
-
Die
fünf Leitungen 243 der
Tabellen zeigen Kombinationen, die in diesem Ausführungsbeispiel
nicht verwendet werden, aber die verschiedenen Funktionen zugewiesen
werden können.
-
Die
Leitungen
244,
245 sind dann relevant, wenn ein
bestimmter Halbschlitz nicht bereits einem Kanal zugewiesen wurde.
Vorzugsweise speichert ein Kanalzuweisungsregister die zugewiesenen
Kanäle
für jeden der
16 Halbschlitze in einem 8 Tokenrahmen. Bei Verwendung des Rahmensystems
wissen sowohl der Multiplexer auf dem Chip als auch der Multiplexerblocktreiber,
der extern vom Chip ist, an welcher Stelle innerhalb eines bestimmten
Rahmens sie zu jedem Zeitpunkt während
der Kommunikation sind. Daher ist der Multiplexerblock, sobald er
jeden Halbtoken in einem Rahmen empfängt, in der Lage, zu verifizieren,
ob oder ob nicht dieser bestimmte Halbschlitz einem Kanal zugewiesen
wurde, indem er sich auf den Bereich innerhalb des Kanalzuweisungsregisters
bezieht, der dem Schlitz zugewiesen ist. Wenn ein Kanal nicht zugewiesen
wurde und wenn notTRST hoch ist, zeigen die Werte, die auf Leitungen
TMS und TDI gesendet wurden, den gewünschten Kanal für den bestimmten
Halbschlitz an. Die zwei Bits C1 auf Leitung TMS und C2 auf Leitung
TDI zeigen einen Kanal an, wie in der folgenden Tabelle gezeigt
ist:
| C2 | C1 | Eingabe-/Ausgabekanal |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 2 |
| 1 | 1 | 3 |
Tabelle
2
-
Dasselbe
Schema wird für
die erste Hälfte
und die zweite Hälfte
für jeden
Schlitz verwendet. Die Leitungen 244 und 245 werden
dann nicht verwendet, wenn ein Schlitz zugewiesen wurde.
-
Die
Leitungen 246 bis 249 in der Tabelle zeigen die
Signifikanz der empfangenen Signale, wenn ein Halbschlitz einem
Kanal zugewiesen wurde. Während
notTRST niedrig ist, können
die Zielvorrichtungen neu gestartet werden (notTRST oder für jeden
Kanal niedrig) durch Setzen von TMS hoch und TDI niedrig.
-
Während notTRST
niedrig ist, können
die Halbschlitze freigegebene Kanäle sein. Der Kanal für einen aktuellen
Schlitz kann durch Setzen von TMS und TDI auf hoch freigegeben werden,
wie auf Leitung 248 der Tabelle gezeigt ist. Wenn dies
ausgeführt
wird, wird das Kanalzuweisungsregister aktualisiert und die Daten, die
als nächstes
in der Zeit anliegen, werden für
diesen Schlitz empfangen (mit notTRST hoch), wobei die Werte von
TMS und TDI einen neuen Kanal zuweisen.
-
Wenn
ein Halbschlitz zugewiesen wurde und notTRST hoch ist, werden die
Signale TMS und TDI, die als M und D auf Leitung 249 der
Tabelle gekennzeichnet sind, für
die Daten verwendet, die zu dem Test gehören. Die Daten werden sowohl
auf der fallenden als auch auf der steigenden Taktflanke des Taktsignals
TCK empfangen. Diese Daten werden auf den Kanälen auf der steigenden Taktflanke
des Taktsignals TCK ausgegeben. Wie oben erwähnt wurde, können in
Ausführungsbeispielen
der Erfindung die zwei Halbschlitze eines Tokens nicht demselben
Kanal zugewiesen werden, da die ausgegebenen Daten auf einem Kanal
nur durch die steigenden Flanke des Taktsignals TCK getaktet werden
und deshalb bei doppelter Datenrate bei der sie empfangen wurden.
-
Eine
Anforderung des Systems ist, dass jede Zielvorrichtung auf dem Chip
zur selben Zeit diagnostiziert wird. Allerdings, wenn das Taktsignal
TCK auf jeden der Kanäle übertragen
wird, wenn ein bestimmter Kanal einem Schlitz nicht zugewiesen ist,
werden fehlerhaften Nullen durch die Zielvorrichtung getaktet werden.
Um dies zu vermeiden, wird das Taktsignal TCK zwischen den Kanälen aufgeteilt,
so dass nur, wenn Daten verfügbar
sind, die Zielvorrichtung die Daten takten wird. Während für einen
bestimmten Kanal keine Daten verfügbar sind, wird das Taktsignal
TCK nicht gesetzt und deshalb wird die Vorrichtung in einem Ruhezustand verbleiben,
während
sie auf das nächste
Taktsignal wartet.
-
Zurückkommend
auf 9 und 10 führen die Kodier- und Dekodierblöcke 67 bis 74 in 9 und die
Kodier- und Dekodierblöcke 84 bis 91 in 10 das
Kodieren und Dekodieren der Signale wie oben beschrieben aus.
-
In
einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung wird eine Überabtasttechnik verwendet,
während
der gesamten Kommunikation zwischen der Testeinrichtung oder dem
Multiplexerblocktreiber und dem Multiplexerblock oder Multiplexerblock
2 Block auf dem Chip, wie er nun beschrieben werden wird.
-
Eine
Lösung,
die Überabtasten
verwendet, wird detaillierter in einer begleitenden europäischen Patentanmeldung
EP 01307926.6 beschrieben.
-
Die
Verwendung von Überabtasten
in der vorliegenden Erfindung wird nun unter Bezugnahme auf die 5 und 6 beschrieben.
Es wird eine Überabtastlogik
verwendet, um den Effekt einer Verzögerungsschleife zwischen der
Testeinrichtung und dem TAPMux herzustellen, ohne, dass eine Verringerung
der Taktfrequenz benötigt
wird. Überabtasten
ist dort, wo für
jede gegebene Zeitperiode mehr Samples gewünschter Daten aufgenommen werden,
als benötigt
werden, und nur das Datensample oder die Samples, die als gültig erkannt
wurden, an die nachfolgende Logik weitergeleitet werden.
-
Es
wird nun auf 5 Bezug genommen, die einen
Schaltkreis zum Überabtasten
in Übereinstimmung
mit einem möglichen
Ausführungsbeispiel
zeigt. Der in 5 gezeigte Schaltkreis ist in
der Testeinrichtung aufgenommen. Das TDO-Signal, das bei der Testeinrichtung
empfangen wird, wird in einer Kette von Verzögerungselementen 400 bis 408 weitergeleitet.
Jedes Verzögerungselement
hat eine Ausgabe, die mit einem entsprechenden Flip-Flop 416 bis 418 verbunden
ist. Zusätzlich
existiert ein zusätzlicher
Flip-Flop, der eine Eingabe von einer unverzögerten Version des TDO-Signals hat.
Folglich empfängt
jeder Flip-Flop das TDO-Signal, mit unterschiedlichen Verzögerungsgrößen. Jeder
Flip-Flop 410 bis 418 hat seinen entsprechenden
Ausgang mit einem Multiplexer 420 verbunden. Der Multiplexer 420 wird
durch eine Steuerung 422 gesteuert, die eine der Versionen
des TDO, die ausgegeben werden soll, auswählt. Der Steuerschaltkreis
kann einen Flankenerkennungsschaltkreis zum Bestimmen der Version
des TDO-Signals, das ausgegeben werden soll, umfassen, das durch
eine Software bereitgestellt sein kann oder durch eine manuelle
Kalibrierung. In einem Kalibrierungsmodus wird eine bekannte Abfolge
von Daten angewendet und die Ausgabe wird betrachtet. Tatsächlich wird
ein Versuchs- und Irrtumsverfahren ausgeführt, um festzustellen, welche
die geeignete Version des TDO ist.
-
Die
Verzögerungselemente
können
jede beliebige Form einnehmen und beispielsweise zwei Inverter, die
in Reihe geschaltet sind, oder irgendeinen anderen geeigneten Schaltkreis
umfassen.
-
In
einem alternativen Ausführungsbeispiel
können
die TDO-Signale
in eine Reihe von Flip-Flops eingegeben werden, wobei keines der
TDO-Signale verzögert
ist. Stattdessen wird jedes Taktsignal, welches an die Flip-Flops
eingegeben wird, eine unterschiedliche Verzögerung aufweisen. Die Ausgaben
der Flip-Flops würden
an einen Multiplexer ausgegeben werden, der einen ähnlichen
Steuerschaltkreis aufweist, wie bereits beschrieben wurde.
-
Das
Prinzip hinter dem Ausführungsbeispiel
der Erfindung und die beschriebene Abänderung werden nun unter Bezugnahme
auf die 6 erörtert.
-
Die
Funktion des Flankendetektors 440 wird nun unter Bezugnahme
auf 6 erklärt. 6 zeigt
ein Testtaktsignal TCK.
-
Die
Testdaten TDO, die bei der Testeinrichtung empfangen werden, können einen Übergang
aufweisen, der manchmal innerhalb eines Taktzyklusses des Testtaktsignals
liegt. Fall 1 stellt Testdaten dar, die einen Übergang während eines Teils eines Taktzyklusses
haben und Fall 2 stellt Testdaten dar, die einen Übergang während eines
anderen Teils des Taktzyklusses haben. Fall 1 stellt eine Version
einer TDO-Eingabe
an einen Flip-Flop in 5 dar und Fall 2 stellt eine
andere Version der TDO-Eingabe an einen Flip-Flop in 5 dar, wobei
er eine unterschiedliche Verzögerung
aufweist. Der Teil der Signale TDO, die mit einer Markierung (engl.:
hedging) markiert sind, stellt den Teil des Signals dar, bei welchem
eine Unsicherheit darüber
besteht, ob der Wert verändert
wurde. In Ausführungsbeispielen
der Erfindung können
nur zwei Fälle
auftreten, oder wie in 5 veranschaulicht ist, können mehr
als zwei Fälle
auftreten. Die Anzahl der Fälle
ist eine Sache der Konstruktionsauswahl und kann jede geeignete
Anzahl gleich oder zwei oder mehr sein.
-
Das Überabtasten
für jeden
dieser zwei Fälle
wird veranschaulicht. In diesem Beispiel wird vorausgesetzt, dass
die Daten auf der steigenden Taktflanke gelesen werden. In alternativen
Ausführungsbeispielen
der Erfindung können
die Daten an der fallenden Taktflanke oder sowohl bei der steigenden
als auch bei der fallenden Taktflanke gelesen werden. In dem Fall
des Falles 1 wird ein erstes Sample S1 bei der steigenden Flanke
des TCK-Signals genommen. An dieser Stelle kann es einen Übergang
geben und deshalb können
die Daten nicht mit Sicherheit gelesen werden. Dies ist auch wahr
für das
zweite Sample, das bei der nächsten
Taktflanke gelesen wird. Es sollte begrüßt werden, dass die Anzahl
von Samplen, die genommen werden, eine Sache der Konstruktionswahl
ist.
-
Das
Abtasten für
den zweiten Fall und Samples, die zur selben Zeit wie für das erste
Sample genommen wurden, werden veranschaulicht. Für das erste
und zweite Sample t1 und t2 können
die Ergebnisse gültig gelesen
werden.
-
Folglich
wird die Ausgabe des Multiplexers als Fall 2 Daten ausgewählt werden.
Die Steuereinheit 422 wird die Fall 2 Version von TDO,
die ausgegeben werden soll, auswählen.
Es sollte begrüßt werden,
dass alternative Ausführungsbeispiele
der vorliegenden Erfindung ein anderes geeignetes Verfahren zur
Bestimmung verwenden können,
welche Version der TDU ausgegeben werden sollen. Zum Beispiel kann
ein Doppelratentakt bei Doppeldatenratenfällen verwendet werden. In diesem
Fall werden die Samples bei jeder steigenden und fallenden Flanke
genommen. Dies ermöglicht,
dass der geeignete Fall der TDO ausgegeben wird. Es sollte begrüßt werden,
dass dies in jedem analogen Weg zu der Version dieses Ausführungsbeispiels
angewendet werden kann, die verzögerte
Versionen des Taktsignals verwenden.
-
Das
Verfahren, das durch den Flankendetektor ausgeführt wird, Kalibration oder
dergleichen, die durch die Steuereinheit 422 verwendet
wird, bestimmt, ob die empfangenen Daten TDO in die Kategorie fällt, die
durch den ersten Fall festgelegt wurde oder in die Kategorie, die
durch den zweiten Fall festgelegt wurde. In manchen Ausführungsbeispielen
kann das Taktsignal bestimmt werden, welches verwendet werden soll. Zum
Beispiel können
manche Systeme das Taktsignal TCK und sein Inverses verwenden. Es
kann bestimmt werden, welches dieser Taktsignale verwendet werden
soll. Bei dieser letzteren Abänderung
wäre es
notwendig, Samples bei der fallenden Flanke des Taktsignals zu verwenden,
sowie die steigende Taktflanke zu verwenden, um die geeignete Datenversion
zu identifizieren und die geeignete Taktflanke des Taktsignals.
-
Es
wird auf 12b Bezug genommen, die das
Ausführungsbeispiel
der 12a zeigt, wobei dies verändert ist,
um das Überabtasten
aufzunehmen. Insbesondere wurde Block 210 verändert und
dies ist in 12b gezeigt. In dieser Anordnung
wird TDO in einer unverzögerten
Form an den ersten Flip-Flop 424 ausgegeben. Dann wird
TDO in eine Kette von Verzögerungselementen
eingegeben, die ein erstes Verzögerungselement 424 und 426 umfassen.
Eine Ausgabe von jedem dieser Verzögerungselemente wird einem
ersten bzw. dritten Flip-Flop eingegeben. Mit anderen Worten empfängt jeder
dieser drei Flip-Flops eine Version der TDO mit einem unterschiedlichen
Verzögerungsbetrag.
Jeder der Flip-Flops empfängt
auch dieselben Taktsignale. Jeder der Flip-Flops stellt eine Ausgabe
an einen ersten Multiplexer 434 bereit und an einen zweiten Multiplexer 436.
Der erste Multiplexer stellt eine Ausgabe C2 bereit und der zweite
Multiplexer stellt eine Ausgabe D2 bereit. Es sollte begrüßt werden,
dass ein geeigneter Steuerschaltkreis (nicht gezeigt) bereitgestellt wird,
um zu steuern, welche Flip-Flop-Ausgabe als eine Ausgabe des Multiplexerschaltkreises
bereitgestellt wird. Es sollte begrüßt werden, dass in manchen
Ausführungsbeispielen
mehr als zwei Verzögerungselemente und
drei Flip-Flops bereitgestellt werden können. Die Alternativen, die
in Bezug auf 5 beschrieben wurden, können auch
hier angewendet werden.
-
In
den bevorzugten Ausführungsbeispielen
der vorliegenden Erfindung, die in 1 und 8 gezeigt sind,
sind die TAP-Steuerungen
und Multiplexerblock 11 vollständig abtasttestbar. In bestimmten
Ausführungsbeispielen
der Erfindung unterstützt
der Multiplexerblock 11 das Abtasttesten. Für das Abtasttesten
müssen die
Signale für
das Abtasttesten durch den zu testenden Block durchgehen. Die Logik
in dem TAP-Multiplexer 11 kann als eine Umgehungskombinationslogik
und sequentielle Logik betrachtet werden. Die Umgehungskombinationslogik
wird in 2 als 157 gekennzeichnet
und umfasst einen Entstörblock 45,
eine Logik 46, Multiplexer 42 und 42 und
OR-Gate 44. Die sequentielle Logik wird durch den Multiplexer 41 bereitgestellt.
-
In
dem Testabtastmodus werden Signale, die über PINs 3 bis 7 eingegeben
werden, mit der Haupt-TAP-Steuerung über die Umgehungskombinationslogik
verbunden. Die Haupt-TAP-Steuerung wird verwendet, um die Logik 154, 158 usw.
Hardware zu testen. Mit anderen Worten werden die TAP-Steuerungen 13 bis 14 nicht
verwendet, sondern nur die Haupt-TAP-Steuerung.
-
Insbesondere
ist eine der TAP-Steuerungen als die Haupt-TAP-Steuerung festgelegt. Vorzugsweise führt die
Haupt-TAP-Steuerung
den Strukturtest aus (zusätzlich
zu dem Debuggen einer bestimmten TPU) und ist mit dem Kanal 0 verbunden.
Bezugnehmend auf 2, werden die Signale tst_scanmode,
tst_scanenable, tst_scanin und tst_rst_n an den TAPMux-Block 11 von
der Haupt-TAP-Steuerung 12 gesendet. Wenn das Signal scan_mode
als hoch gesetzt wird, wird der Abtastmodus betreten.
-
Wenn
scan_mode gesetzt wird, veranlasst die Umgehungslogik den zweiten
und dritten Multiplexer 42, 43, die Eingabesignale
von den Eingabe-PINs direkt zu Kanal 0 zu leiten und dann die Signale
von dem Kanal 0 zu dem Ausgabe-Pin
TDO zurückzuleiten.
-
Während des
Abtastmodus' agieren
die anderen TAP-Steuerungen als zweitrangige TAP-Steuerungen, die
auch durch die Haupt-TAP-Steuerung
strukturgetestet werden und diese sind entsprechend der in 16 gezeigten
Tabelle verbunden. Der erste Abschnitt 250 der Tabelle
zeigt, dass die PINs TCK, notTRST, TMS, TDI und TDO mit dem Kanal
0 verbunden sind, wie oben beschrieben wurde. Die anderen Abschnitte 251 bis 253 zeigen
die Verbindungen zu den Kanälen
1, 2 bzw. 3. Jeder Kanal empfängt
weiter den Takt TCK. Bei jedem Kanal 1, 2 und 3 wird notTRST mit
dem Eingabesignal tst_rst_n 57 verbunden. Die Leitungen
TMS und TDI zu jedem Kanal und die TDO-Rückleitungen
von jedem Kanal bleiben mit dem internen Funktionspfad verbunden
und werden ebenfalls strukturgetestet.
-
Während des
Strukturtests wird der Multiplexerblock 11 effektiv isoliert,
so dass seine Struktur getestet werden kann. In anderen Schaltkreisen
wird, wenn der Test beendet wurde, ein Strukturtestneustart ausgeführt.
-
Während des
Hochfahrens kann allerdings ein Problem auftauchen, wenn die integrierte
Schaltung (Chip) in dem Abtasttestmodus eingeschaltet wird.
-
Ausführungsbeispiele
der vorliegenden Erfindung lösen
dieses Problem durch Festlegen einer Prioritätsreihenfolge. Dem TAP-Multiplexer-Neustart
wird die höchste
Priorität
zugewiesen, so dass, wenn der Chip in dem Abtasttestmodus eingeschaltet
wird, ein TAP-Multiplexerneustart den Abtasttestmodus veranlasst,
verlassen zu werden. Dies bedeutet, dass der TAPMux-Neustart nicht
während
des Strukturtestes getestet wird. Die Prioritätsreihenfolge ist wie folgt:
- 1. TAPMux-Neustart
- 2. Strukturtestmodus
- 3. Multiplexermodus
- 4. Auswahl durch Reihenfolge
- 5. Auswahl durch PINs
-
Es
sollte begrüßt werden,
dass der gesamte Multiplexer 41 bei einem TAPMux-Neustart
asynchron neu gestartet wird. Der TAPMux-Neustart wird nicht von
einer einzelnen Eingabe abgeleitet, sondern von einer Kombination
der Eingaben 3 bis 6. Bei Ausführungsbeispielen
der Erfindung ist sichergestellt, dass die Dekodierlogik 44 (OR-Gate)
nicht diesen Zustand aufweist. Um sicherzustellen, dass alle Zustände korrekt
asynchron neugestartet werden (ohne, dass Taktung benötigt wird),
wird dies durch Setzen des Signals tmx_notTRST in den niedrigen
Zustand erreicht. Bei manchen Ausführungsbeispielen der Erfindung
kann das Signal tst_rst_n von der Haupt-TAP-Steuerung oder durch
den externen Testschaltkreis erzeugt werden. Die Haupt-TAP-Steuerung
kann folglich Abtasttestsignale über
die Umgehungslogik empfangen. Um den Multiplexer 41 zu
testen, kann die Haupt-TAP-Steuerung Abtasttestsignale an dem Multiplexer 41 bereitstellen.
Zusätzlich
können
die Abtasttestsignale der Umgehungslogik bereitgestellt werden.
-
Innerhalb
des oben beschriebenen Multiplexermodus existieren zwei Arten von
Datenübertragung, transparenter Datenübertragung
und Pipelinedatenübertragung.
Diese Arten von Datenübertragung
haben keine Auswirkung auf den Betrieb des TAP-Multiplexerblocks,
können
aber Folgen auf den Betrieb der externen Einrichtung haben. Im Folgenden
wird der Betrieb des externen TAP-Multiplexertreibers beschrieben
werden.
-
Zuerst
wird die transparente Datenübertragung
unter Bezugnahme auf 17a beschrieben. Der externe
TAP-Multiplexertreiber
nimmt die positive Flanke des Hosttesttaktsignals (siehe das Signal,
das in 17a mit 1 markiert ist) und
entsprechende TMS- und TDI-Daten auf (siehe das Signal in 17a, das mit 2 markiert ist) für jeden Schlitz, der einem
bestimmten Kanal zugewiesen ist und dies wird dann an den TAP-Multiplexer
weitergeleitet. Der TAP-Multiplexer
gibt die Testdaten (siehe das Signal, das in 17a mit
4 markiert ist) in den entsprechenden Schlitzen zurück. Daher
existiert eine veränderbare
Zeitmenge (die in den TAP-Multiplexerblockperioden gezählt ist,
die durch das mit 3 markierte Signal in 17a gezeigt
ist) die bis zu dem Start des nächsten
zugewiesenen Schlitzes zurückgeleitet
wird und ein weiterer fester Betrag der Zeit oder Verzögerung (in
den TAP-Multiplexertaktperioden gezählt) bevor die entsprechenden
Testdaten zurückgegeben
werden. Es existiert keine Parallelverarbeitung (Pipelining) von
Daten, weswegen die Taktfrequenz für so einen Kanal signifikant
niedriger als die der TAP-Multiplexertaktfrequenz ist. Es existiert
keine zusätzliche
Takttotzeit (gezählt
in Taktperioden für
diesen Kanal), die der Pfadverzögerung
durch den TAP-Multiplexer hinzugefügt wird. Diese Verbindung erscheint
als eine direkte oder transparente Verbindung und ist geeignet für die Verbindung
mit Vorrichtungen mit einem niedrigeren Geschwindigkeitstest, die
nicht tolerant gegenüber einer
Parallelverarbeitung oder Verzögerungen
in der TAP- Steuerungsverkettung
in dem Rückkehrpfad
sind. Mit anderen Worten empfängt
die integrierte Schaltung Testdaten von dem externen Testschaltkreis
und stellt die zugehörigen
Testdaten außerhalb
des externen Testschaltkreises innerhalb eines Taktzyklusses eines
der Hostcomputer bereit. Die Verzögerung ist nicht sichtbar bzgl.
Hosttaktzyklengrenzen.
-
Daher
ist für
den transparenten Modus die Verzögerung
signifikant niedriger als die Hosttaktperiode. Verzögerung in
diesem Zusammenhang ist die Zeit, die ein Signal von dem Host zum
Erreichen des Ziels benötigt
(Testeinrichtung zu dem TAP-Multiplexer 11),
für Signalinteraktion
mit dem Ziel und zum Rücksenden eines
Signals zu der Testeinrichtung. In diesem Ausführungsbeispiel ist die Taktperiode
in der integrierten Schaltung viel größer als die Hosttaktperiode.
-
In
dem parallelverarbeitenden Datenübertragungsmodus
nimmt der externe TAP-Multiplexertreiber die positive Flanke des
Hosttesttaktes und entsprechende TMS- und TDI-Daten auf, sobald
sie für
jeden Kanal ankommen. Dies wird in einem FIFO gepuffert und an den
TAP-Multiplexer weitergeleitet, der die Schlitze verwendet, die
dem Kanal zugewiesen sind. Der TAP-Multiplexer gibt die Testdaten in den
entsprechenden Schlitzen zurück.
Es existiert eine feste Takttotzeit, die der Pfadverzögerung durch
den TAP-Multiplexer zugefügt wird.
Diese Verbindung verhält
sich in ähnlicher
Weise wie eine TAP-Steuerungsverkettung mit einer festen Parallelverarbeitungsverzögerung.
Dies wird in 17b veranschaulicht, die drei
Parallelverarbeitungszustände
für den
TAP-Multiplexer zeigt, d.h. die Dekodierung erscheint in dem ersten
Taktzyklus, Interaktion mit dem Ziel erscheint in dem nächsten Taktzyklus
und das Rückgeben
der Testdaten erscheint in einem dritten Taktzyklus.
-
In
dem Parallelverarbeitungsmodus ist die Verzögerung größer als die Hosttaktperiode.
Wie erwähnt wurde,
ist die Verzögerung
die Zeit, die für
ein Signal von dem Host zum Erreichen eines Ziels benötigt wird (Testeinrichtung
zu TAP-Multiplexer 11),
für die
Interaktion mit dem Ziel und für
das Rückgeben
eines Signals (TDO) an die Testeinrichtung.
-
Es
sollte verstanden werden, dass die Beziehung zwischen Eingabetestdaten
(TDI) und Ausgabetestdaten (TDO) eine Funktion des Testbetriebes
ist, der ausgeführt
wird, und diese Beziehung der externen Testeinrichtung bekannt ist.
Im Parallelverarbeitungsmodus wird diese Beziehung verschoben oder
verzögert durch
eine totale Anzahl von TCK-Taktzyklen und die externe Testeinrichtung
muss sich daher dieser Verschiebung bewusst sein oder ihr gegenüber tolerant
sein.
-
In
diesem Ausführungsbeispiel
ist die Taktperiode TCK in der integrierten Schaltung dieselbe oder
sie ist schneller als die Hosttaktperiode (allerdings nicht so schnell
wie in dem transparenten Modus, bzgl. der Hosttaktperiode).
-
Das
Aufnehmen von Daten, Verarbeiten, Kodieren und Übertragen von dem Ziel kann
als eine begrenzte Anzahl (im Wesentlichen die gesamte Anzahl) von
Taktperioden in dem Parallelverarbeitungsmodus gemessen werden.
-
Die
Testeinrichtung für
den transparenten Modus ist derart, dass der FIFO von 9 weggelassen werden
kann oder wenigstens der erste Ort nur dafür verwendet wird. Der FIFO
wird für
den Parallelverarbeitungsmodus benötigt. Folglich kann der FIFO
Pufferbereiche umfassen. Die Verzögerung, die die Zeit ist, die benötigt wird,
um durch die FIFO-Stufe zu laufen, ist folglich größer als
in dem transparenten Modus.
-
Einrichtungen
von Dritten sind möglicherweise
nicht in der Lage, in dem Parallelverarbeitungsmodus betrieben zu
werden. Der Parallelverarbeitungsmodus kann schneller sein.
-
Für eine niedrige
Taktfrequenz mit einem FIFO, werden die Daten zum Beispiel drei
Zyklen des Hosttaktes später
herauskommen, was nicht wünschenswert
ist. Um die Transparenzleistung zu verbessern, ist es wünschenswert,
so viele FIFO wie möglich
zu umgehen. Für
schnellere Takte, werden FIFOs benötigt.
-
Ausführungsbeispiele
der Erfindung benötigen
keine Steuerinformation für
den Block auf dem Chip, um zwischen dem Transparenzmodus und dem
Parallelverarbeitungsmodus zu unterscheiden. Das Verhalten ist für die Logik
auf dem Chip dasselbe für
beide Modi. Die Logik extern vom Chip kann zusätzliche Komplexität aufweisen,
so dass die Kombination der Logik von extern vom Chip und der Logik
auf dem Chip das korrekte Verhalten in beiden Betriebsmoden gibt.
-
In
Ausführungsbeispielen
der Erfindung existiert ein konsistenter TCK Dreizyklenbetrieb in
beiden Betriebsmoden, d.h. Dekodieren vom Host, Interaktion mit
dem Ziel und Kodieren zum Host auf der integrierten Schaltung.
-
Die
FIFOs 61, 62, 63, 64, die in 9 gezeigt
sind, werden unterschiedlich in den zwei Betriebsmodi verwendet.
In dem transparenten Betriebsmodus wird nur der erste Bereich verwendet,
während
in dem Parallelverarbeitungsbetriebsmodus die volle Tiefe der FIFOs
verwendet wird.
-
Bei
einer Abänderung
der oben beschriebenen Ausführungsbeispiele
können
die TAP-Steuerungen 13 und 14 weggelassen werden.
Dem ist deshalb so, da die TAP-Steuerungen
nicht für
den Strukturtest verwendet werden. Die Funktionalität der TAP-Steuerung
in Block 15 kann vorhanden sein oder auch nicht. Die Haupt-TAP-Steuerung
kann dann so eingerichtet sein, dass sie nur in dem Umgehungsmodus
sichtbar ist und im Multiplexmodus alle Kanäle so erscheinen, als ob sie
keine TAP-Steuerung haben. Die Haupt-TAP-Steuerung wird in dem Strukturtest
verwendet.
-
Die
oben beschriebenen Ausführungsbeispiele
wurden im Zusammenhang mit einem einzigen seriellen Datenbit auf
TDI und TDO beschrieben. Es sollte begrüßt werden, dass zusätzliche
Signale bereitgestellt werden können,
um zusätzliche
Testdaten zu tragen. Mit anderen Worten können die TDI und TDO durch
mehrere Eingaben bzw. Ausgaben bereitgestellt werden. In bevorzugten
Ausführungsbeispielen
der Erfindung kann das Kodierschema nur den ersten TDI-Pin für die Steuerinformation
verwenden.
-
In
Ausführungsbeispielen
der Erfindung können
TDI und entsprechende interne Derivate von TDI durch mehrere Verbindungen
erweitert werden, zum Tragen von zusätzlicher Information, von der
externen Einrichtung zu der geeigneten internen CPU. Auf ähnliche
Art und Weise können
TDO und entsprechende interne Derivate von TDO erweitert werden
durch mehrere Verbindungen zum Tragen zusätzlicher Information von der
geeigneten internen CPU zu der externen Einrichtung.