scc 2025.09
SystemC components library
tilelink::scv::tlc_recorder< TYPES > Class Template Referenceabstract

The TLM2 transaction recorder. More...

#include <tlc_recorder.h>

Inheritance diagram for tilelink::scv::tlc_recorder< TYPES >:
Collaboration diagram for tilelink::scv::tlc_recorder< TYPES >:

Public Types

template<unsigned int BUSWIDTH = 32, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using initiator_socket_type = tilelink::tlc_initiator_socket<BUSWIDTH, TYPES, N, POL>
template<unsigned int BUSWIDTH = 32, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using target_socket_type = tilelink::tlc_target_socket<BUSWIDTH, TYPES, N, POL>
using recording_types = impl::tlc_recording_types<TYPES>
using mm = tlm::scc::tlm_mm<recording_types>
using tlm_recording_payload = impl::tlc_recording_payload<TYPES>

Public Member Functions

 SC_HAS_PROCESS (tlc_recorder< TYPES >)
virtual tilelink::tlc_fw_transport_if< TYPES > * get_fw_if ()=0
 the port where fw accesses are forwarded to
virtual tilelink::tlc_bw_transport_if< TYPES > * get_bw_if ()=0
 the port where bw accesses are forwarded to
 tlc_recorder (const char *name, unsigned bus_width, bool recording_enabled=true, SCVNS scv_tr_db *tr_db=SCVNS scv_tr_db::get_default_db())
 The constructor of the component.
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.
void b_snoop (typename TYPES::tlm_payload_type &trans, sc_core::sc_time &delay) override
 The blocking snoop 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

sc_core::sc_attribute< bool > enableBlTracing
 the attribute to selectively enable/disable recording of blocking protocol tx
sc_core::sc_attribute< bool > enableNbTracing
 the attribute to selectively enable/disable recording of non-blocking protocol tx
sc_core::sc_attribute< bool > enableTimedTracing {"enableTimedTracing", true}
 the attribute to selectively enable/disable timed recording
sc_core::sc_attribute< bool > enableDmiTracing {"enableDmiTracing", false}
 the attribute to selectively enable/disable DMI recording
sc_core::sc_attribute< bool > enableTrDbgTracing {"enableTrDbgTracing", false}
 the attribute to selectively enable/disable transport dbg recording
sc_core::sc_attribute< bool > enableProtocolChecker {"enableProtocolChecker", false}
 the attribute to enable/disable protocol checking
sc_core::sc_attribute< unsigned > rd_response_timeout {"rd_response_timeout", 0}
sc_core::sc_attribute< unsigned > wr_response_timeout {"wr_response_timeout", 0}

Protected Member Functions

void initialize_streams ()

Detailed Description

template<typename TYPES = tilelink::tl_protocol_types>
class tilelink::scv::tlc_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 tlc_recorder e.g. further down the path can link to it.

Definition at line 79 of file tlc_recorder.h.

Member Typedef Documentation

◆ initiator_socket_type

template<typename TYPES = tilelink::tl_protocol_types>
template<unsigned int BUSWIDTH = 32, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using tilelink::scv::tlc_recorder< TYPES >::initiator_socket_type = tilelink::tlc_initiator_socket<BUSWIDTH, TYPES, N, POL>

Definition at line 82 of file tlc_recorder.h.

◆ mm

template<typename TYPES = tilelink::tl_protocol_types>
using tilelink::scv::tlc_recorder< TYPES >::mm = tlm::scc::tlm_mm<recording_types>

Definition at line 88 of file tlc_recorder.h.

◆ recording_types

template<typename TYPES = tilelink::tl_protocol_types>
using tilelink::scv::tlc_recorder< TYPES >::recording_types = impl::tlc_recording_types<TYPES>

Definition at line 87 of file tlc_recorder.h.

◆ target_socket_type

template<typename TYPES = tilelink::tl_protocol_types>
template<unsigned int BUSWIDTH = 32, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using tilelink::scv::tlc_recorder< TYPES >::target_socket_type = tilelink::tlc_target_socket<BUSWIDTH, TYPES, N, POL>

Definition at line 85 of file tlc_recorder.h.

◆ tlm_recording_payload

template<typename TYPES = tilelink::tl_protocol_types>
using tilelink::scv::tlc_recorder< TYPES >::tlm_recording_payload = impl::tlc_recording_payload<TYPES>

Definition at line 89 of file tlc_recorder.h.

Constructor & Destructor Documentation

◆ tlc_recorder()

template<typename TYPES = tilelink::tl_protocol_types>
tilelink::scv::tlc_recorder< TYPES >::tlc_recorder ( const char * name,
unsigned bus_width,
bool recording_enabled = true,
SCVNS scv_tr_db * tr_db = SCVNS scv_tr_db::get_default_db() )
inline

The constructor of the component.

Parameters
nameis the SystemC module name of the recorder
tr_dbis a pointer to a transaction recording database. If none is provided the default one is retrieved. If this database is not initialized (e.g. by not calling scv_tr_db::set_default_db() ) recording is disabled.

