Xilinx Spartan 6 programmieren

OP #2438879
Lesenswert?

Hallo zusammen,
ich habe bei einem aktuellen Projekt ein kleines Problem und wollte mal 
Fragen ob mir hier vielleicht jemand helfen kann.

Und zwar soll ich einen kleinen Spartan 6 (XC6SLX9) über zwei 
differentielle Leitungen mit einem größeren Spartan 6 (XC6SLX45) 
programmieren können.

Auf dem Board mit dem 9er Spartan wird es später einen kleinen Speicher 
geben in dem ein paar Sachen wie z.B. HW Version, SW Version, 
Bestückunsvariante und ähnliches abgelegt wird. Also würde ich gerne das 
Bit-File in dieses laden um später nicht bei jedem PowerOn das Bit-File 
übertragen zu müssen. Die Art des Speichers ist derzeit noch frei 
wählbar.) Falls es etwas zur Sache tut, es wird sehr wahrscheinlich auch 
ein pB oder uB auf dem 9er Spartan laufen und auf dem 45er Spartan läuft 
ein uB mit Linux.
Um zu schauen ob es funktioniert habe ich ein SP605 und ein LX9 Board 
von Silica bekommen. Aber leider fehlt mir noch die richtige Idee um 
dies zu realisieren.
Die einzigste Idee die ich bis jetzt hatte, ist eine direkte 
Programmierung des 9er Spartans ähnlich der Slave Serial Configuration 
(in UG380 beschrieben), jedoch fehlt mir dann die PROGRAM_B Leitung um 
den FPGA neu zu laden. (Oder kann man auch das PROGRAM_B intern im uB / 
pB auslösen)?
Aber vielleicht hat jemand auch eine ganz andere Idee wie man es machen 
kann.
Ich freue mich schon auf eure Ideen...
Gruß Boris
#2439003
Lesenswert?

Hm, das wird schwierig. Wenn du keinen Flash (SPI oder BPI) am 
Ziel-Spartan vorsiehst, hast du da keine Chance. Slave Serial braucht 4 
Leitungen (PROG_B, INIT_B, CCLK, DIN) Du kannst einen leeren Spartan nur 
über die entsprechenden Xilinx-Methoden programmieren, und 2 Leitungen 
reichen da nicht. Und differenziell auch nicht, das müsstest du vorher 
wieder nach single ended wandeln. Du kannst aber einen SPI Flash 
vorsehen, der quasi einen Bootloader enthält und dann über ein Protokoll 
deiner Wahl den SPI Flash von Ziel-Spartan aus neu beschreiben. Nach der 
Konfig sind alle Flash-Anschlüsse frei verfügbar. Beim Spartan 6 kannst 
du auch intern ein Reprog auslösen, wenn ich mich recht erinnere. 
Sinnvollerweise nimmt man dann einen Flash, in den der Bitstream 2 mal 
rein passt, denn der S6 kann Multiboot mit Fallback und Watchdog. Wenn 
beim Update was passiert, startet der immer noch mit dem Image an 
Adresse 0, das sollte man natürlich nicht überschreiben. Im Flash hast 
du dann auch noch genügend Platz für deine Board-Daten.
OP #2439730
Lesenswert?

Hallo Christian,
vielen Dank für deine schnelle Antwort. Die INIT_B Leitung hatte ich ja 
total vergessen. Ich mache mir mal Gedanken über deine Idee mit dem 
Bootloader. (Da hätte ich ja auch selbst drauf kommen können.) Und 
schaue ob ich das mit meinen zwei Boards hier aufbauen kann, bzw. ob ich 
dann noch alles im 9er Spartan unter bekomme.
Gruß Boris

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