mikrocontroller.net

Forum: FPGA, VHDL & Co. LVDS mit DDR annehmen


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich stehe vor dem Folgendem Problem: Ein AD-Wandler sendet über LVDS 
seine ausgehenden Signale seine seriellen Daten an mein FPGA. Diese 
kommen aber erstens über seine eigene PLL, zweitens mit genau doppelter 
Frequenz, mit der ich ihn steuern kann und drittens als LVDS und in 
doppelter Datenrate.

Praktisch muss ich also 2x LVDS je für daten und clock annehmen, DDR auf 
SDR wandeln, die Frequenz halbieren und alle Clockübergänge beachten und 
wer weiss was sonst noch.

Erstes Problem:  Die instanzieirbaren SERDES schaffen nur 10 Bit, 
während der Wandler bis zu 14 bringen kann.

Zweites Problem: Die PLL des Wandlerss schafft mir ja eine Art Jitter 
und erfordert wieder Einsynchronisieren. Wie macht man das auf der 
doppelten Frequenz? Ich sende dem Wandler schon 100 MHz und will keine 
negativen Clockzustände benutzen.

Wie muss so eine Schaltung aussehen?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1) Die eingebauten SERDES Blöcke mit 10 Bit, die Du wahrscheinlich 
meinst, sind für die Kommunikationsprotokolle gedacht.
Das Einlesen der A/D Daten kann mit einem Schieberegister erfolgen. 
Eventuell brauchst Du 2 Schieberegister, je eins für jede Flanke.
Danach wird das ganze zu einem 14 Bit Word zusammengesetzt.
Das alles erfolgt mit dem Takt des A/D Wandlers
2) Zum Übergeben an den Rest der Schaltung, die mit einem anderen Takt 
läuft, verwendet man am besten ein FIFO mit 2 getrennten Taktemn für 
Eingang und Ausgang.

Autor: Sebastian U. (sebp20)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von Xilinx gibt es zu dem Thema ein App Note:

http://www.xilinx.com/support/documentation/applic...

darin ist ganz gut beschrieben wie ein solches Interface realisiert 
werden kann.

Autor: Chef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ich sende dem Wandler schon 100 MHz"

Sind das dann 100MHz x DDR oder 100MHz x 2 auf DDR, also 400?

Zumindest im ersten Fall geht das auch noch mit einer einizgen 
Sampleclock von dann 200MHz, die man per PLL-Ausgang=100 auf die 
positive Flanke trimmt. Die Zwischenflanken nehmen dann die ODD samples 
an. Macht ein 200 MHz Schieberegister, dass alle 14 clocks ein Datum 
abwirft, welches dann 14MHz lang gueltig ist.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also genau genommen ist es so, dass der Wandler mit 200MHz DDR daher 
kommt. Gesteuert wird er mit einem n-teil davon, also z.B. 100,50,25 - 
er macht sich dann seinen eigenene Takt.

Wenn ich es richtig verstanden habe, muss ich also die negativen und 
positiven Takte getrennt sampeln? Dann liefe jedes Register mit 200MHz.

Aber mit welchem Takt lese ich die aus? Ich will möglichst wenig nutzen, 
wegen des Stroms, ausserdem sehe ich noch nicht, wie ich die beiden 
Register zusammenbekomme - die arbeiten ja nicht auf derselben Flanke.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.