Forum: FPGA, VHDL & Co. Gbit Ethernet


von Noob A. (strippenzieher)


Lesenswert?

Guten Morgen,

ich möchte ein FPGA mit einer Gbit-Ethernet Schnittstelle ausstatten.

Ist das tatsächlich so "einfach" wie es wirkt?

- Cyclone V FPGA mit Triple Speed Ethernet IP
- PHY DP83867
- Übertrager
- RJ45
oder RJ45 mit integriertem Übertrager

Ich würde GMII bevorzugen, da RGMII auf mich nochmal anspruchsvoller 
wirkt.

Was gibt es da noch layouttechnisch zu berücksichtigen?

Vielen Dank für alle Anregungen!

: Bearbeitet durch User
von Ump (Gast)


Lesenswert?

Bob A. schrieb:
> Guten Morgen,
>
> ich möchte ein FPGA mit einer Gbit-Ethernet Schnittstelle ausstatten.
>
> Ist das tatsächlich so "einfach" wie es wirkt?

Wenn du fragen musst, lautet die Antwort klar ganz sicher nicht. Das ist 
Highspeed-Layout, wie LVDS, USB2 und HDMI, und zwar auch die GMII.

>
> - Cyclone V FPGA mit Triple Speed Ethernet IP
> - PHY DP83867
> - Übertrager
> - RJ45
> oder RJ45 mit integriertem Übertrager
>
> Ich würde GMII bevorzugen, da RGMII auf mich nochmal anspruchsvoller
> wirkt.
>
> Was gibt es da noch layouttechnisch zu berücksichtigen?
>
> Vielen Dank für alle Anregungen!

Yupp, sei froh dass du GMII benutzen kannst, RGMII ist Mist. Da darfst 
du dann ein Clock-Delay auf der Platine realisieren, wenn es  blöd 
läuft.

Die Leitungen zwischen FPGA und PHY müssen gematcht (naja, in Etwa 
zumindest) und Impedanzkontrolliert sein, insbesondere wenn sie länger 
sind. Falls dein FPGA keine Ports mit einstellbarer Impedanz hat, musst 
du externe Serienwiderstände verwenden. Siehe auch:
https://cdn.microsemi.com/documents/32d3e7ba-856d-4d95-a50b-fb81ec125c7f/download/

Die Impedanzkontrolle ist kein Witz, insbesondere wenn du EMV testen 
musst.

Die IO-Spannung muss auch zusammenpassen. Nicht jeder PHY und jedes FPGA 
könenn 3V3 IO-Spannung, üblich ist auch 1V8 und 2V5. Möglicherweise 
wirst du eine bestimmte IO-Bank benutzen müssen. Die Ports müssen auch 
schnell genug sein.


Für die Ethernet-Leitugen DITO. Hier gilt auch noch, dass das 
differential Pairs sind. Da am Besten ebenfalls eine Layout-Guideline 
suchen. Beispiel:
http://www.ti.com/lit/an/snla079d/snla079d.pdf


Nein, es ist nicht so einfach wie es klingt. Wer es einfach will, nimmt 
100MBit. Aber ich gehe mal stark davon aus, dass du dir das schon 
überlegt hast ;-)

von Noob A. (strippenzieher)


Lesenswert?

Hallo und Danke für die Einschätzung.

Dass das Layouten nicht ganz trivial ist, dessen bin ich mir bewusst.
Vielen Dank für die beiden Dokumente.

Mir ging es auch darum ob der Altera-GbitEthernet Stack wirklich alles 
ist was man braucht. Die stellen den ja kostenfrei zur Verfügung...

von Ump (Gast)


Lesenswert?

Ich tippe darauf, dass das nicht einfach ist. Der PHY hat ja eine ganze 
Latte an Registern, und eine Management-Interface (MDIO/MDC). Das muss 
ja auch irgenwie bedient werden.

Ob der PHY mit den Defaultwerten, mit denen er hochkommt, normal 
verwendbar ist, weiß ich nicht. Ich tippe auf nein, aber ich kenne mich 
mit der Softwareseite aber nur schlecht aus.

Naja, dein PHY ist recht gängig, da findest du sicher was dazu.

von Duke Scarring (Gast)


Lesenswert?

Ump schrieb:
> Ob der PHY mit den Defaultwerten, mit denen er hochkommt, normal
> verwendbar ist, weiß ich nicht.
Normalerweise passt das schon, aber es kann nicht schaden die 
PHY-Register lesen und schreiben zu können.

Bob A. schrieb:
> Ist das tatsächlich so "einfach" wie es wirkt?
Das ist nur die eine Seite der Medallie.
Im FPGA brauchst Du dann üblicherweise auch noch eine Logik, die mit den 
Paketen umgehen kann.

Duke

von Noob A. (strippenzieher)


Lesenswert?

Eine Logik die mit UDP-Paketen umgehen kann gibt es. Bisher wurde die 
Gbit-Ethernet Kommunikation über ein zusätzliches FPGA-Modul erledigt.

