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ß
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.
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).
>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.
@ 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"?
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ß
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.
Ich habe es hin bekommen. Danke für die schnellen und guten Antworten. Gruß H-ko
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
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.