Setzen Sie die Konfiguration des FPGA ohne Neuprogrammierung zurück

Ich mache ein Experiment auf dem Xilinx VC709-Board. Das Experiment beinhaltet das Entfernen und Einstecken des DDR3-RAMs, während das FPGA läuft. Aber jedes Mal, wenn ich den RAM wieder einstecke, muss ich das FPGA neu programmieren. Ich verwende JTAG, um das FPGA zu programmieren, was Zeit zum Programmieren braucht. Ich habe versucht, nur den Microblaze zurückzusetzen, der den RAM immer noch nicht erkennen konnte, wenn er während des Betriebs wieder eingesteckt wurde. Gibt es eine andere Möglichkeit, die Konfiguration zurückzusetzen, ohne neu programmieren zu müssen?

Danke

Es ist schwierig zu beantworten, ohne die Details Ihres Systems zu kennen - wie ist alles verkabelt. Sie sollten jedoch über einen Konfigurationsspeicher verfügen, in den Sie Ihr Programm hochladen können (beschleunigt die Neukonfiguration nach dem Zurücksetzen des FPGA). Wenn Sie alternativ einen DDR-Controller-Kern haben, sollte dieser ein Reset-Signal haben, das nach dem Einsetzen des RAM aktiviert werden muss. Obwohl DDR3 eigentlich nicht für Hot-Plugging gedacht ist.
Nein. Sie müssen umprogrammieren, dh umkonfigurieren. Aber es wird Möglichkeiten geben, von einem integrierten EEPROM oder ähnlichem aus neu zu konfigurieren (dauert < 1 Sekunde), dann müssen Sie das nur einmal mit JTAG programmieren. Es umfasst das Setzen von Links auf den Modus-Pins des FPGA und das Auswählen des EEPROM in der JTAG-Kette. Siehe Handbuch für die restlichen Details.
Verwenden Sie Hot-Swap-RAM? Das Einfügen von RAM (oder so ziemlich jedem Chip) in einen Stromkreis kann zu einem Latch-up führen und das Gerät schließlich töten.
Mir ist kein Sustem bekannt, mit dem Sie einen DDR-Speicher so einfach im laufenden Betrieb austauschen können. Sind Sie sicher, dass Sie das tun möchten?

Antworten (2)

Wenn Sie das DDR3-SDRAM-Modul entfernen, geht die Konfiguration im Modul verloren. Nachdem das DDR3-SDRAM wieder eingesteckt wurde, muss das RAM selbst neu initialisiert werden. Beispielsweise muss die gewünschte CAS-Latenz und Burstlänge konfiguriert werden (im Modul!) und das DCM (des Moduls) zurückgesetzt werden (falls verwendet).

Diese Konfiguration wird vom Speichercontroller durchgeführt, typischerweise nach dem Einschalten oder Zurücksetzen. Die FPGA-Boards von Xilinx usw. haben normalerweise eine Taste CPU_RESET(oder ähnliches), um ein Zurücksetzen des gesamten Microblaze-basierten Systems zu aktivieren. Wenn das Drücken dieser Taste hilft, können Sie das angehängte Signal auch selbst auslösen, um das System neu zu starten. BEARBEITEN : Ein Neustart des Microblaze reicht nicht aus, der Speichercontroller muss auch zurückgesetzt werden.

Ein einfacher Neustart des Speichercontrollers könnte auch eine Option sein, wenn das entsprechende Reset-Signal in Ihrem Design verfügbar ist. Aber der Status des Betriebssystems / der Anwendung würde normalerweise sowieso verloren gehen.

Das FPGA kann zurückgesetzt werden, indem das globale Set/Reset (GSR) zugewiesen wird. STARTUP_*Dieser "Pin" wird nach der Konfiguration automatisch von der Konfigurations-FSM vergeben und kann von der Komponente benutzerdefiniert zugewiesen werden .

Aus dem Virtex HDL-Bibliothekshandbuch:

Dieses Designelement wird verwendet, um Gerätepins und Logik mit dem Global Set/Reset (GSR)-Signal, dem dedizierten Global Tristate (GTS)-Routing, den internen Konfigurationssignalen oder den Eingangspins für das SPI PROM zu verbinden, wenn ein SPI PROM verwendet wird um das Gerät zu konfigurieren. Dieses Grundelement kann auch verwendet werden, um einen anderen Takt für die Startsequenz des Geräts am Ende der Konfiguration des Geräts zu spezifizieren und um über den Konfigurationstakt auf die interne Logik zuzugreifen.