-
Die
vorliegende Erfindung bezieht sich allgemein auf elektronische Systeme
und spezieller auf Verfahren und Geräte zur Verbindung vielfacher
Testzugriffscontroller auf einer einzelnen integrierten Schaltung durch
einen einzelnen Testzugriffs-Port.
-
Fortschritte
in der Halbleiterproduktionstechnologie wie auch in der Architektur
digitaler Systeme haben in der Fähigkeit
resultiert, größere integrierte
Schaltungen, die viel mehr Funktionalität enthalten, als es in der
Vergangenheit möglich
gewesen ist, zu designen und zu produzieren. Eine spezielle Klasse
von integrierten Schaltungen, die mindestens mehrere große Funktionsblöcke enthalten,
um ein hohes Niveau an Funktionalität zu produzieren, werden als
System-On-Chip (SoC) bezeichnet. Solche integrierten SoC-Schaltungen enthalten
oft einen oder mehr Prozessoren zusammen mit Speicher zum Speichern
von Programmcode, der von den Prozessoren ausgeführt werden soll, und einen
oder mehr Schaltungsblöcke
zum Implementieren verschiedener Peripheriefunktionen auf höchster Ebene.
Solche großen,
komplexen und sehr funktionalen integrieren Schaltungen stellen
viele Herausforderungen bezüglich
Designaufwand und Testen dar.
-
Um
die Menge an Zeit und Aufwand, die notwendig ist, um eine komplexe
integrierte Schaltung wie ein SoC zu designen, zu reduzieren, versuchen
Ingenieure oft, Funktionsblöcke
wiederzuverwenden (manchmal als IP-Kerne bezeichnet). In der Tat
halten viele Designgruppen Bibliotheken solcher vordesignter und
vorverifizierter IP-Kerne aufrecht. Um den Vorteil, solche vordesignten
und vorverifizierten IP-Kerne zu verwenden, aufrecht zu erhalten,
ist es vorzuziehen, das interne Design solcher Kerne nicht modifizieren
zu müssen.
-
Um
die Voraussetzungen für
Testbarkeit zu adressieren, haben eine Menge Aufwand zu der Entwicklung
von Testarchitekturen geführt,
wie z.B. die JTAG-Spezifikation,
die von dem Institute of Electrical and Electronic Engineers als „IEEE Standard
1149.1 Test Access Port and Boundary Scan Architecture" formalisiert wurde.
Testzugriff zu einer ganzen integrieren Schaltung oder einem Teil
davon wird durch einen Testzugriffs-(TAP-)Controller zusammen mit
einer Vielzahl von Registern bereitgestellt.
-
Ein
TAP-Controller kann mit jedem von einer Vielzahl großer Funktionsblöcke wie
z.B. IP-Kernen in Zusammenhang stehen. Einige vordesignte IP-Kerne
können
TAP-Controller enthalten, in anderen Fällen müssen TAP-Controller zu einem
Design einer integrierten Schaltung von den Ingenieuren hinzugefügt werden,
wenn der eine oder mehrere IP-Kerne in ein Produktdesign eingefügt wird/werden.
-
US-Patentanmeldung
US6311602 offenbart eine
integrierte Schaltung (IC) mit einer Vielzahl von TAP-Controllern.
Um Zugriff auf individuelle TAP-Controller über die externen Testdaten-Ein-(TDI)
und Testdaten-Aus-(TDO)Pins bereitzustellen, umfasst das IC weiter
ein TAP-Verknüpfungsmodul
(TLM) auf Chipebene. Jeder TAP-Controller ist um ein Erweiterungs-Bit
erweitert, das durch das TLM auf Chipebene überwacht wird. Sobald ein TAP-Controller
informiert wird, dass Zugriff zu einem anderen TAP-Controller transferiert
werden soll, setzt er sein Erweiterungsbit und signalisiert so dem
TLM auf Chipebene, in dem nächsten
Datenzyklus den Empfang einer Konfigurationsinstruktion zu erwarten.
Diese Konfigurationsinstruktion steuert den Transfer des Zugriffs
zu dem TDI- und
von dem TDO-Pin von einem TAP-Controller zu einem andern.
-
Was
benötigt
wird, sind Verfahren und Geräte,
um auf vielfache Testzugriffs-Controller auf einer einzelnen integrierten
Schaltung zuzugreifen.
-
Kurz:
Ausführungsformen
der vorliegenden Erfindung schaffen Schaltungen und Verfahren zum
Zugreifen auf vielfache Testzugriffs-Port-(TAP-)Controller auf einem
einzelnen Chip, was wichtig für
die Übereinstimmung
mit dem IEEE 1149.1-Standard ist. Ausführungsformen der vorliegenden
Erfindung erreichen Übereinstimmung
durch Aufrechterhalten des Anscheins für einen externen Beobachter,
dass man nur einen einzelnen Testzugriffs-Port hat. Durch Hinzufügen eines
einzigen Bits zu einem Datenregister von jedem einer Vielzahl von
TAP-Controllern zusammen mit unkomplizierter kombinatorischer Verknüpfungslogik
kann auf die Vielzahl von TAP-Controllern ohne die Notwendigkeit
zusätzlicher
Chip-Pins und ohne die Notwendigkeit zusätzlicher TAP-Controller, die
in einer Hierarchie oder Master-Slave-Kombination angeordnet sind,
zugegriffen werden.
-
1 ist
ein schematisches Blockschaltbild auf oberster Ebene eines SoCs,
das ein Paar von IP-Kernen enthält,
wobei jedes zugeordnete TAP-Controller/JTAG-Schaltkreise hat, und die Logik und
externen Verbindungen zum Schalten zwischen jedem des Paares an
IP-Kernen für
den Testzugriff.
-
2 ist
ein schematisches Blockschaltbild auf oberster Ebene eines SoCs,
das ein Paar von IP-Kernen enthält,
wobei jeder zugeordnete Schaltregister gemäß der vor liegenden Erfindung
hat, und die Logik zum internen Erzeugen eines Signals, das zum
Schalten zwischen jedem des Paares an IP-Kernen für den Testzugriff
verwendet wird.
-
3 ist
ein schematisches Blockschaltbild auf oberster Ebene eines SoCs
gemäß der Erfindung
mit einem Paar von TAP-Controllern, das den Datenfluss im Daisy-Chain-Betrieb zwischen
diesen illustriert.
-
4 ist
ein schematisches Schaltbild von Logik zum Implementieren des in 3 illustrierten
Datenflusses im Daisy-Chain-Betrieb und der auf dem Modus-Signal
basierenden Schaltmechanismus.
-
5 ist
ein schematisches Blockschaltbild auf oberster Ebene, das konventionelle
JTAG-Register zusammen mit dem Schaltregister und dem Kettenregister
(Chain-Register)
der vorliegenden Erfindung zeigt; und
-
6 ist
ein Flussdiagramm eines beispielhaften Prozesses gemäß der vorliegenden
Erfindung.
-
Wenn
ein Design eine Vielzahl von IP-Kernen und zugeordneten TAP-Controllern enthält, ist
es wünschenswert,
steuern zu können,
welcher TAP-Controller aktiviert ist, mit einem externen Beobachter
zu kommunizieren. Es ist auch wünschenswert,
auf die vielfachen TAP-Controller zuzugreifen, während man in Übereinstimmung
mit der IEEE 1149-Spezifikation bleibt und ohne Hinzufügen zusätzlicher
Pins zu der integrierten Schaltung. Verschiedene Ausführungsformen
der vorliegenden Erfindung erlauben es durch Einschließen eines
Bits in das Datenregister jedes der TAP-Controller zusammen mit
einfacher kombinatorischer Logik, auf eine kontrollierte Weise durch
einen einzelnen TAP-Controller
auf vielfache TAP-Controller in einer einzelnen integrierten Schaltung
zuzugreifen. Hinzufügen
eines solchen Benutzer-Datenregisters ist gemäß der IEEE 1149-Spezifikation erlaubt.
-
Bezug
hierin auf „eine
Ausführungsform" oder ähnliche
Formulierungen meint, dass ein bestimmtes Merkmal, Struktur, Operation
oder Charakteristik, der/die/das in Verbindung mit der Ausführungsform
beschrieben wird, in mindestens einer Ausführungsform der vorliegenden
Erfindung enthalten ist. Aber das Auftreten solcher Ausdrücke oder
Formulierungen hierin beziehen sich nicht notwendigerweise auf dieselbe
Ausführungsform.
Außerdem
können
verschiedene bestimmte Merkmale, Strukturen, Operationen oder Charakteristiken
in jeder passenden Weise in einer oder mehr Ausführungsformen kombiniert werden.
-
Terminologie
-
Das
Akronym ASIC bezieht sich anwendungsspezifische integriere Schaltung.
-
Der
Ausdruck „IP-Kern" ist Kontext-sensitiv
und kann sich entweder auf ein Design für einen Funktionsblock auf
oberster Ebene (z.B. Schaltschema, Hardware-Beschreibungssprache, Netzliste) oder
auf eine wirkliche physikalische Implementierung des Funktionsblocks
auf oberster Ebene beziehen. IP-Kerne können, zusätzlich zu den Schaltkreisen
zur Implementierung der gewünschten
Funktion, Schaltkreise zur Implementierung der Test- und Debug-Funktionen
enthalten.
-
Das
Akronym JTAG bezieht sich auf die Joint Test Action Group. Das Institute
of Electrical and Electronic Engineers (IEEE) hat den IEEE Standard
1149.1, Test Access Port und Boundary Scan Architecture genehmigt.
-
Das
Akronym SoC bezieht sich auf ein System-On-Chip, wobei SoCs der
Plural von SoC ist.
-
Die
Ausdrücke
Chip, Halbleiteranordnung, integriere Schaltung, LSI-Anordnung, monolithische
integrierte Schaltung, ASIC, SoC, mikroelektronische Anordnung und ähnliche
Ausdrücke
sind in diesem Gebiet manchmal austauschbar. Mikroelektronische
Anordnung kann als der weiteste Ausdruck betrachtet werden, die
anderen beinhaltend. In Bezug auf diese mikroelektrischen Anordnungen
werden Signale zwischen ihnen und anderen Schaltungselementen über physikalische,
elektrisch leitende Verbindungen gekoppelt. Der Verbindungspunkt
wird manchmal als ein Eingang, Ausgang, Anschluss, Leitung, Pin,
Pad, Port, Interface oder ähnliche
Varianten und Kombinationen bezeichnet.
-
Eine
JTAG-entsprechende Anordnung enthält Pins für Takt, Eingangsdaten, Ausgangsdaten
und Modus-Selektion, die mit TCK, TDI, TDO beziehungsweise TMS bezeichnet
werden. TCK bezieht sich auf Testtakteingang [Test Clock Input],
was ein Anschluss der JTAG-entsprechenden Anordnung ist, der ein
von dem Systemtakt separates Taktsignal empfängt. TDI bezieht sich auf einen
Testdaten-Eingang [Test Data In], was ein Anschluss ist, durch den
Daten in die JTAG-entsprechende Anordnung geschoben werden. TDO
bezieht sich auf einen Testdaten-Ausgang [Test Data Out], was ein
Anschluss ist, durch den Daten aus der JTAG-entsprechenden Anordnung
geschoben werden. TMS bezieht sich auf Testmodus-Selektion [Test
Mode Select], was ein Anschluss ist, der Daten zum Bestimmen, in
welchem einen oder mehr Testmodi die JTAG-entsprechende Anordnung
arbeiten soll. Eine JTAG-entsprechende Anordnung kann jede Art von
integrierter Schaltung sein, wie zum Beispiel ein Mikroprozessor,
ein ASIC oder ein SoC. Eine JTAG- entsprechende
Anordnung kann auch einen Pin zum Empfangen eines Low-active-Rücksetzsignals, bezeichnet mit
TRST#, enthalten. JTAG-entsprechende Anordnungen enthalten ein Boundary-Scan-Register
und einen TAP-Controller. Der TAP-Controller ist eine Statusmaschine,
die die JTAG-Funktionen steuert. Das Boundary-Scan-Register ist aus
einer Anzahl von seriell verbundenen Bits gemacht, wobei jedes dieser
Bits auch an digitale Pins der JTAG-entsprechenden Anordnung gekoppelt
ist. JTAG-entsprechende Anordnungen können auch andere Register wie
z.B. ein Datenregister, ein Instruktionsregister und ein Bypassregister
enthalten.
-
Die
durch die IEEE 1149.1 definierten logischen Funktionen werden gemeinhin
für Boundary-Scan-Testen
und für
System-Debuggen verwendet.
-
Verschiedene
Ausführungsformen
der vorliegenden Erfindung stellen einen Mechanismus bereit, auf einen
oder mehr von den vielfachen TAP-Controllern innerhalb eines SoCs
zuzugreifen, während
die Übereinstimmung
mit der IEEE 1149.1-Spezifikation aufrecht erhalten wird. Einfache
Ausführungsformen
der vorliegenden Erfindung erlauben ein programmierbares Schalten
von einem Standard-TAP-Controller zu einem zweiten TAP-Controller.
Auf diese Weise ist der Status eines SoCs, wie von außerhalb
des SoCs beobachtet, in Übereinstimmung
mit der IEEE 1149.1-Spezifikation beim Hochfahren (d.h. nachdem
ein auf das System ein Rücksetzen
angewandt worden ist). Komplexere Ausführungsformen erlauben Anordnungen
wie z.B. das Zurück-
und Vorwärtsschalten
zwischen individuellen TAP-Controllern; und den Daisy-Chain-Betrieb
aller TAP-Controller zusammen.
-
Eine
Anwendung der vorliegenden Erfindung ist es, Zugriff auf vielfache
TAP-Controller auf einem einzelnen Chip bereitzustellen, während man
in Übereinstimmung
mit der IEEE 1149.1-Spezifikation ist. Wiederum steuert jeder TAP-Controller
die Testlogik (z.B. Boundary-Scan-Testen) oder die Debug-Merkmale
eines zugeordneten IP-Kerns.
Gemäß der vorliegenden
Erfindung werden keine zusätzlichen
Controller (z.B. Tap auf oberster Ebene, hierarchische TAP, Master-TAP
oder TAP-verknüpfendes
Modul) und keine zusätzlichen
Pins benötigt,
um einen speziellen Betriebsmodus auf dem Chip zu forcieren. Ausführungsformen
der vorliegenden Erfindung sind beispielsweise durch die Standard-JTAG-Ports
zu programmieren. Ausführungsformen
der vorliegenden Erfindung sind speziell in Situationen nützlich,
wo das Design der TAP-Controller und der IP-Kerne separat oder zu
verschiedenen Zeitpunkten gemacht wird. Einige Ausführungsformen
der vor liegenden Erfindung stellen vorteilhaft einen modularen,
skalierbaren Ansatz zum Integrieren vielfacher TAP-Controller in
ein SoC bereit.
-
Um
den Kontext der vorliegenden Erfindung zu verstehen, beziehe man
sich auf 1 und bedenke, dass ein IP-Integrierer
zwei oder mehr IP-Kerne auf ein SoC packen möchte. Die IP-Kerne könnten Prozessoren,
DSPs, hoch integrierte Funktionsblöcke oder jegliche Kombination
des Vorhergehenden sein. Man nehme an, dass jeder dieser IP-Kerne einen TAP-Controller
und ein zugeordnetes JTAG-Modul hat, die so angeordnet sind, dass
diese TAP-JTAG-Kombination selbst eine Anordnung entsprechend IEEE
1149.1 bildet, wenn sie auf einem Chip wäre. Eine einfache Implementierung
zum Überwachen
der zwei IP-Kerne durch ein JTAG-Interface würde logische Steuerung und
Multiplexen und einen „Modus"-Pin wie in 1 gezeigt
verwenden.
-
Mit
Bezug auf 1: Angenommen, dass TAP1 102 der
Standard-TAP-Controller
ist und dass das von einem Modus-Pin 104 empfangene Modussignal
beim Hochfahren auf Null gesetzt ist. Man beachte, dass sowohl der
TDI- wie auch der TMS-Eingang
zu TAP1 102 und TAP2 106 logisch so gesteuert
sind, dass, wenn das Modussignal eine logische Null ist, TAP1 102 die
aktuellen TDI- und TMS-Signale empfängt, während TAP2 106 Nullen
für diese
Eingänge
empfängt;
und wenn das Modussignal eine logische Eins ist, TAP2 106 die
aktuellen TDI- und TMS-Signale empfängt, während TAP1 102 Nullen
für diese
Eingänge
empfängt.
Die physikalische Implementierung einer solchen logischen Schaltung
ist für
Fachleute eine gut verstandene Angelegenheit. Es sei bemerkt, dass
der einzige Ausgang von entweder TAP1 102 oder TAP2 106 TDO
ist. Die anderen Pins der TAP-Controller 102, 106 sind
Eingänge.
Es sei auch bemerkt, dass die Maschine endlicher Zustände (FSM)
der TAP-Controller 102, 106 sich innerhalb von
fünf Zyklen
des vom TCK-Pin empfangenen Taktsignals automatisch auf den Laufen/Testen/Warten-Statust
einstellt, wenn das von dem TMS-Pin empfangene Signal Null ist.
Die TDI, TCK, TRSTN-Signale
können
frei zwischen den TAP-Controllern 102, 106 geteilt werden
(aber TDI zusätzlich
zu TMS sind logisch gesteuert, wie in 1 gezeigt).
Die TDO-Ausgänge
sind durch einen 2zu1-Multiplexer 108 gemultiplext, wie
es die zwei Freigabesignale (nicht gezeigt) für die den TDO-Ausgängen zugeordneten
Tri-State-Puffer sind. Es ist keine seltene Praxis, dass die TAP-Controller, JTAG-Modul
und IP-Kern separat und zu verschiedenen Zeitpunkten designt werden.
Der IP-Integrierer hat die Aufgabe, die standardisierten Interface
richtig zu verbinden.
-
Mit
Bezug auf 2: Angenommen, dass jedes JTAG-Modul 202, 204 mehrere
JTAG-Register wie z.B. ein Instruktions-Register 206, ein
Bypass-Register 208 und ein IDCODE-Register 210 enthält. Der
IEEE 1149.1-Standard erlaubt die JTAG-Module 202, 204 durch
benutzerdefinierte Datenregister zu erweitern. In verschiedenen
Ausführungsformen
der vorliegenden Erfindung ist ein 1-Bit-Datenregister 212 mindestens
zu dem Standard-TAP-Controller hinzugefügt. Ein solches 1-Bit-Datenregister
wird hierin als das Schaltregister 212 bezeichnet. 2 zeigt
ein Schaltregister 212 in jedes der zwei JTAG-Module 202, 204 dieser
beispielhaften Ausführungsform
der vorliegenden Erfindung eingefügt. Die Ausgänge jedes
der 1-Bit-Schaltregister 212 sind an ein XOR-Gatter 214 gekoppelt,
um das Modussignal 216 zu produzieren, das die in 1 gezeigte logische
Steuerung und das Multiplexen steuert. Das bedeutet, das Modussignal,
das gemäß der vorliegenden Erfindung
innerhalb der integrierten Schaltung produziert wird, ersetzt das
extern gelieferte Modussignal und den in 1 gezeigten
entsprechenden Modus-Pin.
-
Gemäß der vorliegenden
Erfindung erscheinen die zwei TAP-Controller einem Beobachter außerhalb des
Chips, wie z.B. eine JTAG-Sonde, so, als wären sie ein TAP-Controller.
Das ist so, weil der Status, der ein Datenregister aktualisiert,
während
einer TCK-Taktflanke in den Laufen/Testen/Warten-Status mit einem
Wert höchster
Ordnung mehr an TMS übergeht.
Während
die Sonde das JTAG-Protokoll abschließt, rekonfiguriert sich die
Hardware selbst und ein unterschiedlicher TAP-Controller wird an
die externen Interfacepins des SoCs angeschlossen. Die Tatsache,
dass das Protokoll während
dieses speziellen Statusübergangs
zum Zweck, die Verbindungen der TAT-Controller selbst zu ändern, verwendet
werden kann, wird von den Ausführungsformen der
vorliegenden Erfindung verwendet.
-
Die
Natur von JTAG-Operationen ist, dass ein neuer Wert in ein Register
geschoben wird, während typischerweise
der alte Wert herausgeschoben wird und außerhalb des Chips aufgefangen
wird. In einigen Fällen
wird ein anderer Wert herausgeschoben, beispielsweise wenn eine
neue Instruktion hereingeschoben wird. Um einen einheitlichen, voraussagbaren
Schaltmechanismus über
vielfache JTAG-Module zu haben, ist es wünschenswert, dass eine JTAG-Sonde
nicht erforderlich sein sollte, um die gegenwärtigen Werte für verschieden
Schaltregisster 212 im Auge zu behalten. Deshalb wird der
Inhalt des Schaltregisters 212 in einer Ausführungsform
der vorliegenden Erfindung invertiert, wenn es in eine logische
Eins schiebt. Unabhängig
von den gegenwärtigen
Werten der beiden Schaltregister 212 schaltet so das Modussignal 216,
wenn genau ein Eingang invertiert wird. Eine solche Anordnung ist
für Ausführungsformen
der vorliegenden Erfindung, in der zwei TAP-Controller in einem
einzelnen Chip integriert sind, geeignet.
-
Angesichts
der Tatsache, dass es möglich
ist, gemäß der Erfindung,
zwischen zwei TAP-Controllern zurück- und vorwärts zu schalten,
ist es weiter wünschenswert,
Daisy-Chain-Betrieb [Verkettung] der TAP-Controller bereitzustellen.
In einer beispielhaften Ausführungsform
des Daisy-Chain-Betriebs, wie in 3 und 4 gezeigt,
ist die in 2 gezeigte Technik erweitert,
um den dem Daisy-Chain-Betrieb zugeordneten Datenfluss bereitzustellen.
Spezieller ist der allgemeine, dem Daisy-Chain-Betrieb zugeordnete
Datenfluss in 3 gezeigt, indem nur der Fluss
von TDI nach TDO präsentiert
wird. Um den Daisy-Chain-Betrieb gemäß der vorliegenden Erfindung
zu erreichen, wird ein TAP-Controller (z.B. TAP1 102) weiter
durch ein 1-Bit-Datenregister, das hiernach als das Kettenregister
bezeichnet wird, erweitert. 5 illustriert
die konventionellen Instruktions-, Bypass- und IDCODE JTAG-Register 206, 208, 210 und
die Schalt- und Kettenregister 212, 502 der vorliegenden
Erfindung.
-
Es
sei bemerkt, dass, obwohl es möglich
ist, Kettenbits zu mehr als einem der Vielzahl der TAP-Controller
auf einer einzelnen integrierten Schaltung gemäß der Schaltung hinzuzufügen, dieses
die Komplexität der
kombinatorischen Logik, die für
die Steuerung notwendig ist, erhöht.
Es wird verstanden werden, dass Fachleute, die den Nutzen dieser
Offenbarung haben, leicht solche Steuerlogik synthetisieren können, und deshalb
sind solche Details nicht weiter beschrieben.
-
Wie
in 4 angedeutet, kann das Kettensignal 416 nun
zusätzlich
zu dem Modussignal 216 verwendet werden, um passende logische
Steuerung und Multiplexen für
TDI1, TDI2, TDO1 und TDO2 zu implementieren. Angenommen, dass Modus
= 0 wenn Kette = 1, dann ist 4 logisch äquivalent
zu 3. Es wird verstanden werden, dass dies eine beispielhafte
Ausführungsform
der vorliegenden Erfindung ist, und dass die beispielhafte Logik
unterschiedlich sein kann, wenn der Wert des Modus-Signals beispielsweise
unterschiedlich gewählt
wird. Dies wird von Fachleuten gut verstanden.
-
6 illustriert
einen Prozessfluss gemäß der vorliegenden
Erfindung. Schaltregisterbits in zwei oder mehr TAP-Controllern
werden 602 in einen bekannten Status zurückgesetzt.
Eine logische Kombination der Ausgänge der Schaltregisterbits
in ihrem zurückgesetzten
Status steuern, auf welchen der TAP-Controller ein externer Beobachter
zugreifen kann. Anschließend
resultiert Schreiben auf das Schaltregisterbit des selektierten
TAP-Controllers darin, dass das Bit umgeschaltet wird (d.h. Invertieren
des gegenwärtigen Status).
Der neue Status der Schaltregisterbits wird verwendet, um 604 mindestens
ein Modussignal zu produzieren oder abzuleiten. Basierend mindestens
teilweise auf dem Status des/der Modussignale, wird 606 ein
nächster TAP-Controller
für Kommunikation
mit dem externen Beobachter selektiert. Im Falle zweier TAP-Controller
selektiert das Modussignal immer einen der zwei TAP-Controller.
-
Um über zwei
TAP-Controller hinaus zu erweitern, kann ein Modus-Bus so abgeleitet
werden, dass ein sich ändernder
Wert in irgendeinem Schaltregister verursacht, dass der nächste festgelegte
TAP-Controller selektiert wird. Solche Beispiele sind detaillierter
unten beschrieben.
-
Im
nächsten
Abschnitt wird eine beispielhafte Ausführungsform mit drei TAP-Controllern
(bezeichnet als TAP1, TAP2 und TAP3) beschrieben. Jeder TAP-Controller hat ein
1-Bit-Schaltregister, das auf Null zurücksetzt. Anstatt ein einzelnes
XOR zu verwenden, um die Modus-Bits zu machen (wie oben in Zusammenhang mit
dem Beispiel mit zwei TAP-Controllern beschrieben), wird ein Modus-Bus
verwendet.
-
In
Bezug auf das Schalten zwischen TAP1, TAP2 und TAP3 nehme man an,
dass ein zyklischer Algorithmus implementiert ist, um Zugriff zwischen
allen TAP-Controllern
zu schaffen. (Es sei bemerkt, dass Selektieren eines aus vielen
TAPs eine unterschiedliche Funktion als Verkettung ist, und jede
dieser Funktionen ist für
verschiedene Zwecke wünschenswert.
Verschiedene Ausführungsformen
der vorliegenden Erfindung unterstützen sowohl Selektieren als
auch Verkettung.) In dieser beispielhaften Ausführungsform wird TAP1 automatisch
selektiert, und wenn das Schaltregister eines selektierten TAP-Controllers
geschrieben wird, wird ein nächster
Controller selektiert, beispielsweise: TAP1 -> TAP2 -> TAP3
-> TAP1 und so weiter.
Der Modus-Bus hat eine Breite, die der Aufrundungszahl[log2(#TAPs)]
entspricht, die in dieser beispielhaften Ausführungsform zwei Bits beträgt, und
diese zwei Bits können
wie in Tabelle 1 gezeigt, definiert werden.
-
-
Die
Logik für
den Modus-Bus ist einzig und allein von dem Wert der drei Schaltregisterbits
S1, S2 und S3 abhängig,
wie in Tabelle 2 gezeigt.
-
-
In
dieser beispielhaften Ausführungsform
werden die TDI- und TMS-Eingänge von
einem 3-fach-UND-Gatter gesteuert (siehe Tabelle 1). Zwei der Eingänge sind
die Modus[1] und Modus[0]-Bits mit einigem Invertieren, sodass nur
der selektierte TAP-Controller ein TDI- oder TMS-Signal von den
Pins oberster Ebene empfängt. Ähnlich werden
die drei TDO-Signale durch verwenden der Modus[1:0]-Bits gemultiplext,
sodass nur der selektierte TAP-Controller ein TDO-Signal an die
Pins oberster Ebene liefert. Verschiedene gut bekannte Schaltungen
können
verwendet werden, um die vorausgegangene Logik und das Multiplexen
zu implementieren. Die Eingangs/Ausgangs-Tabelle (siehe Tabelle
2) für
den Modus-Bus kann leicht synthetisiert werden und resultiert in
einer relativ kleinen Anzahl von Logikgattern.
-
Im
nächsten
Abschnitt wird eine beispielhafte Ausführungsform mit vier TAP-Controllern
(in diesem Beispiel als TAP1, TAP2, TAP3 und TAP4 bezeichnet) beschrieben.
-
In
Bezug auf das Schalten zwischen den verschiedenen TAP-Controllern
nehme man an, dass ein zyklischer Zugriff zwischen allen TAP-Controllern
implementiert ist. In dieser beispielhaften Ausführungsform wird TAP1 automatisch
selektiert, und wenn das Schaltregister eines selektierten TAP-Controller
geschrieben wird, wird ein nächster
Controller selektiert, beispielsweise: TAP1 -> TAP2 -> TAP3
-> TAP4 -> TAP1 und so weiter.
-
In
der beispielhaften Ausführungsform
hat der Modus-Bus eine Breite, die der Aufrundungszahl[log2(#TAPs)]
entspricht (was immer noch zwei Bits beträgt), und die Modus-Bit sind
in Tabelle 3 definiert.
-
-
Die
Logik für
den Modus-Bus ist einzig und allein von dem Wert der vier Schaltregisterbits
S1, S2, S3 und S4 abhängig,
wie in Tabelle 4 gezeigt.
-
-
Es
sei bemerkt, dass es eine Anzahl nicht verwendeter Eingangskombinationen
gibt (auch als Eingangszustände
bezeichnet).
-
In
dieser beispielhaften Ausführungsform
werden die TDI- und TMS-Eingänge von
einem 3-fach-UND-Gatter gesteuert (siehe Tabelle 3). Zwei der Eingänge sind
die Modus[1]- und Modus[0]-Bits mit einigem Invertieren, sodass
nur der selektierte TAP-Controller ein TDI- oder TMS-Signal von
den Pins oberster Ebene empfängt. Ähnlich werden
die vier TDO-Signale durch verwenden der Modus[1:0]-Bits gemultiplext,
sodass nur der selektierte TAP-Controller ein TDO-Signal an die
Pins oberster Ebene liefert. Verschiedene gut bekannte Schaltungen
können
verwendet werden, um die vorausgegangene Logik und das Multiplexen
zu implementieren.
-
Wenn
mehr TAP-Controller verwendet werden sollen, wächst die Anzahl der Modus-Bits
mit einer log2-Rate. Das heißt,
drei Modus-Bits reichen für
bis zu acht TAP-Controller aus, vier Bits reichen für bis zu sechzehn
TAP-Controller aus und so weiter. Die Anzahl definierter und verwendeter
Eingangszustände
wächst auch
langsam, aber nur um zwei Status pro hinzugefügtem TAP-Controller.
-
In
Bezug auf das Verketten zwischen den verschiedenen TAP-Controllern,
anstatt des Schaltens wie oben beschrieben, werden die folgenden Änderungen
benötigt:
Jedes TDI in einer Kette ist konfiguriert, sein Signal von zwei
Quellen zu erhalten, nämlich:
(1) dem TDI-Pin oberster Ebene in dem Fall, dass es das TDI des
selektierten TAP-Controllers
ist, oder das TDO-Signal von dem vorhergehenden TAP-Controller im
Fall der Verkettung. Es gibt kleine Vorkehrungen am Anfang und am
Ende der Kette, aber die Komplexität wächst nicht mit dem Hinzufügen von
mehr TAP-Controllern. Beispielsweise kann das TDI für irgendeinen
TAP-Controller in der Kette sogar mit einer Kette, die zehn TAP-Controller
enthält,
immer noch nur von zwei möglichen
Quellen kommen, wie oben bemerkt: (1) dem TDI oberster Ebenen in
dem Fall, wenn es das TDI des selektierten Controllers ist, oder
(2) von dem TDO-Signal des vorhergehenden TAP-Controllers in dem
Fall, dass es ein TDI eines TAP-Controller im Daisy-Chain-Betrieb
ist. Ähnlich
wird in dieser beispielhaften Ausführungsform der TDO-Pin entweder
von einem individuell selektierten TAP-Controller (bei Verwendung
eines n-zu-1-Multiplexers) oder das TDO wird, wenn alle TAP-Controller
im Daisy-Chain-Betrieb sind, von dem TDO-Signal von dem letzten
TAP-Controller in
der Kette getrieben.
-
Ausführungsformen
der vorliegenden Erfindung können
ander als zyklische Abrufalgorithmen verwenden, obwohl es einige
Komplexitätsfragen
gibt, das Ziel eines Schalters programmierbar zu machen. In einem solchen
Szenario kann der Status des Systems in jedem TAP-Controller oder
an einem zentralen Ort gespeichert werden. Dies unterscheidet sich
von den oben beschriebenen beispielhaften Ausführungsformen, in denen der
Status in den kombinierten Schalter/Ketten-Bits des Datenregisters
in den TAP-Controllern codiert ist.
-
Zusammenfassung
-
Auf
mehrere Testzugriffs-Port-(TAP-)Controller auf einem einzelnen Chip
wird gemäß der IEEE 1149-Spezifikation
durch Aufrechterhalten des Anscheins einem äußeren Beobachter gegenüber, dass
man nur einen einzelnen Testzugriffsport hat, zugegriffen. Durch
Hinzufügen
eines einzelnen Bits zu einem Datenregister jedes der Vielzahl von
TAP-Controllern, zusammen mit einfacher kombinatorischer Verknüpfungslogik, kann
auf die Vielzahl von TAP-Controllern ohne die Notwendigkeit zusätzlicher
Chip-Pins und ohne die Notwendigkeit zusätzlicher TAP-Controller zugegriffen
werden. Durch Hinzufügen
eines zweiten Bits zu mindestens einem der TAP-Controller kann die
interne Ableitung von Signalen, die für die erwünschte Funktionalität der Vielzahl
von TAP-Controllern passend ist, erreicht werden. Umschalten des
Status der zugefügten
Bits in den entsprechenden Datenregistern der Vielzahl von TAP-Controllern
schafft die Steuerinformation zum entweder Schalten oder Daisy-Chain-Betrieb
der Vielzahl von TAP-Controllern.
-
Es
sollte deutlich sein, dass die vorliegende Erfindung nicht auf oben
beschriebenen Ausführungsformen
beschränkt
ist, sondern jegliche und alle Ausführungsformen innerhalb des
Rahmens der beigefügten
Ansprüche
umfasst.