Forum: FPGA, VHDL & Co. Kommunikation mit zwei Multigigabit-Transceiver(GTX)


von Klakx (Gast)


Lesenswert?

Hallo,
hat schon von euch jemand nähere Erfahrung mit den GTX gemacht?

Mein Problem ist folgendes:

Ich nutze den integrierten Biterrorrate-Tester (IBERT) von Xilinx um 
meine Virtex-5 GTX Transceiver zu untersuchen. Wenn ich keinen 
SMA-Kabelloop von TX auf RX ziehe, dann schaffe ich auch bei 5 Gigabit 
ein BER < 1E-13 (fast keine Fehler messbar). Also alles soweit in 
Ordnung.

Nun selbes Spiel mit zwei FPGA-Boards. Hier erreiche ich nach justieren 
der Equalizer(im 1-Board-Kabelloop war das fast nicht nötig) eine BER 
von 1E-5. Da man ja sicher diesen Transceivern für die Kommunikation zu 
einem anderen Gerät nutzt, verwundert mich diese hohe BER.

Nun meine Frage, ist dies normal? An welchen Stellen sollte ich nochmal 
nachschauen bzw. gibt es hier ein allgemeines Problem?

Gruß

von Christian R. (supachris)


Lesenswert?

Hast du denn die Clock Correction aktiviert wenn du von Board zu Board 
gehst? Ansonsten müsstest du von einem externen Oszillator beide 
REF-Clocks mit dem selben Takt versorgen. Ohne Clock Correction driftet 
das weg und du hast natürlich eine hohe Fehlerrate. Ich hab hier ein 
Design mit 2,5GBit/s vom ML605 (GTX) auf das SP605 (GTP) bzw. auch aufs 
AC701 (GTP) und nutze die Clock Correction, also nur 4 SMA Kabel (50cm) 
zwischen den Boards. Fehlerrate liegt bei 0 auch nach Tagen.

von Klakx (Gast)


Lesenswert?

Das ist ein interessanter Punkt.

Meine Annahme war, dass der CDR-Clock für die empfangenen Daten genommen 
wird. Anscheinend wird aber dann doch mit dem Refernenztakt 
weitergearbeitet (Taktübergang am Elastic Buffer), wodurch das o.g. 
Problem entsteht.

Schonmal Danke, das erklärt warum mein Design viel bessere BER erreicht 
als der Board-Board IBERT.

Hättest du noch eine Idee wie man den IBERT am einfachsten für zwei 
Boards konfiguriert? Oder muss ich damit auskommen, dass dieser für zwei 
unabh. Referenztakte nicht ausgelegt ist? Einfach ClockCorrection 
aktivieren wird wohl nicht funktionieren?

Vielen Dank schonmal :)

von Christian R. (supachris)


Lesenswert?

Stimmt, das reicht natürlich nicht. Du musst ja auch alle Nase lang dann 
die vereinbarte Clock Correction Sequenz senden. Ich hatte mir dann eine 
kleine Platine gebaut, die einen LVDS Oszillator drauf hat und einen 1:2 
Verteiler, damit ich beide Boards per SMA Kabel mit dem REF Clock 
versorgen kann. Die Null Fehler mit Clock Correction erreiche ich mit 
meinem eigentlichen Design, zumindest bisher und trotz SMA Kabel. Das 
Ziel-Design wird dann per Steckkarte angebunden und mit REF Clock 
versorgt um den Stress dort nicht zu haben.
Was ich auch mal probiert hatte: Den 200MHz Oszillator nehmen, per DCM 
auf 125MHz bringen und per LVDS am USER GPIO ausgeben. Dann ein passiver 
Verteiler für die beiden Boards. Das hatte auch geklappt. Musst nur den 
GTX erst vom Reset loslassen, wenn das LOCK vom DCM da ist. Für Tests 
reicht das auch.

von Klakx (Gast)


Lesenswert?

Schade. Also bleibt nur Refclock rüberschleifen als Lösung, was gerade 
in dem Design nicht geht.

Immerhin weiß ich jetzt, dass ich den 2-Board-Wert nicht trauen kann und 
der OnBoard-Loop aussagekräftiger ist.

Anscheinend habe ich noch einen anderen Fehler im Design. Unangenehm 
natürlich, wenn die Simulation sagt es wäre in Ordnung.

Danke nochmals, den Referenztakttest werde ich für spätere Design im 
Auge behalten.

von Christian R. (supachris)


Lesenswert?

Müsste man im Ibert Core nochmal schauen, das geht vielleicht schon 
irgendwie denn SATA usw. kann man ja damit auch testen. Oder frag/schau 
mal im Xilinx Forum...

von Klakx (Gast)


Lesenswert?

funktioniert jetzt tadellos!

hatte leider noch txreset/rxreset auf Flanke der Locked-Signale gesetzt 
und damit Resetpulse ausgelöst. Für niedrige Geschwindigkeiten kein 
Problem. Anscheinend jedoch, wenn es schneller wird (in der Sim lagen 
wohl die Phasen idealer). Nach Richtigsetzen funktioniert es nun wie 
erwartet.

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.