-
Ausführungsbeispiele betreffen allgemein Chips und Verfahren zum Testen einer Verarbeitungskomponente eines Chips.
-
Hergestellte Chips werden üblicherweise getestet, um defekte Chips auszusortieren. Testen führt zu verschiedenen Kosten wie Kosten für die Hardware auf dem Chip, die zum Testen erforderlich ist, sowie die Kosten der tatsächlichen Testprozedur, die normalerweise von der Testdauer abhängen. Es ist wünschenswert diese Kosten niedrig zu halten. Andererseits ist es wünschenswert Tests zu haben, die einen großen Bereich von Fehlern, die ein Chip aufweisen kann, abdecken.
-
Gemäß einer Ausführungsform wird ein Chip bereitgestellt, der eine Schnittstelle, die eingerichtet ist, Testdaten und Maskierungsdaten zu empfangen, eine Verarbeitungskomponente mit mehreren Scanketten, wobei jede Scankette eingerichtet ist, basierend auf einer Verarbeitung der Testdaten eine Testantwort zu erzeugen, eine Kompressionsschaltung, die eingerichtet ist, die von den Scanketten erzeugten Testantworten zu einer komprimierten Testantwort zu komprimieren und eine Signaturerzeugungsschaltung aufweist, die eingerichtet ist, abhängig davon, ob die Maskierungsdaten spezifizieren, dass die komprimierten Testantwort zu maskieren ist, basierend auf der komprimierten Testantwort eine Signatur zu erzeugen.
-
Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
-
1 zeigt einen Chip mit einer 2-Pin-Testarchitektur.
-
2 zeigt einen Chip mit einer 1-Pin-Testarchitektur.
-
3 zeigt einen Chip gemäß einer Ausführungsform.
-
4 zeigt ein Ablaufdiagramm, das ein Verfahren zum Testen einer Verarbeitungskomponente eins Chips darstellt.
-
5 zeigt eine Testanordnung gemäß einer Ausführungsform.
-
6 zeigt ein Beispiel für einen Testdatenstrom, einen Strom für erwartete komprimierte Testantworten, einen Maskierungsdatenstrom sowie einen kombinierten Test-Eingabestrom.
-
Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen. Im Rahmen dieser Beschreibung werden die Begriffe "verbunden", "angeschlossen" sowie "gekoppelt" verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
-
Ein Beispiel für Architektur zur Durchführung eines Scantests mittels zwei Pins eines Chips wird im Folgenden mit Bezug auf 1 beschrieben.
-
1 zeigt einen Chip 100 mit einer 2-Pin-Testarchitektur.
-
Der Chip enthält eine serielle Schnittstelle 101, über die die Scandaten (in anderen Worten Testdaten oder eingegebene Testdaten, die zum Beispiel eine Vielzahl von Testmustern enthalten) dem Chip 100 zum Testen des Chips 100 über einen ersten Pin in der Form eines Stroms mit einer Breite von 1 Bit zugeführt werden können. Die Schnittstelle 101 führt die Testdaten einem Dekompressor 102 zu, der die Testdaten dekomprimiert und die dekomprimierten Testdaten einer zu testenden Schaltung 103 zuführt, d. h. einer Komponente des Chips 100, die mittels der Testdaten getestet werden soll. Die zu testende Schaltung 103 verarbeitet die Testdaten, z. B. durch eine Vielzahl von Scanketten, die in einer Verschiebungsphase mit den Werten eines dekomprimierten Testmusters geladen werden.
-
Die zu testende Schaltung enthält zum Beispiel eine Vielzahl von Scanketten. Die Testdaten, auf denen basierend alle Flip-Flops aller Scanketten einmal geladen werden, um von einer oder mehreren Erfassungsphasen verarbeitet zu werden, werden im Folgenden als ein Testmuster bezeichnet. Die Prozedur des einmaligen Ladens aller Flip-Flops aller Scanketten, des Verarbeitens ihrer Werte durch eine Erfassungsphase (die eine oder mehrere Erfassungsiterationen enthalten kann) und des Ausgebens der Werte der Flip-Flops wird im Folgenden als ein Testzyklus bezeichnet.
-
Testdaten, die dem Chip über die Schnittstelle 101 für einen Testzyklus zugeführt werden, enthalten typischerweise nicht explizit die Werte für die Flip-Flops aller Scanketten. Stattdessen erzeugt der Dekompressor 102 diese Werte aus einem komprimierten Testmuster, z. B. durch Füllen der Flip-Flops mit Zufallswerten, die für den gegenwärtigen Testzyklus unerheblich sind (in anderen Worten mit „don’t care“-Bits).
-
Nach dem Verarbeiten der in die Flip-Flops geladenen Werte mittels einer Erfassungsphase (d. h. am Ende eines Testzyklus) werden die resultierenden Werte aus der zu testenden Schaltung 103 verschoben und einem Kompaktor 104 zugeführt. Der Kompaktor 104 enthält zum Beispiel die Funktionalität eines XOR(Exklusives ODER)-Gatters (d.h. Exklusives ODER), das den Ausgang der Scanketten empfängt (Bit für Bit in das XOR-Gatter verschoben). Der Kompaktor 104 erzeugt einen Scanausgangsstrom mit einer Breite von 1 Bit, den der Chip 100 über einen zweiten Pin ausgibt. Der Scanausgangsdatenstrom kann dann von einem Tester (z.B. einer Testvorrichtung) mit Referenzdaten (z.B. „goldenden Werten“) verglichen werden. Ein solcher Ist-Soll-Vergleich wird typischerweise für jeden Testzyklus durchgeführt.
-
In Vorrichtungen wie Chipkarten oder anderen Produkten mit einer niedrigen Anzahl von Pins und z. B. einer seriellen Schnittstelle mit nur einem Pin ist jedoch möglicherweise nur ein Pin für den Test verfügbar. Ferner kann, selbst wenn zwei oder mehrere Pins verfügbar sind, die Nutzung eines einzelnen Pins zum Testen wünschenswert sein, weil dadurch die Testparallelität erhöht und dadurch die Testkosten reduziert werden können. Dies kann zum Beispiel durch die in 2 dargestellte Architektur erreicht werden.
-
2 zeigt einen Chip 200 mit einer 1-Pin-Testarchitektur.
-
Ähnlich dem Chip 100 von 1 enthält der Chip 200 eine Schnittstelle 201 zum Empfangen von eingegebenen Testdaten über einen ersten Pin, einen Dekompressor 202 und eine zu testende Schaltung 203.
-
Anstelle eines Kompaktors 104, der einen Testausgangsstrom erzeugt und über einen zweiten Pin ausgibt, enthält der Chip ein MISR (Mehrfacheingang-Signaturregister) 204. Die zu testende Schaltung 203 gibt Testantworten der Scanketten (z. B. den Status jedes mindestens einer Teilmenge der Flip-Flops der Scanketten nach der Erfassungsphase) an das MISR (Mehrfacheingang-Signaturregister) 204 aus, das Schritt für Schritt eine Signatur aus den Testantworten erzeugt.
-
Nachdem der Test (der mehrere Testzyklen enthalten kann, wobei der MISR die Signatur für jeden Testzyklus akkumuliert) abgeschlossen ist und das MISR 204 eine Signatur basierend auf den Ergebnissen aller Testantworten erzeugt hat, gibt es die erzeugte Signatur über die Schnittstelle 101 und den ersten Pin aus. Die erzeugte Signatur kann dann mit einer Referenzsignatur (goldene Signatur) verglichen werden, um zu prüfen, ob die zu testende Schaltung 203 den Test bestanden hat oder nicht bestanden hat.
-
Manche Schaltungen liefern jedoch während des Scantests unbekannte Werte (sog. X-Werte) in den Testantworten. Gründe hierfür können sein:
- • fehlerhafte Isolierung von Makros oder SFRs (Special Function Registers) und
- • Timing Exceptions (z.B. False- oder Multicycle-Pfade).
-
Für solche Schaltungen steht die Kompression der Testantworten durch ein MISR nicht zur Verfügung. Ein einziger X-Wert könnte zu einer fehlerhaften Signatur führen und ein Vergleich der Signatur mit der goldenen Signatur würde somit auch für fehlerfreie zu testende Schaltungen einen Defekt anzeigen. Daher ist ein Scantest im 1-Pin-Test wie in 2 nicht möglich oder die X-Werte müssen durch aufwändige Hardware-Änderungen vermieden werden.
-
Eine Schaltung, die X-Werte erzeugt, kann mit dem in 1 dargestellten 2-Pin-Test getestet werden. Die Positionen aller X-Werte im Scanausgangsstrom können von einem ATPG(automatische Testmuster-Erzeugung)-Tool berechnet werden. Daher kann am Tester bei der Verwendung des 2-Pin Tests für diese Positionen im Scanausgangsstrom der Vergleich mit dem goldenen Wert deaktiviert werden. Wie oben erwähnt ist bei bestimmten Vorrichtungen eventuell jedoch nur ein Pin verfügbar oder es soll aus Kostengründen nur ein Pin verwendet werden.
-
Eine Möglichkeit, ein Testen für eine Schaltung, die X-Werte erzeugt, mit nur einem Pin zu ermöglichen, ist es den Strom der Testantworten (oder auch den Strom von komprimierten Testantworten) zwischenzuspeichern und versetzt auszugeben. Beispielsweise kann anstatt des MISRs 204 ein Zwischenpuffer vorgesehen sein, der die Testantworten zwischenspeichert und zu einem Zeitpunkt ausgibt, zu dem Chip 100 keine Scandaten über die Schnittstelle 201 zugeführt werden. Der Zwischenpuffer führt jedoch typischerweise zu hohen Zusatzkosten bzgl. der Chip-Fläche und das versetzte Ausgeben der Ergebnisse erfordert ein komplexes Kommunikationsprotokoll am Tester.
-
Im Folgenden wird ein Chip beschrieben, der das Testen einer Schaltung des Chips, die X-Werte erzeugt, ohne einen solchen Zwischenpuffer ermöglicht.
-
3 zeigt einen Chip 300 gemäß einer Ausführungsform.
-
Der Chip 300 weist eine Schnittstelle 301, die eingerichtet ist, Testdaten und Maskierungsdaten zu empfangen und eine Verarbeitungskomponente 302 mit mehreren Scanketten 303 auf, wobei jede Scankette eingerichtet ist, basierend auf einer Verarbeitung der Testdaten eine Testantwort zu erzeugen.
-
Der Chip 300 weist ferner eine Kompressionsschaltung 304 (z.B. einen Kompaktor) auf, die eingerichtet ist, die von den Scanketten 303 erzeugten Testantworten zu einer komprimierten Testantwort zu komprimieren.
-
Außerdem weist der Chip 300 eine Signaturerzeugungsschaltung 305 auf, die eingerichtet ist, abhängig davon, ob die Maskierungsdaten spezifizieren, dass die komprimierten Testantwort zu maskieren ist, basierend auf der komprimierten Testantwort eine Signatur zu erzeugen.
-
In anderen Worten werden Testantworten von mehreren Scanketten zusammengefasst (beispielsweise durch eine XOR-Kombination), so dass, beispielsweise für jeden Taktzyklus des Takts, mit dem die Scanketten getaktet werden, d.h. Daten in die Scanketten hinein und aus den Scanketten heraus geschoben werden, eine komprimierte Testantwort (z.B. ein Bit) erzeugt wird. Ein solches Bit kann, dann, beispielsweise wenn erwartet wird, dass eine der Scanketten zur Erzeugung des Bits einen X-Wert geliefert hat, ausgeblendet (oder maskiert) werden, d.h. vermieden werden, dass das Bit in die Ermittlung einer Signatur (beispielsweise durch ein MISR) eingeht. Das Ausblenden (oder Maskieren) erfolgt dabei nach der Komprimierung der Testantworten und kann Bitgenau erfolgen. In anderen Worten werden gemäß einer Ausführungsform die Testantworten der Scanketten nicht einzeln ausgeblendet und auch nicht Scanketten (über mehrere Taktzyklen, z.B. einen gesamten Testzyklus) pauschal maskiert sondern einzelne Bits in der komprimierten Testantwort maskiert.
-
Da der Chip eine Signatur ausgibt, die zur Testauswertung (z.B. Auswertung eines Pass/Fail Kriteriums) verwendet werden kann, kann ein Chip mit einer zu testenden Schaltung, die X-Werte erzeugt, mittels eines 1-Pin-Tests getestet werden.
-
Gemäß einer Ausführungsform ist jede Scankette eingerichtet, basierend auf der Verarbeitung der Testdaten eine Folge von Testantworten zu erzeugen und die Kompressionsschaltung ist eingerichtet, die von den Scanketten erzeugten Folgen von Testantworten zu einer Folge von komprimierten Testantworten zu komprimieren.
-
Beispielsweise spezifizieren die Maskierungsdaten welche komprimierten Testantworten der Folge von komprimierten Testantworten zu maskieren sind und die Signaturerzeugungsschaltung ist eingerichtet, die Signatur basierend auf den komprimierten Testantworten außer den zu maskierenden komprimierten Testantworten der Folge von komprimierten Testantworten zu erzeugen.
-
Gemäß einer Ausführungsform ist die Signaturerzeugungsschaltung eingerichtet, die Signatur basierend auf den komprimierten Testantworten, die nicht zu maskieren sind, und vorgegebenen Werten für die zu maskierenden komprimierten Testantworten der Folge von komprimierten Testantworten zu erzeugen.
-
Der Chip weist beispielsweise eine Maskierungsschaltung auf, die eingerichtet ist, die komprimierten Testantwort zu maskieren, wenn sie gemäß den Maskierungsdaten zu maskieren ist.
-
Das Maskieren einer Testantwort weist beispielsweise das Überschreiben der Testantwort mit einem vorgegebenen Wert auf. Alternativ könnte eine Testantwort maskiert werden, indem der Takt der Signaturerzeugungsschaltung (z.B. der MISR-Takt) zu dem Zeitpunkt, zu dem die Testantwort der Signaturerzeugungsschaltung zugeführt wird, deaktiviert wird.
-
Gemäß einer Ausführungsform weist der Chip einen Sicherheitsmodus auf, in dem die Maskierungsschaltung eingerichtet ist, die komprimierte Testantwort unabhängig von den Maskierungsdaten zu maskieren.
-
Der Chip weist beispielsweise eine Sicherheitsschaltung auf, die eingerichtet ist, den Sicherheitsmodus bei Eingabe eines vorgegebenen Schlüssels zu deaktivieren, so dass die Maskierungsschaltung die komprimierte Testantwort abhängig von den Maskierungsdaten maskiert.
-
Gemäß einer Ausführungsform weist der Chip eine Detektionsschaltung auf, die eingerichtet ist, zu detektieren, ob der Sicherheitsmodus deaktiviert ist, obwohl sich der Chip nicht in einem Testmodus befindet und, falls der Sicherheitsmodus deaktiviert ist, obwohl sich der Chip nicht in einem Testmodus befindet, ein Alarmsignal auszugeben.
-
Gemäß einer Ausführungsform ist die Maskierungsschaltung eingerichtet, vorgegebene komprimierte Testantworten der komprimierten Testantworten (die beispielsweise bei vorgegebenen Testzyklen auftreten) unabhängig von den Maskierungsdaten zu maskieren. Damit können bestimmte, beispielsweise sicherheitsrelevante Daten, geschützt werden.
-
Gemäß einer Ausführungsform weist der Chip eine Steuerschaltung auf, die eingerichtet ist, die Verarbeitung einer komprimierten Testantwort zur Erzeugung einer Signatur zu deaktivieren, wenn die komprimierte Testantwort zu maskieren ist.
-
Jede Testantwort ist beispielsweise ein Bit.
-
Das Komprimieren der Testantworten ist beispielsweise eine XOR-Kombination der Testantworten, so dass die komprimierte Testantwort ein Testantwort-Bit ist.
-
Die Maskierungsdaten weisen beispielsweise für jedes Testantwort-Bit einer Folge von Testantwort-Bits ein Bit auf, das angibt, ob das Testantwort-Bit zu maskieren ist.
-
Gemäß einer Ausführungsform sind die Scanketten eingerichtet, die Testdaten während mehrerer Taktzyklen eines Taktsignals zu verarbeiten und für jeden Taktzyklus des Taktsignals eine Testantwort auszugeben.
-
Die Kompressionsschaltung ist beispielsweise eingerichtet, für jeden Taktzyklus des Taktsignals die für den Taktzyklus von den Scanketten ausgegebenen Testantworten zu einer komprimierten Testantwort zu komprimieren.
-
Gemäß einer Ausführungsform weist die Schnittstelle einen Pin auf und ist eingerichtet die Testdaten und Maskierungsdaten über den Pin zu empfangen und die Signatur über den Pin auszugeben.
-
Gemäß einer Ausführungsform wird ein Verfahren zum Testen einer Verarbeitungskomponente eins Chips wie in 4 dargestellt bereitgestellt.
-
4 zeigt ein Ablaufdiagramm 400.
-
In 401 empfängt der Chip Testdaten und Maskierungsdaten.
-
In 402 erzeugt jede Scankette mehrerer Scanketten der Verarbeitungskomponente eine Testantwort basierend auf einer Verarbeitung der Testdaten durch die Scankette.
-
In 403 werden die von den Scanketten erzeugten Testantworten zu einer komprimierten Testantwort komprimiert.
-
In 404 wird eine Signatur basierend auf der komprimierten Testantwort abhängig davon erzeugt, ob die Maskierungsdaten spezifizieren, dass die komprimierte Testantwort zu maskieren ist.
-
Im Folgenden werden Ausführungsbeispiele genauer erläutert.
-
5 zeigt eine Testanordnung 500 gemäß einer Ausführungsform.
-
Die Testanordnung 500 weist einen Tester (Automatic Test Equipment, ATE) 501 sowie einen Chip 502 (der in diesem Beispiel als zu testende Vorrichtung (Device under Test, DUT) angesehen werden kann) auf.
-
Der Chip 502 weist eine Schnittstelle 503 auf, über die der Tester 501 dem Chip 502 Testdaten zuführen kann sowie von dem Chip 502 eine für die Testdaten erzeugte Signatur empfangen kann.
-
Der Chip 502 weist eine zu testende Schaltungauf. Die zu testende Schaltung 504 weist mehrere Scanketten 505 auf, sowie einen Kompaktor 506, beispielsweise in Form eines XOR-Gatters, das die Testantworten der Scanketten zu einer komprimierten Testantwort komprimiert.
-
Sind die Scanketten 505 mit Testdaten geladen, werden die Testdaten (in einer Erfassungsphase) verarbeitet und die Ergebnisse der Verarbeitung in den Scanketten 505 gespeichert. Die Ergebnisse der Verarbeitung werden dann bitweise aus den Scanketten 505 herausgeschoben und von dem XOR-Gatter 506 komprimiert. Somit gibt für jeden Taktzyklus eines Taktsignals, mit dem die Scanketten 505 getaktet sind, jede Scankette eine 1-Bit-Testantwort aus, die von dem XOR-Gatter 506 zu einem Bit komprimiert werden. Dabei führt ein X-Wert einer Testantwort einer Scankette zu einem X-Wert der komprimierten Testantwort.
-
Die 1-Bit-Testantwort wird einem UND-Gatter 507 zugeführt, mittels welchem die 1-Bit-Testantwort maskiert werden kann, bevor sie einem MISR 508 zugeführt wird. Hierzu werden die, beispielsweise vom einem ATPG-Tool vorab berechneten, Positionen der X-Werte in den Testantwortströmen der Scanketten verwendet, um die X-Werte für die Signaturberechnung durch den MISR 508 zu maskieren. Dadurch wird die Signatur deterministisch und kann beispielsweise für ein Pass/Fail-Kriterium beim At-Speed Scantest verwendet werden.
-
Gemäß einer Ausführungsform wird zunächst vorab ein Präprozess durchgeführt, der im Folgenden anhand des in 6 dargestellten Beispiels erläutert wird.
-
6 zeigt ein Beispiel für einen Testdatenstrom 601 (TDI für Test Data Input), einen Strom für erwartete (korrekte) komprimierte Testantworten 602 (d.h. einen erwarteten Scanausgangsdatenstrom oder erwarteten TDO (Test Data Output-Strom), einen Maskierungsdatenstrom 603 sowie einen kombinierten Test-Eingabestrom 604.
-
Für die Erzeugung des Test-Eingabestroms 604 dienen die vom ATPG-Tool berechneten Testdaten und die erwarteten Testantworten als Grundlage.
-
Zunächst werden die Positionen der X-Werte aus dem TDO-Datenstrom extrahiert. Wird für einen Taktzyklus als komprimierte Testantwort ein ‚X‘ erwartet, wird an der entsprechenden Stelle des Maskierungsdatenstroms eine ‚0‘ eingefügt. Wird hingegen für einen Taktzyklus als komprimierte Testantwort ein deterministischer Wert erwartet (‚0‘ oder ‚1‘), so wird an der entsprechenden Stelle des Maskierungsdatenstroms eine ‚1‘ eingefügt. Die so im Maskierungsdatenstrom kodierten Positionen der X-Werte werden zur Maskierung der X-Werte genutzt.
-
Dazu werden der TDI-Datenstrom und der Maskierungsdatenstrom zu einem kombinierten Test-Eingabestrom kombiniert, indem abwechselnd ein Maskierungsbit und ein Testbit eingefügt werden. Der Tester 501 führt dem Chip 502 den kombinierten Test-Eingabestrom mittels der Schnittstelle 503 (beispielsweise einem Eingabe/Ausgabeport des Chips mit möglicherweise nur einem Pin) zu.
-
Mittels der Schnittstelle 503 wird der Test-Eingabestrom einem Teststeuerungsblock 509 zugeführt. Der Teststeuerungsblock steuert den Scantest und enthält in diesem Beispiel die zu testende Schaltung 504, das UND-Gatter 507, um den TDO Datenstrom an Stellen, bei denen ein ‚X‘ erwartet wird, zu maskieren, und das MISR 508. Der Teststeuerungsblock enthält außerdem ein Register 510 zum Speichern des aktuellen Maskierungsbits, ein erstes Clock-Gate 511 und ein zweites Clock-Gate 512 zum Aufteilen des kombinierten Test-Eingabestroms in Testdaten (d.h. den ursprünglichen TDI-Testdatenstrom) und den Maskierungsdatenstrom sowie einen Zustandsautomaten (Finite State Machine FSM) 513 zur Ansteuerung der Clock-Gates 511, 512. Der Zustandsautomat 513 steuert das zweite Clock-Gate 512 mittels eines Inverters 514 an.
-
Der Zustandsautomat 513 gibt ein Enable-Signal aus, das dem Enable-Eingang des ersten Clock-Gates 511 zugeführt und dem Inverter 514 zugeführt wird. Das durch den Inverter 514 invertierte Enable-Signal wird einen Enable-Eingang des zweiten Clock-Gates 512 zugeführt.
-
Der Ausgang des ersten Clock-Gates 511 ist mit einem Enable-Eingang der zu testenden Schaltung 504 gekoppelt, so dass es, wenn es aktiviert ist, die Aufnahme eines Bits aus dem kombinierten Test-Eingangsdatenstrom durch die zu testende Schaltung 504 bewirkt.
-
Ähnlich ist der Ausgang des zweiten Clock-Gates 512 mit dem Takteingang des Registers 510 (in diesem Beispiel implementiert als D-Flip-Flop) gekoppelt, so dass es, wenn es aktiviert ist, die Aufnahme eines Bits aus dem kombinierten Test-Eingangsdatenstrom durch das Register 510 bewirkt.
-
Der Zustandsautomat 513 berechnet das Enable-Signal derart, dass durch die beiden Clock-Gates 511, 512 der kombinierte Test-Eingabestrom in den Testdatenstrom und den Maskierungsdatenstrom aufgespalten werden und der Testdatenstrom der zu testenden Schaltung 505 und der Maskierungsdatenstrom dem Register 510 zugeführt werden.
-
Dem UND-Gatter 507 wird vom der zu testenden Schaltung 505 die komprimierte Testantwort sowie von dem Register 510 das aktuelle Maskierungsbit zugeführt.
-
Das Register 510 ist beispielsweise ein D-Flip-Flop. Wie mit Bezug auf 6 erläutert, wird der kombinierte Test-Eingabestrom genau so erzeugt, dass das Register 510 immer genau die Maskierungsdaten für das nächste (d.h. das aktuelle) TDO-Bit speichert. Die TDI-Bits und Maskierungsbits sind in dem kombinierten Test-Eingabestrom je nach Offset zwischen den TDI-Bits und den (zugehörigen) TDO-Bits entsprechend verschoben.
-
In einer Ausführungsform, in dem die zu testende Schaltung 504 mehrere TDO-Ausgänge aufweist, d.h. mehrere Testantwort-Bits parallel ausgibt, können diese beispielsweise einzeln maskiert werden, indem ein entsprechend breites Register 510 zum Zwischenspeichern der Maskierungsbits vorgesehen wird.
-
Im Falle eines erwarteten ‚X‘-Werts im komprimierten Testantwortstrom gibt das Register 510 eine ‚0‘ aus, d.h. am Ausgang des UND-Gatters liegt unabhängig von der komprimierten Testantwort der Wert ‚0‘ an. Der X-Wert ist somit maskiert und der MISR 508 übernimmt eine ‚0‘. Im Falle eines erwarteten deterministischen Werts der komprimierten Testantwort führt das Register 510 dem UND-Gatter eine ‚1‘ zu, d.h. die komprimierte Testantwort ist unmaskiert und wird vom MISR 508 übernommen und in die Berechnung der Signatur einbezogen.
-
Die nach dem Testzyklus (oder auch mehreren derartigen Testzyklen) vom MISR 508 ermittelte Signatur gibt der MISR 508 über die Schnittstelle 503 an den Tester 501 aus, der die ermittelte Signatur beispielsweise zur Überprüfung eines Pass/Fail-Kriteriums für den Chip 502 verwendet.
-
Anstelle eines UND-Gatters kann jeder Gattertyp mit einem kontrollierenden Wert verwendet werden (z.B. ein NICHT-UND-Gatter, ein ODER-Gatter oder ein NICHT-ODER-Gatter). Hierzu kann der Präprozess entsprechend angepasst werden. Anstelle des UND Gatters 507 zur Maskierung von X-Werten im komprimierten Testantwortstrom kann auch ein weiteres Clock-Gate verwendet werden, das den MISR deaktiviert (d.h. die Taktsignalzufuhr zum MISR 508 wird deaktiviert), sobald im komprimierten Testantwortstrom ein X-Wert erwartet wird.
-
Gemäß weiteren Ausführungsformen lässt sich außerdem die Sicherheit des Chips 502 vor Angriffen erhöhen.
-
Gemäß einer Ausführungsform wird beispielsweise der unbefugte Zugriff auf eine Signatur unterbunden, indem die Freigabe der Maskierung verschlüsselt wird. Beispielsweise gibt das Register 510 in seinem Anfangszustand eine ‚0‘ aus (ist beispielsweise mit einer Null initialisiert). Das Clock-Gate 512, welches den Eingangstakt des Registers 510 steuert, wird von dem Zustandsautomat FSM 513 nur dann freigeschaltet (aktiviert), wenn dem Zustandsautomat zuvor ein korrekter Schlüssel zugeführt wurde, der beispielsweise wiederum dem Chip 502 zugeführt werden muss.
-
Stimmt der Schlüssel nicht mit einem im Chip 502 gespeicherten Referenzschlüssel überein, aktiviert der Zustandsautomat 513 nicht das Clock-Gate und das Register 510 wird somit nicht geschaltet, wodurch der komprimierte Testdatenstrom permanent maskiert ist. Liest ein Angreifer in diesem Fall die Signatur aus, erhält er somit lediglich ihren Initialzustand.
-
In einer weiteren Ausführungsform ist beispielsweise die Steuerungsleitung zur Maskierung des komprimierten Testantwortstroms, d.h. die Leitung zwischen dem Ausgang des Registers 510 und dem UND-Gatter 510 mit einem Alarmsignal verbunden. Wenn die Maskierung deaktiviert wird (d.h. das Register 510 dem UND-Gatter 510 eine ‚1‘ zuführt), aber sich der Chip 502 nicht im Scan-Modus (Testmodus) befindet (sondern z.B. im Usermode oder im In-Field-Mode), so liegt, da die Maskierung beispielsweise per Voreinstellung aktiviert ist, eine unerlaubte Nutzung vor. Beispielsweise werden ein Signal, das den Modus des Chips repräsentiert und das Ausgangssignal des Registers 510 mittels eines Logikgatters zu einem Alarm-Signal verknüpft, das, wenn es aktiv ist, ein oder mehrere Schaltkreise des Chips 502 deaktiviert. Hierdurch kann eine missbräuchliche Nutzung der Scantest-Funktionalität des Chips 502 verhindert werden.
-
Gemäß einer weiteren Ausführungsform wird der Zustandsautomat 513 derart erweitert, dass ein zusätzliches Ausgangssignal des Zustandsautomaten 513, welches mit dem Maskierungsdatenstrom verknüpft wird, einen X-Zustand für kritische Werte erzwingt. Wenn beispielsweise kritische Elemente der zu testenden Schaltung Information in Richtung MISR 508 ausgeben, so maskiert der Zustandsautomat 513 durch entsprechendes Setzen der Maskierungsdaten mittels des zusätzlichen Ausgangssignals diese aus. Hiermit kann chipintern gesichert werden, dass kritische Informationen nicht in die Testantworten und die Signatur gelangen und damit auch nicht über die Schnittstelle 503 ausgegeben werden. Dies kann insbesondere für Elemente der zu testenden Schaltung erwünscht sein, welche kryptographische, geheime Schlüssel oder Daten enthalten oder verarbeiten. Werden von solchen Elementen Informationen beispielsweise in bestimmten Taktzyklen ausgegeben (und würden somit in die Signatur eingehen), so könnte der Zustandsautomat für diese Takte ein Ausmaskieren der Testantworten erzwingen und somit die Informationen zusätzlich sichern. Hierzu kann der Zustandsautomat 513 beispielsweise einen entsprechenden Zähler enthalten und die Maskierungsdaten für die entsprechenden Taktzyklen entsprechend (in diesem Beispiel auf den Wert ‚0‘) setzen.
-
Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.