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ß
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.
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 :)
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.
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.