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 der Verwendung bei ATE-Systemen auch als Programmierdatei für Programmierbare logische Schaltungen und Mikrocontroller üblich.

Aufbau Bearbeiten

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 Parametern 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 Bearbeiten

// 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 Bearbeiten

Eine Variante ist das XSVF-Format des Unternehmens Xilinx. Im Gegensatz zum SVF ist XSVF keine Ascii-, sondern eine Binärdatei, es stellt eine Art komprimierte Form 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 Bearbeiten

  1. Xilinx Application Note XAPP503: SVF and XSVF File Formats for Xilinx Devices (englisch; PDF; 381 kB)
  2. ISP & the Jam STAPL (Memento vom 6. Juli 2009 im Internet Archive) (englisch)
  3. JESD71: Standard Test and Programming Language (STAPL) (englisch, Registrierung nötig)

Weblinks Bearbeiten