|
scc 2025.09
SystemC components library
|
The TLM2 transaction recorder. More...
#include <tlc_recorder.h>


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 Member Functions inherited from tilelink::bw_blocking_transport_if< tilelink::tl_protocol_types::tlm_payload_type > | |
| virtual void | b_snoop (tilelink::tl_protocol_types::tlm_payload_type &trans, sc_core::sc_time &t)=0 |
| snoop access to a snooped master | |
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 () |
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.
| 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.
| using tilelink::scv::tlc_recorder< TYPES >::mm = tlm::scc::tlm_mm<recording_types> |
Definition at line 88 of file tlc_recorder.h.
| using tilelink::scv::tlc_recorder< TYPES >::recording_types = impl::tlc_recording_types<TYPES> |
Definition at line 87 of file tlc_recorder.h.
| 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.
| using tilelink::scv::tlc_recorder< TYPES >::tlm_recording_payload = impl::tlc_recording_payload<TYPES> |
Definition at line 89 of file tlc_recorder.h.
|
inline |
The constructor of the component.
| name | is the SystemC module name of the recorder |
| tr_db | is 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.
|
inlineoverridevirtual |
Definition at line 140 of file tlc_recorder.h.
|
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
| trans | is the generic payload of the transaction |
| delay | is the annotated delay |
Definition at line 459 of file tlc_recorder.h.
|
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
| trans | is the generic payload of the transaction |
| delay | is the annotated delay |
Definition at line 396 of file tlc_recorder.h.
|
pure virtual |
the port where bw accesses are forwarded to
Implemented in tilelink::scv::tlc_recorder_module< BUSWIDTH, TYPES >.
|
override |
The direct memory interface forward function.
This type of transaction is just forwarded and not recorded.
| trans | is the generic payload of the transaction |
| dmi_data | is the structure holding the dmi information |
Definition at line 778 of file tlc_recorder.h.
|
pure virtual |
the port where fw accesses are forwarded to
Implemented in tilelink::scv::tlc_recorder_module< BUSWIDTH, TYPES >.
|
inlineprotected |
Definition at line 288 of file tlc_recorder.h.
|
override |
The direct memory interface backward function.
This type of transaction is just forwarded and not recorded.
| start_addr | is the start address of the memory area being invalid |
| end_addr | is the end address of the memory area being invalid |
Definition at line 796 of file tlc_recorder.h.
|
inline |
get the current state of transaction recording
Definition at line 232 of file tlc_recorder.h.
|
inline |
get the current state of transaction recording
Definition at line 238 of file tlc_recorder.h.
|
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.
| trans | is the generic payload of the transaction |
| phase | is the current phase of the transaction |
| delay | is the annotated delay |
Definition at line 633 of file tlc_recorder.h.
|
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.
| trans | is the generic payload of the transaction |
| phase | is the current phase of the transaction |
| delay | is the annotated delay |
Definition at line 545 of file tlc_recorder.h.
|
override |
The debug transportfunction.
This type of transaction is just forwarded and not recorded.
| trans | is the generic payload of the transaction |
Definition at line 813 of file tlc_recorder.h.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.