scc 2025.09
SystemC components library
tlm::nw::scv::tlm_recorder< TYPES > Class Template Reference

The TLM2 transaction recorder. More...

#include <tlm_recorder.h>

Inheritance diagram for tlm::nw::scv::tlm_recorder< TYPES >:
Collaboration diagram for tlm::nw::scv::tlm_recorder< TYPES >:

Public Types

using recording_types = impl::tlm_recording_types<TYPES>
using mm = tlm::scc::tlm_mm<impl::tlm_recording_types<TYPES>>
using payload_type = typename TYPES::tlm_payload_type
using tlm_recording_payload = impl::tlm_recording_payload<TYPES>
Public Types inherited from tlm::nw::tlm_network_fw_transport_if< TYPES >
typedef TYPES protocol_types
Public Types inherited from tlm::nw::tlm_network_bw_transport_if< TYPES >
typedef TYPES protocol_types

Public Member Functions

 tlm_recorder (sc_core::sc_port_b< tlm::nw::tlm_network_fw_transport_if< TYPES > > &fw_port, sc_core::sc_port_b< tlm::nw::tlm_network_bw_transport_if< TYPES > > &bw_port, bool recording_enabled=true, SCVNS scv_tr_db *tr_db=SCVNS scv_tr_db::get_default_db())
 tlm_recorder (const char *name, sc_core::sc_port_b< tlm::nw::tlm_network_fw_transport_if< TYPES > > &fw_port, sc_core::sc_port_b< tlm::nw::tlm_network_bw_transport_if< TYPES > > &bw_port, bool recording_enabled=true, SCVNS scv_tr_db *tr_db=SCVNS scv_tr_db::get_default_db())
