Forum: FPGA, VHDL & Co. TCP/IP Stack auf FPGA Boards


von Chrischan (Gast)


Lesenswert?

Hallo,

demnächst beginne ich eine kleine Studienarbeit über die Implementierung 
eines TCP/IP Stacks auf FPGAs. Dem voraus geht eine kleine Marktanalyse 
á la "was gibts schon, was kostets, Implementierungsaufwand, Preis, 
Hersteller .."

Hat jemand eine Ahnung wo man da anfängt zu suchen ?
Wo findet man Material, Datenblätter, Vergleichstabellen.
Gibt es aktuele Bücher ?

Ich brauch eben erstmal einen Einstieg.

Meine Vorkenntnisse : Elektrotechnik Studium ; Arbeit mit 
uC-Controllern; habe ein kleines VHDL-Rrojekt realisiert (Schaltplan und 
Logisynthese zu gleichen Teilen)

Ich danke euch, für das LEsen meines Anfängerposts.

von Christian R. (supachris)


Lesenswert?

Also auf einem Xilinx Virtex 4 mit PowerPC und GBit-Ethernet MAC läuft 
das ganz gut, von Xilinx gibts direkt eine Appnote mit dem LwIP Stack. 
Ist aber wenig optmiert und nutzt die tollen Sachen wie 
Checksum-Offloading usw nicht aus. Wir haben uns selber einen UDP/IP 
Stack geschrieben, der die Ressourcen im Virtex (Checksum Offloading, 
Interrupt-Bündelung, Jumbo-Frames, Scatter-Gather-DMA-Controller), 
effektiv ausnutzt (ist auch eine Diplomarbeit). Ist aber eine Mege 
Arbeit und ohne Prozessor ist TCP ja eigentlich gar nicht machbar, UDP 
wäre auch ein Krampf in reiner Hardware. Je nach Geschwindigkeit und 
FPGA kannst du ja auch einen Soft-Core Prozessor wie den Microblaze 
benutzen, mit dem PPC405 hat man allerdings mehr Freiräume. Übrigens 
gibts auch eine MontaVista Linux Implementierung auf dem Xilinx Virtex 
4.

von Chrischan (Gast)


Lesenswert?

Was ist die Schwierigkeit bei einer reinen Implementierung in Hardware.
Was haltet ihr von den NIOS II Boards ?
Gibts vergleichbares /besseres ?

Sorry die Antwort war schon echt gut, aber ich bin eben immer noch auf 
der Suche nach ein paar Hausnummern zur Orientierung.

Vielen Dank

von Falk B. (falk)


Lesenswert?

@ Chrischan (Gast)

>Was ist die Schwierigkeit bei einer reinen Implementierung in Hardware.

Die Komplexität. Das in eine State machine zu giessen dürfte recht 
aufwänfig werden, soohl vom Design als von der Hardwareressource.

>Was haltet ihr von den NIOS II Boards ?

Recht brauchbar wie man hört.

>Gibts vergleichbares /besseres ?

Die Xilinx Boards mit Microblaze oder PPC.

MFg
Falk

von Christian R. (supachris)


Lesenswert?

TCP in Hardware? Das wird lustig....UDP ist ja noch machbar, aber für 
die anderen Protokolle, die sowas sinnvoll machen (ARP, ICMP, DHCP...) 
wirds schon schwierig. TCB braucht ja haufenweise Puffer und Intelligenz 
für die Sliding Windows, Acks usw....mir ist zumindest keine 
Hardware-Implementierung für TCP bekannt. UDP hab ich mal was gesehen, 
glaube ich.
Mit dem NIOS hab ich selber keine Erfahrungen, hab aber auch mal eine 
Diplomarbeit gelesen, da hat einer UDP auf dem NIOS implementiert, und 
etwa 700MBit/s erreicht. Mit dem LwIP wars auch da grottig langsam. Wir 
haben aus dem DDR SDRAM mit dem Virtex-4 FX und allen o.g. Features 
eingesetzt nahezu die möglichen 125MB/s erreicht. Allerdings nur UDP und 
als dem RAM, keine Acks, und PCI Express NIC am PC. In 2 Wochen hat mein 
Diplomand, der das bearbeitet, Verteidigung, dann müssen wir mal sehen, 
ob wir die DA freigeben können, dann kann ich dir die gerne mal 
schicken. Natürlich ohne Quellcodes, versteht sich.

