DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies

Die Seite wird erstellt Titus-Stefan Marquardt
 
WEITER LESEN
DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
...We are boundary-scan.

WWW.JTAG.COM

DFT-Richtlinien für
elektronische Baugruppen

                ...We are boundary-scan.
DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
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
DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
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
DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
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
DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
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
DFT-Richtlinien für elektronische Baugruppen - WWW.JTAG.COM ...We are boundary-scan - JTAG Technologies
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