Forum: FPGA, VHDL & Co. Altera: LVDS ohne Clock?


von P. K. (pek)


Lesenswert?

Hallo zusammen

Ich bin zur Zeit daran, eine RX-LVDS-Anbindung an mein FPGA (Stratix III 
/ Cyclone V) zu realisieren. Format: 1-bit Start (1), 10-bit Nutzdaten, 
1-bit Stop (0). Meine aktuelle Lösung benötigt 2 differentielle Paare 
(data_p/n, clk_p/n) plus GND.

Denselben Job würde mir ein externer Baustein machen (ds92lv1212a), 
allerdings ohne das Clock-Paar zu benötigen, er synchronisiert sich auf 
das Datensignal auf.

Ich will möglichst wenig Signale übertragen, aber auch keinen 
zusätzlichen Chip einsetzen. Gibt es einen Weg, dies auf den 
obengenannten FPGA zu realisieren? Eine erste Idee wäre das Stichwort 
"Soft-CDR" gewesen, gibt's aber nur für Stratix V. Hat das jemand schon 
gelöst?

Gruss

von Dr. Schnaggels (Gast)


Lesenswert?

Von welchen Datenraten redest du?

von Schlumpf (Gast)


Lesenswert?

LVDS ist erstmal nur ein elektrischer Standard und man kann damit 
machen, was man will.
Wenn die Übertragungsraten nicht zu hoch sind, kannst du auf einem 
LVDS-Port die gleichen Methoden anwenden, wie wenn du einen einfachen 
UART implementieren würdest.
Abtasten, Startbit erkennen, 10 Bits sampeln, Ende

von Uwe (Gast)


Lesenswert?

> ds92lv1212a
Was meinst du wofür der einen Ausgang namens "Clock Recovery" hat ?
Richdisch, damit holt er sich die Clock aus dem Datnestrom und gibt sie 
an den dahinterliegenden Baustein weiter damit der nun die anderen 
Asugänge Samplen kann. Den haben die Entwickler nicht aus Spaß 
drangebastelt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schlumpf schrieb:
> kannst du auf einem LVDS-Port die gleichen Methoden anwenden, wie wenn
> du einen einfachen UART implementieren würdest.
> Abtasten, Startbit erkennen, 10 Bits sampeln, Ende
Aber nicht, wenn der Datenstrom mit 400MHz angepurzelt kommt...  ;-)

> Wenn die Übertragungsraten nicht zu hoch sind
Laut DB sind es 16..40MHz auf der "langsamen" Seite und bis zu 400MHz 
auf der LVDS-Seite. Und bei einem Verhältnis von 12:1 ist ein manuelles 
Clock-Recovery schon nicht ganz einfach...

von Schlumpf (Gast)


Lesenswert?

Richtig, bei 400 MHz wird es sportlich ;-)
Aber wir wissen ja nichts über die geforderte Datenrate. Der TO schrieb 
ja nur, dass er eine Lösung mit einem externen Baustein hätte. Muss ja 
nicht sein, dass er diese Datenrate auch tatsächlich benötigt.

Ein Clock-Recovery im eigentlichen Sinne braucht er bei insgesamt 12 Bit 
Daten pro Frame nicht. Soweit driften seine Quarze nicht auseinander, 
dass er hier eine Phasenkorrektur vornehmen müsste.

Mit der Startbedingung wird aufsynchronisiert und dann die folgenden 
paar Bits äquidistant gesampelt.

von P. K. (pek)


Lesenswert?

> Was meinst du wofür der einen Ausgang namens "Clock Recovery" hat ?
> Richdisch, damit holt er sich die Clock aus dem Datnestrom und gibt sie
> an den dahinterliegenden Baustein weiter damit der nun die anderen
> Asugänge Samplen kann. Den haben die Entwickler nicht aus Spaß
> drangebastelt.
Genau, und diesen Baustein würde ich nun gerne ins FPGA 
"wegrationalisieren", ohne dass ich aber den Clock auf den Connector 
geben muss.

> Von welchen Datenraten redest du?
324 Mbit/s

> Abtasten, Startbit erkennen, 10 Bits sampeln, Ende
Leider nein...

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.