Hallo zusammen, ich habe vor etwas mit UDP und Ethernet auf einem FPGA zu "spielen"... Dazu will ich zunächst genau das gleiche machen wie die hier: http://www.fpga4fun.com/10BASE-T.html Meine Frage dazu: Hat das schon mal jemand in VHDL "übersetzt" oder muss ich da selbst ran? Danke schon einmal. Viele Grüße Max
Hallo, das kannte ich noch nicht. Leider gehen da die ganzen Links zu den Sourcen nicht mehr...
Hallo Max, ich hab ein funktionfaehiges design im netz gefunden, das fuer dich evtl. nuetzlich sein kann. Ich weiss nicht genau was du vor hast, aber ich nehme an, du willst auf jeden fall UDP packeten vom FPGA zu PC und andersrum versenden koennen. Das interessante bei diesem beispiel ist, dass du daufuer kein ethernet MAC core von xilinx brauchst, das design implementiert schon die MAC-funktionalitaet. Schau dir das an und melde dich wieder, wenn du fragen hast. Es wird mich freuen, die erfahrungen auf diesem gebiet zu tauschen. Timscho
Hallo Timscho, danke! Das ganze schaut schon relativ interessant aus. Hast du dazu auch zufällig auch den UDP-Empfänger? Wenn ich diesen Core einsetze werde ich davon auf jeden Fall berichten und Feedback geben. Gruß Max
Ja, den Empfaenger gibt es auch. Den habe ich nicht implementiert, aber ich nehme an, man braucht die gleichen Aenderungen im code wie beim Sender durchzufuehren (MAC Adressen, destination und source IP) damit es laeuft. Ich habe vergessen zu erwaehnen, dass das Design fuer Spartan 3e entworfen ist. Was fuer ein board benutzst du eigentlich?
Danke für den Receiver! Derzeit arbeite ich noch mit dem Verilog-Code von fpga4fun.com, den ich etwas an meine Bedürfnisse angepasst habe um meine gewünschten Daten als Payload verschicken zu können. Der Empfangszweig geht leider noch nicht ganz so, wie ich mir das vorstelle... (aber das liegt wohl primär an dem Differenzverstärker) Ich arbeite hier mit einem Spartan3E-1200
Nicht zu danken. Ich habe mich mit dem code von fpga4fun nicht auseinandergesetzt, da ich mich mit Verilog schlecht auskenne. Opencores stellt auch einen in Verilog geschriebenen UDP-Sender/Empfaenger zur Verfuegung. Ich muss sagen, ich hatte keine Probleme, das Design, das ich dir geschickt habe zum Laufen zu bringen. Gruss Timscho
Das pin assignment (wenn du das meinst) habe ich mit dem File udpSender.ucf bestimmen lassen.
Ich meinte eher die externe Hardware die Du verwendest.. also das was zwischen der Ethernet-Buchse und dem FPGA werkelt.
OK. Ich benutze das Spartan 3e Starter Kit. Darauf ist ein SMSC LAN83C185 10/100 Ethernet PHY chip.
Ich versuche das ganze ohne PHY zu machen. Das einzige was ich an zusätzlicher Hardware verwende ist ein MagJack und ein RS485 Receiver für den Empfang des differenziellen Signals :) Werde Dich updaten, sobald ich weiteres weiß!
Dann brauchst du doch einen Ethernet-Adapter dafuer, wenn ich das richtig verstehe, oder?
Die PHY und MAC funktionalität soll komplett im FPGA drinstecken! (Bis auf den differenziellen Empfänger - das erledigt eben der RS485 Receiver)
Das macht die Sache um einiges komplizierter als so wie ich es machen musste. Sollte aber trotzdem machbar sein. Ich vermute, man kann brauchbare Informationen aus dem datasheet eines PHY chips entnehmen. Viel Erfolg!
Senden geht inzwischen sehr zuverlässig - am Empfangen haperts noch etwas. Da hab ich noch ein paar Probleme mit der Synchronisation. Aber das bekomm ich demnächst hin ;)
Das freut mich fuer dich :) udpReceiver habe ich nicht benutzt, da ich in meinem design die Daten ueber die serielle Schnittstelle empfange und da habe ich ein anderes Modul eingesetzt. Synchronisierst du jetzt die beiden (sender/receiver) Module aneinander damit du den kontinuierlichen Datenfluss vom PC ueber receiver/sender und wieder zum PC bekommst oder meinst du was anderes? Timscho
Hallo Timscho , ich hoffe Du siehst nochmal hier rein! Hab versucht den Sender in Betrieb zu nehmen, in der Simulation läuft auch alles wunderbar, allerdings bricht der PHY den link ab, sobald der sender aktiv wird. Ich nutze ebenfalls das Spartan 3E Board... Hast Du mir einen Tip, muss man am PHY noch etwas konfigurieren? Grüße, Alex
Habs gefunden, der Core muss mit 10Mbit/s betrieben werden, entsprechend müssen die MODE Pins des PHYs beschalten werden (drei Widerstände gegen GND). Ich werde mich mal daran machen, das Design auf 100MBits zu erweitern, habe in Modelsim momentan nur gesehen, dass bei 100MBits gar nichts mehr geht. Grüße, Alex
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.