[wiki:Component SocLib Components General Index] = !VciLocalCrossbar 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/module/network_component/vci_local_crossbar/caba/metadata/vci_local_crossbar.sd == Usage == !VciLocalCrossbar has no other parameter than VCI ones, it may be used like others, see [wiki:SoclibCc/VciParameters SoclibCc/VciParameters] {{{ Uses( 'vci_local_crossbar', **vci_parameters ) }}} = !VciLocalCrossbar CABA Implementation = The caba implementation is in * source:trunk/soclib/module/network_component/vci_local_crossbar/caba/source/include/vci_local_crossbar.h * source:trunk/soclib/module/network_component/vci_local_crossbar/caba/source/src/vci_local_crossbar.cpp It wraps a [wiki:Component/VciSimpleCrossbar VciSimpleCrossbar]. == Template parameters == {{{ template }}} == Constructor parameters == {{{ VciLocalCrossbar( sc_module_name name, const soclib::common::MappingTable &mt, const soclib::common::IntTab &index, 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 * soclib::caba::!VciTarget '''p_initiator_to_up''' : Initiator VCI port to micro-network * soclib::caba::!VciInitiator '''p_target_to_up''' : Target VCI port to micro-network