Forum: FPGA, VHDL & Co. UDP und Ethernet in VHDL


von max (Gast)


Lesenswert?

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

von Commtel @. (commtel)


Lesenswert?


von max (Gast)


Lesenswert?

Hallo,

das kannte ich noch nicht. Leider gehen da die ganzen Links zu den 
Sourcen nicht mehr...

von Timscho (Gast)


Angehängte Dateien:

Lesenswert?

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

von max (Gast)


Lesenswert?

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

von Timscho (Gast)


Angehängte Dateien:

Lesenswert?

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?

von max (Gast)


Lesenswert?

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

von Timscho (Gast)


Lesenswert?

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

von max (Gast)


Lesenswert?

Wie schaut denn deine externe Beschaltung aus?

von Timscho (Gast)


Lesenswert?

Das pin assignment (wenn du das meinst) habe ich mit dem File 
udpSender.ucf bestimmen lassen.

von max (Gast)


Lesenswert?

Ich meinte eher die externe Hardware die Du verwendest.. also das was 
zwischen der Ethernet-Buchse und dem FPGA werkelt.

von Timscho (Gast)


Lesenswert?

OK. Ich benutze das Spartan 3e Starter Kit. Darauf ist ein SMSC 
LAN83C185 10/100 Ethernet PHY chip.

von max (Gast)


Lesenswert?

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ß!

von Timscho (Gast)


Lesenswert?

Dann brauchst du doch einen Ethernet-Adapter dafuer, wenn ich das 
richtig verstehe, oder?

von max (Gast)


Lesenswert?

Die PHY und MAC funktionalität soll komplett im FPGA drinstecken! (Bis 
auf den differenziellen Empfänger - das erledigt eben der RS485 
Receiver)

von Timscho (Gast)


Lesenswert?

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!

von max (Gast)


Lesenswert?

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 ;)

von Timscho (Gast)


Lesenswert?

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

von sohrab (Gast)


Lesenswert?

How can i use this core to send UDP to pc at Ethernet 100base-T?

von Alex (Gast)


Lesenswert?

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

von Alex (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.