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.
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.
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
@ 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
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.
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.
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.
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.
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 !
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.
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 !
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.