Das Modul soll durch eine "eigene" PHY und Übertrager ersetzt werden. 
Preisgünstiger und man hat mehr Kontrolle.

Hat schon jemand die Altera Gbit Ethernet IP verwendet?

von Mr. C (Gast)


Lesenswert?

Ump schrieb:
> Ich tippe darauf, dass das nicht einfach ist. Der PHY hat ja eine ganze
> Latte an Registern, und eine Management-Interface (MDIO/MDC). Das muss
> ja auch irgenwie bedient werden.
>
> Ob der PHY mit den Defaultwerten, mit denen er hochkommt, normal
> verwendbar ist, weiß ich nicht. Ich tippe auf nein, aber ich kenne mich
> mit der Softwareseite aber nur schlecht aus.

Bei Marvel kriegt man das nur unter NDA und das ist nicht trivial. Habe 
mich da auch schon mit abrackern dürfen.

von Donni D. (Gast)


Lesenswert?

Ich habe auf dem DE2-115 Board Gbit Ethernet realisiert. Da kann man 
sich erstmal nur auf den FPGA konzentrieren, weil das Lyout ja vom 
Hersteller kommt. Gibt da nen Tutorial: Using Triple Speed Ethernet on 
DE2-115 oder so

von Noob A. (strippenzieher)


Lesenswert?

Hallo Donni,

leider finde ich das von dir genannte Dokument nicht. Google spuckt zwar
Links aus, die scheinen aber alle tot zu sein :(

Eins versteh ich noch nicht:
Bei viele Designs die ich bisher gesehen habe sind zwei Pärchen zwischen 
Übertrager und RJ45 vertauscht. In den Datenblättern der PHYs sind die 
aber immer 1:1 durchverdrahtet.

Woher weiß ich denn wie ich da was anschließen soll/muss/kann?

Und wie verhält es sich bei einer RJ45-Buchse mit integrierten 
Übertragern wie z.Bsp der 7499111000A von Würth?
Datenblatt: https://katalog.we-online.de/pbs/datasheet/7499111000A.pdf

von Meinste das? (Gast)


Lesenswert?


von Donni D. (Gast)


Lesenswert?

ftp://ftp.altera.com/up/pub/Altera_Material/12.0/Tutorials/DE2-115/using 
_triple_speed_ethernet.pdf

Das ist das Ding. Kann sein das es das auch noch neuer gibt. Je nach 
Browser wird der Link nicht richtig geöffnet, Firefox und Safari können 
es aber.

von Schlaubischlumpf (Gast)


Lesenswert?

Da hat sich ein 0x20 reingemogelt!
1
ftp://ftp.altera.com/up/pub/Altera_Material/12.0/Tutorials/DE2-115/using_triple_speed_ethernet.pdf
2
ftp://ftp.altera.com/up/pub/Altera_Material/12.0/Tutorials/Using_Triple_Speed_Ethernet_design_files.zip

von Martin S. (strubi)


Lesenswert?

Mr. C schrieb:
> Bei Marvel kriegt man das nur unter NDA und das ist nicht trivial. Habe
> mich da auch schon mit abrackern dürfen.

Moin,

in den Linux-Kernelsourcen findet man übrigens etwas an Code zu div. 
Chips, deren Datenblätter mühsam zu finden sind. Zumindest reicht das 
für die Konfiguration..

Ump schrieb:
> Yupp, sei froh dass du GMII benutzen kannst, RGMII ist Mist. Da darfst
> du dann ein Clock-Delay auf der Platine realisieren, wenn es  blöd
> läuft.

So wild ist das nicht, solang die Paare sauber differentiell geroutet 
sind. Den Rest kann man im FPGA verzögern, wie bei HDMI sogar im 
Standard vorgesehen ("Lane deskewing"). RGMII macht schon Sinn, wenn die 
Platine eng ist - da wird der 'Vorteil' von GMII auch mal zum 
entsprechenden Nachteil.
Der eher unangenehme Teil ist der DDR-Kram, den man meist je Architektur 
mit Hersteller-Primitiven hintunen muss.

von Michael W. (Gast)


Lesenswert?

Martin S. schrieb:
> Der eher unangenehme Teil ist der DDR-Kram, den man meist je Architektur
> mit Hersteller-Primitiven hintunen muss.

was meinst du hier mit "hintunen"?

von Martin S. (strubi)


Lesenswert?

Markus W. schrieb:

> was meinst du hier mit "hintunen"?

Dass man es nicht einfach architekturunabhängig hinschreiben kann, 
sondern explizit DDR-Primitiven zusammenkabeln und an den Constraints 
'feineinstellen' muss, damit die Timings zu schaffen sind.

von Noob A. (strippenzieher)


Lesenswert?

Warum auch immer klappts weder mit Iexplorer noch mit Firefox...
hab mir filezilla runtergeladen und damit konnte ich die Dateien 
runterladen, sogar eine neuere Version im Ordner

ftp://ftp.altera.com/up/pub/Altera_Material/16.1/Tutorials/DE2-115

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.