Forum: FPGA, VHDL & Co. XSVF-Datei in ein für Menschen lesbares Format umwandeln (z.B. VHDL)


von Frank P. (frank_p883)


Lesenswert?

Hallo,

ich habe eine XSVF-Datei von einem XC9572.
Leider gibt es keine Unterlagen mehr zu dem Projekt :-(
Die Hardware selber funktioniert auch noch und man käme auch an das 
JTAg-Interface.

Gibt es eine Möglichkeit, die Programmierung zurückzulesen (ich habe von 
"readback" über impact gelesen)?

Oder gibt es eine Möglichkeit die XSVF-Date irgendwie zurückzuwandeln?

Vielen Dank
Frank

von Rente mit 76 (Gast)


Lesenswert?

> Gibt es eine Möglichkeit, die Programmierung zurückzulesen (ich habe von
> "readback" über impact gelesen)?

Kein Problem, wenn nicht jmd die Sperre gegen Auslesen gesetzt hat.
Meine XC95... z.B. kannst du nicht mehr lesen.

von Gustl B. (-gb-)


Lesenswert?

Frank P. schrieb:
> Oder gibt es eine Möglichkeit die XSVF-Date irgendwie zurückzuwandeln?

Schwer. Aber diese alten Bausteine sollten mittlerweile vollständig 
dokumentiert sein, also welches Bit was bewirkt.
Daraus ein eindeutiged HDL zu bauen geht glaube ich nicht. Das ist 
schlicht keine eindeutige Sache, denn viele sehr unterschiedliche HDL 
Beschreibungen können zu exakt dem gleichen Bitstream führen.
Wenn man also daraus wieder HDL macht, dann wird es wohl etwas das wenig 
mit dem zu tun hat was früher mal geschrieben wurde.

von Rente mit 76 (Gast)


Lesenswert?

Aber aus dem gelesenen .bit-File bekommst du genau keinen VHDL-Text mehr 
zusammengerödelt - du kannst damit lediglich weitere Schaltkreise 
programmieren.

von Fitzebutze (Gast)


Lesenswert?

Auslesen kann man immer (die Xilinx-JTAG-Primitiven lassen sich gut 
glitchen), die Bit-Map hast du per XSVF aber ja bereits. Daraus aber 
eine lesbare Netzliste zu reversen ist mit einem Haufen Arbeit 
verbunden, und die Tools dafür sind etwas verwaist. Bei CPLDs dank der 
Makrozellen weniger aufwendig als beim FPGA, aber dann hast du immer 
noch nichts, was du bearbeiten kannst. Also: besser die Schaltung als 
Blackbox 'erraten' und nachbauen.

von Frank P. (frank_p883)


Lesenswert?

Danke für die schnelle Rückmeldung!

Mit dem "erraten" habe ich befürchtet :-)

von Duke Scarring (Gast)


Lesenswert?

Prinzipiell sollte das Rückübersetzen gehen. Bei CPLDs, wie dem XC9572, 
könnte das auch noch überschaubar sein. Die Information welches Bit 
wofür steht, hat Xilinx und auch die entsprechenden Tools. Aber er wird 
die wohl nicht so recht rausrücken.

Für's nachentwickeln ist es hilfreich erstmal rauszufinden, was Eingang 
und was Ausgang (oder bidirektional) ist. BTDT.

Duke

von Rente mit 76 (Gast)


Lesenswert?

> Prinzipiell sollte das Rückübersetzen gehen. Bei CPLDs, wie dem XC9572,
> könnte das auch noch überschaubar sein. Die Information welches Bit
> wofür steht, hat Xilinx und auch die entsprechenden Tools. Aber er wird
> die wohl nicht so recht rausrücken.

Bei mir arbeiten sich die chinesischen Genossen seit 2007 an diesem 
Problem ab (9536Xl und 9572XL). Resultat: sie kaufen immer noch dmeine 
Originalgeräte.

von Frank P. (frank_p883)


Lesenswert?

Also das auslesen hat schon mal funktioniert, nachdem der China-Clone 
angekommen ist...kein Leseschutz.
Heraus kommt ein JEDEC-File > Das werde ich jetzt noch  mal mit 
xsvf-File vergleichen....wenn ich ein Tool dazu finde.
Ob sich das JEDEC-File auch zurückverwandeln lässt habe ich noch nicht 
heruasgefunden.

Ansonsten war dieser Thread ganz hilfreich: 
Beitrag "Xilinx XC9572"

: Bearbeitet durch User
von Christian R. (supachris)


Lesenswert?

Das jedec kann man wenn ich mich richtig erinnere, mit impact statt in 
das PLD in ein xsvf "brennen". Das war mal für solche Sachen wie die 
xapp058 wichtig... ist aber lange her. War das nicht so, dass im xsvf 
dann die JTAG "Anleitung" steht?

von Frank P. (frank_p883)


Lesenswert?

Also die XSVF-Datei aus dem Projekt stimmt nicht im geringsten mit dem 
was ich als XSVF-Date aus dem JEDEC-File über Impact bekommen 
habe....Allerdings kann ich nicht sagen, wo er Fehler ist.

von Frank P. (frank_p883)


Lesenswert?

Hallo noch mal ein Frage in die Runde:

Ist es möglich, dass verschiedene IMPACT Versionen unterschiedliche 
XSVF-Dateien erzeugen? Ich kenne mich zuwenig mit der Materie aus, ich 
hätte erwartet, dass immer der gleiche Code herauskommt, weil auch die 
gleiche Funktion in das EPROM/Flash (Sind zwar Makro-Blöcke ab bei 
10.000 Zyklen erinnert mich das an was anderes) des Bausteins 
programmiert wird.

Meine Beiden Dateien haben jeweils 51KB aber haben komplett andere Daten 
als Inhalt...fängt schon am Anfang an:

JEDEC to XSVF:
0720 1200 1201 0400 0000 0002 08FE 0800 0000 2001 FFFF FFFF 0900 0000 
0029 5040 9302 08FF 0208 E802 08ED 0400 13D6 2008 0000 001B 0100 0000 
0009 003F FFFE 0000 0000 0100 0000 0309 003F FFFE 0000 0003 0100 0000 
0009 007F FFFE 0000 0000 0100

XSVF aus µC:
0708 1201 0400 0000 0002 08FF 0208 FE08 0000 0020 010F FFFF FF09 FFFF 
FFFF 0950 4093 0208 FF02 08E8 0800 0000 0801 0009 3F00 0208 EC04 0013 
D620 0800 0000 1B01 0000 0000 0900 3FFF FE00 0000 0001 0000 0003 0900 
BFFF FE00 0000 0309 013F FFFE

Mal abgesehen, dass einges nur verschoben ist, weil da noch Befehle 
dazwischen geschoben wurde....

von Martin S. (strubi)


Lesenswert?

Christian R. schrieb:
> War das nicht so, dass im xsvf
> dann die JTAG "Anleitung" steht?

Genau, die Konsequenz davon:

Frank P. schrieb:
> Also die XSVF-Datei aus dem Projekt stimmt nicht im geringsten mit dem
> was ich als XSVF-Date aus dem JEDEC-File über Impact bekommen
> habe

Wenn ich mich nicht irre (lange her), gilt 'random access' fuer die 
Makrozellen, d.h. je nach Tool kann die JTAG-Sequenz voellig 
unterschiedlich aussehen.
Also: Die XSVF muesstest du nach JTAG-Kommandos reverse-engineeren, um 
daraus die Landkarte fuer die Makrozellenconfig rauszukriegen.
Aus XSVF konnte man auch mal SVF machen und das dann im Text 
anschauen/parsen.

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.