-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
Erfindung bezieht sich allgemein auf das Testen von Halbleiterbauelementen
und im Besonderen auf das Testen von integrierten Schaltkreisen,
die mehrere Kerne beinhalten.
-
2. Beschreibung des Standes
der Technik
-
Die
Herstellung von integrierten Schaltungen beinhaltet das Testen der
Schaltungen, um deren korrekten Betrieb sicherzustellen und Informationen über mögliche Fehler
zu erhalten. Integrierte Schaltungen geringer Komplexität können unter
Verwendung funktionaler Tests getestet werden, bei denen Testmuster
oder Testvektoren an integrierte Schaltkreise (auch bezeichnet als "Chip") mittels einem automatisierten
Testgerät
(ATE) angelegt werden, wobei die Testmuster dazu entwickelt sein
können,
die vollständige
Funktionalität
des integrierten Schaltkreises zu prüfen. Für integrierte Schaltkreise
mit hoher Komplexität
mag es jedoch effizienter sein, jeden Block des Chips separat zu
testen anstatt den vollständigen
Chip als ganzes zu testen. In diesem Fall kann das ATE dedizierte
Testmuster für
jeden strukturellen Block, der innerhalb des integrierten Schaltkreises
getestet werden soll, zur Verfügung
stellen. Die resultierende Ausgabe wird wiederum durch das ATE erfasst,
in dem sie analysiert wird.
-
1 zeigt
ein Beispiel für
einen integrierten Schaltkreischip, der getestet werden soll. Der
Chip 100 umfasst einen Kern 130, der Zufallslogik,
wie z. B. einen Prozessorkern, enthalten kann. Weiterhin beinhaltet
der Chip 100 einen Testeingang 110, welcher ein
n-Bit-Anschluss sein kann, an den ein ATE 150 einen n-Bit-Testvektor
anlegen kann, wodurch der n-Bit-Testvektor über einen n-Bit-Bus dem Kern 130 zugeführt wird.
Weiterhin beinhaltet der Chip 100 einen Testausgang 120,
der ein n-Bit-Anschluss sein kann, der über einen n-Bit-Bus an den
Kern 130 angeschlossen ist, wodurch es dem ATE 150 ermöglicht wird, Ausgabedaten
des Kerns 130 zu erfassen, die sich ergeben, wenn der Kern 130 mit
den Testeingabedaten betrieben wird.
-
Aufgrund
der anhaltenden Fortschritte bei der Verkleinerung von Strukturgrößen von
Halbleiterbauelementen und der daraus resultierenden Zunahme der
Chipkomplexität
versucht die Halbleiterindustrie, integrierte Schaltkreischips herzustellen,
die mehrere Komponenten eines Systems integrieren, die früher als
separate Halbleiterchips hergestellt wurden. Zum Beispiel kann ein
Halbleiterchip mehrere Prozessorkerne beinhalten, die im Wesentlichen identisch
sind, wodurch ein Einzelchip-Multiprozessor entsteht.
-
Das
Testen solcher Mehrkern-Chips in der in 2 gezeigten
konventionellen Art würde
in einer substantiellen Zunahme an Testzeit und benötigten Eingabe-/Ausgabe-eins resultieren.
Daher stellt sich die Frage, wie die Schaltung von integrierten
Schaltkreisen, die eine Vielzahl von im Wesentlichen ähnlichen
Kernen aufweisen, effizient zu testen ist.
-
DE 195 36 226 A1 beschreibt
einen integrierten Schaltkreis, der drei identische Schaltkreisblöcke umfasst,
denen über
mehrere Eingangsanschlüsse gleichzeitig
Testmuster zugeführt
werden können. Die
Testausgangsmuster können
mit einem Ergebnismuster verglichen werden. In einem Blockfehlerregister
werden Fehlerbits gespeichert, die einen Fehler verursachenden Schaltkreisblock
anzeigen, und in einem Ausgangsfehlerregister werden Fehlerbits gespeichert,
die einem Fehler verursachenden Bit in dem Testergebnismuster entsprechen.
-
WO 01/38889 A1 beschreibt
die Verwendung von mehreren Abtastketten zum Testen eines Schaltungskerns
sowie die Verwendung eines on-chip Auswahlschaltkreises, der die
Fähigkeit
besitzt, eine oder mehrere der Testantworten zu maskieren, bevor
die Testantworten einem Kompaktor zugeführt und in diesem komprimiert
werden, wodurch die zu komprimierende Datenmenge reduziert wird.
-
WO 01/38890 A1 beschreibt,
dass komprimierte Testmuster einem integrierten Schaltkreis, der eine
Schaltung und einen Dekomprimierer umfasst, mittels eines automatisierten
Testgerätes
zugeführt werden.
Der Dekomprimierer dekomprimiert die zugeführten komprimierten Testmuster
und erzeugt Pseudo-Zufallstestmuster, die an Abtastketten innerhalb
der unter Test befindlichen Schaltung angelegt werden.
-
ÜBERBLICK ÜBER DIE ERFINDUNG
-
Es
ist Aufgabe der vorliegenden Erfindung, ein effizientes Testen von
integrierten Schaltkreisen, die mehrere im Wesentlichen ähnliche
Schaltungskerne enthalten, zu ermöglichen.
-
Diese
Aufgabe wird durch die Gegenstände der
unabhängigen
Hauptansprüche
gelöst.
-
Bevorzugte
Ausführugsformen
sind Gegenstände
der Unteransprüche.
-
Es
werden eine Architektur eines integrierten Schaltkreischips und
ein Verfahren zur Verfügung
gestellt, die die Effizienz des Testens von einem integrierten Schaltkreischip
mit einer Vielzahl von Schaltungskernen verbessern.
-
In
einer Ausführungsform
wird eine Architektur eines integrierten Schaltkreischips bereitgestellt, die
einen Testeingang zum Empfangen von Testdaten und einen Erwartungswerteeingang
zum Empfangen von erwarteten Ergebnisdaten umfasst. Weiterhin umfasst
die Architektur des integrierten Schaltkreischips zumindest zwei
Schaltungskerne, wobei jeder Kern einen Kern-Testeingang und einen Kern-Testausgang aufweist.
Jeder Kern ist eingerichtet, Testdaten von dem Testeingang an dem
Kern-Testeingang zu empfangen, Test-Ergebnisdaten gemäß den an
dem Kern-Testeingang empfangenen Testdaten zu erzeugen und die erzeugten
Test-Ergebnisdaten
an dem Kern-Testausgang zur Verfügung
zu stellen. Die Architektur des integrierten Schaltkreischips umfasst
weiterhin eine Vergleichsschaltung, die eingerichtet ist, die Test-Ergebnisdaten
eines jeden Kerns mit erwarteten Ergebnisdaten von dem Erwartungswerteeingang
zu vergleichen, um Vergleichsergebnisdaten zu erzeugen, die anzeigen,
ob eine Ungleichheit zwischen den Test-Ergebnisdaten und den erwarteten
Ergebnisdaten vorliegt oder nicht. Die Architektur des integrierten
Schaltkreischips umfasst weiter einen Speicher, der eingerichtet
ist, eine Ungleichheit-Anzeige für
jeden Schaltungskern zu speichern.
-
In
einer weiteren Ausführungsform
wird für einen
integrierten Schaltkreischip ein Verfahren zum Testen der Schaltung
von zumindest zwei in dem integrierten Schaltkreischip beinhalteten
Schaltungskernen zur Verfügung
gestellt. Das Verfahren umfasst ein Empfangen von Testdaten und
erwarteten Ergebnisdaten. Das Verfahren umfasst weiterhin ein Liefern
der Testdaten zu Kern-Testeingängen
der Schaltungskerne. In den Schaltungskernen werden Testergebnisdaten
entsprechend der gelieferten Testdaten erzeugt und an jeweilige
Kern-Testausgänge geliefert.
Das Verfahren umfasst weiterhin ein Vergleichen der Testergebnisdaten
eines jeden der Schaltungskerne mit den erwarteten Ergebnisdaten in
einer Vergleichsschaltung des integrierten Schaltkreischips, um
festzustellen, ob eine Ungleichheit zwischen den Testergebnisdaten
und den erwarteten Ergebnisdaten besteht oder nicht. Weiterhin umfasst das
Verfahren ein Speichern einer Ungleichheit-Anzeige für jeden
der Schaltungskerne in einem Speicher des integrierten Schaltkreischips.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Weitere
Merkmale und Vorteile werden anhand der folgenden und detaillierteren
Beschreibung der Erfindung, wie sie in den begleitenden Zeichnungen
dargestellt ist, deutlich werden, wobei:
-
1 ein
Blockdiagramm darstellt, das eine Einkern-Chiparchitektur zeigt;
-
2 ein
Blockdiagramm darstellt, das eine Mehrkern-Chiparchitektur gemäß einer
Ausführungsform
zeigt;
-
3 ein
Flussdiagramm darstellt, das ein Mehrkern-Chiptestverfahren gemäß einer
Ausführungsform
zeigt;
-
4 ein
Blockdiagramm darstellt, das eine Mehrkern-Chiparchitektur gemäß einer
anderen Ausführungsform
zeigt;
-
5 ein
Blockdiagramm darstellt, das eine Mehrkern-Chiparchitektur gemäß einer
weiteren Ausführungsform
zeigt;
-
6 ein
Blockdiagramm darstellt, das eine Maskierungslogik für einen
einzelnen Abtastkanal gemäß einer
Ausführungsform
zeigt;
-
7 ein
Blockdiagramm darstellt, das eine Vergleichslogik für einen
einzelnen Abtastkanal gemäß einer
Ausführungsform
zeigt;
-
8 ein
Blockdiagramm darstellt, das einen einzelnen Kern gemäß einer
Ausführungsform zeigt;
-
9 ein
Blockdiagramm darstellt, das eine weitere Ausführungsform, die mehrere Maskierungsdaten
berücksichtigt,
zeigt; und
-
10 ein
Flussdiagramm darstellt, das ein Mehrkern-Chiptestverfahren gemäß einer
weiteren Ausführungsform
zeigt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die
illustrativen Ausführungsformen
der vorliegenden Erfindung werden mit Bezug auf die Figurenzeichnungen
beschrieben, wobei gleiche Elemente und Strukturen mit gleichen
Bezugszeichen belegt sind.
-
Wie
nachstehend in näherem
Detail beschrieben ist, erlauben die Ausführungsformen ein effizientes
Testen von Halbleiterchips mit Mehrkern-Design. Das Testen solcher Mehrkern-Designs kann
von dem Umstand profitieren, dass die Kerne im Wesentlichen ähnlich sind,
was bedeutet, dass sie bis auf einen sehr geringen Bruchteil des
Designs üblicherweise
identisch sind. Daher sind Tests für einen Kern meistens auf alle
Kerne anwendbar. Diese Anwendbarkeit der gleichen Tests für alle Kerne
eines Multikern-Chips wird von den Ausführungsformen dazu benutzt,
ein effizientes Testen der Chips zu ermöglichen.
-
Zum
Ermöglichen
eines effizienten Tests von Multikern-Chipdesigns müssen im
Vergleich zum Test von Einzelkern-Designs mehrere zusätzliche Themen
beachtet werden. Beispielsweise zeigt 1 eine Einzelkern-Chiparchitektur,
in welcher Testmuster zum Testen des Kerns 130 des Chips 100 dem
Kern 100 über
den Testeingang 110 zugeführt werden und die entsprechenden
Testergebnisse über einen
Testausgang 120 ausgegeben werden. Ein ATE 150 kann
mit dem Testeingang 110 und dem Testausgang 120 verbunden
sein, um die Testmuster bereitzustellen und die entsprechenden Testergebnisse
entgegenzunehmen. Würde
man diesen Ansatz auf ein Multikern-Design anwenden, würde dies in
einer Multikern-Chiparchitektur resultieren, welche mehrere Kerne
sowie mehrere Testeingänge
und mehrere Testausgänge,
von denen jeder einem bestimmten Kern zugeordnet wäre, beinhalten
würde. Dann
würde ein
ATE nacheinander an die Testeingänge/Testausgänge der
Kerne angeschlossen werden. Solch eine serielle Herangehensweise,
jeden Kern nacheinander separat zu testen, würde jedoch die Testzeit entsprechend
der Anzahl an Kernen multiplizieren. Zusätzlich multipliziert die Bereitstellung eines
Testeingangs und eines Testausgangs für jeden Kern die Anzahl an
Eingangs-/Ausgangs-eins eines solchen Multikern-Chips. Andererseits
könnte dieser
Testzeitnachteil reduziert werden, wenn die Testeingabe-Pins zwischen
allen Kernen geteilt, aber jeder Kern mit dedizierten Testausgabe-Pins
verbunden wird, aber das Hinzufügen
von Kernen zu so einem Design bedeutet weniger Durchsatz an Testdaten,
so dass die Testzeit zunimmt.
-
Daher
stellen die gezeigten Ausführungsformen
eine Mehrkern-Chiparchitektur bereit, die es ermöglicht, eingegebene Daten den
mehreren Kernen parallel zur Verfügung zu stellen, um die mehreren Kerne
gleichzeitig zu testen, und die resultierenden mehreren Testausgaben
auf dem Chip zu analysieren. Als ein Ergebnis dieser Analyse können manche Ausführungsformen
eine Anzeige für
solche Kerne auf dem Chip speichern, die den Test nicht erfolgreich
bestanden haben. Auf diese Art ist die Zeit zum Testen des Mehrkern-Chips
nahezu unabhängig
von der Anzahl der im Wesentlichen gleichen Kerne auf dem Chip, was
bedeutet, dass der Mehrkern-Chip in nahezu der gleichen Zeit getestet
werden kann wie ein Einzelkern-Chip.
-
Weiterhin
werden Ausführungsformen
beschrieben, die es nicht erfordern, dass im Vergleich zum Testen
eines Einzelkern-Chips die gesamte Anzahl an Eingabe-/Ausgabe-Pins
erhöht
wird. Wie nachstehend in näherem
Detail beschrieben, werden erwartete Ergebnisdaten einem Mehrkern-Chip über Eingabe-Pins zugeführt, die
die Ausgabe-Pins der Einzelkern-Chiparchitektur ersetzen.
-
Nun
wird auf 2 Bezug genommen, die eine Mehrkern-Chiparchitektur 200 zeigt,
die im Wesentlichen ähnliche
Kerne 230 (Kern 1), 240 (Kern 2) und 250 (Kern
m) umfasst. Obwohl drei Kerne gezeigt sind, kann jede andere Anzahl
von im Wesentlichen ähnlichen
Kernen verwendet werden. Es ist zu beachten, dass andere Kerne und
Schaltkreiseinheiten ebenfalls in der Mehrkern-Chiparchitektur 200 enthalten
sein können,
aber nur solche Kerne 230, 240 und 250 gezeigt
sind, welche im Wesentlichen ähnlich
sind. Jeder der Kerne 230, 240 und 250 ist mit
dem Testeingang 210 verbunden, der einen Eingangsanschluss
von n Kontaktflecken („pads") oder Pins darstellen
kann. Ein ATE kann mit dem Testeingang 210 verbunden sein, über welchen
das ATE Testdaten zum Testen der Kerne 230, 240 und 250 zuführen kann.
In einer Ausführungsform
können
die Testdaten als n-Bit-Testmuster oder Testvektoren bereitgestellt
werden, die über
einen n-Bit-Bus zu den separaten Kernen 230, 240 und 250 zugeführt werden.
Wie in 2 gezeigt, kann der n-Bit-Bus eingerichtet sein,
die Testmuster gleichzeitig an die separaten Kerne 230, 240 und 250 zu
liefern, so dass die mehreren Kerne parallel getestet werden können. Daher
können
die mehreren Kerne 230, 240 und 250 die
Testmuster gleichzeitig an deren jeweiligen Kern-Testeingängen 231, 241 und 251 empfangen und
dementsprechend die resultierenden Testergebnisdaten an deren jeweiligen
Kern-Testausgängen 239, 249 und 259 zur
Verfügung
stellen.
-
Zum
Beispiel kann eine Sequenz von n-Bit-Testmustern gleichzeitig an
den Kern-Eingängen 231, 241 und 251 der
mehreren Kerne 230, 240 und 250 empfangen
werden. Die Sequenz von Testmustern kann, getriggert von einem Chip-Testtakt,
in jeden der mehreren Kerne sequenziell hineingeschoben werden.
Entsprechend wird eine Sequenz von Testergebnismustern aus den mehreren
Kernen 230, 240 und 250 an deren jeweiligen
Kern-Testausgängen 239, 249 und 259 herausgeschoben.
-
Wie
in 2 gezeigt, können
die n-Bit-Testergebnismuster über
einen n-Bit-Bus an die Vergleichsschaltung 260 geliefert
werden. Jeder der Kerne 230, 240 und 250 kann
mit der Vergleichsschaltung 260 über einen separaten n-Bit-Bus
verbunden sein, so dass die von Kern 1 ausgegebenen Testergebnismuster
sowie die von Kern 2 ausgegebenen Testergebnismuster und die von
Kern m ausgegebenen Testergebnismuster gleichzeitig an separaten
Eingangsanschlüssen
der Vergleichsschaltung 260 empfangen werden. In anderen
Ausführungsformen
ist es möglich,
dass die von den mehreren Kernen ausgegebenen Testergebnisdaten
in die Vergleichsschaltung 260 über einen einzelnen Eingangsanschluss
in gemultiplexter Form eingegeben werden. In weiteren Ausführungsformen
kann es möglich
sein, dass die Verbindungen zwischen den mehreren Kernen 230, 240 und 250 und
der Vergleichsschaltung 260 eine geringere Breite als n
Bit aufweisen können;
dann können
die n-Bit-Testergebnismuster an die Vergleichsschaltung 260 in
einer codierten oder komprimierten Form geliefert werden. In der
in 2 gezeigten Ausführungsform geben die Kerne 230, 240 und 250 m
n-Bit-Muster aus, die von der Vergleichsschaltung 260 parallel
empfangen werden.
-
Weiterhin
umfasst der Mehrkern-Chip 200 einen Erwartungswerteeingang 220, über den
der Mehrkern-Chip 200 erwartete Testergebnisdaten empfangen
kann. In einer Ausführungsform
kann der Erwartungswerteeingang 220 ein n-Bit-Eingangsanschluss
mit n Pins oder Kontaktflecken sein, an die ein ATE eingeschlossen
werden kann, um erwartete Testergebnisdaten zur Verfügung zu
stellen, die den zur Verfügung
gestellten Testeingangsdaten entsprechen. Die erwarteten Testergebnisdaten
repräsentieren
Testantworten auf die Testeingangsdaten für den Fall eines korrekt arbeitenden
Schaltungskerns. Die erwarteten Testergebnisdaten können über den
Erwartungswerteeingang 220 als erwartete n-Bit-Ergebnismuster
eingegeben werden und über
einen n-Bit-Bus an die Vergleichsschaltung 260 geliefert werden.
Die Vergleichsschaltung 260 analysiert, ob die Testausgangsdaten
eines jeden Kerns 230, 240 und 250 den
erwarteten Ergebnisdaten entsprechen. Beispielsweise kann die Vergleichsschaltung 260 ein Test-Ausgangsmuster
von Kern m und ein entsprechendes erwartetes Testmuster von dem
Erwartungswerteeingang 220 erhalten. Dann stellt die Vergleichsschaltung 260 fest,
ob irgendeine Ungleichheit zwischen den Testausgangsdaten des Kerns
m und den entsprechenden erwarteten Ergebnismustern besteht, indem
sie diese miteinander vergleicht, wodurch ein Vergleichsergebnismuster
erzeugt wird. Falls eine Ungleichheit festgestellt wird, kann eine Ungleichheit-Anzeige
erzeugt werden, die die festgestellte Ungleichheit anzeigt.
-
Wenn
beispielsweise der Wert von einem Bit eines n-Bit-Testausgangsmusters
nicht mit dem Wert des entsprechenden Bits des entsprechenden erwarteten
Ergebnismusters übereinstimmt,
kann die Vergleichsschaltung 260 ein Fehlerbit erzeugen,
das anzeigt, dass ein bestimmter Kern ein Testausgangsmuster erzeugt
hat, das nicht mit dem erwarten Ergebnismuster übereinstimmt. Diese Analyse
und die Ungleichheit-Feststellung wird in der Vergleichsschaltung 260 für jeden
der mehreren Kerne 230, 240 und 250 durchgeführt.
-
Weiterhin
umfasst der Mehrkern-Chip 200 einen Speicher 270,
der mit der Vergleichsschaltung 260 verbunden ist. In dem
Speicher 270 können
die von der Vergleichsschaltung 260 für jeden der mehreren Kerne 230, 240 und 250 erzeugten
Ungleichheit-Anzeigen gespeichert werden. Der Speicher 270 kann
mit der Vergleichsschaltung 260 über einen m-Bit-Bus verbunden
sein, so dass die Ungleichheit-Anzeigen für die separaten Kerne parallel
von der Vergleichsschaltung 260 an den Speicher 270 geliefert
werden können.
In anderen Ausführungsformen
können
die Ungleichheit-Anzeigen seriell, gemultiplext oder codiert an
den Speicher 270 geliefert werden.
-
In
weiteren Ausführungsformen
können
die Kern-Testausgänge 239, 249 und 259 separat
mit dem Erwartungswerteeingang 220 verbunden sein. Dies
kann ermöglichen,
einen konventionellen Test eines einzelnen Kerns der mehreren Kerne
durchzuführen,
indem der Erwartungswerteeingang als ein Testausgang, an den das
ATE angeschlossen wird, verwendet wird. Dies kann nützlich sein,
falls eine detailliertere Analyse der Testergebnisse in dem ATE durchgeführt werden
soll.
-
In
weiteren Ausführungsformen
kann der Speicher 270 mit dem Erwartungswerteeingang 220 verbunden
sein, so dass die Ungleichheit-Anzeigen aus dem Speicher 270 in
einem Auslesemodus ausgelesen werden können.
-
Es
wird nun auf 3 Bezug genommen, in der ein
exemplarisches Mehrkern-Chiptestverfahren gemäß einer
Ausführungsform
dargestellt ist. In Schritt 310 werden Testdaten zum Testen
der mehreren Kerne eines Mehrkern-Chips an einem Chip-Testeingang
des Mehrkern-Chips empfangen und erwartete Ergebnisdaten, die eine
korrekt arbeitende Schaltung eines Kerns anzeigen, an einem Erwartungswerteeingang
des Mehrkern-Chips empfangen. In Schritt 320 werden die
empfangenen Testdaten an die mehreren Kerne geliefert und von diesen
an jeweiligen Kern-Testeingängen
empfangen. In Schritt 330 erzeugt jeder der mehreren Kerne
Testergebnisdaten, indem die empfangenen Testdaten auf die Schaltung
des Kerns angewendet werden, und jeder Kern liefert diese Testergebnisdaten
an einen Kern-Testausgang. In Schritt 340 wird für jeden
Kern jegliche Ungleichheit zwischen dessen erzeugten Testergebnisdaten
und den erwarteten Ergebnisdaten festgestellt, indem die Testergebnisdaten
mit den erwarteten Ergebnisdaten auf dem Chip verglichen werden.
In Schritt 350 wird für
jeden Kern des Mehrkern-Chips eine Ungleichheit-Anzeige in einem
auf dem Chip befindlichen Speicher gespeichert.
-
Es
wird nun auf 4 Bezug genommen, in der eine
Mehrkern-Chiparchitektur 400 bereitgestellt wird, in der
die mehreren Kerne 430, 440 und 450 über einen
Abtastketten-Ansatz getestet werden können.
-
In
einem Abtastketten-Ansatz wird eine logische Schaltung über so genannte
Abtastketten getestet, die eine Kette von Registern (flip-flops
oder Schieberegister) darstellen, die mit der logischen Schaltung
des Kerns in solch einer Weise verbunden sind, dass Zugang zu den
internen Knoten des Kerns erhalten wird. Die internen Knoten des
Kerns, die mit den Registern von einer oder mehreren Abtastketten verbunden
sind, können
mit einem gewünschten
Zustand initialisiert werden, der vorher in die Register der einen
oder mehreren Abtastketten in einem Initialisierungsmodus hineingeschoben
wurde. Im Testmodus können
ein oder mehrere Taktsignale an die logische Schaltung des Kerns
angelegt werden und der Zustand von jedem internen Knoten, der an
die eine oder die mehreren Abtastketten angeschlossen ist, kann
in den entsprechenden Registern der einen oder der mehreren Abtastketten
erfasst und herausgeschoben werden, indem der einen oder den mehreren
Abtastketten Schiebetaktsignale zugeführt werden. Daher können Testmuster
zum Testen der internen Schaltung eines Kerns über die eine oder die mehreren
Abtastketten hineingeschoben werden, Taktsignale können angewendet
werden, um die interne Schaltung mit den Testmustern zu testen,
und entsprechende Testergebnisse können von der einen oder den
mehreren Abtastketten herausgeschoben werden. Abhängig von
den zu der einen oder den mehreren Abtastketten zugeführten Testmustern kann
bestimmt werden, welche Ergebnismuster von der einen oder den mehreren
Abtastketten herausgeschoben werden würden, wenn die interne Schaltung des
Kerns korrekt arbeitet; diese Ergebnismuster werden als erwartete
Ergebnismuster zur Verfügung gestellt.
Daher kann, falls die tatsächlich
ausgegebenen Ergebnismuster nicht mit den erwarteten Ergebnismustern übereinstimmen,
abgeleitet werden, dass die internen logischen Gatter, die die internen
Knoten repräsentieren,
die mit den Registern der einen oder den mehreren Abtastketten verbunden
sind, defekt sein können.
Auf diese Weise können
fehlerhafte Kerne innerhalb des Mehrkern-Chips identifiziert werden.
-
In 4 beinhaltet
jeder der m Kerne 430, 440 und 450 n
Abtastketten. Beispielsweise umfasst der Kern 430 (Kern
1) die Abtastketten 432 (Abtastkette 1), 434 (Abtastkette
2) und 436 (Abtastkette n). Es ist zu beachten, dass obwohl
nur drei Abtastketten 432, 434 und 436 gezeigt
sind, jede Anzahl n von Abtastketten in jedem der mehreren Kerne
beinhaltet sein kann. Gleichermaßen umfasst der Kern 440 (Kern 2)
die Abtastketten 442, 444 und 446, und
Kern 450 (Kern m) umfasst die Abtastketten 452, 454 und 456.
-
Am
Testeingang 210 können
die Testeingangsmuster dem Mehrkern-Chip 400 zugeführt werden.
Die Testeingangsmuster können
als n-Bit-Eingangsmuster durch ein ATE bereitgestellt werden. Die
n-Bit-Testeingangsmuster können über einen n-Bit-Bus
gleichzeitig an die Kern-Testeingänge der mehreren Kerne 430, 440 und 450 geliefert
werden. Die n-Bit-Testmuster werden benutzt, um die Testdaten in
die n-Abtastketten 432, 434, 436, 442, 444, 446, 452, 454 und 456 der
mehreren Kerne 430, 440 und 450 einzuführen. Die
n Ausgänge
der n Abtastketten von jedem Kern erlauben es, Testantworten herauszuschieben,
die in den Abtastregistern der n Abtastketten während einem oder mehreren erfassten
Zyklen gespeichert werden, wodurch ein n-Bit-Testmuster oder Testvektor
an dem Kern-Testausgang
von jedem der mehreren Kerne 430, 440 und 450 bereitgestellt
wird. Zusätzlich
zu den Testantworten von den mehreren Kernen 430, 440 und 450 empfängt der
Mehrkern-Chip 400 auch für eine fehlerfreie interne
Schaltung der mehreren Kerne erwartete Testantworten an dem Erwartungswerteeingang 220.
Die erwarteten Testantworten können
als erwartete n-Bit-Ergebnismuster von dem ATE zur Verfügung gestellt
werden. Der Mehrkern-Chip 400 umfasst weiterhin logische
Vergleichseinheiten 460, 462 und 464,
wobei die logische Vergleichseinheit 460 direkt mit dem
Kern 430 (Kern 1) verbunden ist, die logische Vergleichseinheit 462 direkt
mit dem Kern 440 (Kern 2) verbunden ist und die logische
Vergleichseinheit 464 direkt mit dem Kern 450 (Kern
m) verbunden ist. Weiterhin ist jede logische Vergleichseinheit 460, 462 und 464 mit
dem Erwartungswerteeingang 220 verbunden. Es ist die Aufgabe
der logischen Vergleichseinheiten 460, 462 und 464 festzustellen,
ob die eingegebenen Testmuster, die von allen m Kernen benutzt werden,
jeden der m Kerne 430, 440 und 450 veranlassen,
Testergebnismuster zu erzeugen, die mit den erwarteten Ergebnismustern,
die ebenso von allen Kernen benutzt werden, übereinstimmen. Beispielsweise
vergleicht die logische Vergleichseinheit 460 das von dem
Kern 430 empfangene Testergebnismuster mit dem von der
Erwartungswerteeinheit 220 empfangenen erwarteten Ergebnismuster.
Falls irgendeine Ungleichheit festgestellt wird, wird eine Anzeige
für diese
Ungleichheit erzeugt und an den Speicher 470 geliefert.
In einer Ausführungsform
führt die
logische Vergleichseinheit 460 einen bitweisen Vergleich
des empfangenen Testergebnismusters und des empfangenen erwarteten
Testergebnismusters durch und gibt die Vergleichsergebnisse als
n-Bit-Vergleichsvektor
aus. Beispielsweise kann ein Bit mit dem Wert "1" ausgegeben
werden, falls eine Ungleichheit zwischen einem bestimmten Bit des
empfangenen Testergebnismusters und einem bestimmten Bit des empfangenen
erwarteten Ergebnismusters auftritt. Für den Fall, dass das empfangene
Testergebnismuster und das empfangene erwartete Ergebnismuster exakt übereinstimmen,
kann ein Bit mit dem Wert "0" ausgegeben werden.
Dann wird der n-Bit-Vergleichsvektor einem ODER-Gatter 461 zugeführt, das
für den Fall,
dass alle Bits des Vergleichsvektors den Wert "0" aufweisen,
eine "0" ausgibt, und für den Fall,
dass zumindest ein Bit des Vergleichsvektors den Wert "1" aufweist, eine "1" ausgibt.
Die Ausgabe des ODER-Gatters 461 kann als Fehlerbit in
einem Speicher des Mehrkern-Chips 400 als ein Ungleichheit-Anzeigewert
gespeichert werden. Ein Fehlerbit-Wert von "1" kann
eine erfasste Ungleichheit anzeigen; ansonsten kann ein Fehlerbit-Wert
von "0" anzeigen, dass keine
Ungleichheit festgestellt wurde, und kann somit als Bestandenbit
angesehen werden.
-
In
gleicher Weise vergleicht die logische Vergleichseinheit 462 das
Testergebnismuster von dem Kern 440 mit dem erwarteten
Ergebnismuster und entsprechend dem resultierenden Vergleichsvektor kann
ein ODER-Gatter 463 einen diesbezüglichen Ungleichheit-Anzeigewert
an den Speicher 470 liefern. In ähnlicher Weise vergleicht die
logische Vergleichseinheit 464 das Testergebnismuster von
dem Kern 450 mit dem erwarteten Ergebnismuster und über ein
ODER-Gatter 465 kann ein Ungleichheit-Anzeigewert an den
Speicher 470 geliefert werden, falls die logische Vergleichseinheit 464 irgendeine
Ungleichheit feststellt. In einer Ausführungsform kann der Speicher 470 eine
Vielzahl von Fehlerbit-Registern beinhalten, die mit den logischen
Vergleichseinheiten 460, 462 und 464 assoziiert
sind. Beispielsweise kann das Fehlerbit-Register ein Register, das direkt
mit dem ODER-Gatter 461 verbunden ist, ein Register, das
direkt mit dem ODER-Gatter 463 verbunden ist und ein Register,
das direkt mit dem ODER-Gatter 465 verbunden ist, beinhalten.
-
In
weiteren Ausführungsformen
können
die Kern-Testausgänge
der Kerne 430, 440 und 450 oder die Ausgänge der
logischen Vergleichseinheiten 460, 462 und 464 separat
mit dem Erwartungswerteeingang 220 verbunden sein. Dies
kann es ermöglichen, einen
konventionellen Test eines einzelnen Kerns der mehreren Kerne durchzuführen, indem
der Erwartungswerteeingang als ein Testausgang verwendet wird, mit
dem das ATE verbunden wird. Dies kann nützlich sein, wenn eine detailliertere
Analyse der Testergebnisse in dem ATE durchgeführt werden soll.
-
In
weiteren Ausführungsformen
kann der Speicher 470 mit dem Erwartungswerteeingang 220 verbunden
sein, so dass die Ungleichheit-Anzeigewerte
von den in dem Speicher 470 beinhalteten Fehlerbit-Registern
in einem Auslesemodus ausgelesen werden können. In weiteren Ausführungsformen
können
die in dem Speicher 470 beinhalteten Fehlerbit-Register über einen
Test-Zugangsanschluss
("test access Port", TAP) ausgelesen
werden.
-
5 zeigt
eine weitere Ausführungsform,
in welcher die mehreren Kerne 430, 440 und 450,
der Testeingang 210, der Erwartungswerteeingang 220 und
die ODER- Gatter 461, 463 und 465 den
entsprechenden Einheiten aus 4 ähnlich sind.
Des Weiteren enthält
der Mehrkern-Chip 500 eine logische Maskierungseinheit 580.
Die logische Maskierungseinheit 580 liefert zusätzlich zu
den erwarteten Ergebnisdaten auch Maskierungsdaten an die logischen
Vergleichseinheiten 560, 562 und 564.
-
Maskierungsdaten
werden dann genutzt, wenn bestimmte Vergleiche innerhalb der logischen Vergleichseinheiten 560, 562 und 564 für ein Feststellen
einer Ungleichheit nicht in Betracht gezogen werden sollen. Beispielsweise
könnten
in bestimmten Fällen
unklare Werte aus einer Abtastkette herausgeschoben werden, wodurch
die darauf bezogenen Vergleiche nicht brauchbar wären. Beispielsweise
könnte
es bekannt sein, dass ein bestimmtes Testmuster in einem Testergebnismuster
resultiert, in dem nicht alle Werte der beinhalteten Testantworten unzweideutig
definiert sind. Weiterhin könnte
es bekannt sein, dass bestimmte Logikgatter, die mit einer bestimmten
Abtastkette assoziiert sind, fehlerhaft sind, aber es könnte trotzdem
für eine
weitere Diagnose des betroffenen Kernes wünschenswert sein, die Schaltung
des betroffenen Kernes mittels anderer Abtastketten weiter zu analysieren.
In einem anderen Fall könnte
es bereits bekannt sein, dass einer der mehreren Kerne fehlerhaft
ist und deshalb sollen Ungleichheit-Informationen nur für die anderen
Kerne des Mehrkern-Chips erlangt werden.
-
In
der Ausführungsform
von 5 empfangen die logischen Vergleichseinheiten 560, 562 und 564 Testergebnismuster
von den mehreren Kernen 430, 440 und 450 in ähnlicher
Weise, wie es in 4 gezeigt ist. Weiterhin empfängt der
Mehrkern-Chip 500 erwartete
Ergebnismuster an dem Erwartungswerteeingang 220 und diese
erwarteten Ergebnismuster werden an die logische Maskierungseinheit 580 geliefert.
Die logische Maskierungseinheit 580 ist mit den logischen
Vergleichseinheiten 560, 562 und 564 über zwei
Busse verbunden. Über
den einen Bus werden die erwarteten Ergebnismuster von der logischen
Maskierungseinheit 580 an die logischen Vergleichseinheiten 560, 562 und 564 geliefert. Über den anderen
Bus werden Maskierungsinformationen von der logischen Maskierungseinheit 580 an
die logischen Vergleichseinheiten 560, 562 und 564 geliefert.
In einer Ausführungsform
wird die Maskierungsinformation als n-Bit-Maskierungsmuster geliefert. Die logischen
Vergleichseinheiten 560, 562 und 564 vergleichen
die jeweiligen Testergebnismuster der mehreren Kerne 430, 440 und 450 mit
den entsprechenden erwarteten Ergebnismustern. Ungleichheit-Anzeigen
werden basierend auf den Vergleichsergebnissen erzeugt und an einen
Speicher 570 geliefert. In einer Ausführungsform werden die von den logischen
Vergleichseinheiten 560, 562 und 564 ausgegebenen
Vergleichsergebnisse an die ODER-Gatter 461, 463 und 465 geliefert,
die entsprechende Ungleichheit-Anzeigewerte
für jeden
Kern ausgeben. Diese Ungleichheit-Anzeigewerte können als Fehlerbits oder Bestandenbits
an einen Speicher geliefert werden.
-
In
einer Ausführungsform
kann der Speicher ein Register 570 sein, das über einen
Test-Zugangsanschluss (TAP) zugreifbar ist. Die Eigenschaften des
TAP können
durch die JTAG (Joint Test Action Group) spezifiziert sein. In einer
Ausführungsform kann
der Speicher ein TAP-zugreifbares Register 570 sein. In
einer Ausführungsform
werden alle Register in dem TAP-zugreifbaren Register 570 ursprünglich auf
0 ("low") gesetzt und die
ODER-Gatter 461, 463 und 465 liefern
dann einen Wert 1 ("high"), wenn die von den
logischen Vergleichseinheiten 560, 562 und 564 ausgegebenen
Vergleichsvektoren eine Ungleichheit anzeigen. Solche Register können den Wert
1 für die
vollständige
Testdauer beibehalten, so dass die Information, dass irgendeine
Ungleichheit während
des Testvorgangs für
den jeweiligen Kern aufgetreten ist, nicht verloren wird. In einer
weiteren Ausführungsform
werden die Register ursprünglich auf
einen Werte 1 ("high") gesetzt und die ODER-Gatter
liefern einen Wert von 0 ("low") im Falle irgendeiner
angezeigten Ungleichheit. Solche Register können den Wert 0 für die vollständige Testdauer beibehalten,
so dass die Information, dass irgendeine Ungleichheit in dem Testvorgang
für den
jeweiligen Kern aufgetreten ist, nicht verloren wird. Das Fehlerbit-Register 570 kann über einen
Test-Zugangsanschluss (TAP) ausgelesen werden und diejenigen Kerne,
die den Test nicht bestanden haben, können durch die entsprechenden
Fehlerbits identifiziert werden.
-
6 zeigt
ein Beispiel für
die logische Maskierungseinheit 580 gemäß einer Ausführungsform. Die
Maskierungslogik ist für
einen einzelnen Abtastkanal dargestellt. Die logische Maskierungseinheit 580 wird
mit einem Abtastschiebetakt und erwarteten Eingangsbitdaten versorgt.
-
Die
Maskierungsdaten können
von den erwarteten Ergebnisdaten wie folgt abgeleitet werden: falls
ein Wert an diesen Eingängen
für den
gesamten Abtastzyklus stabil ist, dann ist ein Vergleich mit diesem
Wert gültig;
und falls ein Wert an diesen Eingängen zwischen der "on"- und "off"-Phase des Taktes während eines
einzigen Zyklus umschaltet, dann sollte das Ergebnis des diesbezüglichen
Vergleiches maskiert werden. Auf diese Weise können erwartete Ergebnisdaten
und Maskierungsdaten zum Maskieren des Vergleichs von bestimmten
Werten der erwarteten Ergebnisdaten mit von den entsprechenden separaten
Abtastkanälen
ausgegebenen Ergebniswerten über
einen einzelnen Eingangsanschluss zur Verfügung gestellt werden. Die einzelnen
Werte solcher Maskierungsdaten können
daher als Abtastketten-Maskierungsbits betrachtet werden.
-
6 zeigt
Schieberegister 610 und 612, wobei das Schieberegister 610 durch
die positive Flanke eines Abtastschiebetakts gesteuert wird und Schieberegister 612 durch
die negative Flanke eines Abtastschiebetakts gesteuert wird. Weiterhin
zeigt 6 ein exklusives ODER-Gatter, das mit den Ausgängen der
Schieberegister 610 und 612 verbunden ist. Daher
gibt das exklusive ODER-Gatter 620 immer dann eine "1" aus, die als Maskierungswert an die
jeweilige logische Vergleichseinheit geliefert wird, wenn der Wert
eines erwarteten Ergebnisbits innerhalb eines einzelnen Abtasttaktzyklus
wechselt. Wenn sich der Wert des erwarteten Ergebnisbits innerhalb
eines Taktzyklus nicht ändert,
ist die Ausgabe des exklusiven ODER-Gatters 620 immer eine "0", was bedeutet, dass der betroffene
Vergleich in der betroffenen logischen Vergleichseinheit nicht maskiert
werden soll. Der Wert auf der mit "Erwartet" bezeichneten Ausgangsleitung entspricht
immer dem Wert der mit "Erwartet" bezeichneten Eingangsleitung.
-
7 zeigt
ein Beispiel für
eine Vergleichslogik für
einen einzelnen Abtastkanal, die in Kombination mit der Maskierungslogik
von 6 verwendet werden kann. Es wird ein ODER-Gatter 710 gezeigt, in
das Maskierungsdaten und erwartete Daten eingegeben werden. Weiterhin
gibt es ein weiteres ODER-Gatter 712, in das Maskierungsdaten
und Testergebnisdaten eingegeben werden. Die Ausgänge der
ODER-Gatter 710 und 712 sind mit einem exklusiven
ODER-Gatter 720 verbunden, das ein Fehlerbit an seinem
Ausgang bereitstellt, welches einem Fehlerbit-Register zugeführt werden
kann. Falls eine "1" über die Maskierungsleitung
eingegeben wird, ist der Ausgang des exklusiven ODER- Gatters 720 immer
eine "0"; daher wird der
Vergleich zwischen den Testergebnisdaten und den erwarteten Ergebnisdaten
maskiert. Für
den Fall, dass die Maskierungsleitung eine "0" liefert,
wird der tatsächliche
Wert der erwarteten Ergebnisdaten und der Testergebnisdaten verglichen
und im Falle einer Ungleichheit ein Fehlerbit an dem Ausgang des
exklusiven ODER-Gatters 720 bereitgestellt.
-
In
weiteren Ausführungsformen
kann die Vergleichslogik eine abweichende interne Struktur aufweisen.
Beispielsweise können
die Testergebnisdaten und die erwarteten Ergebnisdaten einem exklusiven
ODER-Gatter zugeführt
werden, dessen Ausgang einem ersten Eingang eines UND-Gatters zugeführt wird.
Weiterhin wird die Maskierungsleitung einem Inverter zugeführt, dessen
Ausgang einem zweiten Eingang des UND-Gatters zugeführt wird.
Daher liefert der Ausgang des UND-Gatters dieselben Werte wie der
Ausgang des exklusiven ODER-Gatters 720 des in 7 gezeigten
Beispiels.
-
Für die in
den 6 und 7 gezeigten Ausführungsformen
kann es notwendig sein, dass die entsprechenden Anschlüsse und
das ATE mit der doppelten Frequenz der Abtastverschiebung arbeiten
können.
Manchmal mag dies nicht möglich
sein und dann kann die Dauer des Abtasttaktes verdoppelt werden,
so dass der Abtasttest der mehreren Kerne ungefähr zweimal so lange läuft als
für einen einzelnen
Kern.
-
Für jeden
Kern besteht die Vergleichslogik aus n Grundblöcken, die das Testantwortbit
der Abtastketten mit dem entsprechenden erwarteten Bit vergleichen.
Falls das diesbezügliche
Maskierungsbit gesetzt ist, dann wird in jedem Fall keine Ungleichheit
berichtet und das Ergebnis ist "0". Die ODER-Summe der Ergebnisse
der n Grundblöcke
ist nur dann "1", wenn zumindest
einer der nichtmaskierten Vergleiche fehlgeschlagen hat. Diese Summe
ist die Eingabe für
das Fehlerbit des Kerns, welches in dem zusätzlichen TAP-Register gespeichert
wird.
-
8 zeigt
einen einzelnen Kern 800, der in alternativen Ausführungsformen
benutzt werden kann, in denen die Testdaten und die erwarteten Ergebnisdaten
an die Multikern-Chiparchitektur in codierter Form geliefert werden.
Dies kann der Fall sein, wenn eine große Anzahl von Abtastketten 830 über eine
kleine Anzahl von Testeingabe-Pins betrieben werden soll. Dies kann
durch Kern-Designs erreicht werden, in denen ein Kern 800 einen
Decodierer 840 vor den Abtastketten beinhaltet, wobei der Decodierer 840 die
vollständigen
Testdaten aus den über
den Kern-Testeingang 810 empfangenen komprimierten Daten
erzeugt. Auf diese Weise kann eine Vielzahl von mehr als n Abtastketten 830 sogar
dann gleichzeitig mit Testeingabedaten beliefert werden, wenn der
Chip-Testeingang einen Eingangsanschluss mit nur n Pins oder Kontaktflecken
darstellt oder wenn der Kern-Testeingang 810 mit dem Chip-Testeingang über einen
n-Bit-Bus verbunden ist. In ähnlicher
Weise kann der Kern 800 einen Codierer 850 am
Ende der Abtastketten 830 umfassen, um die mehr als n Testantworten
von den mehr als n Abtastketten 830 auf die Breite des
Kern-Testausgangs 820 zu reduzieren. Es ist zu beachten,
dass die hier beschriebenen Ausführungsformen
mit oder ohne einer solchen Testdaten-Komprimierlogik funktionieren.
-
Weiterhin
ist zu beachten, dass die Breite k des Kern-Testausgangs dieselbe
sein kann wie die Breite n des Kern-Testeingangs, aber nicht notwendigerweise
gleich der Breite n des Kern-Testeingangs sein muss. Jedoch muss
in solchen Fällen,
in denen die Breite k des Kern-Testausgangs nicht gleich der Breite
n des Kern-Testeingangs
ist, die anschließend folgende
Vergleichslogik der hier beschriebenen Ausführungsformen entsprechend angepasst
werden.
-
9 zeigt
ein Beispiel von weiteren Ausführungsformen,
in denen zusätzliche
Maskierungsdaten bereitgestellt werden, um die Ungleichheit-Feststellung
für ganze
Kerne zu maskieren. Beispielsweise kann dies nützlich sein, wenn es bekannt
ist, dass einer der mehreren Kerne vollständig defekt ist.
-
Um
alle Ergebnisse der Ungleichheit-Erkennung für einen oder mehrere Kerne
zu maskieren, wurde der Mehrkern-Chiparchitektur dieser weiteren Ausführungsformen
ein Kern-Maskierungsregister 975 zugefügt. Jede der logischen Vergleichseinheiten 960, 962 und 964 wird
mit erwarteten Ergebnisdaten und mit den von einem assoziierten
Kern ausgegebenen Testergebnisdaten versorgt. Des Weiteren werden
die logischen Vergleichseinheiten 960, 962 und 964 mit
einem Maskierungsbit des Kern-Maskierungsregisters 975 versorgt,
das angibt, ob der Vergleich für
einen bestimmten Kern maskiert werden soll oder nicht.
-
Beispielsweise
kann die logische Vergleichseinheit 960 eine "1" von dem Kern-Maskierungsregister 975 erhalten.
Dann wird, ähnlich
der in 7 gezeigten Ausführungsform, keine "1" an das ODER-Gatter 961 ausgegeben
und deshalb wird eine "0" in dem Fehlerbit-Register 970 gespeichert. Dadurch
wird für
diesen Kern, dem die logische Vergleichseinheit 960 zugeordnet
ist, die Ungleichheit-Erkennung
maskiert. In gleicher Weise arbeitet das ODER-Gatter 963 mit
der logischen Vergleichseinheit 960 und das ODER-Gatter 965 mit
der logischen Vergleichseinheit 964 zusammen.
-
In
weiteren Ausführungsformen
kann dieser Kern-Maskierungsansatz mit dem in Zusammenhang mit 7 beschriebenen
Abtastkanal-Maskierungsansatz kombiniert werden. Zu diesem Zweck
ist in 9 ein ODER-Gatter 976 gezeigt, dem ein
diesbezügliches
Kern-Maskierungsbit und ebenso diesbezügliche Abtastkanal-Maskierungsdaten
zugeführt werden.
Dann wird ein Vergleich – und
damit eine Ungleichheit-Erkennung – für den Fall, dass ein Kern-Maskierungsbit
gesetzt ist und ebenso für
den Fall, dass diesbezügliche
Abtastkanal-Maskierungsdaten
zugeführt
werden, maskiert. In gleicher Weise können sowohl Abtastkanal-Maskierungsdaten
als auch Kern-Maskierungsdaten für
die logische Vergleichseinheit 962 mittels dem ODER-Gatter 977 berücksichtigt
werden und sowohl Abtastkanal-Maskierungsdaten als auch Kern-Maskierungsdaten
für die logische
Vergleichseinheit 964 mittels dem ODER-Gatter 978 berücksichtigt
werden.
-
Nun
wird auf 10 Bezug genommen, die ein exemplarisches
Mehrkern-Chiptestverfahren
gemäß einer
weiteren Ausführungsform
zeigt. In Schritt 1010 wird eine Sequenz von n-Bit-Testmustern
an einem Chip-Testeingang des Mehrkern-Chips empfangen. In Schritt 1020 werden
die empfangenen n-Bit-Testmuster
den Kern-Testeingängen
der mehreren Kerne zugeführt.
In Schritt 1030 werden die n-Bit-Testmuster in die n Abtastketten
hineingeschoben. In Schritt 1040 werden die n-Bit-Testergebnismuster
aus den n Abtastketten herausgeschoben und an den Kern-Testausgängen der
mehreren Kerne zur Verfügung
gestellt. In Schritt 1050 wird entschieden, ob ein Kern-Maskierungsbit
gesetzt ist, welches anzeigt, dass die Ungleichheit-Erkennung für einen
bestimmten Kern maskiert werden soll. Falls ein Kern-Maskierungsbit
gesetzt ist, speichert das Verfahren in Schritt 1090 ein
Kern-Bestandenbit in einem Fehlerbit-Register. Andernfalls fährt das Verfahren
mit Schritt 1060 weiter, in welchem für jedes Bit eines jeden n-Bit-Ergebnismusters ein
Vergleich mit seinem entsprechenden Bit des erwarteten n-Bit-Ergebnismusters
durchgeführt
wird. Für
jeden dieser bitweisen Vergleiche wird entschieden, ob ein Abtastketten-Maskierungsbit
gesetzt ist, welches angibt, dass ein diesbezüglicher Vergleich maskiert werden
soll. Falls der bitweise Vergleich nicht maskiert werden soll, resultiert
eine in Schritt 1070 festgestellte Ungleichheit in einem
Speichern eines Kern-Fehlerbits in dem Fehlerbit-Register in Schritt 1080.
Falls keiner der Vergleiche der n-Bit-Ergebnismuster mit deren entsprechenden
erwarteten Ergebnismustern in einer Ungleichheit resultiert, kann
ein Kern-Bestandenbit in Schritt 1090 in dem Fehlerbit-Register
gespeichert werden. Deshalb zeigt ein in dem Fehlerbit-Register
gespeichertes Fehlerbit an, dass zumindest ein unerwarteter Wert
während
des Testens des mit diesem Fehlerbit assoziierten Kerns aufgetreten
ist. Andererseits zeigt ein Kern-Bestandenbit
an, dass für
den betroffenen Kern kein unerwarteter Wert während des gesamten Testvorgangs aufgetreten
ist.
-
In
weiteren Ausführungsformen
werden alle Bits des Fehlerbit-Registers anfangs auf einen Wert "Kern-Bestanden" gesetzt, bevor das
Mehrkern-Chiptestverfahren begonnen wird, was bedeutet, dass anfangs
Kern-Bestandenbits gespeichert sind. In diesem Fall wäre Schritt 1090 von 10 nicht
notwendig, da alle Bits des Fehlerbit-Registers den Wert "Kern-Bestanden" so lange beibehalten,
so lange keine Ungleichheit in Schritt 1070 erkannt wird. Andernfalls
wird der Wert "Kern-Bestanden" mit einem Wert "Kern-Fehler" in Schritt 1080 überschrieben,
sobald in Schritt 1070 eine Ungleichheit festgestellt wird,
was bedeutet, dass ein Kern-Fehlerbit
in dem Fehlerbit-Register gespeichert wird.
-
Wie
bereits im Zusammenhang mit 7 angedeutet,
gibt es weitere Ausführungsformen,
in denen die Präsenz
von Maskierungsbits nach dem Vergleich der n-Bit-Ergebnismuster
mit den erwarteten n-Bit-Ergebnismustern berücksichtigt wird. Das heißt, dass
zuerst festgestellt werden kann, ob die bitweisen Vergleiche der
n-Bit-Ergebnismuster mit den erwarteten n-Bit-Ergebnismustern in einer Ungleichheit
resultieren, und dann festgestellt werden kann, ob ein diesbezügliches
Maskierungsbit gesetzt ist. Beispielsweise kann Schritt 1050 der 10 bis nach
dem Schritt 1070 hinausgezögert werden. Das heißt, dass
dann, wenn der Schritt 1070 in einem "Ja" resultiert,
festgestellt wird, ob ein Kern-Maskierungsbit gesetzt ist. Entsprechend
dieser Feststellung fährt das
Verfahren mit einem der Schritte 1080 und 1090 fort.
-
In
weiteren Ausführungsformen
wird ein zusätzlicher
Schritt des Testens der Maskierungsdaten-Erzeugungslogik, der Vergleicher
und der Fehlerbit-Register durchgeführt, bevor das oben beschriebene
Mehrkern-Chiptestverfahren gestartet wird.
-
Wie
aus den oben beschriebenen Ausführungsformen
ersichtlich, wird eine Chiparchitektur für einen integrierten Schaltkreis
zur Verfügung
gestellt, die ein effizientes Testen von mehreren in dem integrierten
Schaltkreischip beinhalteten Kernen erlaubt.
-
Insbesondere
erlauben die beschriebenen Ausführungsformen
ein gleichzeitiges Testen der mehreren Kerne eines Mehrkern-Chips
mit dem gleichen Satz von Testdaten. Weiterhin zeigen manche Ausführungsformen,
dass verglichen mit dem Testen eines Einzelkern-Chips keine zusätzlichen
Eingabe-/Ausgabe-Pins benötigt
werden, was bedeutet, dass die gesamte Anzahl von Eingabe-/Ausgabe-Pins,
die für
das Testen benötigt
werden, unabhängig
von der Anzahl der parallel zu testenden Kerne ist. Weiterhin ermöglichen
die beschriebenen Ausführungsformen,
dass die Zeit zum Testen der Kerne eines Mehrkern-Chips nahezu unabhängig von
der Anzahl der von in dem Mehrkern-Chip beinhalteten, im Wesentlichen
gleichen Kernen ist. Daher wird keine Änderung in dem Testkonzept
benötigt,
wenn die Anzahl von Kernen in dem Mehrkern-Chipdesign erhöht wird.
-
Zusätzlich sind
weitere Ausführungsformen gezeigt,
in denen erwartete Ergebnisdaten und Maskierungsdaten für einen
einzelnen Abtastkanal unter Verwendung einer einzelnen Eingangsleitung
bereitgestellt werden. Zusätzlich
sind Ausführungsformen beschrieben,
in denen zusätzliche
Maskierungsdaten zur Maskierung der Ungleichheit-Erfassung für ganze
Kerne bereitgestellt und entsprechend verarbeitet werden.
-
Weiterhin
ist zu beachten, dass die zusätzliche
Fläche,
die benötigt
wird, um die bereitgestellten Ausführungsformen zu implementieren,
im Vergleich zu der üblichen
Größe von in
modernen Mehrkern-Chips verwendeten Kernen sehr klein ist.