ForSyDe::process Class Referenceabstract

The process constructor which defines the abstract semantics of execution. More...

#include <abssemantics.hpp>

Inherits sc_module.

Inherited by ForSyDe::CT2DDE< T >, ForSyDe::CT2DDEf< T >, ForSyDe::CT2SY, ForSyDe::CT::comb, ForSyDe::CT::comb2, ForSyDe::CT::combX< N >, ForSyDe::CT::constant, ForSyDe::CT::delay, ForSyDe::CT::fanout, ForSyDe::CT::fmi2cswrap, ForSyDe::CT::shift, ForSyDe::CT::sink, ForSyDe::CT::source, ForSyDe::CT::traceSig, ForSyDe::DDE2CT< T >, ForSyDe::DDE2SY< T >, ForSyDe::DDE::comb< T0, T1 >, ForSyDe::DDE::comb2< T0, T1, T2 >, ForSyDe::DDE::delay< T >, ForSyDe::DDE::fanout< T >, ForSyDe::DDE::filter< T >, ForSyDe::DDE::filterf< T >, ForSyDe::DDE::mealy< IT, ST, OT >, ForSyDe::DDE::mealy2< IT1, IT2, ST, OT >, ForSyDe::DDE::sink< T >, ForSyDe::DDE::source< T >, ForSyDe::DDE::unzip< T1, T2 >, ForSyDe::DDE::unzipX< T1, N >, ForSyDe::DDE::vsource< T >, ForSyDe::DDE::zip< T1, T2 >, ForSyDe::DDE::zipX< T1, N >, ForSyDe::DT::comb< T0, T1 >, ForSyDe::DT::comb2< T0, T1, T2 >, ForSyDe::DT::comb3< T0, T1, T2, T3 >, ForSyDe::DT::comb4< T0, T1, T2, T3, T4 >, ForSyDe::DT::constant< T >, ForSyDe::DT::delay< T >, ForSyDe::DT::delayn< T >, ForSyDe::DT::fanout< T >, ForSyDe::DT::mealyT< IT, ST, OT >, ForSyDe::DT::sink< T >, ForSyDe::DT::source< T >, ForSyDe::DT::unzip< T1, T2 >, ForSyDe::DT::unzipN< Ts >, ForSyDe::DT::vsource< T >, ForSyDe::DT::zip< T1, T2 >, ForSyDe::SDF2SY< T >, ForSyDe::SDF::comb< T0, T1 >, ForSyDe::SDF::comb2< T0, T1, T2 >, ForSyDe::SDF::comb3< T0, T1, T2, T3 >, ForSyDe::SDF::comb4< T0, T1, T2, T3, T4 >, ForSyDe::SDF::constant< T >, ForSyDe::SDF::delay< T >, ForSyDe::SDF::delayn< T >, ForSyDe::SDF::fanout< T >, ForSyDe::SDF::file_sink< T >, ForSyDe::SDF::file_source< T >, ForSyDe::SDF::sink< T >, ForSyDe::SDF::source< T >, ForSyDe::SDF::unzip< T1, T2 >, ForSyDe::SDF::unzipN< Ts >, ForSyDe::SDF::vsource< T >, ForSyDe::SDF::zip< T1, T2 >, ForSyDe::SDF::zipN< Ts >, ForSyDe::SY2CT, ForSyDe::SY2DDE< T >, ForSyDe::SY2SDF< T >, ForSyDe::SY::comb< T0, T1 >, ForSyDe::SY::comb2< T0, T1, T2 >, ForSyDe::SY::comb3< T0, T1, T2, T3 >, ForSyDe::SY::comb4< T0, T1, T2, T3, T4 >, ForSyDe::SY::combX< T0, T1, N >, ForSyDe::SY::constant< T >, ForSyDe::SY::delay< T >, ForSyDe::SY::delayn< T >, ForSyDe::SY::fanout< T >, ForSyDe::SY::file_sink< T >, ForSyDe::SY::file_source< T >, ForSyDe::SY::fill< T >, ForSyDe::SY::gdbwrap< T0, T1 >, ForSyDe::SY::group< T >, ForSyDe::SY::hold< T >, ForSyDe::SY::mealy< IT, ST, OT >, ForSyDe::SY::moore< IT, ST, OT >, ForSyDe::SY::pipewrap< T0, T1 >, ForSyDe::SY::pipewrap2< T0, T1, T2 >, ForSyDe::SY::receiver< T0 >, ForSyDe::SY::scomb< T0, T1 >, ForSyDe::SY::scomb2< T0, T1, T2 >, ForSyDe::SY::scomb3< T0, T1, T2, T3 >, ForSyDe::SY::scomb4< T0, T1, T2, T3, T4 >, ForSyDe::SY::scombX< T0, T1, N >, ForSyDe::SY::sconstant< T >, ForSyDe::SY::sdelay< T >, ForSyDe::SY::sdelayn< T >, ForSyDe::SY::sdpmap< T0, T1, N >, ForSyDe::SY::sdpreduce< T0, N >, ForSyDe::SY::sdpscan< T0, T1, N >, ForSyDe::SY::sender< T1 >, ForSyDe::SY::sgroup< T >, ForSyDe::SY::sink< T >, ForSyDe::SY::smealy< IT, ST, OT >, ForSyDe::SY::smoore< IT, ST, OT >, ForSyDe::SY::source< T >, ForSyDe::SY::ssink< T >, ForSyDe::SY::ssource< T >, ForSyDe::SY::sunzip< T1, T2 >, ForSyDe::SY::sunzipN< Ts >, ForSyDe::SY::sunzipX< T1, N >, ForSyDe::SY::svsource< T >, ForSyDe::SY::szip< T1, T2 >, ForSyDe::SY::szipN< Ts >, ForSyDe::SY::szipX< T1, N >, ForSyDe::SY::unzip< T1, T2 >, ForSyDe::SY::unzipN< Ts >, ForSyDe::SY::unzipX< T1, N >, ForSyDe::SY::vsource< T >, ForSyDe::SY::zip< T1, T2 >, ForSyDe::SY::zipN< Ts >, ForSyDe::SY::zipX< T1, N >, ForSyDe::UT::comb< T0, T1 >, ForSyDe::UT::comb2< T0, T1, T2 >, ForSyDe::UT::comb3< T0, T1, T2, T3 >, ForSyDe::UT::comb4< T0, T1, T2, T3, T4 >, ForSyDe::UT::constant< T >, ForSyDe::UT::delay< T >, ForSyDe::UT::delayn< T >, ForSyDe::UT::fanout< T >, ForSyDe::UT::mealy< IT, ST, OT >, ForSyDe::UT::moore< IT, ST, OT >, ForSyDe::UT::scan< IT, ST >, ForSyDe::UT::scand< IT, ST >, ForSyDe::UT::sink< T >, ForSyDe::UT::source< T >, ForSyDe::UT::unzip< T1, T2 >, ForSyDe::UT::unzipN< Ts >, ForSyDe::UT::zip< T1, T2 >, ForSyDe::UT::zipN< Ts >, and ForSyDe::SY::source< double >.

