www.mikrocontroller.net

Forum: FPGA, VHDL & Co. N:1 Producer-Consumer Muster in VHDL


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Der Datenaustausch in einer 1:1 Producer-Consumer Beziehung kann durch
ein einfaches Protokoll oder ein FIFO erfolgen. Was ist aber ein guter
Ansatz für eine N:1 (oder auch 1:N, M:N) Beziehung?

Wie wären folgende Ansätze:
Protokoll: Der Consumer kommuniziert immer nur mit einem Producer,
die anderen werden z.B. per ENABLE-Signal bzgl. Kommunikation
deaktiviert.
FIFO: Jedem Producer wird ein FIFO zugeordnet. Der Consumer arbeitet
reihum die FIFOs ab.

Und wie würde ich bei einer M:N-Beziehung vorgehen?

Gruss und Danke,

Jörg

Autor: Ingenieur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mehrdimensionaler Philosphenprozess nach Dijkstra mit zwei 
Semaphorschichten: Eine für die Readergruppe eine für die Writergruppe. 
Läuft in FPGAs faktisch auf n Fifos mit n Eingangsdekodern und einem n 
zu m Multiplexer auf m Ausgangsfifos hinaus. Anders, als in reinen 
SW-Prozessen, kann das tatsächlich paralle läufen und man kann bei 
sollsynchronem Betrieb eine Semaphorschicht unter den Tisch 
fallenlassen.

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

Bewertung
0 lesenswert
nicht lesenswert
> Und wie würde ich bei einer M:N-Beziehung vorgehen?
Ich würde eine M:W Beziehung (auf neudeutsch M:F) eingehen, und nach 
entsprechender Augabenverteilung den Counterpart für zuständig erklären 
;-)

@  Jörg (Gast)
WAS willst du fragen?
Gibt es dafür eine deutsche oder wenigstens englische Erklärung?
Wird hier etwas Einfaches einfach umständlich formuliert?

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ingenieur (Gast),

die Idee mit einer zweischichtigen FIFO-Architektur ist ja sehr
interessant: So hat jeweils der Producer und der Consumer nur die
Sicht auf jeweils EINEN anderen (virtuellen) Partner und die
multidimensionale Beziehung bleibt für beide Seiten vollständig
transparent.
Das einzige Problem das noch bleibt ist der M:N-Mux zwischen
beiden FIFO-Ebenen (würde ich aber eher Dispatcher nennen). Das
werde ich hoffentlich aber selbst hinbekommen.

Gruss und Danke,

Jörg

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.