scc 2025.09
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.
 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_b & operator= (ahb_initiator_b const &)=delete
ahb_initiator_b & operator= (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 Typedef Documentation

◆ payload_type

using ahb::pe::ahb_initiator_b::payload_type = tlm::tlm_generic_payload

Definition at line 38 of file ahb_initiator.h.

◆ phase_type

using ahb::pe::ahb_initiator_b::phase_type = tlm::tlm_phase

Definition at line 39 of file ahb_initiator.h.

Constructor & Destructor Documentation

◆ ahb_initiator_b()

ahb_initiator_b::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 )

Definition at line 31 of file ahb_initiator.cpp.

◆ ~ahb_initiator_b()

ahb_initiator_b::~ahb_initiator_b ( )
virtual

Definition at line 45 of file ahb_initiator.cpp.

Member Function Documentation

◆ calculate_beats()

unsigned ahb::pe::ahb_initiator_b::calculate_beats ( payload_type & p)
inlineprotected

Definition at line 88 of file ahb_initiator.h.

◆ get_transferwith_in_bytes()

size_t ahb::pe::ahb_initiator_b::get_transferwith_in_bytes ( ) const
inline

Definition at line 47 of file ahb_initiator.h.

◆ invalidate_direct_mem_ptr()

void ahb_initiator_b::invalidate_direct_mem_ptr ( sc_dt::uint64 start_range,
sc_dt::uint64 end_range )
override

Definition at line 58 of file ahb_initiator.cpp.

◆ nb_transport_bw()

tlm::tlm_sync_enum ahb_initiator_b::nb_transport_bw ( payload_type & trans,
phase_type & phase,
sc_core::sc_time & t )
override

Definition at line 50 of file ahb_initiator.cpp.

◆ snoop_resp()

void ahb::pe::ahb_initiator_b::snoop_resp ( payload_type & trans,
bool sync = false )
inline

Definition at line 74 of file ahb_initiator.h.

◆ 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 74 of file ahb_initiator.cpp.

Member Data Documentation

◆ addr_chnl

scc::ordered_semaphore_t<1> ahb::pe::ahb_initiator_b::addr_chnl
protected

Definition at line 106 of file ahb_initiator.h.

◆ any_tx_finished

sc_core::sc_event ahb::pe::ahb_initiator_b::any_tx_finished
protected

Definition at line 110 of file ahb_initiator.h.

◆ artv

sc_core::sc_attribute<unsigned> ahb::pe::ahb_initiator_b::artv {"artv", 0}

Read address valid to next read address valid.

Definition at line 77 of file ahb_initiator.h.

◆ awtv

sc_core::sc_attribute<unsigned> ahb::pe::ahb_initiator_b::awtv {"awtv", 0}

Write address valid to next write address valid.

Definition at line 79 of file ahb_initiator.h.

◆ br

sc_core::sc_attribute<unsigned> ahb::pe::ahb_initiator_b::br {"br", 0}

Write response valid to ready.

Definition at line 85 of file ahb_initiator.h.

◆ clk_i

sc_core::sc_in<bool> ahb::pe::ahb_initiator_b::clk_i {"clk_i"}

Definition at line 41 of file ahb_initiator.h.

◆ clk_period

sc_core::sc_time ahb::pe::ahb_initiator_b::clk_period {10, sc_core::SC_NS}
protected

Definition at line 112 of file ahb_initiator.h.

◆ coherent

const bool ahb::pe::ahb_initiator_b::coherent
protected

Definition at line 95 of file ahb_initiator.h.

◆ data_chnl

scc::ordered_semaphore_t<1> ahb::pe::ahb_initiator_b::data_chnl
protected

Definition at line 108 of file ahb_initiator.h.

◆ rbr

sc_core::sc_attribute<unsigned> ahb::pe::ahb_initiator_b::rbr {"rbr", 0}

Read data valid to same beat ready.

Definition at line 83 of file ahb_initiator.h.

◆ socket_fw

sc_core::sc_port_b<tlm::tlm_fw_transport_if<tlm::tlm_base_protocol_types> >& ahb::pe::ahb_initiator_b::socket_fw
protected

Definition at line 97 of file ahb_initiator.h.

◆ transfer_width_in_bytes

const size_t ahb::pe::ahb_initiator_b::transfer_width_in_bytes
protected

Definition at line 93 of file ahb_initiator.h.

◆ tx_state_by_id

std::unordered_map<payload_type*, tx_state*> ahb::pe::ahb_initiator_b::tx_state_by_id
protected

Definition at line 104 of file ahb_initiator.h.

◆ wbv

sc_core::sc_attribute<unsigned> ahb::pe::ahb_initiator_b::wbv {"wbv", 0}

Write data handshake to next beat valid.

Definition at line 81 of file ahb_initiator.h.


The documentation for this class was generated from the following files:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/interfaces/ahb/pe/ahb_initiator.h
  • /home/eyck/Projects/MINRES/SystemC-Components/src/interfaces/ahb/pe/ahb_initiator.cpp