Logo SoCRocket

Transaction-Level Modeling Framework for Space Applications

Public Member Functions | List of all members
sr_signal::signal_selector< TYPE, MODULE > Class Template Reference

#include <sr_signal_selector.h>

Inheritance diagram for sr_signal::signal_selector< TYPE, MODULE >:
Collaboration diagram for sr_signal::signal_selector< TYPE, MODULE >:

Public Member Functions

 signal_selector (sc_core::sc_module_name mn=NULL)
 
virtual ~signal_selector ()
 Virtual destructor. More...
 
virtual signal_out_bind_if
< TYPE > * 
bind (signal_in_if< TYPE > &receiver, const uint32_t &channel)
 
virtual void write (const uint32_t &mask, const TYPE &value, const sc_core::sc_time &time=sc_core::SC_ZERO_TIME)
 
virtual TYPE read (const uint32_t &channel)
 
void operator() (signal_in_if< TYPE > &receiver, const uint32_t &channel)
 
- Public Member Functions inherited from sr_signal::signal_base< TYPE, MODULE >
 signal_base (sc_core::sc_module_name mn=NULL)
 Default constructor. More...
 
virtual ~signal_base ()
 
- Public Member Functions inherited from sr_signal::signal_out_bind_if< TYPE >
virtual ~signal_out_bind_if ()
 Virtual destructor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from sr_signal::signal_base< TYPE, MODULE >
virtual MODULE * get_module ()
 

Detailed Description

template<class TYPE, class MODULE>
class sr_signal::signal_selector< TYPE, MODULE >

sr_signal selector signal. This class implements a TLM Signal abstraction of an outgoing signal with multiple channels. The signal stores the value and triggers the update function of all receivers. Each channel can be updated seperately. The channels are addressed as bitmasks. This makes it possible to update multiple channels at once.

Constructor & Destructor Documentation

template<class TYPE , class MODULE >
sr_signal::signal_selector< TYPE, MODULE >::signal_selector ( sc_core::sc_module_name  mn = NULL)
inline

Constructor

Parameters
mnSignal name.
template<class TYPE , class MODULE >
virtual sr_signal::signal_selector< TYPE, MODULE >::~signal_selector ( )
inlinevirtual

Virtual destructor.

Member Function Documentation

template<class TYPE , class MODULE >
virtual signal_out_bind_if<TYPE>* sr_signal::signal_selector< TYPE, MODULE >::bind ( signal_in_if< TYPE > &  receiver,
const uint32_t channel 
)
inlinevirtual

Selector signal bind method. This method implements the binding mechanism with an input signal on a specific channel.

Parameters
receiverInput interface to bind with.
channelThe channel which has to be bind.

Implements sr_signal::signal_out_bind_if< TYPE >.

References sr_signal::signal_out< TYPE, MODULE >::bind().

Here is the call graph for this function:

template<class TYPE , class MODULE >
void sr_signal::signal_selector< TYPE, MODULE >::operator() ( signal_in_if< TYPE > &  receiver,
const uint32_t channel 
)
inline

Connecting a channel with an input signal. Calls caller and receiver bind methods.

Parameters
receiverThe input signal to connect with.
channelThe channel which gets connected.

References sr_signal::signal_in_if< TYPE >::bind().

Here is the call graph for this function:

template<class TYPE , class MODULE >
virtual TYPE sr_signal::signal_selector< TYPE, MODULE >::read ( const uint32_t channel)
inlinevirtual

Read the value of a signal.

Parameters
channelThe channel to be read.
template<class TYPE , class MODULE >
virtual void sr_signal::signal_selector< TYPE, MODULE >::write ( const uint32_t mask,
const TYPE &  value,
const sc_core::sc_time &  time = sc_core::SC_ZERO_TIME 
)
inlinevirtual

Write the value of a signal. Stores the value in corresponding channel and triggers an updat in all receivers.

Parameters
maskThe write mask with all channels to write to.
valueThe new value of the signal.
timeThe delay from sc_timestamp() at propagation.

References i, and usi.systemc::time().

Referenced by usi.shell.console.Console::interact().

Here is the call graph for this function:


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