Hallo, auf Empfehlungen hier im Forum habe ich mir zum Einstieg das Nexys3 der Firma Digilent gekauft und bin bis jetzt wirklich sehr zufrieden. Für den Preis ist es sicherlich eine gute Wahl. Auch was die Peripherie betrifft, ist das Board wirklich gut durchdacht. Eine Sache, die mir allerdings recht merkwürdig vorkommt, ist die Bestückung mit dem LAN Transceiver LAN8710 der Firma Microchip bzw. SMSC. Dieser liefert noch nicht einmal die Auflösung der MAC Protokollebene, d.h. man muss sozusagen den gesamten Protokollstack in der Hardware des FPGA abbilden. Ohne große Vorkenntnisse vermute ich trotzdem mal, dass die Kapazität des verbauten XC6LX16 für die Abbildung eines kompletten MAC/IP/TCP oder MAC/UDP Protokollstacks kaum ausreichen würde und ich frage mich, was solch eine Bestückung überhaupt für einen Sinn ergeben soll, als für bloßes Marketing weil es in der Liste der vorhandenen Schnittstellen des Boards nun mal gut ausschaut? Warum hat man hier keinen Chip verbaut, der wenigstens noch die MAC Ebene des Protokollstacks auflöst oder noch besser, einen kleinen MC, der einem hier noch etwas mehr unter die Arme greift? Leider habe ich trotz intensiver Suche keinerlei Musterapplikationen zur Bedienung des LAN Transceivers gefunden. Lediglich Hinweise, dass es entsprechende Cores von der Fa. Xlilinx gibt, die allerdings Lizenzgebühren kosten und das nicht zu knapp. Für einen Hobbyisten also unbrauchbar. Mal eine dumme Frage, was könnte man denn sonst mit dem LAN Interface anfangen wenn man z.B. ein selbstentwickeltes Low-Level Protokoll fahren würde? Gibt es denn wenigstens hierfür ein paar Musterapplikationen in VHDL, die ich mir mal anschauen könnte um daraus zu lernen, wie man sowas implementiert? Vielen Dank für Eure Hilfe. Beste Grüße, Norbert
Norbert schrieb: > Dieser liefert noch nicht einmal die Auflösung der MAC > Protokollebene, d.h. man muss sozusagen den gesamten Protokollstack in > der Hardware des FPGA abbilden. Richtig. Das machen eigentlich alle Hersteller so, die Ethernet und FPGA anbieten. > Ohne große Vorkenntnisse vermute ich trotzdem mal, dass die Kapazität > des verbauten XC6LX16 für die Abbildung eines kompletten MAC/IP/TCP oder > MAC/UDP Protokollstacks kaum ausreichen würde und ich frage mich, was TCP/IP wird wahrscheinlich tatsächlich etwas zu aufwendig, aber UDP und ICMP und darauf basierte Protokolle lassen sich ganz gut mit State-Machines abbilden. > Leider habe ich trotz intensiver Suche keinerlei Musterapplikationen zur > Bedienung des LAN Transceivers gefunden. Lediglich Hinweise, dass es > entsprechende Cores von der Fa. Xlilinx gibt, die allerdings > Lizenzgebühren kosten und das nicht zu knapp. Für einen Hobbyisten also > unbrauchbar. Ja, leider. Für eine gewisse Zeit laufen die auch im Demomodus. Allerdings sind die Schnittstellen für den Microblaze optimiert. > Mal eine dumme Frage, was könnte man denn sonst mit dem LAN Interface > anfangen wenn man z.B. ein selbstentwickeltes Low-Level Protokoll fahren > würde? Gibt es denn wenigstens hierfür ein paar Musterapplikationen in > VHDL, die ich mir mal anschauen könnte um daraus zu lernen, wie man > sowas implementiert? Hier findest Du eine rudimentäre UDP-Implementierung in Verilog: http://www.fpga4fun.com/10BASE-T.html Bei Gaisler in der grlib is ein 100-MBit Core enthalten, der auch wieder für ein SoC-optimiert ist. Er füllt den Sende-FIFO mit einem AMBA-AHB-DMA-Master. Und Opencores hat sicher auch was zu bieten. Duke
Hallo Duke Duke Scarring schrieb: > Hier findest Du eine rudimentäre UDP-Implementierung in Verilog: > http://www.fpga4fun.com/10BASE-T.html Super, danke Dir! Das sieht schon mal recht verständlich aus. Aber ein kleines Problem hab ich noch: >Connect two IOs from the FPGA board to an Ethernet cable. > If the cable's other end connects to a hub or switch (like on > the picture above), use pin 1 and 2 of the Ethernet cable. > If the cable's other end connects directly to the PC, use pin 3 and 6. Naja, hier hat man sich wohl den ganzen Transceiver-Chip eingespart ;-) Der LAN8710 ist mit ganzen 19 Leitungen mit dem FPGA verbunden, die alle bedient werden wollen. Da muß ich mir mal das Datenblatt reinziehen und schauen, was es mit den ganzen Leitungen auf sich hat. Eventuell ist die Sache ja halb so wild und man kann den Code von fpga4fun fast 1:1 umsetzen. Gottseidank ist Verilog ja noch recht gut lesbar aber so ein Verilog2VHDL Tool wäre auch nicht schlecht. >Und Opencores hat sicher auch was zu bieten. Stimmt, da hatte ich mich mal registriert. Das wäre natürlich auch mal eine Suche wert. Dort findet man viele nützliche Dinge. Beste Grüße, Norbert
Hi Norbert, ich würde die Sache erst mal mit einer Soft-CPU ansteuern. D.h. nur MAC/RMII zum Phy hin implementieren (oder vom USRP-Projekt runterklauben) und mit etwas DMA-Logic an die CPU ranflanschen. Beim USRP ist das schon quasi fertig für den offenen ZPU-Softcore. (Suche github, oder ettus.com). Wenn Du dann noch über genügend externes Memory verfügst, sollten die Resourcen des LX16 locker für einen Port des lwip stack reichen. Die Performance ist dann ev. mies, aber das kannst du notfalls noch mit einigen Extras wie Checksum-Generierung und verketteten DMA-Listen pimpen. Lohnt sich mE eher, als komplette UDP-FSM mit ARP und schiessmichtot 'hart' zu implementieren. Grüsse, - Strubi
Ich würde das Atlys empfehlen. Hat ausreichend Platz für einen lightw. IP stack.
Ich hatte hier mal vorgelegt und Pakete verschickt. Das ist aber erst der Anfang. Beitrag "Ethernet GMII"
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.