Forum: FPGA, VHDL & Co. seriellen ADC auslesen


von Gast (Gast)


Lesenswert?

Ich habe einen AD-Wandler, der serielle LVDS-Signale abgibt. (16 Bit + 
Takt). In Quartus wollte ich einen LVDS Transceiver instanziieren, finde 
aber keinen für 16 Bit. Muss ich da zwei 8-Bitter nehmen ?

Wie speise ich den Takt ein? Der Wandler hat eine interne PLL, mit der 
er exakt wandelt, den würde ich gerne benutzen. Der kommt aber auch über 
LVDS - wie schließe ich den an?

Wie ich es sehe, muss der an den Takteingang des SERDES, aber wie 
bekomme ich aus dem LVDS-Paar einen einzigen Takt ?

von Reto (Gast)


Lesenswert?

>Ich habe einen AD-Wandler, der serielle LVDS-Signale abgibt.
>wollte ich einen LVDS Transceiver instanziieren,
Du kannst entweder einen Sender oder einen Empfänger einsetzen. Willst 
Du beides, musst Du zwei Komponenten benutzen.

> finde aber keinen für 16 Bit. Muss ich da zwei 8-Bitter nehmen ?
Sieht so aus. Ich nehme an, daß das die Zellen nicht können. Allerdings 
habe ich das ausprobiert und sehe, daß auch bei Verwendung von 
Logikzellen vom MegaWiz aus nicht mehr als 10 Bits auf einen Schlag 
umzuwandeln sind, was ich nun nicht kapiere.

Mit 2 x 8 Bit müsste es aber gehen. Hast eben die doppelte Taktrate, 
zumindest auf einer Zwischenstufe.

>Wie speise ich den Takt ein? Der Wandler hat eine interne PLL,
Das haben viele, weil die besser sind, als FPGA-PLLs.

>Der kommt aber auch über LVDS - wie schließe ich den an?
Du nimmst einen der beiden Pins.

>aber wie bekomme ich aus dem LVDS-Paar einen einzigen Takt ?
siehe oben

von Gast (Gast)


Lesenswert?

>Mit 2 x 8 Bit müsste es aber gehen. Hast eben die doppelte Taktrate,
>zumindest auf einer Zwischenstufe.

ok , soweit geht mir das ein. Mir ist aber noch nicht klar, wie ich dann 
zu einem Takt komme?

Muss ich die LVDS-Pins selber abfragen oder gibt es da eine Instanz 
dafür?
Oder route ich einfach den p auf ein Clocknetz ?

von Gast (Gast)


Lesenswert?

Ich habe das immer noch nicht raus, wie ich mit den beiden LVDS Pins 
umgehe- was muss man da instanzieren, um sein Einzelsignal zu erhalten?

von A. F. (chefdesigner)


Lesenswert?

Im VHDL Design hast Du nur den einen Pin. Die Zuweisung erfolgt über die 
Bufferdeklaration als LDVS. Die Synthese sagt Dir dann schon, wenn Du 
den n nicht oder falsch angeschlossen hast.

Was mich mal interessieren würde: Kann ich die LVDS-Pins auch "per Hand" 
verarbeiten? MAcht das überhaupt Sinn?

von Gast (Gast)


Lesenswert?

Arbeite dich mal in dieses XAPP ein:

http://www.xilinx.com/support/documentation/application_notes/xapp866.pdf
(den link zur zip findeste im Dokument)

funktioniert super, 16Bit mit sogar 4 Kanälen.
allerdings ist im Schieberegister ein Fehler enthalten, da fehlt ein 
(n-1).
Bei mir läufts mit nem 4x12Bit ADC und 20MS der in LVDS sendet 
wunderbar.
Deine Daten haste dann parallel vorliegen.

gruß

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.