Xilinx FPGA, AMMC PowerPC => gemeinsamer RAM

OP #1216280
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...)
OP #1216875
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...
Moderator (Firma: Titel) Persönliche Seite #1216894
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?
OP #1216957
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.
Moderator (Firma: Titel) Persönliche Seite #1216977
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.

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