Gleichzeitiger Lesezugriff bei Xilinx BRAM

Gast #4421901
Lesenswert?

Hallo,

ich hätte eine Frage zu BRAMs in Xilinx-FPGAs.
Diese haben ja zwei Ports.
Kann man gleichzeitig von beiden Ports aus dem Speicher lesen?
Wenn ja, was muss man beim VHDL-Quelltext beachten, dass das 
Synthesetool nur einen BRAM verwendet?

Schonmal Danke!
#4422013
Lesenswert?

Ja, man kann problemlos auf beiden Ports gleichzeitig lesen, sogar von 
der gleichen Adresse.

Dabei muss man nichts besonderes beachten. Allerdings ist das mit dem 
inferieren von Dual-Port-RAM immer so eine Sache. Wenn Du XST benutzt, 
solltest Du die Templates aus dem Manual kopieren, dann müsste es 
eigentlich klappen. Deutlich unproblematischer (aber nicht so flexibel) 
ist es, das RAM als Primitive zu instanziieren. Spätestens dann wenn Du 
das RAM mit Daten vorinitialisieren willst, geht es sowieso nur auf 
diesem Weg.
Gast #4422280
Lesenswert?

Dennis B. schrieb:
> Spätestens dann wenn Du
> das RAM mit Daten vorinitialisieren willst, geht es sowieso nur auf
> diesem Weg.
Diese Aussage stimmt aber seit mehreren Jahren schon nicht mehr. Im 
XST-User-Guide findet sich mindestens ein Beispiel, wie ein inferierter 
BRAM mit Werten vorbelegt werden kann.

Der Vorteil des Inferieren (=das Tool findet selbst heraus, das ein BRAM 
gebraucht wird): Es ist architekturunabhängig. Damit sind 
Designportierungen einfacher.

Viele Grüße,
Jan
#4422425
Lesenswert?

@Jan (Gast)


>Diese Aussage stimmt aber seit mehreren Jahren schon nicht mehr. Im
>XST-User-Guide findet sich mindestens ein Beispiel, wie ein inferierter
>BRAM mit Werten vorbelegt werden kann.

Mag sein, so toll ist das aber auch nicht wirklich.

>Der Vorteil des Inferieren (=das Tool findet selbst heraus, das ein BRAM
>gebraucht wird): Es ist architekturunabhängig. Damit sind
>Designportierungen einfacher.

Das sehe ich anders.

Beitrag "Re: Inferred True Dual Port RAM für Xilinx und Altera"
Gast #4423045
Lesenswert?

Danke für die Antworten!

Hab nun herausgefunden warum immer 2 BRAMs verwendet wurden.

Mir fiel auf, dass XST ab einer bestimmten Speichergröße (ab der halben) 
immer zwei BRAMS synthetisiert hat (hier wurde scheinbar einfach alles 
doppelt abgespeichert).
Man muss den ROM als "shared variable" deklarieren, dass er einen 
"echten" Dual-Port-RAM daraus macht, auch wenn man darauf nur lesend 
zugreift.
Persönliche Seite #4450439
Lesenswert?

Kommt dann etwas auf die Beschreibung an, ob die Synthese das dann 
sieht. Ich plädiere, immer Instanzen zu nehmen und ausdrücklich zu 
verdrahten. Wer kompatibel bleiben möchte, baut einen Wrapper für das 
RAM, in dem er zwischen Distri, Block-RAM und gfs einem anderen 
Hersteller umschaltet. Das ist vom handling das Einfachste.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren