Forum: FPGA, VHDL & Co. 1 ADC, LVDS auf zwei Bänke verteilen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gustl B. (-gb-)


Lesenswert?

Hallo zusammen,

ich verwende einen ADC, AD7960 der LVDS Ein- und Ausgänge besitzt.
Um am FPGA LVDS ausgeben zu können (Artix7 HR Bänke) muss ich VCCO auf 
2,5 V stellen. Allerdings ist es in meinem Design so, dass die Bank die 
ich noch zur Verfügung habe keinen Takteingang hat.
Jetzt habe ich den DCO Ausgang des ADCs (echo Clock) einfach ein einen 
normalen FPGA Eingang angeschlossen. Gut, ich musste

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets 
ADC_7960/AD7960_DCOp_0]

setzen, aber es funktioniert fehlerfrei.

Jetzt sitze ich am nächsten Layout und habe ein paar Fragen dazu:

1. Welchen Nachteil hat das, wenn ich einen Takt nicht an einen 
Takteingang anschließe? Bisher musste ich nur die Constraint setzen und 
es passte, aber das kann ja nicht alles sein.

2. Mir bleiben die Optionen:

a) FPGA Ausgänge Richtung ADC, CNV und SCK, an die 2,5 V Bank 
anschließen und die FPGA Eingänge vom ADC, Data und DCO, an eine 3,3 V 
Bank anschließen, und extern terminieren und eben DCO an einen 
Takteingang anschließen.
b) So wie gehabt alles an die 2,5 V Bank hängen und mit dem Constraint 
leben.
c) Ich brauche mal wieder einen galvanisch getrennten ADC. Das geht auch 
mit LVDS, aber ich könnte natürlich auch gleich CMOS -> LVDS und LVDS -> 
CMOS wandeln. Dann könnte ich alle IOs zwischen FPGA und ADC an die 3,3 
V Bank hängen. DCO an einen Takteingang. Aber ich hätte dann eben diese 
Wandler dazwischen. Nachteil ist, dass die Digitalisolatoren für CMOS 
wie der Si866x deutlich langsamer sind wie LVDS Isolatoren.

Ich tendiere also zu Lösung b) aus Bequemlichkeit. Die Frage an der 
Stelle ist:
Welche Nachteile hätte Lösung a) das auf zwei Bänke aufzuteilen? Macht 
das Probleme?

Vielen Dank!

von Tim (Gast)


Lesenswert?

Gustl B. schrieb:
> 1. Welchen Nachteil hat das, wenn ich einen Takt nicht an einen
> Takteingang anschließe? Bisher musste ich nur die Constraint setzen und
> es passte, aber das kann ja nicht alles sein.

Der Takt wandert erst eine Weile durch den FPGA bis er auf die 
dedizierte Taktleitung im FPGA hüpfen kann. Das hat wesentlich mehr Skew 
(ggf. auch temperaturabhängig) und man holt sicher mehr Jitter ein. Das 
ist aber für viele Anwendungen gar nicht so schlimm.
Ich hatte das auch schon mal ungewollt, weil im Layout man nicht 
aufgepasst hat :)

2a) Was ist daran problematisch? LVDS bleibt unabhängig von der 
Bankspannung. Kann man eigentlich auch DC verbinden. Man darf nur nicht 
ausversehen LVCMOS einstellen >:)
2b) Geht auch, wenn die Timing-Analyse passt und der Takt nicht 
ultra-sauber sein muss.
2c) galvanische Trennung sollte man separat diskutieren. Zwischen 2a) 
und 2c) liegt noch die AC-Kopplung.

Gustl B. schrieb:
> Ich tendiere also zu Lösung b) aus Bequemlichkeit. Die Frage an der
> Stelle ist:
> Welche Nachteile hätte Lösung a) das auf zwei Bänke aufzuteilen? Macht
> das Probleme?

Ob der Skew deterministisch bleibt wäre für mich hier die Hauptfrage.

von Gustl B. (-gb-)


Lesenswert?

Tim schrieb:
> Das hat wesentlich mehr Skew
> (ggf. auch temperaturabhängig) und man holt sicher mehr Jitter ein. Das
> ist aber für viele Anwendungen gar nicht so schlimm.

Gut, damit kann ich leben. Und es handelt sich auch nicht um CNV das zum 
ADC geht, das sollte jitterfrei bleiben, sondern nur um den Auslesetakt.

Tim schrieb:
> Was ist daran problematisch? LVDS bleibt unabhängig von der
> Bankspannung. Kann man eigentlich auch DC verbinden. Man darf nur nicht
> ausversehen LVCMOS einstellen >:)

Naja, nur mit VCCO = 2,5 V kann eine HR Bank LVDS ausgeben und als 
Eingang intern terminieren.

Tim schrieb:
> galvanische Trennung sollte man separat diskutieren. Zwischen 2a)
> und 2c) liegt noch die AC-Kopplung.

AC-Kopplung reicht nicht, ich muss wirklich die Massen trennen. Es geht 
um mehrere Detektoren und ADCs, wenn ich das mit einer Masse mache, dann 
habe ich mehrere Meter (!) Schleife und fange mir alles Mögliche ein.
Transformator habe ich schon probiert, aber da leidet das Signal zu 
sehr, ich brauche doch eine recht hohe Auflösung.

von Tim (Gast)


Lesenswert?

Gustl B. schrieb:
> AC-Kopplung reicht nicht, ich muss wirklich die Massen trennen. Es geht
> um mehrere Detektoren und ADCs, wenn ich das mit einer Masse mache, dann
> habe ich mehrere Meter (!) Schleife und fange mir alles Mögliche ein.
> Transformator habe ich schon probiert, aber da leidet das Signal zu
> sehr, ich brauche doch eine recht hohe Auflösung.

dann wäre ein LVDS iCoupler wie ADN465[0-6] vielleicht noch dazu 
hilfreich. 600M oder 1.1G sollte doch ausreichen?

von Gustl B. (gustl_b)


Lesenswert?

Exakt den plane ich zu verwenden. Leider sind die recht platzfressend 
und brauchen auch viel Strom. Ich werde 3 Stück verbauen, das sind dann 
alleine dafür grob 200 mA.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.