Forum: FPGA, VHDL & Co. VHDL und Netzwerkanbindung


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute!

Ich besitze ein FPGA-Board mit dem Virtex4-XC4VFX12-FPGA und
habe schon ein paar VHDL-Designs erstellt. Nun möchte ich über das
Netzwerk Daten schicken, ein Empfang ist nicht notwendig. Es geht nur
darum, Daten möglichst schnell senden zu können.

Dieses Board beinhaltet den BCM5461. Es handelt sich um einen
Giga-Bit-Lan-Baustein, der aber reiner Tranceiver ist.
Ich habe mir sagen lassen, um sich viel Arbeit zu sparen benötigt man
eine MAC-Einheit, die angeblich für den ganzen Paketkram verantwortlich
ist.
Der FPGA beinhaltet hardwaremäßig diese Mac-Einheit und ich habe mir
diese freischalten lassen.
Ich kann sie aber nur für ein paar Monate verwenden, aber das sollte
für erste Versuche reichen.
Leider habe ich nicht die geringste Ahnung, wie ich diese ansteuern
soll. Ich kann die Mac-Einheit zwar in mein VHDL-Design implementieren,
aber ich weiß nicht wie ich die Pins tooglen muss, um da Daten
reinzubekommen.
Aber das sollte ein geringeres Problem sein. Das Hauptproblem ist, dass
man entweder das TCP-IP oder UDP-Protokoll implementiert.
Um das TCP-IP zu implementieren könnten Jahre verehen, habe ich mir
sagen lassen. Das UDP soll recht einfach sein.

Hat jemand so etwas schon einmal gemacht?
Wozu ist die Mac-Einheit jetzt genau gut und wie kann man sie
ansteuern? Es gibt zwar ein Datenblatt, aber ich werde nicht recht
schlau daraus.
Könnt ihr mir bitte weiterhelfen?

Danke.

Tschüss, Martin

von Alban (Gast)


Lesenswert?

Die MAC Einheit wie du sie nennst dürfte der Ethernetcontroller sein.
Der nimmt Daten an und macht daraus die Ethernetpacket, die er dann an
den PHY weitergibt.

Schau mal unter:

http://www.fpga4fun.com/

Da wird das ganz gut beschrieben und ich glaube wenn ich mich richtig
entsinne, ist da auch etwas Logik um UDP Packete zu versenden.

Auf der Seite opencores.org gibt es einen freien Ethernetcontroller,
der geht aber nur bis 100Mbit/s. Aber vielleicht reicht dir das ja.

von FPGA-User (Gast)


Lesenswert?

Hallo Martin,

generell würde ich sagen, dass "nur Daten senden" eine
schlechte Idee ist. Wenn Du etwas Erfahrung in Daten-
übertragung hast, dann weisst Du, dass eine Rückmeldung
vom Empfänger immer wichtig ist.
Woher soll der Sender sonst wissen, ob die Daten korrekt
angekommen sind oder ob er sie nochmal schicken soll ?

Die MAC-Einheit ist vereinfacht gesagt die unterste Stufe
beim Ethernet-Protokoll. Besorg Dir mal Literatur zum
Ethernet, sonst wirst Du da nicht weiterkommen.
Habe hier das ETHERNET Buch von O'Reilly, das hat mir geholfen.

Es gibt ja ein Beispiel-Design mit diesem Loop-Back Pfad
von RX zu TX. Schau Dir das mal an und versuch das Protokoll
zum Senden daraus zu entnehmen. Sollte eigentlich kein
Problem sein. Zuerst würde ich versuchen, mal ein blankes
Ethernet-Paket zu schicken. Also Header, Daten, CRC,
das sind max. 1500 Bytes.
Auf'm PC den Traffic anschauen mit einem Ethernet-Sniffer,
z.B. Ethereal.

Vorher sind evt. noch einige Konfigurationen / Abfragen
vom MAC bzw. PHY nötig. Es sollten doch genügend Datenblätter
und App-Notes existieren.
Wirst Dich durch die Dokus ackern müssen - schätze ich.

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.