Changes between Version 2 and Version 3 of Component/Vci Mwmr Controller


Ignore:
Timestamp:
Feb 9, 2008, 7:51:28 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Mwmr Controller

    v2 v3  
    11[wiki:Component SocLib Components General Index]
    22
    3 = !VciMwmrController Functional Description =
     3= !VciMwmrController =
    44
    5 This VCI component is both a target and an initiator.
    6  * Addressing as a target allows to configure it for a transfer.
    7  * Initiator will do the transfer
     5== 1) Functional Description ==
    86
    9 This component may handle interfaces to a Fifo-accessed coprocessor. There
    10 may be any number of fifos from/to the coprocessor.
     7This VCI component is the hardware part of the MWMR communication middleware.
     8It allows an hardware coprocessor to communicate to one or several MWMR channels.
     9The coprocessor communicates with the MWWR controller through several FIFO interfaces
     10(one FIFO interface per MWMR channel).
     11An internal FSM implements the five steps MWMR communication protocol (5 VCI
     12transactions for one MWMR transaction).
     13It contains as many hardware FiFOs as the number of supported MWMR channels.
     14An MWMMR transaction starts when a Write FIFO is FULL, or when a
     15Read FIFO is empty. The priority policy between the supported channels is Round Robin.
    1116
    12 In conjunction with the fifos, there are multiple unidirectionnal 32-bits signals
    13 going from/to the coprocessor.
     17This component is both a target and an initiator.
     18 * It is addressed as a target to be configured.
     19 * It is acting as an initiator to do the MWMR transfers
     20
     21Besides the communication channels, this MWMR controller provides a variable number
     22of unidirectionnal 32-bits signals going from/to the coprocessor.
    1423 * from the coprocessor, they are ''status'' registers
    15  * to the coprocessor, they are ''config'' registers
     24 * to the coprocessor, they are ''configuration'' registers
    1625
    1726This hardware component cheks for segmentation violation, and can be used
    1827as a default target.
    1928
    20 = Memory region layout =
    21 
     29As a target this component contains the following memory mapped registers:
    2230 * Registers 0 to `MWMR_IOREG_MAX`
    2331When read from, they reflects status registers, when written to, they reflects the control registers.
     
    5058A boolean enabling the selected fifo.
    5159
    52 = Component usage =
    53 
    5460For extensibility issues, you should access the !MwmrController using globally-defined offsets.
    55 
    5661You should include `soclib/MwmrController.h` from your software, it
    5762defines all useful offsets and constants.
     
    6368(add -I/path/to/soclib/include to your compilation command-line)
    6469
    65 = Component definition =
     70== 2) Component definition & usage ==
    6671
    67 Available in source:trunk/soclib/module/internal_component/vci_mwmr_controller/caba/metadata/vci_mwmr_controller.sd
    68 == Usage ==
    69 
    70 !VciMwmrController has two template parameters: VCI ones, and internal fifo maximum depth. It may be used like others, see [wiki:SoclibCc/VciParameters SoclibCc/VciParameters]
     72source:trunk/soclib/soclib/module/internal_component/vci_mwmr_controller/caba/metadata/vci_mwmr_controller.sd
     73See [wiki:SoclibCc/VciParameters SoclibCc/VciParameters]
    7174{{{
    72 Uses( 'vci_MwmrController', fifo_depth = 32, **vci_parameters )
     75Uses( 'vci_MwmrController', **vci_parameters )
    7376}}}
    7477
    75 = !VciMwmrController CABA  Implementation =
     78== 3) CABA  Implementation ==
    7679
    77 The caba implementation is in
    78  * source:trunk/soclib/module/internal_component/vci_mwmr_controller/caba/source/include/vci_mwmr_controller.h
    79  * source:trunk/soclib/module/internal_component/vci_mwmr_controller/caba/source/src/vci_mwmr_controller.cpp
     80=== CABA sources ===
    8081
    81 == Template parameters: ==
     82 * interface : source:trunk/soclib/soclib/module/internal_component/vci_mwmr_controller/caba/source/include/vci_mwmr_controller.h
     83 * implementation : source:trunk/soclib/soclib/module/internal_component/vci_mwmr_controller/caba/source/src/vci_mwmr_controller.cpp
    8284
    83  * The VCI parameters
    84  * The fifo depth
    85 
    86 == Constructor parameters ==
     85=== CABA Constructor ===
    8786{{{
    8887VciMwmrController(
    89         sc_module_name name,
    90         const IntTab &index,
    91         const MappingTable &mt,
    92         const size_t plaps,        # Default timeout between two access retries to a given MWMR
    93         const size_t n_to_coproc,  # \ Cardinal of fifos
    94         const size_t n_from_coproc,# /   interfacing the coprocessor
    95         const size_t n_config,     # \ Cardinal of registers
    96         const size_t n_status );   # /   (sideband signals)
     88        sc_module_name name,  // instance name
     89        const IntTab &index,  // VCI target index
     90        const MappingTable &mt,  // mapping table
     91        const size_t plaps,    // Default timeout between two access retries to a given channel
     92        const size_t n_to_coproc,  // number of read MWMR channels
     93        const size_t n_from_coproc, // number of write MWMR channels
     94        const size_t n_config,     // number of configuration registers
     95        const size_t n_status,   // number of status registers
     96        const size_t fifo_depth);   // hardware FIFOs depth
    9797}}}
    9898
    99 == Ports ==
     99=== CABA Ports ===
    100100
    101101 * sc_in<bool> '''p_resetn''' : Global system reset
     
    108108 * sc_in<uint32_t> '''p_status[]''' : Status ports
    109109
     110== 4) TLM-T Implementation ==
     111
     112The TLM-T implementation is not available yet.