Mit der ständig wachsenden Komplexität elektronischer Schaltungen und der zunehmenden Verwendung von BGA-Gehäusen wird die Überprüfung der fehlerfreien Montage immer wichtiger. Eine Möglichkeit ist der Boundary-Scan-Test, der eine automatisierte Methode zur Überprüfung der Funktionsfähigkeit, korrekten Anordnung und Lötfehlerfreiheit von Komponenten bietet, ohne dass Software auf der Platine ausgeführt werden muss.

Eck-DATEN

Die aktuelle Generation von Speichervorrichtungen wie DDR4 und GDDR6 enthalten interne Schaltkreise, die eine schnelle und effiziente Methoden zur Bestätigung der ordnungsgemäßen Platzierung des Bauteils auf der Platine, deren Funktion und eventuelle Lötfehler wie Kurzschlüsse, Drahtbruch oder Haftfehler bieten. Diese Konnektivitätstestmodi haben zu einer Verkürzung der Überprüfungszeit der Komponenten geführt, da während des Tests nicht mehr in die Speicherzellen geschrieben und gelesen werden muss.

Als Jedec-Standards für GDDR5- und DDR4-Speicher veröffentlicht, definieren sie integrierte Testfunktionen, die mit diesen Systemen zusammenarbeiten, um eine schnelle Prüfung auf Montagefehler zu unterstützen. Solche Verfahren können durch frühzeitiges Erkennen von Problemen viele Arbeitsstunden verhindern und sind auf den ersten Prototyp-Platinen ebenso anwendbar wie auf die Serienproduktion. Das Streben nach Unterstützung dieser Art von In-Circuit-Tests wurde in der neuesten GDDR6-Spezifikation fortgesetzt, die Ende 2018 veröffentlicht wurde.

DDR4-Konnektivitätstestmodus

Größere DDR4-Speicher beinhalten eine Testfunktion, mit der die Konnektivität der Pins überprüft werden kann. Wenn der Test Enable (TEN)-Eingang aktiviert wird, werden die Speicherzellen umgangen und die Funktionalität der Pins geändert: Viele werden zu Eingaben, die ein interner asynchroner Logikbaum kombiniert, um Ausgänge an anderen Pins zu erzeugen. Durch Anwenden einer Reihe verschiedener Testmuster und Lesen der resultierenden Ausgänge kann bestätigt werden, dass die Nicht-Power-Pins frei von Drahtbruch, Kurzschlüssen oder Haftfehlern sind. Wenn ein Fehler gefunden wird, ermöglicht eine sorgfältige Auswahl der Eingabemuster sogar den Fehler auf einem bestimmten Netz zu lokalisieren.

Der Vorteil dieses Verfahrens besteht darin, dass der Test durchgeführt wird, ohne dass die Speicherzellen selbst geschrieben oder gelesen werden müssen, was einen schnellen Ablauf ermöglicht.

Zugang über JTAG erhalten

Boundary Scan

Bild 1: DDR4 Konnektivitätstest. Eine PC-basierte Software kann den TEN-Pin des Speichers steuern und die erforderlichen Testvektoren anwenden. XJTAG

Die einfachste Möglichkeit für eine PC-Anwendung diese Testsequenzen anzuwenden und die resultierenden Ausgaben zu bewerten, ist die Verwendung von Boundary-Scan-Techniken, da dies selten Änderungen an der Leiterplatte erfordert. In den meisten Designs sind die DDR4-Pins bereits zu einem Prozessor oder einer FPGA geroutet, die sehr wahrscheinlich Boundary-Scan-Fähigkeiten haben. Um einen Konnektivitätstest einzuleiten versetzt ein PC, der über den JTAG-Port angeschlossen ist, den Prozessor oder die FPGA in den JTAG-Testmodus. Dies isoliert die Nicht-Power-Pins von ihrer normalen Funktionalität und verbindet sie stattdessen intern mit einem Boundary-Scan-Register. Auf diese Weise kann der PC die an diese Pins angeschlossenen Netze steuern (Bild 1). Eine PC-basierte Software kann dann den TEN-Pin des Speichers steuern und die erforderlichen Testvektoren anwenden. Die resultierenden Ausgänge werden in das Register zurückgelesen und dann seriell aus dem JTAG-Port der Platine getaktet, damit die PC-Software sie analysieren kann. Dies alles kann ohne die Notwendigkeit einer Software auf der Platine geschehen und eignet sich daher für frühe Prototypen, bevor der Code geschrieben wurde.

Die einfache Steuerung wird automatisch von einer PC-Software ausgeführt, die importierte Stück- und Netzlisten verwendet, um den gesamten Vorgang einfach und benutzerfreundlich zu gestalten.

Praktische Einschränkungen des DDR4-Konnektivitätstestmodus

Während der Testmodus eine willkommene Erweiterung zur DDR-Spezifikation darstellt, weist der Ansatz zur Bestimmung, welche Pins Ein- und welche Ausgänge sind, Beschränkungen auf. Beispielsweise werden die DQS_t- und DQS_c-Leitungen des Speichers im Testmodus als zwei separate Ausgänge verwendet. Da sie bei normaler Verwendung ein differenzielles Paar bilden, sind die Pins der JTAG-Komponente, mit denen sie verbunden sind, häufig im differenziellen Modus festgelegt und können daher auch im Boundary-Scan-Modus nicht als zwei unabhängige Logikeingänge gelesen werden.

