DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
...We are boundary-scan. WWW.JTAG.COM DFT-Richtlinien für elektronische Baugruppen ...We are boundary-scan.
Diese Broschüre wurde mit großer Sorgfalt erstellt, kann aber trotzdem Fehler enthalten. Anmerkun- gen und Vorschläge seitens des Lesers sind jederzeit willkommen. Die enthaltenen Abbildungen und Beschreibungen in diesen “DFT-Richtlinien für elektronische Baugruppen” dienen rein der Veranschaulichung. Der Inhalt kann ohne vorherige Ankündigung jederzeit geändert werden. Die in diesem Dokument vorhandenen Informationen sind urheberrechtlich geschützt. Sofern nicht in diesem Dokument ausdrücklich erlaubt, darf kein Teil dieses Dokuments ohne vorherige schriftliche Genehmigung von JTAG Technologies für irgendwelche Zwecke verteilt oder vervielfältigt werden, unabhängig davon, auf welche Art und Weise oder mit welchen Mitteln dies geschieht. Copyright © January 2013 JTAG Technologies B.V. Copyright © January 2012 JTAG Technologies i
Design-for-Test-Richtlinien für den Test elektronischer Baugruppen und die In-System-Konfiguration Europe and ROW USA, Canada and Mexico T: +31 (0) 40-2950870 T: (Toll Free) 877-FOR-JTAG F: +31 (0) 40-2468471 F: 410-604-2109 E: info@jtag.nl E: info@jtag.com United Kingdom & Ireland China (Malaysia, Singapore, Taiwan, Thailand) T: +44 (0) 1234-831212 T: +86 (021) 5831-1577 F: +44 (0) 1234-831616 F: +86 (021) 5831-2167 E: sales@jtag.co.uk E: info@jtag.com.cn Germany T: +49 (0) 971-6991064 F: +49 (0) 091-6991192 E: germany@jtag.com Alle genannten Marken- oder Produktnamen sind Warenzeichen oder registrierte Warenzeichen der jeweiligen Eigentümer. Versionsnumer: V1301 Copyright © January 2012 JTAG Technologies ii
Vorwort Boundary-Scan-Technologie für den Test von elektronischen Baugruppen und die In-System-Programmierung Warum Boundary-Scan? Durch steigende Funktionalität und gleichzeitige Miniaturisierung von modernen elektronischen Baugruppen setzen die Elektronikhersteller auf neueste Bauteiltechnologien, wie Ball-Grid-Arrays (BGAs), Chip-Scale Packages (CSPs) und andere Bauteilformen. Durch diese neuen Bauteilgehäuse wird der Zugriff auf die Pins der Baugruppe für den In-Circuit-Test (ICT) und die In-System-Program- mierung von Bauteilen immer schwieriger. Durch die Entwicklung des Boundary-Scan Standards IEEE 1149.1 wird unabhängig von der Gehäusetechnologie und Bestückungsdichte die Möglichkeit geschaffen, auf die Pinebene der Baugruppe zuzugreifen. Heute unterstützen fast alle gängigen komplexen ICs die Testfunktionen entsprechend dem IEEE STD 1149.1. Um auf Bauteilebene die IEEE 1149.1 Funktionen der ICs voll ausnutzen zu können, müssen bestimmte DFT Regeln (Design for Test) eingehalten werden. Diese Broschüre soll Sie bei der Imple- mentierung des Standards unterstützen. Vorteile von Boundary-Scan Durch den Einsatz von Boundary-Scan und das Anwenden der DFT Richtlinien können Testpunkte auf der Baugruppe eingespart, das Layout vereinfacht, kostengünstige Testadapter verwendet, Testzeit auf dem In-Circuit Tester verkürzt und das Time to Market reduziert werden. Bei programmierbaren Anwendungen ermöglicht das Boundary-Scan Verfahren eine Konfigurierung fast aller Typen von CPLDs und Flash Speicher auf der bestückten Leiterplatte, unabhängig von Größe und Gehäusetyp. Dies hat eine Reduzierung der Lagerhaltung von vorprogrammierten Bauteilen zur Folge, da die Pro- grammierung in die Baugruppenproduktion integriert werden kann. Copyright © January 2012 JTAG Technologies iii
Glossary of Abbreviations: ASIC Application Specific Integrated Circuit AW AutoWrite BDM Background Debug Mode BGA Ball-Grid Array BSDL Boundary-Scan Description Language BSR Boundary-Scan Register cPLD Complex Programmable Logic Device DFT Design for Test(ability) DIOS Digital Input Output Scan DNP Do Not Place DSP Digital Signal Processor ECL Emitter Coupled Logic FPGA Field Programmable Gate Array Hi-Z High Impedance I/O Input - Output IC Integrated Circuit ICT In-Circuit Test(ing) IEEE Institute of Electrical and Electronic Engineers IP Intellectual Property IR Instruction Register ISP In-System Programming JEDEC Joint Electron Device Engineering Council JTAG Joint Test Action Group LSP Local Scan Port LVTTL Low Voltage Transistor - Transistor Logic MCGR Multi-Cast Group Register OE Output Enable PCB Printed Circuit Board PLL Phase Locked Loop SDRAM Synchronous Dynamic Random Access Memory SI Scan Input SO Scan Output SRAM Static Random Access Memory SSRAM Synchronous Static Random Access Memory TAP Test Access Port TCK Test Clock TDI Test Data Input TDO Test Data Output TMS Test Mode Select TRST Test Reset TTL Transistor - Transistor Logic UUT Unit Under Test VLSI Very Large Scale Integration WE Write Enable Copyright © 2013 JTAG Technologies 1
Inhaltsverzeichnis Vorwort iii 1 Einführung 5 2 Überlegungen zur Implementierung von Boundary-Scan auf Baugruppenebene 6 2.1 Bauteilauswahl 6 2.1.1 Auswahl IEEE Std. 1149.1 konformer Bauteile 6 2.1.2 Pins mit gemultiplexten JTAG Ports 6 2.1.3 Überprüfung der BSDL Dateien auf Konformität zum Std. 1149.1 6 2.1.4 Unterstützte Befehle 7 2.1.5 Unterstützung des IEEE Std. 1532 7 2.2 Layout der Scan-Ketten - Partitionierung des Designs 8 2.2.1 Verbindung zu den JTAG Steuersignalen 8 2.2.2 Partitionierung - Debugging/Emulations-Tools externer Anbieter 8 2.2.3 Partitionierung - verschiedene FPGA und cPLD Anbieter 8 2.2.4 Partitionierung - verschiedene Logik- und Spannungsfamilien 9 2.2.5 Partitionierung - optimierte Testvektorausführung 9 2.2.6 Partitionierung - Test von Verbindungen zwischen mehreren Baugruppen 9 2.2.7 Signalabschluss 9 2.2.8 Zugang zu Steckverbindern 9 2.2.9 Energieverteilung 9 2.3 Layout von Scan-Ketten - Signalintegrität 10 2.3.1 Leitungsführung von TCK und TM 10 2.3.2 Pufferung und Fan-Out von JTAG Signalen 10 2.4 Layout von Scan-Ketten - Bypass 10 2.4.1 Physikalischer Bypass 10 2.4.2 Bypass einzelner Bauteile 11 2.4.3 Bypass mehrerer Bauteile 11 2.5 Steuerung von Nicht-Boundary-Scan-Bauteilen 12 2.5.1 Zugang zu Steuersignalen bei Nicht-Boundary-Scan-Logik 12 2.5.2 Steuerung von Taktsignalen 12 2.6 Spezielle Überlegungen zu SRAM-basierten FPGA Bauteilen 13 2.6.1 Boundary-Scan-Ausführung - Pre- und Post-Konfiguration 14 2.6.2 Überlegungen zu Xilinx XC4K und Spartan 14 2.6.3 Überlegungen zu Altera FLEX und APEX 14 2.6.4 Überlegungen zu Xilinx Spartan 2/3 und Virtex 14 2.7 Überlegungen zu FPGAs mit re-konfigurierbaren Ein-/Ausgängen 14 Copyright © 2013 JTAG Technologies 2
2.8 Optimierung der Flash-Programmierung 14 2.8.1 AutoWrite™ Zugriff 15 2.8.2 Signalkonflikte vermeiden 15 2.8.3 Zellen mit drei und zwei Ausgangszuständen 15 2.8.4 Steuerung mehrerer Ausgangszellen 16 2.8.5 AutoWrite™ Gate-Steuerung 16 2.8.6 Optimierung der Flash-Programmierung - Reduzierung der Kettenlänge 16 2.8.7 Optimierung der Flash-Programmierung - Aufteilung der Boundary-Scan-Datenregist6r 17 2.8.8 Optimierung der Flash-Programmierung - Verwendung von Boundary-Scan-Puffern 17 2.8.9 Optimierung der Flash-Programmierung - Embedded Flash Controller 17 2.9 Bauteil-spezifische DFT-Anforderungen 18 2.9.1 Betrieb von zwei Ports - Standardmäßiger Background Debug Mode (BDM) 18 2.9.2 Erzwingen des JTAG-Modus beim Einschalten 18 2.10 Design-for-Test - weitere Überlegungen 19 2.10.1 Steuerung von Watchdog-Schaltungen 19 2.10.2 Konfigurierbare Abschlusswiderstände 19 2.11 Embedded JTAG Control Optionen 2.11.1 Implementieren eines embedded USB-to-JTAG Treiber Bausteins 2.11.2 Hinzufügen eines embedded JTAG Controllers 3 Anmerkungen zum Board Layout 3.1 Trennen der TAP Signale im Design 3.2 Implementierung von Abschlusswiederständen 3.3 Effekte bei der Verwendung von BGA Bausteinen 4 Kontaktinformationen 5 Abkürzungsverzeichnis 23 Copyright © 2013 JTAG Technologies 3
Abbildungsverzeichnis Bild 1: Abschluss JTAG Signale Bild 2: Fan-Out von TCK und TM Bild 3: Physikalischer Bypass von einzelnen und mehreren Bauteilen Bild 4: Steuerung von Nicht-Boundary-Scan-Bauteilen Bild 5: Steuerung von Taktsignalen Bild 6: Beispiel für kritische Pins – halten der FPGA Konfiguration Bild 7a: Pre Konfiguration Bild 7b: Post Connfiguration Bild 8: AutoWriteTM Zugriff Bild 9: Vermeidung von Signalkonflikten Bild 10: Steuerung gruppierter Controll Zellen Bild 11: AutoWrite Gate-Steuerung Bild 12: Aufteilung der Boundary-Scan-Register Bild 13: Embedded Flash Controller Bild 14: Embedded Flash Controller zur schnellen Flash Programmierung (z.B. NAND) Bild 15: Erzwingen des JTAG Modus beim Einschalten Bild 16: Embedded USB – JTAG Controller/Treiber Bild 17a: Empfehlung TCK Terminierung - Standard Layout Bild 17b: Empfehlung TCK Terminierung - Sternförmiges Layout Bild 17c: Empfehlung TCK Terminierung – Sternförmiges Layout mit mehreren RC Gliedern Copyright © 2013 JTAG Technologies 4
1 Einführung Der JTAG Port ist aktuell in aller Munde. Nehmen Sie sich einige Minuten Zeit, um sich einen Überblick über die Möglichkeiten der JTAG-Schnittstelle zu verschaffen. Sie werden einen Einblick bekommen, wie es möglich ist auf alle Pins der Boundary-Scan fähigen Bausteine zuzugreifen (ausge- nommen sind analoge, Stromversorgungs- sowie Massepins) oder wie die logischen Core Funktionen von der Umgebung getrennt bzw. in den Ruhemodus versetzt werden können. Das bedeutet, dass durch einen Vierdraht Datenbus verschiedene Testmuster (Vektoren) direkt an die Ausgänge oder I/O Pins angelegt bzw. deren Zustand eingelesen werden kann, ohne im Design direkten physikalischen Zugang auf jeden einzelnen Pin des Bausteins zu haben. Entwicklungsingenieure wissen welche Rolle DFT (Design for Test) Richtlinien beim Design einer Baugruppe spielen. Um dem Test- und Fertigungsingenieur die Möglichkeit zu geben, die Boundary- Scan Technologie in vollem Umfang zu nutzen, sollte in regelmäßigen Besprechungen schon frühzei- tig die Teststrategie und das Produktionskonzept (für das Debugging von Prototypen, die Produktion und den Service) diskutiert und festgelegt werden. Ziel dieses Dokuments ist es, Ihnen eine Reihe von DFT Richtlinien aufzuzeigen, die als Referenz zur Implementierung einer Boundary-Scan-Architektur während des Layout Entwurfs dienen. Dies führt zu einer effektiven Architektur, welche Ihnen neben einem strukturellen Baugruppentest während der Fertigung auch die Möglichkeit gibt, eine In-System-Programmierung von CPLDs, FPGAs und Flash Speicherbausteinen durchzuführen. Copyright © 2013 JTAG Technologies 5
2 Überlegungen zur Implementierung von Boundary-Scan auf Baugruppenebene 2.1 Bauteilauswahl 2.1.1 Auswahl IEEE Std. 1149.1 konformer Bauteile Nachdem Sie sich für das Implementieren einer Boundary-Scan Test Architektur entschieden haben, sollten Sie auf die richtige Auswahl der Bausteine achten. Stellen Sie sicher, dass möglichst alle ausge- wählten Bauteile IEEE 1149.1 konform sind. Normalerweise sind alle modernen VLSI-Bauteile IEEE 1149.1 konform. Jedoch ist darauf zu ach- ten, dass es ICs mit derselben Core Funktion geben kann, die von einem Hersteller als IEEE 1149.1 konform und vom anderen Hersteller als nicht konform angeboten werden. Hier sollte die Wahl auf einen IEEE 1149.1 konformen Baustein fallen, da jeder weitere konforme Baustein Ihre Boundary-Scan Testabdeckung erhöht. 2.1.2 Pins mit gemultiplexten JTAG Ports Vermeiden Sie Bauteile, bei denen die Pins des JTAG Ports gemultiplext sind. Dies ist oft der Fall, wenn der Halbleiteranbieter sich aus Kostengründen dafür entschieden hat, keine vier zusätzlichen Pins für den Boundary-Scan Zugriff nach außen zu führen. In diesem Fall wird bei einigen Pins ein Multiplexing zwischen den JTAG-Steuersignalen und den Signalpins der Core-Funktion durchgeführt. Normalerweise schalten diese gemultiplexten Pins beim Einschalten der Betriebsspannung auf die Core-Funktion um. Eine Umschaltung in den JTAG-Modus ist dann nur über das Setzten des entspre- chenden JTAG Enable Pin möglich. Sobald der Boundary-Scan-Tests abgeschlossen ist, muss dieser JTAG Enable Pin wieder deaktiviert werden, um in den normalen Core Betrieb zu gelangen. Falls möglich sollten keine derartigen Bauteile mit gemultiplexten Boundary-Scan-Pins ausgewählt werden, da zusätzliche Logik implementiert werden muss, um den Baustein über den JTAG Enable Pin in den gewünschten Boundary-Scan Modus zu bringen. Hinweis: Sollte es nicht möglich sein, einen alternativen IEEE 1149.1 konformen Baustein auszuwählen, muss beim Layout darauf geachtet werden, dass zur Ausführung des Boundary-Scan Tests auf die JTAG Enable Funktion zugegriffen werden muss. 2.1.3 Überprüfung der BSDL Dateien auf Konformität zum Std. 1149.1 Studieren Sie alle Datenblätter und BSDL-Dateien gründlich auf Hinweise darüber, ob der Baustein nicht konform zum IEEE 1149.1 Standard ist. Informationen darüber finden Sie meist in der BSDL Datei in Form von Attributen wie DESIGN WARNINGoder COMPLIANCE PATTERNS wie im folgen- den Beispiel: attribute DESIGN_WARNING of SA1110: entity is -- (ref B.8.18) “ 1.IEEE 1149.1 circuits on SA1110 are designed “ & “ primarily to support testing in off-line module “ & “ manufacturing environment. The SAMPLE/PRELOAD “ & “ instruction support is designed primarily for “ & “ supporting interconnection verification test and not “ & “ for at-speed samples of pin data. “ & “ 2.Ensure to drive BATTF and VDDF to logic level 0 else the chip “ & “ will sleep! “; Im oben genannten Beispiel für den Intel StrongARM Prozessor gibt das Attribut DESIGN WAR- NING an, dass die BATTF und VDDF Signalpins auf logisch “0” gesetzt werden müssen, da der Chip sonst in den Ruhemodus schaltet. Attribute COMPLIANCE_PATTERNS of XC2S150_FG456 : entity is “ (PROGRAM) (1) “; Copyright © 2013 JTAG Technologies 6
2 In diesem Beispiel für den Xilinx Spartan XC2S150 FPGA spezifiziert das Attribut COMPLIANCE PATTERNS, dass der PROGRAM Pin des Bauteils auf logisch “1” gesetzt werden muss, damit der Baustein im Boundary-Scan-Modus arbeitet. 2.1.4 Unterstützte Befehle Alle IEEE Std. 1149.1 konformen Bauteile unterstützen die folgenden Basis-Befehle SAMPLE/PRE- LOAD, EXTEST und BYPASS. Zudem ist es wünschenswert, dass die Bauteile außerdem die optio- nalen Befehle HIGHZ, CLAMP und IDCODE unterstützen. Der Befehl IDCODE ist sehr hilfreich um festzustellen, ob während des Fertigungsprozesses das richtige Bauteil bestückt wurde. Dies ist durch das Auslesen des 32-Bit IDENT Registers des Bauteils möglich. Dieses Register beinhaltet detailierte Informationen zum Hersteller, den vom JEDEC Komitee definierten Typenschlüssel des Bausteins und einen 4-Bit Revisionscode. Der Revisionscode ist interessant, wenn mehrere Versionen eines Bauteils mit denselben Gehäuse- größen, aber unterschiedlicher interner Funktionalität auf dem Markt sind. Hier ist es kostengünstiger, den Revisionsstatus im Zuge der Prozessverifikation auszulesen und zu prüfen, anstatt einen Funkti- ons- oder Systemtest durchzuführen. Der HIGHZ Befehl verkürzt das Boundary-Scan Register wie beim BYPASS Befehl auf 1Bit. Anders als bei diesem werden jedoch alle I/O Pins in TRISTATE gesetzt. HIGHZ wird oft verwendet, um die Länge der Boundary-Scan-Ketten zu optimieren. Darauf sollte besonders dann geachtet werden, wenn die Programmierung eines Flash Speichers auf der Zielbaugruppe erfolgen soll. Hier sollte die Anzahl der Boundary-Scan-Datenregister für den Zugriff auf die Daten-, Adress- und Steuerleitungen des Ziel- Flash-Speichers minimal gehalten werden. Sobald mehrere Boundary-Scan-Bauteile auf den Adress- und Datenbus des Ziel-Flash-Speichers zug- reifen, müssen während der Schreib-/Lese-Zyklen des Speichers diese Signalpins hochohmig geschal- tet werden, um einen Buskonflikt zu vermeiden. Sobald diese Bauteile den HIGHZ-Befehl unterstüt- zen, können diese Ausgangspins mit einem Befehl von nur wenigen Bits (> 2) in einen hochohmigen Zustand gebracht werden. Falls diese Bauteile den HIGHZ Befehl nicht unterstützen, muss der Wert für einen sicheren Zustand über die Steuerzellen in alle entsprechenden Ausgangspins getaktet werden. Dadurch wird die Anzahl der notwendigen Bits für das Schieben der Daten bei jedem Schreib-/Lese-Zyklus im Flash-Speicher deutlich erhöht. CLAMP verkürzt ebenso wie HIGHZ und BYPASS die Kette auf ein Bit. Allerdings erlaubt der CLAMP Befehl die Boundary Scan Register mit statischen Werten 1/O vor zu definieren, um die Baugruppe in einen definierten Zustand zu halten. Dies ist hilfreich, um Bausteine am Bus (z.B Speicher) zu deakti- vieren während ein anderer Baustein programmiert wird. 2.1.5 Unterstützung des IEEE St. 1532 Der IEEE Std 1532 ist ein vereinheitlichter Programierstandard für CPLDs und FPGAs. Seine Verwen- dung beruht auf eine Erweiterung des BSDL files, welches nicht nur Testinformationen, sondern auch die Information zur Konfiguration des Bausteins enthält. Selbstverständlich müssen die BSDL files konform zur den enstprechenden Kapiteln des IEEE 1532 Standard sein. Bausteine die diesen Standard unterstützen, werden mit dem standardisierten Datenformat „ISC“ programmiert. Durch dieses Verfahren ist es möglich mehrer Bausteine verschiedener Hersteller gemeinsam zu programmieren. Falls jedoch nicht ausschließlich 1532 konforme Bauteile ausgewählt werden können, lassen sich diese nicht konformen Bauteile immer noch isoliert nacheinander programmieren. Copyright © 2013 JTAG Technologies 7
2 2.2 Layout der Scan-Ketten - Design-Partitionierung 2.2.1 Verbindung zu den JTAG Steuersignalen Alle JTAG-Steuersignale des JTAG Test Access Port (TAP), TCK, TMS und das optionale TRST-Signal werden parallel verbunden. TDI und TDO werden benötigt, um die Boundary-Scan-Bauteile in einer Kette (Daisy Chain) hintereinander zu schalten (Bild 1). Bild 1 - Abschluss von JTAG-Signalen Manchmal kann es notwendig bzw. hilfreich sein, mehr als eine Kette aufzubauen. Dies ist zum Bespiel sinnvoll, … 2.2.2 Partitionierung - Debugging-/Emulations-Tools externer Anbieter … wenn Bauteile in einer separaten Kette gehalten werden müssen, damit spezielle Debugging- oder Emulations-Tools funktionieren. Ein Beispiel hierfür sind DSP Debugging-Software-Werkzeuge von IC-Anbietern die erwarten, dass jedes Bauteil in der Kette ein 4 Bit langes Befehlsregister hat. Da dies nicht garantiert werden kann, werden die DSP Bausteine in separaten Ketten gehalten. 2.2.3 Partitionierung - verschiedene Logik- und Spannungsfamilien … wenn beim Einsatz verschiedener Logikfamilien z.B. ECL/TTL oder Spannungsfamilien z.B. 1,8 V, 2,5 V und 3,3 V die verschiedenen Bauteilfamilien in separaten Ketten zusammengefasst werden. Verbinden Sie die externen TAP Verbindungen mit den jeweiligen Ketten und stellen Sie sicher, dass Sie die entsprechenden Treiberpegel für den jeweiligen TAP auswählen. Alternativ gruppiert man alle 3,3 V Bauteile in einer Kette die dann mit der Gruppe der 1,8 V Bauteile verbunden wird. Allerding müssen die Boundary-Scan Steuersignale und das TDO Signal vom letzten Bauteil der 3,3 V Gruppe mit einem Spannungsteiler verbunden werden, um die Spannung auf 1,8 V zu reduzieren. 2.2.4 Partitionierung - optimierte Testvektorausführung … um eine bessere Testaufteilung und Diagnoseauflösung bzw. eine optimierte Ausführung der Test- vektoren zu erreichen. Copyright © 2013 JTAG Technologies 8
2 Dies ist besonders für die Programmierung von Flash-Speichern wichtig, da die Länge der Boundary- Scan-Register sorgfältig optimiert werden sollte, damit die Bits bei einer Schreib/Lese-Operation eines Flash-Speichers durch möglichst wenig Boundary-Scan-Register (BSR) geschoben werden. Hier ist es ratsam, einzelne Funktionsblöcke von Boundary-Scan-Bauteilen in separaten Ketten zusammenzufas- sen, so dass nur die Bauteile, die auf die Adress-, Daten- und Steuersignale des Ziel-Flash-Speichers zugreifen, im EXTEST Modus arbeiten und die anderen Bauteile als BYPASS oder HIGHZ konfiguriert werden können. 2.2.5 Partitionierung - Test von Verbindungen zwischen mehreren Baugruppen In Systemanwendungen ist es von Vorteil, wenn alle Bauteile, die Zugang zur Backplane-Schnittstelle haben, in separaten Boundary-Scan-Ketten zusammengefasst werden. Dies erlaubt eine Optimie- rung der Testvektorausführung für einen Verbindungstest zwischen den einzelnen Baugruppen eines Systems. 2.2.6 Signalabschluss Für sehr schnelle JTAG Anwendungen, bei denen TCK-Geschwindigkeiten von >10 MHz erreicht wer- den, ist es ratsam die TCK Leitung mit einem RC Kombination aus einem Widerstand (entsprechend der Impedanz der TAP-Leitung, z.B. 60 bis 100Ω) und einem Kondensator (z.B. 100pF) in Serie zur Masse abzuschließen. Alle anderen JTAG Eingänge sollten mit einem schwachen Pull-Up Widerstand (10kΩ) mit H-Potential verbunden werden. Zur Dämpfung von Reflexionen sollte so nah wie möglich am TDO Signal des letzten Bausteins in der Boundary-Scan Kette ein 20Ω Serienwiderstand angebracht werden. 2.2.7 Zugang zu Steckverbindern Wenn möglich sollte die Kontaktierung der Boundary-Scan Ketten über Steckkontakte erfolgen. Die Kontaktierung von Testpunkten und Test Vias, mit Hilfe eines Nadelbettadapters, kann durch unsau- bere Produktionsprozesse zu Kontaktier-Problemen führen. Dies gilt auch für die Kontaktierung einer Backplane auf Systemebene. 2.2.8 Energieverteilung Auf Baugruppen mit hybriden Analog/Digital-Designs kann es gefährlich sein, zufällige Boundary- Scan Muster im digitalen Teil der Schaltung anzulegen, da dies ein ungewolltes Verhalten des Ana- logteils verursachen kann, was wiederum zu einer potenziellen Schädigung von Bauteilen oder der Baugruppe führen könnte. Dies lässt sich durch eine Auftrennung in analoge und digitale Subsysteme vermeiden. 2.2.9 IEEE 1149.6 Mit der Verwendung von seriellen High Speed Verbindungen, die auf der LVDS (Low Voltage Differen- tial Signal) Technologie basieren, wurden weitere Schritte unternommen, um Boundary Scan auch in diesem Bereich einsetzten zu können. Die sogenannte „dot6“ Erweiterung des 1149 Standards führt neue Befehle und Logik ein. Damit können jetzt Tests mit High Speed Pulsen ausgeführt werden, die in der Vergangenheit wegen der Hürden der LVDS Signale, wie z.B. der 100 Ohm Determinierungswi- derstand und der kapazitiven Kopplung, nicht möglich waren. Die ProVision Software von JTAG Technologies bietet ein entsprechenden Modul zur automatischen Generierung und Diagnose der beschriebenen High Speed Verbindungen („dot6“). Voraussetzung sind Bausteine mit implementierten IEEE 1149.6 Standard. Copyright © 2013 JTAG Technologies 9
2 2.3 Layout von Scan-Ketten - Signalintegrität 2.3.1 Leitungsführung von TCK und TMS Alle Leitungen der TCK- und TMS-Signale sollen so kurz wie möglich gehalten werden und eine Schleifenbildung ist zu vermeiden. Sie sollten das Routing dieser Signale innerhalb der Auto-Routing- Tools im Leiterplatten-Layout als KRITISCH einstufen. 2.3.2 Pufferung und Fan-Out von JTAG-Signalen Es hat sich bewährt, alle IEEE Std. 1149.1 Steuersignale, die mit der Baugruppe verbunden sind zu puffern, um eine gute Signalqualität der TCK- und TMS-Signale sicherzustellen. Bitte beachten Sie das Fan-Out der Steuerleitung (TMS, TCK) auf Ihrer Baugruppe. Als allgemeine Faustregel gilt, dass bei kurzer Leitungslänge das Fan-Out eines Puffers, z.B. des Typs 74244, für 4 bis 6 Bauteile ausreicht. Sollten jedoch die Leitungslänge zwischen dem Pufferbauteil und den Boundary- Scan-Bauteilen relativ lang sein (> 10 cm), reicht das Fan-Out nur noch für 1 bis 2 Bauteile. Siehe Bild 2. Sie sollten auch darüber nachdenken, das primäre asynchrone Reset-Signal (TRST) zu puffern und das primäre TRST Signal mit einem schwachen Pull-Down Widerstand (normalerweise etwa 10kΩ) ab- zuschließen, damit dieser problemlos von einem PC-basierten Boundary-Scan-Controller übersteuert werden kann. Der Puffer gewährleistet, dass das ausgesendete sekundäre TRST-Signal die parallelen internen Pull-Up Widerstände der Bauteile übersteuern kann. Wäre der Puffer nicht vorhanden, dann müsste sich der schwache Pull-Down Widerstand gegenüber den parallelen internen Pull-Up Widerständen behaupten, so dass sich ein asynchroner Reset, sobald die externe Ansteuerung die primäre TRST-Leitung freigegeben hätte, evtl. nicht durchsetzen könnte. Der Pull-Down Abschluss an TRST wird von den meisten Entwicklern bevorzugt, da sobald der exter- ne Scan-Controller die Steuerung freigibt, das primäre TRST Signal von den vorhandenen Pull-Down Widerständen auf Low gezogen wird und damit alle sekundären TRST-Leitungen auf Low liegen. So werden alle nachfolgenden Boundary-Scan-Bauteile zu einem Test-Logic-Reset (TLR) gezwungen. Die Baugruppe geht dadurch in den normalen Betriebszustand zurück. Hinweis: Die oben genannten Überlegungen hinsichtlich der Signalintegrität sollten mit Vorbehalt betrachtet werden, können aber den kleinen Unterschied zwischen einer zuverlässigen und unzuver- lässigen Schaltung ausmachen. Bild 2 - Fan-Out von TCK und TMS Copyright © 2013 JTAG Technologies 10
2 2.4 Layout von Scan-Ketten - Bypass 2.4.1 Physikalischer Bypass Es kann manchmal hilfreich sein, Null-Ohm Widerstände als Bypass vorzusehen, so dass durch eine Kombination von unbestückten (DNP - do not place) und bestückten Widerständen die Boundary- Scan-Bauteile bei Bedarf physikalisch innerhalb einer Boundary-Scan-Kette umgangen werden kön- nen (Bild 3). Diese Implementierung ist besonders beim Bau von Prototypen zu empfehlen, selbst wenn vom IC Anbieter entsprechende Halbleiter mit zusätzlichen Boundary-Scan-Pins verfügbar sind und ein Zugriff auf die Boundary-Scan-Funktionalität möglich ist. Auf Grund des Time-to-Market-Drucks kommt es aber vor, dass die Boundary-Scan Funktion noch nicht implementiert oder nicht getestet wurde und diese deshalb nicht wie erwartet funktioniert. Wenn diese Bauteile einen Teil der Bounda- ry-Scan Infrastruktur auf der Baugruppe bilden, kann diese unvollständige Kette und damit auch die Baugruppe mit Hilfe von Boundary-Scan nicht getestet werden. 2.4.2 Bypass einzelner Bauteile In Konfiguration (Bild 3a) wird der Null-Ohm Widerstand an den TDI- und TDO-Pins bestückt und der Bypass Widerstand nicht platziert. Sollte jedoch der Baustein aus der Kette genommen werden, wird der Bypass Widerstand bestückt und die TDI und TDO Widerstände entfernt. Der TDI-Widerstand wird entfernt, um zu vermeiden, dass fehlerhafte Meldungen in das Befehlsre- gister des überbrückten Bauteils getaktet werden (wir erinnern uns daran, dass die TCK- und die TMS- Signale immer noch am Baustein anliegen und folglich der TAP Controller des Bauteils immer noch aktiv ist). Der IEEE 1149.1 Standard definiert, dass der TDI-Pin aller konformen Bauteile über einen internen Pull-Up Widerstand verfügt, welcher sicherstellt, dass nur 1er Befehle in das Befehlsregister eines umgangenen Bauteils geschoben werden - nur 1er Werte entsprechen dem Bypass-Befehl. Der TDO Widerstand wird entfernt, um einen Signalkonflikt zwischen den Bypass-Daten und den TDO-Daten zu verhindern. Bild 3 - Physikalischer BYPASS von einzelnen und mehreren Bauteilen 2.4.3 Bypass mehrerer Bauteile Die Konfiguration (b) zeigt einen Bypass mehrerer Bauteile, wie beispielsweise einer Gruppe von Speicherbauteilen, die zum Beispiel Halbleiter im Beta-Stadium sein könnten. In diesem Fall ist es ratsam die Vorbereitungen, um alle diese Bauteile umgehen zu können, im Leiterplatten-Design zu implementieren. Copyright © 2013 JTAG Technologies 11
2 Der einzige Unterschied zwischen dieser und der vorhergehenden Implementierung für ein einzelnes Bauteil sind die zusätzlichen TDO/TDI Null-Ohm Widerstände zwischen jedem Bauteil innerhalb der Bypass-Gruppe. Diese sollen sicherstellen, dass durch das Entfernen dieser Widerstände die Befehle zur Erfassung der IR-Werte nicht in die nachfolgenden Bauteile geschoben werden, was eine Fehl- funktion des Bauteils verursachen kann, wodurch die I/O-Pins einen unbekannten Zustand annehmen können. Hinweis: Diese Konfigurationen sollten nur für Prototypen verwendet werden, die vorläufige Halbleiter einsetzen und wenn zu erwarten ist, dass die Halbleiterprobleme vor Beginn der Produktion gelöst sind. 2.5 Steuerung von Nicht-Boundary-Scan-Bauteilen 2.5.1 Zugang zu Steuersignalen bei nicht Boundary-Scan fähigen Bauteilen Es ist unbedingt notwendig, auf die Steuersignale von nicht Boundary-Scan fähigen Bauteilen mit Boundary-Scan-Zellen zugreifen zu können, um diese Bauteile während des BScan Tests abzuschal- ten. Hierdurch werden Signalkonflikte verhindert, welche Schäden an den Baugruppen verursachen können oder zu unzuverlässigen Tests führen. Bild 4 - Steuerung von Nicht-Boundary-Scan-Bauteilen Im Beispiel (Bild 4) greift das Nicht-Boundary-Scan Bauteil auch auf die Daten- und Adressbusse zu, die im Zuge des Verbindungstests zwischen den beiden Boundary-Scan-Bauteilen getestet werden. Um das Nicht-Boundary-Scan fähige Bauteil während des Verbindungstest abzuschalten, muss der Steuer Pin auf logisch “1” gesetzt werden. Damit werden die Ausgangspins des Bauteils in einen hochohmigen Zustand gebracht und behindern nicht mehr den Test der Daten- und Adressbusse. Hier im Beispiel wird der OE-Pin des Nicht-Boundary-Scan-Bauteils mit einem ungenutzten Pin eines Boundary-Scan Bauteils (in unserem Beispiel ein FPGA) verbunden. Dieses Signal wird im normalen Standardbetrieb nicht genutzt und über einen Pull-Down Widerstand auf Low gehalten. Für Testzwecke wird der OE-Pin über die Boundary-Scan Zelle angesteuert, um den Baustein während des Tests in den Ruhemodus zu setzten. 2.5.2 Steuerung von Taktsignalen In manchen Fällen ist es notwendig, die Steuerung von Taktsignalen zu übernehmen, die für die Syn- chronisation der Speicher-Schreib/Lese-Zugriffe von SSRAM- und SDRAM-Bauteilen benötigt werden. Hierzu muss unbedingt der On-Board-Takt abgeschaltet und durch einen Testtakt ersetzt werden. Copyright © 2013 JTAG Technologies 12
2 Bild 5 - Steuerung von Taktsignalen Die Taktverteilschaltung im linken Beispiel zeigt, wie die Taktverteilung nicht implementiert werden sollte. In diesem Fall kann der Oszillator auf der Baugruppe nicht deaktiviert werden, weil seine  OE-Steuerleitung direkt mit VCC verbunden und somit kein Boundary-Scan-Zugriff auf das primäre Taktsignal möglich ist. Die Implementierung im rechten Beispiel ermöglicht eine Abschaltung des Oszillators auf der Baugruppe, da der OE-Pin mit einer Ersatz-Boundary-Scan-Zelle verbunden ist (dies kann ein unbenutzter I/O-Pin eines FPGA oder cPLD sein, der nicht mit der internen Core-Logik verbunden ist). Somit kann dieser Signalpin auf logisch “0” gesetzt werden, so dass der OUT-Pin des Oszillators in einen hochohmigen Zustand geht. Dadurch kann der On-Board-Takt durch einen Testtakt ersetzt werden, der über eine Ersatz-Boundary- Scan-Zelle gesteuert wird, welche über die dargestellte Gatterschaltung im EXTEST Modus arbeitet. Der Test Takt wird über den Taktverteilerbaustein (Clock Distribution Circuit) an alle Bauteile, einschließlich der SSRAM- und SDRAM-Speicherbauteile weitergeleitet. In einigen Fällen kann die Implementierung dieser DFT Regel zu einer Erhöhung der Boundary-Scan Testabdeckung von 20-30% führen. Hinweis: Wenn Sie dieses Verfahren nutzen, sollten Sie vorab die minimale Betriebsfrequenz der Taktverteilungsschaltung prüfen, da diese für eine Synchronisation der internen PLL notwendig sein kann. 2.6 Spezielle Überlegungen zu SRAM-basierenden FPGA-Bauteilen 2.6.1 Boundary-Scan-Ausführung - Pre- und Post-Konfiguration SRAM-basierende FPGA Bauteile sind während der Programmier-/Konfigurationszyklen oftmals Än- derungen hinsichtlich ihres Boundary-Scan-Verhaltens unterworfen. Nach dem Einschalten beginnen diese Bauteile mit einer Konfigurationsphase, während der auf die Boundary-Scan-Schaltkreise nicht zugegriffen werden kann, es sei denn diese Konfigurationssequenz wird abgebrochen. Hinweis: Lesen Sie sorgfältig die Datenblätter/Anwendungsrichtlinien des Herstellers, um zu klären, ob dies ein Problem darstellen kann. Achten Sie besonders auf Hinweise zu Konformitätsattributen in der BSDL-Datei, wie z.B. “(INIT, PROGRAM ) (01)”; Dies bedeutet, dass die INIT und PROGRAM Pins auf logisch “0” und “1” gesetzt werden müssen, um das Bauteil in den Boundary- Scan-Modus zu bringen. Copyright © 2013 JTAG Technologies 13
2 2.6.2 Überlegungen zu Xilinx Virtex XC4K und Spartan Bei Xilinx XC4K und frühen Spartan Bauteilen muss, um EXTEST Operationen zu ermöglichen, bereits beim Power-Up der Baugruppe der PROG Pin auf “High” und der INIT Pin auf “Low” gehalten wer- den. Damit wird verhindert, dass diese Bauteile im Konfigurationsmodus starten (Bild 6 – links). Um den Pinstatus vor dem Einschalten der Baugruppe genau definieren zu können, sollten entsprechende Möglichkeiten, z.B. Jumper, im Design eingeplant werden. Nachdem das Bauteil das erste Mal konfiguriert wurde, ist der Boundary-Scan Modus verfügbar, so dass der Boundary-Scan Test durchgeführt werden kann. Bild 6 - Beispiel für kritische Pins - halten der FPGA Konfiguration Neuere Bausteine benötigen nur noch Zugriff auf den PROG_B Pin, der während des gesamten Boundary Scan Tests auf „high“ gehalten werden muss. Es kann vorkommen, dass sich auf einer Baugruppe ein bereits programmiertes Konfigurationsprom befindet. Dies führt dazu, dass sich das FPGA in einem „post configuration“ Zustand befindet. Das Original BSDL file des Herstellers ist dann nicht mehr gültig, da die tatsächliche Funktion der Pins von der Beschreibung abweicht. In diesem Fall muss ein „post configuration“ BSDL file erzeugt werden, welches dann wieder die tatsächliche Pinfunktion des FPGAs beschreibt. Dies ist mit zusätzlichem Aufwand verbunden. Alternativ kann man nach dem „booten“ des Bausteins die Konfiguration mittels toggeln von PROG_B (1-0-1) löschen. Danach ist wieder das Original BSDL file gültig. Hierzu ist ein entsprechender exter- ner Zugriff des PROG_B Pins notwendig. Während des Boundary-Scan-Tests muss sichergestellt werden, dass ein evtl. vorhandener Power Down Pin (PWRDWN) nicht toggeln kann. Der Baustein geht sonst sofort in den Power Down Mode. Die Boundary-Scan-Funktion ist dann nicht mehr verfügbar. 2.6.3 Überlegungen zu Altera Cyclone. Stratix usw Bei den Altera FPGAs sollten Sie die Dokumentation sorgfältig gelesen werden, da es bei älteren Bausteinfamilien vorkommen kann, dass die JTAG Funktionalität solange deaktiviert ist bis diese durch einen speziellen Bitstream aktiviert wird (Altera application note AN039). Selbst wenn diese Funktion aktiviert ist, kann ein Boundary-Scan-Test während der Pre-Konfiguration nicht ausgeführt werden, solange die nCONFIG Signalleitung nicht auf “Low”-Potential gesetzt wird, um somit ein Reset des Bauteilkonfiguration zu veranlassen (Bild 6 -rechts). Durch einen Wechsel von “Low” nach “High” wird dagegen die Konfigurationsphase gestartet. Die Konfiguration kann durch das Verbinden der nCONFIG Signalleitung über eine Steckbrücke oder externen Zugriff mit GND verhindert werden. Eine Alternative zur Ausführung der Tests vor der Pre-Konfiguration besteht darin, abzuwarten bis das FPGA sich konfiguriert hat, so dass die JTAG-Funktionalität dann verfügbar ist. Jedoch kann dann eine BSDL-Datei benötigt werden, die den Post-Konfigurationsstatus beschreibt, da einige der I/O-Pins durch die Konfiguration umdefiniert werden. Siehe Abschnitt 2.7. Copyright © 2013 JTAG Technologies 14
2 2.7 Überlegungen zu FPGAs mit re-konfigurierbaren Ein-/Ausgängen Alle I/O-Pins von FPGA Bauteilen sind im vorkonfigurierten Zustand als bidirektional definiert, was bedeutet, dass jeder I/O-Pin mit drei Boundary-Scan-Zellen verbunden ist, wie in Bild 7a dargestellt; Eingangszelle, Ausgangszelle und Steuerzelle. Bild 7a - Pre-Konfiguration Bild 7b Post-Konfiguration (LVDS - Rx) Eine Reihe von FPGA Bauteilen erlaubt inzwischen eine Neukonfigurierung der I/O-Blöcke (IOBs), um unterschiedlichste I/O-Standards zu unterstützen. Jedoch können die auswählbaren I/O-Ressourcen die Funktion der Boundary-Scan-Zellenarchitektur hinter den re-konfigurierbaren IOBs verändern. Das Beispiel in Bild 7b einer LVDS Eingangskonfiguration zeigt, wie der Boundary-Scan-Zellenstatus auf eine einzige Eingangszelle gewechselt hat, während die übrigen fünf Zellen keine Boundary-Scan- Funktion mehr haben, außer als interne Zellen, um die Kette zu vervollständigen. Dies bedeutet, dass Boundary-Scan-Tests, die für den vorkonfigurierten Zustand entwickelt wurden, nicht mehr genutzt werden können, sobald das Bauteil konfiguriert wurde. In diesem Fall müssen die Tests entsprechend der Post-Konfiguration des Boundary-Scan-Status neu erstellt werden, wie in der Post-Konfigurations BSDL-Datei beschrieben. Anmerkung: Die Anbieter von FPGA Tools stellen meist ein Hilfsprogramm zur Verfügung, um automatisch eine Post-Konfigurations BSDL-Datei für den Verbindungstest zu erstellen. Von Xilinx ist eine BSDLAnno Utility (Referenznummer # 15346) in der Xilinx Knowledge Database erhältlich, die alle notwendigen Design-Informationen aus der “ncd” Datei für FPGAs und der “pnx” Datei für cPLDs erhält und eine BSDL-Datei für die Post-Konfiguration der Boundary-Scan-Architektur generiert. Copyright © 2013 JTAG Technologies 15
2 2.8 Optimierung der Flash-Programmierung 2.8.1 AutoWrite™ Zugriff Wie wichtig die Optimierung bei der Flash-Programmierung ist, wurde bereits im Abschnitt 2.2.4 erörtert, als die Notwendigkeit betont wurde, dass die Längen der Scan-Ketten auf einem absoluten Minimum gehalten werden sollten. Dieser Prozess kann durch den Einsatz der AutoWrite™ Funktion von JTAG Technologies weiter verbessert werden. Diese Funktion nutzt einen externen WE-Strobe Impuls für jeden Schreibzyklus des Flash-Speichers, anstatt auf jede Adresse dreimal zuzugreifen, um das WE-Signal entsprechend zu steuern. Wie in Bild 8 gezeigt, lässt sich dies durch die Verbindung des WE-Signals mit einem Steckverbinder erreichen (oder auf einen Stecksockel, wenn dies möglich ist), so dass dieser mit dem AW-Pin (Pin 13) des JTAG Technologies TAP Pod verbunden werden kann. Bild 8 – AutoWrite™ Zugriff 2.8.2 Vermeidung von Signalkonflikten Um diese Möglichkeit nutzen zu können, muss der Pin zur Ansteuerung des WE-Signals (in diesem Beispiel vom Prozessor) in einen hochohmigen Zustand gebracht werden, da es sonst zwischen dem WE-Signal des Prozessors und dem AW-Signal des TAP Pods zu Konflikten kommt. Bild 9 zeigt die Realisierung, wie sich dies über die Steuerzelle der zugehörigen Treiberzelle, die das AW-Signal liefert, steuern lässt und wie dies in der Boundary-Scan-Register-Beschreibung der BSDL- Datei dargestellt ist. Bild 9 - Vermeidung von Signalkonflikten Copyright © 2013 JTAG Technologies 16
2 2.8.3 Zellen mit drei und zwei Ausgangszuständen Im oben genannten Beispiel der Beschreibung der Boundary-Scan-Register wird das wr_b Signal als eine 3-Zustands-Ausgangszelle beschrieben, da das Signal auf diesem Pin logisch “1”, logisch “0” oder “HighZ” annehmen kann. Dies ist auch im Zellendiagramm am oberen linken Rand von Bild 9 ersichtlich, in dem eine logische “1” in die Zelle 145 des Boundary-Scan-Registers geschoben wurde, um die Ausgangszelle zu deaktivieren. Dagegen wird das Signal we0_b_bs (Zelle 125) als eine 2-Zustands-Ausgangszelle beschrieben, in der das Signal dieses Pins nur auf logisch “1” oder logisch “0” gesetzt werden kann, nicht aber in einen hochohmigen Zustand. In dieser Situation kommt es zu einem Konflikt zwischen dem we0_b_bs Signal und dem AW-Signal. 2.8.4 Steuerung gruppierter Kontroll-Zellen Es kann auch vorkommen, dass nicht jede Ausgangszelle eine eigene Steuerzelle zur Verfügung hat, sondern eine Steuerzelle mehrere Ausgangszellen steuert, wie in Bild 10 gezeigt. In diesem Beispiel steuert die Boundary-Scan-Zelle 74 nicht nur das AW-Signal, sondern auch andere Signale, die mit dem Ziel-Flash-Speicherbauteil verbunden sind. Wenn anschließend ein sicherer logischer “1” Wert in die Zelle 74 geschoben wird, werden alle mit dieser Zelle verbundenen Signale in einen hochohmigen Zustand gesetzt. Bild 10 - Steuerung gruppierter Kontroll-Zellen 2.8.5 AutoWrite™ Gate-Steuerung Bei den in den Abbildungen 9 & 10 dargestellten Szenarien besteht die einzige Lösung darin eine Form der Gate-Steuerung zu verwenden, um das WE-Signal direkt vom Prozessor anzusteuern und somit einen bestimmten Betriebsmodus auszuwählen. Für den Produktionstest kann das AW-Signal zur Optimierung der Flash-Programmierungen genutzt werden. Diese Gate-Steuerung kann mit Hilfe zusätzlicher Logik oder in ein cPLD Core integriert werden. Ein Beispiel für dieses Szenario wird in Bild 11 unten gezeigt. Bild 11 - AutoWrite Gate-Steuerung Copyright © 2013 JTAG Technologies 17
2 2.8.6 Optimierung der Flash-Programmierung - Reduzierung der Kettenlänge Flash programming times may be affected by a number of factors such as maximum clock frequency, device programming mode (e.g. use of page buffers), use of AutoWrite™ (see above) and also total boundary-scan register length. By significantly reducing the length of the boundary scan chain so that fewer bits are shifted for each flash memory read/write cycle, programming times can be vastly impro- ved. In many instance however overall scan chain length is fixed at the design stage and so to take ad- vantage of this factor it may be necessary to use alternative device types. For example if a large FPGA with a >2000 bit register were accessing a flash via standard buffers why not replace the standard buffers with 1149.1 compliant versions or even low-cost low-pin count CPLDs that accomplish the same task and only use a 100 or so scan cells. In this instance the large FPGA can be bypassed using HIGHZ and the short chain alternative parts accessed. 2.8.7 Optimierung der Flash-Programmierung - Aufteilung der Boundary-Scan-Datenregister Einige Entwickler kundenspezifischer ASICs lösen das Problem der Vektoroptimierung, indem die Boundary-Scan-Architektur so ausgelegt wird, dass auf das FLASH-Register als partielles Register zu- gegriffen werden kann (siehe Bild 12). In diesem Design wird durch den obligatorischen EXTEST Be- fehl das vollständige Boundary-Scan-Datenregister ausgewählt, das aus 650 Zellen besteht. Dagegen erlaubt der Bauteil-spezifische FLASH_PRG Befehl die Auswahl des kürzeren (in rot hervorgehobene) aus nur 125 Zellen bestehenden FLASH-Registers. Diese Art der Konfiguration ist äußerst vorteilhaft, wenn auf den Flash-Speicher über ein kundenspezifisches Bauteil zugegriffen werden kann und der ASIC Entwickler die Freiheit hat, die Bauteilspezifische Boundary-Scan-Architektur entsprechend der jeweiligen DFT-Anforderungen zu implementieren. Bild 12 - Aufteilung der Boundary-Scan-Register 2.8.8. Optimierung Flash Programmierung – Embedded Flash Controller – NAND Flash Auf den verschiedensten weltweiten Konferenzen zum Thema Test werden jedes Jahr viele neue alter- native Methoden zur Optimierung der Flash-Programmierung vorgestellt. Philips Research mit Sitz in den Niederlanden stellte auf der International Test Conference das folgende Konzept vor: Durch das Implementieren eines Embedded Flash Memory Controllers in einem programmierbaren Baustein (cPld oder FPGA) auf Grundlage von VHDL Code, wird der schnelle Zugriff auf einen Flash Speicher ermöglicht. Die Steuerung dieses Embedded Controllers geschieht über den auf den IEEE 1149.1 Test Access Port (TAP). Der serielle Datenbus (TDI/TDO) ermöglicht den Zugriff auf das Datenregister, um dort die Flash- adressen und Daten abzulegen. Der Embedded Controller übernimmt, mit dem jeweilig erforder- lichen Algorithmus, den Read- und Write Zugriff auf einen extern angeschlossenen Flash Baustein. Dadurch können andere Boundary Scan Bausteine in BYPASS, CLAMP oder HIGHZ gehalten werden. Copyright © 2013 JTAG Technologies 18
2 Bild 13 Embedded Flash Controller In diesem Beispiel können die Adress- und Daten mit maximal möglicher TCK Frequenz in das FPGA geschoben werden, da der im FPGA implementierte Embedded Controller die Programmierung mit System Speed übernimmt. Eine weitere Möglichkeit eines Embedded Controllers zur schnellen NAND Flash Programmierung ist die Altera VJI (Virtual JTAG Interface) „Megafunction“, welche eine direkte Verbindung zwischen Embedded Controller und einem existierenden Highspeed Interface (z.B. LAN, SD-CARD oder USB) nutzt, um auf diese weise den NAND Flash Baustein mit System Speed zu programmieren. Auf diese Weise werden die Daten nicht über normalen JTAG Port geschrieben da dieser lediglich zur Ansteu- erung und Kontrolle genutzt wird. Bild 14 - Erzwingen des JTAG-Modus beim Einschalten Copyright © 2013 JTAG Technologies 19
2 2.9 Bauteilspezifische DFT Anforderungen 2.9.1 Betrieb von zwei Ports - Standardmäßiger Background Debug Mode (BDM) Einige Boundary-Scan-Bauteile erfordern spezielle Überlegungen, um den JTAG Betriebsmodus aus- zuwählen. Dies ist dann der Fall, wenn die Boundary-Scan-Steuer-Pins eine zweifach gemultiplexte Funktion aufweisen und sowohl einen Zugriff auf den IEEE Std. 1149.1 TAP Controller als auch einen Zugriff auf einen proprietären Debug Port erlauben. Dies wird zum Problem, wenn der Standardmodus beim Einschalten den Zugang zum proprietä- ren Debug Port und nicht zum IEEE 1149.1 TAP Port aktiviert. Unter diesen Umständen ist es nicht möglich, einen Zugang zum IEEE 1149.1 TAP Controller zu erhalten und Boundary-Scan-Tests in irgendeiner Form auszuführen. Ein Beispiel für dieses Einschalt-Szenario ist in Bild14 dargestellt. Hier geht das Bauteil standardmäßig in den Background Debug Modus, es sei denn bestimmte Daten-Pins innerhalb des Konfigurationsre- gisters des Bauteils werden beim Einschalten auf logisch “1” und “0” gesetzt, so dass der 1149.1 TAP Controller Port ausgewählt wird. Bild 15 - Erzwingen des JTAG-Modus beim Einschalten 2.10 Design-for-Test - Weitere Überlegungen 2.10.1 Steuerung von Watchdog-Schaltungen Unter bestimmten Testbedingungen ist es ratsam, alle Watchdog-Schaltkreis der Baugruppe während des Boundary-Scan-Tests abzuschalten. Bei laufenden Watchdog Schaltkreisen kann es zu einem ungewolltem Reset des Prozessors auf der Baugruppe kommen, welche dieses Bauteil sofort in den Test Logic Reset Modus (TLR) schickt, die Boundary-Scan Kette sofort unterbricht und in den normalen Betriebsmodus des Bausteins gelangt. Diese Situation tritt am wahrscheinlichsten während einer längeren Testsequenz auf, welche die Dau- er der Watchdog-Zeitüberwachung überschreitet, wie zum Beispiel bei einer Flash-Programmierung. Wenn möglich sollte die Watchdog-Schaltung über eine unbenutzte Boundary-Scan-Zelle oder durch einen Jumper deaktiviert werden können. 2.10.2 Konfigurierbare Abschlusswiderstände Sie sollten sich nicht auf konfigurierbare Pull-Up/Pull-Down Abschlusswiderstande, welche zur Steu- erung der internen Logik innerhalb von FPGA-Bausteinen dienen, verlassen. Der Grund dafür liegt darin, dass diese programmierbaren Abschlusswiderstände des Bausteins im vorkonfigurierten Zustand nicht aktiv sind und zu einem unzuverlässigen Betrieb während des Tests führen können. Copyright © 2013 JTAG Technologies 20
3 2.11 Embedded JTAG Control Optionen 2.11.1 Implementieren eines embedded USB-to-JTAG Treiber Bausteins. Um einen praktischen Zugriff auf die JTAG Infrastruktur einer Baugruppe zu erhalten, sei es für Ser- vicezwecke oder Feldrückläufer, kann es sinnvoll sein einen Built-in JTAG Controller zu nutzen. Somit wäre der Einsatz eines externen JTAG Controllers nicht notwendig. Solch ein Baustein, der auch von JTAG Technologies unterstützt wird, ist der FTDI 2232 Baustein. Der Implementierung bedarf es nur eines geringen design Aufwandes, da hierfür nur der FTDI 2232 Baustein, ein serielles PROM und ein 6 MHz Oscillator benötigt werden. Das folgende Blockdia- gramm gibt einen Überblick der beschriebenen Anforderungen. Falls Sie hierzu weitere Informationen benötigen, können Sie gerne bei unseren lokalen Supportbüros anfragen. Figure 16 – Embedded USB => JTAG controller/Treiber Hinweis: Es ist möglich eigene FDTI basierende Programmer als Interface zu den Softwarepaketen von JTAG Technolgies zu ver- wenden. Hierbei muss dem TRST Pin besondere Beachtung geschenkt werden. Falls die korrekte Ansteuerung des TRST Pins nicht möglich ist (High während des Tests), muss dieser manuell auf high gesetzt werden können. 2.11.2 Hinzufügen eines embedded JTAG Controllers. Unter 2.11.1 wurde das Implemtieren des Boundary Scan Controllers im Design beschrieben. Die notwendigen Testmuster werden vom PC über die USB Schnittstelle auf die Baugruppe gebracht. Es ist allerdings auch möglich einen embedded Boundary Scan Controller einzusetzten, der einen Onboard Speicher nutzt, um die erforderlichen Testvektoren abzulegen. Diese können dann bei Bedarf als Teil eines Unter 2.11.1 wurde das Implementieren des Boundary Scan Controllers im Design beschrieben. Die notwendigen Testmuster werden vom PC über die USB Schnittstelle auf die Baugruppe gebracht. Es ist allerdings auch möglich einen embedded Boundary Scan Controller einzusetzen, der einen Onboard Speicher nutzt, um die erforderlichen Testvektoren abzulegen. Diese können dann bei Bedarf als Teil eines POST (Power-On-Self-Test) verwendet werden. Obwohl es nicht allzu schwierig ist einen „Master“ JTAG Controller in einen existierenden Logikbaustein (z.B. FPGA oder Microcontroller mit genügend freien I/Os) zu implementieren, ist die Erstellung und Komprimierung der Testmuster in dem entsprechenden Format nicht trivial. Insbesondere dann nicht, wenn es sich um ein komplexes Design handelt. Aus diesem Grund verwenden Designer in der Regel Embedded JTAG Controller Lösungen, wie zum Beispiel den STA101 von National Semiconductor oder den JTS01 von Firecron. Diese Copyright © 2013 JTAG Technologies 21
4 Bauteile verfügen über die Möglichkeit die entsprechenden Boundary Scan Kette(n) zu steuern. Des weiteren verfügen diese Lösungen über Compiler, um bestehende Testvektoren, von verschiedenen Boundary Scan Anbietern wie JTAG Technologies zu verwenden und diese in das benötigte Format zu bringen, welches vom Onboard Controller gelesen und anschließend ausgeführt werden kann. Anmerkungen zum Board Layout 3.1 Trennen der TAP Signale im Design Um das Überschwingen der Datensignale (TDI, TDO) und der Controllsignale (TMS, TCK) zu vermei- den, sollten diese durch eine Ground Fläche abgeschirmt/getrennt werden. Falls möglich sollten Sie die TDI/TDO Signale auf dem Top- oder Bottomlayer routen, um einen einfachen Zugriff während des Debugs zu gewährleisten. 3.2 Implemtierung von Abschlusswiderständen Wird beim routen eines Signals der Layer gewech- selt bzw. eine Stichleitung verwendet hat dies aus- wirkungen auf die Impedanz und führt somit zu einer entsprechenden Reflektion auf der Leitung. Berechnung des Reflektionswiderstandes: (Zo –Zi)/ (Zo + Zi) Im Bild 17a sollte die Terminierung am Punkt 1 der TCK Leitung positioniert werden, um ein Figure17a) Best termination point for TCK –standard layout optimales TCK Signal zu gewährleisten. Eine Terminierung am Ende von langen Stichleitungen (Punkt 2 oder Punkt 3) kann zu unsauberen Signalen und somit zu falschen Takten führen. Aus diesem Grund sollten Stichleitungen so kurz wie möglich gehalten werden. Alternativ sollte die Terminierung am Sternpunkt erfoglen (siehe Bild 17b). Eine weitere Lösung ist das Routen einer separaten Clock Leitung vom TAP Connector zu jeden einzel- nen Baustein mit der entsprechenden Terminierung (siehe Bild 17c). Allerdings kann die Summer der entsprechenden Terminierungswiderstände dafür sorgen, dass der TCK Treiber zu stark belastet wird. In diesem Fall muss ein Bufferbaustein implementiert werden. Figure17b) Best termination point for TCK –star layout Figure17c) Best termination point for TCK –star layout with multiple R-C networks 3.3 Effekte bei der Verwendung von BGA Bausteinen Die Verwendung von BGABausteinen in einem Design bringt zusätzliche Effekte. Sogenannte „Power Plane Killer“, von der Kupferfläche frei gehaltenen Bereiche um Vias, Netze und Pads verändern signifi- kant die Impedanz der Signale. Bitte beachten Sie dies beim Routen.  Copyright © 2013 JTAG Technologies 22
5 Kontaktinformationen Weitere Informationen über JTAG Technologies Produkte: Wenn Sie Boundary-Scan für den Test oder die In-System-Programmierung einsetzen möchten und weitere Unterstützung oder Produktinformationen benötigen, kontaktieren Sie bitte: Vertriebs- und Kundendienstbüros von JTAG Technologies: Europa und restliche Welt: Die Kontaktdaten der lokalen Vertriebsbüros von JTAG Technologies finden Sie auf unserer Website unter www.jtag.com /sales. IEEE Standards: - IEEE Std 1149.1-2001 - IEEE Standard Test Access Port und Boundary-Scan Architektur (löst die frühe- ren Versionen IEEE 1149.1-1990 (einschließlich 1149.1a-1993) und IEEE 1149.1b-1994 und Errata ab) - IEEE Std 1532-2001 - IEEE Standard for In-System-Configuration of Programmable Devices (löst IEEE 1532-2000 ab) Weitere Informationen über die IEEE Standards: IEEE Customer Service 445 Hoes Lane PO Box 1331 Piscataway NJ 08855-1331 USA Telefon: (800) 701 4333 ( innerhalb USA und Kanada) Fax: (732) 981 9667 Telefon: (732) 981 0060 ( außerhalb USA und Kanada) E-Mail: customer.service@ieee.org Internet: www.ieee.org Weitere Informationen zu JEDEC: Wenn Ihr Unternehmen eigene ASICs mit Boundary-Scan entwickelt und Sie JEDEC Manufacturer ID Codes (JEP106) benötigen, wenden Sie sich bitte an JEDEC - Technical Affairs of the Electronic Industries Alliance (EIA): JEDEC - Technical Affairs 2500 Wilson Boulevard, Arlington VA 22201-3834, USA Telefon: +1 703 907 7558 E-Mail: kenm@eia.org Fax: +1 703 907 7583 Internet: www.jedec.org Europe and ROW T: +31 (0) 40-2950870 USA, Canada and Mexico F: +31 (0) 40-2468471 T: (Toll Free) 877-FOR-JTAG E: info@jtag.nl F: 410-604-2109 E: info@jtag.com United Kingdom & Ireland T: +44 (0) 1234-831212 China (Malaysia, Singapore, Taiwan, Thailand) F: +44 (0) 1234-831616 T: +86 (021) 5831-1577 E: sales@jtag.co.uk F: +86 (021) 5831-2167 E: info@jtag.com.cn Germany T: +49 (0) 971-6991064 F: +49 (0) 091-6991192 E: germany@jtag.com Copyright © 2013 JTAG Technologies 23
Sie können auch lesen