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ß
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.