Diese Art der Einschränkung und die Tatsache, dass diese Funktion bei DDR4-Komponenten mit geringerer Kapazität nicht zwingend vorgeschrieben ist, hat einige Benutzer enttäuscht. Es wird sich zeigen, wie die DDR5-Spezifikation von Jedec aktualisiert werden wird.

GDDR5-Scan-Testmodus

Während GDDR5 (Graphics DDR, nicht DDR5) auch eine Methode zur Überprüfung der Konnektivität enthalten, unterscheiden sie sich von der in DDR4 verwendeten Methode, da keine interne Logik zum Kombinieren von Eingängen verwendet wird: Wenn der Scan Enable-Pin (SEN) aktiviert ist, sind die Power-Pins von ihrer normalen Funktionalität isoliert und stattdessen mit einem internen Boundary-Scan-Register verbunden. Testmuster werden über den parallelen Datenbus der Komponente an dieses Register gesendet und auf seine Pins angewendet. Die tatsächlichen Zustände dieser Pins werden erfasst und seriell aus dem Scan-Out-Pin des Speichers herausgetaktet. Gleichzeitig scannt die JTAG-Komponente, mit dem sie verbunden ist, das andere Ende der Spuren. Alle Unterschiede zwischen dem gesendeten Muster, dem zurückgelesenen Muster und dem, was am Ende der JTAG-Komponente angezeigt wird, weisen auf Verbindungsfehler hin. Wenn dies mit verschiedenen Mustern wiederholt wird, werden alle Non-Power-Pins überprüft.

Wie bei DDR4 wird der Speicherchip für die Dauer dieses Tests von der JTAG-fähigen Komponente gesteuert, an die er bereits angeschlossen ist. Diese Komponente wird in den Boundary-Scan-Modus versetzt und die relevanten Bits seines Boundary-Scan-Registers werden zur Steuerung des Speichers, der Verbindung zum Bus und der Eingabe für die Scan-Out-Daten. Informationen werden zwischen der JTAG-Komponente und dem PC mit dem Testanschluss der Platine übertragen.

Bei dieser Testmethode gelten weniger Einschränkungen als bei der DDR4-Implementierung, da die vier Pins, die zur Steuerung der Scanfunktion verwendet werden, auf Signale gemultiplext werden, die im normalen Gebrauch als Standard-Logikeingänge definiert sind (Scan Enable, Reset, Chip Select und Mirror Function). Es muss jedoch beachtet werden, dass ein Schaltungsdesigner die Scan Enable- oder Mirror-Funktion nicht nur an feste Spannungen binden sollte, sondern sie an die Pins einer JTAG-Komponente weiterleitet, damit sie ihren Standardzustand überschreiben können, wenn sie sich im Boundary-Scan-Modus befindet.

GDDR6-Boundary-Scan-Testmodus

Boundary Scan

Bild 2: GDDR6 Boundary Scan. Testmuster werden nicht über den Datenbus geladen, sondern mit JTAG seriell durch die Boundary-Scan-Register getaktet. XJTAG

Der GDDR6-Standard ermöglicht den IEEE 1149.1-kompatiblen Boundary-Scan für diese Komponenten. Im Gegensatz zu GDDR5 werden Testmuster nicht über den Datenbus geladen, sondern mit JTAG seriell durch die Boundary-Scan-Register getaktet. Die zwei Speicherkanäle haben eigene Register, wobei ihre einzelnen Datenpfade sequenziell miteinander verbunden sind (Bild 2). Wie bei allen Boundary-Scan-Techniken werden die Pins, wenn der Speicher in den Testmodus versetzt wird, von ihrer normalen Funktionalität isoliert und verbinden sich stattdessen mit den im Diagramm gezeigten Boundary-Scan-Registern. Eine Reihe sorgfältig ausgewählter Testvektoren werden über eine JTAG-Verbindung in diese Register getaktet und die resultierenden Zustände der Speicherpins sowie die der anderen Komponenten, auf die über JTAG zugegriffen werden kann, werden überprüft, um sicherzustellen, dass sie sich wie erwartet verhalten. Auf diese Weise ist es wiederum möglich, Montagefehler an den Speicherverbindungen zu überprüfen und das betroffene Netz zu identifizieren.

Bei GDDR6 ist daher keine Schnittstelle über eine JTAG-Komponente erforderlich, sondern JTAG kann direkt an den Speicher angeschlossen werden. Da es sich um eine reine Boundary-Scan-Komponente handelt, kann diese auch verwendet werden, um den Status aller Netze, mit denen sie verbunden ist, abzutasten, wodurch die Kontinuität von anderen Komponenten auf der Platine überprüft wird. Aufgrund der Kompatibilität mit IEEE 1149.1 kann eine Kette aufgebaut werden, die den Prozessor oder die FPGAs des Boards, den GDDR6-Speicher und alle anderen JTAG-fähigen Komponenten umfasst, wodurch das Testen der gesamten Platine vereinfacht wird.

