- Serial Vector Format
-
Das Serial Vector Format (kurz: SVF) ist ein Dateiformat zum Austausch von Boundary Scan Testvektoren. Es wurde 1991 gemeinsam von Texas Instruments und Teradyne mit dem Ziel einer herstellerunabhängigen Beschreibung von JTAG-Operationen entwickelt. Heute wird es von dem Unternehmen ASSET InterTech gepflegt. Das Serial Vector Format ist neben dem Gebrauch bei ATE-Systemen auch als Programmierdatei für Programmierbare logische Schaltungen und Mikrocontrollern üblich.
Inhaltsverzeichnis
Aufbau
SVF-Dateien enthalten eine Folge von SVF-Anweisungen, die beschreiben, wie die JTAG-State-Machine durchlaufen werden soll. Die beiden wesentlichen Kommandos sind die Schiebeanweisungen SIR (Scan Instruction Register) und SDR (Scan Data Register). SIR führt eine Schiebeoperation in das Instruction Register, SDR eine Schiebeoperation in das momentan aktive Datenregister durch, jeweils mit einer angegebenen Anzahl von Bits. Als Parameter kann ein Wert angegeben werden, der in das Register hineingeschoben wird, sowie ein erwarteter Ausgangswert. Beiden Parameter kann zusätzlich eine Bitmaske zugeordnet werden, die angibt, welche der geschobenen Bits ausgewertet werden sollen. Diese Parameter werden in Hexadezimal angegeben. Für den Fall, dass in einer JTAG-Chain mehr als ein Bauteil enthalten ist, kann ein Header und ein Trailer festgelegt werden, welche die zusätzlichen Bits in die Schiebeoperationen aufnehmen, die für die Durchquerung der anderen Bauteile benötigt werden. Das Kommando RUNTEST hält die JTAG-State-Machine für eine bestimmte Zeit oder eine bestimmte Anzahl von TCK-Taktflanken im Runtest/Idle Zustand. Mit dieser Anweisung lassen sich zum Beispiel für Programmieralgorithmen benötigte Wartezeiten realisieren.
SVF ist ein ASCII-Format, so dass es leicht gelesen und modifiziert werden kann. Eine Zeile darf maximal 256 Zeichen lang sein, eine Anweisung kann sich aber über mehrere Zeilen erstrecken. Jede Anweisung wird mit einem Semikolon abgeschlossen. Kommentare lassen sich mit einem führenden Ausrufezeichen '!' oder zwei Schrägstrichen '//' einfügen.
Beispiel
// Testbus Reset, Instruction- und Data-Register-Scans im IDLE-State beenden. TRST ON; TRST OFF; ENDIR IDLE; ENDDR IDLE; // Angabe der maximal erlaubten TCK-Frequenz, hier 1 MHz. FREQUENCY 1E6 HZ; // Header und Trailer auf 0 setzen (es befinden sich keine weiteren Bausteine in der JTAG-Chain). HIR 0; HDR 0; TIR 0; TDR 0; //Ein acht-Bit breites Instruction Register mit 0x42 laden. SIR 8 TDI (42); // 10 TCK warten RUNTEST 10 TCK; // Ein 32-Bit breites Datenregister lesen, es wird der Wert 0x1234567 erwartet. SDR 32 TDI (00000000) SMASK (ffffffff) TDO (f1234567) MASK (0fffffff); // Instruction 'Bypass' laden. SIR 8 TDI (ff); // Ende
Varianten
Eine Variante ist das XSVF-Format des Unternehmens Xilinx. Im Gegensatz zum SVF ist XSVF keine Ascii- sondern eine Binärdatei, es stellt sozusagen ein Kompilat einer SVF-Datei dar. Durch die binäre Darstellung werden kleinere Dateigrößen erreicht.[1]
Ein dem SVF ähnliches Dateiformat ist die von Altera entwickelte [2] und seit August 1999 von der JEDEC als JESD71 spezifizierte Standard Test and Programming Language (STAPL).[3]
Einzelnachweise
- ↑ Xilinx Application Note XAPP503: SVF and XSVF File Formats for Xilinx Devices (englisch)
- ↑ www.altera.com: ISP & the Jam STAPL (englisch)
- ↑ JESD71: Standard Test and Programming Language (STAPL) (englisch)
Weblinks
- www.asset-intertech.com: Serial Vector Format (englisch)
- Serial Vector Format Specification, Revision E. (englisch; PDF-Datei; 85 kB)
Wikimedia Foundation.