Startseite » Allgemein »

Kosten sparen durch Boundary Scan Pete Collins, JTAG Technologies, Eindhoven (NL) & Wolfgang Hartmuth, Synatron, Hallbergmoos

Tipps für Leiterplattenentwickler
Kosten sparen durch Boundary Scan Pete Collins, JTAG Technologies, Eindhoven (NL) & Wolfgang Hartmuth, Synatron, Hallbergmoos

Entwickler für digitale Schaltungen sind mit den Vorteilen, die der Einsatz von Boundary Scan fähigen Bauteilen nach dem IEEE 1149.1 Standard mit sich bringt, bestens vertraut. Trotzdem können schnell Probleme auftreten, wenn die zu entwickelnde Schaltung auch Bauteile enthält, die dem Standard nicht entsprechen.

Auch wenn die Schaltung sehr sorgfältig nach dem IEEE 1149.1 Standard entwickelt wurde, kann die Debugging- und Testphase noch immer durch komplexe Probleme erheblich verzögert werden. Die folgenden Hinweise zur Entwicklung sollen helfen, mögliche Fallstricke zu erkennen und zu vermeiden. Die Tipps können sofort angewendet, oder für eine spätere Verwendung vorgemerkt werden.

Verwendung von Standardsteckverbindern
Für jede zu entwickelnde Leiterplatte sollte, falls möglich, immer der gleiche Steckverbinder für den Boundary-Scan-Anschluss verwendet werden. Mit einer Standardanordnung der Boundary-Scan-Signale am Stecker können entsprechende Tools dann bei allen Neuentwicklungen wieder verwendet werden. Als kleinster Stecker kommt z. B. ein 10 Pin Typ in Frage, 5 Pins für die Boundary-Scan-Signale und weitere 5 Pins für die Masseverbindung (Bild 1). Man kann auch größere Stecker verwenden um zusätzliche benutzerdefinierte Signale des Boundary-Scan-Tools anlegen zu können.
Auch wenn ein Standardstecker benutzt wird, kann es von Vorteil sein, die Boundary-Scan-Signale an eine Steckerleiste oder einen anderen Stecker, über den die Karte mit weiteren Karten des Systems kommuniziert, zu legen. Zugang zu den Boundary-Scan-Signalen an der Steckerleiste macht zusätzliche Kontakte, wie z. B. Nadeln, während des Produktionstests entbehrlich. Wenn die Baugruppe in ein System eingesteckt wurde, hat man zu Testzwecken einfachen Zugriff auf diese Signale.
Sicherstellen der Signalqualität
Im Layout muss sichergestellt werden, dass TCK (Test Clock), TMS (Test Mode Select) und TRST (Test Reset) an alle Boundary-Scan-Bauteile parallel angeschlossen wurden. Wie bei allen Taktleitungen sollte man die TCK und TMS Signalleitungen so kurz wie möglich wählen. Im Autorouter können die beiden Signale noch zusätzlich als „critical“ markiert werden (nicht alle Entwicklungen benötigen TRST).
Falls das Design beim Test eine große Anzahl von Testvektoren benötigt, wie beispielsweise bei SDRAM-Tests oder dem Programmieren von Flashspeichern, bzw. höhere Frequenzen als 10 MHz genutzt werden, sollten die Signalleitungen zusätzlich terminiert werden (Bild 2). Der TCK Taktabschluss sollte der Impedanz des TAP (Test Access Port) Kabels entsprechen, mit dem die Baugruppe mit dem Boundary-Scan-Tester verbunden wird. Ein 22 Ohm Widerstand in der TDO Leitung dämpft bei hohen Frequenzen eventuell auftretende Reflexionen.
Fan-Out Probleme können behoben werden, indem die IEEE 1149.1 Signale entsprechend gepuffert an die Bauteile der Schaltung verteilt werden. In der Schaltung aus Bild 3 findet ein 74 ABT 244 Verwendung, ein nicht invertierender Octal Buffer, bei dem die TCK und TMS Signale jeweils vier Eingänge treiben. Generell sollte man einen Fan-Out von vier bis sechs von einem 74 ABT 244 Buffer zu nahe gelegenen Bauteilen vorsehen. Darüber hinaus wird ein Fan-Out von ein bis zwei Bauteilen, welche mehr als 10 cm Leitungslänge der TMS und TCK Signale erfordern, empfohlen.
Hinzufügen eines Bypasses
Während der Prototypenphase kann es sinnvoll sein, das eine oder andere IC aus der Boundary-Scan-Kette auszuklammern. Hierbei kann man an den TDI und TDO Signalen Pads für Widerstände an den ICs vorsehen, die ausgeklammert werden sollen (Bild 4). Für die normale Funktion werden 0 Ohm Widerstände eingesetzt, und die Bypassposition bleibt dann leer. Um ein Bauteil auszuklammern bleiben die Widerstände an TDI und TDO unbestückt, der Bypass Widerstand jedoch wird bestückt. Durch das Öffnen des TDI Signalpfads verhindert man, dass der Baustein Boundary-Scan-Instruktionen annimmt und ausführt. Die nicht verbundenen TDI Pins benötigen keinen Pull-up-Widerstand, da er bereits im Bauteil vorhanden ist und am TDI Eingang eine „1“ erzeugt, was einer Bypass Instruktion entspricht. Sollte es notwendig sein, mehrere zusammenhängende Bauteile einer Kette auszuklammern, kann man eine Bypassschleife um eine Gruppe von Bauteilen legen, und an den jeweiligen TDI und TDO Anschlüssen entsprechende Pads vorsehen. Indem man nun an den richtigen Stellen 0 Ohm Widerstände hinzufügt bzw. weglässt, ist es möglich, einzelne ICs zu isolieren.
Während der Test- und Debugphase kann es notwendig werden, das Taktsignal zu speichern, Prozessoren oder andere Bauteilen zu kontrollieren. Leider verbinden viele Entwickler den OE-Anschluss des Oszillators hart mit VCC, wodurch es unmöglich wird, den Oszillator während des Tests abzuschalten. Falls an einem FPGA oder CPLD noch zwei I/O-Anschlüsse frei sind, können diese zum Abschalten des Oszillators und zur Generierung eines eigenen Taktsignals genutzt werden (Bild 5). In dieser Schaltung wird eine Leitung vom FPGA zum Abschalten des Oszillators benutzt, um seinen Ausgang auf Tri-State zu setzen. Über die andere Leitung wird ein Taktsignal angelegt. Das FPGA muss zwei freie Boundary-Scan-Zellen, für jede Verbindung eine, zur Verfügung stellen. Mit Hilfe der Extest Boundary-Scan-Instruktion kann nun der Oszillator abgeschaltet und ein eigenes Taktsignal aus dem FPGA erzeugt werden. Falls ein externer Takt angelegt werden soll, müsste sichergestellt werden, dass der Boundary-Scan-Ausgang die erforderliche Mindestfrequenz liefen kann. In einigen Fällen wird das Taktsignal an 20 bis 30% der Bauteile angelegt. Hierbei ist es wichtig, die Mindestfrequenz aller Bausteine zu berücksichtigen, um problemlos testen und debuggen zu können.
Vermischen von ICs
Häufig besteht eine Schaltung aus einer Mischung mit boundary-scan fähigen und nicht Boundary Scan fähigen Bauteilen, deren Ausgänge auf denselben Signalen liegen. In diesem Fall ist es wichtig, eine Möglichkeit zum Disablen des nicht Boundary Scan fähigen Bauteils vorzusehen. Bild 6 zeigt ein FPGA und ein nicht Boundary Scan fähiges Bauteil auf dem selben Adress- und Datenbus. Wenn das nicht Boundary Scan fähige Bauteil nun in Tri-State gebracht werden kann, werden fehlerhafte Ergebnisse durch gegenseitige Signalbeeinflussungen vermieden. In diesem Beispiel wird ein sonst nicht benutzter Pin des FPGA nur während des Tests auf 1 gesetzt. Dadurch kann der Adress- und Datenbus des nicht Boundary Scan fähigen Bauteils in Tri-State geschaltet werden. Hierbei muss jedoch sichergestellt werden, dass das Disablesignal nicht mit der internen Schaltung des FPGA verbunden ist, da sonst die Gefahr besteht, dass sich der Zustand des Pins im Normalbetrieb ungewollt ändert.
Beschalten von FPGAs
Einige FPGAs von Altera und Xilinx benötigen eine spezielle Beschaltung, um nach dem Anlegen der Versorgungsspannung in den Boundary-Scan-Modus zu schalten. Im normalen Betrieb schalten die Bauteile in den Konfigurationsmodus, wenn die Stromversorgung angelegt wird. Obwohl sie in diesem Modus sind, können sie nicht auf Boundary-Scan-Signale reagieren. Um einen Xilinx XC4K oder Spartan in den Boundary-Scan-Mode zu schalten, muss der Init Eingang mit Masse, und der Prog Pin mit VCC verbunden werden. Durch das Setzen von Jumpern während des Tests wird diese Familie von Bauteilen beim Anlegen der Versorgungsspannung in den richtigen Boundary-Scan-Mode gesetzt. Für den Normalbetrieb werden die Jumper mit den Prog- und Initsignalen verbunden.
Ebenso erfordern die Altera Flex und Apex Bauteile während des Anlegens der Versorgungsspannung besondere Beachtung. Ein Jumper, der den Nconfig Pin mit Masse verbindet, stellt sicher, dass der Baustein nach dem Anlegen der Versorgungsspannung auf Boundary-Scan-Signale korrekt reagiert. Die Flex6000 Bausteine schalten standardmäßig den Boundary-Scan-Mode ab, außer man aktiviert ihn gezielt mit dem MaxPlus2 Tool. Auch wenn dieser Mode eingeschaltet wurde, wird der Chip trotzdem noch keine Boundary-Scan-Tests durchführen können, da er sich selbst konfiguriert. Die Selbstkonfiguration wird verhindert und der Boundary-Scan-Mode zugelassen, indem man den Nconfig Anschluss an Ground legt. Alternativ hierzu kann man vor dem Boundary-Scan-Test warten, bis der Chip die Selbstkonfiguration abgeschlossen hat. Diese Vorgehensweise erfordert jedoch sehr viel Zeit. Besser man versucht eine BSDL Datei zu bekommen, die den Zustand der Pins nach Ablauf der Konfiguration beschreibt. Leider erzeugen die wenigsten Entwicklungswerkzeuge eine derartige BSDL Datei, so dass man gezwungen ist, aus einer bestehenden BSDL Datei manuell eine neue zu erstellen. Manueller Eingriff erhöht aber auch die Gefahr von Fehlern. Hier ist zu beachten, dass der Chip einige seiner I/O Pins umdefinieren kann. Eine bestehende BSDL Datei eines vorkonfigurierten FPGAs beschreibt alle I/O Pins bidirektional. Im Design können aber einige Pins als Eingang oder Ausgang definiert werden. In diesem Fall können die Pins daher nur treiben oder sensen, nicht jedoch beides. Falls eine bestehende BSDL Datei Verwendung findet, wird der Interconnect Test, wie mit jedem ATPG (Automatischer Test Pattern Generator) erzeugt, versuchen jeden Pin zu treiben und zu sensen, was nach der Konfiguration nicht mehr möglich sein wird. Daher wird empfohlen, das FPGA in einen definierten Zustand vor der Konfiguration zu schalten, anstatt langwierige und komplexe Testvektoren für den Zustand nach der Konfiguration zu entwickeln. Man sollte daran denken, dass ein Zustand vor der Selbstkonfiguration im Produktionstest sichergestellt wird. Möchte man das FPGA später im System oder der Endapplikation testen, so wird man nicht vermeiden können, entsprechende Tests für den Zustand nach der Selbstkonfiguration zu entwickeln.
Aufteilen der Boundary-Scan-Kette
In einigen Fällen kann es notwendig werden, mehrere Boundary-Scan-Ketten einzusetzen, anstelle einer einzigen langen Kette. Hier einige Beispiele, in denen mehrere Ketten erforderlich sein können:
  • Emulatoren oder Debugger von anderen Herstellern erwarten Bauteile mit einer bestimmten Registerlänge, die sich von den anderen Bauteilen unterscheiden. Man sollte nicht versuchen, verschiedene Registerlängen zu vermischen, statt dessen aber getrennte Ketten benutzen.
  • Bestimmte FPGAs und CPLDs benötigen ein spezielles In-Circuit-Programmiertool. Chips die dem IEEE1532 Standard entsprechen, werden in einer normalen Boundary-Scan-Umgebung normal funktionieren.
  • Werden im Design verschiedene Logikfamilien, z. B. ECL und TTL, oder verschiedene Spannungsbereiche, wie. 1,8 V, 2,5 V oder 3,3 V eingesetzt, sollten diese in eigenen Ketten untergebracht werden.
  • Bauteile, die eine große Anzahl von Testvektoren benötigen, wie z. B. Flashes oder SRAM, können in verschiedenen Ketten untergebracht werden, um Test- und Programmierzeit zu sparen.
  • Wenn Systemkomponenten entwickelt werden, kann es notwendig sein, solche Bauteile, die den Zugang zur Backplane oder anderen Systemkomponenten herstellen, in eigenen Ketten zu platzieren. Hierdurch kann Testzeit eingespart, und die Anzahl gleichartiger Verbindungstests reduziert werden.