von Günter -. (guenter)


Lesenswert?

Chrischan wrote:
...
>
> Hat jemand eine Ahnung wo man da anfängt zu suchen ?
> Wo findet man Material, Datenblätter, Vergleichstabellen.
> Gibt es aktuele Bücher ?

Such mal nach "TCP off load engine" auch TOE abgekürzt.

von Holger (Gast)


Lesenswert?

http://www.latticesemi.com/documents/doc26534x90.pdf
Da ist ein Referenz-Modell dazu, weiteres findest du in den
App-Notes u. Usern& Foren "TCP/IP" eingeben .

Gruss Holger.

von Michael (Gast)


Lesenswert?

Es gibt externe Hardware (ICs) die das Protokoll erledigen (die 
sogenannten Hardwire TCP/IP Stacks)

http://www.dacomwest.de/de/etherics_hardwired_w5100.htm

http://www.saelig.com/pr/w5100.htm

oder mal nach der Firma Wiznet suchen.

von Chris K. (chrisch)


Lesenswert?

Habe ich das nun richtig verstanden, es gibt mehrere Möglichkeiten einen 
TCP/IP Stack zu nutzen :

1. externe Hardware (Hardwire)
2. alles selbst in Hardware gießen (wohl sehr aufwändig)
3. mit Hilfe von Microcontrollern (? wie das ?)
4. ?


derzeit schieße ich mich gerade auf die Nios II Boards ein und werde 
dort wahrscheinlich bald erste praktische Versuche starten.

Danke für die Antworten bisher !

von Fabian (Gast)


Lesenswert?

Hallo,

ich weis nicht wie weit Du schon mit deiner Versuch vorangeschritten 
bist. Falls noch Interesse besteht, habe 2005 eine Diplom-Arbeit über 
Implementierung eines TCP/IP Stacks auf einem FPGA (Spartan3) verfasst 
(Hardware gegossen). Allerdings nur auf UDP-Ebene, da TCP in anbetracht 
der Zeit zu komplex war.

von Chris K. (chrisch)


Lesenswert?

Hallo!

Ich würde sehr sehr gerne einen Blick in deine Arbeit werfen, so langsam 
komm ich doch etwas in Zeitnöte..

Viele Grüße !

Vielleicht per Mail ?
Chris90@gmx.net

Danke sehr !

von Mazda (Gast)


Lesenswert?

Hallo,
ich bin auch sehr inetrsiert an einer Hardwarelösung von TCP Stack, da 
ich von software fast keine Ahnung habe und ich muss meine Register über 
eine WEB Browser direckt erreichen ohne software oder Treiber:

Registerbanck <--> TCP interface <--> frame de/encapsulation <--> MAC 
<--> PHY  <-----------> PC (web interface)

Ich benutze Spartan6 und einen MAC habe ich auch.

Ich bin dankbar für jede Hilfe oder Tips.

Danke
Mazda

von Andi (Gast)


Lesenswert?

Zum Thema TCP Stack auf einem FPGA Board mit Hilfe eines Softcores 
(=eingebetteter Microcontroller) siehe beispielsweise
http://www.elektor.de/jahrgang/2007/februar/fpga-kurs-%289%29.64638.lynkx?tab=4

Dort wurde ein Webserver auf dem Elektor FPGA Board entwickelt.
Den VHDL Source kann man sich bei Elektor runterladen.

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.