Forum: FPGA, VHDL & Co. Spartan 6 soll sich selber programmieren


von tüddel (Gast)


Lesenswert?

Hallo Leute,

ich brauche mal etwas hilfe.
Ein Spartan 6 soll aus einem SPI-Flash geladen werden, wie es auch in 
der AppNote UG380 beschrieben wird.
Jetzt ist aber gefordert, das der FPGA dieses Flash selbster beschreiben 
soll, da der FPGA später in ein Gehäuse integriert wird. Er soll durch 
einen Bussystem (CAN) einfach ein neues Promfile bekommen und dieses in 
den Flash schreiben um nach dem nächsten "stromaus" das neue File zu 
booten.
Kennt ihr eine AppNote, die dies elektrisch beschreibt?

von Christian R. (supachris)


Lesenswert?

Da gibts meines Wissens keine direkte Appnote. Aber du musst ja nur 
einen SPI Master bauen. Nach der Konfig hast du uneingeschränkten 
Zugriff auf die SPI Pins, und kannst den Flash neu programmieren. Hast 
du einen SoftCore an Board? Rein elektrisch wird es in der XAPP1020 für 
den Virtex 5 beschrieben, musst halt bei Spartan 6 das STARTUP Modul 
weglassen, weil du direkten zugriff hast.

von Strubi (Gast)


Lesenswert?

Hi,

ich kenne zwar grade keine Appnote dazu, aber möchte zu bedenken geben, 
dass, wenn man sich das System mal versehentlich mit einem falschen File 
abgeschossen hat, der Ärger und Zusatzaufwand im Total mehr kosten kann 
als ein kleiner zuätzlicher uC als "Fallback". Allerdings wirds da mit 
CAN etwas schwierig.
Nehme mal an, dass du einen Softcore einsetzt, der die Firmware mit CRCs 
usw. überprüft?

Sonst, wenn ich mich recht entsinne, gehen alle SPI-Pins nach dem 
Programmieren in Tri-State und können frei genutzt werden. Also musst du 
nur noch die Programmierlogik entwickeln (dazu empfiehlt sich wohl 
wirklich auch ein Softcore). Elektrisch ergibt sich da nichts weiter.

Grüsse,

- Strubi

von tüddel (Gast)


Lesenswert?

Danke für die Tipps.

Und ja, es wir ein Softcore benutzt. Auch das Risiko mit dem falsch 
flashen ist mir bewußt. Das Promfile schreibe ich erst in ein Paralleles 
Flash oder RAM und danach in das Bootflash - so ist es zumindest 
geplant.

von Geraffel (Gast)


Lesenswert?

> und danach in das Bootflash

Und wenn dann der Strom ausfällt währenddessen?

von Christian R. (supachris)


Lesenswert?

Der Spartan 6 hat zum Glück Multiboot mit Fallback, wenn man also den 
unteren Speicherbereich nicht anfasst und dort ein funktionierendes 
Bitstream Image drin hat, ergeben sich die Probleme alle nicht wirklich. 
Bitgen hat da eine Option, die Startadresse des 2. Images anzugeben, 
wenn das Booten fehlschlägt, springt der auf das Image an Adresss 0 
zurück. Der Flash muss dann natürlich mindestens 2 komplette Bitstreams 
fassen.

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.