wiki:Component/VciInitiatorTransactor

SocLib Components General Index

VciInitiatorTransactor

1) Functional Description

All 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. As for any TLM-DT initiator, the behavior() sc_thread associated to the Vci Initiator Transactor 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. Regarding 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.

Regarding 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. If 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.

2) Implementation

template parameters

This component have two template parameters, defining respectively the width of the CABA and TLM-DT VCI parameters.

template<typename vci_param_caba, typename vci_param_tlmdt>

sources

Constructor parameters

VciInitiatorTransactor(
     sc_module_name name,  // Instance name
     size_t n_irq);        // optional : number of interruption ports (default = 0)

Ports

  • sc_out<bool> p_resetn : hardware reset
  • sc_out<bool> p_clk : clock
  • sc_out<bool> *p_irq_initiator : IRQ initiator ports (from transactor to CABA initiator)
  • VciTarget<vci_param_caba> p_vci_target : VCI target port (from CABA initiator to transactor)
  • p_vci_initiator : VCI initiator port (from transactor to TLM-DT platform)
  • *p_irq_target : IRQ target ports (from TLM-DT platform to transactor)
Last modified 14 years ago Last modified on Feb 24, 2010, 11:00:36 PM

Attachments (1)

Download all attachments as: .zip