Hallo Leute, ich habe eine Frage zur Performance der MGT(Multi Gigabit Transceiver). Mal angenommen ich möchte einen 32 Bit Datenwert von einem FPGA zum anderen FPGA über die MGTs versenden. Nach folgender Tabelle würde ich dann Minimum 16.5 Cycles benötigen (Latency_TX= 4.5 + Latency_RX = 12). Ist die Rechnung so richtig? http://www.xilinx.com/support/answers/38242.html#solution Danke für eure Unterstützung:)
Vom Minimum darfst du in einer realen Anwendung natürlich nicht ausgehen. Bei 32 Bit brauchst du ja TXDATAWIDTH = 2 und den 8B/10B brauchste natürlich auch, den RX und TX Buffer sollte man auch benutzen, sonst musst du das Alignment selber frickeln. Auf der Empfängerseite genauso, Comma Detection wirst du auch benötigen um deine Logik zu synchronisieren und die Pausen zu erkennen. Die MGTs sind nicht unbedingt dazu gemacht um latenzarm kurze Daten-Stücke zu übertragen. Achtung noch: Bei 32 Bit Datenpfad musst du dich selber um die Anordnung von High und Low Word kümmern, das Alignment klappt automatisch nur bis 16 Bit.
Und wenn ich angenommen 4x32Bit zu versenden habe. Müsste ich doch jeden 32Bit Datenwert seperat versenden. Also die Latenzzeit*4. Es geht darum große Datenmengen in kurzer Zeit zu versenden. Und in welchen Applikationen ist es sinnvoll die MGTs zu verwenden? Danke.
Naja, was ist denn kurze Zeit bei dir? Die Spartan 6 MGTs können ja 3,125GBit/s oder sowas maximal, das geht dann trotz allem noch fix. Bei 32 Bit kannst du dann trotz 8B/10B noch 312,5 MByte/s rüber schaufeln. Wenn du nur immer 4 Worte hast, ist natürlich die Latenz auf jeden Fall viel größer als die Länge der Nutzdaten. Sinnvoll wird das ganze erst bei Dauer-Streaming oder halt großen Blöcken.
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.