DVI direkt

Hallo.

Ehe ich mir da noch weiter 'nen Kopp drum mache, dachte ich, ich frage mal einfach direkt nach, ob das hier schonmal jemand versucht hat:

DVI direkt aus original Spartan3 DDR-Obuffs zu füttern. Ab 25 MHz Pixelclock, also 250MHz Bitclock darf man ja bei DVI mitspielen, und das, so meine Vermutung, könnte gerade noch gehen (die Anforderungen an Inter-Pair Skew sind ja bei DVI nicht so enorm).

Mein Modul bräuchte erst 'ne Trägerplatine gefertigt, damit ich das ausprobieren könnte, und ich habe wenig Lust, jetzt für so eine Option Platz einzuplanen, um dann hinterher evtl. festzustellen, daß es nicht, bzw. nur anders geht.

Gruss

Jan Bruns

--
Ein paar Fotos: http://abnuto.de/gal/
Reply to
Jan Bruns
Loading thread data ...

Mit Spartan 3A geht es wohl; schau mal hier:

formatting link

Gruß Joachim

Reply to
Joachim Gaßler

Joachim Gaßler:

Ja, Spartan3-A unterstützt richtig offiziell (also laut Nutzerhandbuch) auch TMDS-33. Dem Spartan3 fehlen dazu Instanzierungstemplates für gleichzeitige Nutzung von 3.3V, Differential und DDR.

Da es nur um TMDS-Ausgänge geht, sollte das kein Problem sein, wenn man 3.3V DDR auf den für Differtial-Nutzung vorgesehenen und entsprechend gerouteten IO-Paaren verwendet.

LVTTL,F2mA, ergibt bereits zur DVI-Spezifikation passende Werte. Allerdings knapp bzw. nur typischerweise. Müsste ich mir nochmal genauer ansehen, evtl. einen etwas stärkeren Treiber wählen, und zus. externe Widerstände, um es präziser mittig im Sollbereich zu haben.

Ist nur 'n Bastelprojekt. Da wäre es spartechnisch noch idealer, konsequent single-ended aus dem FPGA rauszugehen, und irgendwas mit Transistoren zu basteln. Ideen dazu?

Ein wenig seltsam kommt mir das aber dennoch vor, daß dann am anderen Kabelende noch was verwertbares ankommen soll. Scheint mir aber grundsätzlich auf die in der DVI-Spezifikation beschriebenen Konstellationen zuzutreffen.

Vielleicht kann mal nochmal jemand in Stichpunkten erwähnen, was beim Routing zu beachten wäre? 250MHz ist ja schon ziemlich HF. Vom FPGA zum Trägerboard wäre es zum Glück nicht weit.

Gruss

Jan Bruns

--
Ein paar Fotos: http://abnuto.de/gal/
Reply to
Jan Bruns

Am 08.09.2010 09:23, schrieb Jan Bruns:

Naja, so halb: DVI aus RocketIOs. Klappt. (Allerdings mit Levelshifter dazwischen)

Also die Geschwindigkeit solltest du locker schaffen, selbst mit langsamen Speedgrades. Dein eigentlicher DVI Encoder arbeitet ja mit Pixelclock also sehr lahm und mit den DDR Obuffs brauchst du ja intern nur 125 Mhz. Das ist auch noch ohne große Probleme machbar.

Problematischer ist wohl eher das DVI/TMDS elektrisch doch etwas anders aussieht als die LVDS Outputs die der Spartan 3 bietet. TMDS hat eigentlich 50 Ohm Pullups am Receiver und nutzt Current Mode Logic. Der Spartan 3A unterstützt wohl TMDS Outputs, aber Xilinx traut dem ganzen offenbar auch nicht ganz und packt noch einen TMDS Repeater direkt hinter die Outputs des Spartan 3A, wodurch sich wohl auch die Signalqualität deutlich verbessert.

formatting link

Grüße, Jan

Reply to
Jan Lucas

Am 08.09.2010 22:11, schrieb Jan Bruns:

Dir ist schon klar, das die CML Treiber von DVI Strom aus den 50 Ohm Pullups am Receiver ziehen, aber nicht aktiv auf Vcc treiben? Zusätzlich ist die Stromsenke eben zwischen beiden Leitungen geteilt so das insgesamt immer der gleiche Strom fließt und nicht während eines Umschaltmoments auch mal mehr. 2 mA sind auch etwas wenig, eigentlich sollen 10mA fliesen, bei 2mA wird sich da kaum was tun.

Grüße, Jan

Reply to
Jan Lucas

Wed, 08 Sep 2010 22:47:51 +0200 schrieb Jan Lucas:

Ich zitiere hier mal erneut das IBIS-File, nach dem ich vor einigen tagen schonmal gefragt habe. Demnach sind diese 2mA alles andere als allgemeingültig. An 50Ohm zu 3.3V ergibt sich demnach beim Pulldown vielmehr ein Strom von etwa 8mA bei ca. 2.89V (entsprechend den von DVI mindestens geforderten 400mV bis 3.3V).

|************************************************************************ | Model LVTTL_F_2mA_O |************************************************************************ | [Model] LVTTL_F_2mA_O Model_type Output Polarity Non-Inverting Enable Active-Low Vmeas = 1.40V Cref = 0.000F Rref = 1.00M Vref = 0.000V C_comp 6.38pF 4.60pF 8.23pF | | [Temperature Range] 25.00 85.00 0.000 [Voltage Range] 3.30V 3.00V 3.45V [Pulldown] | voltage I(typ) I(min) I(max)

... 0.00 1.14nA 2.60nA 2.86nA ... 2.70 8.19mA 6.03mA 10.16mA 2.80 8.23mA 6.05mA 10.20mA 2.90 8.26mA 6.08mA 10.25mA 3.00 8.30mA 6.11mA 10.29mA ...

[Pullup] // Vtable = Vcc -Voutput

| voltage I(typ) I(min) I(max) ... 0.00 -0.81nA -2.20nA -1.60nA 0.10 -0.95mA -0.74mA -1.09mA 0.20 -1.85mA -1.44mA -2.14mA 0.30 -2.72mA -2.10mA -3.15mA 0.40 -3.54mA -2.72mA -4.11mA 0.50 -4.33mA -3.31mA -5.04mA 0.60 -5.07mA -3.86mA -5.92mA ...

[Rising Waveform] R_fixture = 50.00 V_fixture = 3.30 V_fixture_min = 3.00 V_fixture_max = 3.45 | time V(typ) V(min) V(max) | 0.000S 2.89V 2.70V NA 0.14nS 2.89V 2.70V NA 0.28nS 2.89V 2.70V NA 0.42nS 2.96V 2.70V NA 0.56nS 3.05V 2.70V NA 0.70nS 3.12V 2.73V NA 0.84nS 3.20V 2.83V NA 0.98nS 3.25V 2.89V NA 1.12nS 3.27V 2.92V NA 1.26nS 3.28V 2.95V NA 1.40nS 3.29V 2.97V NA 1.54nS 3.29V 2.98V NA 1.68nS 3.30V 2.99V NA 1.82nS 3.30V 2.99V NA ... [Falling Waveform] R_fixture = 50.00 V_fixture = 3.30 V_fixture_min = 3.00 V_fixture_max = 3.45 | time V(typ) V(min) V(max) | 0.000S 3.30V 3.00V NA 0.14nS 3.30V 3.00V NA 0.28nS 3.30V 3.00V NA 0.42nS 3.30V 3.00V NA 0.56nS 3.31V 3.00V NA 0.70nS 3.31V 3.00V NA 0.84nS 3.23V 3.00V NA 0.98nS 3.13V 3.00V NA 1.12nS 3.07V 3.00V NA 1.26nS 3.01V 2.97V NA 1.40nS 2.96V 2.90V NA 1.54nS 2.94V 2.84V NA 1.68nS 2.92V 2.79V NA 1.82nS 2.90V 2.75V NA 1.96nS 2.90V 2.73V NA 2.10nS 2.89V 2.72V NA 2.24nS 2.89V 2.72V NA ... | | End [Model] LVTTL_F_2mA_O |

Gruss

Jan Bruns

--
Ein paar Fotos: http://abnuto.de/gal/
Reply to
Jan Bruns

Jan Lucas:

Genau.

Interessant. Naja, nach eye-pattern muss man wohl bei 750 MHz aus Spartan3 wirklich besser nicht fragen. Die Idee, einfach einen Repeater nah dran zu setzen, ist natürlich prima. Wie die da intern mit 325MHz hantiert haben wollen, sehe ich zwar noch nicht so ganz, aber ist ja für meine Zwecke auch erstmal egal.

Gruss

Jan Bruns

--
Ein paar Fotos: http://abnuto.de/gal/
Reply to
Jan Bruns

Jan Bruns:

Och, kann man ruhig. Sieht nach den schon geposteten IBIS-Daten noch recht ordentlich aus, soweit es denn zulässig ist, die bei 2ns abzuschneiden.

Hier Spatan3 für 50MHz PixelClock, differential, ohne skew, normalisiert:

formatting link

Sogar Single-ended einwandfrei:

formatting link

Wenns also nicht geht, liegt's am "Kabel". Scheint mir den Versuch wert zu sein.

Gruss

Jan Bruns

--
Ein paar Fotos: http://abnuto.de/gal/
Reply to
Jan Bruns

Wenn die Leiterbahnen die richtige Impedanz haben, dann geht das freilich. Die Kontakte sind hinreichend klein, verglichen mit der Wellenlänge...

-ras

--

Ralph A. Schmid

http://www.dk5ras.de/ http://www.db0fue.de/
http://www.bclog.de/
Reply to
Ralph A. Schmid, dk5ras

Die Platine ist definitiv nur doppelseitig, aber immerhin nur 1mm dick. Zur Vermeidung von Stubs wird das ausgewählte Signal des vorherigen Schalters durch den nächsten durchgeführt. Port 4 geht also durch 4 Schalter durch.

Ich finde das Design auf jeden Fall "interessant".

--
         Georg Acher, acher@in.tum.de
         http://www.lrr.in.tum.de/~acher
         "Oh no, not again !" The bowl of petunias
Reply to
Georg Acher

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.