-
Die vorliegende Erfindung betrifft eine Vorrichtung gemäß den Oberbegriffen der Patentansprüche 1 und 2.
-
Solche Halbleiter-Chips sind Halbleiter-Chips, die nach dem sogenannten Full-Scan-Test-Verfahren getestet werden können.
-
Im Folgenden wird unter Bezugnahme auf die
5 bis
7 ein intern im Betrieb der Anmelderin bekannter Stand der Technik diskutiert. Weiterer Stand der Technik ist aus Dokument
US 6,418,545 B1 bekannt.
-
In der 5 ist der Aufbau eines Halbleiter-Chips veranschaulicht, der nach dem Full-Scan-Test-Verfahren getestet werden kann. Bei dem in der 5 gezeigten Halbleiter-Chip handelt es sich um eine programmgesteuerte Einheit wie beispielsweise einen Mikrocontroller, einen Mikroprozessor oder einen Signalprozessor. Es könnte sich jedoch auch um einen beliebigen anderen Halbleiter-Chip handeln, der unter Verwendung des Full-Scan-Test-Verfahren getestet werden kann. Der Vollständigkeit halber sei bereits an dieser Stelle darauf hingewiesen, daß von dem Halbleiter-Chip nur die vorliegend besonders interessierenden Komponenten gezeigt und beschrieben sind.
-
Der in der 5 gezeigte Halbleiter-Chip enthält eine Logik 401, einen ersten Multiplexer 471, einen zweiten Multiplexer 472, einen dritten Multiplexer 473, einem im folgenden als TAP bezeichneten JTAG Test Access Port 420, und eine Vielzahl von Ein- und/oder Ausgabeanschlüssen, von welchen in der 5 jedoch nur die Anschlüsse TCK, TDI, TMS, TDO und 481 bis 485 gezeigt sind.
-
Der Halbleiter-Chip kann darüber hinaus beliebige weitere Komponenten enthalten, beispielsweise eine oder mehrere CPUs, einen oder mehrere Speicher, etc.
-
Die Logik 401 enthält eine Vielzahl von logischen Gattern und Speicherelementen. Die logischen Gatter umfassen beispielsweise UND-Gatter, ODER-Gatter, XOR-Gatter und/oder beliebige andere logische Gatter. Die Speicherelemente werden im betrachteten Beispiel durch Flip-Flops gebildet, die sich zum Testen des Halbleiter-Chips so in Reihe schalten lassen, daß sie sich dann wie ein Schieberegister verhalten. Wie dies im einzelnen geschieht, ist bekannt und bedarf keiner näheren Erläuterung. Die 5 zeigt den Zustand des Halbleiter-Chips, in welchen die Flip-Flops zu zwei Schieberegistern, nämlich einem ersten Schieberegister 402 und einem zweiten Schieberegister 403 verschaltet sind, und der Rest der Logik (im wesentlichen die Kombinatorik) als die Logik 401 dargestellt ist. Vorliegend werden exemplarisch zwei Schieberegister beschrieben; in Wirklichkeit können es je nach Umfang des Baustein deutlich mehr sein.
-
Die Schieberegister 402 und 403 können von außerhalb des Halbleiter-Chips, genauer gesagt durch eine externe Testvorrichtung beschrieben und ausgelesen werden. Daher ist der Eingangsanschluß des ersten Flip-Flops des ersten Schieberegisters 402 mit dem Eingangsanschluß 481 des Halbleiter-Chips verbunden, ist der Ausgangsanschluß des letzten Flip-Flops des ersten Schieberegisters 402 über den ersten Multiplexer 471 mit dem Ausgangsanschluß 482 des Halbleiter-Chips verbunden, ist der Eingangsanschluß des ersten Flip-Flops des zweiten Schieberegisters 403 mit dem Eingangsanschluß 483 des Halbleiter-Chips verbunden, und ist der Ausgangsanschluß des letzten Flip-Flops des zweiten Schieberegisters 403 über den zweiten Multiplexer 472 mit einem Ausgangsanschluß 484 des Halbleiter-Chips verbunden. Somit können über die Eingangsanschlüsse 481 und 483 Daten in die Schieberegister 402 und 403 geschrieben werden, und über die Ausgangsanschlüsse 482 und 484 Daten aus den Schieberegistern 402 und 403 ausgelesen werden.
-
Die Eingangsanschlüsse 481 und 483 sowie die Ausgangsanschlüsse 482 und 484 sind im betrachteten Beispiel Multifunktionsanschlüsse, die im normalen Betrieb des Halbleiter-Chips, d. h. in Phasen, in welchen die Flip-Flops nicht zu den Schieberegistern 402 und 403 verschaltet sind, als Eingangsanschlüsse zur Eingabe von Daten in die Logik 401 bzw. als Ausgangsanschlüsse zur Ausgabe von Daten aus der Logik 401 verwendet werden können. Dabei wird durch die Multiplexer 471 und 472 entschieden, ob über die Ausgangsanschlüsse 482 und 484 aus den Schieberegistern 402 und 403 stammende Daten oder aus der Logik 401 stammende Daten aus dem Halbleiter-Chip ausgegeben werden; den Multiplexern 471 und 472 wird neben den Ausgangssignalen der Schieberegister 402 und 403 auch jeweils ein Ausgangssignal der Logik 401 zugeführt. Die Multiplexer 471 und 472 werden durch ein Signal scan_en gesteuert. Von diesem Signal hängt es ab, ob die aus den Schieberegistern 402 und 403 hinaus geschobenen Daten oder die aus der Logik 401 stammende Daten über die Ausgangsanschlüsse 482 und 484 aus dem Halbleiter-Chip ausgegeben werden. Bei aktivem Steuersignal scan_en werden aus den Ausgangsanschlüssen 482 und 484 die aus den Schieberegistern 402 und 403 stammenden Daten ausgegeben, und bei inaktivem Steuersignal scan_en werden aus den Ausgangsanschlüssen 482 und 484 die aus der Logik 401 stammenden Daten aus dem Halbleiter-Chip ausgegeben. Das Steuersignal scan_en wird durch den TAP 420 erzeugt.
-
Der TAP 420 ist ein JTAG Test Access Port gemäß IEEE 1149.1. Der JTAG Test Access Port gemäß IEEE 1149.1 wurde ursprünglich für den sogenannten Boundary-Scan-Test entwickelt und standardisiert, wird mittlerweile aber auch für andere Zwecke verwendet. Im betrachteten Beispiel wird er dazu verwendet, um das Testen des Halbleiter-Chips nach dem Full-Scan-Test-Verfahren zu steuern.
-
Der TAP 420 ist mit den Eingangsanschlüssen TCK, TDI und TMS, und mit dem Ausgangsanschluß TDO des Halbleiter-Chips verbunden und erzeugt Signale scan_clock, scan_en, und scan_mode. Die Anschlüsse des Halbleiter-Chips, mit welchen der TAP 420 verbunden ist, weisen die Bezeichnungen auf, die auch im erwähnten Standard IEEE 1149.1 verwendet werden.
-
Das Signal scan_mode wird zur Steuerung der Multiplexer 471 bis 473 verwendet.
-
Die Multiplexer 471 und 472 dienen, wie vorstehend bereits erläutert wurde, zur Auswahl der über die Ausgangsanschlüsse 482 und 484 des Halbleiter-Chips auszugebenden Signale.
-
Der Multiplexer 473 dient zur Auswahl des vom Halbleiter-Chip verwendeten Taktsignals. Der Multiplexer 473 weist zwei Eingangsanschlüsse auf, wobei an den ersten Eingangsanschluß ein dem Halbleiter-Chip über den Eingangsanschluß 485 zugeführtes erstes Taktsignal sys_clock angelegt wird, und wobei an den zweiten Eingangsanschluß das aus dem TAP 420 ausgegebene, als zweites Taktsignal verwendete Signal scan_clock angelegt wird. Dabei ist das erste Taktsignal das Taktsignal, mit welchem der Halbleiter-Chip während des normalen Betriebes zu takten ist, und ist das zweite Taktsignal das Taktsignal, mit welchem der Halbleiter-Chip während des Testens des Halbleiter-Chips nach dem Full-Scan-Test-Verfahren zu takten ist. Das aus dem Multiplexer 473 ausgegebene Taktsignal ist das Taktsignal, mit welchem die taktgesteuerten Komponenten des Halbleiter-Chips arbeiten. Bei aktivem Signal scan_mode wird durch den Multiplexer 473 das Signal scan_clock durchgeschaltet, und bei inaktivem Signal scan_mode wird durch den Multiplexer 473 das Signal sys_clock durchgeschaltet.
-
Durch das Signal scan_mode wird bestimmt, ob sich der Halbleiter-Chip in der Normal-Betriebsart oder einer Full-Scan-Test-Betriebsart befindet, wobei die Normal-Betriebsart diejenige Betriebsart ist, in welcher sich der Halbleiter-Chip im normalen Betrieb befindet und bestimmungsgemäß arbeitet, und wobei die Full-Scan-Test-Betriebsart diejenige Betriebsart ist, in welcher der Halbleiter-Chip nach dem Full-Scan-Test-Verfahren getestet werden kann. Durch das Signal scan_en wird zusätzlich bestimmt, wie sich der Halbleiter-Chip in der Full-Scan-Test-Betriebsart verhält. Der TAP 420 ist so aufgebaut und wird so gesteuert, daß das Signal scan_en nur aktiv sein kann, wenn der Halbleiter-Chip durch das Signal scan_mode in die Full-Scan-Test-Betriebsart versetzt ist.
-
In der Normal-Betriebsart (scan_mode inaktiv, scan_en inaktiv) werden die Multiplexer 471 bis 473 so gesteuert, daß der Halbleiter-Chip unter Verwendung des über den Eingangsanschluß 485 erhaltenen Taktsignals getaktet wird, und aus den Ausgangsanschlüssen 482 und 484 die aus der Logik 401 ausgegebenen Signale ausgegeben werden.
-
In der Full-Scan-Test-Betriebsart (scan_mode aktiv, scan_en aktiv oder inaktiv) werden die Multiplexer 471 bis 473 so gesteuert, daß der Halbleiter-Chip unter Verwendung des vom TAP 420 ausgegebenen Taktsignals scan_clock getaktet wird, und aus den Ausgangsanschlüssen 482 und 484 entweder die aus den Schieberegistern 402 und 403 ausgegebenen Signale (scan_en aktiv) oder die aus der Logik 401 ausgegebenen Signale (scan_en inaktiv) ausgegeben werden. Durch das Signal scan_en wird darüber hinaus auch bestimmt, ob die Flip-Flops der Logik 401 zu den Schieberegistern 402 und 403 verschaltet sind (scan_en aktiv) oder nicht (scan_en inaktiv). Wenn der Halbleiter-Chip durch ein aktives Signal scan_mode in die Full-Scan-Test-Betriebsart versetzt ist, und auch das Signal scan_en aktiv ist, sind die die Flip-Flops zu den Schieberegistern 402 und 403 verschaltet, und können die Schieberegister 402 und 403 über die Ein- bzw. Ausgangsanschlüsse 481 bis 484 von außerhalb des Halbleiter-Chips beschrieben und ausgelesen werden. Diese Betriebsart wird im folgenden als Full-Scan-Test/Schiebe-Betriebsart bezeichnet. Wenn der Halbleiter-Chip durch ein aktives Signal scan_mode in die Full-Scan-Test-Betriebsart versetzt ist, und das Signal scan_en inaktiv ist, sind die Flip-Flops nicht zu den Schieberegistern 402 und 403 verschaltet und arbeiten wie es im normalen Betrieb des Halbleiter-Chips der Fall ist; der Halbleiter-Chip arbeitet nur mit einem anderen Taktsignal als in der Normal-Betriebsart, wobei die Taktsignale bei einfachen Bausteinen auch identisch sein können. Diese Betriebsart wird im folgenden als Full-Scan-Test/Capture-Betriebsart bezeichnet.
-
Der Aufbau des TAP 420 ist in 6 veranschaulicht. Der TAP 420 enthält eine State Machine 421, ein Instruction Register 422, ein UND-Gatter 423, und einen Multiplexer 424.
-
Die im folgenden beschriebenen Kontrollbits sind im betrachteten Beispiel im Instruction Register 422 gespeichert. Es ist jedoch ebenso möglich, hierfür eines der im Standard IEEE 1149.1 definierten ”design specific register” für diese Funktion vorzusehen.
-
Die State Machine 421 ist mit den Eingangsanschlüssen TMS und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TMS seriell Steuer-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt. Die State Machine 421 kann insgesamt 16 verschiedene Zustände annehmen, die in IEEE 1149.1 und auch in der folgenden Beschreibung mit test_logic_reset, run_test/idle, select_dr_scan, capture_dr, shift_dr, exit1_dr, pause_dr, exit2_dr, update_dr, select_ir_scan, capture_ir, shift_ir, exit1_ir, pause_ir, exit2_ir, und update_ir bezeichnet sind. In welchem Zustand sich die State Machine 421 gerade befindet, hängt von der der State Machine 421 über den Eingangsanschluß TMS zugeführten Steuer-Bit-Folge ab; in IEEE 1149.1 ist festgelegt, unter welchen Umständen die State Machine welchen Zustand annimmt. Beispielsweise ist es so,
- – daß die State Machine dann, wenn sie sich im Zustand test_logic_reset befindet, durch ein ihr über den Eingangsanschluß TMS zugeführtes Steuer-Bit mit dem Wert 1 im Zustand test_logic_reset gehalten wird, und durch ein ihr über den Eingangsanschluß TMS zugeführtes Steuer-Bit mit dem Wert 0 in den Zustand run_test/idle versetzt wird,
- – daß die State Machine dann, wenn sie sich im Zustand run_test/idle befindet, durch ein ihr über den Eingangsanschluß TMS zugeführtes Steuer-Bit mit dem Wert 0 im Zustand run_test/idle gehalten wird, und durch ein ihr über den Eingangsanschluß TMS zugeführtes Steuer-Bit mit dem Wert 1 in den Zustand select_dr_scan versetzt wird, und
- – daß die State Machine dann, wenn sie sich im Zustand select_dr_scan befindet, durch ein ihr über den Eingangsanschluß TMS zugeführtes Steuer-Bit mit dem Wert 0 in den Zustand capture_dr versetzt wird, und durch ein ihr über den Eingangsanschluß TMS zugeführtes Steuer-Bit mit dem Wert 1 in den Zustand select_ir_scan versetzt wird.
-
Das vollständige State-Diagram ist in 7 veranschaulicht. Bezüglich weiterer Einzelheiten wird auf den Standard IEEE 1149.1 verwiesen.
-
Die State Machine 421 gibt im betrachteten Beispiel Signale update_ir, shift_ir, und *_ir aus,
- – wobei das Signal update_ir aktiv ist, wenn sich die State Machine im Zustand update_ir befindet,
- – wobei das Signal shift_ir aktiv ist, wenn sich die State Machine im Zustand shift_ir befindet, und
- – wobei das Signal *_ir aktiv ist, wenn sich die State Machine in einem der Zustände befindet, deren Bezeichnung mit _ir endet.
-
Das Instruction Register 422 ist ein Schieberegister, das mehrere, jeweils zur Speicherung von 1 Bit ausgelegte Register umfaßt. Es ist mit den Eingangsanschlüssen TDI und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TDI seriell Instruktions-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt. Die Register des Instruction Register 422 sind auch parallel und ohne Schiebeoperation beschreibbar und auslesbar.
-
Das Instruction Register 422 wird durch die von der State Machine 421 ausgegebenen Signale update_ir und shift_ir gesteuert. Durch das Signal update_ir wird die parallele Übernahme von an die einzelnen Register des Instruction Register 422 angelegten Daten in das Instruction Register veranlaßt, und durch das Signal shift_ir wird eine bitweise serielle Datenübernahme mit gleichzeitiger Schiebeoperation veranlaßt.
-
Von den im Instruction Register 422 gespeicherten Bits wird der Wert eines n-ten Bits als das vorstehend bereits erwähnte Signal scan_mode verwendet und aus dem TAP 420 ausgegeben, wobei n beliebig groß sein kann. Dieses n-te Bit wird zusätzlich dem UND-Gatter 423 zugeführt. Dem UND-Gatter 423 wird ferner das aktuell über den Eingangsanschluß TDI zugeführte Instruktions-Bit zugeführt. Das UND-Gatter 423 führt eine UND-Verknüpfung der ihm zugeführten Signale aus. Das Ergebnis dieser UND-Verknüpfung wird als das vorstehend bereits erwähnte Signal scan_en verwendet und aus dem TAP 420 ausgegeben.
-
Der Ausgang des Instruction Register 422 ist mit einem der Eingangsanschlüsse des Multiplexers 424 verbunden. Der andere Eingangsanschluß des Multiplexers ist mit einem nicht gezeigten weiteren Register des TAP 420 verbunden. Der Ausgangsanschluß des Multiplexers 424 ist mit dem Ausgangsanschluß TDO des Halbleiter-Chips verbunden. Der Multiplexer 424 wird durch das Signal *_ir gesteuert, so daß immer dann, wenn sich die State Machine in einem Zustand befindet, dessen Bezeichnung mit _ir endet, das letzte Bit des Instruction Register aus dem Ausgangsanschluß TDO ausgegeben wird. Dadurch kann überprüft werden, ob der TAP 420 ordnungsgemäß arbeitet. Der Vollständigkeit halber sei darauf hingewiesen, daß der Multiplexer 424 auch mehr als zwei Eingangsanschlüsse aufweisen kann, wobei diese weiteren Eingangsanschlüsse mit in der 6 nicht gezeigten weiteren Registern des TAP verbunden sind.
-
Darüber hinaus wird das dem TAP 420 über den Eingangsanschluß TCK des Halbleiter-Chips zugeführte Taktsignal als das Taktsignal scan_clock verwendet und aus dem TAP 420 ausgegeben. Das dem TAP 420 über den Eingangsanschluß TCK des Halbleiter-Chips zugeführte Taktsignal wird außerdem als Taktsignal für die taktgesteuerten Komponenten des TAP 420 verwendet.
-
Das Testen des in der 5 gezeigten Halbleiter-Chips nach dem Full-Scan-Test-Verfahren läuft nun wie folgt ab: Zunächst wird der TAP 420 durch die Eingabe entsprechender Bitfolgen über die Eingangsanschlüsse TDI und TMS in einen Zustand versetzt, in welchem die vom TAP 420 ausgegebenen Signale scan_mode und scan_en Werte aufweisen, durch die der Halbleiter-Chip in die Full-Scan-Test/Schiebe-Betriebsart versetzt wird. Anschließend werden die Schieberegister 402 und 403 über die Eingangsanschlüsse 481 und 483 bitweise seriell mit ein Testmuster repräsentierenden Daten beschrieben. Nachdem dies geschehen ist, wird der Halbleiter-Chip über die Eingangsanschlüsse TDI und TMS kurzzeitig, beispielsweise für einen oder zwei Takte des Taktsignals scan_clock, in die Full-Scan-Test/Capture-Betriebsart versetzt. In dieser Betriebsart sind die Schieberegister 402 und 403 aufgelöst, und die Logik 401 einschließlich der Flip-Flops arbeitet wie in der Normal-Betriebsart. Nur das Taktsignal (scan_clock) ist ein anderes als in der Normal-Betriebsart (sys_clock). In der Full-Scan-Test/Capture-Betriebsart können sich die von den Flip-Flops gespeicherten Daten verändern. Ob und gegebenenfalls wie sie sich ändern, hängt unter anderem von den Daten ab, die zuvor in die Schieberegister 402 und 403 geladen wurden, und vom Aufbau und der Funktion der Logik 401. Danach wird der Halbleiter-Chip über die Eingangsanschlüsse TDI und TMS wieder in die Full-Scan-Test/Schiebe-Betriebsart versetzt. In diesem Zustand werden über die Ausgangsanschlüsse 482 und 484 die in den Schieberegistern 402 und 403 gespeicherten Daten ausgelesen. Gleichzeitig oder danach können bereits ein anderes Testmuster repräsentierende Daten in die Schieberegister 402 und 403 geschrieben werden. Die aus den Schieberegistern 402 und 403 ausgelesenen Daten werden sodann mit vorgegebenen Soll-Daten verglichen. Die Soll-Daten sind diejenigen Daten, die in den Schieberegistern 402 und 403 gespeichert sein müßten, wenn der Halbleiter-Chip ordnungsgemäß arbeitet. Anhand des Ergebnisses des Vergleiches zwischen den aus den Schieberegistern 402 und 403 ausgelesenen Daten und den Soll-Daten kann somit ermittelt werden, ob der Halbleiter-Chip ordnungsgemäß arbeitet. Stimmen die miteinander verglichenen Daten überein, so kann davon ausgegangen werden, daß der Halbleiter-Chip fehlerfrei gearbeitet hat. Stimmen die Daten nicht überein, hat der Halbleiter-Chip nicht fehlerfrei gearbeitet.
-
Der vorstehend beschriebene Test kann unter Verwendung anderer Testmuster beliebig oft wiederholt werden.
-
Ein solcher Test kann mitunter sehr lange dauern. Insbesondere wenn die Logik 401 sehr viele Flip-Flops enthält und somit die aus den Flip-Flops gebildeten Schieberegister 402 und 403 sehr lang sind, dauert vor allem das Beschreiben der Schieberegister mit den Testmustern und das Auslesen der Schieberegister sehr lange.
-
Dieses Problem läßt sich vermeiden, wenn die Flip-Flops der Logik 401 nicht zu nur einem oder zwei Schieberegistern, sondern zu einer größeren Anzahl von Schieberegistern verschaltet werden. Die mehreren Schieberegister weisen dann weniger Flip-Flops auf und können dementsprechend schneller beschrieben und ausgelesen werden.
-
In diesem Fall müssen aber eine entsprechend größere Anzahl von Ein- und Ausgangsanschlüssen zum Beschreiben und Auslesen der Schieberegister, und eine entsprechend größere Anzahl von Verbindungen zwischen dem Halbleiter-Chip und der den Halbleiter-Chip testenden Testvorrichtung vorgesehen werden. Dies führt dazu, daß das Testen des Halbleiter-Chips unter Verwendung des Full-Scan-Test-Verfahrens aufwendiger ist als es bei der Bildung von einem oder zwei Schieberegistern der Fall ist. Um diesen Nachteil gering zu halten, sollte die Anzahl der in der Full-Scan-Test/Schiebe-Betriebsart gebildeten Schieberegister möglichst gering gehalten werden. Im Idealfall wird nur ein einziges Schieberegister gebildet, was aber wiederum zu den vorstehend erwähnten zeitlichen Problemen führt.
-
Ein weiterer Nachteil des in den 5 und 6 gezeigten Halbleiter-Chips besteht darin, daß es schwierig und teilweise sogar unmöglich ist, auch solche Halbleiter-Chips unter Verwendung des Full-Scan-Test-Verfahrens zu testen, die bereits auf eine Leiterplatte montiert sind. Dies hat zwei Gründe. Erstens sind bei einem auf eine Leiterplatte montierten Halbleiter-Chip häufig nicht alle Ein- und/oder Ausgangsanschlüsse des Halbleiter-Chips frei zugänglich. Dies ist beispielsweise, aber nicht ausschließlich bei Halbleiter-Chips der Fall, die in Ball-Grid-Array-Gehäusen untergebracht sind oder unter Verwendung der Flip-Chip-Technik montiert sind. Zweitens ist es problematisch, daß die zum Beschreiben und Auslesen der Schieberegister vorgesehenen Eingangs- bzw. Ausgangsanschlüsse Multifunktionsanschlüsse sind, die auch für andere Zwecke als zum Beschreiben und Auslesen der Schieberegister verwendet werden, so daß es beim Beschreiben und Auslesen der Schieberegister eines Halbleiter-Chips, der bereits in ein existierendes System integriert ist, zu Kollisionen kommen kann.
-
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die Halbleiter-Chips gemäß den Oberbegriffen der Patentansprüche 1 und 2 derart weiterzubilden, daß diese unter allen Umständen, insbesondere auch dann, wenn sie bereits in ein System eingebaut ist, schnell und einfach umfassend getestet werden können.
-
Diese Aufgabe wird erfindungsgemäß durch die in den Patentansprüchen 1 und 2 beanspruchten Halbleiter-Chips gelöst.
-
Vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche. Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Figuren näher erläutert. Es zeigen
-
1 den Aufbau eines im folgenden näher beschriebenen ersten Halbleiter-Chips,
-
2 den Aufbau eines JTAG Test Access Port des in der 1 gezeigten Halbleiter-Chips,
-
3 den Aufbau eines im folgenden näher beschriebenen zweiten Halbleiter-Chips,
-
4 den Aufbau eines JTAG Test Access Port des in der 3 gezeigten Halbleiter-Chips,
-
5 den Aufbau eines herkömmlichen Halbleiter-Chips, der nach dem Full-Scan-Test-Verfahren getestet werden kann,
-
6 den Aufbau eines JTAG Test Access Port des in der 5 gezeigten Halbleiter-Chips und
-
7 das State Diagram eines JTAG Test Access Port gemäß IEEE 1149.1.
-
Bei den im folgenden beschriebenen Halbleiter-Chips handelt es sich um Mikrocontroller. Es könnte sich jedoch auch um eine andere programmgesteuerte Einheit wie beispielsweise einen Mikroprozessor oder einen Signalprozessor handeln, oder um einen beliebigen anderen Halbleiter-Chip.
-
Im folgenden werden mehrere verschiedene Ausführungsformen der hier vorgestellten Art von Halbleiter-Chip beschrieben. Allen Ausführungsformen ist gemeinsam, daß der Halbleiter-Chip eine Vielzahl von Flip-Flops enthält, die sich zum Testen des Halbleiter-Chips zu einem oder mehreren Schieberegistern verschalten lassen, und daß das eine oder die mehreren Schieberegister über einen JTAG Test Access Port des Halbleiter-Chips beschreibbar und auslesbar sind.
-
Es sei bereits an dieser Stelle darauf hingewiesen, daß von den im folgenden beschriebenen Halbleiter-Chips nur die vorliegend besonders interessierenden Bestandteile gezeigt und beschrieben sind. Bezüglich weiterer Einzelheiten insbesondere zum JTAG Test Access Port wird auf den Standard IEEE 1149.1 verwiesen.
-
Der erste der hier vorgestellten Halbleiter-Chips ist in den 1 und 2 veranschaulicht.
-
Der in der 1 gezeigte Halbleiter-Chip enthält einen ersten Multiplexer 171, einen zweiten Multiplexer 172, einen dritten Multiplexer 173, einen vierten Multiplexer 174, einen fünften Multiplexer 175, einen sechsten Multiplexer 176, einen siebten Multiplexer 177, einen im folgenden als TAP bezeichneten JTAG Test Access Port 120, ein erstes Sperrelement 191, ein zweites Sperrelement 192, und eine Vielzahl von Ein- und/oder Ausgabeanschlüssen, von welchen in der 1 jedoch nur die Anschlüsse TCK, TDI, TMS, TDO und 181 bis 185 gezeigt sind.
-
In der 1 ist ferner ein Testregister 125 gezeigt. Dieses Testregister ist Bestandteil des TAP 120 und ist in der 1 nur der Anschaulichkeit halber außerhalb des TAP 120 dargestellt. Wie später noch genauer erläutert wird, wird das Testregister im betrachteten Beispiel durch ein zwei Bits speicherndes Schieberegister gebildet.
-
Der Halbleiter-Chip enthält ferner eine in der 1 nicht gezeigte Logik.
-
Der Halbleiter-Chip kann darüber hinaus beliebige weitere Komponenten enthalten, beispielsweise eine oder mehrere CPUs, einen oder mehrere Speicher, etc.
-
Die in der 1 nicht gezeigte Logik entspricht der Logik 401 des in der 5 gezeigten Halbleiter-Chips. Die Logik enthält eine Vielzahl von logischen Gattern und Speicherelementen. Die Speicherelemente werden im betrachteten Beispiel durch Flip-Flops gebildet, die sich wie bei dem in 5 gezeigten Halbleiter-Chip zum Testen des Halbleiter-Chips so in Reihe schalten lassen, daß sie sich wie ein Schieberegister verhalten. Wie dies im einzelnen geschieht, ist bekannt und bedarf keiner näheren Erläuterung. Die 1 zeigt den Zustand des Halbleiter-Chips, in welchen die Flip-Flops der Logik zu zwei Schieberegistern, nämlich einem ersten Schieberegister 102 und einem zweiten Schieberegister 103 verschaltet sind. Die Schieberegister 102 und 103 entsprechen den Schieberegistern 402 und 403 des in der 5 gezeigten Halbleiter-Chips.
-
Das erste Schieberegister 102 ist eingangsseitig mit dem Ausgangsanschluß des Multiplexers 174 verbunden. Der Multiplexer 174 weist zwei Eingangsanschlüsse auf, von welchen einem vom TAP 120 ausgegebene Daten tdi zugeführt wird, und von welchen der andere mit dem Eingangsanschluß 181 des Halbleiter-Chips verbunden ist. Der Multiplexer 174 wird durch ein vom TAP 120 ausgegebenes Signal jtag_mode gesteuert. Bei aktivem Signal jtag_mode gibt der Multiplexer 174 die Daten tdi aus, und bei inaktivem Signal jtag_mode gibt der Multiplexer 174 die über den Eingangsanschluß 181 des Halbleiter-Chips eingegebenen Daten aus.
-
Das erste Schieberegister 102 ist ausgangsseitig mit einem Eingangsanschluß des Multiplexers 175 verbunden. Der Multiplexer 175 weist zwei Eingangsanschlüsse auf, wobei der zweite Eingangsanschluß mit dem Ausgangsanschluß des Multiplexers 174 verbunden ist. Der Ausgangsanschluß des Multiplexers 175 ist mit einem der Eingangsanschlüsse des Multiplexers 171 und einem der Eingangsanschlüsse des Multiplexers 176 verbunden. Der Multiplexer 175 wird durch das erste der im Testregister 125 gespeicherten Bits gesteuert. Bei aktivem ersten Testregister-Bit gibt der Multiplexer 175 die vom Schieberegister 102 ausgegebenen Daten aus, und bei inaktivem ersten Testregister-Bit gibt der Multiplexer 175 die vom Multiplexer 174 ausgegebenen Daten aus.
-
Durch den Multiplexer 171 werden wahlweise die aus dem Multiplexer 175 ausgegebenen Daten oder aus der nicht gezeigten Logik ausgegebene Daten weitergeleitet, wobei die aus dem Multiplexer 175 ausgegebenen Daten entweder die dem Schieberegister 102 zugeführten Daten oder die aus dem Schieberegister 102 ausgegebenen Daten sind. Der Multiplexer 171 wird durch ein vom TAP 120 ausgegebenes Signal scan_en gesteuert. Bei aktivem Signal scan_en gibt der Multiplexer 171 die ihm vom Multiplexer 175 zugeführten Daten aus, und bei inaktivem Signal scan_en gibt der Multiplexer 171 die ihm von der Logik zugeführten Daten aus. Die aus dem Multiplexer 171 ausgegebenen Daten werden über das Sperrelement 191 an den Ausgangsanschluß 182 des Halbleiter-Chips weitergeleitet.
-
Das Sperrelement 191 wird durch das vom TAP 120 ausgegebene Signal jtag_mode gesteuert. Durch das Sperrelement 191 kann die Weiterleitung des aus dem Multiplexer 171 ausgegebenen Signals zum Ausgangsanschluß 182 verhindert werden. Wie sich das Sperrelement 191 verhält, d. h. ob es das ihm zugeführte Signal zum Ausgangsanschluß 182 weiterleitet oder nicht, hängt vom Pegel des Steuersignals jtag_mode ab. Bei aktivem Steuersignal jtag_mode wird die Weiterleitung der dem Sperrelement 191 zugeführten Daten zum Ausgangsanschluß 182 unterbunden, und bei inaktivem Steuersignal jtag_mode werden die dem Sperrelement 191 zugeführten Daten zum Ausgangsanschluß 182 weitergeleitet. Durch das Sperrelement 191 kann verhindert werden, daß wärend des Scan-Tests am Ausgangsanschluß 182 des Halbleiter-Chips Ausgangsmuster entstehen, die zu Beschädigungen der Folgeschaltung führen.
-
Der vorstehend bereits erwähnte Multiplexer 176 weist zwei Eingangsanschlüsse auf, von welchen der eine mit dem Ausgangsanschluß des Multiplexers 175 verbunden ist, und von welchen der andere mit dem Eingangsanschluß 183 des Halbleiter-Chips verbunden ist. Der Ausgangsanschluß des Multiplexers 176 ist mit dem Eingangsanschluß des zweiten Schieberegisters 103 und mit einem der Eingangsanschlüsse des Multiplexers 177 verbunden. Der Multiplexer 176 wird durch das vom TAP 120 ausgegebene Signal jtag_mode gesteuert. Bei aktivem Signal jtag_mode gibt der Multiplexer 176 die ihm vom Multiplexer 175 zugeführten Daten aus, und bei inaktivem Signal jtag_mode gibt der Multiplexer 176 die über den Eingangsanschluß 183 des Halbleiter-Chips eingegebenen Daten aus.
-
Der Multiplexer 177 weist zwei Eingangsanschlüsse auf, wobei der zweite Eingangsanschluß mit dem Ausgangsanschluß des Schieberegisters 103 verbunden ist. Der Multiplexer 177 wird durch das zweite der im Testregister 125 gespeicherten Bits gesteuert. Bei aktivem zweitem Testregister-Bit gibt der Multiplexer 177 die vom Schieberegister 103 ausgegebenen Daten aus, und bei inaktivem zweitem Testregister-Bit gibt der Multiplexer 177 die vom Multiplexer 176 ausgegebenen Daten aus. Der Ausgangsanschluß des Multiplexers 177 ist mit einem der Eingangsanschlüsse des Multiplexers 172 und mit dem TAP 120 verbunden.
-
Durch den Multiplexer 172 werden wahlweise die aus dem Multiplexer 177 ausgegebenen Daten oder aus der nicht gezeigten Logik ausgegebene Daten weitergeleitet, wobei die aus dem Multiplexer 177 ausgegebenen Daten entweder die dem Schieberegister 103 zugeführten Daten oder die aus dem Schieberegister 103 ausgegebenen Daten sind. Der Multiplexer 172 wird durch das vom TAP 120 ausgegebene Signal scan_en gesteuert. Bei aktivem Signal scan_en gibt der Multiplexer 172 die ihm vom Multiplexer 177 zugeführten Daten aus, und bei inaktivem Signal scan_en gibt der Multiplexer 172 die ihm von der Logik zugeführten Daten aus. Die aus dem Multiplexer 172 ausgegebenen Daten werden über das Sperrelement 192 an den Ausgangsanschluß 184 des Halbleiter-Chips weitergeleitet.
-
Das Sperrelement 192 wird durch das vom TAP ausgegebene Signal jtag_mode gesteuert. Durch das Sperrelement 192 kann die Weiterleitung des aus dem Multiplexer 172 ausgegebenen Signals zum Ausgangsanschluß 184 verhindert werden. Wie sich das Sperrelement 192 verhält, d. h. ob es das ihm zugeführte Signal zum Ausgangsanschluß 184 weiterleitet oder nicht, hängt vom Pegel des Steuersignals jtag_mode ab. Bei aktivem Steuersignal jtag_mode wird die Weiterleitung der dem Sperrelement 192 zugeführten Daten zum Ausgangsanschluß 184 unterbunden, und bei inaktivem Steuersignal jtag_mode werden die dem Sperrelement 192 zugeführten Daten zum Ausgangsanschluß 184 weitergeleitet. Durch das Sperrelement 192 kann verhindert werden, daß wärend des Scan-Tests am Ausgangsanschluß 184 des Halbleiter-Chips Ausgangsmuster entstehen, die zu Beschädigungen der Folgeschaltung führen.
-
Der Multiplexer 173 weist zwei Eingangsanschlüsse auf, wobei an den ersten Eingangsanschluß ein dem Halbleiter-Chip über den Eingangsanschluß 185 zugeführtes erstes Taktsignal sys_clock angelegt wird, und wobei an den zweiten Eingangsanschluß ein aus dem TAP 120 ausgegebenes, als zweites Taktsignal verwendetes Signal scan_clock angelegt wird. Dabei ist das erste Taktsignal sys_clock das Taktsignal, mit welchem der Halbleiter-Chip während des normalen Betriebes zu takten ist, und ist das zweite Taktsignal scan_clock das Taktsignal, mit welchem der Halbleiter-Chip während des Testens des Halbleiter-Chips zu takten ist. Der Multiplexer 173 wird durch das vom TAP 120 ausgegebene Signal scan_mode gesteuert. Bei aktivem Signal scan_mode wird das vom TAP 120 ausgegebene Taktsignal scan_clock durchgeschaltet, und bei inaktivem Signal scan_mode wird das über den Eingangsanschluß 185 zugeführte Taktsignal sys_clock durchgeschaltet. Das aus dem Multiplexer 173 ausgegebene Taktsignal ist das Taktsignal, mit welchem die taktgesteuerten Komponenten des Halbleiter-Chips arbeiten.
-
Der TAP 120 ist ein JTAG Test Access Port gemäß IEEE 1149.1. Der JTAG Test Access Port gemäß IEEE 1149.1 wurde, wie vorstehend bereits erwähnt wurde, ursprünglich für den sogenannten Boundary-Scan-Test entwickelt und standardisiert. Der TAP 120 ermöglicht es darüber hinaus, daß auch das Testen des Halbleiter-Chips nach dem Full-Scan-Test-Verfahren oder nach einem später noch näher erläuterten Selective-Scan-Test-Verfahren über den TAP 120 gesteuert wird, und daß die beim Testen des Halbleiter-Chips gebildeten Schieberegister 102 und 103 über den Eingangsanschluß TDI des Halbleiter-Chips und den TAP 120 beschrieben und ausgelesen werden können.
-
Der TAP 120 ist mit den Eingangsanschlüssen TCK, TDI und TMS, und mit dem Ausgangsanschluß TDO des Halbleiter-Chips verbunden. Die Anschlüsse des Halbleiter-Chips, mit welchen der TAP 120 verbunden ist, weisen die Bezeichnungen auf, die auch im erwähnten Standard IEEE 1149.1 verwendet werden.
-
Der TAP 120 gibt die vorstehend bereits erwähnten Signale scan_clock, scan_en, scan_mode und jtag_mode, sowie die Daten tdi aus, und bekommt (vom Multiplexer 177) die Daten tdo zugeführt.
-
Der Aufbau des TAP 120 ist in 2 veranschaulicht. Der TAP 120 enthält eine State Machine 121, ein Instruction Register 122, das bereits erwähnte Testregister 125, UND-Gatter 131 bis 133, ODER-Gatter 141 und 142, ein Sperrelement 151, und Multiplexer 161 bis 163.
-
Die State Machine 121 ist mit den Eingangsanschlüssen TMS und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TMS seriell Steuer-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt. Die State Machine 121 kann die selben 16 verschiedenen Zustände annehmen wie es bei der State Machine 421 des in der 6 veranschaulichten herkömmlichen TAP 420 der Fall ist. In welchem Zustand sich die State Machine 121 gerade befindet, hängt von der der State Machine 121 über den Eingangsanschluß TMS zugeführten Steuer-Bit-Folge ab. Das State Diagram für die State Machine 121 entspricht dem in der 7 gezeigten State Diagram für die State Machine 421.
-
Die State Machine 121 gibt Signale update_ir, shift_ir, capture_dr, shift_dr, update_dr, und *_ir aus, wobei
- – das Signal update_ir aktiv ist, wenn sich die State Machine im Zustand update_ir befindet,
- – das Signal shift_ir aktiv ist, wenn sich die State Machine im Zustand shift_ir befindet,
- – das Signal capture_dr aktiv ist, wenn sich die State Machine im Zustand capture_dr befindet,
- – das Signal shift_dr aktiv ist, wenn sich die State Machine im Zustand shift_dr befindet, und
- – das Signal update_dr aktiv ist, wenn sich die State Machine im Zustand update_dr befindet, und
- – das Signal *_ir aktiv ist, wenn sich die State Machine in einem der Zustände befindet, deren Bezeichnung mit _ir endet.
-
Das Instruction Register 122 ist ein Schieberegister, das mehrere, jeweils zur Speicherung von 1 Bit ausgelegte Register. Die Anzahl der Register beträgt im betrachteten Beispiel drei, kann aber auch beliebig viel größer sein. Dem Instruction Register 122 ist ein in der 2 nicht gezeigtes ”Schattenregister” gleicher Größe zugeordnet.
-
Das Instruction Register 122 ist mit den Eingangsanschlüssen TDI und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TDI seriell Instruktions-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt.
-
Das Instruction Register 122 wird durch die von der State Machine 121 ausgegebenen Signale update_ir und shift_ir gesteuert. Durch das Signal update_ir wird die parallele Übernahme der im Instruction Register 122 gespeicherten Daten ins zugeordnete Schattenregister veranlaßt. Am parallelen Ausgang ist immer der Inhalt des Schattenregisters sichtbar. Durch das Signal shift_ir wird eine bitweise serielle Datenübernahme vom Eingang TDI mit gleichzeitiger Schiebeoperation veranlaßt.
-
Von den im Instruction Register 122 gespeicherten Bits wird der Wert eines c-ten Bits als das vorstehend bereits erwähnte Signal jtag_mode verwendet und aus dem TAP 120 ausgegeben. Das c-te Bit ist im betrachteten Beispiel das dritte Bit, kann aber prinzipiell auch ein beliebiges anderes Bit des Instruction Register 122 sein. Das c-te Bit wird zusätzlich zur Steuerung der Multiplexer 162 und 163 verwendet und dem ODER-Gatter 141 zugeführt.
-
Dem ODER-Gatter 141 wird ferner der Wert eines b-ten Bits der im Instruction Register 122 gespeicherten Bits zugeführt. Das b-te Bit ist im betrachteten Beispiel das zweite Bit, kann aber prinzipiell auch ein beliebiges anderes Bit des Instruction Register 122 sein. Das ODER-Gatter 141 unterzieht die ihm zugeführten Signale einer ODER-Verknüpfung. Das Ergebnis dieser Operation wird als das vorstehend bereits erwähnte Signal scan_mode verwendet und aus dem TAP 120 ausgegeben.
-
Das b-te Bit der im Instruction Register 122 gespeicherten Bits wird ferner dem UND-Gatter 133 und dem Multiplexer 163 zugeführt.
-
Dem UND-Gatter 133 wird ferner das aktuell über den Eingangsanschluß TDI zugeführte Instruktions-Bit zugeführt. Das UND-Gatter 133 führt eine UND-Verknüpfung der ihm zugeführten Signale aus. Das Ergebnis dieser UND-Verknüpfung wird dem Multiplexer 162 zugeführt.
-
Dem Multiplexer 162 wird zusätzlich das von der State Machine 121 ausgegebene Signal capture_dr zugeführt. Der Multiplexer 162 wird, wie vorstehend bereits erwähnt wurde, durch das c-te Bit des Instruction Register 122 gesteuert. Bei aktivem c-ten Bit wird das Signal capture_dr durchgeschaltet, und bei inaktivem c-ten Bit wird das vom UND-Gatter 133 ausgegebene Signal durchgeschaltet. Das vom Multiplexer 162 durchgeschaltete Signal wird als das vorstehend bereits erwähnte Signal scan_en verwendet und aus dem TAP 120 ausgegeben.
-
Dem Multiplexer 163 wird zusätzlich das Ausgangssignal des ODER-Gatters 142 zugeführt. Der Multiplexer 163 wird, wie vorstehend bereits erwähnt wurde, durch das c-te Bit des Instruction Register 122 gesteuert. Bei aktivem c-ten Bit wird das vom ODER-Gatter 142 ausgegebene Signal durchgeschaltet, und bei inaktivem c-ten Bit wird das b-te Bit des Instruction Register 122 durchgeschaltet. Das vom Multiplexer 163 ausgegebene Signal wird als Steuersignal für das Sperrelement 151 verwendet.
-
Das Sperrelement 151 ist eingangsseitig mit dem Eingangsanschluß TCK des Halbleiter-Chips verbunden; das Ausgangssignal des Sperrelementes ist das vorstehend bereits erwähnte Ausgangssignal scan_clock des TAP 120. Das Ausgangssignal scan_clock entspricht dem über den Eingangsanschluß TCK eingegebenen Taktsignal. D. h., das über den Eingangsanschluß TCK eingegebene Taktsignal wird durch das Sperrelement 151 nur durchgeleitet. Durch das Sperrelement 151 kann die Durchleitung aber gesperrt werden, wobei es vom Ausgangssignal des Multiplexers 163 abhängt, wie sich das Sperrelement 151 verhält.
-
Dem ODER-Gatter 142 werden die von der State Machine 121 ausgegebenen Signale capture_dr und shift_dr zugeführt. Das ODER-Gatter führt eine ODER-Verknüpfung dieser Signale durch und gibt das Ergebnis dieser Verknüpfung an den Multiplexer 163 aus.
-
Von den im Instruction Register 122 gespeicherten Bits wird der Wert des a-ten Bits dem UND-Gatter 131 und dem UND-Gatter 132 zugeführt. Das a-te Bit ist im betrachteten Beispiel das erste Bit, kann aber prinzipiell auch ein beliebiges anderes Bit des Instruction Register 122 sein.
-
Dem UND-Gatter 131 wird zusätzlich das von der State Machine 121 ausgegebene Signal shift_dr zugeführt. Das UND-Gatter 131 führt eine UND-Verknüpfung der ihm zugeführten Signale durch und gibt das Ergebnis dieser Verknüpfung an das Testregister 125 aus.
-
Dem UND-Gatter 132 wird zusätzlich das von der State Machine 121 ausgegebene Signal update_dr zugeführt. Das UND-Gatter 132 führt eine UND-Verknüpfung der ihm zugeführten Signale durch und gibt das Ergebnis dieser Verknüpfung an das Testregister 125 aus.
-
Das Testregister 125 ist eines der in IEEE 1149.1 erwähnten ”design specific registers”. Es handelt sich um ein Schieberegister, das mehrere, jeweils zur Speicherung von 1 Bit ausgelegte Register umfaßt. Die Anzahl der Register entspricht der Anzahl der Schieberegister, zu welchen die Flip-Flops der Logik während des Testens des Halbleiter-Chips verschaltet sind. Im betrachteten Beispiel gibt es zwei solche Schieberegister, nämlich die Schieberegister 102 und 103, so daß das Testregister 125 also ein zwei Register umfassendes Testregister ist. Dem Testregister 125 ist ein in den Figuren nicht gezeigtes Schattenregister gleicher Größe zugeordnet.
-
Das Testregister 125 ist mit den Eingangsanschlüssen TDI und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TDI seriell Instruktions-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt.
-
Das Testregister 125 wird durch die von den UND-Gattern 131 und 132 ausgegebenen Signale gesteuert.
-
Das x-te Bit (im betrachteten Beispiel das erste Bit) des Testregisters 125 wird als das vorstehend erwähnte erste Steuersignal zur Steuerung des Multiplexers 175 verwendet, und das y-te Bit (im betrachteten Beispiel das zweite Bit) des Testregisters 125 wird als das vorstehend erwähnte zweite Steuersignal zur Steuerung des Multiplexers 177 verwendet. Im betrachteten Beispiel umfaßt das Testregister 125 zwei Bits, von welchen das erste Bit das x-te Bit ist, und das zweite Bit das y-te Bit ist. Hierauf besteht jedoch keine Einschränkung. Das Testregister 125 kann auch mehr als zwei Bits umfassen, und es können auch andere Bits als das erste Bit und das zweite Bit als das erste Steuersignal und das zweite Steuersignal verwendet werden.
-
Die aus dem Instruction Register 122 hinaus geschobenen Bits werden einem der Eingangsanschlüsse des Multiplexers 161 zugeführt. Der Multiplexer 161 weist im betrachteten Beispiel zwei Eingangsanschlüsse auf, wobei dem zweiten Eingangsanschluß die dem TAP 120 zugeführten Daten tdo zugeführt werden. Der Multiplexer 161 wird durch das von der State Machine 121 ausgegebene Signal *_ir gesteuert. Bei aktivem Signal *_ir werden die aus dem Instruction Register 122 hinausgeschobenen Bits durchgeschaltet, und bei inaktivem Signal *_ir werden die Daten tdo durchgeschaltet. Die aus dem Multiplexer 161 ausgegebenen Daten werden über den Ausgangsanschluß TDO des Halbleiter-Chips aus diesem ausgegeben. Der Multiplexer 161 kann zusätzlich nicht gezeigte weitere Eingangsanschlüsse aufweisen, die mit ebenfalls nicht gezeigten weiteren Registern des TAP 120 verbunden sind.
-
Darüber hinaus werden die dem TAP 120 über den Eingangsanschluß TDI des Halbleiter-Chips zugeführten Daten als die Daten tdi verwendet und aus dem TAP 120 ausgegeben.
-
Der Vollständigkeit halber sei angemerkt, daß, obgleich dies in der 2 nicht dargestellt ist, sämtliche taktgesteuerten Komponenten des TAP 120 durch das dem Halbleiter-Chip über den Eingangsanschluß TCK zugeführte Taktsignal scan_clock getaktet werden.
-
Der Halbleiter-Chip kann über den TAP 120 in verschiedene Betriebsarten versetzt werden. In welcher Betriebsart sich der Halbleiter-Chip befindet, wird dabei unter anderem durch die Bits a, b, und c des Instruction Register 122 bestimmt. Das Instruction Register 122 kann im Zustand shift_ir der State Machine 121 über den Eingangsanschluß TDI des Halbleiter-Chips wunschgemäß bitweise seriell beschrieben werden. Das Versetzen der State Machine in den Zustand shift_ir oder in einen sonstigen gewünschten Zustand erfolgt durch die Eingabe einer entsprechenden Bitfolge über den Eingangsanschluß TMS des Halbleiter-Chips. Wie diese Bitfolge auszusehen hat, ist dem in 7 gezeigten State Diagram entnehmbar.
-
Wenn die Bits a, b, c des Instruction Register 122 die Werte 0, 0, 0 aufweisen, sind die aus dem TAP 120 ausgegebenen Signale scan_en, scan_mode, und jtag_mode inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals sys_clock getaktet. In diesem Zustand befindet sich der Halbleiter-Chip in der Normal-Betriebsart, wobei die Normal-Betriebsart diejenige Betriebsart ist, in welcher sich der Halbleiter-Chip im normalen Betrieb befindet und bestimmungsgemäß arbeitet. In der Normal-Betriebsart verhält sich der Halbleiter-Chip wie der in den 5 und 6 gezeigte herkömmliche Halbleiter-Chip, wenn sich dieser in der Normal-Betriebsart befindet. Vorzugsweise ist es so, daß die Bits a, b, c des Instruction Register 122 nach dem Rücksetzen des Halbleiter-Chips die Werte 0, 0, 0 aufweisen. Dadurch befindet sich der Halbleiter-Chip nach dem Rücksetzen desselben automatisch in der Normal-Betriebsart.
-
Wenn die Bits a, b, c des Instruction Register 122 die Werte 0, 1, 0 aufweisen, ist das aus dem TAP 120 ausgegebene Signal jtag_mode inaktiv, ist das aus dem TAP 120 ausgegebene Signal scan_mode aktiv, ist das aus dem TAP 120 ausgegebene Signal scan_en entweder aktiv oder inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals scan_clock getaktet. In diesem Zustand befindet sich der Halbleiter-Chip in einer Full-Scan-Test-Betriebsart, wobei die Full-Scan-Test-Betriebsart diejenige Betriebsart ist, in welcher der Halbleiter-Chip nach dem Full-Scan-Test-Verfahren getestet werden kann. Das Testen des Halbleiter-Chips nach dem Full-Scan-Test-Verfahren erfolgt dabei exakt so wie es bei dem in den 5 und 6 gezeigten herkömmlichen Halbleiter-Chip der Fall ist. D. h., der TAP 120 wird durch die Eingabe entsprechender Daten über den Eingangsanschluß TDI zunächst in einen Zustand versetzt, in welchem das vom TAP 120 ausgegebene Signal scan_en den Wert aufweist, durch welchen die Flip-Flops der Logik zu den Schieberegistern 102 und 103 verschaltet werden. In diesem Zustand befindet sich der Halbleiter-Chip in der Full-Scan-Test/Schiebe-Betriebsart. Die Full-Scan-Test/Schiebe-Betriebsart des in den 1 und 2 gezeigten Halbleiter-Chips entspricht der Full-Scan-Test/Schiebe-Betriebsart des in den 5 und 6 gezeigten Halbleiter-Chips. Anschließend werden die Schieberegister 102 und 103 über die Eingangsanschlüsse 181 und 183 des Halbleiter-Chips bitweise seriell mit ein Testmuster repräsentierenden Daten beschrieben. Nachdem dies geschehen ist, wird der Halbleiter-Chip über den Eingangsanschluß TDI des Halbleiter-Chips kurzzeitig, beispielsweise für einen oder zwei Takte des Taktsignals scan_clock, in die Full-Scan-Test/Capture-Betriebsart versetzt. Die Full-Scan-Test/Capture-Betriebsart des in den 1 und 2 gezeigten Halbleiter-Chips entspricht der Full-Scan-Test/Capture-Betriebsart des in den 5 und 6 gezeigten herkömmlichen Halbleiter-Chips. D. h., in dieser Betriebsart sind die Schieberegister 102 und 103 aufgelöst, und die Logik einschließlich der Flip-Flops arbeitet wie in der Normal-Betriebsart. Nur das Taktsignal (scan_clock) ist ein anderes als in der Normal-Betriebsart (sys_clock). In der Full-Scan-Test/Capture-Betriebsart können sich die von den Flip-Flops gespeicherten Daten verändern. Ob und gegebenenfalls wie sie sich ändern, hängt unter anderem von den Daten ab, die zuvor in die Schieberegister 102 und 103 geladen wurden, und vom Aufbau und der Funktion der Logik. Danach wird der Halbleiter-Chip über den Eingangsanschluß TDI wieder in die Full-Scan-Test/Schiebe-Betriebsart versetzt. In diesem Zustand werden die in den Schieberegistern 102 und 103 gespeicherten Daten über die Ausgangsanschlüsse 182 und 184 des Halbleiter-Chips ausgelesen. Gleichzeitig oder danach können bereits ein anderes Testmuster repräsentierende Daten in die Schieberegister 102 und 103 geschrieben werden. Die aus den Schieberegistern 102 und 103 ausgelesenen Daten werden sodann mit vorgegebenen Soll-Daten verglichen. Die Soll-Daten sind diejenigen Daten, die in den Schieberegistern 102 und 103 gespeichert sein müßten, wenn der Halbleiter-Chip ordnungsgemäß arbeitet. Anhand des Ergebnisses des Vergleiches zwischen den aus den Schieberegistern 102 und 103 ausgelesenen Daten und den Soll-Daten kann somit ermittelt werden, ob der Halbleiter-Chip ordnungsgemäß arbeitet. Stimmen die miteinander verglichenen Daten überein, so kann davon ausgegangen werden, daß der Halbleiter-Chip fehlerfrei gearbeitet hat. Stimmen die Daten nicht überein, hat der Halbleiter-Chip nicht fehlerfrei gearbeitet. Der vorstehend beschriebene Test kann unter Verwendung anderer Testmuster beliebig oft wiederholt werden.
-
Wenn die Bits a, b, c des Instruction Register 122 die Werte 1, 0, 0 aufweisen, sind die aus dem TAP 120 ausgegebenen Signale scan_mode und jtag_mode inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals sys_clock getaktet. In diesem Zustand befindet sich der Halbleiter-Chip in einer Testregisterzugriffs-Betriebsart, in welcher unter Steuerung der über den Eingangsabschluß TMS des Halbleiter-Chips eingegebenen Steuerbitfolge über den Eingangsanschluß TDI des Halbleiter-Chips der Inhalt des Testregisters 125 verändert werden kann. Damit der Inhalt des Testregisters 125 tatsächlich verändert werden kann, muß zusätzlich das vom TAP 120 ausgegebene Signal shift_dr aktiv sein.
-
Wenn die Bits a, b, c des Instruction Register 122 die Werte 0, 1, 1 aufweisen, sind die aus dem TAP 120 ausgegebenen Signale scan_mode und jtag_mode aktiv, ist das aus dem TAP 120 ausgegebene Signal scan_en entweder aktiv oder inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals scan_clock getaktet, wobei die Ausgabe des Taktsignals scan_clock aus dem TAP 120 jedoch nur zeitweise, genauer gesagt nur in den Phasen erfolgt, in welchen entweder das von der State Machine 121 ausgegebene Signal capture_dr oder das von der State Machine 121 ausgegebene Signal shift_dr aktiv ist. Wenn die Bits a, b, c des Instruction Register 122 die Werte 0, 1, 1 aufweisen, befindet sich der Halbleiter-Chip in der Selektiv-Scan-Test-Betriebsart. In der Selektiv-Scan-Test-Betriebsart kann wie bei der Full-Scan-Test-Betriebsart ein Test des Halbleiter-Chips nach dem Scan-Verfahren durchgeführt werden. Die Selektiv-Scan-Test-Betriebsart weist jedoch gegenüber der Full-Scan-Test-Betriebsart zwei Besonderheiten auf:
- – erstens werden die in die Schieberegister 102 und 103 zu schreibenden Testmuster über den Eingangsanschluß TDI des Halbleiter-Chips in die Schieberegister 102 und 103 geschrieben, und die aus den Schieberegistern 102 und 103 ausgelesenen Daten über den Ausgangsanschluß TDO des Halbleiter-Chips aus dem Halbleiter-Chip ausgegeben, und
- – zweitens kann der Scan-Test entweder unter ausschließlicher Verwendung des Schieberegisters 102, oder unter ausschließlicher Verwendung des Schieberegisters 103, oder unter Verwendung von sowohl dem Schieberegister 102 als auch dem Schieberegister 103 durchgeführt werden.
-
Ob der Scan-Test unter ausschließlicher Verwendung des Schieberegisters 102, oder unter ausschließlicher Verwendung des Schieberegisters 103, oder unter Verwendung von sowohl dem Schieberegister 102 als auch dem Schieberegister 103 durchgeführt wird, hängt vom Inhalt des Testregisters 125 ab. Genauer gesagt ist es so,
- – daß der Scan-Test unter ausschließlicher Verwendung des Schieberegisters 102 durchgeführt wird, wenn das den Multiplexer 175 steuernde (erste) Bit des Testregisters 125 aktiv ist, und das den Multiplexer 177 steuernde (zweite) Bit des Testregisters 125 inaktiv ist,
- – daß der Scan-Test unter ausschließlicher Verwendung des Schieberegisters 103 durchgeführt wird, wenn das den Multiplexer 175 steuernde (erste) Bit des Testregisters 125 inaktiv ist, und das den Multiplexer 177 steuernde (zweite) Bit des Testregisters 125 aktiv ist, und
- – daß der Scan-Test unter Verwendung von sowohl dem Schieberegister 102 als auch dem Schieberegister 103 durchgeführt wird, wenn das den Multiplexer 175 steuernde (erste) Bit des Testregisters 125 aktiv ist, und das den Multiplexer 177 steuernde (zweite) Bit des Testregisters 125 ebenfalls aktiv ist,
-
Wie das Testregister 125 mit den die Multiplexer 175 und 177 steuernden Bits beschrieben wird, wurde bereits vorstehend bei der Erläuterung der Testregisterzugriffs-Betriebsart erwähnt.
-
Unabhängig davon, welches oder welche Schieberegister mit einem Testmuster zu beschreiben sind, wird das Testmuster, genauer gesagt eine das Testmuster repräsentierende Bitfolge über der Eingangsanschluß TDI des Halbleiter-Chips eingegeben. Die über den Eingangsanschluß TDI eingegebenen Daten durchlaufen den TAP 120 und werden aus diesem unverändert als Daten tdi ausgegeben. Die Daten tdi werden an einen der Eingangsanschlüsse des Multiplexers 174 weitergeleitet, und, da das Signal jtag_mode in der Selective-Scan-Test-Betriebsart aktiv ist, durch den Multiplexer 174 durchgeschaltet. Die Daten tdi gelangen dadurch an den Eingangsanschluß des Schieberegisters 102 (und an einen der Eingangsanschlüsse des Multiplexers 175).
-
Bevor mit dem Einschreiben eines Testmusters in das Schieberegister 102 und/oder 103 begonnen wird, werden zunächst die vorstehend erwähnten Einstellungen im Testregister 125 vorgenommen, durch welche festgelegt wird, ob der Halbleiter-Chip-Test unter ausschließlicher Verwendung des Schieberegisters 102, oder unter ausschließlicher Verwendung des Schieberegisters 103, oder unter Verwendung von sowohl dem Schieberegister 102 als auch dem Schieberegister 103 durchgeführt werden soll. Ebenfalls noch vor dem Einschreiben eines Testmusters in das Schieberegister 102 und/oder 103 muß darüber hinaus dafür gesorgt werden, daß das Signal scan_en aktiv ist, denn nur dann sind die Flip-Flops der Logik zu den Schieberegistern 102 und 103 verschaltet. Das Signal scan_en ist aktiv, wenn sich die State Machine 121 nicht im Zustand capture_dr befindet. Vorzugsweise wird das Einschreiben des Testmusters in das Schieberegister durchgeführt, wenn sich die State Machine 121 im Zustand shift_dr befindet, denn in diesem Zustand wird vom TAP 120 auch das als Schiebetakt verwendbare Taktsignal scan_clock ausgegeben. Wenn sich der Halbleiter-Chip in der Selective-Scan-Test-Betriebsart befindet, und sich die State Machine 121 im Zustand shift_dr befindet, können die Schieberegister 102 und/oder 103 mit einem Testmuster beschrieben werden. Dieser Zustand wird im folgenden als Selective-Scan-Test/Schiebe-Betriebsart bezeichnet.
-
Wenn sich der Halbleiter-Chip in der Selective-Scan-Test/Schiebe-Betriebsart befindet, und im Testregister 125 eingestellt ist, daß der Halbleiter-Chip-Test unter ausschließlicher Verwendung des Schieberegisters 102 erfolgen soll, werden die in das Schieberegister 102 zu schreibenden Daten über den Eingangsanschluß TDI eingegeben, von dort über den TAP 120 und den Multiplexer 174 zum Schieberegister 102 weitergeleitet, und in diesem gespeichert.
-
Wenn sich der Halbleiter-Chip in der Selective-Scan-Test/Schiebe-Betriebsart befindet, und im Testregister 125 eingestellt ist, daß der Halbleiter-Chip-Test unter ausschließlicher Verwendung des Schieberegisters 103 erfolgen soll, werden die in das Schieberegister 103 zu schreibenden Daten über den Eingangsanschluß TDI eingegeben, von dort über den TAP 120, den Multiplexer 174, den Multiplexer 175, und den Multiplexer 176 zum Schieberegister 103 weitergeleitet, und in diesem gespeichert.
-
Wenn sich der Halbleiter-Chip in der Selective-Scan-Test/Schiebe-Betriebsart befindet, und im Testregister 125 eingestellt ist, daß der Halbleiter-Chip-Test unter Verwendung sowohl des Schieberegister 102 als auch des Schieberegisters 103 erfolgen soll, werden zunächst die in das Schieberegister 103 zu schreibenden Daten und unmittelbar in Anschluß daran die in das Schieberegister 102 zu schreibenden Daten über den Eingangsanschluß TDI des Halbleiter-Chips in diesen eingegeben, und von dort über den TAP 120 und den Multiplexer 174 zum Schieberegister 102 weitergeleitet. Das Schieberegister 102 speichert die ihm zugeführten Daten, wobei bei jedem Speichervorgang das in der letzten Speicherzelle des Schieberegisters 102 gespeicherte Bit aus dem Schieberegister 102 hinausgeschoben wird. Die aus dem Schieberegister 102 hinausgeschobenen Bits werden über die Multiplexer 175 und 176 zum Schieberegister 103 weitergeleitet, welches die ihm zugeführten Daten speichert. Nachdem das letzte der über den Eingangsanschluß TDI des Halbleiter-Chips eingegebenen Daten im Schieberegister 102 gespeichert wurde, sind die zuerst in das Schieberegister 102 geschriebenen, also die für das Schieberegister 103 bestimmten Daten komplett aus dem Schieberegister 103 hinausgeschoben und im Schieberegister 102 gespeichert, und die zuletzt in das Schieberegister 102 geschriebenen, also die für das Schieberegister 102 bestimmten Daten im Schieberegister 102 gespeichert.
-
Nachdem das Schieberegister 102 und/oder das Schieberegister 103 mit dem zu verwendenden Testmuster beschrieben wurden, wird der Halbleiter-Chip kurzzeitig in eine Selective-Scan-Test/Capture-Betriebsart versetzt. Dies geschieht im betrachteten Beispiel dadurch, daß die State Machine 121 des TAP 120 durch die Eingabe entsprechender Daten über den Eingangsanschluß TMS des Halbleiter-Chips in den Zustand capture_dr versetzt wird. Dies hat zur Folge, daß das Signal scan_en inaktiv wird, und dies wiederum hat zur Folge daß die Schieberegister 102 und 103 aufgelöst werden. Im Zustand capture_dr wird ferner das Taktsignal scan_clock aus dem TAP 120 ausgegeben. In diesem Zustand des Halbleiter-Chips arbeitet die Logik des Halbleiter-Chips einschließlich der Flip-Flops wie in der Normal-Betriebsart. Nur das verwendete Taktsignal (scan_clock) ist ein anderes als in der Normal-Betriebsart (sys_clock). Der Halbleiter-Chip wird im allgemeinen nur kurzzeitig, beispielsweise für einen oder zwei Takte des Taktsignals scan_clock, in der Selective-Scan-Test/Capture-Betriebsart gehalten. Hierbei können sich die von den Flip-Flops gespeicherten Daten verändern. Ob und gegebenenfalls wie sie sich ändern, hängt unter anderem von den Daten ab, die zuvor in die Schieberegister 102 und 103 geladen wurden, und vom Aufbau und der Funktion der Logik.
-
Anschließend wird der Halbleiter-Chip wieder in die Selective-Scan-Test/Schiebe-Betriebsart versetzt. Dies geschieht im betrachteten Beispiel dadurch, daß die State Machine 121 des TAP 120 durch die Eingabe entsprechender Daten über den Eingangsanschluß TMS des Halbleiter-Chips wieder in den Zustand shift_dr versetzt wird. In diesem Zustand werden die in den Schieberegistern 102 und 103 gespeicherten Daten ausgelesen und über den Ausgangsanschluß TDO des Halbleiter-Chips aus diesem ausgegeben.
-
Wenn sich der Halbleiter-Chip in der Selective-Scan-Test/Schiebe-Betriebsart befindet, und im Testregister 125 eingestellt ist, daß der Halbleiter-Chip-Test unter ausschließlicher Verwendung des Schieberegisters 102 erfolgen soll, werden die im Schieberegister 102 gespeicherten Daten aus dem Schieberegister 102 hinausgeschoben und über die Multiplexer 175, 176, 177, und den TAP 120 zum Ausgangsanschluß TDO weitergeleitet.
-
Wenn sich der Halbleiter-Chip in der Selective-Scan-Test/Schiebe-Betriebsart befindet, und im Testregister 125 eingestellt ist, daß der Halbleiter-Chip-Test unter ausschließlicher Verwendung des Schieberegisters 103 erfolgen soll, werden die im Schieberegister 103 gespeicherten Daten aus dem Schieberegister 103 hinausgeschoben und über den Multiplexer 177, und den TAP 120 zum Ausgangsanschluß TDO weitergeleitet.
-
Wenn sich der Halbleiter-Chip in der Selective-Scan-Test/Schiebe-Betriebsart befindet, und im Testregister 125 eingestellt ist, daß der Halbleiter-Chip-Test unter Verwendung sowohl des Schieberegister 102 als auch des Schieberegisters 103 erfolgen soll,
- – werden die im Schieberegister 103 gespeicherten Daten aus dem Schieberegister 103 hinausgeschoben und über den Multiplexer 177, und den TAP 120 zum Ausgangsanschluß TDO weitergeleitet, und
- – werden die im Schieberegister 102 gespeicherten Daten aus dem Schieberegister 102 hinausgeschoben, über die Multiplexer 175 und 176 dem Schieberegister 103 zugeführt, im Schieberegister 103 zwischengespeichert, und anschließend aus dem Schieberegister 103 hinausgeschoben und über den Multiplexer 177, und den TAP 120 zum Ausgangsanschluß TDO weitergeleitet,
wobei das Hinausschieben der im Schieberegister 103 gespeicherten Daten aus dem Schieberegister 103, und die Speicherung der aus dem Schieberegister 102 stammenden Daten im Schieberegister synchron erfolgen, so daß zuerst die aus dem Schieberegister 103 stammenden Daten und unmittelbar daran anschließend die aus dem Schieberegister 102 stammenden Daten aus dem Halbleiter-Chip ausgegeben werden.
-
Zeitgleich mit dem Auslesen der in den Schieberegister gespeicherten Daten oder danach können bereits ein anderes Testmuster repräsentierende Daten in die Schieberegister 102 und/oder 103 geschrieben werden.
-
Die aus den Schieberegistern 102 und/oder 103 ausgelesenen Daten werden sodann mit vorgegebenen Soll-Daten verglichen. Die Soll-Daten sind diejenigen Daten, die in den Schieberegistern 102 und/oder 103 gespeichert sein müßten, wenn der Halbleiter-Chip ordnungsgemäß arbeitet. Anhand des Ergebnisses des Vergleiches zwischen den aus den Schieberegistern 102 und/oder 103 ausgelesenen Daten und den Soll-Daten kann somit ermittelt werden, ob der Halbleiter-Chip ordnungsgemäß arbeitet. Stimmen die miteinander verglichenen Daten überein, so kann davon ausgegangen werden, daß der Halbleiter-Chip fehlerfrei gearbeitet hat. Stimmen die Daten nicht überein, hat der Halbleiter-Chip nicht fehlerfrei gearbeitet.
-
Der vorstehend beschriebene Test kann unter Verwendung anderer Testmuster beliebig oft wiederholt werden.
-
Ein weiterer Halbleiter-Chip, der unter Verwendung des Scan-Verfahrens getestet werden kann, ist in den 3 und 4 gezeigt und wird nachfolgend unter Bezugnahme darauf beschrieben.
-
Der in der 3 gezeigte Halbleiter-Chip enthält einen ersten Multiplexer 271, einen zweiten Multiplexer 272, einen dritten Multiplexer 273, einen vierten Multiplexer 278, einen fünften Multiplexer 279, einen im folgenden als TAP bezeichneten JTAG Test Access Port 220, ein erstes Sperrelement 291, ein zweites Sperrelement 292, und eine Vielzahl von Ein- und/oder Ausgabeanschlüssen, von welchen in der 3 jedoch nur die Anschlüsse TCK, TDI, TMS, TDO und 281 bis 285 gezeigt sind.
-
In der 3 sind ferner zwei zu einem Schieberegister verschaltete Register 225-1 und 225-2 gezeigt. Dieses Schieberegister ist Bestandteil des TAP 220, genauer gesagt ein Testregister 225 des TAP 220 (siehe 4), und ist in der 3 nur der Anschaulichkeit halber außerhalb des TAP 220 dargestellt. Das Schieberegister 225 bekommt Daten tdi zugeführt und gibt Daten tdo aus. Die das Schieberegister bildenden Register 225-1 und 225-2 sind jeweils zur Speicherung eines Bits ausgelegt. Dem Testregister 225 ist kein Schattenregister zugeordnet.
-
Der Halbleiter-Chip enthält ferner eine in der 3 nicht gezeigte Logik.
-
Der Halbleiter-Chip kann darüber hinaus beliebige weitere Komponenten enthalten, beispielsweise eine oder mehrere CPUs, einen oder mehrere Speicher, etc.
-
Die in der 3 nicht gezeigte Logik entspricht der Logik 401 des in der 5 gezeigten Halbleiter-Chips. Die Logik enthält eine Vielzahl von logischen Gattern und Speicherelementen. Die Speicherelemente werden im betrachteten Beispiel durch Flip-Flops gebildet, die sich wie bei dem in 5 gezeigten Halbleiter-Chip zum Testen des Halbleiter-Chips so in Reihe schalten lassen, daß sie sich wie ein Schieberegister verhalten. Wie dies im einzelnen geschieht, ist bekannt und bedarf keiner näheren Erläuterung. Die 3 zeigt den Zustand des Halbleiter-Chips, in welchen die Flip-Flops der Logik zu zwei Schieberegistern, nämlich einem ersten Schieberegister 202 und einem zweiten Schieberegister 203 verschaltet sind. Die Schieberegister 202 und 203 entsprechen den Schieberegistern 402 und 403 des in der 5 gezeigten herkömmlichen Halbleiter-Chips.
-
Das erste Schieberegister 202 ist eingangsseitig mit dem Ausgangsanschluß des Multiplexers 278 verbunden. Der Multiplexer 278 weist zwei Eingangsanschlüsse auf, von welchen dem einem das im Register 225-1 gespeicherte Bit zugeführt wird, und von welchen der andere mit dem Eingangsanschluß 281 des Halbleiter-Chips verbunden ist. Der Multiplexer 278 wird durch ein vom TAP 220 ausgegebenes Signal jtag_mode gesteuert. Bei aktivem Signal jtag_mode gibt der Multiplexer 278 das im Register 225-1 gespeicherte Bit aus, und bei inaktivem Signal jtag_mode gibt der Multiplexer 278 die über den Eingangsanschluß 281 des Halbleiter-Chips eingegebenen Daten aus.
-
Das erste Schieberegister 202 ist ausgangsseitig mit einem Eingangsanschluß des Registers 225-1 und einem Eingangsanschluß des Multiplexers 271 verbunden.
-
Durch den Multiplexer 271 werden wahlweise die aus dem Schieberegister 202 ausgegebenen Daten oder aus der nicht gezeigten Logik ausgegebene Daten weitergeleitet Der Multiplexer 271 wird durch ein vom TAP 220 ausgegebenes Signal scan_en gesteuert. Bei aktivem Signal scan_en gibt der Multiplexer 271 die ihm vom Schieberegister 202 zugeführten Daten aus, und bei inaktivem Signal scan_en gibt der Multiplexer 271 die ihm von der Logik zugeführten Daten aus. Die aus dem Multiplexer 271 ausgegebenen Daten werden über das Sperrelement 291 an den Ausgangsanschluß 282 des Halbleiter-Chips weitergeleitet.
-
Das Sperrelement 291 wird durch das vom TAP 220 ausgegebene Signal jtag_mode gesteuert. Durch das Sperrelement 291 kann die Weiterleitung des aus dem Multiplexer 271 ausgegebenen Signals zum Ausgangsanschluß 282 verhindert werden. Wie sich das Sperrelement 291 verhält, d. h. ob es das ihm zugeführte Signal zum Ausgangsanschluß 282 weiterleitet oder nicht, hängt vom Pegel des Steuersignals jtag_mode ab. Bei aktivem Steuersignal jtag_mode wird die Weiterleitung der dem Sperrelement 291 zugeführten Daten zum Ausgangsanschluß 282 unterbunden, und bei inaktivem Steuersignal jtag_mode werden die dem Sperrelement 291 zugeführten Daten zum Ausgangsanschluß 282 weitergeleitet. Durch das Sperrelement 291 kann verhindert werden, daß wärend des Scan-Tests am Ausgangsanschluß 282 des Halbleiter-Chips Ausgangsmuster entstehen, die zu Beschädigungen der Folgeschaltung führen.
-
Das zweite Schieberegister 203 ist eingangsseitig mit dem Ausgangsanschluß des Multiplexers 279 verbunden. Der Multiplexer 279 weist zwei Eingangsanschlüsse auf, von welchen dem einem das im Register 225-2 gespeicherte Bit zugeführt wird, und von welchen der andere mit dem Eingangsanschluß 283 des Halbleiter-Chips verbunden ist. Der Multiplexer 279 wird durch das vom TAP 220 ausgegebene Signal jtag_mode gesteuert. Bei aktivem Signal jtag_mode gibt der Multiplexer 279 das im Register 225-2 gespeicherte Bit aus, und bei inaktivem Signal jtag_mode gibt der Multiplexer 279 die über den Eingangsanschluß 283 des Halbleiter-Chips eingegebenen Daten aus.
-
Das zweite Schieberegister 203 ist ausgangsseitig mit einem Eingangsanschluß des Registers 225-2 und einem Eingangsanschluß des Multiplexers 272 verbunden.
-
Durch den Multiplexer 272 werden wahlweise die aus dem Schieberegister 203 ausgegebenen Daten oder aus der nicht gezeigten Logik ausgegebene Daten weitergeleitet Der Multiplexer 272 wird durch das vom TAP 220 ausgegebene Signal scan_en gesteuert. Bei aktivem Signal scan_en gibt der Multiplexer 272 die ihm vom Schieberegister 203 zugeführten Daten aus, und bei inaktivem Signal scan_en gibt der Multiplexer 272 die ihm von der Logik zugeführten Daten aus. Die aus dem Multiplexer 272 ausgegebenen Daten werden über das Sperrelement 292 an den Ausgangsanschluß 284 des Halbleiter-Chips weitergeleitet.
-
Das Sperrelement 292 wird durch das vom TAP 220 ausgegebene Signal jtag_mode gesteuert. Durch das Sperrelement 291 kann die Weiterleitung des aus dem Multiplexer 272 ausgegebenen Signals zum Ausgangsanschluß 284 verhindert werden. Wie sich das Sperrelement 292 verhält, d. h. ob es das ihm zugeführte Signal zum Ausgangsanschluß 284 weiterleitet oder nicht, hängt vom Pegel des Steuersignals jtag_mode ab. Bei aktivem Steuersignal jtag_mode wird die Weiterleitung der dem Sperrelement 292 zugeführten Daten zum Ausgangsanschluß 284 unterbunden, und bei inaktivem Steuersignal jtag_mode werden die dem Sperrelement 292 zugeführten Daten zum Ausgangsanschluß 284 weitergeleitet. Durch das Sperrelement 292 kann verhindert werden, daß wärend des Scan-Tests am Ausgangsanschluß 284 des Halbleiter-Chips Ausgangsmuster entstehen, die zu Beschädigungen der Folgeschaltung führen.
-
Der Multiplexer 273 weist zwei Eingangsanschlüsse auf, wobei an den ersten Eingangsanschluß ein dem Halbleiter-Chip über den Eingangsanschluß 285 zugeführtes erstes Taktsignal sys_clock angelegt wird, und wobei an den zweiten Eingangsanschluß ein aus dem TAP 220 ausgegebenes, als zweites Taktsignal verwendetes Signal scan_clock angelegt wird. Dabei ist das erste Taktsignal sys_clock das Taktsignal, mit welchem der Halbleiter-Chip während des normalen Betriebes zu takten ist, und ist das zweite Taktsignal scan_clock das Taktsignal, mit welchem der Halbleiter-Chip während des Testens des Halbleiter-Chips zu takten ist. Der Multiplexer 273 wird durch das vom TAP 220 ausgegebene Signal scan_mode gesteuert. Bei aktivem Signal scan_mode wird das vom TAP 220 ausgegebene Taktsignal scan_clock durchgeschaltet, und bei inaktivem Signal scan_mode wird das über den Eingangsanschluß 285 zugeführte Taktsignal sys_clock durchgeschaltet. Das aus dem Multiplexer 273 ausgegebene Taktsignal ist das Taktsignal, mit welchem die taktgesteuerten Komponenten des Halbleiter-Chips arbeiten.
-
Der TAP 220 ist ein JTAG Test Access Port gemäß IEEE 1149.1. Der JTAG Test Access Port gemäß IEEE 1149.1 wurde, wie vorstehend bereits erwähnt wurde, ursprünglich für den sogenannten Boundary-Scan-Test entwickelt und standardisiert. Der TAP 220 ermöglicht es darüber hinaus, daß auch das Testen des Halbleiter-Chips nach dem Full-Scan-Test-Verfahren oder einem später noch näher erläuterten Seriell-Scan-Test-Verfahren über den TAP 120 gesteuert wird, und daß die beim Testen des Halbleiter-Chips gebildeten Schieberegister 202 und 203 über den Eingangsanschluß TDI des Halbleiter-Chips und den TAP 220 beschrieben und ausgelesen werden können.
-
Der TAP 220 ist mit den Eingangsanschlüssen TCK, TDI und TMS, und mit dem Ausgangsanschluß TDO des Halbleiter-Chips verbunden. Die Anschlüsse des Halbleiter-Chips, mit welchen der TAP 220 verbunden ist, weisen die Bezeichnungen auf, die auch im erwähnten Standard IEEE 1149.1 verwendet werden.
-
Der TAP 220 gibt die vorstehend bereits erwähnten Signale scan_clock, scan_en, scan_mode und jtag_mode, sowie die Daten tdi aus, und bekommt (vom Register 225-2) die Daten tdo zugeführt.
-
Der Aufbau des TAP 220 ist in 4 veranschaulicht. Der TAP 220 enthält eine State Machine 221, ein Instruction Register 222, das bereits erwähnte Testregister 225, UND-Gatter 231 bis 234, ODER-Gatter 241 und 243, ein Sperrelement 251, Multiplexer 261 bis 263, und ein Flip-Flop 265.
-
Die State Machine 221 ist mit den Eingangsanschlüssen TMS und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TMS seriell Steuer-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt. Die State Machine 221 kann die selben 16 verschiedenen Zustände annehmen wie es bei der State Machine 421 des in der 6 veranschaulichten herkömmlichen TAP 420 der Fall ist. In welchem Zustand sich die State Machine 221 gerade befindet, hängt von der der State Machine 221 über den Eingangsanschluß TMS zugeführten Steuer-Bit-Folge ab. Das State Diagram für die State Machine 221 entspricht dem in 7 gezeigten State Diagram für die State Machine 421.
-
Die State Machine 221 gibt Signale update_ir, shift_ir, capture_dr, shift_dr, update_dr, und *_ir aus, wobei
- – das Signal update_ir aktiv ist, wenn sich die State Machine im Zustand update_ir befindet,
- – das Signal shift_ir aktiv ist, wenn sich die State Machine im Zustand shift_ir befindet,
- – das Signal capture_dr aktiv ist, wenn sich die State Machine im Zustand capture_dr befindet,
- – das Signal shift_dr aktiv ist, wenn sich die State Machine im Zustand shift_dr befindet, und
- – das Signal update_dr aktiv ist, wenn sich die State Machine im Zustand update_dr befindet, und
- – das Signal *_ir aktiv ist, wenn sich die State Machine in einem der Zustände befindet, deren Bezeichnung mit _ir endet.
-
Das Instruction Register 222 ist ein Schieberegister, das mehrere, jeweils zur Speicherung von 1 Bit ausgelegte Register umfaßt. Die Anzahl der Register beträgt im betrachteten Beispiel zwei, kann aber auch beliebig viel größer sein. Dem Instruction Register 222 ist ein in der 4 nicht gezeigtes Schattenregister gleicher Größe zugeordnet.
-
Das Instruction Register 222 ist mit den Eingangsanschlüssen TDI und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TDI seriell Instruktions-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt.
-
Das Instruction Register 222 wird durch die von der State Machine 221 ausgegebenen Signale update_ir und shift_ir gesteuert. Durch das Signal update_ir wird die parallele Übernahme der im Instruction Register 222 gespeicherten Daten in das Schattenregister veranlaßt, und durch das Signal shift_ir wird eine bitweise serielle Übernahme von Daten in das Instruction Register 222 mit gleichzeitiger Schiebeoperation veranlaßt.
-
Durch das Signal update_ir wird bestimmt, ob ein dem Instruction Register 222 über den Eingangsanschluß TDI zugeführtes Instruktions-Bit in das Instruction Register übernommen wird, und durch das Signal shift_ir wird veranlaßt, ob der Inhalt des Instruction Register 222 geschoben wird.
-
Von den im Instruction Register 222 gespeicherten Bits wird der Wert eines a-ten Bits als das vorstehend bereits erwähnte Signal jtag_mode verwendet und aus dem TAP 220 ausgegeben. Das a-te Bit ist im betrachteten Beispiel das erste Bit, kann aber prinzipiell auch ein beliebiges anderes Bit des Instruction Register 222 sein. Das a-te Bit wird zusätzlich zur Steuerung der Multiplexer 262 und 263 verwendet und dem ODER-Gatter 241 sowie den UND-Gattern 231 und 232 zugeführt.
-
Dem ODER-Gatter 241 wird ferner der Wert eines b-ten Bits der im Instruction Register 222 gespeicherten Bits zugeführt. Das b-te Bit ist im betrachteten Beispiel das zweite Bit, kann aber prinzipiell auch ein beliebiges anderes Bit des Instruction Register 222 sein. Das ODER-Gatter 241 unterzieht die ihm zugeführten Signale einer ODER-Verknüpfung. Das Ergebnis dieser Operation wird als das vorstehend bereits erwähnte Signal scan_mode verwendet und aus dem TAP 120 ausgegeben.
-
Das b-te Bit der im Instruction Register 222 gespeicherten Bits wird ferner dem UND-Gatter 233 und dem Multiplexer 263 zugeführt.
-
Dem UND-Gatter 233 wird ferner das aktuell über den Eingangsanschluß TDI zugeführte Instruktions-Bit zugeführt. Das UND-Gatter 233 führt eine UND-Verknüpfung der ihm zugeführten Signale aus. Das Ergebnis dieser UND-Verknüpfung wird dem Multiplexer 262 zugeführt.
-
Dem Multiplexer 262 wird zusätzlich das Ausgangssignal des Flip-Flops 265 zugeführt. Der Multiplexer 162 wird, wie vorstehend bereits erwähnt wurde, durch das a-te Bit des Instruction Register 222 gesteuert. Bei aktivem a-ten Bit wird das Ausgangssignal des Flip-Flops 265 durchgeschaltet, und bei inaktivem a-ten Bit wird das vom UND-Gatter 233 ausgegebene Signal durchgeschaltet. Das vom Multiplexer 262 durchgeschaltete Signal wird als das vorstehend bereits erwähnte Signal scan_en verwendet und aus dem TAP 220 ausgegeben.
-
Der Eingangsanschluß des Flip-Flops 265 ist mit dem Ausgangsanschluß des UND-Gatters 234 verbunden, und wird durch das dem TAP 220 über den Eingangsanschluß TCK des Halbleiter-Chips zugeführte Taktsignal getaktet.
-
Dem UND-Gatter 234 werden als Eingangssignale das Ausgangssignal des ODER-Gatters 243 sowie das invertierte Ausgangssignal capture_dr der State Machine 221 zugeführt. Das UND-Gatter 234 unterzieht die ihm zugeführten Signale einer logischen UND-Verknüpfung und gibt das Ergebnis dieser UND-Verknüpfung an des Flip-Flop 265 aus.
-
Dem ODER-Gatter 243 werden als Eingangssignale das Ausgangssignal des Flip-Flops 265 sowie das Ausgangssignal shift_dr der State Machine 221 zugeführt. Das ODER-Gatter 243 unterzieht die ihm zugeführten Signale einer logischen ODER-Verknüpfung und gibt das Ergebnis dieser ODER-Verknüpfung an des UND-Gatter 234 aus.
-
Dem Multiplexer 263 wird zusätzlich das Ausgangssignal update_dr der State Machine 221 zugeführt. Der Multiplexer 263 wird, wie vorstehend bereits erwähnt wurde, durch das a-te Bit des Instruction Register 222 gesteuert. Bei aktivem a-ten Bit wird das Signal update_dr durchgeschaltet, und bei inaktivem a-ten Bit wird das b-te Bit des Instruction Register 222 durchgeschaltet. Das vom Multiplexer 263 ausgegebene Signal wird als Steuersignal für das Sperrelement 251 verwendet.
-
Das Sperrelement 151 ist eingangsseitig mit dem Eingangsanschluß TCK des Halbleiter-Chips verbunden; das Ausgangssignal des Sperrelementes ist das vorstehend bereits erwähnte Ausgangssignal scan_clock des TAP 220. Das Ausgangssignal scan_clock entspricht dem über den Eingangsanschluß TCK eingegebenen Taktsignal. D. h., das über den Eingangsanschluß TCK eingegebene Taktsignal wird durch das Sperrelement 251 nur durchgeleitet. Durch das Sperrelement 251 kann die Durchleitung aber gesperrt werden, wobei es vom Ausgangssignal des Multiplexers 163 abhängt, wie sich das Sperrelement 251 verhält.
-
Wie vorstehend bereits erwähnt wurde, wird von den im Instruction Register 222 gespeicherten Bits der Wert des a-ten Bits auch dem UND-Gatter 231 und dem UND-Gatter 232 zugeführt.
-
Dem UND-Gatter 231 wird zusätzlich das von der State Machine 221 ausgegebene Signal shift_dr zugeführt. Das UND-Gatter 231 führt eine UND-Verknüpfung der ihm zugeführten Signale durch und gibt das Ergebnis dieser Verknüpfung an das Testregister 225 aus.
-
Dem UND-Gatter 232 wird zusätzlich das von der State Machine 221 ausgegebene Signal capture_dr zugeführt. Das UND-Gatter 232 führt eine UND-Verknüpfung der ihm zugeführten Signale durch und gibt das Ergebnis dieser Verknüpfung an das Testregister 225 aus.
-
Das Testregister 225 ist eines der in IEEE 1149.1 erwähnten ”design specific registers”. Es handelt sich um ein Schieberegister, das mehrere, jeweils zur Speicherung von 1 Bit ausgelegte Register umfaßt. Die Anzahl der Register entspricht der Anzahl der Schieberegister, zu welchen die Flip-Flops der Logik während des Testens des Halbleiter-Chips verschaltet sind. Im betrachteten Beispiel gibt es zwei solche Schieberegister, nämlich die Schieberegister 202 und 203, so daß das Testregister 225 also ein zwei Register umfassendes Testregister ist. Die Register des Testregisters 225 sind auch parallel und ohne Schiebeoperation beschreibbar und auslesbar.
-
Das Testregister 225 ist mit den Eingangsanschlüssen TDI und TCK des Halbleiter-Chips verbunden, und bekommt über den Eingangsanschluß TDI seriell Instruktions-Bits, und über den Eingangsanschluß TCK ein Taktsignal zugeführt.
-
Das Testregister 225 wird durch die von den UND-Gattern 231 und 232 ausgegebenen Signale gesteuert.
-
Die aus dem Instruction Register 222 hinaus geschobenen Bits werden einem der Eingangsanschlüsse des Multiplexers 261 zugeführt. Der Multiplexer 261 weist im betrachteten Beispiel zwei Eingangsanschlüsse auf, wobei dem zweiten Eingangsanschluß die dem TAP 220 zugeführten Daten tdo zugeführt werden. Der Multiplexer 261 wird durch das von der State Machine 221 ausgegebene Signal *_ir gesteuert. Bei aktivem Signal *_ir werden die aus dem Instruction Register 222 hinausgeschobenen Bits durchgeschaltet, und bei inaktivem Signal *_ir werden die Daten tdo durchgeschaltet. Die aus dem Multiplexer 261 ausgegebenen Daten werden über den Ausgangsanschluß TDO des Halbleiter-Chips aus diesem ausgegeben. Der Multiplexer 261 kann zusätzlich nicht gezeigte weitere Eingangsanschlüsse aufweisen, die mit ebenfalls nicht gezeigten weiteren Registern des TAP 220 verbunden sind.
-
Darüber hinaus werden die dem TAP 220 über den Eingangsanschluß TDI des Halbleiter-Chips zugeführten Daten als die Daten tdi verwendet und aus dem TAP 220 ausgegeben.
-
Der Vollständigkeit halber sei angemerkt, daß, obgleich dies in der 4 nicht dargestellt ist, sämtliche taktgesteuerten Komponenten des TAP 220 durch das dem Halbleiter-Chip über den Eingangsanschluß TCK zugeführte Taktsignal scan_clock getaktet werden.
-
Der Halbleiter-Chip kann über den TAP 220 in verschiedene Betriebsarten versetzt werden. In welcher Betriebsart sich der Halbleiter-Chip befindet, wird dabei unter anderem durch die Bits a und b des Instruction Register 222 bestimmt. Das Instruction Register 222 kann im Zustand shift_ir der State Machine 221 über den Eingangsanschluß TDI des Halbleiter-Chips beschrieben werden. Das Versetzen der State Machine in den Zustand shift_ir oder in einen sonstigen gewünschten Zustand erfolgt durch die Eingabe einer entsprechenden Bitfolge über den Eingangsanschluß TMS des Halbleiter-Chips. Wie diese Bitfolge auszusehen hat, ist dem in 7 gezeigten State Diagram entnehmbar.
-
Wenn die Bits a, b des Instruction Register 222 die Werte 0, 0 aufweisen, sind die aus dem TAP 120 ausgegebenen Signale scan_en, scan_mode, und jtag_mode inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals sys_clock getaktet. In diesem Zustand befindet sich der Halbleiter-Chip in der Normal-Betriebsart, wobei die Normal-Betriebsart diejenige Betriebsart ist, in welcher sich der Halbleiter-Chip im normalen Betrieb befindet und bestimmungsgemäß arbeitet. In der Normal-Betriebsart verhält sich der Halbleiter-Chip wie der in den 5 und 6 gezeigte herkömmliche Halbleiter-Chip, wenn sich dieser in der Normal-Betriebsart befindet.
-
Vorzugsweise ist es so, daß die Bits a, b des Instruction Register 222 nach dem Rücksetzen des Halbleiter-Chips die Werte 0, 0 aufweisen. Dadurch befindet sich der Halbleiter-Chip nach dem Rücksetzen desselben automatisch in der Normal-Betriebsart.
-
Wenn die Bits a, b des Instruction Register 222 die Werte 0, 1 aufweisen, ist das aus dem TAP 220 ausgegebene Signal jtag_mode inaktiv, ist das aus dem TAP 220 ausgegebene Signal scan_mode aktiv, ist das aus dem TAP 220 ausgegebene Signal scan_en entweder aktiv oder inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals scan_clock getaktet. In diesem Zustand befindet sich der Halbleiter-Chip in der Full-Scan-Test-Betriebsart, wobei die Full-Scan-Test-Betriebsart diejenige Betriebsart ist, in welcher der Halbleiter-Chip nach dem Full-Scan-Test-Verfahren getestet werden kann. Das Testen des Halbleiter-Chips nach dem Full-Scan-Test-Verfahren erfolgt dabei exakt so wie es bei dem in den 5 und 6 gezeigten herkömmlichen Halbleiter-Chip der Fall ist. D. h. der TAP 220 wird durch die Eingabe entsprechender Daten über den Eingangsanschluß TDI zunächst in einen Zustand versetzt, in welchem das vom TAP 220 ausgegebene Signal scan_en den Wert aufweist, durch welchen die Flip-Flops der Logik zu den Schieberegistern 202 und 203 verschaltet werden. In diesem Zustand befindet sich der Halbleiter-Chip in der Full-Scan-Test/Schiebe-Betriebsart. Die Full-Scan-Test/Schiebe-Betriebsart des in den 1 und 2 gezeigten Halbleiter-Chips entspricht der Full-Scan-Test/Schiebe-Betriebsart des in den 5 und 6 gezeigten herkömmlichen Halbleiter-Chips. Anschließend werden die Schieberegister 202 und 203 über die Eingangsanschlüsse 181 und 183 des Halbleiter-Chips bitweise seriell mit ein Testmuster repräsentierenden Daten beschrieben. Nachdem dies geschehen ist, wird der Halbleiter-Chip über den Eingangsanschluß TDI des Halbleiter-Chips kurzzeitig, beispielsweise für einen oder zwei Takte des Taktsignals scan_clock, in die Full-Scan-Test/Capture-Betriebsart versetzt. Das hierfür über den Eingangsanschluß TDI einzugebende Signal ein Signal, durch welches eine Invertierung des aus dem TAP 220 ausgegebenen Signals scan_en bewirkt wird, also ein Signal, das komplementär zu dem während der Full-Scan-Test/Schiebe-Betriebsart eingegebenen Signal ist. Die Full-Scan-Test/Capture-Betriebsart des in den 1 und 2 gezeigten Halbleiter-Chips entspricht der Full-Scan-Test/Capture-Betriebsart des in den 5 und 6 gezeigten herkömmlichen Halbleiter-Chips. D. h., in dieser Betriebsart sind die Schieberegister 202 und 203 aufgelöst, und die Logik einschließlich der Flip-Flops arbeitet wie in der Normal-Betriebsart. Nur das Taktsignal (scan_clock) ist ein anderes als in der Normal-Betriebsart (sys_clock). In der Full-Scan-Test/Capture-Betriebsart können sich die von den Flip-Flops gespeicherten Daten verändern. Ob und gegebenenfalls wie sie sich ändern, hängt unter anderem von den Daten ab, die zuvor in die Schieberegister 202 und 203 geladen wurden, und vom Aufbau und der Funktion der Logik. Danach wird der Halbleiter-Chip über den Eingangsanschluß TDI wieder in die Full-Scan-Test/Schiebe-Betriebsart versetzt. In diesem Zustand werden die in den Schieberegistern 202 und 203 gespeicherten Daten über die Ausgangsanschlüsse 282 und 284 des Halbleiter-Chips ausgelesen. Gleichzeitig oder danach können bereits ein anderes Testmuster repräsentierende Daten in die Schieberegister 202 und 203 geschrieben werden. Die aus den Schieberegistern 202 und 203 ausgelesenen Daten werden sodann mit vorgegebenen Soll-Daten verglichen. Die Soll-Daten sind diejenigen Daten, die in den Schieberegistern 202 und 203 gespeichert sein müßten, wenn der Halbleiter-Chip ordnungsgemäß arbeitet. Anhand des Ergebnisses des Vergleiches zwischen den aus den Schieberegistern 202 und 203 ausgelesenen Daten und den Soll-Daten kann somit ermittelt werden, ob der Halbleiter-Chip ordnungsgemäß arbeitet. Stimmen die miteinander verglichenen Daten überein, so kann davon ausgegangen werden, daß der Halbleiter-Chip fehlerfrei gearbeitet hat. Stimmen die Daten nicht überein, hat der Halbleiter-Chip nicht fehlerfrei gearbeitet. Der vorstehend beschriebene Test kann unter Verwendung anderer Testmuster beliebig oft wiederholt werden.
-
Wenn die Bits a, b des Instruction Register 122 die Werte 1, 1 aufweisen, sind die aus dem TAP 220 ausgegebenen Signale scan_mode und jtag_mode aktiv, ist das aus dem TAP 120 ausgegebene Signal scan_en entweder aktiv oder inaktiv, und wird der Halbleiter-Chip unter Verwendung des Taktsignals scan_clock getaktet, wobei die Ausgabe des Taktsignals scan_clock aus dem TAP 220 jedoch nur zeitweise, genauer gesagt nur in den Phasen erfolgt, in welchen das von der State Machine 221 ausgegebene Signal update_dr aktiv ist. Wenn die Bits a, b des Instruction Register 122 die Werte 1, 1 aufweisen, befindet sich der Halbleiter-Chip in der Seriell-Scan-Test-Betriebsart. In der Seriell-Scan-Test-Betriebsart kann wie bei der Full-Scan-Test-Betriebsart ein Test des Halbleiter-Chips nach dem Scan-Verfahren durchgeführt werden. Die Seriell-Scan-Test-Betriebsart weist jedoch gegenüber der Full-Scan-Test-Betriebsart die Besonderheiten auf, daß die in die Schieberegister 202 und 203 zu schreibenden Testmuster über den Eingangsanschluß TDI des Halbleiter-Chips und das Testregister 225 in die Schieberegister 202 und 203 geschrieben werden, und daß die aus den Schieberegistern 202 und 203 hinaus geschobenen Daten über das Testregister 225 und den Ausgangsanschluß TDO des Halbleiter-Chips aus dem Halbleiter-Chip ausgegeben werden.
-
Zum Einschreiben von Testmustern in die Schieberegister 202 und 203 werden die Testmuster, genauer gesagt eine die Testmuster repräsentierende Bitfolge bitweise seriell über der Eingangsanschluß TDI des Halbleiter-Chips eingegeben und im Testregister 225 des TAP 220 gespeichert.
-
Bereits bevor mit dem Einschreiben der Testmuster in das Testregister 225 begonnen wird, spätestens aber vor dem im Anschluß daran erfolgenden Transfer der im Testregister 225 gespeicherten Daten in die Schieberegister 202 und 203, muß auch bei dem in 3 und 4 gezeigten Halbleiter-Chip dafür gesorgt werden, daß das Signal scan_en aktiv ist, denn nur dann sind die Flip-Flops der Logik zu den Schieberegistern 202 und 203 verschaltet. Das Signal scan_en ist aktiv, wenn
- – entweder sich die State Machine 221 im Zustand shift_dr befindet, oder das Ausgangssignal des Flip-Flops 265 gleich ”1” ist, und wenn gleichzeitig
- – sich die State Machine 221 nicht im Zustand capture_dr befindet.
-
D. h., das Signal scan_en wird durch Versetzen der State Machine 221 in den Zustand shift_dr aktiviert, und durch Versetzen der State Machine 221 in den Zustand capture_dr deaktiviert.
-
Im betrachteten Beispiel werden die in das Testregister 225 zu schreibenden Daten im Zustand shift_dr der State Machine 221 über den Eingangsanschluß TDI des Halbleiter-Chips eingegeben. In diesem Zustand ist das Signal scan_en automatisch bereits aktiv, während das Testregister 225 mit den Testmustern oder einem Teil derselben beschrieben wird.
-
Im betrachteten Beispiel wird zunächst nur ein Teil der Testmuster in das Testregister 225 beschrieben. Dies ist deshalb der Fall, weil die Schieberegister 202 und 203 im betrachteten Beispiel jeweils zur Speicherung von zwei Bits, also zur Speicherung von insgesamt 4 Bits ausgelegt sind, im Testregister 225 aber nur zwei Bits gespeichert werden können. Genauer gesagt ist es so, daß über den Eingangsanschluß TDI des Halbleiter-Chips zunächst das niederwertige Bit des für das Schieberegister 203 bestimmten Testmusters eingegeben wird, und unmittelbar im Anschluß daran das niederwertige Bit des für das Schieberegister 202 bestimmten Testmusters eingegeben wird. Danach ist im Register 225-2 des Testregisters 225 das niederwertige Bit des für das Schieberegister 203 bestimmten Testmusters gespeichert, und im Register 225-1 des Testregisters 225 das niederwertige Bit des für das Schieberegister 202 bestimmten Testmusters gespeichert.
-
Anschließend werden die im Testregister 225 gespeicherten Bits in die Schieberegister 202 und 203 transferiert. Hierzu wird die State Machine 221 durch die Eingabe einer entsprechenden Bitfolge über den Eingangsanschluß TMS in den Zustand update_dr versetzt. Dies hat zur Folge, daß das Taktsignal scan_clock aus dem TAP 220 ausgegeben wird und das im Register 225-1 gespeicherte Bit über den Multiplexer 278 dem Schieberegister 202 zugeführt und in diesem gespeichert wird, und gleichzeitig das im Register 225-2 gespeicherte Bit über den Multiplexer 278 dem Schieberegister 203 zugeführt und in diesem gespeichert wird.
-
Danach wird die State Machine 221 durch die Eingabe einer entsprechenden Bitfolge über den Eingangsanschluß TMS des Halbleiter-Chips wieder in den Zustand shift_dr versetzt, und über den Eingangsanschluß TDI des Halbleiter-Chips die höherwertigen Bits der Testmuster in das Testregister geschrieben. Genauer gesagt wird nach dem Versetzen der State Machine 221 in den Zustand shift_dr über den Eingangsanschluß TDI des Halbleiter-Chips zunächst das höherwertige Bit des für das Schieberegister 203 bestimmten Testmusters eingegeben, und unmittelbar im Anschluß daran das höherwertige Bit des für das Schieberegister 202 bestimmten Testmusters eingegeben. Danach ist im Register 225-2 des Testregisters 225 das höherwertige Bit des für das Schieberegister 203 bestimmten Testmusters gespeichert, und im Register 225-1 des Testregisters 225 das höherwertige Bit des für das Schieberegister 202 bestimmten Testmusters gespeichert.
-
Anschließend werden die im Testregister 225 gespeicherten Bits in die Schieberegister 202 und 203 transferiert. Hierzu wird die State Machine 221 wieder durch die Eingabe einer entsprechenden Bitfolge über den Eingangsanschluß TMS in den Zustand update_dr versetzt. Dies hat zur Folge, daß das Taktsignal scan_clock aus dem TAP 220 ausgegeben wird und das im Register 225-1 gespeicherte Bit über den Multiplexer 278 dem Schieberegister 202 zugeführt und unter gleichzeitiger Durchführung einer Schiebeoperation in diesem gespeichert wird, und gleichzeitig das im Register 225-2 gespeicherte Bit über den Multiplexer 278 dem Schieberegister 203 zugeführt und unter gleichzeitiger Durchführung einer Schiebeoperation in diesem gespeichert wird.
-
Somit sind nun im Schieberegister 202 das höherwertige und das niederwertige Bit des für das Schieberegister 202 bestimmten Testmusters gespeichert, und im Schieberegister 203 das höherwertige und das niederwertige Bit des für das Schieberegister 203 bestimmten Testmusters gespeichert.
-
Wenn die Schieberegister 202 und 203 mehr als zwei Bits umfassen würden, könnten auch die weiteren Bits durch Wiederholung der vorstehend beschriebenen Vorgänge wie erläutert in die Schieberegister 202 und 203 geschrieben werden.
-
Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß die Schieberegister 202 und 203 auch dann auf die vorstehend beschriebene Art und Weise mit den für sie bestimmten Testmustern beschrieben werden können, wenn die Schieberegister 202 und 203 unterschiedlich lang sind.
-
Nachdem die Schieberegister 202 und 203 mit den zu verwendenden Testmustern beschrieben wurden, wird der Halbleiter-Chip kurzzeitig in eine Seriell-Scan-Test/Capture-Betriebsart versetzt. Dies geschieht im betrachteten Beispiel dadurch, daß die State Machine 221 des TAP 220 durch die Eingabe entsprechender Daten über den Eingangsanschluß TMS des Halbleiter-Chips in den Zustand capture_dr versetzt wird. Dies hat zur Folge, daß das Signal scan_en inaktiv wird, und dies wiederum hat zur Folge daß die Schieberegister 202 und 203 aufgelöst werden. Anschließend wird die State Machine 221 durch die Eingabe entsprechender Daten über den Eingangsanschluß TMS des Halbleiter-Chips in den Zustand update_dr versetzt, wodurch der TAP 220 wieder das Taktsignal scan_clock ausgibt. In diesem Zustand des Halbleiter-Chips arbeitet die Logik des Halbleiter-Chips einschließlich der Flip-Flops wie in der Normal-Betriebsart. Nur das verwendete Taktsignal (scan_clock) ist ein anders als in der Normal-Betriebsart (sys_clock). Der Halbleiter-Chip wird nur kurzzeitig, beispielsweise für einen oder mehrere Takte des Taktsignals scan_clock, in diesem Zustand gehalten. Hierbei können sich die von den Flip-Flops gespeicherten Daten verändern. Ob und gegebenenfalls wie sie sich ändern, hängt unter anderem von den Daten ab, die zuvor in die Schieberegister 202 und 203 geladen wurden, und vom Aufbau und der Funktion der Logik.
-
Anschließend wird der Halbleiter-Chip wieder in einen Zustand versetzt, in welcher er sich Seriell-Scan-Test/Schiebe-Betriebsart befindet und das Taktsignal scan_clock aus dem TAP 220 ausgegeben wird. Dies geschieht dadurch, daß die State Machine 221 zunächst in den Zustand shift_dr, und anschließend in den Zustand update_dr versetzt wird. In diesem Zustand werden die in den Schieberegistern 202 und 203 gespeicherten Daten in das Testregister 225 transferiert und von dort aus über den Ausgangsanschluß TDO des Halbleiter-Chips aus diesem ausgegeben.
-
Da die Schieberegister 202 und 203 zusammen länger sind als das Testregister 225 geschieht dies ähnlich wie das Beschreiben der Schieberegister in mehreren Schritten. Genauer gesagt ist es so, daß zunächst nur jeweils das niederwertige Bit der in den Schieberegistern 202 und 203 gespeicherten Daten aus den Schieberegistern hinausgeschoben in das Testregister 225 transferiert wird. Nach diesem Transfer befindet sich im Register 225-1 das niederwertige Bit der im Schieberegister 202 gespeicherten Daten, und im Register 225-1 das niederwertige Bit der im Schieberegister 203 gespeicherten Daten.
-
Danach wird die State Machine 221 in den Zustand shift_dr versetzt, wodurch die zuvor in das Testregister 225 transferierten Bits aus dem Testregister hinausgeschoben und über des Ausgangsanschluß TDO des Halbleiter-Chips ausgegeben werden. Gleichzeitig können neue Testdaten eingeschoben werden.
-
Anschließend wird die State Machine 221 wieder in den Zustand update_dr versetzt, wodurch jeweils das höherwertige Bit der in den Schieberegistern 202 und 203 gespeicherten Daten in das Testregister 225 transferiert wird. Nach diesem Transfer befindet sich im Register 225-1 das höherwertige Bit der im Schieberegister 202 gespeicherten Daten, und im Register 225-1 das höherwertige Bit der im Schieberegister 203 gespeicherten Daten.
-
Danach wird die State Machine 221 wieder in den Zustand shift_dr versetzt, wodurch die soeben in das Testregister 225 transferierten Bits aus dem Testregister hinausgeschoben und über des Ausgangsanschluß TDO des Halbleiter-Chips ausgegeben werden.
-
Die über den Ausgangsanschluß TDO aus dem Halbleiter-Chip ausgegebenen Daten werden sodann mit vorgegebenen Soll-Daten verglichen. Die Soll-Daten sind diejenigen Daten, die in den Schieberegistern 202 und/oder 203 gespeichert sein müßten, wenn der Halbleiter-Chip ordnungsgemäß arbeitet. Anhand des Ergebnisses des Vergleiches zwischen den aus den Schieberegistern 202 und/oder 203 ausgelesenen Daten und den Soll-Daten kann somit ermittelt werden, ob der Halbleiter-Chip ordnungsgemäß arbeitet. Stimmen die miteinander verglichenen Daten überein, so kann davon ausgegangen werden, daß der Halbleiter-Chip fehlerfrei gearbeitet hat. Stimmen die Daten nicht überein, hat der Halbleiter-Chip nicht fehlerfrei gearbeitet.
-
Der vorstehend beschriebene Test kann unter Verwendung anderer Testmuster beliebig oft wiederholt werden.
-
Der Vollständigkeit halber sei angemerkt, daß die Kontroll-Bits, unter Verwendung welcher die Steuersignale scan_en, scan_mode, und jtag_mode generiert werden, nicht im Instruction Register des TAP gespeichert sein müssen. Diese Bits können auch in einem der in IEEE 1149.1 erwähnten design specific register gespeichert sein. Dies gilt für alle hier vorgestellten TAPs.
-
Ferner sei angemerkt, daß die Flip-Flops der Logik zu beliebig vielen Schieberegistern verschaltet werden können, wobei die mehreren Schieberegister unabhängig voneinander beliebig lang sein können.
-
Darüber hinaus ist es so, daß die Taktsignale sys_clock und scan_clock bei einfach aufgebauten Halbleiter-Chips auch identische Taktsignale sein können, oder der Halbleiter-Chip stets mit dem Taktsignal sys_vlock getaktet wird.
-
Die hier vorgestellten Halbleiter-Chips lassen sich auch dann, wenn sie bereits in ein bestehendes System integriert sind, schnell und einfach umfassend testen. Vorzugsweise lassen sie sich zusätzlich auch nach dem Full-Scan-Test-Verfahren testen, wobei jedoch keine zwingende Notwendigkeit besteht, diese Möglichkeit vorzusehen.
-
Bezugszeichenliste
-
- 102
- erstes Schieberegister
- 103
- zweites Schieberegister
- 120
- JTAG Test Access Port (TAP)
- 121
- State Machine
- 122
- Instruction Register
- 125
- Steuerregister
- 131
- UND-Gatter
- 132
- UND-Gatter
- 133
- UND-Gatter
- 141
- ODER-Gatter
- 142
- ODER-Gatter
- 151
- Sperrelement
- 161
- Multiplexer
- 162
- Multiplexer
- 163
- Multiplexer
- 171
- Multiplexer
- 172
- Multiplexer
- 173
- Multiplexer
- 174
- Multiplexer
- 175
- Multiplexer
- 176
- Multiplexer
- 177
- Multiplexer
- 181
- Eingangsanschluß des Halbleiter-Chips
- 182
- Ausgangsanschluß des Halbleiter-Chips
- 183
- Eingangsanschluß des Halbleiter-Chips
- 184
- Ausgangsanschluß des Halbleiter-Chips
- 185
- Eingangsanschluß des Halbleiter-Chips
- 191
- erstes Sperrelement
- 192
- zweites Sperrelement
- 202
- erstes Schieberegister
- 203
- zweites Schieberegister
- 220
- JTAG Test Access Port (TAP)
- 221
- State Machine
- 222
- Instruction Register
- 225
- Testregister
- 225-1
- Register
- 225-2
- Register
- 231
- UND-Gatter
- 232
- UND-Gatter
- 233
- UND-Gatter
- 234
- UND-Gattter
- 241
- ODER-Gatter
- 243
- ODER-Gatter
- 251
- Sperrelement
- 261
- Multiplexer
- 262
- Multiplexer
- 263
- Multiplexer
- 265
- Flip-Flop
- 271
- Multiplexer
- 272
- Multiplexer
- 273
- Multiplexer
- 278
- Multiplexer
- 279
- Multiplexer
- 281
- Eingangsanschluß des Halbleiter-Chips
- 282
- Ausgangsanschluß des Halbleiter-Chips
- 283
- Eingangsanschluß des Halbleiter-Chips
- 284
- Ausgangsanschluß des Halbleiter-Chips
- 285
- Eingangsanschluß des Halbleiter-Chips
- 291
- erstes Sperrelement
- 292
- zweites Sperrelement
- 401
- Logik
- 402
- erstes Schieberegister
- 403
- zweites Schieberegister
- 420
- JTAG Test Access Port (TAP)
- 421
- State Machine
- 422
- Instruction Register
- 423
- UND-Gatter
- 424
- Multiplexer
- 471
- erster Multiplexer
- 472
- zweiter Multiplexer
- 473
- dritter Multiplexer
- 481
- Eingangsanschluß des Halbleiter-Chips
- 482
- Ausgangsanschluß des Halbleiter-Chips
- 483
- Eingangsanschluß des Halbleiter-Chips
- 484
- Ausgangsanschluß des Halbleiter-Chips
- 485
- Eingangsanschluß des Halbleiter-Chips
- jtag_mode
- Steuersignal
- scan_clk
- Taktsignal
- scan_en
- Steuersignal
- scan_mode
- Steuersignal
- TCK
- Eingangsanschluß des Halbleiter-Chips
- TDI
- Eingangsanschluß des Halbleiter-Chips
- TMS
- Eingangsanschluß des Halbleiter-Chips
- TDO
- Ausgangsanschluß des Halbleiter-Chips