scc  2022.4.0
SystemC components library
scc::configurable_tracer Class Reference

configurable tracer for automatic port and signal tracing More...

#include <configurable_tracer.h>

Inheritance diagram for scc::configurable_tracer:
Collaboration diagram for scc::configurable_tracer:

Public Member Functions

 configurable_tracer (std::string const &&name, bool enable_tx=true, bool enable_vcd=true, bool default_enable=false, sc_core::sc_object *top=nullptr)
 
 configurable_tracer (std::string const &name, bool enable_tx=true, bool enable_vcd=true, bool default_enable=false, sc_core::sc_object *top=nullptr)
 
 configurable_tracer (std::string const &&name, file_type type, bool enable_vcd=true, bool default_enable=false, sc_core::sc_object *top=nullptr)
 
 configurable_tracer (std::string const &name, file_type type, bool enable_vcd=true, bool default_enable=false, sc_core::sc_object *top=nullptr)
 
 configurable_tracer (std::string const &&name, file_type type, sc_core::sc_trace_file *tf=nullptr, bool default_enable=false, sc_core::sc_object *top=nullptr)
 
 configurable_tracer (std::string const &name, file_type type, sc_core::sc_trace_file *tf=nullptr, bool default_enable=false, sc_core::sc_object *top=nullptr)
 
 ~configurable_tracer ()
 
void add_control ()
 
- Public Member Functions inherited from scc::tracer
 tracer (std::string const &&name, file_type tx_type, file_type sig_type, sc_core::sc_object *top=nullptr)
 
 tracer (std::string const &name, file_type tx_type=ENABLE, file_type sig_type=ENABLE, sc_core::sc_object *top=nullptr)
 
 tracer (std::string const &&name, file_type type, bool enable=true, sc_core::sc_object *top=nullptr)
 
 tracer (std::string const &name, file_type type, bool enable=true, sc_core::sc_object *top=nullptr)
 
 tracer (std::string const &&name, file_type type, sc_core::sc_trace_file *tf, sc_core::sc_object *top=nullptr)
 
 tracer (std::string const &name, file_type type, sc_core::sc_trace_file *tf, sc_core::sc_object *top=nullptr)
 
virtual ~tracer () override
 the destructor
 
- Public Member Functions inherited from scc::tracer_base
 tracer_base (const sc_core::sc_module_name &nm)
 named constructor More...
 
 tracer_base (const sc_core::sc_module_name &nm, sc_core::sc_trace_file *tf, bool owned=true)
 named constructor with trace file More...
 
 ~tracer_base ()
 destructor
 
void set_trace_types (trace_types t)
 set the types to trace More...
 
const sc_core::sc_trace_file * get_trace_file () const
 get the tracefile used by this tracer More...
 
sc_core::sc_trace_file * get_trace_file ()
 
void set_trace_file (sc_core::sc_trace_file *trf)
 set the trace file of this tracer More...
 

Protected Member Functions

void descend (const sc_core::sc_object *, bool trace_all=false) override
 depth-first walk thru the design hierarchy and trace signals resp. call trace() function
 
bool get_trace_enabled (const sc_core::sc_object *, bool=false)
 check for existence of 'enableTracing' attribute and return value of default otherwise
 
void augment_object_hierarchical (sc_core::sc_object *)
 add the 'enableTracing' attribute to sc_module
 
void end_of_elaboration () override
 
- Protected Member Functions inherited from scc::tracer
 tracer (std::string const &&name, file_type tx_type, file_type sig_type, sc_core::sc_object *top, sc_core::sc_module_name const &nm)
 
 tracer (std::string const &&name, file_type type, sc_core::sc_trace_file *tf, sc_core::sc_object *top, sc_core::sc_module_name const &nm)
 
void end_of_elaboration () override
 
void end_of_simulation () override
 

Protected Attributes

std::vector< cci::cci_param_untyped * > params
 array of created cci parameter
 
bool control_added {false}
 
- Protected Attributes inherited from scc::tracer
scv_tr::scv_tr_db * txdb {nullptr}
 
lwtr::tx_db * lwtr_db {nullptr}
 
cci::cci_broker_handle cci_broker
 the cci broker
 
- Protected Attributes inherited from scc::tracer_base
bool default_trace_enable {true}
 the default for tracing if no attribute is configured
 
sc_core::sc_trace_file * trf {nullptr}
 
trace_types types_to_trace {trace_types::ALL}
 

Additional Inherited Members

- Public Types inherited from scc::tracer
enum  file_type {
  NONE , ENABLE , TEXT , COMPRESSED ,
  SQLITE , FTR , CFTR , LWFTR ,
  LWCFTR , CUSTOM , SC_VCD = TEXT , PULL_VCD = COMPRESSED ,
  PUSH_VCD = SQLITE , FST
}
 defines the transaction trace output type More...
 
- Public Attributes inherited from scc::tracer
cci::cci_param< unsigned > tx_trace_type
 
cci::cci_param< unsigned > sig_trace_type
 
cci::cci_param< bool > close_db_in_eos
 
- Static Protected Member Functions inherited from scc::tracer_base
static std::string get_name ()
 
static void try_trace (sc_core::sc_trace_file *trace_file, const sc_core::sc_object *object, trace_types t)
 

Detailed Description

configurable tracer for automatic port and signal tracing

This class traverses the SystemC object hierarchy and registers all signals and ports found with the tracing infrastructure. Using a sc_core::sc_attribute or a CCI param named "enableTracing" this can be switch on or off on a per module basis

Definition at line 35 of file configurable_tracer.h.

Constructor & Destructor Documentation

◆ configurable_tracer() [1/6]

configurable_tracer::configurable_tracer ( std::string const &&  name,
bool  enable_tx = true,
bool  enable_vcd = true,
bool  default_enable = false,
sc_core::sc_object *  top = nullptr 
)

constructs a tracer object

Parameters
namebasename of the trace file(s)
enable_txenables transaction teacing
enable_vcdenable VCD (signal based) tracing
default_enablevalue of parameter enableTracing if not defined by module or CCIs

Definition at line 26 of file configurable_tracer.cpp.

◆ configurable_tracer() [2/6]

scc::configurable_tracer::configurable_tracer ( std::string const &  name,
bool  enable_tx = true,
bool  enable_vcd = true,
bool  default_enable = false,
sc_core::sc_object *  top = nullptr 
)
inline

constructs a tracer object

Parameters
namebasename of the trace file(s)
enable_txenables transaction teacing
enable_vcdenable VCD (signal based) tracing
default_enablevalue of parameter enableTracing if not defined by module or CCIs

Definition at line 55 of file configurable_tracer.h.

◆ configurable_tracer() [3/6]

configurable_tracer::configurable_tracer ( std::string const &&  name,
file_type  type,
bool  enable_vcd = true,
bool  default_enable = false,
sc_core::sc_object *  top = nullptr 
)

constructs a tracer object

Parameters
namebasename of the trace file(s)
typetype of trace file for transactions
enableenable VCD (signal based) tracing
default_enablevalue of parameter enableTracing if not defined by module or CCIs

Definition at line 32 of file configurable_tracer.cpp.

◆ configurable_tracer() [4/6]

scc::configurable_tracer::configurable_tracer ( std::string const &  name,
file_type  type,
bool  enable_vcd = true,
bool  default_enable = false,
sc_core::sc_object *  top = nullptr 
)
inline

constructs a tracer object

Parameters
namebasename of the trace file(s)
typetype of trace file for transactions
enable_vcdenable VCD (signal based) tracing
default_enablevalue of parameter enableTracing if not defined by module or CCIs

Definition at line 76 of file configurable_tracer.h.

◆ configurable_tracer() [5/6]

configurable_tracer::configurable_tracer ( std::string const &&  name,
file_type  type,
sc_core::sc_trace_file *  tf = nullptr,
bool  default_enable = false,
sc_core::sc_object *  top = nullptr 
)

constructs a tracer object

Parameters
namebasename of the trace file(s)
typetype of trace file for transactions
tfthe trace file to use for signal and POD tracing
default_enablevalue of parameter enableTracing if not defined by module or CCIs

Definition at line 38 of file configurable_tracer.cpp.

◆ configurable_tracer() [6/6]

scc::configurable_tracer::configurable_tracer ( std::string const &  name,
file_type  type,
sc_core::sc_trace_file *  tf = nullptr,
bool  default_enable = false,
sc_core::sc_object *  top = nullptr 
)
inline

constructs a tracer object

Parameters
namebasename of the trace file(s)
typetype of trace file for transactions
tfthe trace file to use for signal and POD tracing
default_enablevalue of parameter enableTracing if not defined by module or CCIs

Definition at line 97 of file configurable_tracer.h.

◆ ~configurable_tracer()

scc::configurable_tracer::~configurable_tracer ( )

destructor

Definition at line 44 of file configurable_tracer.cpp.

Member Function Documentation

◆ add_control()

void scc::configurable_tracer::add_control ( )
inline

adds default trace control attribute of name 'enableTracing' to each sc_module in a design hierarchy

Definition at line 107 of file configurable_tracer.h.


The documentation for this class was generated from the following files: