Forum: FPGA, VHDL & Co. Ethernet MAC von Opencore in VHDL-Projekt einbinden


von TomBecker (Gast)


Lesenswert?

Moin moin,

ich möchte für ein VHDL-Projekt eine Ethernet-Schnittstelle für eine 
PC-Steueroberfläche nutzen. Dazu habe ich mir den Ethernet MAC "ethmac" 
von Opencore geladen. Mir ist noch nicht ganz klar, wie ich diesen Core 
in ein Projekt einbinden kann. Die Fragen dabei sind vor allem, wie ich 
diesen WISHBONE-Bus für das Senden und Empfangen korrekt nutze.

Über den Wishbone-Bus kommuniziere ich mit dem Core, um meine Daten zu 
transferieren. Nachdem ich die Daten in einen Speicher geladen und die 
Register mit den Pointern auf den Speicher korrekt gesetzt habe beginnt 
die Übertragung. Die Datenblätter lassen sich aber gar nicht zum 
Datenspeicher aus. Ist in dem Core bereits ein Speicher vorhanden, in 
den ich meine zu sendenden Daten schreiben kann oder muss ich einen 
externen Speicher mit dem Bus verbinden? In den Datenblättern habe ich 
lediglich die Adressen für die Register und die "Buffer Descriptoren" 
gefunden. Falls ich einen externen Speicher nutzen muss, wie 
unterscheidet der Core, ob die Speicheradresse, die ich auf den Bus 
lege, für den Master/Slave(Register, Tx/RxBuffer) oder für den externen 
Speicher(Daten) ist? Falls ich keinen externen Speicher nutzen muss - 
welche Adressen hat der Speicher für die Sende-/Empfangsdaten?

Wie steuere ich den Core korrekt für einen Sende-/Empfangsvorgang über 
den Wishbone-Bus an?

Wäre toll, wenn mir jemand mit seinen Erfahrungen aushelfen könnte.

Vielleicht hat jemand einmal mit diesem Core gearbeitet und kann mir ein 
exemplarisches Programmbeispiel zur Verfügung stellen, aus dem ich 
ersehen könnte, wie die Kommunikation prinzipiell funktioniert.

Vielen Dank im Voraus.

von Rick Dangerus (Gast)


Lesenswert?

Den Wishbone-Bus kannst Du natürlich auch "per Hand" ansteuern (z.B. via 
FSM). Aber eigentlich ist der dazu gedacht Wishbone-Devices mit einem 
Wishbone-fähigen Core zu verbinden. So eine Art ISA-Bus (Vorgänger von 
PCI-Bus) im FPGA.
Dann brauchst Du "nur noch" die entsprechende Software auf Deinem Core 
laufen zu lassen.

Rick

von Andreas S. (andreas911)


Lesenswert?

Hallo,

ich habe so einen Mac-Core auf einem Altera Board unter µc-Linux zum 
laufen bekommen. Allerdings habe ich den Mac von Maco benutzt, da dieser 
auf den Avalon-Bus abgestimmt ist. Falls ein Board mit dem Avalon-Bus 
genutzt wird, würde ich auf jeden Fall diesen Core empfehlen.

Die Register gibt es einmal im MAC selbst und dann noch einmal im 
verwendeten PHY. Bei mir wird dann der MAC mit dem PHY über das MII 
verbunden.

Über das MII sind dann die Regs vom Phy erreichbar.

Als Buffer dient bei mir der SDRAM, welcher mit dem Slave Eingang des 
Core's verbunden wird.

Mal am Rande.
Was für ein Board und was für ein PHY wird denn benutzt ?


Gruß,

Andreas

von Roger S. (edge)


Lesenswert?

Der Opencores 10/100 MAC ist mit Vorsicht zu geniessen, speziell die 
Maco Avalon Variante. Bei 100Mbps in verbindung mit SDRAM kommt es hin 
und wieder vor dass er ingress Frames nicht korrekt ins RAM schreibt.

PHY management geht ueber MDIO.

Cheers, Roger

von Andreas S. (andreas911)


Lesenswert?

Hm. Hatte bisher keine Probleme in der Richtung. Ist bekannt womit 
dieser Fehler zusammenhängt ?


Gruß,

Andreas

von Roger S. (edge)


Lesenswert?

Auf Opencores in der bug liste. Zum Maco Avalon wrapper gibts bei 
http://www.niosforum.com diverse posts von Leuten mit Problemen.
Unter anderem hat Jemand in der Post-your-IP section den core mit einem 
native Avalon interface released.

Cheers, Roger

von Jakob Jones (Gast)


Lesenswert?

Bitte verzeihen Sie diesen Post. Ich habe Google bei der Übersetzung von 
Englisch auf Deutsch. Ich schrieb das Schlüsselbein Teil des OpenCores 
MAC und ersetzt es mit einem nativen Avalon Interface. Sie erreichen ihn 
über die NIOS-Forum in 
http://forum.niosforum.com/forum/index.php?showtopic=8287.

von Frouni (Gast)


Lesenswert?

Hallo zusammen,

Ich möchte auch eine Ethernet-Schnittstelle (nur MDIO/MDC) realisieren.
Das ganze soll über einen Wishbonebus angesteuert werden.

Ich habe in dieser Sache nicht gerade viel Informationen bei google 
gefunden.
Die Seite Opencores läuft momentan nicht bei mir....

Hat jemand so etwas schon mal zum laufen gebracht?
Könnte er ein Beispiel ins Forum stellen?

Wäre super!!

Gruss frouni

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Frouni schrieb:
> Hallo zusammen,
>
> Ich möchte auch eine Ethernet-Schnittstelle (nur MDIO/MDC) realisieren.
> Das ganze soll über einen Wishbonebus angesteuert werden.

Das ist doch nur der Bus für die Register in der Phy, Die Daten werden 
über die Leitungen TX und RX übertragen. Das reicht nicht für eine LAN 
Schnittstelle.

von Andi (Gast)


Lesenswert?

Hallo,

ich hab mal für Elektor aus dem Opencores Ethernet MAC + T51 Core einen 
Webserver gebastelt. Dieses Projekt (Teil 9, EX24) ist auf das absolute 
Minimum abgespeckt und daher, so denke ich, relativ gut für den Einstieg 
ins Thema Ethernet geeigent. Der Source kann bei Elektor runtergeladen 
werden
http://www.elektor.de/jahrgang/2007/februar/fpga-kurs-(9).64638.lynkx

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.