Ground Bounce – die Pest des Testens?

Unter der Bezeichnung „Ground Bounce“ ist ein Phänomen bekannt, das die chipinterne Anhebung des Massepegels beschreibt und den Test von komplexen Bauelementen und Boards erschwert. Doch dieses Problem lässt sich lösen – wenn man das JTAG/Boundary-Scan-Verfahren mit dem richtigen Tool nutzt.

Unter der Bezeichnung „Ground Bounce“ ist ein Phänomen bekannt, das die chipinterne Anhebung des Massepegels beschreibt und den Test von komplexen Bauelementen und Boards erschwert. Doch dieses Problem lässt sich lösen – wenn man das JTAG/Boundary-Scan-Verfahren mit dem richtigen Tool nutzt.

Der technologische Fortschritt bei neuesten Chipgenerationen und die Weiterentwicklung der Gehäusebauformen zu µB-µAs, COB-, Flip-Chip- und vielen anderen „Packages“, z.T. mit Pinabständen von unter 0,4 mm, führen dazu, dass immer mehr Schaltungs-Knotenpunkte auf einer Baugruppe untergebracht werden können, wobei gleichzeitig die beim elektrischen Testen notwendige Fläche für die mechanische Kontaktierung deutlich abnimmt. Gleichermaßen werden Leiterbahnen mittlerweile in inneren Lagen der Platine untergebracht, und selbst Multilayer-Boards mit mehr als 20 Lagen sind heutzutage keine Seltenheit mehr. Das klassische Verfahren des „In-Circuit-Tests“, bei dem eine Baugruppe per Nadelbettadapter kontaktiert wird, stößt daher an seine Grenzen.

Das JTAG/Boundary-Scan-Testprinzip

Als Lösung für das geschilderte Problem wurde das Verfahren JTAG/Boundary Scan entwickelt, welches 1990 als „IEEE Standard Test Access Port and Boundary Scan Architecture“ unter dem Kürzel IEEE 1149.1 standardisiert wurde. Die Grundidee ist das Ersetzen der äußeren physikalischen Kontaktierung durch integrierte Testpunkte – so genannte „Electronic Nails“ (Bild 1). Dazu erhalten die ICs eine zusätzliche On-Chip-Logik, eine State Machine und verschiedene interne Register. Das Boundary-Scan-Register mit seinen seriell verschalteten Scanzellen ermöglicht es dabei, über dedizierte Testbus-Pins seriell eingeschobene Testvektoren an die Schaltkreispins zu führen (Output-Zellen) oder an den Pins anliegende Pegel zu übernehmen (Input-Zellen) und softwareseitig auszulesen (siehe Kasten und Bild 2).

Auf Grund der Standardisierung enthalten dergestalt ausgerüstete Bausteine eine einheitliche, chipinterne Steuerlogik und eine genormte Schnittstelle. Sie ermöglicht den Aufbau eines einfachen Prüfbusses, der mit vier (bzw. fünf) Signalen [1] über einen Steckverbinder auf der Baugruppe angesteuert werden kann. Das Verfahren ist sehr gut geeignet zur Erkennung von Fertigungsfehlern wie Kurzschlüssen, Stuck-Ats oder offenen Verbindungen bzw. Fehlbestückungen und erspart den Ingenieuren die aufwendige Testmodell-Erstellung für komplexe Bauelemente.

Bei der Realisierung eines JTAG/Boundary-Scan-Designs schreibt die Norm allerdings einen streng synchronen Entwurf vor. Das heißt, dass alle Registeroperationen synchron zu TCK [1] erfolgen müssen und deshalb alle anderen internen Takte aus diesem Mastersignal abzuleiten sind. In Be-zug auf das JTAG/Boundary-Scan-Register werden dadurch prinzipiell alle Eingänge simultan abgetastet, während im gleichen Zyklus alle Ausgänge gleichzeitig mit neuen Ausgangsvektoren beschrieben werden. Und genau mit letzterem Verhalten stehen Ground-Bounce-Probleme in direktem Zusammenhang.

