SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
simics::systemc::Adapter Class Reference

Entry point for creating a Simics conf-object that adapts a SystemC model to Simics, by using Simics attributes and Simics interfaces. More...

#include <adapter.h>

Inheritance diagram for simics::systemc::Adapter:
simics::systemc::GasketInfo simics::systemc::Version simics::systemc::ProcessProfilerControl simics::systemc::ScMemoryProfilerControl simics::systemc::SimContext simics::systemc::CheckpointStub simics::systemc::Simulation

Public Types

typedef Adapteris_systemc_adapter
 

Public Member Functions

 Adapter (ConfObjectRef o)
 
virtual ~Adapter ()
 
virtual void elaborate ()
 Override this method to elaborate the SystemC hierarchy.
 
virtual void tagGaskets (simics::systemc::GasketTagInterface *gasket_tag)
 Override this method to create tag based gaskets.
 
virtual void bindGaskets ()
 Override this method to bind Simics interfaces to SystemC after elaboration.
 
virtual void finalize ()
 Called during the finalize phase.
 
InternalInterfaceinternal ()
 
virtual void deinit ()
 
- Public Member Functions inherited from simics::systemc::Simulation
 Simulation (ConfObjectRef o, InternalInterface *internal)
 
virtual ~Simulation ()
 
virtual void run ()
 
virtual void stop ()
 
virtual void switch_in ()
 
virtual void switch_out ()
 
virtual uint64 set_delta (conf_object_t *NOTNULL event_handler_obj, const event_class_t *next_event_ec, uint64 delta)
 
virtual uint64 get_delta (conf_object_t *NOTNULL event_handler_obj)
 
virtual double get () const
 
virtual std::vector< conf_object_t * > serialized_memory_group (unsigned group_index)
 
virtual std::vector< conf_object_t * > execution_group (unsigned group_index)
 
virtual concurrency_mode_t supported_modes ()
 
virtual concurrency_mode_t current_mode ()
 
virtual void switch_mode (concurrency_mode_t mode)
 
virtual void message_pending ()
 
virtual void yield_request ()
 
int runDeltaPhase (int count)
 
bool runSimulation (sc_core::sc_time t)
 
void stopSimulation ()
 
sc_core::sc_simcontext * context () const
 
ConfObjectRef simics_object () const
 
void set_run_next_delta (const int &count)
 
- Public Member Functions inherited from simics::systemc::iface::SimulationInterface
virtual ~SimulationInterface ()
 
virtual int runDeltaPhase (int count)=0
 
virtual bool runSimulation (sc_core::sc_time t)=0
 
virtual void stopSimulation ()=0
 
virtual sc_core::sc_simcontext * context () const =0
 
virtual ConfObjectRef simics_object () const =0
 
- Public Member Functions inherited from simics::systemc::iface::EventDeltaInterface
virtual ~EventDeltaInterface ()
 
virtual uint64 set_delta (conf_object_t *NOTNULL event_handler_obj, const event_class_t *next_event_ec, uint64 delta)=0
 
virtual uint64 get_delta (conf_object_t *NOTNULL event_handler_obj)=0
 
- Public Member Functions inherited from simics::systemc::iface::ExecuteInterface
virtual ~ExecuteInterface ()
 
virtual void run ()=0
 
virtual void stop ()=0
 
virtual void switch_in ()=0
 
virtual void switch_out ()=0
 
- Public Member Functions inherited from simics::systemc::iface::FrequencyInterface
virtual double get () const =0
 
virtual ~FrequencyInterface ()
 
- Public Member Functions inherited from simics::systemc::iface::ConcurrencyGroupInterface
virtual std::vector< conf_object_t * > serialized_memory_group (unsigned group_index)=0
 
virtual std::vector< conf_object_t * > execution_group (unsigned group_index)=0
 
virtual ~ConcurrencyGroupInterface ()
 
- Public Member Functions inherited from simics::systemc::iface::ConcurrencyModeInterface
virtual concurrency_mode_t supported_modes ()=0
 
virtual concurrency_mode_t current_mode ()=0
 
virtual void switch_mode (concurrency_mode_t mode)=0
 
virtual ~ConcurrencyModeInterface ()
 
- Public Member Functions inherited from simics::systemc::iface::ExecuteControlInterface
virtual void message_pending ()=0
 
virtual void yield_request ()=0
 
virtual ~ExecuteControlInterface ()
 
- Public Member Functions inherited from simics::systemc::CheckpointStub
 CheckpointStub ()
 
virtual ~CheckpointStub ()
 
std::vector< std::string > systemcState () const
 
void setSystemcState (const std::vector< std::string > &checkpoints)
 
- Public Member Functions inherited from simics::systemc::SimContext
 SimContext (iface::SimulationInterface *simulation)
 
virtual uint64 time_stamp ()
 
virtual uint64 delta_count ()
 
virtual uint64 time_to_pending_activity ()
 
virtual int status ()
 
virtual attr_value_t events ()
 
- Public Member Functions inherited from simics::systemc::iface::SimContextInterface
virtual uint64 time_stamp ()=0
 
virtual uint64 delta_count ()=0
 
virtual uint64 time_to_pending_activity ()=0
 
virtual int status ()=0
 
virtual attr_value_t events ()=0
 
virtual ~SimContextInterface ()
 
- Public Member Functions inherited from simics::systemc::ScMemoryProfilerControl
 ScMemoryProfilerControl ()
 
virtual ~ScMemoryProfilerControl ()
 
bool is_enabled () const
 
void set_enabled (bool enabled)
 
- Public Member Functions inherited from simics::systemc::iface::ScMemoryProfilerControlInterface
virtual bool is_enabled () const =0
 
