Forum: Mikrocontroller und Digitale Elektronik W5500 ähnlich für GBE


von Max M. (fpga_eth)


Lesenswert?

Hallo

Kennt jemand einen einfachen ETH chip (wie W5500) aber für GBE? (und 
dann halt x-Fach SPI)

: Bearbeitet durch User
von Benjamin K. (bentschie)


Lesenswert?

Kann ich mir ehrlich gesagt nicht vorstellen. Was hast du vor?
Mit SPI schaffst die ja schon nicht mal fast ethernet (100MBit). Wozu 
brauchst die dann GigE?
Und das ist ja dann sowieso Punkt zu Punkt, da kann der Switch oder wer 
auch immer am anderen Ende doch die Umsetzung von 100MBit zu GigE 
machen.

Un die SPI Ethernet Chips sind in der Regel euch eher eine Krücke. Die 
Latenz wird auch nicht gerade besser damit.

von Max M. (fpga_eth)


Lesenswert?

Benjamin K. schrieb:
> Wozu
> brauchst die dann GigE?

Nun ich brauche mehr als 100mbit bandbreite. (Zum FPGA)

Benjamin K. schrieb:
> Un die SPI Ethernet Chips sind in der Regel euch eher eine Krücke.

TCP/UDP IP im FPGA ist leider auch murks (nicht frei verfügbar in HDL), 
RGMII (PHY) ist von den constraints her auch nicht einfach.

Benjamin K. schrieb:
> Mit SPI schaffst die ja schon nicht mal fast ethernet (100MBit).

klar kann desshalb für GBE ein SPI mit mehreren Datenleitungen sien 
(aka. paralell bus)

Benjamin K. schrieb:
> Die
> Latenz wird auch nicht gerade besser damit.

Latenz ist weniger kritisch als Durchsatz.

: Bearbeitet durch User
von Obelix X. (obelix)


Lesenswert?

Max M. schrieb:
> klar kann desshalb für GBE ein SPI mit mehreren Datenleitungen sien
> (aka. paralell bus)

Das "S" in SPI steht aber für Seriel.

Was für eine Datenrate brauchst du denn effektiv Brutto oder Netto?

von Harald K. (kirnbichler)


Lesenswert?

Max M. schrieb:
> Nun ich brauche mehr als 100mbit bandbreite. (Zum FPGA)

Kann Dein FPGA PCIe? Dann nimm das und häng' einen PCIe-Ethernet-Chip 
dran. Selbst für die von Realtek gibt es (Linux- und FreeBSD-) 
Treibersourcen, so daß Du herausfinden kannst, wie mit den Dingern zu 
reden ist.

Kann Dein FPGA USB? Dann häng' da einen USB-Ethernet-Chip dran; es gibt 
dafür eine Standardgeräteklasse, so daß Du auch da keine besonderen 
Klimmzüge in der Treiberentwicklung treiben müsstest.

Für diese Standardgeräteklasse gibt es Chips mit 100 MBit, aber auch 
GBit- und sogart 2.5-GBit.

von Frank K. (fchk)


Lesenswert?

Max M. schrieb:
> RGMII (PHY) ist von den constraints her auch nicht einfach.

Dann nimm doch GMII. Pins wirst Du wohl genug haben.

> klar kann desshalb für GBE ein SPI mit mehreren Datenleitungen sien
> (aka. paralell bus)

GMII hat 8 bit parallel für TX und 8 Bit parallel für RX bei 125 MHz.

fchk

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Die Zynq 7000 haben GBit-Ethernet integriert

von Εrnst B. (ernst)


Lesenswert?

Frank K. schrieb:
> Dann nimm doch GMII.

Niklas G. schrieb:
> Die Zynq 7000 haben GBit-Ethernet integriert

Aber er sucht ja was, was neben Ethernet auch den IP-Stack integriert 
hat, weil:

Max M. schrieb:
> TCP/UDP IP im FPGA ist leider auch murks

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Εrnst B. schrieb:
> Aber er sucht ja was, was neben Ethernet auch den IP-Stack integriert
> hat, weil:

Auf dem Cortex-A9 im Zynq kann man Linux o.ä. inkl. IP-Stack laufen 
lassen, das wäre gratis...

von Max M. (fpga_eth)


Lesenswert?

Obelix X. schrieb:
> Was für eine Datenrate brauchst du denn effektiv Brutto oder Netto?

so 3-400 net wären gut.

Εrnst B. schrieb:
> Aber er sucht ja was, was neben Ethernet auch den IP-Stack integriert
> hat

genau

Niklas G. schrieb:
> Auf dem Cortex-A9 im Zynq kann man Linux o.ä. inkl. IP-Stack laufen
> lassen

