Changes between Initial Version and Version 1 of Component/Vci Initiator Transactor


Ignore:
Timestamp:
Feb 24, 2010, 10:56:50 PM (14 years ago)
Author:
alinevieiramello@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Initiator Transactor

    v1 v1  
     1[wiki:Component SocLib Components General Index]
     2
     3= !VciInitiatorTransactor =
     4
     5== 1) Functional Description ==
     6
     7All VCI commands received on the CABA interface are registered in a buffer indexed by the TRDID field. Each entry in this Pending_Transaction_Buffer contains a transaction status, a transaction time, and enough space to store a complete VCI TLM-DT transaction payload.
     8As for any TLM-DT initiator, the behavior() sc_thread associated to the VciInitiatorTransactor is permanently running. It is descheduled twice per simulated cycle to drive the CK signal on the CABA interface. It implement the same look-ahead mechanism as any TLM-DT initiator to send NULL messages with a bounded period when there is no regular (Read or Write) VCI transactions.
     9Regarding the VCI command, the behavior() thread read the command signals (cycle per cycle), on the CABA ports,  and stores a complete transaction payload in the Pending_Transaction_Buffer. When the transaction is completed, the behavior() thread calls the nb_transport_fw() method on the TLM-DT port.
     10
     11[[Image(initiator_vci_transactor.png, nolink)]]
     12
     13Regarding the VCI response, the interface nb_transport_bw() method updates the status of the proper entry in the Pending_Transaction_Buffer when a response is received on the TLM-DT port. This response is then transmitted (cycle per cycle) by the behaviour() thread on the CABA ports.
     14If the VCI initiator can receive interrupts, the transactor provides an optional service of translation : When an IRQ is received on the TLM-DT IRQ port (by the interface nb_transport_fw() method)  this information is registered, and the IRQ is transmited on the IRQ CABA port by the behaviour() thread.
     15
     16== 2) Implementation ==
     17
     18=== template parameters ===
     19
     20This component have two template parameters, defining respectively the width of the CABA and TLM-DT VCI parameters.
     21{{{
     22template<typename vci_param-caba, typename vci_param_tlmdt>
     23}}}
     24 
     25=== sources ===
     26
     27 * interface : source:trunk/soclib/soclib/module/network_component/vci_initiator_transactor/tlmdt/source/include/vci_initiator_transactor.h
     28 * implementation : source:trunk/soclib/soclib/module/network_component/vci_initiator_transactor/tlmdt/source/src/vci_initiator_transactor.cpp
     29
     30=== Constructor parameters ===
     31
     32{{{
     33VciInitiatorTransactor(
     34     sc_module_name name,  // Instance name
     35     size_t n_irq);        // optional : number of interruption ports (default = 0)
     36}}}
     37
     38
     39=== CABA Ports ===
     40
     41 * sc_out<bool> '''p_resetn''' : hardware reset
     42 * sc_out<bool> '''p_clk''' :  clock
     43 * sc_out<bool> '''*p_irq_initiator''' : IRQ initiator ports (from transactor to CABA initiator)
     44 * VciTarget<vci_param_caba> '''p_vci_target''' : VCI target port (from CABA initiator to transactor)
     45
     46=== TLM-DT Ports ===
     47
     48 * '''p_vci_initiator''' : VCI initiator port (from transactor to TLM-DT platform)
     49 * '''*p_irq_target ''' : IRQ target ports (from TLM-DT platform to transactor)