Forum: FPGA, VHDL & Co. Smartfusion RAM Initialisieren


von FPGA_Boon (Gast)


Lesenswert?

Hallo Leute,

ich habe hier ein Smartfusion Eval Kit vor mir liegen und versuche ein 
einfaches Design auf die Reihe zu bekommen.
Ich verwende den "RAM - Two Port" Core.
Ich greife nun auf acht verschiedene Adressen zu und lese Werte aus, die 
ich anschließend auf die LEDs mappe (z.B. die Wertfolge 
0,1,2,3,4,5,6,7).
Für die Simulation kann man den RAM vorher initialisieren.
In der Simulation funktioniert das Design korrekt und die Werte werden 
richtig ausgelesen.

Wie kann ich nun den RAM initialisieren?
Bei Altera oder Xilinx ist der RAM bereits im Bitstream mit gewünschten 
Werten belegt.

In den PDFs und der Libero Hilfe ist nur dieser eine Weg möglich:

Initialisieren im Flash/ESRAM (ENVM) --> Master --> Slave (RAM) alles 
über den APB3 Bus.

Gibt es keine "direkte" Möglichkeit?

von VHDL hotline (Gast)


Lesenswert?

Xilinx und Altera FPGAs basieren ja idR auf flüchtigem Speicher. D.h. 
der ganze Bitstrom wird beim power up in den flüchtigen 
Konfigurationsspeicher geladen und der flüchtige BRAM wird gleich mit 
initialisiert.

Der Smartfusion hat nicht-flüchtigen Konfigurationsspeicher. D.h. da 
wird nach einem power up nichts in Konfigurationszellen geladen, sondern 
es ist schon "da". Das wiederum heißt, dass da kein flüchtiger BRAM 
Speicher aus irgendeinem Bitstrom geladen werden kann, sondern nur aus 
dem nicht-flüchtigen Speicher (ENVM) initialisiert werden kann.

von FPGA_Boon (Gast)


Lesenswert?

Alles klar, Danke für deine Antwort.

Könntest du mich nochmal diesbezüglich aufklären?

"RAM with Initialization (SmartFusion and Fusion only)
The RAM with Initialization is nearly identical to the standard RAM, 
except that it generates extra logic so that it can interface with the 
Flash Memory System. The extra logic allows the RAMs to be switched to a 
x9 configuration during initialization or saved to the Flash Memory. The 
RAM will dynamically change its user-selected configuration to the x9 
configuration to interface more smoothly with the Flash Memory System."

Dies ist aus der Libero SoC Hilfe.
Diese IP-Core mit dem Interface kann ich nicht finden.
Ich habe testweise ein Projekt mit der Zielplattform Fusion erstellt und 
ich konnte direkt den "RAM with Initialization" auswählen.

Ich denke mal, dass es sich hierbei einfach nur um einen Fehler handelt 
und der Smartfusion diesen Core nicht unterstützt?
Zumal es für den Smartfusion dieses "Flash Memory System" auch nicht 
gibt.

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
Noch kein Account? Hier anmelden.