[wiki:Component SocLib Components General Index] = !VciSimpleCrossbar Functional Description = This hardware component is a generic VCI crossbar, it contains two independant crossbars for VCI commands and VCI responses. When several initiators try to reach the same target, the arbitration policy is round-robin. It gives the system designer a generic "communication black-box" with a parametrized number of VCI initiator ports (NB_INITIATOR), and a parameterized number of VCI target ports (NB_TARGET). As any VCI advanced compliant interconnect, this component uses the MSB bits of the VCI ADDRESS field to route the command packets to the proper target, thanks to a routing table, implemented as a ROM. This routing table is build by the constructor from the informations stored in the [wiki:Component/MappingTable mapping table]. It uses the VCI RSRCID field to route the response packet to the initiator. = Component definition = Available in source:trunk/soclib/desc/soclib/vci_simple_crossbar.sd == Usage == !VciSimpleCrossbar has no other parameter than VCI ones, it may be used like others, see [wiki:SoclibCc/VciParameters SoclibCc/VciParameters] {{{ Uses( 'vci_simple_crossbar', **vci_parameters ) }}} = !VciSimpleCrossbar CABA Implementation = The caba implementation is in * source:trunk/soclib/systemc/include/caba/interconnect/vci_simple_crossbar.h * source:trunk/soclib/systemc/src/caba/interconnect/vci_simple_crossbar.cc == Template parameters == {{{ template }}} == Constructor parameters == {{{ VciSimpleCrossbar( sc_module_name name, const soclib::common::MappingTable &mt, size_t nb_initiator, size_t nb_target ); }}} == Ports == * sc_in '''p_resetn''' : Global system reset * sc_in '''p_clk''' : Global system clock * soclib::caba::!VciTarget '''p_from_initiator[]''' : Ports from VCI initiators * soclib::caba::!VciInitiator '''p_to_target[]''' : Ports to VCI targets