mikrocontroller.net

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


Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Commtel @msn (commtel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Autor: Timscho (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timscho (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Timscho (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schaut denn deine externe Beschaltung aus?

Autor: Timscho (Gast)
Datum:

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

Autor: max (Gast)
Datum:

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

Autor: Timscho (Gast)
Datum:

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

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß!

Autor: Timscho (Gast)
Datum:

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

Autor: max (Gast)
Datum:

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

Autor: Timscho (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: Timscho (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: sohrab (Gast)
Datum:

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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.