rc_reconfigurable_module< Module, false > Class Template Reference

#include <rc_reconfigurable_module.h>

Inheritance diagram for rc_reconfigurable_module< Module, false >:

rc_reconfigurable begin_construction rc_resettable

List of all members.


Detailed Description

template<class Module>
class ReChannel::rc_reconfigurable_module< Module, false >

Class of a reconfigurable module.

rc_reconfigurable_module represents a reconfigurable module, as it encapsulates an SC_MODULE and an rc_reconfigurable.

Using rc_reconfigurable_module for the creation of reconfigurable modules is more convenient and, furthermore, also is a requirement for some more advanced ReChannel features to work.

The first template parameter specified the module that has to be derived from, as described in Rendering a Given Module Reconfigurable and Creating a Reconfigurable Module from Scratch.

The second boolean template paramter is internally used to detect whether the inherited module already implements rc_resettable, or not. The rc_reconfigurable_module is guaranteed to implement rc_resettable and therefore always is "resettable".

rc_reconfigurable_module automatically inherits all constructors of M with up to ten arguments. This is made possible by ten templated constructor variants with different parameter count.

Remarks:
The class is additionally derived from internals::reconfigurable::begin_contruction to allow the identification of the current reconfigurable context during a subsequent base class and member construction.
Note:
Resettable processes may be created within a module of this type.
See also:
rc_reconfigurable, RC_RECONFIGURABLE_MODULE(), RC_RECONFIGURABLE_CTOR(), RC_RECONFIGURABLE_MODULE_DERIVED(), RC_RECONFIGURABLE_CTOR_DERIVED(), RC_HAS_PROCESS()

Definition at line 310 of file rc_reconfigurable_module.h.


Public Types

typedef Module module_type
 The type of the inherited module.

Public Member Functions

 rc_reconfigurable_module ()
 Default constructor.
 rc_reconfigurable_module (sc_module_name module_name)
 Default module constructor.
template<class A1>
 rc_reconfigurable_module (A1 a1)
template<class A1, class A2>
 rc_reconfigurable_module (A1 a1, A2 a2)
template<class A1, class A2, class A3>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3)
template<class A1, class A2, class A3, class A4>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4)
template<class A1, class A2, class A3, class A4, class A5>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
template<class A1, class A2, class A3, class A4, class A5, class A6>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
 rc_reconfigurable_module (A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)

Protected Member Functions

virtual void rc_on_reset ()
 Called to request the object for an immediate reset.
virtual void rc_on_init_resettable ()
 Called when the object shall store its state.
sc_object * rc_find_object (const char *obj_name, const sc_object *rel_obj=NULL)
 Finds SystemC objects by their name.
void next_trigger ()
 Calls ReChannel::rc_next_trigger().
void next_trigger (const sc_event &e)
void next_trigger (sc_event_or_list &el)
void next_trigger (sc_event_and_list &el)
void next_trigger (const sc_time &t)
void next_trigger (double v, sc_time_unit tu)
void next_trigger (const sc_time &t, const sc_event &e)
void next_trigger (double v, sc_time_unit tu, const sc_event &e)
void next_trigger (const sc_time &t, sc_event_or_list &el)
void next_trigger (double v, sc_time_unit t, sc_event_or_list &el)
void next_trigger (const sc_time &t, sc_event_and_list &el)
void next_trigger (double v, sc_time_unit tu, sc_event_and_list &el)
void wait ()
 Calls ReChannel::rc_wait().
void wait (int n)
void wait (const sc_event &e)
void wait (sc_event_or_list &el)
void wait (sc_event_and_list &el)
void wait (const sc_time &t)
void wait (double v, sc_time_unit tu)
void wait (const sc_time &t, const sc_event &e)
void wait (double v, sc_time_unit tu, const sc_event &e)
void wait (const sc_time &t, sc_event_or_list &el)
void wait (double v, sc_time_unit t, sc_event_or_list &el)
void wait (const sc_time &t, sc_event_and_list &el)
void wait (double v, sc_time_unit tu, sc_event_and_list &el)

Private Types

typedef
internals::reconfigurable::begin_construction 
begin_construction

Private Member Functions

 RC_STATIC_ASSERT_VALID_MODULE (Module)
 Static assertion to check if Module is a valid module.

Member Typedef Documentation

typedef internals::reconfigurable::begin_construction begin_construction [private]

Definition at line 325 of file rc_reconfigurable_module.h.

typedef Module module_type

The type of the inherited module.

Definition at line 331 of file rc_reconfigurable_module.h.


Constructor & Destructor Documentation

rc_reconfigurable_module (  )  [inline]

Default constructor.

Definition at line 606 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( sc_module_name  module_name  )  [inline]

Default module constructor.

Definition at line 615 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1  )  [inline]

Definition at line 626 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2 
) [inline]

Definition at line 636 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3 
) [inline]

Definition at line 647 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4 
) [inline]

Definition at line 658 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4,
A5  a5 
) [inline]

Definition at line 669 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4,
A5  a5,
A6  a6 
) [inline]

Definition at line 680 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4,
A5  a5,
A6  a6,
A7  a7 
) [inline]

Definition at line 692 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4,
A5  a5,
A6  a6,
A7  a7,
A8  a8 
) [inline]

Definition at line 704 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4,
A5  a5,
A6  a6,
A7  a7,
A8  a8,
A9  a9 
) [inline]

Definition at line 716 of file rc_reconfigurable_module.h.

rc_reconfigurable_module ( A1  a1,
A2  a2,
A3  a3,
A4  a4,
A5  a5,
A6  a6,
A7  a7,
A8  a8,
A9  a9,
A10  a10 
) [inline]

