mikrocontroller.net

Forum: FPGA, VHDL & Co. Funktionsweise von Gigabit Transceivern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Paul (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

mich würde interessieren wie diese Trainsceiver in den FPGA's 
funktionieren?
Was ich bisher weiss ist, dass man über Trainsceiver PIN sehr hoche 
Geschwindigkeiten fahren kann. Bei Xilinx sind es im Kintex 
beispielsweise 12,5Gbps. Dazu habe ich folgende fragen:

1. Was genau machen die Transceiver Blöcke dann? Was ich weiss ist das 
sie eine asynchrone Überabtastung können. Desweiteren können die glaub 
ich auch Endcoding/Decoding von z.b. 8B/10B signalen. Habe gesehen das 
ein so ein Block um die 500 Ports hat oO
Die müssen wohl sehr mächtig sein


2. Ich hab gesehen das spezielle PINs zu den GT geführt sind. Warum ist 
das so? können diese PINs etwas besonderes? Kann man auch normale IO's 
zu den GT führen? Warum kann man diese Geschwindigkeiten nicht über 
normale IO's erreichen? Man kann doch auch mit interner Logic eine 
asynchrone Überabtastung realisieren?

Danke vielmals :)

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Paul schrieb:
> 1. Was genau machen die Transceiver Blöcke dann?
Im Wesentlichen stecken da Serializer/Deserializer drin. Vereinfacht 
gesagt: Schieberegister.
Die Daten werden im FPGA mit einem langsamen Takt parallel verarbeitet 
und auf der Schittstelle mit einem vielfachen des langsamen Taktes 
übertragen.

Duke

