Forum: FPGA, VHDL & Co. LVDS aus RGB Daten generieren


von Simon (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich habe hier ein LCMXO3L-6900-C-EVN Board von Lattice.
Nun möchte ich ein HDMI Signal mittels eines entsprechenden Receivers 
(z.B. ADV7610) in RGB Daten umwandeln. Diese sample ich dann in mein 
FPGA.

Der Pixelclock bei HDMI mit 1920x1080 @ 60Hz liegt glaube ich bei 
165MHz.
Dies sollte für das Board machbar sein (glaube ich).

Nun frage ich mich, ob es mit diesem FPGA möglich ist, aus den internen 
RGB-Daten wieder LVDS-Signale für ein geeignetes Display zu generieren.

Bei besagtem Chip:
https://www.digikey.com/product-detail/en/lattice-semiconductor-corporation/LCMXO3L-6900C-5BG256C/220-1886-ND/4740913

Steht da im Datenblatt etwas von Max. Speed. 150MHz (Bild angehängt).
Daher gehe ich mal davon aus, dass ich einen externen RGB->LVDS 
Converter benötigen werde?

Gibt es preisgünstige (<10 USD in 100er Stückzahlen) FPGAs, welche über 
entsprechende Treiber verfügen?

Danke schonmal!

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Simon schrieb:
> Der Pixelclock bei HDMI mit 1920x1080 @ 60Hz liegt glaube ich bei
> 165MHz.

Hmmm, in der Regel hat man einen Total Frame (also inkl. Blanking) von 
2200x1125 und kommt dann auf eine Pixelclock von 148.5 MHz.

Simon schrieb:
> Steht da im Datenblatt etwas von Max. Speed. 150MHz (Bild angehängt).
> Daher gehe ich mal davon aus, dass ich einen externen RGB->LVDS
> Converter benötigen werde?

Da muss man immer aufpassen. Auch der MachXO3 hat verschiedene Clock 
Netze und Hard-IPs die jeweils unterschiedliche max. Frequenzen haben.

Eine Uebersicht findest du hier: 
https://www.latticesemi.com/view_document?document_id=50121

Der Primary Clock Tree kann z.B. auf jedenfall 323 MHz, das reicht die 
laessig um die Daten zu verarbeiten (siehe Tabelle 3.21). LVDS gehst du 
dann wieder raus via 7:1 LVDS Outputs. Die koennen da 756 Mb/s DDR, 
sprich mit einer 378 MHz Clock getrieben werden.

Haengt jetzt im Detaild avon ab wie genau du LVDS maesig wieder raus 
moechtest, bzw. was fuer ein Display du drenn treiben willst.

Lange Rede kurzer Sinn: Ich sehe da aktuell noch nicht, dass der MachXO3 
das nicht koennen sollte. Haengt jetzt halt ganz von den Details ab.

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Simon schrieb:
> Der Pixelclock bei HDMI mit 1920x1080 @ 60Hz liegt glaube ich bei
> 165MHz.

Ohne jedes Blanking waerst du bei der Aufloesung und Framerate bei 
124.416MHz. Ein gaengiger Takt waere mit ueblichen Blankingzeiten z.b. 
148.5MHz.

Wenn du damit ein LVDS Display (mit z.b. 4 Datenlanes und 1 Clklane) 
treiben willst, musst du im Baustein mit der 7 fachen Pixelclk operieren 
koennen. Also dann 1039.5MHz. Wenn dein LVDS Display ueber mehr 
Datenlanes angeschlossen ist, reduziert sich die Clk. Also bei 2x4 
Datenlaenes waeren es "nurnoch" 519.75MHz.
Sieht aber erstmal deutlich zu schnell aus fuer den Baustein...

Bei Xilinx heisst das Feature IOSERDES, und da gibts eine xapp1064, wo 
das beschrieben wird.

Gruss
WK

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Simon schrieb:
> welche über entsprechende Treiber verfügen?
Hat deiner keine SERDES drauf, die man für die Serialisierungs-Aufgabe 
verwenden könnte?

von Simon (Gast)


Lesenswert?

Vielen Dank für eure Antworten.
Ich bin mir aktuell nicht sicher, ob da ein SERDES im Chip ist oder 
nicht.

Habe aber soeben noch gelesen, dass bei Displays üblicherweise TMDS zum 
zug kommt. Was ja im Grunde auch LVDS ist, jedoch mit zusätzlicher 
Kodierung. Fragt sich, ob sich dies ohne grössere Probleme auch noch ins 
FPGA kriegen lässt. Habe da leider noch zu wenig Erfahrungen sammeln 
können um das abschätzen zu können.

Als Alternative könnte ich den TFP410 von TI verwenden, welcher direkt 
aus RGB TMDS macht.

Leider weiss ich aktuell noch nicht, ob das Display LVDS oder TMDS 
benötigt, da dieses noch nicht definiert wurde.

von Martin S. (strubi)


Lesenswert?

LVDS geht mit dem MachXO2 (siehe 7:1 gearboxen), TMDS habe ich bisher 
nur mit ECP3 probiert, wuerde ich bei der Pixel-Clock aber mit Vorsicht 
angehen. Wenn kein HDMI-Kabel dazwischen sitzt, koennte es elektrisch 
gehen, aber man sollte vielleicht ein passendes GHz-Oszi+Proben zur Hand 
haben, wenn's doch mal nicht recht zappelt.

von Simon (Gast)


Lesenswert?

Danke für deine Antwort.
Meinst du die Stelle im DB welche ich mal angehängt habe?

Dort sehe ich aber "nur" 60MHz beim besten Speedgrade. Das wäre ja dann 
420MHz LVDS Frequenz? (7x60MHz)

von Simon (Gast)


Angehängte Dateien:

Lesenswert?

Oh, da hab ich wohl das Bild vergessen anzuhängen...

von Simon (Gast)


Lesenswert?

Hier habe ich das noch für den O3 nachgeschaut.
Scheint so als wäre auch hier bei 756MB/s fertig. Ich brauche ja aber 
mind. 1.25GB/s, oder übersehe ich hier etwas?

Danke.

von Simon (Gast)


Angehängte Dateien:

Lesenswert?

Bild

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wird halt drauf ankommen, in was und wie breit jetzt dein Display 
tatsaechlich die Daten erwartet...

Gruss
WK

von Videomann (Gast)


Lesenswert?

Dergute W. schrieb:
> Ohne jedes Blanking waerst du bei der Aufloesung und Framerate bei
> 124.416MHz.

Wie kommst du denn bitte auf dieses Format? Noch nie gesehen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Videomann schrieb:
> Noch nie gesehen.
Kein Wunder. Das ist auch hypothetisch; errechnet sich eben ohne jedes 
Blanking aus 60Hz x 1920 x 1080.
Daher schrub ich auch: "waerst du"

Gruss
WK

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.