virtual void set_enabled (bool enabled)=0
 
virtual ~ScMemoryProfilerControlInterface ()
 
- Public Member Functions inherited from simics::systemc::ProcessProfilerControl
 ProcessProfilerControl (iface::SimulationInterface *simulation)
 
virtual bool is_enabled ()
 
virtual void set_enabled (bool enable)
 
virtual uint64_t total_time ()
 
virtual uint64_t total_number_of_calls ()
 
virtual void clear_data ()
 
- Public Member Functions inherited from simics::systemc::iface::ScProcessProfilerControlInterface
virtual ~ScProcessProfilerControlInterface ()
 
virtual bool is_enabled ()=0
 
virtual void set_enabled (bool enable)=0
 
virtual uint64_t total_time ()=0
 
virtual uint64_t total_number_of_calls ()=0
 
virtual void clear_data ()=0
 
- Public Member Functions inherited from simics::systemc::Version
 Version ()
 
const char * kernel_version () const
 
const char * library_version () const
 
const char * library_kernel_version () const
 
const std::map< std::string, std::string > * versions () const
 
bool operator== (const iface::ScVersionInterface &rhs) const
 
bool operator!= (const iface::ScVersionInterface &rhs) const
 
- Public Member Functions inherited from simics::systemc::iface::ScVersionInterface
virtual const char * kernel_version () const =0
 
virtual const char * library_version () const =0
 
virtual const char * library_kernel_version () const =0
 
virtual const std::map< std::string, std::string > * versions () const =0
 
virtual ~ScVersionInterface ()
 
- Public Member Functions inherited from simics::systemc::GasketInfo
 GasketInfo (ConfObjectRef obj)
 
const std::vector< std::vector< std::string > > * simics2tlm () override
 
const std::vector< std::vector< std::string > > * tlm2simics () override
 
const std::vector< std::vector< std::string > > * simics2systemc () override
 
const std::vector< std::vector< std::string > > * systemc2simics () override
 
virtual ~GasketInfo ()
 
- Public Member Functions inherited from simics::systemc::iface::ScGasketInfoInterface
virtual const std::vector< std::vector< std::string > > * simics2tlm ()=0
 
virtual const std::vector< std::vector< std::string > > * tlm2simics ()=0
 
virtual const std::vector< std::vector< std::string > > * simics2systemc ()=0
 
virtual const std::vector< std::vector< std::string > > * systemc2simics ()=0
 
virtual ~ScGasketInfoInterface ()
 

Static Public Member Functions

template<typename C >
static void initClassInternal (ConfClass *conf_class)
 
static SimulationInterface & simulation_from_conf_obj (conf_object_t *obj)
 
static awareness::ProxyBuilderproxy_builder ()
 

Public Attributes

std::vector< simics::ConfObjectRef > gaskets_
 

Additional Inherited Members

- Protected Member Functions inherited from simics::systemc::Simulation
void finalize ()
 
virtual void callHandleEvent ()
 
const std::vector< conf_object_t * > & instances () const
 
- Protected Member Functions inherited from simics::systemc::Version
void setVersion (const std::string &key, const std::string &value)
 

Detailed Description

Entry point for creating a Simics conf-object that adapts a SystemC model to Simics, by using Simics attributes and Simics interfaces.

If there is no intent to communicate with Simics, please see the RegisterModel class instead.

Member Typedef Documentation

◆ is_systemc_adapter

Constructor & Destructor Documentation

◆ Adapter()

simics::systemc::Adapter::Adapter ( ConfObjectRef  o)
explicit

◆ ~Adapter()

virtual simics::systemc::Adapter::~Adapter ( )
virtual

Member Function Documentation

◆ bindGaskets()

virtual void simics::systemc::Adapter::bindGaskets ( )
inlinevirtual

Override this method to bind Simics interfaces to SystemC after elaboration.

This is necessary if the creation of the hierarchy depends on any of the Simics attributes. If not, the elaboration and binding can be done in the constructor instead.

◆ deinit()

virtual void simics::systemc::Adapter::deinit ( )
virtual

◆ elaborate()

virtual void simics::systemc::Adapter::elaborate ( )
inlinevirtual

Override this method to elaborate the SystemC hierarchy.

This is necessary if the creation of the hierarchy depends on any of the Simics attributes. If not, the elaboration can be done in the constructor instead.

◆ finalize()

virtual void simics::systemc::Adapter::finalize ( )
virtual

Called during the finalize phase.

Will setup a context and call elaborate() followed by bindGaskets().

Any class overriding the finalize method must call the finalize method in this base class.

NOTE: it is recommended to not override finalize() in the derived class, but rather use one of the elaborate() or bindGaskets() methods instead.

◆ initClassInternal()

template<typename C >
static void simics::systemc::Adapter::initClassInternal ( ConfClass *  conf_class)
inlinestatic

◆ internal()

InternalInterface * simics::systemc::Adapter::internal ( )
inline

◆ proxy_builder()

static awareness::ProxyBuilder * simics::systemc::Adapter::proxy_builder ( )
inlinestatic

◆ simulation_from_conf_obj()

static SimulationInterface & simics::systemc::Adapter::simulation_from_conf_obj ( conf_object_t *  obj)
static

◆ tagGaskets()

virtual void simics::systemc::Adapter::tagGaskets ( simics::systemc::GasketTagInterface gasket_tag)
inlinevirtual

Override this method to create tag based gaskets.

This is necessary if the gaskets are not compiled into the Adapter integration but created as isolated Simics objects.

Member Data Documentation

◆ gaskets_

std::vector<simics::ConfObjectRef> simics::systemc::Adapter::gaskets_

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