Halbleiter-Test 10 Tipps für Boundary-Scan

Wie lassen sich elektronische Schaltungen optimieren, um die Testbarkeit per Boundary-Scan wesentlich zu verbessern? Wir zeigen Ihnen 10 Design-Verfahren, mit denen sich die Fehlerabdeckung erhöhen und die Vorteile des Boundary-Scan-Tests voll nutzen lassen.

Um sicherzustellen, dass hochwertige Produkte hergestellt werden, müssen sich die Ingenieure heute bereits sehr frühzeitig Gedanken über geeignete Teststrategien machen, und zwar noch bevor sie sich mit der Erstellung des Schaltplans beschäftigen. Das in IEEE 1149.1 beschriebene Boundary-Scan-Verfahren kann die Ingenieure dabei im Hinblick auf unterschiedlichste Testanforderungen unterstützen.

Um die Vorteile des Boundary-Scan-Tests voll nutzen zu können, darf Boundary-Scan allerdings nicht als optionale Erweiterung betrachtet werden, sondern muss von Anfang an im Design berücksichtigt werden. Die nachfolgenden Tipps beschreiben Design-Verfahren für elektronische Schaltungen, mit denen die Fehlerabdeckung erhöht und die Testbarkeit verbessert werden kann. Diese Verfahren sparen nicht nur Zeit und Aufwand während der Tests in Prototyping und Design, sondern ebenso im Produktionstest.

1. Aufteilung der Scan-Ketten

Bislang herrscht noch immer die Meinung vor, dass für einen Verbindungstest alle Boundary-Scan-Bauteile in einer einzigen Scan-Kette zusammengeschaltet werden sollten. Durch eine Aufteilung in kompatible Logikfamilien lassen sich aber beispielsweise Pegelumsetzer vermeiden.

Moderne Boundary-Scan-Hardware erlaubt eine individuelle Programmierung der Ausgangs- und Eingangspegel des TAP (Test Access Port). In einigen Fällen ist ein Zugriff auf ein einzelnes Bauteil notwendig, um zum Beispiel Emulatoren und Debugger von externen Anbietern zu unterstützen, oder um die Programmierung von Flash-Speichern zu optimieren. Durch eine Aufteilung in mehrere Boundary-Scan-Ketten wird auch beim Einsatz eines automatischen Testmustergenerators (ATPG) nicht die Testabdeckung reduziert. Dieser muss allerdings eine beliebige Anzahl von Scan-Ketten unterstützen, und die Ketten einzeln oder parallel während eines Tests bedienen können.

2. Auswahl Boundary-Scan-fähiger Bauteile

Der Erfolg des Boundary-Scan Tests hängt direkt von der Implementierung der Teststrukturen in den ICs ab. Somit sollten wenn möglich nur Bauteile eingesetzt werden, die schon Boundary-Scan-Möglichkeiten beinhalten. Bei der Auswahl von Boundary-Scan-Bauteilen sollten zudem folgende Punkte berücksichtigt werden:

  • Hat der Anbieter hat die Boundary-Scan-Beschreibungssprache BSDL-Datei (Boundary-Scan Description Language) des ICs elektrisch hinsichtlich der Genauigkeit und Konformität überprüft? Ein Bauteil, das nicht IEEE 1149.1 entspricht, kann beim Test Probleme verursachen und nicht für den Boundary-Scan-Test zugreifbar sein, was die erwartete Testabdeckung drastisch reduzieren kann. In den Header-Informationen einer BSDL-Datei kann die Verifikation von Syntax, Semantik oder elektrischen Merkmalen dokumentiert sein. Auch die Anbieter von Boundary-Scan-Werkzeugen geben Auskunft, ob andere Anwender ein bestimmtes IC bereits erfolgreich in einem Boundary-Scan-Test eingesetzt haben.
  • Unterstützt das Bauteil optionale Boundary-Scan-Anweisungen wie HIGHZ und CLAMP? - Diese Anweisungen können in Flash-Programmieranwendungen und einigen anderen Test äußerst nützlich sein.
  •  Benötigt das Bauteil spezielle Testpattern oder externe Logikverbindungen, um das Bauteil in den Boundary-Scan-Testmodus zu bringen? - Einige Boundary-Scan-Bauteile verfügen über einen oder mehrere Pins, die auf einen bestimmten Logikstatus gebracht werden müssen, damit das Bauteil in den 1149.1 Modus geht. In einem solchen Fall müssen die Entwickler externe Logik implementieren, um in der Schaltung die richtigen Voraussetzungen für die Durchführung der Tests zu gewährleisten. Die Entwickler sollten die BSDL-Datei im Hinblick auf COMPLIANCE_PATTERNS überprüfen, die derartige Bedingungen beschreiben.

3. Sicherstellen, dass die Bauteile 1149.1 voll unterstützen

Einige Bauteile, wie DSP-ICs und Mikrocontroller, verfügen zwar über einen JTAG-TAP für das Debugging oder die Programmierung von Flash-Speicher, aber dieser TAP eignet sich nicht für einen Boundary-Scan-Test. In diesen Fällen bezeichnen die Anbieter diese Bauteile oftmals als IEEE 1149.1-kompatibel und nicht als IEEE 1149.1-konform. Das Datenblatt des DSP-ICs TMS320C203 von Texas Instruments führt zum Beispiel auf, dass dieses Bauteil zwar einen TAP-Anschluss hat, aber kein Boundary-Register, so dass es Boundary-Scan-Tests nicht unterstützt.

Zu weiteren Komplikationen kann es bei Bauteilen mit Mehrzweck-TAPs kommen. Der Prozessor MPC860 von Freescale nutzt zum Beispiel die JTAG-TAP-Pins auch für den BDM-Port (Background Debug Mode). Wenn der TAP im BDM-Modus arbeitet, können diese Pins nicht als JTAG-TAP-Pins genutzt werden, so dass die Boundary-Scan-Kette für vor- und nachgelagerte Bauteile unterbrochen wird. er BDM-Port ist damit weder konform, noch kompatibel zu IEEE 1149.1. Es gibt aber auch Bauteile, die im BDM arbeiten können, ohne die TAP-Pins zu beeinflussen.

Beim MPC860 ist dies mit Hilfe des Hard Reset Configuration Word möglich. Dabei werden während eines Hard Reset bestimmte Werte auf den Datenbus gelegt und die TAP-Pins dadurch in den JTAG-Modus gezwungen. Hierzu müssen die Bits 11 und 12 auf logisch 01 oder 11 gesetzt werden, wogegen 00 die Voreinstellung während eines Hard Reset darstellt. Um sicherzustellen, dass diese Bits korrekt auf dem Datenbus des MPC860 anliegen, lassen sich Kurzschlussbrücken oder ein CPLD mit einer speziellen Testprogrammierung verwenden (Bild 1).

Beim Einsatz von komplexen programmierbaren Logikbauteilen (CPLD) sollten diese daher in eine Boundary-Scan-Kette integriert werden, die keinen MPC860 enthält. Wenn beide Bauteile in die gleiche Kette eingebunden sind, kann das CPLD nicht programmiert werden, während der MPC860 im BDM-Modus arbeitet.