LPDDR4 und DDR3 testen

Das Verfahren zum Testen von Komponenten wie LPDDR4 oder DDR3, die nicht über eine integrierte Testfunktion verfügen, erfordert das Anwenden der Adress- und Datenbusse, um in den Speicher zu schreiben und diese anschließend zurückzulesen. Dies geschieht, indem die JTAG-Komponente, mit dem der Speicher verbunden ist, in den Boundary-Scan-Modus versetzt wird und die einzelnen Leitungen des Busses so manipuliert werden, dass die normalerweise an der Schnittstelle verwendeten Lese- und Schreibzyklen simuliert werden. Auf diese Weise werden Testmuster auf die Adress- und Datenbusse und die Steuerpins des Speichers angewendet.

Ein sorgfältiger Entwurf dieser Testmuster ermöglicht nicht nur einen Baugruppenfehler zu erkennen, sondern auch das betroffene Netz zu identifizieren. Diese Testmethode ist langsamer als die integrierten Konnektivitätstestfunktionen von DDR4- und GDDR5/6-Speichern aufgrund der erforderlichen wiederholten Lese-/Schreibzyklen des Speichers, erzielt jedoch eine identische Testabdeckung.

Aufbewahrungszeit- und Aktualisierungsanforderungen

Die Datenaufbewahrungszeit des Speichers ist relevant, wenn über die Verwendung des Boundary-Scans für DDR-Speicher gesprochen wird, da die internen Aktualisierungszyklen nicht stattfinden. Der Jedec-Standard legt fest, dass DDR-Teile über den Betriebstemperaturbereich eine Verweildauer von mindestens 64 ms aufweisen müssen. Das Schreiben eines Wortes in den Speicher mittels Boundary-Scan erfordert häufig zwanzig vollständige Scans. Da es normalerweise zwischen 0,2 und 2 ms dauern kann, um einen Scan durchzuführen, benötigt jeder Schreibzyklus im Allgemeinen zwischen 4 und 40 ms. Ein vollständiger Test kann daher 64 ms überschreiten. In der Praxis weisen Komponenten jedoch Retentionszeiten auf, die weit über diese Spezifikationsgrenze hinausgehen. Studien haben gezeigt, dass selbst die am weitesten entfernten Zellen eine Datenretention von mehr als einer Sekunde bei Raumtemperatur aufweisen, was für die Boundary-Scan-Anforderungen vollkommen ausreicht.

Hochgeschwindigkeitstest

Im Vergleich zu der Geschwindigkeit, mit der DDR läuft, kann das Boundary-Scan-Testen als Gleichstrom (DC) betrachtet werden. Dies hat den Vorteil, dass Mikrorisse in den Lötstellen erkannt werden können, die bei Hochgeschwindigkeitstests aufgrund von kapazitiven Effekten möglicherweise nicht vorhanden sind, sodass ein Hochfrequenzsignal an einer Stelle passieren kann, wo Gleichstrom nicht möglich ist. Solche Risse können zu Ausfällen führen, wenn sie sich thermisch ausdehnen/zusammenziehen und oxidieren.

Neben der Ausführung eines Boundary-Scans kann es jedoch von Vorteil sein, einen Hochgeschwindigkeitstest durchzuführen, da sich Signale bei MHz-Taktfrequenz unterschiedlich verhalten können. Eine einfache Möglichkeit dies zu erreichen besteht darin, Test-Firmware in den Prozessor oder die FPGA zu laden, der mit dem Speicher verbunden ist, um die Schreib-/Lesezyklen direkt auszuführen, anstatt über Boundary-Scan-Register zu gehen. Testmuster werden jetzt mit hoher Geschwindigkeit über die normalen Busse geladen und gelesen, wodurch ein Test mit hoher Geschwindigkeit ausgeführt wird. Der Nachteil ist, dass prozessorspezifische Software geschrieben werden muss, während der Boundary-Scan-Test dies nicht erfordert.

DDR4-Speichermodule (DIMMs)

Obwohl DDR4-DIMMs möglicherweise aus Speichern mit TEN-Steuereingängen bestehen, werden diese Signale nicht an den Anschluss geleitet. Wenn also automatisierte Tests an Baugruppen mit DIMMs durchgeführt werden, kann der DDR4-Verbindungstestmodus nicht verwendet werden. In diesem Fall ist es erforderlich mit Standard-Boundary-Scan-Verfahren zu testen, wie für DDR3 beschrieben.

Schlussfolgerungen

Bei der Entwicklung einer Leiterplatte, die Speicher mit einer internen Testfunktion enthält, wird dringend empfohlen, dass die Test-/Scan-Freigabe und andere Steuersignale an die E/A-Pins einer JTAG-fähigen Komponente oder an einen Testheader geleitet werden. Auf diese Weise ermöglicht der Designer die Verwendung automatisierter Konnektivitätstests, die bei ersten Prototypen und in der Massenproduktion viele Stunden Debug-Zeit einsparen können.