-
Die
Erfindung bezieht sich auf eine integrierte Schaltung mit einer
Vielzahl von Kernen, wobei jedem Kern zur Steuerung des Kerns in
dessen Testmodus ein entsprechender Kerntest-Steuerungsblock (TCB)
zugeordnet ist, jeder Kern-TCB ein Kernschieberegister zum Halten
von Teststeuerungsdaten umfasst, die Kern-TCBs seriell in einer
Kette verknüpft
sind, und jeder Kern-TCB einen ersten Modus zum Verschieben der
Teststeuerungsdaten längs
der Kette und einen zweiten Modus zum Anlegen der Teststeuerungsdaten
an den zugeordneten Kern umfasst.
-
US-A-5.054.024
offenbart eine, von einem Bauelementeauswahlmodul (DSM, Device Selection Module)
bereitgestellte, System-Abtastpfad-Architektur, die in Verbindung
mit zugeordneten Schaltungen verwendet werden kann, um sekundäre Abtastpfade
auf jeder Schaltung auszuwählen,
um sie mit einem primären
Abtastpfad auf einem Testbus zu koppeln. Der Testbus wird von einem
primären
Busmaster gesteuert.
-
EP-A-0419734
offenbart ein Verfahren zum Testen einer hierarchisch organisierten
integrierten Schaltung, das zuerst auf jede Baugruppe der Reihe nach
zugreift und in jeder Baugruppe einen Baugruppentestzyklus ausführt. Jeder
Baugruppentestzyklus innerhalb der in Frage kommenden Baugruppe
greift auf jedes Makro davon der Reihe nach zu, und führt darin
bedingt einen Testlauf unter selektiver Kontrolle eines Makrotestmodussignals
durch. Die Anzahl der Hierarchieebenen kann drei oder mehr sein.
Das Verfahren kann auf separate integrierte Schaltungen oder auf
eine verdrahtete Leiterplatte mit einer Vielzahl von Schaltungen
angewendet werden.
-
Der
gegenwärtige
Trend im IC-Design ist es, durch Wiederbenutzen von vorentwickelten
(parametrisierten) Versionen großer Module, den sogenannten
Kernen, Design-Zeit zu beschleunigen. Obwohl jeder solcher Kern
durch viele erfolgreiche (Wieder-) Benutzungen bewiesen haben kann,
dass er gut designt wurde, müssen
Implementierungen in Silizium getestet werden, da Produktionsfehler
immer auftreten. Dazu sind die Kerne, die den Chip-Designern zur Verfügung stehen,
oft von entsprechenden Testschemata begleitet, die von Hand für den Kern
maßgeschneidert
sind. Vorzugsweise werden nicht nur die Kerne wiederbenutzt, sondern
auch die entsprechenden Testschemata. Zusätzlich zu den Kernen selber müssen auch
die Verbindungen zwischen den Kernen getestet werden.
-
Beide
Testarten müssen
auf einem Chipniveau organisiert werden und möglicherweise über die
Chipanschlüsse
aktiviert und gesteuert werden. Es ist die Aufgabe des Chipdesigners,
Schaltkreise hierfür
zu entwerfen. Mit der ansteigenden Anzahl von Kernen auf einem Chip
und ihrer zunehmenden Komplexität
wird diese Aufgabe immer komplizierter. Da außerdem die Anzahl der verfügbaren Chipanschlüsse und
die verfügbare
Fläche
begrenzt sind, hat der Designer immer weniger Mittel, diese Aufgabe
auszuführen.
Es ist speziell ein Problem, wie die Kerne mit Teststeuerungsdaten
zum Steuern der Kerne während
des Tests zu versorgen sind.
-
Ein
einfacher Ansatz für
dieses Problem ist in US-A-5.491.666 beschrieben. Die bekannte integrierte
Schaltung ist wie eingangs beschrieben. Jeder Kern ist mit einem
Kern-TCB versehen, der im Wesentlichen ein Testzugangs-Portcontroller
(TAP) nach dem gut bekannten Boundary-Scan-Teststandard, wie durch
IEEE Std. 1149.1 definiert, ist. Die TAP-Controller sind in einer
seriellen Kette zum seriellen Verschieben der Teststeuerungsdaten
in Schieberegister verknüpft.
Die Spezifikation des TAP-Controllers passt bei einer solchen Anordnung,
da sie einen Pfad zwischen einem Eingangsknoten und einem Ausgangsknoten
des Controllers über
ein internes Schieberegister und eine Zustandsmaschine zum Steuern
des Verschiebens der Teststeuerungsdaten und das Anlegen davon an
den zugeordneten Kern vorschreibt. Ein Problem mit einer solchen
Art von Kern-TCBs ist, dass die Zustandsmaschine kompliziert ist
und deshalb eine relativ große
Fläche
der integrieren Schaltung erfordert. Zusätzlich wird eine Vielzahl solcher
Kern-TCBs in der integrierten Schaltung benötigt.
-
Es
ist eine Aufgabe der Erfindung, eine effektivere Lösung für das Problem
zu schaffen, wie die Kerne mit Teststeuerungsdaten zu versorgen
sind. Zu diesem Zweck ist eine erfindungsgemäße Schaltung dadurch gekennzeichnet,
dass ein System-TCB in der Kette bereitgestellt ist, wobei ein Ausgang
dieses System-TCB mit jedem Kern-TCB verbunden ist, damit der System-TCB,
auf das Empfangen eines besondern Satzes von Teststeuerungsdaten
hin, die Kern-TCBs mit einem Systemtest-Haltesignal versorgt, um
zwischen dem ersten und dem zweiten Modus umzuschalten. Eine solche
Architektur benötigt nicht
die komplizierte Zustandsmaschine der Kern-TCBs nach dem Boundary-Scan-Teststandard, um
die Kern-TCBs mit Teststeuerungsdaten zu versorgen. Das Einschieben und
Anwenden von Teststeuerungsdaten wird im Wesentlichen von einem sehr
einfachen System-TCB gesteuert, von dem nur eine Kopie pro Kette
integriert werden muss. Ein weiterer Vorteil ist, dass nur wenige
Verbindungen zwischen den verschiedenen TCBs und dem System-TCB
erforderlich sind.
-
Die
Erfindung bezieht sich vor allem, aber nicht nur, auf Kerne in integrierten
Ein-Substrat-Schaltungen. Die Idee kann auf jede Art von logischen
Anordnungen in einem System ausgeweitet werden. Außerdem können die
Kern-TCBs zur Steuerung sowohl von Verbindungstests wie auch Kerntests,
wie z.B. Funktionaltests, eingebaute Selbsttests (BIST), Scan-Tests,
Ruhestromtests (IDDQ) usw. verwendet werden.
-
Ein
Vorteil der Maßnahme
nach Anspruch 2 ist, dass das Systemtesthaltesignal sehr effektiv
generiert werden kann. Zuerst werden die Schieberegister entlang
der Kette zurückgesetzt,
damit sie Initialwerte, z.B. alles Nullen enthalten. Als Zweites
wird eine Serie von Teststeuerungsdaten in die Kette geschoben,
von dem ein erstes Bit unterschiedlich zu dem Initialwert ist, z.B.
Eins. Sobald dieses Bit den System-TCB erreicht, kann dieser reagieren,
da alle Schieberegister neue Teststeuerungsdaten enthalten. Vorteilhafterweise
wird ein Ausgang des Systemschieberegisters verwendet, um das Systemtesthaltesignal
zu liefern.
-
Ein
Vorteil der Maßnahme
nach Anspruch 3 ist, dass sie eine sehr einfache Architektur eines
TCB liefert, die in die Erfindung passt. Die Kern-TCBs wie auch
der System-TCB werden vorzugsweise so angeordnet.
-
Die
Erfindung wird unten an Hand von Beispielen mit Bezug auf die zugehörige Zeichnung
weiter erklärt.
Es zeigen:
-
1 eine
erfindungsgemäße integrierte Schaltung,
-
2 einen
erfindungsgemäße Kern-TCB,
-
3 ein
Timing-Digramm, das die an den Kern abgegebenen Signale illustriert,
und
-
4 ein
Prozessorelement (Slice) des erfindungsgemäßen Kern-TCBs.
-
1 zeigt
eine erfindungsgemäße integrierte
Schaltung. Die Schaltung 100 umfasst einen Kern 110 und
einen Kern 120, begleitet von einem Kerntest-Steuerungsblock
(TCB) 112 beziehungsweise TCB 122. Die Kerne 112, 122 sind
seriell miteinander verbunden, um eine Kette 140 zu bilden,
an deren Ende ein System-TCB 130 angebracht ist. In einem
ersten Modus der Kern-TCBs 112, 122 können über den
Chipanschluss 150 Teststeuerungsdaten eingeschoben werden.
Nach dem Empfang eines besonderen Satzes von Teststeuerungsdaten
setzt der System-TCB 130 die Kern-TCBs 112, 122 in
einen zweiten Modus, in dem die Teststeuerungsdaten an die entsprechenden
Kerne 110, 120 angelegt werden. Diese Modusumschaltung
wird durch ein durch Verbindung 142 übertragenes Systemtesthaltesignal THLD
erreicht. Eine Generatorschaltung 160 ist zum Generieren
zusätzlicher
Signale, wie ein Rücksetzsignal
und/oder ein Taktsignal, bereitgestellt.
-
Es
sei bemerkt, dass die Kette 140 verwendet werden kann,
sowohl die Testdaten wie auch die Teststeuerungsdaten an die Kerne
zu liefern. Aber da die Menge an Testdaten bei den meisten Testarten sehr
groß ist,
ist es oft vorteilhaft, Testdaten über einen separaten Testdatenpfad
zu den Kernen zu liefern und von ihnen zu holen. Der Testdatenpfad
kann dann (teilweise) für
eine größere, zu
reduzierten Testzeiten führenden,
Bandbreite aus parallelen Leitungen in jeder Strukturart gemacht
werden.
-
Mittels
der Teststeuerungsdaten wählen
die Kern-TCBs 112, 122 beispielsweise einen bestimmten
Test der zugeordneten Kerne 110, 120, wie internen
Test oder Verbindungstest, aus. Die Teststeuerungsdaten werden außerdem verwendet,
während jedes
der genannten Tests Testsignale zu generieren. Außerdem können die
Kern-TCBs 112, 122 so angeordnet werden, dass
entsprechende Teststeuerungsdaten jegliche Tristate-Treiberausgänge der
zugeordneten Kerne 110, 120 in den Tristate-Zustand bringen.
Die Kern-TCBs 112, 122 können zusätzlich dazu
verwendet werden, unter der Kontrolle der Teststeuerungsdaten den
Testdatenfluss zu steuern, z.B. das Setzen der Kerne 110, 120 in
einen Bypass-Modus, die dann die Testdaten auf einer zusätzlichen Bahn
um den Kern herumleiten.
-
Es
sei außerdem
bemerkt, dass die Anzahl der Ketten in Schaltung 100 nicht
notwendigerweise auf eins eingeschränkt ist. Unterschiedliche Sätze von
Kernen können
in separaten Ketten angeordnet werden, wobei jede Kette ihr eigenes
System-TCB zur Steuerung der darin enthaltenen Kern-TCBs umfasst.
Außerdem
kann eine einzelne Kette sogar Kern-TCBs in verschiedenen ICs umfassen.
-
2 zeigt
einen Kern-TCB zur Verwendung in dem System von 1.
Kern-TCB 210 umfasst ein Kernschieberegister 220 mit
einer Anzahl von Flipflops unter der Kontrolle des Taktsignals TCK.
Kernschieberegister von verschiedenen Kern-TCBs und der System-TCB 130 sind über Eingang
TCDI und Ausgang TCDO miteinander verbunden und bilden so die Kette 140.
Das Kernschieberegister 220 mit einer Länge von sechs ist nur ein Beispiel.
Die Kernschieberegisterlänge
kann an die Komplexität
der Testarchitektur des zugeordneten Kerns angepasst werden.
-
Eine
aus UND-Gattern 230 bestehende Freigabeschaltung ist bereitgestellt
zum Freigeben der Ausgänge
der Kernschieberegister, um den zugeordneten Kern 200 zu
treiben. So lange, wie THLD „Low" ist, haben die UND-Gatter 230 Ausgänge auf „Low". Die Freigabeschaltung
stellt sicher, dass kein Teststeuerungsdatenelement während des
Verschiebens der Teststeuerungsdaten aktiviert werden kann. Natürlich kann
diese Funktion auch durch Verwenden anderer logischer Elemente als
der UND-Gatter 230 implementiert werden. Alternativ können Schaltkreise
so bereitgestellt werden, dass während
des ersten Modus Kern 200 unveränderlich mit vorhergehenden Teststeuerungsdaten
versorgt wird.
-
Nach
dem asynchronen Zurücksetzen
des Kernschieberegisters 220 durch das Rücksetzsignal TRST
enthalten die Flipflops Nullen. THLD ist „Low" und setzt den Kern TCB 210 so
in einen ersten Modus, dass die Teststeuerungsdaten über TCDI
eingeschoben werden können.
Zur selben Zeit treibt THLD die UND-Gatter 230 auf den
Ausgangswert „Low" so dass dem Kern
während
des Einschiebens der Teststeuerungsdaten kein Schaden zugefügt werden kann.
Nachdem die Teststeuerungsdaten eingeschoben sind, wird THLD „High" gemacht. Dies setzt
die Kerntest-Steuerungsblöcke
in den zweiten Modus, ungeachtet des Signals TCK und macht dem Verschiebeprozess
damit ein Ende. Außerdem
geben die UND-Gatter 230 das Kernschieberegister 220 frei,
den zugeordneten Kern 200 zu treiben. 3 zeigt
ein Timing-Diagramm, das die an den Kern-TCB gelieferten Daten illustriert.
-
Logikschaltung 240 ist
zum Übersetzen
der allgemeinen Teststeuerungsdaten in Signale, die für den Kern 100 maßgeschneidert
sind, bereitgestellt. Signal TMS wird verwendet, um zwischen Testmodus und
Normalmodus des Kerns 200 umzuschalten. Es sei anzumerken,
dass für
die Signale TRST und TCK angenommen wird, dass sie global von der
Geratorschaltung 160 generiert werden und parallel in die verschieden
Kern-TCBs eingespeist werden.
-
Das
auf negative Flanken getriggerte Flipflop 250 ist nach
dem letzten Flipflop des Kernschieberegisters 220 bereitgestellt,
um sicherzustellen, dass es keine Zeitversatzprobleme auf Grund
von Unterschieden in der Ankunftszeit des Taktsignals TCK gibt.
Dies ist oft notwendig, da die Kern-TCBs über das Layout verstreut sind.
In dieser Ausführungsform der
Erfindung wird das Flipflop 250 zusammen mit dem Schieberegister 220 durch
Signal TRST zurückgesetzt.
-
Nicht
nur die Kern-TCBs haben vorzugsweise die Architektur gemäß 2,
auch die System-TCBs haben vorzugsweise dieselbe Architektur. Natürlich ist
Schieberegister 220 in dem Fall ein Systemschieberegister
und Ausgangs-TCDO und das auf negative Flanken getriggerte Flipflop 250 werden nicht
benötigt,
da der System-TCB am Ende der Kette liegt. Ein Ausgang des letzten
Flipflops des Systemschieberegisters könnte für das Liefern des THLD-Signals
verwendet werden. Dann wird THLD durch Rücksetzen des Systemschieberegisters über das
Signal TRST auf einen Initialwert gesetzt. Nachfolgend kann durch
Einschieben von Teststeuerungsdaten THLD ein unterschiedlicher Wert
gegeben werden. Alternativ kann der System-TCB unterschiedlich angeordnet
werden, z.B. um das IC für
den Boundary-Scan-Teststandard geeignet zu machen.
-
Wenn
der Chip-Designer Kerne kombinieren muss, die schon einen Kern-TCB haben, der nicht
in dieses Schema passt, oder überhaupt
keinen Kern-TCB, kann er dies durch Hinzufügen eines Kern-TCBs gemäß 2 zum
Kern lösen,
ungeachtet der Anwesenheit eines Kern-TCBs. Ein existierender Kern-TCB
muß durch
den hinzugefügten Kern-TCB
gesteuert werden.
-
4 zeigt
einen „Slice" des erfindungsgemäßen Kern-TCBs.
Wie aus 2 ersichtlich ist, hat ein Kern-TCB
eine sehr regelmäßige Struktur
und besteht zu einem großen
Teil aus gleichen Baublöcken, den
sogenannten Prozessorelementen („Slices"). Jedes solches Slice 400 umfasst
ein Flipflop 410 unter der Kontrolle des Taktsignals TCK,
einen Multiplexer 420, ein UND-Gatter 430 und
einige Zusatzlogik 440. Das Signal THDL steuert den Multiplexer 420,
entweder das Verschieben der Daten längs der Kette 140 oder
das Halten der Daten im Flipflop 410 freizugeben. Das Signal
THLD speist außerdem
das UND-Gatter 430. Unter der Kontrolle des Signals TRST
kann Flipflop 410 in einen Initialzustand, z.B. eine Null
speichernd, gesetzt werden. Das Signal TMS wählt zwischen dem Testmodus
und dem Normalmodus des zugeordneten Kerns aus.
-
Eine
Beschreibung eines Slice 400 kann Teil einer Bibliothek
sein, mit der Kern-TCBs der geforderten Größe durch einfache Addition
von Slices gebaut werden können.
Wie vorher angedeutet wurde, kann der System-TCB im Wesentlichen
dieselbe Struktur habe wie ein Kern-TCB. Ein erstes Slice des System-TCBs
kann zum Generieren von THLD verwendet werden. Andere Prozessorelemente
können zum
Steuern anderer globaler Testsignale hinzugefügt werden. Diese Hierarchie
von Kern- und System-TCBs hat den Vorteil, dass globale Teststeuerungsdaten
durch den System-TCB allein behandelt werden können und Teststeuerungsdaten,
die spezifisch für
einen Kern sind, von dem zugeordneten TCB des Kerns exklusiv behandelt
werden können.
-
Außerdem kann,
wenn der Chip-Designer mit Kernen, die solche Kern-TCBs haben, versorgt wird,
der Chip-Designer jeden Kern als Blackbox behandeln, die einen entsprechenden
Satz von Teststeuerungsdaten hat. Der Chip-Designer muss nicht verifizieren,
ob der Kern testbar ist. Alternativ fügt der Chip-Designer einen
Kern-TCB zu einem Kern hinzu, der nicht diesem Schema folgt, wobei
der Kern-TCB einen möglicherweise
existierenden design-spezifischen TCB steuert. Er muss sich dann
mit den Einzelheiten des Testens des speziellen Kerns befassen.
-
Es
sei bemerkt, dass, wenn eine erfindungsgemäße integrierte Schaltung als
ein Kern allein behandelt werden muss, soweit der Testteil betroffen ist,
kann dies durch Entfernen des System-TCBs, und möglicherweise dedizierter Hardware
zur Erzeugung der Signale TRST, TCK und TMS, erreicht werden. Dies
führt zu
einem neuen Kern-TCB hohen Niveaus, der aus einer Kette Kern-TCBs
niedrigem Niveaus besteht.
-
Text in den Zeichnungen:
-