Wie kann ich eine Datendatei über Quartus in ein externes SRAM laden?

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.

Theoretisch könnte ein Programmiertool, das über jtag mit dem FPGA verbunden ist, die Boundary-Scan-Funktionalität verwenden, um die I/Os des FPGA zu wackeln und so in einen daran angeschlossenen externen SRAM zu schreiben. In der Praxis wird das schmerzhaft langsam sein, und es wäre viel effizienter, ein Designfragment in das FPGA-Fabric zu laden, das dies auf effizientere Weise bewerkstelligen kann, möglicherweise unter Verwendung einer anderen Schnittstelle, um die Daten vom PC zu übertragen. Haben Sie darüber nachgedacht, einen SPI-Port oder einen SD-Kartensteckplatz hinzuzufügen oder zu prüfen, ob Sie Daten an den Konfigurations-Flash anhängen und von dort in den RAM kopieren können?
Bitte poste die Modellnummer deines Devboards.

Antworten (2)

Die vom eigentlichen Hersteller (Terasic) bereitgestellte Anwendung "Systemsteuerung" sollte Ihnen dies ermöglichen: Cyclone V GX-Board

das erfordert, dass das FPGA die Bedienfeld-Designdatei geladen hat, nicht wahr? Ich muss mein eigenes FPGA-Design laden und ihm einige Daten geben, mit denen es arbeiten kann.
Sie können zuerst die Bedienfeld-Designdatei laden, um den SRAM zu laden (das Bedienfeld selbst verwendet dazu automatisch die JTAG-DLLs). Nachdem Sie den SRAM über das Bedienfeld programmiert haben, können Sie Ihr FPGA-Design über die üblichen Altera-Tools laden. Der SRAM sollte vollständig statisch sein, daher ist dies kein Problem, und der Inhalt sollte erhalten bleiben, solange Sie die Stromversorgung der Platine nicht unterbrechen.

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.