Ich arbeite mit einem Cyclone V GX Startboard. Es hat 4 MB externen SRAM. Ich habe eine sehr einfache Speicherschnittstelle für den Zugriff darauf geschrieben. Das funktioniert.
Jetzt möchte ich eine rohe (Hex?) Datei in den externen SRAM auf meinem Board laden, damit mein FPGA damit arbeiten kann. Gibt es eine einfache Möglichkeit, dies über Quartus II zu erreichen?
bearbeiten:
Ich suche keine Möglichkeit, mein FPGA zu programmieren (durch Laden eines Designs), das ist mir klar. Mein FPGA hat bereits mein Mikrocontroller-Design geladen. Jetzt möchte ich ein Programm (in Form von Rohdaten) dafür in das externe SRAM auf meinem Board laden.
Die vom eigentlichen Hersteller (Terasic) bereitgestellte Anwendung "Systemsteuerung" sollte Ihnen dies ermöglichen: Cyclone V GX-Board
Nein, es ist nicht möglich, direkt von Quartus II aus auf den SRAM des Cyclone V GX Starter Kits zuzugreifen. Ab Seite 37 des Benutzerhandbuchs ist das SRAM nur noch mit dem FPGA verbunden. Somit muss die Benutzeranwendung im FPGA dafür verantwortlich sein, die gewünschten Daten in den externen Speicher zu schreiben.
Wie von Zuofu erwähnt , kann das Terasic „C5G Control Panel“ für Sie auf den SRAM zugreifen und R/W-Zugriff auf einzelne Wörter oder R/W zu/von einer Datei ermöglichen. Dabei wird die benutzerdefinierte Terasic-Benutzeranwendung verwendet, um Daten mit JTAG an ein Nios II-Programm zu senden, das eine SRAM-Schnittstelle implementiert. Wie in ihrem späteren Kommentar erwähnt, könnten Sie Ihre HEX-Datei mit der Systemsteuerung laden, da SRAM vollständig statisch ist, und dann das FPGA mit Quartus II mit Ihrer eigenen Anwendung neu programmieren. Wenn die Platine kontinuierlich eingeschaltet ist, sind die SRAM-Inhalte weiterhin für Ihre Anwendung verfügbar.
Der Trick funktioniert nicht für den größeren LPDDR2, da eine Neuprogrammierung des FPGA als dynamischer Speicher das Gerät ohne Controller zurücklassen würde, um Aktualisierungszyklen im Speicher abzuschließen. Daher würden Sie erwarten, dass eine Speicherbeschädigung auftritt.
Um diese Art von Funktion in Ihre eigene Anwendung aufzunehmen, müssten Sie beide Enden eines JTAG-Kommunikationssystems implementieren, um Daten zu/von Ihrem Computer und auf das FPGA zu verschieben, um sie an das SRAM zu senden.
Chris Stratton
Benutzer2943160