Changes between Version 15 and Version 16 of Component/Vci Avalon Bus


Ignore:
Timestamp:
Jan 21, 2009, 11:10:59 AM (15 years ago)
Author:
irisa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Avalon Bus

    v15 v16  
    66
    77This hardware component is a generic Avalon switch fabric allowing the interconnection of ''Nb_Master'' Avalon masters and ''Nb_Slave'' Avalon slaves. The master-to-slave relationship can be one-to-one, one-to-many, many-to-one, or many-to-many. Masters and slaves have the same data and address widths and  operate  in the same clock domain.
    8 It can be used in conjunction with the VciAvalonInitiatorWrapper and the VciAvalonTargetWrapper to build a system using an Avalon interconnect.
     8It can be used in conjunction with the VciAvalonInitiatorWrapper and the VciAvalonTargetWrapper wrappers to build a system using an Avalon interconnect.
    99
    10 VCI-Avalon wrappers do not require to support full Avalon features, so not all Avalon slave and master ports are supported ([wiki:Component/AvalonSwitchMaster AvalonSwitchMaster], [wiki:Component/AvalonSwitchSlave AvalonSwitchSlave]).
     10VCI-Avalon wrappers do not require to support full Avalon features, so not all Avalon slave and master ports are supported ([source:trunk/soclib/soclib/communication/avalonbus/caba/source/include/avalon_switch_slave.h], [source:trunk/soclib/soclib/communication/avalonbus/caba/source/include/avalon_switch_master.h]).
    1111
    1212Implemented functionnalities :
     
    2626 
    2727
    28 Address decoding logic, !ADL in the system interconnect fabric distributes an appropriate address and produces a chipselect signal for each slave.
     28Address decoding logic (ADL) ([source:trunk/soclib/soclib/module/network_component/avalon_switch_fabric/caba/source/include/avalon_address_decoding_logic.h]) in the system interconnect fabric distributes an appropriate address and produces a chipselect signal for each slave.
    2929
    30 Datapath multiplexing, !MUX (!AvalonMux) in the system interconnect fabric drives the ''writedata'' signal from the granted master to the selected slave, and the ''readdata'' signal from the selected slave back to the requesting master.
     30Datapath multiplexing (MUX) ([source:trunk/soclib/soclib/module/network_component/avalon_switch_fabric/caba/source/include/avalon_mux.h]) in the system interconnect fabric drives the ''writedata'' signal from the granted master to the selected slave, and the ''readdata'' signal from the selected slave back to the requesting master.
    3131
    3232Multiple Avalon masters can simultaneously perform transfers with independent slaves. The system interconnect fabric provides shared access to slaves using a technique
    33 called slave-side arbitration. Slave-side arbitration moves the arbitration logic (Arbiter) (AvalonArbiter) close to the slave, such that the algorithm that determines which master gains access to a specific slave in the event that multiple masters attempt to access the same slave at the same time. The arbiter grants shares in a round-robin order.
     33called slave-side arbitration. Slave-side arbitration moves the arbitration logic (ARBITER) ([source:trunk/soclib/soclib/module/network_component/avalon_arbiter/caba/source/include/avalon_arbiter.h]) close to the slave. The arbiter grants shares in a round-robin order.
    3434
    35 AvalonSwitchConfig describes the implemented switch fabric.
     35The switch fabric implementation is described through the following example: [source:trunk/soclib/soclib/communication/avalonbus/caba/source/include/avalon_switch_config.h_multimer_nios2].
    3636
    3737== 2) Component definition & usage ==
     
    4747
    4848{{{
    49 AvalonSwitchFabric<Nb_Master, Nb_Slave, avalon_param>   SwitchFabric("SwitchFabric", config_switch);
     49AvalonSwitchFabric(sc_module_name insname,
     50                   AvalonSwitchConfig<NB_MASTER, NB_SLAVE> config) ;
    5051}}}
    5152
     
    5455 * sc_in<bool> '''p_resetn''' :                   Global system reset
    5556 * sc_in<bool> '''p_clk''' :                      Global system clock
    56  * AvalonSwitch_Master '''*p_avalon_master''':        Nb_Master ports from Avalon masters
    57  * AvalonSwitch_Slave  '''*p_avalon_slave''':         Nb_Slave ports to Avalon slaves
     57 * !AvalonSwitch_Master '''*p_avalon_master''':        Nb_Master ports from Avalon masters
     58 * !AvalonSwitch_Slave  '''*p_avalon_slave''':         Nb_Slave ports to Avalon slaves
    5859
    5960=== CABA Implementation Notes ===
    6061
    6162
    62 The configuration of the switch fabric is platform dependant. The AvalonSwitchConfig component is used for this purpose.
     63The configuration of the switch fabric is platform dependant. The !AvalonSwitchConfig component ([source:trunk/soclib/soclib/communication/avalonbus/caba/source/include/avalon_switch_config.h_multimer_nios2) is used to configure the switch for a specific platform.
    6364
    6465{{{
     
    6667}}}
    6768
    68 where ''Nb_Master, Nb_slave'' : defined in the platform description ('''top.cpp''' file).
     69where ''Nb_Master, Nb_slave'' are parameters defined in the platform description ('''top.cpp''' file).
    6970
    70 For each master the routing table SwitchFabricParam_Master[0]->route[] describes the connection between this given master and  the slaves.
    71 SwitchFabricParam_Master[]->mux_n_slave is the number of slaves connected to this master (number of MUX inputs).
     71For each master the routing table !SwitchFabricParam_Master![0]->route[] describes the connection between this given master and  the slaves.
     72
     73!SwitchFabricParam_Master[]->mux_n_slave is the number of slaves connected to this master (number of MUX inputs).
    7274
    7375[[Image(SwitchFabric.png, nolink, align=right, width=14cm)]]
    7476
    75 For each slave  the routing table SwitchFabricParam_Slave[0]->route[] describes the connection between this slave and  the masters. 
    76 SwitchFabricParam_Slave[]->arbiter_n_master is the number of masters connected to this slave (number of Arbiter inputs).
    77 SwitchFabricParam_Slave[]->Base_Address, SwitchFabricParam_Slave[]->Address_Span is the addressing space of this slave (decoded in ADL)
     77For each slave  the routing table !SwitchFabricParam_Slave![0]->route[] describes the connection between this slave and the masters. 
     78 * !SwitchFabricParam_Slave[]->arbiter_n_master is the number of masters connected to this slave (number of ARBITER inputs).
     79 * !SwitchFabricParam_Slave[]->Base_Address,
     80 * !SwitchFabricParam_Slave[]->Address_Span is the addressing space of this slave (decoded in the ADL module)
    7881
    7982