RecoSim  1.0
 All Classes Files Functions Variables Enumerations
Public Member Functions | Public Attributes | List of all members
Module< Ni, No > Class Template Reference
Inheritance diagram for Module< Ni, No >:
Reconf_thread_interface User_algorithm_interface< Ni, No > Manager_interface Task_to_schedule_interface Task_priority_comparator_interface

Public Member Functions

 SC_HAS_PROCESS (Module)
 
 Module (sc_module_name instname, void(*reconf_fct)(Reconf_thread_interface &, User_algorithm_interface< Ni, No > &), ofstream &logfile, sc_trace_file *mtf)
 
const char * get_name () const
 
int * get_data_in_ptr (int)
 Get pointer to incoming data from socket 'socket'. More...
 
int * get_data_in_ptr (string)
 Get pointer to incoming data from socket 'name'. More...
 
int get_data_in_length (int) const
 Get input socket data length. More...
 
int get_data_in_length (string) const
 Get input socket data length. More...
 
sc_dt::uint64 get_address_in (int) const
 Retrieve address from the incoming transaction on socket 'socket'. More...
 
sc_dt::uint64 get_address_in (string) const
 Retrieve address from the incoming transaction on socket 'name'. More...
 
int * get_data_out_ptr (int)
 Get pointer to outgoing data from socket 'socket'. More...
 
int * get_data_out_ptr (string)
 Get pointer to outgoing data from socket 'name'. More...
 
int get_data_out_length (int) const
 Get output socket data length. More...
 
int get_data_out_length (string) const
 Get output socket data length. More...
 
void set_address_out (int, sc_dt::uint64)
 Set address for outgoing transaction on socket 'socket'. More...
 
void set_address_out (string, sc_dt::uint64)
 Set address for outgoing transaction on socket 'socket'. More...
 
int get_input_socket_id (string name) const
 Get input socket id by the name of the connection. More...
 
int get_output_socket_id (string name) const
 Get input socket id by the name of the connection. More...
 
sc_time get_WCET (void) const
 Get task worst case execution time (WCET), depending on current implementation. More...
 
sc_time get_BCET (void) const
 Get task best case execution time (BCET), depending on current implementation. More...
 
void end_of_algorithm (void)
 Function to call at the end of algorithm.
 
void preemption_point (void)
 Function to call to emulate preemption.
 
void compute (sc_time duration)
 Emulate an execution time of the algorithm. More...
 
bool isTransactionInMemory (void)
 
const sc_event & getEOREvent (void) const
 
const sc_event & update_user_algorithm (void) const
 Get the event launched when the user algorithm has to be modified (e.g. changing working implementation) More...
 
void wait_for_update_user_algorithm (void)
 
bool & kill_user_algorithm (void)
 Get a reference to a boolean indicating whether the user algorithm should be killed or not (for instance, to be erplaced with a new thread). More...
 
void b_data_received (string)
 Check if the data from channel 'name' have been received yet. Blocking function: if the data is not available at the time of the call, wait until it is received. More...
 
void b_data_received (int)
 Check if the data from channel 'id' have been received yet. Blocking function: if the data is not available at the time of the call, wait until it is received. More...
 
void b_all_data_received (void)
 Check if the data from all channels have been received yet. Blocking function: if the data is not available at the time of the call, wait until it is received.
 
bool nb_data_received (string)
 Check if the data from channel 'name' have been received yet. Non-blocking function. More...
 
bool nb_data_received (int)
 Check if the data from channel 'id' have been received yet. Non-blocking function. More...
 
bool nb_all_data_received (void)
 Check if the data from all channels have been received yet. Non-blocking function. More...
 
void nb_send_data (string)
 Send data towards channel 'name'. Non-blocking function. More...
 
void nb_send_data (int)
 Send data towards channel 'id'. Non-blocking function. More...
 
void nb_send_all_data (void)
 Send data towards all channels. Non-blocking function.
 
void b_send_data (string)
 Send data towards channel 'name'. Blocking function: it will exit only when the following module has accepted the transaction. More...
 
void b_send_data (int)
 Send data towards channel 'id'. Blocking function: it will exit only when the following module has accepted the transaction. More...
 
void b_send_all_data (void)
 Send data towards every channels. Blocking function: it will exit only when the following modules have accepted all transactions.
 
