scc  2022.4.0
SystemC components library
ahb::pe::ahb_initiator_b Class Reference
Inheritance diagram for ahb::pe::ahb_initiator_b:
Collaboration diagram for ahb::pe::ahb_initiator_b:

Classes

struct  tx_state
 

Public Types

using payload_type = tlm::tlm_generic_payload
 
using phase_type = tlm::tlm_phase
 

Public Member Functions

 SC_HAS_PROCESS (ahb_initiator_b)
 
tlm::tlm_sync_enum nb_transport_bw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) override
 
void invalidate_direct_mem_ptr (sc_dt::uint64 start_range, sc_dt::uint64 end_range) override
 
size_t get_transferwith_in_bytes () const
 
void transport (payload_type &trans, bool blocking)
 The forward transport function. It behaves blocking and is re-entrant. More...
 
 ahb_initiator_b (sc_core::sc_module_name nm, sc_core::sc_port_b< tlm::tlm_fw_transport_if< tlm::tlm_base_protocol_types >> &port, size_t transfer_width, bool coherent)
 
 ahb_initiator_b (ahb_initiator_b const &)=delete
 
 ahb_initiator_b (ahb_initiator_b &&)=delete
 
ahb_initiator_boperator= (ahb_initiator_b const &)=delete
 
ahb_initiator_boperator= (ahb_initiator_b &&)=delete
 
void snoop_resp (payload_type &trans, bool sync=false)
 

Public Attributes

sc_core::sc_in< bool > clk_i {"clk_i"}
 
sc_core::sc_attribute< unsigned > artv {"artv", 0}
 Read address valid to next read address valid.
 
sc_core::sc_attribute< unsigned > awtv {"awtv", 0}
 Write address valid to next write address valid.
 
sc_core::sc_attribute< unsigned > wbv {"wbv", 0}
 Write data handshake to next beat valid.
 
sc_core::sc_attribute< unsigned > rbr {"rbr", 0}
 Read data valid to same beat ready.
 
sc_core::sc_attribute< unsigned > br {"br", 0}
 Write response valid to ready.
 

Protected Member Functions

unsigned calculate_beats (payload_type &p)
 

Protected Attributes

const size_t transfer_width_in_bytes
 
const bool coherent
 
sc_core::sc_port_b< tlm::tlm_fw_transport_if< tlm::tlm_base_protocol_types > > & socket_fw
 
std::unordered_map< payload_type *, tx_state * > tx_state_by_id
 
scc::ordered_semaphore_t< 1 > addr_chnl
 
scc::ordered_semaphore_t< 1 > data_chnl
 
sc_core::sc_event any_tx_finished
 
sc_core::sc_time clk_period {10, sc_core::SC_NS}
 

Detailed Description

Definition at line 33 of file ahb_initiator.h.

Member Function Documentation

◆ transport()

void ahb_initiator_b::transport ( payload_type &  trans,
bool  blocking 
)

The forward transport function. It behaves blocking and is re-entrant.

This function initiates the forward transport either using b_transport() if blocking=true or the nb_transport_* interface.

Parameters
transthe transaction to send
blockingexecute in using the blocking interface

Timing

Definition at line 73 of file ahb_initiator.cpp.


The documentation for this class was generated from the following files: