Forum: FPGA, VHDL & Co. Anleitung für SVF-Player gesucht


von Oliver K. (oliverkroll)


Lesenswert?

Ich möchte ein Xilinx-CPLD-Board mit einem 10-poligen JTAG-Anschluß mit 
einem USB-Blaster brennen. Die SVF-Datei ist erzeugt. xc3sprog und 
urJTAG sind installiert. Diese Anleitung ( 
http://ednolo.alumnos.upv.es/?p=1824 ) ist befolgt. Trotzdem bekomme ich 
noch die Fehlermeldung "Connection failed".
Kann mir jemand eine Anleitung geben, wie man einen SVF-Player zusammen 
mit einem USB-Blaster verwendet ?

von Oliver K. (oliverkroll)


Lesenswert?

Ich bin etwas weitergekommen.

In urJTAG habe ich eingegeben:
1
jtag> cable usbblaster
2
Connected to libftdi driver.

Als nächstes gibt man ein:
1
jtag> detect
2
IR length: 8
3
Chain length: 1
4
Device Id: 00111001011000000100000010010011 (0x0000000039604093)
5
  Manufacturer: Xilinx
6
  Part(0):         XC9572XL_VQ44
7
  Unknown stepping!
8
chain.c(149) Part 0 without active instruction
9
chain.c(200) Part 0 without active instruction
10
chain.c(149) Part 0 without active instruction

Das "Unknown stepping!" weist auf die Datei STEPPINGS hin, die bei mir 
im Ordner "/usr/local/share/urjtag/xilinx/xc9572xl_vq44/" liegt. In 
dieser Datei muß man selber einen 4-Bit-Code ändern (einfach alle 16 
Kombinationen ausprobieren) ( 
http://urjtag.org/book/_data_file_format.html#_stepping_list ).

Dann bekommt man die Ausgabe:
1
jtag> detect
2
IR length: 8
3
Chain length: 1
4
Device Id: 00111001011000000100000010010011 (0x0000000039604093)
5
  Manufacturer: Xilinx
6
  Part(0):         XC9572XL_VQ44
7
  Stepping:     0
8
  Filename:     /usr/local/share/urjtag/xilinx/xc9572xl_vq44/xc9572xl_vq44

Wenn man dann das CPLD programmieren möchte, kommt wieder eine 
Fehlermeldung:
1
jtag> svf [pfad]/led.svf stop progress
2
Warning: USB-Blaster frequency is fixed to 12000000 Hz
3
Parsing    500/5043 (  9%)Error svf: mismatch at position 48 for TDO
4
 in input file between line 508 col 1 and line 508 col 73
5
Error occurred for SVF command SDR.
6
Parsing   5040/5043 ( 99%)
7
Mismatches occurred between scanned device output and expected TDO values.

Das verwendete CPLD (über Ebay gekauft aus China) ist zu alt und wird 
nicht von allen ISE-Versionen unterstützt (ist auch anderen schon 
passiert, zum Beispiel: 
http://forums.xilinx.com/t5/CPLDs/XC9572-problem-with-IDCODE/m-p/364661 
).

Den Rest mache ich dann selber.

von Christian R. (supachris)


Lesenswert?

Oliver Kroll schrieb:
> Das verwendete CPLD (über Ebay gekauft aus China) ist zu alt und wird
> nicht von allen ISE-Versionen unterstützt

Echt? Ich kann mit der 14.4 problemlos XC9536XL programmieren, aber halt 
direkt über Impact und das Platform Cable II. Vielleicht ein Bug in der 
SVF Generierung, da schludert Xilinx gerne.

von Christoph Z. (christophz)


Lesenswert?

Oliver Kroll schrieb:
> jtag> svf [pfad]/led.svf stop progress
> Warning: USB-Blaster frequency is fixed to 12000000 Hz

Einen JTAG Takt von 12 MHz verträgt nicht jedes Leiterplattenlayout. 
Versuche mal herauszufinden, ob und wie man diesen Takt verlangsamen 
kann (oder Wartezyklen Einbauen kann bevor der USB Blaster die Daten 
liest).

von Christian R. (supachris)


Lesenswert?

Die JTAG Frequenz muss auch zur Frequenz im SVF passen, sonst stimmen 
die relativen Delays nicht. Man kann in Impact aber auch einstellen dass 
er die nötigen Delays in absolut ins svf schreibt, vielleicht hilft das 
ja.

von botnico (Gast)


Lesenswert?

Der Altera USB-Blaster hat eine unveränderbare Frequenz.
Die liegt meist deutlich niedriger als die 12 MHz.

Das Problem liegt in diesem Fall darin, dass sich die interne
Struktur der JTAG-Unit geändert hat. Das lässt sich mit der
neuesten bsdl datei vom Hersteller lösen. Diese in ein Verzeichnis
kopieren und mit "bsdl path /woauchimmer/" urjtag bekanntmachen.
Dann sollte es gehen.

von Oliver K. (oliverkroll)


Lesenswert?

zu Christian R.:
Ohne Platform Cable gibt es keine automatische Device-Erkennung. Ich 
mußte das Bauteil raten.

zu Christoph Z.:
Der USB-Blaster ist fest auf 12 MHz eingestellt. In einem Forum wurde 
empfohlen, die Frequenz herabzusetzen auf 500 kHz. Hat keine Wirkung 
gehabt beim USB-Blaster.

zu Christian R.:
Die Frequenz-Änderung in der SVF-Datei ist von mir manuell durchgeführt 
worden.

zu botnico:
"Das Problem liegt in diesem Fall darin, dass sich die interne
Struktur der JTAG-Unit geändert hat."
Ich verstehe nicht, was das heißen soll. Der USB-Blaster hat sich nicht 
geändert, das CPLD auch nicht, die SVF-Datei wurde von mir verändert und 
die bsd-Datei und die Stepping-Datei mußten von mir geändert werden.

"Das lässt sich mit der neuesten bsdl datei vom Hersteller lösen."
Bei den downloadbaren Xilinx-bsd-Dateien fehlt die Steppings-Datei (oder 
ich hatte das gleiche Ergebnis).
Deshalb konnte ich die bloße bsd-Datei nicht verwenden (man braucht 
bsd-Datei und die Steppings-Datei (obwohl in der Steppings-Datei nur 
eine wichtige Zeile mit drei Angaben steht)).

Das eigentliche Problem ist aber inzwischen gelöst, ich kann jetzt mit 
dem SVF-Player urJTAG umgehen.

von Christoph Z. (christophz)


Lesenswert?

Oliver Kroll schrieb:
> Das eigentliche Problem ist aber inzwischen gelöst, ich kann jetzt mit
> dem SVF-Player urJTAG umgehen.

Super!

Wäre es möglich, dass du uns kurz beschreibst, wie es bei dir jetzt 
Funktioniert? Zum Einen bin ich neugierierg woran es gelegen hat, zum 
Anderen müssen dann andere nicht lange nach der Lösung suchen. Danke 
schon mal.

von user (Gast)


Lesenswert?

Der Trick ist die Zeiten in der SVF-Datei anzupassen. Die Zeiten mal 10 
nehmen hat bei mir geholfen.

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.