void b_data_sent (int id)
 Check if data has been sent on a particular socket. Blocking function: if data send is not finished yet, wait until the end of the transaction. If no send request has ever been made, considers the socket ready. More...
 
bool nb_data_sent (int id)
 Check if data has been sent on a particular socket. Non-blocking function. If no send request has ever been made, considers the socket ready. More...
 
void b_data_sent (string name)
 Check if data has been sent on a particular socket. Blocking function: if data send is not finished yet, wait until the end of the transaction. If no send request has ever been made, considers the socket ready. More...
 
bool nb_data_sent (string name)
 Check if data has been sent on a particular socket. Non-blocking function. If no send request has ever been made, considers the socket ready. More...
 
void b_all_data_sent (void)
 Check if data has been sent on every socket. Blocking function: if data send is not finished yet, wait until the end of the transaction. If no send request has ever been made, considers the socket ready.
 
bool nb_all_data_sent (void)
 Check if data has been sent on every socket. Non-blocking function.
 
void start_new_transaction_sequence (void)
 Indicate that a new transaction sequence is beginning (i.e. sending new data) for every socket. More...
 
void start_new_transaction_sequence (int id)
 Indicate that a new transaction sequence is beginning (i.e. sending new data) for a particular socket. More...
 
void start_new_transaction_sequence (string name)
 Indicate that a new transaction sequence is beginning (i.e. sending new data) for a particular socket. More...
 
bool is_channel_transient (string)
 Check if channel 'name' is transient or not. More...
 
bool is_channel_transient (int)
 Check if channel 'id' is transient or not. More...
 
int get_nb_preemption_points (void)
 Get the number of preemption points that should be inserted in the algorithm. More...
 
void set_algorithm_running (void)
 Function to call when the algorithm is running in order to have an accurate trace.
 
void set_algorithm_idle (void)
 Function to call when the algorithm is idle in order to have an accurate trace.
 
void set_algorithm_waiting (void)
 Function to call when the algorithm is waiting for data in order to have an accurate trace.
 
void wait_until_next_period (void)
 Wait until the next period is started. For non-periodic tasks, return immediately.
 
ofstream & get_logfile (void)
 Get logfile. More...
 
string get_algorithm_execution_mode (void)
 Get current algorithm execution mode. More...
 
bool is_algorithm_execution_mode (string)
 Check for a particular execution mode. More...
 
void release_input_socket (int socketID)
 Release a particular input socket so that preceding module might send some more data. More...
 
void release_input_socket (string connectionName)
 Release a particular input socket so that preceding module might send some more data. More...
 
void release_all_input_sockets (void)
 Release all input socket so that preceding modules might send some more data.
 
void b_execution_requested (void)
 Wait until an algorithm execution has been requested/granted by the manager.
 
const sc_event & configuration_updated () const
 
void finish_configuration (void)
 
int get_current_implementation_id (void)
 
vector< ModuleImplementationget_implementation_vector (void)
 
bool has_implementation (TaskImplementation &) const
 
void set_current_implementation (string)
 Set current implementation for the module, based on its name ('implementationName'). More...
 
vector< ModuleImplementationget_implementation_vector (void) const
 Get task implementations (HW and SW implementations are merged) More...
 
sc_time get_deadline_time (void) const
 Get task deadline (as the maximum acceptable time for one task execution) More...
 
sc_time get_task_deadline (void) const
 Get task deadline (absolute time representation) More...
 
void set_request_time (void)
 Set the time at which a configuration request has been made in order to update deadlines.
 
bool fits (RZ *rz)
 Check if task fits a reconfigurable zone (verifying every hardware implementations defined for the module) More...
 
string getName (void) const
 Return module name. More...
 
int get_nb_processed_transactions (void) const
 Get the number of transactions processed so far. More...
 
vector< int > getFollowingList (void) const
 Get a list of tasks following this one in the block diagram. If an ID of vector is -1, the following task is a testbench. More...
 
vector< int > getPrecedingList (void) const
 Get a list of tasks preceding this one in the block diagram. If an ID of vector is -1, the preceding task is a testbench. More...
 
void updateLists (int offset)
 Update lists after the entire application has been defined. Called once by the reconfiguration manager. More...
 