ja irgend ein FPGA mit hard core wie der Zynq wäre natürlich ne lösung. 
aber möchte es eigentlich möglichst bei hdl bleiben. Der Core würde dann 
ausschliesslich für das netzwerk genutzt.

Harald K. schrieb:
> Kann Dein FPGA PCIe? Dann nimm das und häng' einen PCIe-Ethernet-Chip
> dran. Selbst für die von Realtek gibt es (Linux- und FreeBSD-)
> Treibersourcen, so daß Du herausfinden kannst, wie mit den Dingern zu
> reden ist.

Nun dann habe ich aber meines wissens weder IP stack, zudem muss ich 
nebst pcie zeugs ebenfalls den chip reverse engineeren.

Harald K. schrieb:
> Kann Dein FPGA USB?

?
Nun gewiss wenn man einen USB Host PHY einsetzen würde o_O.

Frank K. schrieb:
> GMII

Ja GMII ist ok, schlussendlich wäre mein SPI mit paralellen daten (wie 
ichs oben erwähnt habe) praktisch genau das.
Es mangelt mehr an der implementation des IP zeugs in HDL (ist einfach 
nichts brauchbares libre verfügbar).
Daher ein Phy welcher etwas mehr kann und auch den stack macht wie der 
W5500 wäre ideal, aber halt auf GBE. Oder noch besser ein guter HDL code 
der alles macht und mit nem normalen GMII PHY klarkommt.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Max M. schrieb:
> aber möchte es eigentlich möglichst bei hdl bleiben.

Der W5500 und eine fiktive Gigabit Variante enthält ja auch einen 
Prozessor. Beim Zynq ist es halt bloß alles auf einem SoC, und effizient 
angebunden.

von Vanye R. (vanye_rijan)


Lesenswert?

Max M. schrieb:
> Der Core würde dann ausschliesslich für das netzwerk genutzt.

Tja, jetzt musst du stark sein, aber der Grund wieso heute bald jeder 
Toaster Linux bootet ist ja gerade das der ganze Netzwerk/Internet Kram 
sehr komplex ist und mit Linux alles umsonst und 'relativ' einfach ist.

Vanye

von Foobar (asdfasd)


Lesenswert?

> Es mangelt mehr an der implementation des IP zeugs in HDL (ist einfach
> nichts brauchbares libre verfügbar).

Gibt's überhaupt eine TCP/IP-Stack (libre oder nicht), der das ohne 
Soft-/Hardcore macht?  Glaube kaum.  Absolut rudimentäres TCP in 
Hardware wird wohl schon deutlich mehr Resourcen fressen, als ein 
Softcore und bietet keine Vorteile.

Selbst die Idee, so etwas wie einen W5500 (mit Socket-API) per HDL 
anzusteuern, scheint mir etwas abstrus - ein minimaler UDP-Stack sollte 
nicht viel aufwendiger sein.  Btw, UDP dürfte bei einer Anwendung, die 
einen konstanten Durchsatz haben will, eh sinnvoller sein.

von Foobar (asdfasd)


Lesenswert?

Wie anderes das machen:

  https://excamera.com/files/j1.pdf

"Abstract — This paper describes a 16-bit Forth CPU core,
intended for FPGAs. The instruction set closely matches the
Forth programming language, simplifying cross-compilation.
Because it has higher throughput than comparable CPU cores,
it can stream uncompressed video over Ethernet using a simple
software loop. The entire system (source Verilog, cross compiler,
and TCP/IP networking code) is published under the BSD
license. The core is less than 200 lines of Verilog, and operates
reliably at 80 MHz in a Xilinx Spartan(R)-3E FPGA, delivering
approximately 100 ANS Forth MIPS."

von Peter (pittyj)


Lesenswert?

Max M. schrieb:
>
> TCP/UDP IP im FPGA ist leider auch murks (nicht frei verfügbar in HDL),
> RGMII (PHY) ist von den constraints her auch nicht einfach.
>

Kann ich nicht so richtig nachvollziehen. Ich hatte vor 10 Jahren ein 
Evalboard (Damals gab es noch Altera).
Darauf war auch 1G Ethernet. Das konnte man mit einem Altera Core (<1000 
Euro) bedienen.
Ich habe es aber auch testweise selber gemacht, so die CRC selbst 
implementiert, die RGMII Leitungen programmiert, etc. Damit war Ethernet 
auch kostenlos möglich. Ist nur eine Frage, wie gut du bist.

Vielleicht ist ein IP Core billiger, als 1 Monat lang frickeln.

Und wenn du es ganz billig willst: Kauf einen 8er Switch. Nimm 8* WE5500 
mit unterschiedlichen IP Adressen, und generiere einfach 8 SPI Devices 
parallel.
Das kann man beliebig hochskalieren, und der VHDL-Code existiert ja 
schon.

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.