Hallo zusammen, ich möchte einen FPGA (Spartan 3E) im Betrieb umkonfigurieren können. Am Spartan 3E hängt ein SPI-Flash aus dem der FPGA beim Starten seine Konfiguration erhält. Im System ist ebenfalls ein Microcontroller vorhanden. Die Idee war: In der FPGA-Konfig. eine "SPI-Weiche" zu realisieren, über die der MCU (wenn der FPGA "gebootet" hat) das Flash löschen und schreiben kann. Danach FPGA "resetten" und er holt sich seine neue Konfig. Aber was passiert, wenn beim Schreibvorgang ins Flash ein fehler passiert? Dann ist die "schöne SPI-Weiche" weg und ich kann den Flash nur noch über JTAG neu programmieren. Die Idee war nun einen Sektor im Flash zu schützen (write protect). Und genau in diesen Sektor die SPI-Weiche zu legen, so dass diese niemals überschrieben werden kann. Ähnlich zu einem Bootloader beim Mikrocontroller. Daher die Frage: Geht so etwas prinzipiell beim Spartan 3E oder ist das ausgeschlossen (wenn ja, warum)? Bzw. gibt es andere (einfachere) Lösungen? Edit: Ach so, hatte ich vergessen zu erwähnen: Es existiert bereits eine SPI-Schnittstelle zwischen MCU und FPGA, deshalb der Begriff "SPI-Weiche". Ob die SPI-Signale zum Flash oder für interne Zwecke des FPGAs genutzt werden sollen, soll über eine zusätzliche IO-Leitung zwischen den beiden Chips eingestellt werden. Dennoch müssen sowohl "FPGA-Normalprogramm" und "FPGA-Bootloader" die drei SCK-, MOSI- und MISO-Leitungen gemeinsam benutzten können. Danke & schöne Grüße, Alex
Das wird nicht klappen, dazu müsstest du das Design partitionieren, was meines Wissens vom Spartan 3e nicht unterstützt wird. Abhilfe schafft da nur Multiboot mit Fallback, ist aber erst ab Spartan 6 in den Xilinx FPGAs drin. Eventuell auch beim Extended Spartan 3A. Aber der 3e kann das nicht, daher ist das mit Vorsaicht zu genießen.
Mit Multiboot kenne ich mich nicht aus, was aber klappen müßte, wäre eine Neukonfiguration durch den Mikrocontroller. Wie das prinzipiell funktioniert, dazu gibt es hier im Wiki ein paar Artikel: http://www.mikrocontroller.net/articles/Low_Cost_FPGA_Konfiguration http://www.mikrocontroller.net/articles/FPGA_Konfiguration_mit_AVR_Butterfly Duke
Achso, klar mit einem externen µC über Slave Serial natürlich das einfachste. Oder die SPI leitungen parallel an den µC anschließen. ich dachte jetzt er hat einen Softcore.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.