scc 2025.09
SystemC components library
tlm::scc::lwtr::tlm2_lwtr< TYPES > Class Template Reference

The TLM2 transaction recorder. More...

#include <tlm2_lwtr.h>

Inheritance diagram for tlm::scc::lwtr::tlm2_lwtr< TYPES >:
Collaboration diagram for tlm::scc::lwtr::tlm2_lwtr< TYPES >:

Public Member Functions

 tlm2_lwtr (bool recording_enabled=true, tx_db *tr_db=tx_db::get_default_db())
 tlm2_lwtr (const char *full_name, bool recording_enabled=true, tx_db *tr_db=tx_db::get_default_db())
tlm::tlm_sync_enum nb_transport_fw (typename TYPES::tlm_payload_type &trans, typename TYPES::tlm_phase_type &phase, sc_core::sc_time &delay) override
 The non-blocking forward transport function.
tlm::tlm_sync_enum nb_transport_bw (typename TYPES::tlm_payload_type &trans, typename TYPES::tlm_phase_type &phase, sc_core::sc_time &delay) override
 The non-blocking backward transport function.
void b_transport (typename TYPES::tlm_payload_type &trans, sc_core::sc_time &delay) override
 The blocking transport function.
bool get_direct_mem_ptr (typename TYPES::tlm_payload_type &trans, tlm::tlm_dmi &dmi_data) override
 The direct memory interface forward function.
void invalidate_direct_mem_ptr (sc_dt::uint64 start_addr, sc_dt::uint64 end_addr) override
 The direct memory interface backward function.
unsigned int transport_dbg (typename TYPES::tlm_payload_type &trans) override
 The debug transportfunction.
bool isRecordingBlockingTxEnabled () const
 get the current state of transaction recording
bool isRecordingNonBlockingTxEnabled () const
 get the current state of transaction recording

Public Attributes

cci::cci_param< bool > enableBlTracing
 the attribute to selectively enable/disable recording of blocking protocol tx
cci::cci_param< bool > enableNbTracing
 the attribute to selectively enable/disable recording of non-blocking protocol tx
cci::cci_param< bool > enableTimedTracing {"enableTimedTracing", true}
 the attribute to selectively enable/disable timed recording
cci::cci_param< bool > enableDmiTracing {"enableDmiTracing", false}
 the attribute to selectively enable/disable DMI recording

Protected Member Functions

void initialize_streams ()

Protected Attributes

sc_core::sc_port< tlm::tlm_fw_transport_if< TYPES > > fw_port {"fw_port"}
 the port where fw accesses are forwarded to
sc_core::sc_port< tlm::tlm_bw_transport_if< TYPES > > bw_port {"bw_port"}
 the port where bw accesses are forwarded to

Detailed Description

template<typename TYPES = tlm::tlm_base_protocol_types>
class tlm::scc::lwtr::tlm2_lwtr< TYPES >

The TLM2 transaction recorder.

This module records all TLM transaction to a LWTR transaction stream for further viewing and analysis. The handle of the created transaction is stored in an tlm_extension so that another instance of the tlm2_lwtr e.g. further down the path can link to it.

Definition at line 118 of file tlm2_lwtr.h.

Constructor & Destructor Documentation

◆ tlm2_lwtr() [1/2]

template<typename TYPES = tlm::tlm_base_protocol_types>
tlm::scc::lwtr::tlm2_lwtr< TYPES >::tlm2_lwtr ( bool recording_enabled = true,
tx_db * tr_db = tx_db::get_default_db() )
inline

Definition at line 142 of file tlm2_lwtr.h.

◆ tlm2_lwtr() [2/2]

template<typename TYPES = tlm::tlm_base_protocol_types>
tlm::scc::lwtr::tlm2_lwtr< TYPES >::tlm2_lwtr ( const char * full_name,
bool recording_enabled = true,
tx_db * tr_db = tx_db::get_default_db() )
inline

Definition at line 155 of file tlm2_lwtr.h.

◆ ~tlm2_lwtr()

template<typename TYPES = tlm::tlm_base_protocol_types>
virtual tlm::scc::lwtr::tlm2_lwtr< TYPES >::~tlm2_lwtr ( )
inlineoverridevirtual

Definition at line 169 of file tlm2_lwtr.h.

Member Function Documentation

◆ b_transport()

template<typename TYPES>
void tlm::scc::lwtr::tlm2_lwtr< TYPES >::b_transport ( typename TYPES::tlm_payload_type & trans,
sc_core::sc_time & delay )
override

The blocking transport function.

This type of transaction is forwarded and recorded to a transaction stream named "b_tx" with current timestamps. Additionally a "b_tx_timed" is been created recording the transactions at their annotated delay

Parameters
transis the generic payload of the transaction
delayis the annotated delay

Definition at line 375 of file tlm2_lwtr.h.

◆ get_direct_mem_ptr()

template<typename TYPES>
bool tlm::scc::lwtr::tlm2_lwtr< TYPES >::get_direct_mem_ptr ( typename TYPES::tlm_payload_type & trans,
tlm::tlm_dmi & dmi_data )
override

The direct memory interface forward function.

This type of transaction is just forwarded and not recorded.

Parameters
transis the generic payload of the transaction
dmi_datais the structure holding the dmi information
Returns
if the dmi structure is valid

Definition at line 639 of file tlm2_lwtr.h.

◆ initialize_streams()

