Forum: FPGA, VHDL & Co. Array in RAM speichern


von H-ko (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir ein Array angelegt das ziemlich groß ist. Jetzt möchte ich 
diesen Array nicht auf dem FPGA sondern in den Vorhandenen RAM 
speichern.
Kann dieser einfach in den Ram verschieben?

Ich arbeite mit Altera Quartus II!

Bin für jeden Tipp dankbar.

Gruß

von Jan M. (mueschel)


Lesenswert?

FPGAs haben intern nur Dualport-RAM, was du braeuchtest waere ein 
Triport, da du ja drei unabhaengige Adressen verwendest. 
Hoechstwahrscheinlich wird dein Tool das nicht unterstuetzen. Bei einem 
Dualport-RAM stehen die Chancen gut, dass dein Tool das bei dieser 
Beschreibung direkt in einen RAM-Block packt. Das sollte dann aber auch 
im Synthesereport vermerkt sein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Was soll der Geiz, wir habens doch ;-)
Kein Problem, speichere die Daten einfach gleichzeitig in 2 von den 
DPRAMs ein. Dann kannst du das auf der anderen Seite dieser beiden 
DPRAMs problemlos mit den beiden Read-Adressen wieder auslesen.

Aber pass auf: du bekommst mit DPRAMs beim Auslesen einen Takt Latency 
mit rein (zumindest bei Xilinx).

von Bayer (Gast)


Lesenswert?

>Aber pass auf: du bekommst mit DPRAMs beim Auslesen einen Takt Latency
>mit rein (zumindest bei Xilinx).

Das ist einstellbar. Man kann sogar mit zero Latency arbeiten, aber dann 
nur mit geringer Geschwindigkeit.

Es sit egal ob man 2 RAMs oder TRipoert instanziert - wenn es synchron 
abgefragt wird, wird ein DP draus, wird es asynchron abgefragt mappt er 
einen dritten Port. Das kann man der Synthese überlassen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

@ Bayer
>Man kann sogar mit zero Latency arbeiten...
Welche FPGAs bzw. welcher Hersteller?

>wird es asynchron abgefragt mappt er einen dritten Port...
Was für ein RAM wird dann angelegt?
Wie geht dieses "Mappen"?

von H-ko (Gast)


Lesenswert?

Erst mal danke für die schnellen Antworten!

Jetzt habe ich noch eine Frage.
Lass ich mir den Speicher automatisch generieren oder kann ich das auch 
selber machen. Habe mit den DPRAM bis jetzt noch keine Erfahrungen.

Wenn man das auch selber machen kann, hat dann jemand vielleicht ein 
Beispiel?

Danke

Gruß

von Jan M. (mueschel)


Lesenswert?

Ich kenne Quartus nicht, aber bei Xilinx und Synplify wird ein Konstrukt 
wie deines (wenn es keinen dritten Port gibt) automatisch in einen 
RAM-Block gelegt, wenn das moeglich ist. Zum Thema Quad-Port-RAM gibt es 
von Xilinx eine application note mit Beispielcode.

von H-ko (Gast)


Lesenswert?

Ich habe es hin bekommen.

Danke für die schnellen und guten Antworten.

Gruß

H-ko

von H-ko (Gast)


Lesenswert?

Hallo,

habe noch eine Frage.

Wie kann ich den kompletten Speicher am Anfang auf 0 setzen.
Sprich jeder Speicherblock ist erst einmal 0.

Grup

H-ko

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>Wie kann ich den kompletten Speicher am Anfang auf 0 setzen.
Bei Xilinx: gar nichts tun, 0 ist der Defaultwert.
Ist das bei Altera anders?

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.