www.mikrocontroller.net

Forum: FPGA, VHDL & Co. seriellen ADC auslesen

Autor: Gast (Gast)
Datum: 23.04.2008 10:39

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 ?
Autor: Reto (Gast)
Datum: 23.04.2008 20:53

>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
Autor: Gast (Gast)
Datum: 24.04.2008 17:04

>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 ?
Autor: Gast (Gast)
Datum: 28.04.2008 13:11

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?
Autor: Andreas Fischer (chefdesigner)
Datum: 01.05.2008 13:44

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?
Autor: Gast (Gast)
Datum: 05.05.2008 10:27

Arbeite dich mal in dieses XAPP ein:

http://www.xilinx.com/support/documentation/applic...
(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ß

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net