Forum: FPGA, VHDL & Co. Xilinx FPGA, AMMC PowerPC => gemeinsamer RAM


von Andreas B. (loopy83)


Lesenswert?

Hallo und Guten Tag,

ich wollte erfragen ob es möglich ist, dass zwei Geräte auf einen RAM 
Baustein zugreifen können.

Dabei kommt ein FPGA vom Typ Xilinx XC3SD1800A-4CS848C (Spartan 3A DSP) 
und ein AMCC PowerPC mit PPC440EPx CPU zum EInsatz.

Ziel ist es, dass der FPGA Daten bekommt und vorverarbeitet im RAM 
ablegt. Der PPC holt sich die Daten von dort und organisiert die 
Kommunikation mit anderen Komponenten.

Ist diese Art der Datenverarbeitung denkbar oder kommt es zu Konflikten, 
wenn zwei "Bausteine" parallel auf den RAM zugreifen wollen.

Ich stehe noch ganz am Anfang meines Projektes, nur muss jetzt schon zu 
Beginn diese prinzipielle Frage geklärt werden :)

Vielen Dank,

MfG Andreas

PS: Als RAM ist ein DDR2 Chip vom Hersteller Micron geplant (MT47H...)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Gehen tut das schon, du brauchst eine Komponente die das RAM anspricht 
und nach aussen zwei Ports bereitstellt, eine für den PPC und eine für 
den FPGA. Wenn einer schreibt und einer nur liest ist das meist 
unkritisch.

von Andreas B. (loopy83)


Lesenswert?

Hast du einen Vorschlag, welche Komponente man für so etwas nehmen 
könnte?

von Andreas B. (loopy83)


Lesenswert?

Wäre es denn eine Alternative, die Kommunikation vom FPGA regeln zu 
lassen?

Das er als eine Art "drei Straßen Kreuzung" funktioniert.

Der FPGA bekommt die Daten, legt sie im RAM ab. Wenn der PowerPC diese 
anfordert, liest er sie aus und stellt sie dem PPC zur Verfügung.


PPC <=> FPGA <=> RAM
         ||
    Datenquelle


Würde das viel am Performace kosten?

Angestrebt sind als Daten 16 Bilder/s, 4 Megapixel á 8bit...

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


Lesenswert?

> ... die Kommunikation vom FPGA regeln zu lassen?
Das ist die übliche Vorgehensweise.

> PS: Als RAM ist ein DDR2 ... geplant
DDR sind gut und schön, wenn sequentiell auf die Daten zugegriffen 
werden soll. Wie sieht das in deiner Applikation aus? Wird da ein Stream 
der reihe nach geschrieben und auch wieder so gelesen, oder wird da 
zufällig auf ein paar Worte kreuz und quer im Speicher zugegriffen?

von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Die einfachste Lösung ist ein Dual-ported-memory (auch DPM-Ram genannt). 
Allerdings sind die erstens recht klein und zweitens nicht besonders 
schnell.

von Andreas B. (loopy83)


Lesenswert?

Vielen Dank!

Lothar Miller wrote:
> Wie sieht das in deiner Applikation aus? Wird da ein Stream
> der reihe nach geschrieben und auch wieder so gelesen, oder wird da
> zufällig auf ein paar Worte kreuz und quer im Speicher zugegriffen?
Es werden digitalisierte Bilddaten geschrieben und auch wieder gelesen. 
Es wird also idealerweise ein Bit nach dem anderen im Speicher abgelegt 
und zu einen späteren Zeitpunkt vom PPC angefordert, der dann die 
Kommunikation mit der Außenwelt regelt.

Michael X. wrote:
> Die einfachste Lösung ist ein Dual-ported-memory (auch DPM-Ram genannt).
> Allerdings sind die erstens recht klein und zweitens nicht besonders
> schnell.
Ich glaube, dann sind die DPMs nicht das Richtige für meine Anwendung. 
Es soll zu einem späteren Zeitpunkt ein recht hoher Datenstrom 
bereitgestellt werden. Da ist es sicher gut, nicht an die Grenzen des 
RAMs gehen zu müssen, sowohl was die Größe, als auch die Geschwindigkeit 
betrifft.

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


Lesenswert?

> Es wird also idealerweise ein Bit nach dem anderen im Speicher abgelegt
Also hübsch sequentiell...
Dann könntest du die Daten in ein BRAM im FPGA einlesen und in einem 
Burst ins DDR-RAM schreiben.
> und zu einen späteren Zeitpunkt vom PPC angefordert
Hoffentlich auch hübsch sequentiell?
D.h. wenn der PPC Daten anfordert, dann kannst du auch gleich ein BRAM 
aus dem DDR-RAM füllen. Wenn der PPC allerdings "nur" einzelne Pixel 
abfrägt/manipuliert, ist das DDR-RAM ein ungünstiger Kandidat zum 
zwischenspeichern.

von Andreas B. (loopy83)


Lesenswert?

Hallo,

nein, der PPC wird auch wieder die gesamten Bilddaten abfragen. Es soll 
also keine Auswertung einzelner Pixel stattfinden.

Vielen Dank!

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.