Definition at line 129 of file tlc_recorder.h.

◆ ~tlc_recorder()

template<typename TYPES = tilelink::tl_protocol_types>
virtual tilelink::scv::tlc_recorder< TYPES >::~tlc_recorder ( )
inlineoverridevirtual

Definition at line 140 of file tlc_recorder.h.

Member Function Documentation

◆ b_snoop()

template<typename TYPES>
void tilelink::scv::tlc_recorder< TYPES >::b_snoop ( typename TYPES::tlm_payload_type & trans,
sc_core::sc_time & delay )
override

The blocking snoop 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 459 of file tlc_recorder.h.

◆ b_transport()

template<typename TYPES>
void tilelink::scv::tlc_recorder< 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 396 of file tlc_recorder.h.

◆ get_bw_if()

template<typename TYPES = tilelink::tl_protocol_types>
virtual tilelink::tlc_bw_transport_if< TYPES > * tilelink::scv::tlc_recorder< TYPES >::get_bw_if ( )
pure virtual

the port where bw accesses are forwarded to

Implemented in tilelink::scv::tlc_recorder_module< BUSWIDTH, TYPES >.

◆ get_direct_mem_ptr()

template<typename TYPES>
bool tilelink::scv::tlc_recorder< 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 778 of file tlc_recorder.h.

◆ get_fw_if()

template<typename TYPES = tilelink::tl_protocol_types>
virtual tilelink::tlc_fw_transport_if< TYPES > * tilelink::scv::tlc_recorder< TYPES >::get_fw_if ( )
pure virtual

the port where fw accesses are forwarded to

Implemented in tilelink::scv::tlc_recorder_module< BUSWIDTH, TYPES >.

◆ initialize_streams()

template<typename TYPES = tilelink::tl_protocol_types>
void tilelink::scv::tlc_recorder< TYPES >::initialize_streams ( )
inlineprotected

Definition at line 288 of file tlc_recorder.h.

◆ invalidate_direct_mem_ptr()

template<typename TYPES>
void tilelink::scv::tlc_recorder< 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 796 of file tlc_recorder.h.

◆ isRecordingBlockingTxEnabled()

template<typename TYPES = tilelink::tl_protocol_types>
bool tilelink::scv::tlc_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 232 of file tlc_recorder.h.

◆ isRecordingNonBlockingTxEnabled()

template<typename TYPES = tilelink::tl_protocol_types>
bool tilelink::scv::tlc_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 238 of file tlc_recorder.h.

◆ nb_transport_bw()

template<typename TYPES>
tlm::tlm_sync_enum tilelink::scv::tlc_recorder< 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 633 of file tlc_recorder.h.

◆ nb_transport_fw()

template<typename TYPES>
tlm::tlm_sync_enum tilelink::scv::tlc_recorder< 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 545 of file tlc_recorder.h.

◆ transport_dbg()

template<typename TYPES>
unsigned int tilelink::scv::tlc_recorder< 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 813 of file tlc_recorder.h.

Member Data Documentation

◆ enableBlTracing

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<bool> tilelink::scv::tlc_recorder< TYPES >::enableBlTracing

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

Definition at line 94 of file tlc_recorder.h.

◆ enableDmiTracing

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<bool> tilelink::scv::tlc_recorder< TYPES >::enableDmiTracing {"enableDmiTracing", false}

the attribute to selectively enable/disable DMI recording

Definition at line 103 of file tlc_recorder.h.

◆ enableNbTracing

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<bool> tilelink::scv::tlc_recorder< TYPES >::enableNbTracing

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

Definition at line 97 of file tlc_recorder.h.

◆ enableProtocolChecker

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<bool> tilelink::scv::tlc_recorder< TYPES >::enableProtocolChecker {"enableProtocolChecker", false}

the attribute to enable/disable protocol checking

Definition at line 109 of file tlc_recorder.h.

◆ enableTimedTracing

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<bool> tilelink::scv::tlc_recorder< TYPES >::enableTimedTracing {"enableTimedTracing", true}

the attribute to selectively enable/disable timed recording

Definition at line 100 of file tlc_recorder.h.

◆ enableTrDbgTracing

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<bool> tilelink::scv::tlc_recorder< TYPES >::enableTrDbgTracing {"enableTrDbgTracing", false}

the attribute to selectively enable/disable transport dbg recording

Definition at line 106 of file tlc_recorder.h.

◆ rd_response_timeout

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<unsigned> tilelink::scv::tlc_recorder< TYPES >::rd_response_timeout {"rd_response_timeout", 0}

Definition at line 111 of file tlc_recorder.h.

◆ wr_response_timeout

template<typename TYPES = tilelink::tl_protocol_types>
sc_core::sc_attribute<unsigned> tilelink::scv::tlc_recorder< TYPES >::wr_response_timeout {"wr_response_timeout", 0}

Definition at line 113 of file tlc_recorder.h.


The documentation for this class was generated from the following file:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/interfaces/tilelink/scv/tlc_recorder.h