bool is_static (void) const
 Check if the module has been defined static (i.e. always implemented on the FPGA) More...
 
int get_task_priority (void) const
 Return task priority. More...
 
sc_time get_task_period (void) const
 Return task period. More...
 
sc_time get_task_offset (void) const
 Return task offset. More...
 
string get_current_implementation_fullname (void)
 Get current implementation ID. More...
 
bool has_current_implementation (void)
 Check if exist a current implementation. More...
 
ModuleImplementation get_current_implementation (void)
 Get current implementation. More...
 
void update_algorithm_execution_mode (string command)
 Transmit algorithm execution mode from issued by the testbench to the module (e.g. change algorithm implementation to 'VHDL'. More...
 
bool use_context_switch_mode (string implementationName)
 Check if context switch mode is enabled for the implementation named 'implementationName'. In this mode, specific to HW implementations, a context switch is performed each time the task is being replaced on a reconfigurable zone (not only when the task is being preempted). More...
 
void send_start_algorithm_event (void)
 Send a notification to the module in order to start the user algorithm.
 
sc_time get_new_period_start_time (void) const
 Retrieve time of the beginning for next period. More...
 
int get_nb_transient_channels (void)
 Get number of transient channels within the module. More...
 
void set_task_priority (int priority)
 Change the task priority. More...
 
tlm_sync_enum nb_transport_bw (int id, tlm_generic_payload &trans, tlm_phase &phase, sc_time &delay)
 
tlm_sync_enum nb_transport_fw (int id, tlm_generic_payload &trans, tlm_phase &phase, sc_time &delay)
 
void b_transport_conf (tlm_generic_payload &trans, sc_time &delay)
 
void add_timing_info (tlm_phase_enum phase, string connection_name, sc_time time)
 
void set_begin_req_time (string connection_name, sc_time t)
 
void set_end_req_time (string connection_name, sc_time t)
 
void set_begin_resp_time (string connection_name, sc_time t)
 
void set_end_resp_time (string connection_name, sc_time t)
 
void set_deadline_time (sc_time t)
 
void set_preceding_modules_list (vector< int > &v)
 
void set_following_modules_list (vector< int > &v)
 
void add_following_module_connection_name (string name)
 
void add_preceding_module_connection_name (string name)
 
void set_packet_size (string connection_name, int size)
 
void enable_configuration_signals_trace (void)
 
void activate_trace (void)
 
void info (void)
 
void verify_bindings (void)
 
void set_implementation_vector (vector< ModuleImplementation > &impl)
 
void set_static_module (void)
 
void set_priority (int)
 
void add_interface (ModuleInterface mod_if)
 
void release_physical_channels_method (int channel_id)
 
bool is_physical_channel_available (string connection_name)
 
void display_physical_channels_map (void)
 
string get_input_connection_name (int id)
 
string get_output_connection_name (int id)
 
void set_task_period (sc_time p)
 
void set_task_offset (sc_time o)
 
void update_socket_data_received_buffer (int)
 
void update_socket_data_sent_buffer (int)
 

Public Attributes

multi_passthrough_target_socket
< Module
target_socket
 
multi_passthrough_initiator_socket
< Module
initiator_socket
 
simple_target_socket< Modulemanager_target_socket
 
simple_initiator_socket< Modulemanager_initiator_socket
 

Member Function Documentation

template<int Ni, int No>
void Module< Ni, No >::b_data_received ( string  name)
virtual

Check if the data from channel 'name' have been received yet. Blocking function: if the data is not available at the time of the call, wait until it is received.

Parameters
nameName of the channel to check

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::b_data_received ( int  id)
virtual

Check if the data from channel 'id' have been received yet. Blocking function: if the data is not available at the time of the call, wait until it is received.

Parameters
idID of the channel to check

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::b_data_sent ( int  id)
virtual

Check if data has been sent on a particular socket. Blocking function: if data send is not finished yet, wait until the end of the transaction. If no send request has ever been made, considers the socket ready.

Parameters
idSocket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::b_data_sent ( string  name)
virtual

Check if data has been sent on a particular socket. Blocking function: if data send is not finished yet, wait until the end of the transaction. If no send request has ever been made, considers the socket ready.

Parameters
nameName of the connection bound to the socket

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::b_send_data ( string  name)
virtual

Send data towards channel 'name'. Blocking function: it will exit only when the following module has accepted the transaction.

Parameters
nameName of the channel where data will be sent

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::b_send_data ( int  id)
virtual

Send data towards channel 'id'. Blocking function: it will exit only when the following module has accepted the transaction.

Parameters
idID of the channel where data will be sent

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::compute ( sc_time  duration)
virtual

Emulate an execution time of the algorithm.

Parameters
durationExecution time

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
const sc_event & Module< Ni, No >::configuration_updated ( ) const
virtual
template<int Ni, int No>
bool Module< Ni, No >::fits ( RZ rz)
virtual

Check if task fits a reconfigurable zone (verifying every hardware implementations defined for the module)

Parameters
rzPointer to the reconfigurable zone to check
Returns
true if module fits the RZ

Implements Task_to_schedule_interface.

template<int Ni, int No>
sc_dt::uint64 Module< Ni, No >::get_address_in ( int  socket) const
virtual

Retrieve address from the incoming transaction on socket 'socket'.

Parameters
socketSocket ID
Returns
The address

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
sc_dt::uint64 Module< Ni, No >::get_address_in ( string  name) const
virtual

Retrieve address from the incoming transaction on socket 'name'.

Parameters
nameName of the socket connection
Returns
The address

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
string Module< Ni, No >::get_algorithm_execution_mode ( void  )
virtual

Get current algorithm execution mode.

Returns
String representation of the execution mode

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
sc_time Module< Ni, No >::get_BCET ( void  ) const
virtual

Get task best case execution time (BCET), depending on current implementation.

Returns
BCET

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
ModuleImplementation Module< Ni, No >::get_current_implementation ( void  )
virtual

Get current implementation.

Returns
Current implementation

Implements Manager_interface.

template<int Ni, int No>
string Module< Ni, No >::get_current_implementation_fullname ( void  )
virtual

Get current implementation ID.

Returns
Current implementation id

Implements Manager_interface.

template<int Ni, int No>
int Module< Ni, No >::get_data_in_length ( int  socket) const
virtual

Get input socket data length.

Parameters
socketSocket ID
Returns
data length

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int Module< Ni, No >::get_data_in_length ( string  name) const
virtual

Get input socket data length.

Parameters
nameName of the socket connection
Returns
data length

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int * Module< Ni, No >::get_data_in_ptr ( int  socket)
virtual

Get pointer to incoming data from socket 'socket'.

Parameters
socketSocket ID
Returns
Pointer to an array of data

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int * Module< Ni, No >::get_data_in_ptr ( string  name)
virtual

Get pointer to incoming data from socket 'name'.

Parameters
nameName of the socket connection
Returns
Pointer to an array of data

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int Module< Ni, No >::get_data_out_length ( int  socket) const
virtual

Get output socket data length.

Parameters
socketSocket ID
Returns
data length

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int Module< Ni, No >::get_data_out_length ( string  name) const
virtual

Get output socket data length.

Parameters
nameName of the socket connection
Returns
data length

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int * Module< Ni, No >::get_data_out_ptr ( int  socket)
virtual

Get pointer to outgoing data from socket 'socket'.

Parameters
socketSocket ID
Returns
Pointer to an array of data

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int * Module< Ni, No >::get_data_out_ptr ( string  name)
virtual

Get pointer to outgoing data from socket 'name'.

Parameters
nameName of the socket connection
Returns
Pointer to an array of data

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
sc_time Module< Ni, No >::get_deadline_time ( void  ) const
virtual

Get task deadline (as the maximum acceptable time for one task execution)

Returns
sc_time representation of the task deadline

Implements Task_priority_comparator_interface.

template<int Ni, int No>
vector< ModuleImplementation > Module< Ni, No >::get_implementation_vector ( void  ) const
virtual

Get task implementations (HW and SW implementations are merged)

Returns
Vector containing module implementation (class ModuleImplementation)

Implements Manager_interface.

template<int Ni, int No>
int Module< Ni, No >::get_input_socket_id ( string  name) const
virtual

Get input socket id by the name of the connection.

Parameters
nameConnection name
Returns
Socket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
ofstream & Module< Ni, No >::get_logfile ( void  )
virtual

Get logfile.

Returns
Log file

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
const char * Module< Ni, No >::get_name ( void  ) const
virtual
template<int Ni, int No>
int Module< Ni, No >::get_nb_preemption_points ( void  )
virtual

Get the number of preemption points that should be inserted in the algorithm.

Returns
number of preemption points

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
int Module< Ni, No >::get_nb_processed_transactions ( void  ) const
virtual

Get the number of transactions processed so far.

Returns
Number of processed transactions

Implements Manager_interface.

template<int Ni, int No>
int Module< Ni, No >::get_nb_transient_channels ( void  )
virtual

Get number of transient channels within the module.

Returns
Number of transient channels

Implements Manager_interface.

template<int Ni, int No>
sc_time Module< Ni, No >::get_new_period_start_time ( void  ) const
virtual

Retrieve time of the beginning for next period.

Returns
Absolute time of the new period beginning

Implements Task_to_schedule_interface.

template<int Ni, int No>
int Module< Ni, No >::get_output_socket_id ( string  name) const
virtual

Get input socket id by the name of the connection.

Parameters
nameConnection name
Returns
Socket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
sc_time Module< Ni, No >::get_task_deadline ( void  ) const
virtual

Get task deadline (absolute time representation)

Returns
sc_time representation of the task deadline (absolute time)

Implements Task_priority_comparator_interface.

template<int Ni, int No>
sc_time Module< Ni, No >::get_task_offset ( void  ) const
virtual

Return task offset.

Returns
Task offset

Implements Task_priority_comparator_interface.

template<int Ni, int No>
sc_time Module< Ni, No >::get_task_period ( void  ) const
virtual

Return task period.

Returns
Task period

Implements Task_priority_comparator_interface.

template<int Ni, int No>
int Module< Ni, No >::get_task_priority ( void  ) const
virtual

Return task priority.

Returns
Taks priority

Implements Task_priority_comparator_interface.

template<int Ni, int No>
sc_time Module< Ni, No >::get_WCET ( void  ) const
virtual

Get task worst case execution time (WCET), depending on current implementation.

Returns
WCET

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
vector< int > Module< Ni, No >::getFollowingList ( void  ) const
virtual

Get a list of tasks following this one in the block diagram. If an ID of vector is -1, the following task is a testbench.

Returns
A vector containing IDs of following tasks

Implements Task_to_schedule_interface.

template<int Ni, int No>
string Module< Ni, No >::getName ( void  ) const
virtual

Return module name.

Returns
string representation of module name

Implements Task_to_schedule_interface.

template<int Ni, int No>
vector< int > Module< Ni, No >::getPrecedingList ( void  ) const
virtual

Get a list of tasks preceding this one in the block diagram. If an ID of vector is -1, the preceding task is a testbench.

Returns
A vector containing IDs of preceding tasks

Implements Task_to_schedule_interface.

template<int Ni, int No>
bool Module< Ni, No >::has_current_implementation ( void  )
virtual

Check if exist a current implementation.

Returns
return true if exists

Implements Manager_interface.

template<int Ni, int No>
bool Module< Ni, No >::has_implementation ( TaskImplementation impl) const
virtual

Manager interface

Implements Task_to_schedule_interface.

template<int Ni, int No>
bool Module< Ni, No >::is_algorithm_execution_mode ( string  mode)
virtual

Check for a particular execution mode.

Parameters
modeExecution mode to look after
Returns
true if current execution mode is 'mode', false otherwise

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::is_channel_transient ( string  name)
virtual

Check if channel 'name' is transient or not.

Parameters
nameName of the channel to check for transience
Returns
true if channel is transient

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::is_channel_transient ( int  id)
virtual

Check if channel 'id' is transient or not.

Parameters
idID of the channel to check for transience
Returns
true if channel is transient

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::is_static ( void  ) const
virtual

Check if the module has been defined static (i.e. always implemented on the FPGA)

Returns
true if module is static

Implements Manager_interface.

template<int Ni, int No>
bool & Module< Ni, No >::kill_user_algorithm ( void  )
virtual

Get a reference to a boolean indicating whether the user algorithm should be killed or not (for instance, to be erplaced with a new thread).

Returns
reference to the boolean

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::nb_all_data_received ( void  )
virtual

Check if the data from all channels have been received yet. Non-blocking function.

Returns
true if data is available

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::nb_data_received ( string  name)
virtual

Check if the data from channel 'name' have been received yet. Non-blocking function.

Parameters
nameName of the channel to check
Returns
true if data is available

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::nb_data_received ( int  id)
virtual

Check if the data from channel 'id' have been received yet. Non-blocking function.

Parameters
idID of the channel to check
Returns
true if data is available

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::nb_data_sent ( int  id)
virtual

Check if data has been sent on a particular socket. Non-blocking function. If no send request has ever been made, considers the socket ready.

Parameters
idSocket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
bool Module< Ni, No >::nb_data_sent ( string  name)
virtual

Check if data has been sent on a particular socket. Non-blocking function. If no send request has ever been made, considers the socket ready.

Parameters
nameName of the connection bound to the socket

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::nb_send_data ( string  name)
virtual

Send data towards channel 'name'. Non-blocking function.

Parameters
nameName of the channel where data will be sent

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::nb_send_data ( int  id)
virtual

Send data towards channel 'id'. Non-blocking function.

Parameters
idID of the channel where data will be sent

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
tlm_sync_enum Module< Ni, No >::nb_transport_bw ( int  id,
tlm_generic_payload &  trans,
tlm_phase &  phase,
sc_time &  delay 
)

User interface

template<int Ni, int No>
void Module< Ni, No >::release_input_socket ( int  socketID)
virtual

Release a particular input socket so that preceding module might send some more data.

Parameters
socketIDSocket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::release_input_socket ( string  connectionName)
virtual

Release a particular input socket so that preceding module might send some more data.

Parameters
connectionNameName of the connection bound to the socket

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::set_address_out ( int  socket,
sc_dt::uint64  value 
)
virtual

Set address for outgoing transaction on socket 'socket'.

Parameters
socketSocket ID
valueNew value
Returns
The address

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::set_address_out ( string  name,
sc_dt::uint64  value 
)
virtual

Set address for outgoing transaction on socket 'socket'.

Parameters
nameName of the socket connection
valueNew value
Returns
The address

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::set_current_implementation ( string  implementationName)
virtual

Set current implementation for the module, based on its name ('implementationName').

Parameters
implementationNameCurrent implementation name

Implements Manager_interface.

template<int Ni, int No>
void Module< Ni, No >::set_task_priority ( int  priority)
virtual

Change the task priority.

Parameters
Newtask priority

Implements Task_to_schedule_interface.

template<int Ni, int No>
void Module< Ni, No >::start_new_transaction_sequence ( void  )
virtual

Indicate that a new transaction sequence is beginning (i.e. sending new data) for every socket.

Parameters
idSocket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::start_new_transaction_sequence ( int  id)
virtual

Indicate that a new transaction sequence is beginning (i.e. sending new data) for a particular socket.

Parameters
idSocket ID

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::start_new_transaction_sequence ( string  name)
virtual

Indicate that a new transaction sequence is beginning (i.e. sending new data) for a particular socket.

Parameters
nameName of the connection bound to the socket.

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::update_algorithm_execution_mode ( string  mode)
virtual

Transmit algorithm execution mode from issued by the testbench to the module (e.g. change algorithm implementation to 'VHDL'.

Parameters
modeString representation of the execution mode

Implements Manager_interface.

template<int Ni, int No>
const sc_event & Module< Ni, No >::update_user_algorithm ( void  ) const
virtual

Get the event launched when the user algorithm has to be modified (e.g. changing working implementation)

Returns
constant reference to the SystemC event

Implements User_algorithm_interface< Ni, No >.

template<int Ni, int No>
void Module< Ni, No >::updateLists ( int  offset)
virtual

Update lists after the entire application has been defined. Called once by the reconfiguration manager.

Parameters
offsetOffset to apply to IDs within lists

Implements Manager_interface.

template<int Ni, int No>
bool Module< Ni, No >::use_context_switch_mode ( string  implementationName)
virtual

Check if context switch mode is enabled for the implementation named 'implementationName'. In this mode, specific to HW implementations, a context switch is performed each time the task is being replaced on a reconfigurable zone (not only when the task is being preempted).

Parameters
implementationNameImplementation name
Returns
true if context switch mode is enabled

Implements Manager_interface.


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