Forum: FPGA, VHDL & Co. Bildzusammensetzung mittels FPGAs


von Johann L. (jl7)


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

von Christoph Kessler (Gast)


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.

von Daniel R. (Gast)


Lesenswert?

Letzteres wäre wohl einfacher, als den PCs beizubringen synchron zu
sein.

von Christoph Kessler (Gast)


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.

von Daniel R. (Gast)


Lesenswert?

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


Daniel

von FPGAküchle (Gast)


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.

von Stefan R. (Gast)


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

von Johann L. (jl7)


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

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.