Hallo zusammen Ich bin auf der Suche nach einem TCP/IP IPcore. bei Xilinx und Opencores habe ich keinen gesehen. Kann mir jemand weiterhelfen. Gruss
Die einfachste Methode wäre einen Mikrocontroller-Core zu benutzen und darauf einen Software-TCP/IP-Stack laufen zu lassen, z.B. den uIP von Adam Dunkels: http://www.sics.se/~adam/uip/index.php/Main_Page
Was ganz gut geht ist der TEMAC auf dem Virtex 4 FX, und TCP/IP dann im Software-Stack auf dem PowerPC. Da kann man schön über den Scatter-Gather DMA die TCP/IP Pakete zusammen bauen lassen. Eine reine HW-Stack Lösung ist für TCP schwierig bis unmöglich. Für UDP geht das allerdings schon auch...
Die Cores die ich bisher gesehen habe, versenden einfach nur
Ethernet-Pakete.
Hier eine kleine Auswahl:
* greth (Gaisler Research)
* Tri Mode Ethernet MAC(Xilinx, Core Generator)
* XPS Ethernet Lite (Xilinx, EDK)
> Das ganze soll auf einem Spartan 6 laufen
Schön, aber nicht soo sehr informativ. Was hast Du denn für Mittel
(zeitlich, finanziell, Vorwissen)? Hast Du Platz für einen Prozessor im
System?
Duke
ethernet lite kann nur max fast ethernet. für gigabit ethernet den Tri Mode Ethernet MAC(Xilinx, Core Generator)benutzen udn dann unter softwareplattform settings hat xilinx nen vorgefertigten TCP/IP Stack (lwIP)
lässt sich mit diesen Software-TCP/IP-Stacks die volle Datendurchsatzrate von Gigabit Ehternet ausschöpfen?
Da hängt von Deiner Software und der Leistungsfähigkeit Deines Prozessorcores ab. Ich würde vermuten: eher nein. Was brauchst Du denn für einen Durchsatz? Duke
Wir haben die volle Geschwindigkeit damals nur mit dem Hardware TEMAC, Checksum Offloading, großen FIFOs und dem MPMC DMA Controller geschafft. Und dann auch nicht mit dem lwip Gebastel sondern mit einem selbst geschriebenem Stack, der auch die HW-Features sinnvoll nutzt. Allerdings war dann der Virtex 4 auf dem ML403 fast vollständig gefüllt. Da war noch nicht mal irgendwelche eigene Peripherie dran. Datenübertragung war per UDP aus dem SDRAM zum PC. Mit TCP/IP wäre das nix geworden, daher haben wir das Projekt auch aufgegeben.
Nun, ideal wäre ein NutzDatendurchsatz von 32 MB/s an. Wer weiss, mit dem TEMAC und dem UDP/IP core von opencores könnte ich das vielleicht schaffen, was meint ihr? PC seitig würde ich mit einem UDP socket von Winsock arbeiten. Gruss
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.