Wesentliche Faktoren, die Ground-Bounce-Probleme hervorrufen, sind einerseits die niederohmigen Bondverbindungen zwischen chipinterner Masse und dem außen zugänglichen Masse-Pin-Anschluss eines Bausteins (Bild 3a) und andererseits der durch das gesamte chipinterne Netzwerk und auch durch diesen Masse-Pin fließende Strom, der für unterschiedliche Spannungsabfälle z.B an dem Bonddraht-Widerstand sorgt. Da in Abhängigkeit vom Betriebszustand eines Chips ständig unterschiedliche  Ströme nach Masse fließen, ist folglich auch der chipinterne Massepegel ständigen Schwankungen unterworfen (da sich ja der Spannungsabfall am Bonddraht laufend ändert). Steigt dieser Massepegel jedoch bis in den Bereich der normalen Schaltschwellen der Kernlogik an, besteht die Gefahr ungewollter Schaltvorgänge und damit logischen Fehlverhaltens des gesamten Bauelementes. Besonders heimtückisch sind Strom-Transienten, wie sie beim „Toggeln“ von Ausgangsstufen auftreten (Bild 3b). Sie sind typischerweise nur schwer reproduzierbar, wodurch „Ground Bounce“ als Ursache für Fehlfunktionen auf den ersten Blick kaum diagnostizierbar ist. Für den Betrieb der Schaltkreise im Rahmen der elektrischen Spezifikation sind die Bauteile entsprechend maßgeschneidert, ihr Verhalten wird bereits im Vorfeld durch Simulationen verifiziert. Aber im Normalbetrieb schalten gewöhnlich nur maximal 40 bis 50 % der Ausgänge gleichzeitig.

Es ist funktionell nicht vorgesehen, sämtliche Ausgänge simultan zu schalten, da dies zu höheren Bauelementekosten führen würde. Allein die Sequenz der angelegten Output-Vektoren bestimmt die Anzahl der schaltenden Ausgangspins. Während im Funktionsmodus die Anzahl der maximal schaltenden Ausgänge an die Chipfunktion gebunden ist, kann diese Anzahl im Testmodus wesentlich größer sein. Die Differenz der Anzahl der Schaltvorgänge zwischen Funktions- und Testmodus bestimmt letztendlich die Wahrscheinlichkeit von Fehlverhalten durch Ground Bounce. Von daher sind insbesondere vielpolige ASICs mit vielen Ausgangsstufen und FPGAs/(C)PLDs beim „Toggeln“ der Scanzellen potentiell durch Ground Bounce gefährdet.

Eine zusätzliche Gefahr bilden Kurzschlüsse zwischen Signalpins zu Leitungen mit High-Potential. Diese führen unweigerlich zu einem höheren Strom, der in die Ausgangsstufe gegen Masse abfließt. Die Anzahl derartiger Defekte ist nicht kalkulierbar, da sie durch die Fertigung selbst entstehen und den Schwankungen der Prozessparameter unterworfen sind. Gerade zur Erkennung und Lokalisierung derartiger Fehler zeichnet sich die JTAG/Boundary-Scan-Technik aus.

Im vorliegenden Fall wird Ground Bounce bei Chips während des so genannten „Interconnection-Tests“ festgestellt (Bild 4), der auf Kurzschlüsse, Stuck-At-Fehler und Leitungsunterbrechungen prüft. Da alle Testpattern seriell hinein- und herausgeschoben werden müssen, ist es wichtig, mit möglichst wenigen Vektoren eine möglichst hohe Fehlerabdeckung (nahezu 100 %) für die genannten Fehlerarten zu erzielen. Ansonsten kann die Testzeit inakzeptabel lang werden. Effizient machbar ist dies nur durch entsprechende Werkzeuge zur automatischen Testsatz- und Diagnosegenerierung. Naturgemäß enthalten derartige Vektoren sehr viele Pegelwechsel zur gleichen Zeit. So wird der Test gegen Stuck-At-Low-Fehler durch Treiben aller Pins mit High-Pegel abgedeckt, während das beim Stuck-At-High-Test mittels Low-Pegeln erfolgt. Beim Wechsel zwischen diesen beiden Testschritten schalten deshalb nahezu alle Bausteinpins gleichzeitig.