Boundary-Scan wird in der Produktion heutiger Leiterplatten immer wichtiger, da diese meist dicht bestückt sind und herkömmliche In-Circuit-Testverfahren an ihre Grenzen stoßen. Darüber hinaus sorgt die Geschwindigkeit der Komponenten für Probleme bei der Auskopplung der Messsignale. Bild 1 zeigt eine typische bestückte Leiterplatte mit etlichen BGA-Bauteilen und eingelöteten DDRs. Mittels Boundary-Scan erreicht man 64,3 Prozent der Messpunkte. Die restlichen sind für einen herkömmlichen In-Circuit-Test zugänglich. Dieses Beispiel zeigt, dass man in der Produktion mit einer Kombination von In-Circuit-Test und Boundary-Scan eine gute Testabdeckung erreichen kann, wenn man beim Design von vornherein berücksichtigt, dass die bestückte Leiterplatte auch prüfbar sein muss.

DDR-testfreundliches Design

Auf einer Leiterplatte für einen Computer oder ein Netzwerkgerät können viele DDRs eingebaut sein, entweder eingelötet oder in Form von DIMMs (Bild 2). Man kann diese DDRs nicht mehr mit herkömmlichem In-Circuit-Test prüfen. Sie arbeiten mit schnellen differenziellen Taktsignalen, und der Leiterplatten-Designer kann keine Messpunkte mehr vorsehen. Bild 3 zeigt, wie man einen DDR-Baustein ohne eigene Boundary-Scan-Funktion dennoch derart prüfen kann. Die dazu eingesetzte Technik nennt man „Silicon-Nail-Test“. Dabei treiben Boundary-Scan-Register in einem anderen Baustein die notwendigen Signalleitungen, initialisieren den DDR und führen Schreib- und Lesezyklen durch.

Für Adress- und Steuerleitungen reichen Ausgangsregister, für Datenleitungen braucht man bidirektionale Register. Die Boundary-Scan-Register schreiben ein Datenmuster in die angewählte Zeilen/Spaltenadresse und können diese auch wieder zurücklesen. Damit dies funktioniert, sind Bedingungen zu erfüllen: So müssen Steuer-, Daten- und Adressleitungen des DDR-Bausteins an einen Boundary-Scan-fähigen Baustein angeschlossen sein. Zudem müssen die Bankadresse, die Adressleitungen und andere Steuersignale (Takt, Taktfreigabe, Chipanwahl, Schreiben/Lesen, Spaltentakt und Zeilentakt) mit einem Boundary-Scan-Ausgangsregister verbunden sein. Diese Leitungen geben Daten zum DDR-Baustein aus. Auch ist es notwendig, dass die Datenleitungen und Datenstrobe des DDR-Bausteins mit einem bidirektionalen Boundary-Scan-Register verbunden sind, denn auf diesen Leitungen werden Daten zum Speicher gesendet und von ihm empfangen.

Entwicklung einer Bibliothek für DDR3-Bausteine

