wiki:Component/VciLocalCrossbar

Version 14 (modified by alain, 11 years ago) (diff)

--

SocLib Components General Index

VciLocalCrossbar

1) Functional Description

This hardware component can be used as a local interconnect in a two-levels hierarchical interconnect to interconnect a limited number of VCI initiators and targets in a local sub-system. The associated sub-system is identified by a cluster index. It contains two independant crossbars for VCI commands and VCI responses.

  • The number of VCI initiators is a parameter that should not be larger than 4.
  • The number of VCI targets is a parameter that should not be larger than 4.

The VciLocalCrossbar component has two dedicated VCI ports (initiator and target) to connect the local subsystem to the global VCI interconnect.

When several initiators try to reach the same target, the arbitration policy is round-robin.

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 mapping table. It uses the VCI RSRCID field to route the response packet to the initiator.

2) Component definition & usage

source:trunk/soclib/module/network_component/vci_local_crossbar/caba/metadata/vci_local_crossbar.sd

See SoclibCc/VciParameters

Uses( 'vci_local_crossbar', **vci_parameters )

3) CABA Implementation

CABA sources

CABA Constructor parameters

VciLocalCrossbar(
     sc_module_name name,  //  instance name
     const soclib::common::MappingTable &mt,  // mapping table
     const size_t cluster_index,  //  global cluster index
     const soclib:dd:common::IntTab &cluster_index,  //  global cluster index
     const size_t nb_initiator,  //  number of VCI initiators
     const size_t nb_target ); // number of VCI targets

CABA Ports

  • p_resetn : Global system reset
  • p_clk : Global system clock
  • p_to_initiator[i] : Ports to VCI initiators
  • p_to_target[i] : Ports to VCI targets
  • p_initiator_to_up : Initiator VCI port to micro-network
  • p_target_to_up : Target VCI port to micro-network

4) TLM-DT implementation

TLM-DT sources

TLM-DT Constructor parameters

VciLocalCrossbar(
     sc_module_name name,  //  instance name
     const soclib::common::MappingTable &mt,  // mapping table
     const soclib::common::IntTab &initiator_index,  //  global initiator index
     const soclib::common::IntTab &target_index,  //  global target index
     size_t nb_initiator,  //  number of VCI initiators
     size_t nb_target ); // number of VCI targets

TLM-DT Ports

  • p_to_initiator[i] : ports to VCI initiators
  • p_to_target[i] : ports to VCI targets
  • p_initiator_to_up : VCI initiator port to micro-network
  • p_target_to_up : VCI target port to micro-network