URL
https://opencores.org/ocsvn/srdydrdy_lib/srdydrdy_lib/trunk
Subversion Repositories srdydrdy_lib
[/] [srdydrdy_lib/] [trunk/] [examples/] [bridge/] [doc/] [bridge_example.txt] - Rev 22
Compare with Previous | Blame | View Log
----------------------------------Example Bridge / Switching Hub----------------------------------The bridge directory contains an example bridge built usingsrdy-drdy components. It could more accurately be calleda switching hub, since it does not implement spanning treeor QoS.The bridge is designed for simplicity rather than efficiency,as the purpose is not to make a functioning product but todemonstrate use of the library.The bridge design pushes the bulk of the logic into eachindividual port, called a port_macro. The only global logicis the FIB (Forwarding Information Block) that contains theaddress lookup and learning logic, and a centralized ringarbiter.The port_macros are connected to each other via a ring interface.Only one packet can be transmitted on the ring at a time.The system is designed so that it has more ring bandwidth thanthe maximum amount of incoming traffic, so that the ring shouldnot be the bottleneck for system performance.The bridge is designed to be output-queued, so that all packetsare forwarded to their output port and the output port willdrop packets if there is insufficient transmit bandwidth.The bridge handles all transmission errors on the input port,using the rx_fifo to drop packets which arrive with bad CRC.The parser waits until the end of packet is received to determineif the packet is good, and only sends the packet to the FIBif CRC is OK. Otherwise the parser errors the packet so itwill be dropped in RX FIFO.Packets are transmitted and received using an 8-bit GMII interface.In order to create a higher-bandwidth internal interface, datais aggregated into 64-bit words to get 8x bandwidth. This givesthe internal ring roughly 2x the bandwidth of all receiving portscombined.