Will man DDR-Speicher mit einem Boundary-Scan-Analysator x1149 von Keysight Technologies (vormals Agilent) testen, braucht man dazu eine passende Bibliothek. Eine solche digitale Bibliothek besteht aus verschiedenen Abschnitten. Mit dem Abschnitt „Zuweisungen“ ist jedes Signal weiterhin als „Eingang“, „Ausgang“, „bidirektional“, „Stromversorgung“ oder „nicht-digital“ beschrieben. Wenn möglich, sollte auch angegeben sein, wie man die Ausgänge und bidirektionalen Leitungen hochohmig schalten kann. Diese Information nutzt der Testprogrammgenerator dazu, Upstream-Bauteile bei Bedarf abzuschalten. Als nächstes kommt die „Vektordefinitionen“: Dieser Abschnitt enthält die Signalmuster, die während des Tests an das zu testende Bauteil geschickt werden. Üblicherweise findet man Details dieser Vektoren in den Zeitdiagrammen im Datenblatt des Bauteils. Darauf folgt die „Vektor- oder Unit-Ausführung“. Dieser Abschnitt legt die Abfolge der Ausführung der Vektoren in den Units fest (Units sind Abfolgen mehrerer Vektoren). Mit folgenden Schritten erzeugt man aus einem DDR3-Zustandsdiagramm eine DDR3-Bibliothek (Siehe Zustandsdiagramm in Bild 4):

  • 1. Man deklariert die Pins des DDR3 im Abschnitt „Zuweisung“ der Bibliothek:
    a. Hersteller und Teilenummer des DDR3-Bausteins auf der Leiterplatte prüfen.
    b. Im Datenblatt des Bauteils findet man Details zum Gehäuse und zu den einzelnen Pins.
    c. Pins des DDR3 mit Namen versehen und erläutern.
  • 2. Im Abschnitt „Zuweisung“ wird der Typ der einzelnen Pins zugewiesen. Details stehen im Datenblatt des Bausteins.
  • 3. Im Abschnitt „Zuweisung“ steht auch, wie man die Ausgangs- und bidirektionalen Leitungen des DDR3-Bausteins abschalten kann (also die Datenleitungen (DQ) und den Daten-strobe (DQS)).
  • 4. Definition der Vektoren.
  • 5. Unterprogramme schreiben, um die Ausführung der Vektoren zu vereinfachen.
  • 6. Vector/Unit-Ausführung.

Drei einfache Schritte erlauben es, einen Test für einen DDR3-Speicher im Boundary-Scan-Analysator Keysight x1149 zu entwickeln (Bild 5): Erstens definiert man das DDR3-Bauteil, das man mittels Silicon-Nail testen will, und trägt seine Bezeichnung in die Spalte „Teilenummer“ ein. Danach klickt man auf die Spalte „Silicon Nail“. Als zweites öffnet man die DDR3-Bibliothek. Wenn die Teilenummer in ihr enthalten ist, erscheint in der Spalte „Bibliothek“ der Schriftzug „Pin“. Im dritten Schritt generiert man schließlich den DDR3-Silicon-Nail-Test.

Debugging eines DDR-Tests

Beim Debuggen eines DDR3-Tests sind einige wesentliche Punkte zu beachten. Zunächst muss sichergestellt werden, dass alle Bauteile upstream des DDR3-Speichers ausgeschaltet sind (mit Ausnahme der Boundary-Scan-Bauteile). Zudem gilt es vor dem Debuggen des Silicon-Nail-Tests abzuklären, ob die Boundary-Scan-Tests Infrastruktur und Interconnect erfolgreich abgelaufen sind. Darüber hinaus sollten die Flankenzeiten von TCK sowie TCK, TMS, TDI und TRST sollten zur Spannung der Bauteilfamilie der Boundary-Scan-Bauteile passen. Auch müssen in der DDR3-Bibliothek Disable DLL, Read Latency und Data Strobe und es ist sicherzustellen, dass die folgenden Daten korrekt deklariert sind.

Mit der Funktion „Autobank“ lassen sich mehrere DDR-Bausteine gleichzeitig testen. In Bild 6 ist dargestellt, wie das Verfahren mit zwei DDR3-Bausteinen funktioniert. Die Methode Autobank reduziert die Testzeit beim Silicon-Nail-Test auf einen Bruchteil der Zeit reduziert, abhängig davon, wie viele Speicherbausteine parallel getestet werden können. Ein Autobank-Test lässt sich mit dem Boundary-Scan-Analysator Keysight x1149 automatisch per Software erzeugen. Der Anwender wählt hierzu den DDR3-Speicher im Abschnitt „Device“ an und klickt auf „Autobank“. Die Software erledigt dann den Rest, sie erzeugt den Test und auch die Autobank-Bibliothek, basierend auf der Bibliothek des Bauteils.

Vollständige Testabdeckung

DDR3- und LPDDR3-Bausteine ohne eigene Boundary-Scan-Funktion, die aber an einen Baustein mit Boundary-Scan angeschlossen sind, lassen sich mit dem Boundary-Scan-Analysator Keysight x1149 testen. Silicon-Nail- und Autobank-Tests decken die Testanforderungen ab und bieten die erforderliche Testabdeckung im Prototyp-Stadium, bei der Produkteinführung und in der Produktion.

electronica 2014: Halle A1, Stand 506