tlm::tlm_sync_enum nb_transport_fw (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 (payload_type &trans, typename TYPES::tlm_phase_type &phase, sc_core::sc_time &delay) override
 The non-blocking backward transport function.
void b_transport (payload_type &trans, sc_core::sc_time &delay) override
 The blocking transport function.
unsigned int transport_dbg (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
void initialize_streams ()

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
sc_core::sc_port_b< tlm::nw::tlm_network_fw_transport_if< TYPES > > & fw_port
 the port where fw accesses are forwarded to
sc_core::sc_port_b< tlm::nw::tlm_network_bw_transport_if< TYPES > > & bw_port
 the port where bw accesses are forwarded to

Detailed Description

template<typename TYPES>
class tlm::nw::scv::tlm_recorder< TYPES >

The TLM2 transaction recorder.

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

Definition at line 88 of file tlm_recorder.h.

Member Typedef Documentation

◆ mm

template<typename TYPES>
using tlm::nw::scv::tlm_recorder< TYPES >::mm = tlm::scc::tlm_mm<impl::tlm_recording_types<TYPES>>

Definition at line 98 of file tlm_recorder.h.

◆ payload_type

template<typename TYPES>
using tlm::nw::scv::tlm_recorder< TYPES >::payload_type = typename TYPES::tlm_payload_type

Definition at line 99 of file tlm_recorder.h.

◆ recording_types

template<typename TYPES>
using tlm::nw::scv::tlm_recorder< TYPES >::recording_types = impl::tlm_recording_types<TYPES>

Definition at line 97 of file tlm_recorder.h.

◆ tlm_recording_payload

template<typename TYPES>
using tlm::nw::scv::tlm_recorder< TYPES >::tlm_recording_payload = impl::tlm_recording_payload<TYPES>

Definition at line 100 of file tlm_recorder.h.

Constructor & Destructor Documentation

◆ tlm_recorder() [1/2]

template<typename TYPES>
tlm::nw::scv::tlm_recorder< TYPES >::tlm_recorder ( sc_core::sc_port_b< tlm::nw::tlm_network_fw_transport_if< TYPES > > & fw_port,
sc_core::sc_port_b< tlm::nw::tlm_network_bw_transport_if< TYPES > > & bw_port,
bool recording_enabled = true,
SCVNS scv_tr_db * tr_db = SCVNS scv_tr_db::get_default_db() )
inline

Definition at line 133 of file tlm_recorder.h.

◆ tlm_recorder() [2/2]

template<typename TYPES>
tlm::nw::scv::tlm_recorder< TYPES >::tlm_recorder ( const char * name,
sc_core::sc_port_b< tlm::nw::tlm_network_fw_transport_if< TYPES > > & fw_port,
sc_core::sc_port_b< tlm::nw::tlm_network_bw_transport_if< TYPES > > & bw_port,
bool recording_enabled = true,
SCVNS scv_tr_db * tr_db = SCVNS scv_tr_db::get_default_db() )
inline

Definition at line 151 of file tlm_recorder.h.

◆ ~tlm_recorder()

template<typename TYPES>
virtual tlm::nw::scv::tlm_recorder< TYPES >::~tlm_recorder ( )
inlineoverridevirtual

Definition at line 161 of file tlm_recorder.h.

Member Function Documentation

◆ b_transport()

template<typename TYPES>
void tlm::nw::scv::tlm_recorder< TYPES >::b_transport ( 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 300 of file tlm_recorder.h.

◆ initialize_streams()

template<typename TYPES>
void tlm::nw::scv::tlm_recorder< TYPES >::initialize_streams ( )
inline

Definition at line 255 of file tlm_recorder.h.

◆ isRecordingBlockingTxEnabled()

template<typename TYPES>
bool tlm::nw::scv::tlm_recorder< 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 221 of file tlm_recorder.h.

◆ isRecordingNonBlockingTxEnabled()

template<typename TYPES>
bool tlm::nw::scv::tlm_recorder< 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 227 of file tlm_recorder.h.

◆ nb_transport_bw()

template<typename TYPES>
tlm::tlm_sync_enum tlm::nw::scv::tlm_recorder< TYPES >::nb_transport_bw ( 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 454 of file tlm_recorder.h.

◆ nb_transport_fw()

template<typename TYPES>
tlm::tlm_sync_enum tlm::nw::scv::tlm_recorder< TYPES >::nb_transport_fw ( 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 362 of file tlm_recorder.h.

◆ transport_dbg()

template<typename TYPES>
unsigned int tlm::nw::scv::tlm_recorder< TYPES >::transport_dbg ( 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 545 of file tlm_recorder.h.

Member Data Documentation

◆ bw_port

template<typename TYPES>
sc_core::sc_port_b<tlm::nw::tlm_network_bw_transport_if<TYPES> >& tlm::nw::scv::tlm_recorder< TYPES >::bw_port

the port where bw accesses are forwarded to

Definition at line 118 of file tlm_recorder.h.

◆ enableBlTracing

template<typename TYPES>
cci::cci_param<bool> tlm::nw::scv::tlm_recorder< TYPES >::enableBlTracing

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

Definition at line 103 of file tlm_recorder.h.

◆ enableDmiTracing

template<typename TYPES>
cci::cci_param<bool> tlm::nw::scv::tlm_recorder< TYPES >::enableDmiTracing {"enableDmiTracing", false}

the attribute to selectively enable/disable DMI recording

Definition at line 112 of file tlm_recorder.h.

◆ enableNbTracing

template<typename TYPES>
cci::cci_param<bool> tlm::nw::scv::tlm_recorder< TYPES >::enableNbTracing

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

Definition at line 106 of file tlm_recorder.h.

◆ enableTimedTracing

template<typename TYPES>
cci::cci_param<bool> tlm::nw::scv::tlm_recorder< TYPES >::enableTimedTracing {"enableTimedTracing", true}

the attribute to selectively enable/disable timed recording

Definition at line 109 of file tlm_recorder.h.

◆ fw_port

template<typename TYPES>
sc_core::sc_port_b<tlm::nw::tlm_network_fw_transport_if<TYPES> >& tlm::nw::scv::tlm_recorder< TYPES >::fw_port

the port where fw accesses are forwarded to

Definition at line 115 of file tlm_recorder.h.


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