Mit der Boundary-Scan-Technik verfügen Entwickler über ein äußerst leistungsfähiges Test- und Debugging-Tool. Um den maximalen Nutzen aus der Boundary-Scan-Technik zu ziehen, sollte man die Systemanforderungen akkurat abschätzen, und sich die Erwartungen in einem Test genau vor Augen führen.
SMT, Stand 4-342
EPP 501
Unsere Webinar-Empfehlung
INLINE – Der Podcast für Elektronikfertigung

Doris Jetter, Redaktion EPP und Sophie Siegmund Redaktion EPP Europe sprechen einmal monatlich mit namhaften Persönlichkeiten der Elektronikfertigung über aktuelle und spannende Themen, die die Branche umtreiben.

Hören Sie hier die aktuelle Episode:

Aktuelle Ausgabe
Titelbild EPP Elektronik Produktion und Prüftechnik 1
Ausgabe
1.2024
LESEN
ABO
Newsletter

Jetzt unseren Newsletter abonnieren

Webinare & Webcasts

Technisches Wissen aus erster Hand

Whitepaper

Hier finden Sie aktuelle Whitepaper

Videos

Hier finden Sie alle aktuellen Videos


Industrie.de Infoservice
Vielen Dank für Ihre Bestellung!
Sie erhalten in Kürze eine Bestätigung per E-Mail.
Von Ihnen ausgesucht:
Weitere Informationen gewünscht?
Einfach neue Dokumente auswählen
und zuletzt Adresse eingeben.
Wie funktioniert der Industrie.de Infoservice?
Zur Hilfeseite »
Ihre Adresse:














Die Konradin Verlag Robert Kohlhammer GmbH erhebt, verarbeitet und nutzt die Daten, die der Nutzer bei der Registrierung zum Industrie.de Infoservice freiwillig zur Verfügung stellt, zum Zwecke der Erfüllung dieses Nutzungsverhältnisses. Der Nutzer erhält damit Zugang zu den Dokumenten des Industrie.de Infoservice.
AGB
datenschutz-online@konradin.de