Forum: FPGA, VHDL & Co. FPGA-Auswahl für Ethernet Anwendung


von Christian K. (morpheus421)


Lesenswert?

Hallo zusammen,

Ich möchte in einem FPGA einen 3-Port Ethernetswitch unterbringen. Am 
besten würde mir die Lösung gefallen, dass ich 3 MACs einbinde und per 
Microblaze miteinander verheirate. Nun stehe ich vor dem Problem, dass 
ich mich so langsam  entscheiden muss, in welchen Baustein ich das ganze 
packen möchte. Im erstem Projektplan hatte ich einen Spartan 3 2000 
angedacht. Dieser würde von den Logic-Resourcen locker reichen. Aber mir 
wurde gesagt und ich habe es selber schon als Anforderung gesehen, dass 
man viele Clock-Netze benötigt, um einen Ethernet MAC zu realisieren. 
Kann das wer bestätigen? Nach meiner bisherigen Suche bin bei jeweils 2 
GCLK für jeden MAC für die RX und TX Leitungen plus 2 GCLKs für interne 
Registerzugriffe gelandet. Dann kommen noch die GCLKs für den MB hinzu. 
Macht auf jeden Fall eine Zahl größer als 8. Was leider dem Maximum 
eines Spartan 3 entspricht. Nun wollte ich auf Empfehlung auf einen 3 E 
1600 umsteigen, der beinhaltet schon mal 16 GCLKs... kann man da sowas 
drin realisieren? Sollte man das Switching überhaupt im MB realisieren? 
Oder lieber im VHDL? Ist es im MB noch schnell genug? Es soll die 
Möglichkeit eines Managments vorbehalten sein... was wohl eher in 
Richtung MB abzielen würde oder? Hat da wer schon Erfahrung?

Gruß

von Roger S. (edge)


Lesenswert?

Hi Christian,

Du brauchst pro Port zwei Clock-Netze, jedoch wuerde ich den Switch core 
und MicroBlaze in einer einzigen clock domain realisieren.

> Sollte man das Switching überhaupt im MB realisieren?
> Oder lieber im VHDL? Ist es im MB noch schnell genug?

Was sind deine Anforderungen an die performance? Welchen speed haben die 
interfaces? Welche Switch-Architektur brauchst du?

Wenn mit MicroBlaze, dann wuerde ich nur das header processing in 
Software machen und die Frames DMA like in Hardware.

Da du ja eh PHYs zu deinen Ethernet ports brauchst, schau mal hier:

http://www.micrel.com/page.do?page=product-info/fastether_sw.jsp

Cheers, Roger

von Sym (Gast)


Lesenswert?

Je nach MAC benötigen diese schon einiges an Platz.

Switching in Software? Naja, da dürfen die Switching tables aber klein 
sein und nur wenige Ports bedient werden. Ich würds so machen: Switching 
selbst in Hardware, die Tables aber mit einer CPU verwalten.

Das Problem mit den vielen Taktennetzen kann man ganz leicht mit RMII 
umgehen. Da gibt es einen 50 MHz Takt für alle PHYs. Auch das 
Platinenlayout wird etwas einfacher.

von Michael (Gast)


Lesenswert?

Hallo,
dieses Projekt könnte nützlich für dich sein:
http://netfpga.org/

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.