mikrocontroller.net

Forum: FPGA, VHDL & Co. Bildzusammensetzung mittels FPGAs


Autor: Johann Löwen (jl7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

Ich habe ein kelines Problem. Ich möchte zwei 256x256 Pixel, von zwei
PCs (DVI-Ausgang) generierte Bilder zu einem 512x256 Pixel Bild, mit
einer Framerate von min. 25fps, mittels Hardware zusammenfassen. Kann
mir Jemand weiter helfen? Welche Boards bzw. Mikrocontroller usw. dafür
in Frage kommen?

Danke im Voraus

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das scheint mir doch ein etwas größeres Problem zu sein. Die beiden
Ausgänge sind vermutlich nicht synchron. Damit entsteht dasselbe
Problem wie im Zusammenführen zweier Videosignale. Entweder
synchronisiert man irgendwie beide PC-Ausgänge oder man muß eines der
beiden Signale für max. eine Framedauer zwischenspeichern.

Autor: Daniel R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Letzteres wäre wohl einfacher, als den PCs beizubringen synchron zu
sein.

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung bestünde also aus einem FPGA oder CPLD für die gesamte
Ablaufsteuerung, einem oder mehreren schnellen RAMs, ich würde so 2 bis
4 schnelle 4MBit-SRAMs 256k*16 vorschlagen, und den Pegelwandlern für
die DVI-Daten, ich meine das sind LVDS-Pegel, also differentielle Daten
mit etwa 1 Vss, drei parallel geführt.
Das sollte etwa auf eine halbe Europakarte passen, viel Verdrahtung, 18
Adressbits, 4 CS, RW, OE und 64 Datenleitungen, alle zum FPGA geführt.
Pegelwandler und DVI-Steckverbinder sind im Einzelhandel nicht so
häufig erhältlich, das müßte man suchen. Eventuell ein DVI-Kabel
einfach  durchschneiden, Adern "durchklingeln" und irgendeinen
DSub-Stecker anschließen. Alles machbar, auch hobbymäßig.

Autor: Daniel R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt nichts, was nicht machbar ist :)
Man braucht nur viel Zeit und Hirn in der Rübe  ;)


Daniel

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<Die Schaltung bestünde also aus einem FPGA oder CPLD für die gesamte
<Ablaufsteuerung, einem oder mehreren schnellen RAMs, ich würde so 2
bis
<4 schnelle 4MBit-SRAMs 256k*16 vorschlagen, und den Pegelwandlern für
<die DVI-Daten, ich meine das sind LVDS-Pegel, also differentielle
Daten
<mit etwa 1 Vss, drei parallel geführt.

Viele FPGA's können den LVDS standard, zumindets den diff. Pegel. Die
Rückgewinnung des Taktes und Nutzung desselben für die deserialisierung
ist das Fragezeichen. Auf LVDS sind es ca Pixeltakt*bits_pro_kanal. Spec
oder messung am DVI Ausgang der PC's. Ich rechne mit mind. 250MHz. Wenn
das der FPGA hergibt, hast Du gute Chancen auf die LVDS Pegelwandler
(die üblicherweise nicht nur PegelWandeln sondern auch auf Parallele
Datenwörter deserialisieren) zu verzichten. Da sehe ich keine schlechte
Chancen einen testaufbau mit dem Xilinx Starterkit hinzubekommen. Aber
check mal die LVDS-Beschaltung, beim PCB hats Richtlinien für LVDS
Routing (skew minimierte
Leitungsführung -> Mäander).

Im Prinzip baust du zwei Fifos. Beide Empfangen jeweils die Daten vom
PC,
das andere Ende wird zwischen den Halbbildern umgeschaltet und
entsprechend
der Displayspec ausgelesen. Syncs für das Display müssen ebenfalls
erzeugt werden, sind 2-3 counter.

Autor: Stefan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Johann,

beschreib doch mal den Anwendungsfall genauer. Evtl. kannst du ja ganz
ohne eigene Elektronik auskommen und das in Software lösen. Was spräche
z.B. dagegeben, beide PCs per Netzwerk zu koppeln und nur einen der PCs
für die Darstellung und den DVI-Ausgang zu nutzen? Mit diversen
Remotedesktop-Protokollen (X unter unix, vnc o.ä. unter Win) kannst du
ja dann das Bild des anderen Rechners per Netzwerk holen und dieses auf
dem Schirm neben der anderen Bildausgabe anzeigen.

Gruß,
Stefan

Autor: Johann Löwen (jl7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

vielen Dank für eure Anworten. Ich werden den Fall etwas genauerer
beschreiben. Die beiden Bilder an den beiden Ausgängen sind schon durch
die Software bzw. Grafikkartenhardware synchronisiert. Ich habe bereits
eine Softwarelösung realisiert. Ich kann mittels OpenGL die Framebuffer
auslesen und per Software durch das Netzwerk die Bilder Zusammensetzen,
leider ist die Framerate, selbst mit einem PCI-Bus nicht höher als
5-10fps. An dem Netzwerk liegt es nicht, ich verwende Gigabit-Netwerk,
es liegt an dem Grafikarten-Bus, der Auslesevorgang ist zu langsam.
Ich habe auch schon bereits an Xilinx gedacht, insbesondere an Virtex-4
Falmilie. Weiß Jemand, welche da ganz genau passend wären?

Gruß Johann

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.