Collaboration diagram for ForSyDe::process:

Public Member Functions

 process (sc_module_name _name)
 The constructor requires the module name. More...
 
virtual std::string forsyde_kind () const =0
 The ForSyDe process type represented by the current module.
 

Protected Member Functions

virtual void init ()=0
 The init stage. More...
 
virtual void prep ()=0
 The prep stage. More...
 
virtual void exec ()=0
 The exece stage. More...
 
virtual void prod ()=0
 The prod stage. More...
 
virtual void clean ()=0
 The clean stage. More...
 
void end_of_simulation ()
 This hook is used to run the clean stage.
 

Detailed Description

The process constructor which defines the abstract semantics of execution.

This class defines a set of methods and their execution order which together define the abstract execution semantics of the processes in ForSyDe-SystemC. In each MoC, process constructors implement the these methods according to its own semantics. Additionally, this class contains members which are used to collect and store information about the structure of the models which is used for introspection in the elaboration phase.

Note that this is an abstract class and can not be directly instantiated. The designer uses the process constructors which implement the abstract methods in a specific MoC.

Constructor & Destructor Documentation

ForSyDe::process::process ( sc_module_name  _name)
inline

The constructor requires the module name.

It creates an SC_THREAD which reads data from its input port, processes them and writes the results using the output port.

Parameters
_nameThe name of the ForSyDe process

Member Function Documentation

virtual void ForSyDe::process::clean ( )
protectedpure virtual

The clean stage.

This stage is executed once at the end and is responsible for cleaning jobs such as deallocation of the allocated memories, etc.

virtual void ForSyDe::process::exec ( )
protectedpure virtual

The exece stage.

This stage is executed continuously in a loop and executes the main functionality of the process (e.g., by applying a supplied function).

virtual void ForSyDe::process::init ( )
protectedpure virtual

The init stage.

This stage is executed once in the beginning and is responsible for initialization tasks such as allocating IO buffers, etc.

virtual void ForSyDe::process::prep ( )
protectedpure virtual

The prep stage.

This stage is executed continuously in a loop and is responsible for preparaing the inputs to the execution phase.

virtual void ForSyDe::process::prod ( )
protectedpure virtual

The prod stage.

This stage is executed continuously in a loop and is responsible for writing the computed results to the output.


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