Definition at line 728 of file rc_reconfigurable_module.h.


Member Function Documentation

RC_STATIC_ASSERT_VALID_MODULE ( Module   )  [private]

Static assertion to check if Module is a valid module.

A valid module has to be derived from sc_core::sc_module.

virtual void rc_on_reset (  )  [inline, protected, virtual]

Called to request the object for an immediate reset.

rc_on_reset() is called every time a rc_reconfigurable is activated or deactivated during simulation phase, i.e. normally it will be called twice. An implementation is free to only reset itself either at activation or deactivation.

Attention:
An implementation of this method shall not invoke any wait statements.
Note:
Method should be declared to be "protected".

Implements rc_resettable.

Definition at line 387 of file rc_reconfigurable_module.h.

virtual void rc_on_init_resettable (  )  [inline, protected, virtual]

Called when the object shall store its state.

This callback method shall be invoked to give the object opportunity to store its initial state. A good point of time may be directly after SystemC's construction phase has finished.

Remarks:
An implementation of this method shall not invoke any wait statements.
Note:
Method should be declared to be "protected".

Implements rc_resettable.

Definition at line 389 of file rc_reconfigurable_module.h.

sc_object * rc_find_object ( const char *  obj_name,
const sc_object *  rel_obj = NULL 
) [inline, protected]

Finds SystemC objects by their name.

This method redirects to the global rc_find_object() function. Relative name resolution is supported. If rel_obj is not provided or equals NULL, the rc_reconfigurable_module instance, this method is called for, is specified as the name resolution base.

See also:
rc_find_object()

Definition at line 741 of file rc_reconfigurable_module.h.

void next_trigger (  )  [inline, protected]

Calls ReChannel::rc_next_trigger().

Definition at line 409 of file rc_reconfigurable_module.h.

void next_trigger ( const sc_event &  e  )  [inline, protected]

Definition at line 412 of file rc_reconfigurable_module.h.

void next_trigger ( sc_event_or_list &  el  )  [inline, protected]

Definition at line 415 of file rc_reconfigurable_module.h.

void next_trigger ( sc_event_and_list &  el  )  [inline, protected]

Definition at line 418 of file rc_reconfigurable_module.h.

void next_trigger ( const sc_time &  t  )  [inline, protected]

Definition at line 421 of file rc_reconfigurable_module.h.

void next_trigger ( double  v,
sc_time_unit  tu 
) [inline, protected]

Definition at line 424 of file rc_reconfigurable_module.h.

void next_trigger ( const sc_time &  t,
const sc_event &  e 
) [inline, protected]

Definition at line 427 of file rc_reconfigurable_module.h.

void next_trigger ( double  v,
sc_time_unit  tu,
const sc_event &  e 
) [inline, protected]

Definition at line 430 of file rc_reconfigurable_module.h.

void next_trigger ( const sc_time &  t,
sc_event_or_list &  el 
) [inline, protected]

Definition at line 433 of file rc_reconfigurable_module.h.

void next_trigger ( double  v,
sc_time_unit  t,
sc_event_or_list &  el 
) [inline, protected]

Definition at line 436 of file rc_reconfigurable_module.h.

void next_trigger ( const sc_time &  t,
sc_event_and_list &  el 
) [inline, protected]

Definition at line 440 of file rc_reconfigurable_module.h.

void next_trigger ( double  v,
sc_time_unit  tu,
sc_event_and_list &  el 
) [inline, protected]

Definition at line 443 of file rc_reconfigurable_module.h.

void wait (  )  [inline, protected]

Calls ReChannel::rc_wait().

Definition at line 452 of file rc_reconfigurable_module.h.

void wait ( int  n  )  [inline, protected]

Definition at line 455 of file rc_reconfigurable_module.h.

void wait ( const sc_event &  e  )  [inline, protected]

Definition at line 458 of file rc_reconfigurable_module.h.

void wait ( sc_event_or_list &  el  )  [inline, protected]

Definition at line 461 of file rc_reconfigurable_module.h.

void wait ( sc_event_and_list &  el  )  [inline, protected]

Definition at line 464 of file rc_reconfigurable_module.h.

void wait ( const sc_time &  t  )  [inline, protected]

Definition at line 467 of file rc_reconfigurable_module.h.

void wait ( double  v,
sc_time_unit  tu 
) [inline, protected]

Definition at line 470 of file rc_reconfigurable_module.h.

void wait ( const sc_time &  t,
const sc_event &  e 
) [inline, protected]

Definition at line 473 of file rc_reconfigurable_module.h.

void wait ( double  v,
sc_time_unit  tu,
const sc_event &  e 
) [inline, protected]

Definition at line 476 of file rc_reconfigurable_module.h.

void wait ( const sc_time &  t,
sc_event_or_list &  el 
) [inline, protected]

Definition at line 479 of file rc_reconfigurable_module.h.

void wait ( double  v,
sc_time_unit  t,
sc_event_or_list &  el 
) [inline, protected]

Definition at line 482 of file rc_reconfigurable_module.h.

void wait ( const sc_time &  t,
sc_event_and_list &  el 
) [inline, protected]

Definition at line 485 of file rc_reconfigurable_module.h.

void wait ( double  v,
sc_time_unit  tu,
sc_event_and_list &  el 
) [inline, protected]

Definition at line 488 of file rc_reconfigurable_module.h.


The documentation for this class was generated from the following file:
Generated on Tue Jan 1 23:14:14 2008 for ReChannel by  doxygen 1.5.3