von No more crash Kurs (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Paul schrieb:
> 1. Was genau machen die Transceiver Blöcke dann?

Ne ganze Menge, leitungscodierung, Preamplifier, Trainingssequenz. 
Fehlercodierung, Clock/data recovery, scrambling, channel Bonding, 
spread spectrum … der Userguide allein für die MGT hat nicht umsonst 
mehrere hundert Seiten.

Du wirst dir keine Freunde machen, wenn du dir diese von Forum 
"vorlesen" lassen willst, da wirst Du dich schon selbst anstrengen 
müssen.

https://www.xilinx.com/support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf

http://billauer.co.il/blog/2016/03/mgt-gtx-fpga/
https://www.testandmeasurementtips.com/multi-gigabit-serial-protocols-demystified/
https://www.design-reuse.com/articles/10541/multi-gigabit-serdes-the-cornerstone-of-high-speed-serial-interconnects.html
https://www.groundai.com/project/optimization-of-multi-gigabit-transceivers-for-high-speed-data-communication-links-in-hep-experiments/1

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Das Thema ist ziemlich umfangreich wenn mans im Detail anpacken will. 
UG476 deckt da eigentlich alles noetige ab.

Ich persoenlich finde den analog Teil vom RX sehr spannend mit seinem 
adaptiven Equalizer (Stichwort: Decision Feedback Equalization - DFE). 
Das ist auch der Schluessel warum ueberhaupt solch hohe Daten fehlerfrei 
uebertragen werden koennen.

Schau dir mal dies Slides an, die komprimieren doch das Thema nochmal 
ganz gut runter:

http://formation.in2p3.fr/Numerique12/XILINX_HighSpeedTransceivers_IN2P3.pdf

von Paul (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Antworten.
Für mich ist es sehr schwierig diese Datenblätter zu verstehen.
Ich wollte eigentlich nur wissen warum man solche Transceiver braucht?
Warum kann man das nicht mit normalen IO's und FPGA interne logik lösen?
Was genau limitiert die standart IO's?

Gruß

Paul

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Paul schrieb:
> Was genau limitiert die standart IO's?

Die Datenrate. ;-)

Mit MGTs kommt man auf mehrere Gb/s bei normalen I/Os ist bei ca einem 
Gb/s Schluss. Warum das geht, liegt an dem speziellen HArdware Aufbau 
und wie der aussieht ist den Datenblaettern zu entnehmen (zumindest der 
Teil den die Hersteller freigeben, die genauen Internas sind natuerlich 
Betriebsgeheimnis).

von Liuri (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Aber was soll ich mit der schnellen Datenübertragung über Gigabit 
Transceiver, wenn die interne Schaltung nicht schnell genug ist, um so 
viele Daten zu verarbeiten?

von Stefan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Intern kann man mit mehreren 100GBit verarbeiten. Das geschieht dann 
parallel. Der MGT schiebt die Daten zB. mit 10GBit raus. Intern werden 
die Daten mit einem parallelen Bus verarbeitet, zB 64Bit. Bei 64Bit 
wären das eine Frequenz 156,25MHz. Da kann man einiges mit der Frequenz 
machen.

von Stefan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Aktuelle Architekturen kommen problemlos mit Datenbussen von 1024Bit und 
breiter aus. Mit einem Takt von 300MHz hat man so eine interne Datenrate 
von ca. 300GBit.

von Liuri (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wodurch ergibt sich dieser Unterschied dass man intern mehrere 100 GBit 
verarbeiten kann, aber nur mit einem Bruchteil davon Daten von außen 
annehmen?

von Samuel C. (neoexacun)


Bewertung
0 lesenswert
nicht lesenswert
Weil man intern sehr viel parallele Logik erzeugen kann, aber nur wenige 
Transceiver hat.

: Bearbeitet durch User
von Stefan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Intern ist man auf einem Silizium Chip. Dieser ist sehr schnell da die 
Quelle und das Ziel von Daten nur wenige Mikrometer auseinander liegen 
und die Leitungen dafür perfekt optimiert sind. Wenn man mit der 
Außenwelt kommunizieren will, hat man weite Entfernungen und keine 
optimalen Signalbedingungen mehr. --Stark vereinfacht--

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Wenn man mit der
> Außenwelt kommunizieren will, hat man weite Entfernungen und keine
> optimalen Signalbedingungen mehr. --Stark vereinfacht--
Außerdem benötigt man relativ hohe Ströme um die Leitungskapazitäten 
schnell genug umzuladen.

Ein Ethernet-GBit PHY z.B. genehmigt sich glatt ein Watt mehr, sobald 
ein Kabel angesteckt wird.

Duke

von vancouver (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das große Problem bei der Übertragung eines digitalen Signals ist die 
Signalqualität. Wenn Du dir ein Signal bei einer Datenrate von in paar 
kBit mit einem Oszi anschaust, siehst du ein Rechtecksignal. Bei ein 
paar MBit sind es eher sinusförmige Signale, und im GBit-Bereich hast du 
nur noch ein Knistern und Rauschen, aber nichts mehr, in dem man noch 
einzelne Zustände erkennen könnte.

Um aus diesem Gewitter noch Daten mit hoher Zuverlässigkeit zu erkennen, 
ist ein erheblicher Aufwand nötig. Die Signale werden analog gefiltert, 
dann mit einem sehr schnellen ADC digitalisiert, dann digital gefiltert 
und dann einer Reihe von digitalen Fehlerkorrekturen unterzogen. Dazu 
kommen dann noch Verfahren zur Synchronisation, so wie bei einem 
einfachen UART anhand der Start- und Stopbits die Position der Nutzdaten 
im Bitstrom gefunden wird. Dann kommt irgendwann die Parallelisierung, 
sodass Du in jedem Takt z.B. 256 Bits gleichzeitig aus dem Transceiver 
bekommst, die du dann im FPGA weiterverarbeiten kannst.

Die Signalqualität ist zudem stark abhängig von den 
Übertragungseigenschaften des Verbindung zwischen Sende- und 
Empfangstransceiver. Die Eigenschaften dieses Kanals sind anfangs 
unbekannt und müssen erst mal ermittelt werden. Dazu werden spezielle 
Trainingspattern gesendet, die der Empfänger kennt. Aus dem Vergleich 
zwischen empfangenen und erwarteten Pattern kann auf die Charakteristik 
des Kanals geschlossen werden und daraus werden die Koeffizienten der 
ganzen Filter berechnet. Meistens wird das Signal schon im Sender 
verzerrt, sodass diese Verzerrung während der Übertragung durch den 
Kanal teilweise rückgängig gemacht wird. Oftmals muss das Equalizing im 
Betrieb angepasst werden, weil sich die Kanalqualität z.B. durch 
Temperatur oder Störungen von außen ändert.

Alles das macht der GBit-Transceiver. Das ist also viel mehr als 
einfach nur eine schnelle IO-Zelle. Was da drinsteckt ist konzentrierte 
Highend-Nachrichtentechnik, entsprechend groß und teuer sind diese 
Blöcke auch, und bei kleineren FPGAs gibts daher nur weniger oder gar 
keine.

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.