-
Die
Erfindung bezieht sich auf integrierte Schaltungen, und insbesondere
auf integrierte Schaltungen mit einem Testinterface mit einem Boundary-Scan-Pfad,
wie z.B. das durch den IEEE1149.1-Standard definierte Testinterface.
-
Eine
Schaltung gemäß der Einleitung
von Anspruch 1 ist in einem Artikel mit dem Titel „Enhanced
reduced pin count for full scan design" von H. Vrancken et al auf den Seiten
129–143
des Journal of Electronic Testing: Theory and Applications, Vol.
18 Nr. 2, 30 (EPO Referenz XP002285789) beschrieben. Diese Publikation
beschreibt eine integrierte Schaltung mit einem „Enhanced Reduced Pin Count
Test" (ERPCT)-Modus. In
diesem Modus dienen bestimmte IC-Pins als Eingänge oder Ausgänge von
Schieberegisterketten, die entlang nur eines Teil einer Boundary-Scan-Kette
gemäß dem IEEE1149.1-Standard laufen.
Dies macht es möglich,
Testdaten über
eine Vielzahl von Pins parallel ein- und auszuschieben, ohne einen Tester
an alle Pins anschließen
zu müssen.
Diese Publikation nimmt offensichtlich an, dass feste IC-Pins, abhängig von
erlaubten Taktraten der integrierten Schaltung und ihren Interfaces
gewählt,
als Eingänge
oder Ausgänge
von Schieberegisterketten dienen. Über dies hinaus spricht die
Publikation nicht an, welche dieser Pins als Eingänge oder Ausgänge von
Schieberegisterketten verwendet werden sollten.
-
Der
IEEE1149.1-Standard definiert ein Testzugriffsinterface für integriere
Schaltungen. Dieses Interface erlaubt Testen von Verbindungen auf
einer Leiterplatte, die die integrierte Schaltung enthält. Das
Interface wird der TAP-Port (Test Access Port – Testzugriffs-Port) genannt
und enthält
einen Testdateneingang (TDI, Test Data Input), einen Testdatenausgang
(TDO, Test Data Output), einen Testtakteingang (TCK, Test Clock
Input) einen Testmodusauswahleingang (TMS, Test Mode Select) und
einen Teststatusrücksetzeingang
(TRST, Test State Reset). Die TDI und TDO-Anschlüsse verschiedener integrierter
Schaltungen sind auf einer Leiterplatte in einer Daisy-Chain gekoppelt.
Die TCK, TMS und TRST-Eingänge
der verschiedenen integrierten Schaltungen sind parallel gekoppelt.
-
Die
integrierte Schaltung mit dem Testinterface ist mit einer Anzahl
zwischen die Funktionsanschlüsse der
integrierten Schaltung und der Kernschaltung der integrierten Schaltung
gekoppelten Scan-Zellen versehen. Zusätzlich sind die Scan-Zellen
aneinander gekoppelt, um eine Schieberegisterstruktur für Testzugriff
zu bilden. Ein Testcontroller (TAP-Controller genannt) steuert den
Betrieb der Boundary-Scan-Zellen.
-
Der
Standard definiert einen Statusmaschinenbetrieb des TAP-Controllers.
Statusübergänge werden durch
den TMS-Eingang gesteuert. Verschiedene Statusübergänge stellen Eintreten und Verlassen
eines Testmodus bereit. In dem Testmodus fangen die Boundary-Scan-Zellen
Signale zwischen der Kernschaltung und den Anschlüssen ab.
Ausgangszellen liefern Testsignale an die Anschlüsse anstatt die Kernschaltung
und Eingangszellen fangen Daten von den Anschlüssen auf. Die Stati der Statusmaschine
stellen einen Schiebestatus bereit, in dem Daten von dem Testdateneingang über eine
Kette von Boundary-Scan-Zellen zu dem Testdatenausgang geschoben
werden. Bei bestimmten Statusübergängen werden
Daten, die durch die Kette geschoben worden sind, verwendet, um
Testdaten, die an die Anschlüsse
ausgegeben werden, upzudaten, und bei anderen Übergängen werden Daten von den Anschlüssen für Transport
durch die Kette aufgefangen.
-
Zusätzlich sorgt
der TAP-Controller durch die TDI-Anschlüsse für die Anwendung von Befehlen.
Die Befehle können
verwendet werden, bestimmte integrierte Schaltungen in verschiedene
Submodi des Testmodus zu schalten, inklusive eines normalen EXTEST-Modus,
in dem Testdaten durch die Boundary-Scan-Zellen geschoben werden
können
und Signale zwischen den Anschlüssen
und der Kernschaltung abgefangen werden, einem Bypass-Modus, in
dem Daten, die Boundary-Scan-Zellen in der integrierten Schaltung
umgehend, von TDI zu TDO geschoben werden, einem Funktions-Modus,
in dem die integrierte Schaltung normal an ihre Anschlüsse angeschlossen
ist während
andere integrierte Schaltungen im Test-Modus sind, und einem CLAMP-Modus
(Klemm-Modus), in dem die integrierte Schaltung das Updaten von
Daten, die von den Boundary-Scan-Zellen geliefert werden, sperrt.
In weiteren Modi werden die Testdaten von dem Testdateneingang TDI
durch interne, durch Befehle selektierte Scan-Ketten zu dem Testdatenausgang
geschickt werden.
-
Eine
serielle Schieberegisterstruktur, die durch alle Boundary-Scan-Zellen
läuft und, über die TDO/TDI-Verbindungen,
von einer integrierten Schaltung zu einer andern, hat Vorteile und
Nachteile. Der Hauptvorteil ist, dass die Verdrahtung, die benötigt wird,
um Testdaten an verschiedene integrierte Schaltungen zu liefern,
minimiert werden kann. Der Hauptnachteil ist, dass serielle Strukturen
die Geschwindigkeit verlangsamen, mit der auf die Anschlüsse der
integrierten Schaltung zugegriffen werden kann.
-
Die
langsame Zugriffsgeschwindigkeit wird teilweise durch Bereitstellen
von Bypass- und Klemmbefehlen angegangen. An selektierte integrierte
Schaltungen gelieferte Bypassbefehle entfernen effektiv die Boundary-Scan-Ketten
selektierter integrierter Schaltungen von der Gesamtkette auf der
Leiterplatte und reduzieren so die Anzahl von Taktzyklen, die benötigt werden,
Testdaten zu oder von einer relevanten Boundary-Scan-Zelle zu transportieren.
Der Klemmbefehl macht es möglich,
mehr nützliche
Daten innerhalb derselben Anzahl von Taktzyklen zu transportieren,
weil die Signale an den Anschlüssen
aller irrelevanten integrierten Schaltungen fixiert gehalten werden
und keine Testdaten benötigen.
Als ein Ergebnis können
Daten für
aufeinander folgende Updates der relevanten integrierten Schaltung
anstatt derer für
irrelevante integrierte Schaltungen geliefert werden. Aber bekannte
Befehle, um die integrierte Schaltung in den Bypass-Modus oder den Clamp-Modus
zu setzen, gelten für
die integrierte Schaltung als Ganzes, um die Scan-Kette als Ganzes
zu umgehen oder zu klemmen.
-
Der
Stand der Technik hat weitere Lösungen
vorgeschlagen, die Zugriffsgeschwindigkeit während des Testens zu verbessern.
US Patent 6.430.718 hat beispielsweise eine integrierte Schaltung
vorgeschlagen, in der Testdaten von automatischem Testgerät, das an
eine Anzahl von Anschlüssen
parallel angeschlossen ist, parallel in eine Vielzahl von Boundary-Scan-Zellen
eingegeben werden können.
Die Testdaten werden anschließend
in interne Scan-Zellen geschoben, wie sie für Testzwecke verwendet werden.
Abhängig
von den Befehlen empfangen die internen Scan-Zellen entweder Daten
von dem Testdateneingang TDI direkt oder von den Boundary-Scan-Zellen,
an die das automatische Testgerät
angeschlossen ist. Ähnlich
können
Testergebnisse entweder von einer Vielzahl Boundary-Scan-Zellen parallel
zu einer Anzahl von Anschlüssen übertragen werden
oder zu dem Testdatenausgang gespeist werden.
-
US
Patent 6.018.815 schlägt
auch vor, Testdaten parallel einzugeben, aber in diesem Fall über eine Anzahl
dedizierter Anschlüsse.
Diese Publikation schlägt
auch vor, eine Anzahl von Scan-Ketten und Testcontrollerbefehlen,
um zu selektieren, welche dieser Scan-Ketten zwischen den Testdateneingang
TDI und den Testdatenausgang TDO gekoppelt wird, wie auch einen
Befehl, alle Scan-Ketten in Serie zwischen den Testdateneingang
TDI und den Testdatenausgang zu koppeln, bereitzustellen.
-
Die
vorgeschlagenen Geschwindigkeitsverbesserungen, was Bypass-Befehle, Clamp-Befehle
und Befehle für
parallele Eingabe und Rekonfiguration des Scans angeht, zielen auf
Reduktion der Menge an Zeit, die benötigt wird, Daten während des
Testens zu oder von Anschlüssen
zu schicken. Nicht auf die Verbesserungen von Zugriffsgeschwindigkeit
bezogen offenbart US Patent 5.991.908 eine Familie von FPGAs (kundenprogrammierbare
Gate Arrays) und eine festverdrahtete Anordnung (eine maskenprogrammierbare
Schaltung), die den Betrieb der FPGAs von jedem der Familie emulieren
kann. Die festverdrahtete Anordnung wird verwendet, um die FPGAs
in Schaltungsmodulen zu ersetzen, die genügend entwickelt worden sind,
um Massenfertigung ohne weitere Designänderungen zu erlauben. Sowohl
die FPGAs als auch die festverdrahteten Anordnungen sind mit einem
Boundary-Scan-Interface versehen. Leiterplatten, die entweder das
FPGA oder die festverdrahtete Version enthalten, werden auf dieselbe
Art getestet. Aber da verschiedene FPGAs in der Familie unterschiedliche
Anzahlen von Anschlüssen
haben, die überdies
als Eingangs- oder Ausgangsanschlüsse programmiert werden können, ist
es notwendig, die Boundary-Scan-Kette in der festverdrahteten Anordnung
zu rekonfigurieren, um so der des emulierten FPGAs zu entsprechen.
Offensichtlich muss diese Rekonfiguration nur einmal durchgeführt werden,
wenn das FPGA programmier ist, vermutlich auf dieselbe Art wie der
Großteil
des FPGAs programmiert ist.
-
Der
Testzugriffs-Port ist mehr und mehr für andere Verwendung als nur
strukturelles Testen untersucht worden. Zur Programmierung von Flash-Anordnungen
und PLDs ist es schon üblich,
den TAP für
den Zugriff zu verwenden. Der 5-polige Steckverbinder ist für strukturelles
Testen schon auf dem PCB (Leiterplatte) vorhanden, so werden zusätzliche
Steckverbinder für
das Programmierung nicht benötigt,
was Leiterplattenplatz spart. Die vorliegende Erfindung zieht die
Verwendung des TAPs und der Boundary-Scan-Implementierung für das Debuggen von Design während des
Prototypenbaus und andere Arten von Zugriff, wo ein hoher Durchsatz gefordert
ist, in Erwägung.
-
Entwicklung
einer Applikation oder eines Systems besteht aus mehreren Stufen.
Eine dieser Stufen ist die Entwicklung des eigentlichen Designs
für eine
Verbraucherapplikation wie TV oder DVD. Bevor volle Produktion startet
werden Prototypen entwickelt. Während
des Prototypenbaus umfasst Testen der Applikation mindestens das
Folgende:
- – Elektrische
Verbindungsleitungstests, oft als strukturelle Tests bezeichnet.
Der IEEE1149.1-Standard ist heutzutage ein gut anerkannter und geschätzter Standard
für strukturelles
Testen von PCBs.
- – Funktionstests überprüfen Verbindungsleitungen,
die in strukturellen Tests nicht gelöst werden können.
-
Debuggen
des eigentlichen Designs. Während
des Debuggens kann die Funktionalität der Applikation (beispielsweise
ein TV oder DVD) überprüft werden.
Diese Design-Debug-Phase ist typisch für den Prototypenbau, wo das
eigentliche Design noch nicht festgelegt ist. Hier kann Unrichtigkeit
in dem Design in Ordnung gebracht werden. Wenn die Applikation in
voller Produktion ist, wird Debuggen nicht mehr gebraucht und funktionale
und strukturelle Tests überprüfen die
Funktionalität
des Designs.
-
Während des
Prototypenbaus ist Debuggen auf Leiterplattenniveau gemeint, um
Designfehler zu eliminieren. Die ist ein wichtiger Schritt, bevor
die Produktion starten kann. Hier liegt der Fokus auf Aspekten wie:
- – Designfehler
in dem System,
- – Layoutfehler
der Leiterplatte
- – Softwarefehler
- – Chipdesignfehler
in der Applikation.
-
Alle
diese Aspekte sind dem Schritt des Gesamtdesigndebuggens wichtig,
um korrektes Funktionieren zu überprüfen.
-
Wenn
das Debuggen des Designs schnell und effizient getan werden muss,
ist Zugriff auf die ICs von wesentlicher Wichtigkeit. Traditionell
wird diese durch Kontaktieren der verfügbaren Steckverbinder auf dem PCB,
um die Daten zu überwachen,
getan. Viele funktionale Datenströme können auf dem traditionellen
Weg untersucht werden. Aber Datenströme, die an den Steckverbindern
nicht verfügbar
sind, können
während
des Prototypenbaus genauso wichtig zu untersuchen sein. Da die Verwendung
von SOP-Gehäusen
und BGA schnell anwächst,
ist es mehr und mehr schwierig, Messungen auf dem PCB durchzuführen. Sondenzugriff
auf diese Pins ist dann überhaupt
nicht offensichtlich. Daneben verursacht starker Druck auf die Kosten,
PCBs herzustellen, dass die Applikation weniger Oberfläche auf
der Leiterplatte einnimmt. Hinzufügen zusätzlicher Testflecken zur Verwendung
mit Testnadeln ist oft nicht durchführbar. Aus diesem Grund sehen
Designer nach einem Austausch zwischen Leiterplattenplatz und den
für ICs
erforderlichen zunehmender Programmierungs- und Debug-Zugriffsmöglichkeiten.
Zur Zeit können
Datenströ me,
auf die nicht durch Standardvorrichtungen zugegriffen werden kann,
nicht überprüft werden
oder es ist mindestens sehr schwierig es zu tun.
-
Diese
Stufe des Debuggen des Design ist ein zeitraubender und deshalb
teurer Teil in dem Gesamtzyklus der Produktkreation. Viel teure
Zeit man in einem Design nach Fehlern sucht, die aufgrund von Zugriffsproblemen
nicht lokalisiert werden können.
Es müssen
andere Mittel des Zugriffs und der Überwachung erzeugt werden,
um auf diesen Chips Datenströme
zu überwachen.
-
Debuggen
des Systems erfordert auch Zugriff durch Steckverbinder oder Testpunkte.
Verwendung der TAP-Ports ist schon für Debuggen auf Chip-Ebene wie
auch für
Debuggen von Software mit Benutzen des EJTAG-Ports demonstriert
worden. Verwenden des TAP-Ports für Debuggen der Designfunktionalität auf Leiterplatten-Ebene
ist eine logische Erweiterung. Die implementierte Boundary-Scan-Architektur,
die Kontakt zu jedem I/O-Pin eines ICs hat, verbessert den Zugriff
auf andere Pins. In der Prototypenbaustufe macht dies möglich, Datenströme zu anders
nicht zugreifbaren Pins zu überwachen,
ohne zusätzliches
Leiterplattendesign hinzuzufügen
zu müssen.
-
Der
Standard-Boundary-Scan-Test setzt die Applikation in den Testbereich,
nicht in den Funktionsbereich. Dies vermeidet, dass funktionale
Daten durch die Kette zu dem TAP-Steckverbinder oder andere Pins in
der Applikation geschickt werden.
-
Im
Prinzip können,
wenn ein IC in den EXTEST-Modus gesetzt wird und alle anderen unter
Verwendung des BYPASS-Befehls in den Funktions-Modus gesetzt werden,
TDO als Beobachter für
funktionale Daten und TDI als ein Treiber verwendet werden. Der
mit dem IC, das den Debug-Datenstrom trägt, verbunden ist, sollte selektiert
werden. Für
bestimmte Situationen, wo vordefinierte Werte an die Pins gelegt
werden müssen, müssen diese
ICs in CLAMP, während
das IC, das die Daten zu dem TAP überträgt, in EXTEST sein muss.
-
Das
grundsächliche
statische Verhalten von Boundary-Scan aber schränkt die Verwendung für Funktionalität durch
getriebenen Test oder Debuggen ein. Die serielle Natur der Boundary-Scan-Kette
reduziert die effektive Taktfrequenz an den digitalen Pins. Obwohl
die Testfrequenz (TCK) im Allgemeinen in dem Bereich 10–20 MHz
ist, haben die meisten ASIC-Design Ketten mit 1000 Zellen, was die
Geschwindigkeit an IC-Pins (Datenrate) effektiv auf 10 kHz reduziert.
Für die
meisten (Verbraucher-)Applikationen wie DVDR und digitales TV kann
10 kHz als fast statisch angesehen werden. Normalerweise reicht
diese niedrige Frequenz nicht für richtiges
und zuverlässiges
Debuggen der funktio nalen Merkmale aus, was viel höhere Geschwindigkeiten
erfordert. Umgehen von Zellen in der Kette, die zum Durchführen des
bestimmten Debug-Tests nicht erforderlich sind, kann die effektive
Geschwindigkeit erhöhen.
Außerdem
sind alle Pins des ICs entweder in einem Funktions-Modus oder im
Boundary-Scan-Modus, wenn der normale Boundary-Scan durchgeführt wird.
-
Debuggen
unter Verwendung eines Boundary-Scan-Interfaces ist aus einem Artikel
mit dem Titel „IEEE1149.11-compliant
access architecture for multiple core debug on digital system chips" von B. Vermeulen et
al., veröffentlicht
in den Proceedings International Test Conference 2002, ITC 2002
Baltimore, 7–10
Okt. 2002, Seiten 55–63
(EPO Referenz XP010609726) bekannt.
-
Die
Europäische
Patentanmeldung Nr. 855654 offenbart ein Verfahren, ein IEEE1149.1-kompatibles Testinterface
an eine Busstruktur anzuschließen.
-
Es
ist eine Aufgabe der Erfindung, die Tauglichkeit eines Testinterfaces
einer integrierten Schaltung für
die Verwendung bei Debuggen zu verbessern.
-
Es
ist eine weitere Aufgabe der Erfindung, die Zugriffsgeschwindigkeit,
bei der auf selektierte Anschlüsse
in Schaltungen über
eine Boundary-Scan-Kette zugegriffen werden kann, zu erhöhen.
-
Die
Erfindung schafft eine integrierte Schaltung gemäß Anspruch 1. Gemäß der Erfindung
unterstützt eine
integrierte Schaltung, die zu Testzwecken eine Boundary-Scan-Kette hat, einen
weiteren Modus, in den sie durch einen Befehl geschaltet werden
kann. Der weitere Modus ist für
Zwecke des Debuggens designt, aber ohne von der Erfindung abzuweichen,
kann er für
andere Zwecke, die effizienten Zugriff erfordern, verwendet werden.
In dem weiteren Modus transportieren selektierbare erste der Zellen
Daten seriell entlang der Boundary-Scan-Kette, während selektierbare zweite
der Zellen Daten schreiben oder lesen, die in dem weiteren Modus
durch die ersten der Zellen zu oder von den Anschlüssen von
oder zu der Scan-Kette transportiert worden sind oder transportiert
werden sollen. Die ersten der Zellen lesen oder schreiben in dem
weiteren Modus nicht Daten von oder zu den Anschlüssen.
-
Dies
wird vorzugsweise durch Bereitstellen einer Multiplexerschaltung
realisiert, die erlaubt, dass die ersten der Zellen in dem weiteren
Modus in der Schieberegisterstruktur umgangen werden, wenn die zweiten der
Zellen Daten direkt von der Schieberegis terstruktur oder nach Speichern
in einem Scan-Flipflop oder einem Update-Flipflop der zweiten der
Zellen von oder zu der Schieberegisterstruktur ausgeben oder einnehmen.
-
Vorzugsweise
werden Zellen mithilfe von Konfigurationsinformation, die über das
Test-Interface in Konfigurationszellen geladen wird, selektiert,
erste oder zweite der Zellen zu sein. Vorzugsweise gibt es für jede jeweilige
Boundary-Scan-Zelle eine Konfigurationszelle, sodass jede Boundary-Scan-Zelle,
die den weiteren Modus unterstützt,
individuell selektiert werden kann, unabhängig von den anderen Zellen
eine erste oder zweite der Zellen zu sein.
-
In
einer weiteren Ausführungsform
werden die Update-Flipflops der Boundary-Scan-Zellen als Konfigurationszellen
verwendet. Während
des normalen Testens fungieren Update-Flipflops, um Testdaten an
den Funktionsausgang der Scan-Zelle zu liefern, aber in dem weiteren
Modus fungieren sie, um zu selektieren, ob individuelle Zellen als
erste oder zweite der Zellen arbeiten.
-
In
einer ersten Ausführungsform
kann die Boundary-Scan-Kette Signale asynchron übergeben, ohne sie in die Schieberegisterstruktur
zu speichern. Daten werden direkt von selektierten Anschlüssen gelesen und/oder
zu diesen Anschlüssen
geschrieben und transparent entlang des Scan-Pfades übergeben,
ohne gespeichert zu werden.
-
In
einer zweiten Ausführungsform
arbeitet die Boundary-Scan-Kette in dem weiteren Modus synchron, sodass
Eingangsdaten zwischengespeichert werden, bevor sie in dem weiteren
Modus durch die Boundary-Scan-Kette weitergegeben, bevor sie von
der Boundary-Scan-Kette ausgegeben werden.
-
In
einer weiteren Ausführungsform
unterstützt
die integrierte Schaltung beide Modi und einen Befehl, zu selektieren,
in welchem Modus die integriere Schaltung arbeitet.
-
Diese
und andere Aufgaben und vorteilhafte Aspekte der Erfindung werden
detaillierter mit Bezug auf die Zeichnung beschrieben. In dieser
zeigen:
-
1 die
Architektur einer integrierten Schaltung;
-
2 einen
Eingangsblock zur Verwendung in einer Boundary-Scan-Kette;
-
3 einen
Ausgangsblock zur Verwendung in einer Boundary-Scan-Kette;
-
4 einen
weiteren Block zur Verwendung in einer Boundary-Scan-Kette;
-
5 einen
Eingangsblock zur Verwendung in einer Boundary-Scan-Kette;
-
6 einen
Ausgangsblock zur Verwendung in einer Boundary-Scan-Kette;
-
7 einen
Eingangsblock zur Verwendung in einer Boundary-Scan-Kette;
-
8 einen
Ausgangsblock zur Verwendung in einer Boundary-Scan-Kette; und
-
9 ein
Debug-System.
-
Beim
Entwickeln der ersten konzeptionellen Implementierung wurde gewählt, Standard-Boundary-Scan-Zellen,
wie sie durch den IEEE1149.1-Standard definiert sind, zu verwenden.
Die erforderliche Erweiterung ist um diese Standardzellen herum
gebaut. Die Erweiterung zu der Basisarchitektur ist für beide
Modi gleich. Der Unterschied tritt auf Zellen- oder Chip-Pin-Niveau
auf und wir in den nächsten
zwei Abschnitten erklärt.
-
1 zeigt
die erweiterte Architektur eines integrierten Schaltungschips (IC),
der den TAP-Port für
Zugriff auf den Chip verwendet, und die Boundary-Scan-Zellen für den Zugriff
auf die bestimmten IC-Pins. Die integriere Schaltung umfasst eine
Kernschaltung 10, externe Anschlüsse 16 und eine Vielzahl
von Boundary-Scan-Blöcken 12.
Jeder Boundary-Scan-Block 12 hat einen Scan-Eingang SI,
einen Scan-Ausgang SO, und einen Funktionsausgang PO (aus Gründen der
Klarheit nur für
einen Block gezeigt). Die Boundary-Scan-Blöcke 12 sind in einer
Boundary-Scan-Kette gekoppelt, in der die So und SI aufeinander
folgenden Blöcke
verbunden sind. Blöcke 12 schließen die
Kernschaltung 10 an die Anschlüsse 16 mit den Funktions-Eingängen und
Ausgängen
PI, PO an. Abhängig
davon, ob der Anschluss als Eingang oder Ausgang verwendet wird,
ist der Funktionseingang PI oder der Funktionsausgang PO des Scan-Blocks 12 an
den Anschluss und der Funktionsausgang PO oder der Funktionseingang
PI ist an die Kernschaltung angeschlossen.
-
Die
integriere Schaltung hat konventionelle P1149.1 Testanschlüsse TDI,
TDO, TCK, TMS und TRST und einen an die Boundary-Scan Blöcke 12 gekoppelten
TAP (Testzugriffs-Port) Controller (TAP-C). Um der Klarheit halber
sind Steuerverbindungen zu den Blöcken für konventionelle P1149.1-Steuerung
nicht gezeigt. TAP-Controller TAP-C hat Ausgänge für Signale CTL und MODE, die
parallel mit allen Boundary-Scan-Blöcken 12 gekoppelt
sind.
-
Die
integrierte Schaltung enthält
auch eine Kette von Konfigurationszellen 14, die als konventionelle Scan-Zellen
implementiert werden können.
Die Kette der Konfigurationszellen ist parallel zu der Boundary-Scan-Kette
zwischen den Testdateneingang TDI und den Testdatenausgang gekoppelt.
Unter der Kontrolle von Befehlen steuert TAP-Controller TAP-C, welche Kette Daten
zwischen TDI und TDO empfängt
und aussendet, TAP-Controller TAP-C liefert ein HOLD-Signal an die
Konfigurationszellen 14.
-
Jede
Konfigurationszelle 14 hat einen Konfigurationssignalausgang,
der an einen Konfigurationseingang eines entsprechenden der Boundary-Scan-Blöcke 12 gekoppelt
ist. So empfangen die Boundary-Scan-Blöcke 12 gemeinsame
Signale CTL und MODE und Block-spezifische Konfigurationssignale.
-
Zwei
Modi (synchron und asynchron) sind in derselben Architektur implementiert.
Zwei neue private Befehle sind in dem Befehlsregister des Boundary-Scan-TAP-Controllers erzeugt,
einer für
den synchronen Modus (SYNC) und einer für den asynchronen Modus (ASYNC).
Diese Befehle selektieren den geforderten Modus. Ein separates Konfigurationsregister
(die Konfigurationszellen) in gleicher Länge wie die Boundary-Scan-Kette wird verwendet,
um jeden Boundary-Scan-Zellen-Block (BS-Block) zu steuern. Der BS-Block
ist ein Teil, der aus einer Standard-Boundary-Scan-Zelle mit zusätzlicher,
für den
Debug-Modus benötigter
Logik besteht. Das Konfigurationsregister hält die Einstellung für jeden
aktiven und inaktiven Pin für
Debuggen. Aktiv bezieht sich auf Lese- und Schreibzugriff auf einen
IC-Pin, inaktiv darauf, dass man keinen Lese- und Schreibzugriff
hat. Steuersignale sind erforderlich, um beide Modi möglich zu
machen. 1 zeigt nur die zusätzlichen,
für diese
Implementierung notwendigen Steuersignale. Steuerung wird durch
globale Steuerleitungen (CTL, MODE, HOLD) und durch lokale, Zellen-spezifischen
Steuerleitungen (CFG(i)) erreicht. Die globalen Steuerleitungen
CTL und MODE sind von dem TAP-Controller zu jeden BS-Block verlegt.
HOLD ist von dem TAP-Controller zu jeder Zelle des Konfigurationsregisters
verlegt. Die lokalen Leitungen CFG(i) sind BS-Blockspezifisch und
zwischen dem BS-Block und der steuernden Zelle des Konfigurationsregisters
verlegt.
-
Funktionsprinzip
-
Wenn
ein Modus ausgewählt
ist, wird die Konfiguration in das gesamte Konfigurations-(Schiebe)
Register geladen. CFG(i)= "1" zeigt an, dass der
spezielle BS-Block
Funktionsdaten von oder zu dem IC-Pin lesen oder schreiben wird.
Ein „0" zeigt das Gegenteil
an, der BS-Block wird umgangen eine keine Daten werden von oder
zu dem IC-Pin gelesen
oder geschrieben. Das HOLD-Signal garantiert, dass die Konfigurationseinstellung
sich während
des Testens nicht ändert.
Nach Konfiguration wird der Modus durch Selektieren des korrekten
privaten Befehls (SYNC oder ASYNC) gewählt. Jeder Befehl tut die korrekten
privaten Werte auf die globalen Signale CTL und MODE. CTL garantiert,
dass die totale Implementierung mit IEEE1149.1 konform geht, MODE
bestimmt den SYNC- oder ASYNC-Modus. Die Tabelle unten zeigt die
erforderlichen Werte für unterschiedliche
Situationen.
-
-
Eingang-Pins und Ausgangs-Pins
-
Der
BS-Block selbst bestimmt, wie der spezifische Modus in das Zellen-Design einbezogen
wird. Für diese
erweiterte Architektur umgibt die zusätzliche Logik die Boundary-Scan-Grundzelle.
Das Design der Standard-Boundary-Scan-Zelle wird zu dem Zweck des
Prototyp-Baus nicht geändert.
Das Standard-Boundary-Scan-Protokoll für die Status-Maschine wird
auch für
die zwei neuen Modi verwendet. Aus diesem Grund werden die Werte
für C0–C3 durch
automatisierte Boundary-Scan-Implementierungssoftware bestimmt.
-
2 zeigt
das wirkliche Design für
einen Boundary-Scan-Eingangsblock. Element 20 ist eine
Standard-Boundary-Scan-Eingangszelle mit an einen Scan-Eingang SI
gekoppelten Eingängen
und einem Funktionseingang PI (gekoppelt an einen externen Anschluss
des ICs) und an einen an einen Scan-Ausgang SO gekoppelten Ausgängen und
einem an eine Kernschaltung des ICs gekoppelten Funktionsausgang
PO. Decodierungslogik 22 ist zum Erzeugen der Steuersignale
bereitgestellt. Zusätzlich
werden nur zwei Multiplexer 24, 26 verwendet,
um das richtige Routing der Testsignale für beide Modi zu erzeugen.
-
Die
Standard-Boundary-Scan-Zelle umfasst eine Multiplexer-Eingangsschaltung 200, 202,
ein Scan-Flipflop SFF, einen Update-Multiplexer 206, ein
Update-Flipflop
UFF und einen Ausgangs-Multiplexer 209. Scan-Eingang SI,
Funktions-Eingang PI und ein Ausgang von Scan-Flipflop SFF sind
an Eingänge
der ersten Multiplexerschaltung 200, 202 gekoppelt.
Multiplexerschaltung 200, 202 hat einen an einen
Dateneingang von Scan-Flipflop SFF gekoppelten Ausgang. Update-Multiplexer 206 hat
an einen Datenausgang von Scan-Flipflop SFF und einen Ausgang von
Update-Flipflop UFF gekoppelte Eingänge. Update-Multiplexer 206 hat
einen an einen Dateneingang von Update-Fliflop UFF gekoppelten Ausgang.
Ausgangs-Multiplexer 209 hat an einen Funktionseingang
PI und einen Datenausgang von Update-Flipflop UFF gekoppelte Eingänge. Ausgangs-Multiplexer 209 hat
einen an Funktionsdatenausgang PO gekoppelten Ausgang. Scan-Flipflop SFF und
Update-Flipflop UFF werden von Testtakteingang TCK getaktet. Erste
Multiplexerschaltung 200, 202 wird durch Signale
C0, C1 von dem TAP-Controller gesteuert, Update-Multiplexer 206 wird
durch ein Signal C2 von dem TAP-Controller gesteuert und Ausgangsmultiplexer 209 wird
durch ein Signal C3 von dem TAP-Controller gesteuert. C0–C3 sind
Standard-IEEE1149.1 Signale, die verwendet werden, um Boundary-Scan-Zelle 20 in verschiedene
Betriebsmodi zu schalten.
-
Scan-Flipflop
SFF kann eine Serie von zwei Flipflops umfassen, die Daten von ihren
Eingängen
zu untereinander entgegengesetzten Flanken des Testtakts TCK laden.
Alternativ kann das erste dieser Flipflops irgendwo in dem Pfad
von dem Scan-Eingang SI zu dem Scan-Flipflop SFF platziert werden,
aber nicht in der Verbindung zwischen dem Scan-Eingang SI und dem
ersten zusätzlichen
Multiplexer 24.
-
Der
erste zusätzliche
Multiplexer 24 hat an Funktionsdateneingang PI und Scan-Eingang
SI gekoppelte Eingänge.
Der zweite zusätzliche
Multiplexer 26 hat einen Ausgang des ersten zusätzlichen
Multiplexers 24 und dem Datenausgang von Scan-Flipflop
SFF gekoppelte Eingänge.
Ein Ausgang des zweiten zusätzlichen Multiplexers 26 ist
an Scan-Ausgang SO gekoppelt. Es wird erkannt werden, dass die zusätzlichen
Multiplexer 24, 26 als eine Multiplexerschaltung
mit drei Eingängen
fungiert, die jeden ihrer Eingänge
an ihren Ausgang koppeln kann. Ohne von der Erfindung abzuweichen
können
andere Multiplexerschaltungen verwendet werden.
-
Decoderlogik 22 hat
Eingänge
für ein
Steuerungssignal CTL- ein Modus-Selektionssignal
MODE und ein Konfigurationssignal CFG(i) für den Block. Decoderlogik 22 speist
das logische ODER von CFG(i) und das Inverse von CTL an einen Steuerungseingang
des ersten zusätzlichen
Multiplexers 24. Decoderlogik 22 speist ein weiteres
ODER oder das Inverse dieses logischen ODER und das logische UND
des Modussignals und des Konfigurationssignals an den Steuerungseingang
des zweiten zusätzlichen
Multiplexers.
-
Der
Leser kann unter Verwendung der Tabelle leicht verifizieren, dass
normales EXTEST noch dem Standard entspricht. Das heißt, dass
wenn Decoderlogik den zweiten zusätzlichen Multiplexer 26 setzt,
das Ausgangssignal von Scan-Flipflop SFF weiterzugeben, die Schaltung
als eine konventionelle Boundary-Scan-Zelle arbeitet.
-
In 3 ist
das tatsächliche
Design für
einen Ausgangsblock gezeigt. Hier ist der Funktionseingang an die
Kernschaltung gekoppelt und der Funktionsausgang ist an den externen
Anschluss gekoppelt. Der Ausgangsblock enthält eine Standard-Boundary-Scan-Zelle 20 und
Decoderlogik 22, die identisch mit denen des Eingangsblocks
sind. Verglichen mit dem Eingangsblock ist der erste zusätzliche
Ausgangsmultiplexer von dem Ausgangsblock weggelassen, wobei der
zweite zusätzliche
Multiplexer 26 an Scan-Eingang SI und den Datenausgangs
des Scan-Flipflops der Boundary-Scan-Zelle gekoppelte Eingänge hat.
Zusätzlich
sind ein weiterer Ausgangsmultiplexer 37 und ein Tri-State-Puffer 38 enthalten.
Der Ausgang von Ausgangsmultiplexer 209 und der Scan-Eingang
SI sind an die Eingänge
des weiteren Ausgangsmultiplexers 37 gekoppelt, der einen über Tri-State-Puffer 38 an
den Funktionsausgang PO gekoppelten Ausgang hat. Das Steuersignal
des weiteren Ausgangsmultiplexers 37 ist das MODE-Signal.
Tri-State-Puffer 38 wird von dem logischen ODER von CFG(i)
und dem Inversen von CTL gesteuert. Der Tri-State-Puffer 38 ist
dazugefügt,
um den angeschlossenen IC-Pin Tri-State zu machen. Indem CFG(i)
= 0 genommen wird, wird der Pin inaktiv gesetzt. Für dieses Design
des Ausgangsblocks kann verifiziert werden, dass EXTEST noch dem
Standard entspricht.
-
Die
nächsten
beiden Abschnitte diskutieren die Funktionsweise des Eingangs- und
Ausgangspins für jeden
Modus im Detail.
-
Synchroner Modus – rekonfigurierbares
Boundary-Scan
-
Der
synchrone Modus ist streng mit dem normalen Boundary-Scan verwandt.
Der Hauptunterschied ist, dass die Standardkettenlänge an die
Debug-Situation angepasst wird. Dies kann Schaltungs-intern getan werden
und liefert die Möglichkeit,
mehrere unabhängige
Datenströme über einen
oder mehr Pins zu haben. Die effektive Transfergeschwindigkeit ist
verglichen mit einem normalen Boundary-Scan wegen des rekonfigurierbaren
Charakters der Kette höher.
-
Wenn
man wieder 2 bedenkt, kann die Funktion
des Blocks im SYNC-Modus
verstanden werden. Der bestimmte Pin kann mit dem Konfigurationssignal
CFG(i) aktiv (für
Datenströme
verwendet) oder inaktiv (nicht für
Datenströme
verwendet) gesetzt werden. Die Tabelle zeigt die Werte an den Multiplexern
A und B, die die erforderlichen Pfade setzen.
-
-
-
Die
Tabelle zeigt, dass ein transparenter Pfad von SI nach SO erzeugt
wird, wenn die Zelle inaktiv gesetzt wird. Wenn aktiv, wird SFF
verwendet, um einen Pfad von PI nach SO zu erzeugen und UFF tut
die Daten zu dem Kern (wie in IEEE1149.1 definiert). Mit diesem
normalen Boundary-Scan-Statusmaschinen-Protokoll für die Zelle
ist der letztere Pfad ein normaler Boundary-Scan-Pfad.
-
Für Ausgangszellen
gilt die Tabelle unten (siehe auch 3).
-
-
Wenn
die Zelle aktiv ist, wird normales Takten durch die Statusmaschine
verwendet. Ein Pfad von SI durch die Boundary-Scan-Zelle nach PO
wird erzeugt. Der Puffer ist freigegeben (ENA). Wenn inaktiv, wird
derselbe transparente Pfad von SI nach SO erzeugt wie für die Eingangszelle.
Der Puffer ist Tri-State.
-
Der
Charakter dieser Implementierung ist der einer rekonfigurierbaren
Boundary-Scan-Kette.
-
Datenrate über den
IC-Pins
-
Der
Vorteil, die Kette Schaltungs-intern auf einige Zellen anzupassen
ist, dass die effektive Datenrate oder Transferfrequenz an dem IC-Pin
erhöht
wird.
-
Um
dies zu verstehen, betrachte man einen Chip mit 100 Boundary-Scan-Zellen, einer TCK-Frequenz von
20 MHz und einem aktiv gesetzten Pin. Für Standard-EXTEST braucht es 104 TCK-Zyklen, um
die ersten Daten an den aktiven Pin zu bringen. Etwa 4 TCK-Zyklen
werden für
die Statusmaschine verwendet und 100 TCK-Zyklen werden benötigt, um
durch die Kette zu schieben. Dies gleicht einer Datentransferrate
von 0,2 MHz.
-
Beim
Verwenden einer rekonfigurierbaren Boundary-Scan-Kette ist die Konfiguration
so, dass diese(r) bestimmte Zelle/Pin die einzige Zelle in der Kette
ist. Dies reduziert die Kettenlänge
von 100 Zellen auf eine einzelne Zelle. Die Erhöhung in der effektiven Datenrate
ist offensichtlich. Noch einmal 4 Zyklen für die Statusmaschine, aber
nur 1 zum Schieben, was eine Frequenz von 20/5 = 4 MHz an dem Pin
liefert. Wenn 6 Pins selektiert werden, wird die Frequenz zudem
20/10 = 2 MHz. Im Grenzfall wird die normale Boundary-Scan-Kette
mit ihrer niedrigen Geschwindigkeit (mit allen Charakteristiken
des normalen Boundary-Scans) gewählt.
Dieser Frequenzbereich (1–5
MHz) ist oft zum Testen der Funktionalität eines Designs geeignet. Es
sei bemerkt, dass einer oder zwei Multiplexer in dem Scan-Pfad die
effektive Geschwindigkeit nicht limitieren, aber Geschwindigkeit
limitieren, wenn viele aufeinander folgende Zellen inaktiv sind.
In dem Fall addiert jede Zelte einen oder zwei Multiplexer zu dem
Scan-Pfad. Dann kann die Gesamtverzögerung dieser Multiplexer für korrektes
Takten im synchronen Modus ½ TCK
nicht übersteigen.
-
Daten-Streaming an IC-Pins
-
In
dem synchronen Modus wird das normale Taktgabe-Protokoll wie in
IEEE1149.1 definiert verwendet. Ähnlich
zu normalem strukturellen Testen kann der synchrone Modus unterschiedliche
Datenströme
an verschiedenen Pins lesen und schreiben. Das Verwenden einer rekonfigurierbaren
Kette durch diesen Modus macht es möglich, dass Zellen/Pins, die
nicht für
das Testen selektiert werden, transparent von SI nach SO geleitet
werden. Da die Gesamtlänge
der Kette reduziert ist, benimmt sich jeder aktive Pin in Übereinstimmung mit
dem Standardprotokoll. Die selektierte Kette wird mit Daten geladen,
worauf eine Update-Stufe folgt. Dieser Prozess wird für längere Datenflüsse wiederholt.
Jeder aktive Pin kann unterschiedliche Daten transportieren.
-
Asynchroner Modus – direktes
Daten-Streaming
-
Der
asynchrone Modus ist von Wichtigkeit, wenn Geschwindigkeit während des
Testens das Hauptthema ist. Dieser Modus ist völlig verschieden von dem synchronen
Modus, da er die aktuelle Boundary-Scan-Zelle nicht verwendet. Daten
werden von oder zu dem IC-Pin gelesen oder geschrieben und direkt
zu dem Scan-Pfad transferiert. Jeder erzeugte Pfad ist ein transparenter
Pfad. Die Einstellungen für
Eingangszellen sind in der Tabelle unten gezeigt (siehe auch 2).
-
-
Die
Funktionsweise ist unkompliziert. Multiplexer B ist immer „1", da der Boundary-Scan-Zellen-Ausgang
nie verwendet wird. Multiplexer A erzeugt einen transpa renten Pfad
von SI nach SO, wenn die Zelle inaktiv ist, und einen Pfad von PI
nach SO, wenn die Zelle aktiv ist. Die Tabelle unten ist für Ausgangszellen
gültig (siehe
auch 3)
-
-
Wenn
die Zelle inaktiv ist, wird ein Pfad von SI nach SO mit einem Tri-State-Puffer erzeugt.
Wenn aktiv, ist der Puffer freigegeben und der transparente Pfad
SI nach SO wird erzeugt, um zu erlauben, dass Daten auch zu anderen
Pins geleitet werden.
-
Datenrate über den
IC-Pins
-
Takten
wird in dem asynchronen Modus vermieden. Dies liefert die Möglichkeit, über die
Grenzen der normalen Boundary-Scan-TCK-Frequenz hinauszugehen. Tatsächlich ist
der Scan-Pfad, einmal mit den korrekten Einstellungen in diesem
Modus, frei für
jegliche digitalen Funktionsdaten. Die Datenrate ist hauptsächlich durch
das Testsignal limitiert. Wenn dieses Signal von einem JTAG-Tester
kommt, ist es im Allgemeinen auf 20 MHz limitiert. Aber wenn Echtzeitdaten
von einem anderen Chip auf der Leiterplatte getestet werden, ist
die Grenze theoretisch durch funktionales Design bestimmt. Wie in
dem asynchronen Modus gibt es durch die Multiplexer in dem Scan-Pfad
induzierte Verzögerung.
Trotzdem ist diese Verzögerung
für Debuggen
hier nicht kritisch, da Takten kein Thema ist.
-
Daten-Streaming an IC-Pins
-
In
dem asynchronen Modus können
Hochgeschwindigkeitssignale direkt zu den Pins transferiert werden,
aber alle Pins haben denselben Datenstrom. Dies gilt, weil die Implementierung
aus parallelen Verbindungen besteht. Es wird keine Halte-Funktion
verwendet, wie es in dem synchronen Modus getan wird. In der Praxis
wird dieser Modus im Allgemeinen zum Testen von Daten an einem einzelnen
Pin verwendet. Aber um den Pin in den asynchronen Modus zu bringen,
ist Eingriff von dem TAP-Controller erforderlich, da dieser die
zusätzlichen
Multiplexer steuert. Nach dieser Initialisierung sind die selektierten
Pins frei, Daten zu transferieren, wenn der TAP-Controller in dem
Schiebe-Status ist.
-
Zweite Ausführungsform
-
In
der zweiten Ausführungsform
ist als Beispiel nur ein einzelner Debug-Modus implementiert, der ein Umgehen
inaktiver Zellen liefert. Anstatt der Steuersignale CTL, MODE liefert
der TAP-Controller ein Steuersignal „STREAM" an alle Zelle, um die Zellen zwischen
dem normalen Modus und dem Debug-Modus umzuschalten.
-
4 zeigt
eine zweite Ausführungsform
eines Boundary-Scan-Blocks. Verglichen mit dem Eingangsblock von 2 sind
eine Anzahl von Änderungen
gemacht worden. Der erste zusätzliche
Multiplexer 24 wurde weggelassen. Zusätzlicher Multiplexer 26 hat
an den seriellen Scan-Eingang SI und den Datenausgang von Scan-Flipflop
SFF gekoppelte Eingänge.
Der Steuerungseingang des zusätzlichen
Multiplexers 26 ist an den Ausgang eines logischen Gatters
gekoppelt, das das logische UND des Konfigurationseingangs CFG(i)
der Zelle und dem STREAM-Signal produziert. Ein Steuerungsmultiplexer 40 ist
bereitgestellt, der an den Konfigurationseingang CFG(i) und den
konventionellen Steuerungseingang C3 von Ausgangsmultiplexer 209 gekoppelte
Eingänge
hat. Der Ausgang von Steuerungsmultiplexer 40 ist an den
Steuerungseingang von Ausgangsmultiplexer 209 gekoppelt.
Der Steuerungseingang von Steuerungsmultiplexer 40 ist
an den STREAM-Eingang
gekoppelt.
-
Im
Betrieb, wenn „STREAM" logisch LO ist,
arbeitet der Block als eine normale IEEE1149.1-Zelle. Wenn STREAM
logisch HI ist, hängt
die Funktionsweise vom Konfigurationssignal CFG(i) des Blocks ab.
Blöcke,
die selektiert sind, inaktiv (CFG(i) = 0) zu sein, leiten den Scan-Eingang
SI zu dem Scan-Ausgang SO und den Funktionseingang PI zu dem Funktionsausgang
um. Blöcke,
die selektiert sind, aktiv (CFG(i) = 1) zu sein, schieben Daten
von dem Scan-Flipflop SFF zu dem Scan-Ausgang und leiten Daten von
dem Update-Flipflop UFF zu dem Funktionsausgang.
-
Der
Länge der
Boundary-Scan-Kette kann so mithilfe des Konfigurationssignals angepasst
werden, inaktive Blöcke
aus der Kette zu eliminieren. Die aktiven Blöcke können in der verkürzten Kette
als normale Boundary-Scan-Zellen betrieben werden. Die inaktiven
Blöcke
verbinden die Anschlüsse 16 mit
der Kernschaltung 10.
-
Dritte Ausführungsform
-
In
der dritten Ausführungsform
wird das Update-Flipflop der Boundary-Scan-Zellen verwendet, um das Konfigurationssignal
zu liefern.
-
5 zeigt
den Eingangsblock der dritten Ausführungsform. Es wird eine konventionelle
Boundary-Scan-Zelle verwendet, außer dass ein erster Steuerungsmultiplexer 50 hinzugefügt worden
ist. Der erste Steuerungsmultiplexer 50 hat an den Ausgang
des Update-Flipflops UFF und den konventionellen IEEE1149.1-Steuerungseingang
C1, der verwendet wird, um Datenaufnahme von dem Funktionseingang
PI zu steuern, gekoppelte Eingänge.
Der Ausgang des ersten Steuerungsmultiplexers 50 ist an
den Eingang der Multiplexerschaltung 200, 202,
der die Datenaufnahme von dem Funktionseingang P1 steuert, gekoppelt.
Der Steuerungseingang des ersten Steuerungsmultiplexers 50 empfängt das
STREAM-Signal.
-
6 zeigt
den Ausgangsblock der dritten Ausführungsform. Es wird wieder
eine konventionelle Boundary-Scan-Zelle verwendet, außer dass
ein zweiter Steuerungsmultiplexer 60 und ein Update-Bypass-Multiplexer 62 hinzugefügt worden
sind. Der zweite Steuerungsmultiplexer 60 hat Eingänge, die
gekoppelt sind, um das Ausgangssignal des Update-Flipflops UFF und
das konventionelle P1149.1-Signal C3, das konventionell den Ausgangsmultiplexer 60 Steuert,
zu empfangen. Ein Steuerungseingang des zweiten Steuerungsmultiplexers 60 ist
gekoppelt, um das STREAM-Signal zu empfangen. Der zweite Steuerungsmultiplexer 60 hat
einen an einen Steuerungseingang von Ausgangsmultiplexer 209 gekoppelten
Ausgang.
-
Update-Multiplexer 62 hat
an den Datenausgang von Update-Flipflop UFF und den Datenausgang
von Scan-Flipflop SFF gekoppelte Eingänge. Ein Steuerungseingang
von Update-Bypass-Multiplexer 62 ist gekoppelt, um das
STREAM-Signal zu empfangen. Ausgangsmultiplexer 209 hat
an den Ausgang des Bypass-Multiplexers und den Funktionsdateneingang
PI gekoppelte Eingänge.
-
Im
Betrieb wird zuerst das normale Boundary-Scan-Protokol ausgeführt, um
Konfigurationsdaten in die Update-Flipflops zu laden. Anschließend wird
das normale Boundary-Scan-Protokol verwendet, um einen Befehl für den TAP-Controller
zu laden, um STREAM logisch HI zu setzen. Der Inhalt des Update-Flipflops
UFF steuert, ob Zellen aktiv sind, wenn das STREAM-Signal die integrierte
Schaltung in den Debug-Modus setzt.
-
In
den Eingangszellen, wo der Inhalt des Update-Flipflops UFF logisch
LO ist, fungiert Scan-Flipflop SFF nur als Teil der Schieberegisterstruktur
und wird nicht verwendet, um Daten von dem Funktionseingang P1 aufzunehmen.
Die Eingangszellen, wo der Inhalt des Update-Flipflops UFF logisch
HI ist, nehmen Daten von dem Funktionseingang PI bei jedem TCK-Taktzyklus
auf. Dies wird verwendet, wenn der TAP-Controller dazu gebracht
wird, den Schiebe-Status wiederholt anzunehmen, was während normalen
1149.1-Testens nur dafür
sorgt, Testdaten durch die Schieberegisterstruktur zu schieben.
Wenn STREAM logisch HI ist und TAP-Controller dazu gebracht wird,
den Schiebe-Status wiederholt anzunehmen, werden Daten in selektierten Eingangszellen
in jedem TCK- Taktzyklus
aufgenommen und anschließend
von der Eingangszelle durch die Schieberegisterstruktur geschoben.
-
Wenn
STREAM logisch HI ist, leiten solche Ausgangszellen, wo der Inhalt
des Update-Flipflops UFF logisch LO ist, Daten vom Funktionseingang
PI zum Funktionsausgang PO. Die Ausgangszellen, wo der Inhalt des
Update-Flipflops UFF logisch HI ist, Daten von der Schieberegisterstruktur
zum Funktionsausgang PO.
-
Im
Gebrauch werden die meisten Update-Flipflops mit logischen Werten
LO geladen. Die Zellen in der Boundary-Scan-Kette, in der Update-Flipflop
UFF mit logischen Werten HI sind abwechselnd Eingangs- und Ausgangszellen.
-
In
einem Beispiel wird das Update-Flipflop UFF nur einer Eingangszelle
mit einem logischen HI-Wert geladen und die Update-Flipflops aller
anderen Zellen werden auf logisch LO gesetzt. Als Ergebnis werden
in dieser Eingangszelle Daten aufgenommen und bei jedem TCK-Taktzyklus
wenn STREAM logisch HI und der TAP-Controller dazu gebracht wird,
den Schiebe-Status anzunehmen, durch die Kette zu TDO transportiert.
-
In
einem anderen Beispiel wird das Update-Flipflop UFF nur einer Ausgangszelle
mit einem logischen HI-Wert geladen und die Update-Flipflops aller
anderen Zellen werden auf logisch Lo gesetzt. Als Ergebnis werden
von TDI durch die Kette gelieferte Daten bei jedem TCK-Taktzyklus
wenn STREAM logisch HI und der TAP-Controller dazu gebracht wird,
den Schiebe-Status anzunehmen, von dieser einen Ausgangszelle ausgegeben.
-
In
einem weiteren Beispiel werden nur das Update-Flipflop UFF nur einer
Ausgangszelle und nur einer Eingangszelle mit einem logischen HI-Wert
geladen. Wenn die Eingangszelle der Ausgangszelle in der Boundary-Scan-Kette
vorausgeht, resultiert dies in Datenaufnahme in der Eingangszelle,
gefolgt vom Transport durch die Boundary-Scan-Kette und Ausgabe von der Ausgangszelle
in jedem Taktzyklus, wenn STREAM logisch HI ist und der TAP-Controller
dazu gebracht wird, den Schiebestatus anzunehmen. So wird ein Strom von
dem Funktionseingang PI der Eingangszelle zu dem Funktionsausgang
der Ausgangszelle erzeugt, der in jedem TCK-Zyklus ein Bit transportiert.
-
Es
sei verstanden, dass durch Setzen der Update-Flipflops UFF von Paaren
von Eingangs/Ausgangszellen jede Anzahl solcher Ströme parallel
weitergeleitet werden können.
-
Wenn
die erste Zelle in der Boundary-Scan-Kette, in der der Inhalt von
Update-Flipflop UFF logisch HI ist, eine Ausgangszelle ist, werden
in jedem TCK-Zyklus Daten von TDI zu dieser Ausgangszelle geleitet. Ähnlich,
wenn die letzte Zelle in der Boundary-Scan-Kette, in der der Inhalt
von Update-Flipflop UFF logisch HI ist, eine Eingangszelle ist,
werden in jedem TCK-Zyklus Daten von dieser Eingangszelle zu TDO
geleitet.
-
Vierte Ausführungsform
-
Wie
die dritte Ausführungsform
verwendet die vierte Ausführungsform
das Update-Flipflop, um zu steuern, ob Zellen aktiv sind. Aber in
der vierten Ausführungsform
werden die Scan-Flipflops in dem Debug-Modus umgangen. Das bedeutet,
dass Signale direkt entlang der Boundary-Scan-Kette geleitet werden, ohne
die Notwendigkeit, unter der Kontrolle von TCK zu schieben. Ein
Steuerungssignal „SHORT", das von dem TAP-Controller ausgegeben
wird und als Antwort auf einen entsprechenden Befehl auf logisch
HI gesetzt wird, ist zum Steuern des Vorbeileitens hinzugefügt.
-
7 zeigt
eine Eingangszelle gemäß der vierten
Ausführungsform.
Verglichen mit der dritten Ausführungsform
wurde ein Bypass-Multiplexer 70 mit an den Dateneingang
und Datenausgang von Scan-Flipflop SFF gekoppelten Eingängen und
einem an Scan-Ausgang SO der Zelle gekoppelten Ausgang und einem Steuerungseingang,
der gekoppelt ist, um das SHORT-Signal zu empfangen, hinzugefügt.
-
8 zeigt
eine Ausgangszelle gemäß der vierten
Ausführungsform.
Verglichen mit der dritten Ausführungsform
wurde ein Bypass-Multiplexer 70 mit an den Dateneingang
und Datenausgang von Scan-Flipflop SFF gekoppelten Eingängen und
einem an Scan-Ausgang SO der Zelle gekoppelten Ausgang und einem Steuerungseingang,
der gekoppelt ist, um das SHORT-Signal zu empfangen, hinzugefügt. Der
Ausgang des Bypass-Multiplexers
ist auch an einen Eingang von Update-Bypass-Multiplexer 62 anstatt
den Datenausgang des Scan-Flipflops gekoppelt.
-
Im
Betrieb wird zuerst das normale Boundary-Scan-Protokol ausgeführt, um
Konfigurationsdaten in die Update-Flipflops zu laden. Anschließend wird
unter Verwendung des konventionellen Boundary-Scan-Protokolls ein
Befehl an den TAP-Controller geliefert, um SHORT logisch HI zu setzen.
Als ein Ergebnis wird eine direkte Verbindung entlang der Boundary-Scan-Kette
geöffnet.
In Zellen, die durch die Konfigurationsdaten selektiert werden,
aktiv zu sein, wird der Funktionsausgang PI (wenn die Zelle eine
Eingangszelle ist) und/oder durch den Funktionsausgang PO (wenn
die Zelle eine Ausgangszelle ist) mit dieser direkten Verbindung
verbunden. So wird eine direkte Verbindung zwischen dem Funktionseingang
PI und dem Funktionsausgang PO von aktiven Zellen einge richtet.
In Eingangszellen, die nicht aktiv sind, wird das Eingangssignal
von dem Funktionseingang PI oder das Signal von dem Update-Flipflop
UFF abhängig
vom Teststeuerungssignal zu dem Funktionsausgang geleitet. In Ausgangszellen,
die nicht aktiv sind, wird das Eingangssignal von dem Funktionseingang
PI zu dem Funktionsausgang PO geleitet.
-
9 zeigt
ein Debug-System mit einer Anzahl miteinander verbundener integrierten
Schaltungen 90. Zwei Verbindungen 92, 94 sind
speziell angezeigt. Ein Teil der integrierten Schaltung ist über ein
Testinterface verbunden, mit TDI-, TDO-Eingängen und Ausgängen und
parallelen TCK-, TMS-, TRST-Eingängen
(zum Zweck der Klarheit wird nur ein Eingang gezeigt). Die Erfindung
macht es möglich,
eine oder mehrere integrierte Schaltungen 90 in den Debug-Modus
zu setzen, wonach bei einer hohen Rate, oder sogar kontinuierlich über Verbindungen 92, 94 zu
anderen integrierten Schaltungen der selektierten integrierten Schaltung
oder Schaltungen, Debug-Signale ausgegeben und eingegeben werden
können.
-
Man
wird erkennen, dass die Erfindung nicht auf die in den Figuren offenbarten
speziellen Ausführungsformen
beschränkt
ist. Beispielsweise können
verschiedene Quellen verwendet werden, um Ausgangssignale von den
Funktionsausgängen
PO inaktiver Zellen zu liefern. Die Ausführungsformen zeigen als Beispiel
die Verwendung von Signalen von dem Funktionseingang PI oder von
Signalen von dem Update-Flipflop. Obwohl jede Ausführungsform
die Verwendung einer bestimmten Quelle zeigt, sollte man erkennen,
dass jede andere Quelle statt dessen verwendet werden kann. Sogar
eine programmierbare Selektion aus einer Vielzahl von Quellen kann
verwendet werden. Unter einigen Umständen ist es wünschenswert,
dass die gesamte Schaltung funktional arbeitet, außer für Anschlüsse, wo
die Debug-Signale eingebracht werden. In diesem Fall verbinden die
inaktiven Zellen vorzugsweise Funktionseingänge PI und Funktionsausgänge PO.
Unter anderen Umständen
wird ein fester Ausgang bevorzugt, in dem Standardsignale oder Signale
von dem Update-Flipflop verwendet werden können.
-
Außerdem wird
man erkennen, dass es, obwohl es bevorzugt wird, das Update-Flipflop
jeder speziellen Zelle als das Konfigurations-Flipflop für diese
spezielle Zelle zu verwenden, keinen Einwand gibt, das Update-Flipflop
einer Zelle als das Konfigurations-Flipflop für eine andere Zelle zu verwenden.
Jedes Konfigurations-Flipflop kann die Konfiguration einer jeweiligen
Zelle steuern, aber natürlich
kann ein Konfigurations-Flipflop
die Konfiguration einer Vielzahl von Zellen parallel steuern. So
muss mindestens ein Teil der Update-Flipflops nicht als Konfigurations-Flipflop
verwendet werden, was diese Update-Flipflop frei lässt, um
programmierbare Signale an die Funktionsausgänge zu liefern. Konfigurations-Flipflops,
die nicht eine Doppelfunktion als Update-Flipflops haben, können auch
vielfache Zellen konfigurieren oder dem Update-Flipflop bestimmter
Zellen das Konfigurieren der Zelle abnehmen.
-
Außerdem wird
man erkennen, dass Zellen jeder der Ausführungsformen programmierbar
ausgebildet sein kann, um in nur einer der beschriebenen Debug-Modi
oder in einem selektierbaren aus einer Vielzahl von Debug-Modi zu
arbeiten. Die Erfindung ist nicht auf die Verwendung der speziellen,
in den Ausführungsformen verwendeter
Steuerungssignale (z.B. CTL, MODE) beschränkt, andere Arten von Steuerungssignale
können verwendet
werden.
-
Ein
Teil der Zellen in derselben Schaltung (oder sogar in derselben
integrierten Schaltung) können
gemäß einer
Ausführungsform
implementiert werden und ein anderer Teil kann gemäß einer
anderen Ausführungsform
implementiert werden. Speziell kann beispielsweise die vierte Ausführungsform
für eine
Anzahl von Zellen verwendet werden, um Datentransport schneller
zu machen, wobei eine ander Ausführungsform
für andere
Zellen verwendet wird, um eine Form von Pipeline-Verarbeitung bereitzustellen.
Ein Teil der Boundary-Scan-Zellen kann sogar vollständig als
konventionelle Boundary-Scan-Zellen,
d.h. ohne einen weiteren Modus zu unterstützen, implementiert werden.
So kann eine weitere konventionelle Boundary-Scan-Kette untergemischt
werden oder in Serie mit der Boundary-Scan-Kette gemäß der Erfindung
angeordnet werden.
-
Außerdem sollte
man erkennen, dass die in den Ausführungsformen gezeigten tatsächlichen
Schaltungen nur als Beispiel bereitgestellt sind. Zum Beispiel könnten die
Multiplexerfunktionen mit verschieden alternativen Schaltungen realisiert
werden. Ähnlich
erkenne man, dass, obwohl vorzugsweise konventionelle P1149.1-Teststati
verwendet werden, um Signalerzeugung durch den TAP-Controller zu
steuern, dedizierte Stati verwendet werden können, wenn die integrierte
Schaltung in den Debug-Modus geschaltet worden ist.
-
Außerdem sollte
man erkennen, dass, obwohl die Erfindung für Debug-Zwecke beschrieben worden ist, die Offenbarten
Schaltkreise für
ander Zwecke, wie Programmieren eines nichtflüchtigen Speichers oder Programmieren
einer programmierbaren Schaltung wie Gate-Arrays, verwendet werden
kann.