template<typename TYPES = tlm::tlm_base_protocol_types>
void tlm::scc::lwtr::tlm2_lwtr< TYPES >::initialize_streams ( )
inlineprotected

Definition at line 308 of file tlm2_lwtr.h.

◆ invalidate_direct_mem_ptr()

template<typename TYPES>
void tlm::scc::lwtr::tlm2_lwtr< TYPES >::invalidate_direct_mem_ptr ( sc_dt::uint64 start_addr,
sc_dt::uint64 end_addr )
override

The direct memory interface backward function.

This type of transaction is just forwarded and not recorded.

Parameters
start_addris the start address of the memory area being invalid
end_addris the end address of the memory area being invalid

Definition at line 655 of file tlm2_lwtr.h.

◆ isRecordingBlockingTxEnabled()

template<typename TYPES = tlm::tlm_base_protocol_types>
bool tlm::scc::lwtr::tlm2_lwtr< TYPES >::isRecordingBlockingTxEnabled ( ) const
inline

get the current state of transaction recording

Returns
if true transaction recording is enabled otherwise transaction recording is bypassed

Definition at line 251 of file tlm2_lwtr.h.

◆ isRecordingNonBlockingTxEnabled()

template<typename TYPES = tlm::tlm_base_protocol_types>
bool tlm::scc::lwtr::tlm2_lwtr< TYPES >::isRecordingNonBlockingTxEnabled ( ) const
inline

get the current state of transaction recording

Returns
if true transaction recording is enabled otherwise transaction recording is bypassed

Definition at line 257 of file tlm2_lwtr.h.

◆ nb_transport_bw()

template<typename TYPES>
tlm::tlm_sync_enum tlm::scc::lwtr::tlm2_lwtr< TYPES >::nb_transport_bw ( typename TYPES::tlm_payload_type & trans,
typename TYPES::tlm_phase_type & phase,
sc_core::sc_time & delay )
override

The non-blocking backward transport function.

This type of transaction is forwarded and recorded to a transaction stream named "nb_bw" with current timestamps.

Parameters
transis the generic payload of the transaction
phaseis the current phase of the transaction
delayis the annotated delay
Returns
the sync state of the transaction

Definition at line 517 of file tlm2_lwtr.h.

◆ nb_transport_fw()

template<typename TYPES>
tlm::tlm_sync_enum tlm::scc::lwtr::tlm2_lwtr< TYPES >::nb_transport_fw ( typename TYPES::tlm_payload_type & trans,
typename TYPES::tlm_phase_type & phase,
sc_core::sc_time & delay )
override

The non-blocking forward transport function.

This type of transaction is forwarded and recorded to a transaction stream named "nb_fw" with current timestamps.

Parameters
transis the generic payload of the transaction
phaseis the current phase of the transaction
delayis the annotated delay
Returns
the sync state of the transaction

Definition at line 439 of file tlm2_lwtr.h.

◆ transport_dbg()

template<typename TYPES>
unsigned int tlm::scc::lwtr::tlm2_lwtr< TYPES >::transport_dbg ( typename TYPES::tlm_payload_type & trans)
override

The debug transportfunction.

This type of transaction is just forwarded and not recorded.

Parameters
transis the generic payload of the transaction
Returns
the sync state of the transaction

Definition at line 671 of file tlm2_lwtr.h.

Member Data Documentation

◆ bw_port

template<typename TYPES = tlm::tlm_base_protocol_types>
sc_core::sc_port<tlm::tlm_bw_transport_if<TYPES> > tlm::scc::lwtr::tlm2_lwtr< TYPES >::bw_port {"bw_port"}
protected

the port where bw accesses are forwarded to

Definition at line 264 of file tlm2_lwtr.h.

◆ enableBlTracing

template<typename TYPES = tlm::tlm_base_protocol_types>
cci::cci_param<bool> tlm::scc::lwtr::tlm2_lwtr< TYPES >::enableBlTracing

the attribute to selectively enable/disable recording of blocking protocol tx

Definition at line 121 of file tlm2_lwtr.h.

◆ enableDmiTracing

template<typename TYPES = tlm::tlm_base_protocol_types>
cci::cci_param<bool> tlm::scc::lwtr::tlm2_lwtr< TYPES >::enableDmiTracing {"enableDmiTracing", false}

the attribute to selectively enable/disable DMI recording

Definition at line 130 of file tlm2_lwtr.h.

◆ enableNbTracing

template<typename TYPES = tlm::tlm_base_protocol_types>
cci::cci_param<bool> tlm::scc::lwtr::tlm2_lwtr< TYPES >::enableNbTracing

the attribute to selectively enable/disable recording of non-blocking protocol tx

Definition at line 124 of file tlm2_lwtr.h.

◆ enableTimedTracing

template<typename TYPES = tlm::tlm_base_protocol_types>
cci::cci_param<bool> tlm::scc::lwtr::tlm2_lwtr< TYPES >::enableTimedTracing {"enableTimedTracing", true}

the attribute to selectively enable/disable timed recording

Definition at line 127 of file tlm2_lwtr.h.

◆ fw_port

template<typename TYPES = tlm::tlm_base_protocol_types>
sc_core::sc_port<tlm::tlm_fw_transport_if<TYPES> > tlm::scc::lwtr::tlm2_lwtr< TYPES >::fw_port {"fw_port"}
protected

the port where fw accesses are forwarded to

Definition at line 261 of file tlm2_lwtr.h.


The documentation for this class was generated from the following file:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/sysc/tlm/scc/lwtr/tlm2_lwtr.h