Forum: FPGA, VHDL & Co. Suche Ethernet IP Core


von Sam (Gast)


Lesenswert?

Hallo Leute,

ich suche eine IP Core für einen Ethernet MAC. Ich bin auch bereit dafür 
zu zahlen. Er müsste folgende Eigenschaften haben:

- 100Mb/s fähig
- Verfügbar für Xilinx Kintex
- Receiver Port sollte Timestampfähig sein

Kennt vielleicht jemand einen Anbieter der diese Punkte erfüllt?
Oder kann mir jemand Hersteller empfehlen wo ich suchen kann?

Danke

Sam

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Hallo,

suche mal bei Comblocks. Die haben TCP, UDP und MAC-cores

Hier ist das Datenblatt für die MAC
http://comblock.com/download/com5401soft.pdf


Tom

von Sam (Gast)


Lesenswert?

Hallo Tom,

danke der sieht eigentlich ganz gut aus. Aber leider sehe ich nicht das 
er die ankommenden Frames zeitstempelt. Das wäre sehr wichtig für mich.
Weiss jemand ob es solche IPs gibt?
Oder wie könnte man das am besten mit dem geringsten delay realisieren? 
Direkt nach dem Phy?

mfg

Sam

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Hallo Sam,


du bekommst auch den Quellcode zu der MAC.


Tom

von 900ss (900ss)


Lesenswert?

In dem Ethernetframe ist doch so auch kein Platz für ein Zeitstempel so 
wie ich das sehe. Du würdest damit ein proprietäres Paket erzeugen. Ob 
es dafür Mac -Cores gibt, bezweifle ich. Musst du wahrscheinlich 
wirklich selber implementieren, wenn du den Source hast. Und die 
Software für das verarbeiten der Pakete kann auch nicht Standard sein.

Als MAC ginge evtl. auch von ARC Inc. der VMAC. Sollte der hier sein.
http://www.embeddedtechnology.com/doc/vmac-10100-mbps-ethernet-media-access-control-0001

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


Lesenswert?

Wenn es ein einfacher Ehternet sein sollte ist es nicht so kompliziert.
Habe ich hier auch mal publiziert.

Beitrag "Ethernet GMII"

> In dem Ethernetframe ist doch so auch kein Platz für ein Zeitstempel so
> wie ich das sehe. Du würdest damit ein proprietäres Paket erzeugen. Ob

Ich vermute du brauchst enen PTP (precision time protocol) Zeitstempel.
Da wird die Zeit genau eingesetzt wenn das Paket an den Phy übertragen 
wird.

Was soll der Ethernet für eine Schnittstelle in Richtung FPGA haben?

von Kai P. (delta_vii)


Lesenswert?

Schau doch mal bei opencores.org vorbei. Vielleicht findest du da was 
passendes.

von Fitzebutze (Gast)


Lesenswert?

Hi,

naja, opencores. Die MIIs kann man sich da noch rausklauben.
Den UDP-Stack (worauf es mit den Zeitstempeln wohl auf RTP rauslaufen 
wird) macht man sich besser selber. Es gibt einige Anbieter, die die 
UDP-Engine hart in HDL giessen, aber 100M performance kriegt man auch 
mit einer per CPU angekickten DMA-Engine gut hin. Braucht weniger Logik 
und ist nicht furchtbar schwer zu implementieren. CRC32 sollte man 
allerdings in HW machen.
Von Fraunhofer gibt es sogar einen TCP-Hardwarestack.
Billig sind die Lösungen allerdings nicht. Meine Entwicklung hat schon 
an die 20k verschlungen.

von Sam (Gast)


Lesenswert?

Hallo Leute,
danke erstmal für eure antworten. Ich möchte in einem FPGA den MAC 
implementieren, bzw einen fertigen IP hernehmen. Wir brauchen auf jeden 
fall einen Zeitstempel für die ankommenden Frames. Und zwar für alle 
Frames, d.h. nicht nur für PTP. So einen IP gibt es anscheinend nicht, 
daher muss ich das selber machen. Jetzt frage ich mich an welcher Stelle 
ich das machen soll. Ich denke am genauesten wäre es zwischen Phy und 
Mac. Die dv leitung gibt ja an wann ein frame angekommen ist. Ich hab 
mir gedacht ich versuche zu diesem Zeitpunkt einen Zeitstempel 
anzulegen. Dann müsste ich die Zeitstempel aber immer den richtigen 
frames zuordnen. Könnte kompliziert werden.
Eine Andere Möglichkeit wäre es nach dem MAC. Das würde gut 
funktionieren wenn ich das Delay vom MAC wüsste. Wenn es immer gleich 
ist dann kann ich das ja messen. Dann würde das so am leichtesten sein 
schätze ich.
Die Daten gehen dann an einen DMA. Über diesen kann dann die Software 
auf die Frames zugreifen. Aber ich denke den Zeitstempel muss ich in der 
logik implementieren weil es da am genauesten ist oder nicht?

mfg

Sam

von Duke Scarring (Gast)


Lesenswert?

Sam schrieb:
> Aber ich denke den Zeitstempel muss ich in der
> logik implementieren weil es da am genauesten ist oder nicht?
Hängt davon ab, wie genau Du den Zeitstempel brauchst.
In Hardwarelogik hast Du die Genauigkeit und den Jitter Deines 
Systemtaktes als Grenze.

Außerdem würde ich mir an Deiner Stelle gut überlegen, wo der 
Zeitstempel untergebracht wird. Einfach zu realisieren wäre ein 
separates FIFO. Problematisch kann dort die Synchronisation zwischen 
Zeitstempel und Datenpaket werden.

Alternativ bietet sich evtl. die Möglichkeit im Datenpaket schon Platz 
für den Zeitstempel zu lassen und den beim Empfang einzufügen. Das geht 
natürlich nur, wenn man die Paketstruktur selbst in der Hand hat und ein 
nachfolgendes Modul nicht wegen einem falschen CRC die Pakete verwirft.

Duke

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.