Spartan 6 soll sich selber programmieren

Gast #2310076
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?
#2310129
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.
Gast #2310142
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
Gast #2310298
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.
#2310351
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren