Changes between Initial Version and Version 1 of Component/Vci Vgmn


Ignore:
Timestamp:
May 5, 2007, 10:07:54 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Vgmn

    v1 v1  
     1[wiki:Component SocLib Components General Index]
     2
     3= !VciVgmn Functional Description =
     4
     5This hardware component is a generic micro-network respecting the
     6VCI advanced protocol. It behaves as two fully independent packet switched
     7network for VCU commands and VCI responses, and supports several
     8simultaneous transaction.
     9When several initiators try to reach the same target, the arbitration
     10policy is round-robin.
     11It gives the system designer a generic "communication black-box" with
     12a parametrized number of VCI initiator ports (NB_INITIATOR),
     13and a parameterized number of VCI target ports (NB_TARGET).
     14This component can be used to build a "flat" interconnect, where
     15all VCI initiators and targets are identified by a single index:
     16 * The VCI targets must be indexed from 0 to (NB_TARGET - 1).
     17 * The VCI initiators must be indexed from 0 to (NB_INITIATOR - 1).
     18
     19As any VCI advanced compliant interconnect, this component uses
     20the MSB bits of the VCI ADDRESS field to route the command packets
     21to the proper target, thanks to a routing table, implemented as a ROM.
     22This routing table is build by the constructor from the informations stored in
     23the [wiki:MappingTable mapping table].
     24It uses the VCI RSRCID field to route the response packet to the initiator.
     25
     26This component has two "structural" parameters, that can be used to fit
     27the behaviour of a specific physical micro-network:
     28 * The !MinLatency parameter is a number of cycles that defines the latency of an empty network.
     29 * The !FifoDepth parameter can be increased to improve the saturation threshold.
     30
     31= !VciVgmn CABA  Implementation =
     32
     33The caba implementation is in
     34 * source:trunk/soclib/systemc/include/caba/interconnect/vci_vgmn.h
     35 * source:trunk/soclib/systemc/src/caba/interconnect/vci_vgmn.cc
     36
     37== Template parameters ==
     38{{{
     39template<
     40     typename vci_param,   //  VCI parameters
     41     size_t NB_INITIAT,   // number of VCI initiators
     42     size_t NB_TARGET,   // number of VCI targets
     43     size_t MIN_LATENCY,   // minimal latency
     44     size_t FIFO_DEPTH>   // network storage capacity
     45}}}
     46
     47== Constructor parameters ==
     48{{{
     49VciVgmn(
     50     sc_module_name name,   //  Component Name
     51     const soclib::common::MappingTable &mt);   // MappingTable
     52}}}
     53
     54== Ports ==
     55
     56 * sc_in<bool> '''p_resetn''' : Global system reset
     57 * sc_in<bool> '''p_clk''' : Global system clock
     58 * soclib::caba::!VciTarget<vci_param> '''p_from_initiator''' : Ports from VCI initiators
     59 * soclib::caba::!VciInitiator<vci_param> '''p_to_target''' : Ports to VCI targets