mikrocontroller.net

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


Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas B. (loopy83)
Datum:

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

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael X. (Firma: vyuxc) (der-michl)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Vielen Dank!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.