Multi-Port RAM (1 Schreibport, viele Leseports)

Ich habe ein Projekt, in dem ich möglicherweise einen 128-KB-Lookup-RAM benötige. Ich habe 1 Schreibport, der die Lookup-Werte beim Start der Anwendung schreibt. Ich werde mehr als 2 Leseports haben (ich gehe von 4 aus). Ich möchte die 128 KB RAM aus Platzgründen nicht 4 mal replizieren.

Ich wollte wissen, ob es möglich ist, einen Multiport-RAM mit Xilinx BRAMs zu bauen, indem man einfach nRdAddr/RdDataOut-Ports hinzufügt. Ist das möglich. Was muss ich beachten, wenn ich das versuche?

Gibt es ein Open-Source-Projekt, das dies getan hat, damit ich das Rad nicht neu erfinden muss?

Danke für deine Information.

RRS

Keine Antwort, aber ich weiß, dass XESS Corp. eine Dual-Port-SDRAM-Komponente veröffentlicht hat. Könnte eine nützliche Referenz sein.
Das ist ein ziemlich großer RAM für das FPGA. Möglicherweise treten Leistungsprobleme auf, wenn Sie versuchen, den Adressbus auf all diese BRAMs aufzufächern. Wie schnell hoffen Sie, dies zu erreichen? Auf welches Gerät zielen Sie ab?

Antworten (1)

Angenommen, Sie benötigen einen Lesezyklus an jedem Port bei jedem Taktzyklus, gibt Ihnen jeder BRAM zwei Leseports. Darüber hinaus müssen Sie den Inhalt des Speichers replizieren.

Ist die an jedem Port erforderliche Bandbreite geringer als die Rohbandbreite des BRAM? In diesem Fall sollten Sie erwägen, die Ports zu multiplexen. Verwenden Sie einen Zähler, der mit der vollen Geschwindigkeit des BRAM läuft, um einen Multiplexer anzusteuern, der den Adressbus für jeden Port scannt, diese Adressen an den BRAM weiterleitet und dann die Daten (normalerweise 2 Takte später) an den entsprechenden Datenbus für jeden Port liefert Hafen.

Der Nachteil dieses Ansatzes besteht darin, dass die Zugriffslatenzzeit für jeden Port jetzt N Takte länger ist als im nicht gemultiplexten Fall. Es gibt verschiedene Möglichkeiten, mit dieser Latenz umzugehen, einschließlich des Hinzufügens zusätzlicher Pipeline-Stufen zu den anderen Datenpfaden.

Beachten Sie, dass Sie mit einem 2-Port-BRAM im Inneren des Moduls zwei der externen Ports gleichzeitig scannen können.