Forum: FPGA, VHDL & Co. JTAG Boundary Scan - BSDL-File Aufbau - BS-Cell Beschreibung


von Sabine (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich würde gern mittels BSDL-File sowie JTAG-Interface PortPins
verschiedener Bausteine (rück-)setzen/lesen. Das JTAG Interface steht
soweit. Der ID-Code kann beispielsweise ausglesen werden.

Momentan bin ich auf der Suche nach Dokumentation/Beipsielen, wie ich
BSD(L)-Files interpretieren muss (welche Shift-Befehle müssen generiert
werden, aufgrund der Boundary Scan Register Beschreibung).

die BSDL-Files im Detail beschreiben.
http://downloads.sourceforge.net/jtagpack/libjtag-0.0.4.tar.gz

>Vielleicht kennt ihr ja interessante links...
UNIVERSAL SCAN
http://www.youtube.com/watch?v=iKmq823GpDE
http://www.xilinx.com/support/documentation/application_notes/xapp476.pdf
Im Video wird mit dem EXTEST der Pin über Tristate =0 und Pin-BitAddr
geschaltet.
Also ist es möglich die Logik mit dem JTAG-Tab via
der Derivat-Info via BSD-File Deskriptor zu schalten und debuggen .
>Das Interpretieren der BSDLs ist da schon komplexer -verschiedene BS-Cells,
>wo Stehen die "Adressen" der Zellen in BSDL-File, ...)
z.B der physische Pin Pad PAD30 von einem XC3S50_PQ208 ist Bit-Zelle 0
z.B Zeile 2 des BSDL-Files
                                Bit Zelle
" 1 (BC_2, IO_P161, output3, X, (=0=), 1, PULL0)," & -- PAD30


http://www.xilinx.com/support/documentation/application_notes/xapp476.pdf
Example (from the xc3s50_pq208.bsd file):

attribute BOUNDARY_REGISTER of XC3S50_PQ208 : entity is
" 0 (BC_2, *, controlr, 1)," &
" 1 (BC_2, IO_P161, output3, X, 0, 1, PULL0)," & -- PAD30
" 2 (BC_2, IO_P161, input, X)," & -- PAD30
Lese mal den XC9536.BSD File der ist nicht so lang.
mfrname,XILINX mfrcode,049 device, XC9536_44VQ bsreg_len, 108 ir_len, 8 
ir_cap, 000XXX01 idcode, 9502
(bsreg_len, 108)  also 108 Register.
Jetz lese ich aber in einem C-Source code für ein
Altera Derivat EP1S10F780 das Beispiel
Parameter : dev_seq, jtag_seq_num, bsc_type */
/* dev_seq: */
/* -device sequence in JTAG chain, starts from 1 */
/* -for the first device in JTAG chain */
/* jtag_seq_num: */
/* -You need to check the jtag_seq_num for the */
/* -targeted IO pin from the targeted device BSDL */
/* -file, which can be downloaded from */
/* -www.altera.com */
/* -For an example, for EP1S10F780, its INIT_DONE */
/* -pin is pin W11. From the EP1S10F780 BSDL file, */
/* -I/O pin W11 is BSC Group 262, so the */
/* -jtag_seq_num for pin W11 is */
/* - jtag_seq_num = max_seq_num - BSC Group number */
/* - jtag_seq_num = 439 - 262 = 177 */ /* -Thus, the jtag_seq_num for 
I/O pin W11 in */
/* -EP1S10F780 is 177
Muss ich jetzt analog zum XC9536
108 - 0 also = 108  um an Bitzelle 0 zu kommen.
Ist somit 108 der index zur Zelle 0 ???
Ich suche über Google CodeSearch
Mit den Stichworten
blackfin BDSL
lang:c IDCODE BSDL
Leider ist das sehr Abstrakt gehalten.
Die Strukturen werden da gefüllt aber ich habe noch keinen Source
File gefunden womit die Gefüllte Struktur an das JTAG-TAP Port geht.

von Sabine (Gast)


Lesenswert?

Einfach ist das also nicht.
Der Deskriptor ist in der bsdl_local.h hinterlegt.

z.B

struct cell_info { /* basic cell spec entries */
int bit_num;
char *port_name;
 int cell_function;
char *basic_safe_value;
 /* the disable spec entries */
int ctrl_bit_num;
int disable_safe_value;


Zitat:
Für Boundary Scan benötigst du eine spezielle Software, die meist recht
teuer ist. Dann kannst du deine Netzliste einlesen und ein Testprogramm
generieren lassen, dass dein Board auf Kurzschlüsse usw testet, alle
BS-ICs prüft usw.
Spezielle Hardware brauchst du natürlich auch, muss ja von der Software
unterstützt werden.

Wir verwenden dazu die Software von Göpel Electronic, mit dem
USB-Scanbooster. Ist die einfachste Ausführung, kostete uns allerdingsc
schon ca 25.000 EUR.

von WEIF (Gast)


Lesenswert?

Hi,

ist ein anstrengendes Thema, oder ;o)

Das Setzen und Rücklesen von Portpins ist ja die Idee hinter BST.

Als Literatur hab ich von Parker "The Boundary Scan Handbook". Da gibts 
etwa 50 Seiten über BSDL. Aber auch der "Rest" ist gut beschrieben. Ist 
leider nicht ganz billig.

In welche Richtung willst du : PLD programmieren, Schaltungen testen 
oder Software debuggen ?

Schau mal bei Altera nach STAPL - ist ein Basic mit JTAG (JEDEC JEDS71), 
ein Interpreter ist im Sourcecode verfügbar - JAMPLAYER

Von Goepel gibts einen Boundary Scan Coach zum Runterladen, da kann man 
dem TAP und den Schieberegistern im Single-Step bei der Arbeit zuschauen

Bei asset-intertech.com gibts ein BS Tutorial, hat auch ein paar Seiten 
über BSDL

Links zum Thema BSDL :
jtagtools.sourceforge.net/index.html

Links zum BS
www.jscan.com/jscan_product.htm
www.simtec.co.uk/products/EB675001DIP/files/playxsvf-book/index.html
www.scanseer.com
www.ricreations.com/index.html
fjtag.sourceforge.net

Das sollte fürs erste reichn..

ciao

WEIF

von Chris S. (schris)


Lesenswert?

Tolles Thema.
Vielen Dank für die Stapl infos, werde mir einen USB Stapl programmierer
machen, der auch xsvf abspielen kann.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das Handbook gibts in drei Versionen:
ISBN 1402074964 (2003)  77 ... 183 € laut http://de.bookbutler.com
ISBN 0792382773 (1998)
ISBN 0792392701 (1992)

STAPL-Startseite:
http://www.altera.com/support/devices/tools/jam/tls-jam.html

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Hier kann man etwas mehr blättern als bei Amazon:
http://books.google.de/books?id=aUCgNOpyUbgC&output=html

Bibliotheksbestand laut http://swb.bsz-bw.de/ und 
https://webpac4.bsz-bw.de/WP.mafh.html nur zweimal in Karlsruhe 
Präsenzbestand, die ältere in fünf Städten - schade, das hätte ich mal 
ausgeliehen.

von WEIF (Gast)


Lesenswert?

Hi,

von TI gibts auch interessante Literatur

http://focus.ti.com/lit/an/ssya002d/ssya002d.pdf

ciao

WEIF

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.