Wir entwerfen eine Bildverarbeitungs-Pipeline auf einem FPGA, das die Verwendung von Speicherschnittstellen in verschiedenen Pipeline-Stufen erfordert. Aufgrund der Größe des benötigten Speichers haben wir uns für ein DDR3-Design entschieden.
Es wäre wirklich nützlich, wenn die Pipeline-Stufen auf unabhängige Weise auf ihren eigenen Speicher zugreifen könnten, damit ich die Arbitrierung minimieren kann. Ich hatte daher gehofft, mehrere "schmale" DDR3-Module (z. B. 16 Bit breit) mit jeweils eigenem Controller auf dem FPGA zu implementieren, damit die Speicherschnittstellen der Stufen vollständig getrennt werden können.
Meine andere Option ist die Verwendung mehrerer DDR3-Module in einem einzigen Rang mit einem Controller.
Hat jemand Erfahrung mit der Verwendung mehrerer Controller auf einem FPGA? Oder wäre der einzelne Controller die sicherere Wahl?
Wir werden für die Implementierung ein Midrange-Kintex verwenden.
Hat jemand Erfahrung mit der Verwendung mehrerer Controller auf einem FPGA?
Ja, ich habe an einem Design für eine HD-Video-Pipeline mit zwei DDR-Speichercontrollern mitgeholfen, aber ich weiß nicht, ob es sich speziell um DDR3 handelte. Ein 32 Bit breiter Speicher enthielt den Hauptrahmenpuffer, und der andere 16 Bit breite Speicher enthielt Overlay-Informationen. Hat ganz gut funktioniert.
Oder wäre der einzelne Controller die sicherere Wahl?
Das ist wirklich eine ganz andere Frage. Abhängig von den Bandbreitenanforderungen der verschiedenen "Benutzer" dieses Speichers können die wiederkehrenden Gesamtsystemkosten niedriger sein, wenn Sie alles durch einen einzigen Speichercontroller und einen einzigen Satz von Speicherchips leiten können. Aber die Designzeit und die Risiken (NRE-Kosten) werden höher sein. Ich habe diesen Ansatz auch bei einem anderen (SD-)Projekt gewählt.
Solange Sie genügend Logikzellen und IO-Pins haben, können Sie so viele Speicherschnittstellen haben, wie Sie möchten.
Auf der anderen Seite bedeutet schmaler Speicher, dass Chips gelötet werden müssen, anstatt DIMMs (oder andere Module) zu verwenden, was einen erheblichen Kostenaufschlag bedeutet – es sei denn, Sie kaufen große Mengen an Chips.
Benutzer3624
Jon Watte
Benutzer30831