Forum: FPGA, VHDL & Co. Ethernet: IP-Core/OpenCore oder eigenbau


von Helmut (Gast)


Lesenswert?

Hallo.
Ich versuche mich seit etwa 3 Wochen am Xilinx Board Spartan-3A DSP 
S3D1800A MicroBlaze. Mit diesem Board und VHDL möchte ich einen 
Impulsgenerator mit variabeler Ausgangsfrequenz und Impulsbreite 
erstellen. Dazu möchte/muss ich per Ethernet entsprechende Parameter 
(Frequenz und Impulsbreite) an den FPGA übermitteln.

Meine Frage: Wie lässt sich schnell und so einfach wie möglich eine 
Ethernet-Komunikation auf so einem Board aufbauen? Das Board wird direkt 
an einen PC angebunden, also kein HUB/Switch etc..

Eine interessante Lösung habe ich auf 
http://www.fpga4fun.com/10BASE-T.html finden können. Nur leider besitze 
ich keine Kenntnisse in Verilog. Kennt eventuell jemand ein 
vergleichbares HowTo für VHDL? Oder sollte man gleich ein IP-Core von 
Xilinx/OpenCores.org verwenden. Wenn ja welchen?


MfG
Helmut

von Xenu (Gast)


Lesenswert?

Bei Deinem Board ist doch eine EDK-Lizenz dabei. Wieso nimmst Du dann 
nicht einfach den Ethernet-Core, der beim EDK dabei ist:

http://www.xilinx.com/products/ipcenter/xps_ethernetlite.htm

von Helmut (Gast)


Lesenswert?

Danke für die Antwort.

Ich muss zugeben ich habe keine Idee wie ich diesen Core einsetzte. Muss 
ich um den Core verwenden zu können einen Prozessor wie den Microblaze 
mit implementieren? Oder kann ich ihn seperat imlementieren und direkt 
auf die dann verfügbaren Schnittstellen zugreifen?

Ich habe momentan ein VHDL-Code für einen Impulsgenerator. Diesen Code 
möchte ich erweitern, um z.B. Parameter per Ethernet empfange und 
versenden zu können.

Ich hoffe ich habe euch mit diesem Post nicht noch mehr verwirrt.


MfG
Helmut

von Xenu (Gast)


Lesenswert?

Ich besitze das EDK nicht, aber Du kannst es selbst überprüfen indem Du
einfach den Core Generator startest (über Xilinx/ISE/Accessories im 
Startmenü/Programme) und nachschaust, ob der Core da auftaucht.

von Helmut (Gast)


Lesenswert?

Habe da schnell nachgeschaut. Der von Xenu vorgeschlagene 
xps_ethernetlite taucht dort nicht auf. Wenn ich ein neues Projekt in 
ISE anlege und unter Projekt-->New Source-->IP(CORE Generator&...) 
versuche einen Ethernet-Core zu finden, sehe ich 4 Angaben.

1. Ethernet 1000BASE-X PCS/PMA or SGMII v9.1
2. Ethernet Statistics v2.5
3. Gigabit Ethernet MAC v8.4
4. Tri Mode Ethernet MAC v3.5

Habe versucht alle aus Ethernet Statistics meinem Projekt hinzuzufügen, 
bekomme aber immer die Meldung, dass meine Lizenz nicht ausreicht um 
einen Bitstream zu erzeugen.

Habe mir die Dokumentation zu XPS_Ethernet-Lite durchgelesen und dieser 
würde für meine Bedürfnisse ausreichen. Nur lese ich die ganze Zeit auch 
das er mit einem MicroBlaze oder PowerPC zu verwenden ist. Ist dies 
wirklich so, hat wer schon mit gearbeitet?

MfG
Helmut

von Christian R. (supachris)


Lesenswert?

Naja, du musst halt abschätzen, ob es sinnvoll ist, den FPGA damit 
vollzuknallen. Du müsstest ja den MAC und die drüberliegenden Schichten 
im Spartan dann machen. Besser wäre vielleicht, einen externen PHY/MAC 
Chip zu benutzen, dann hast du für UDP und alles was sonst noch dran 
muss, schon genug in deinem Spartan zu tun. Muss es denn unbedingt 
Ethernet sein? USB 2.0 würde nicht gehn? Oder schau dir mal einen 
Controller von Wiznet an, da hast du noch viel weniger im FPGA zu 
realisieren.

von Helmut (Gast)


Lesenswert?

-Du müsstest ja den MAC und die drüberliegenden Schichten
-im Spartan dann machen."

Wenn das so stimmt, dann habe ich das Prinzip des Cores nicht 
verstanden. Ich dachte, dass dieser mir genau das abnimmt und mir 
Schnittstellen zur Verfügung stellt, an die ich dann meine zu sendenden 
Daten und noch weitere Parameter wie Zieladresse etc. übergeben und mich 
um die eigentliche Übertragung nicht mehr kümmern muss.

Eine weiter Frage: Realisieren die Cores eine eingenständige 
Ethernetschnittstelle oder kann man die in Verbindung mit dem auf dem 
Board sich befindenden Schnittstelle benutzen? Auf dem Board ist ein 
National Semiconductor DP83865DVH angesiedelt. Ich dachte mit, dass der 
Core diesen Chip ansteuert.

von Christian R. (supachris)


Lesenswert?

Naja, der Core deckt ja den MAC-Layer ab. Alles was darüber ist, musst 
du selber machen. Bei UDP geht das eventuell noch in Hardware, bei TCP 
wirds schon schwierig. Musst du auch schauen, dass du genug Platz hast, 
so ein MAC-Core braucht ja einiges an FIFOs und Slices. Der externe Phy 
wird dann über ein standardisiertes Interface mit dem MAC-Core 
verbunden, das ist schon richtig. Du musst mal bissl auseinander halten 
zwischen Ethernet und IP und UDP und was immer du noch machen willst. 
Ethernet ist ja nur der Phy, das ist in jedem Fall ein externer Chip. 
Schau dir mal UDP/IP im OSI-Modell an...

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.