Jump to content
Sign in to follow this  
amitk3553

Initialisation and elaboration phase

Recommended Posts

See section 4 of the IEEE 1666-2011 SystemC Language Reference Manual for a description of the steps taken in Elaboration and Simulation.

 

Roughly speaking, elaboration is the construction of the network of processes and channels that are your SystemC model; the initialisation phase occurs near the start of simulation, and is the part of the scheduler when all processes are run once at time zero

 

regards

Alan

Share this post


Link to post
Share on other sites

See section 4 of the IEEE 1666-2011 SystemC Language Reference Manual for a description of the steps taken in Elaboration and Simulation.

 

Roughly speaking, elaboration is the construction of the network of processes and channels that are your SystemC model; the initialisation phase occurs near the start of simulation, and is the part of the scheduler when all processes are run once at time zero

 

regards

Alan

Thanks alan,

 

one more thing what is the difference between initialisation and evaluate phase?

 

In evaluate phase processes are resumed???What does it means?? Is this means that some part of process is executed in initialisation phase ??

 

Then like we had a process in which two variables are going to add......how would this add operation be performed in initialisation and evaluate phases??like in initialisation values are to be assigned and in evaluate phase added value is to produced??

 

Please explain this with some example

 

 

Thanks with Regards

Amit

Share this post


Link to post
Share on other sites

Hello alan,

 

I had picked an example that you had given in another thread. So please now tell me in the the following example that which part of process is in initial phase and which in evaluate phase.

 

 

void e() {

  cout << "this is a dynamic process" << endl;

}

 

SC_MODULE(M) {

 

  void f() {

    cout << "This is a static process" << endl;

    wait(10, SC_NS);

    sc_spawn (&e);

  }

 

  SC_CTOR(M) {

     SC_THREAD(f)

 }

 

};

 

 

Regards

Cam

Share this post


Link to post
Share on other sites

Every SC_METHOD runs and returns during initialisation. Every SC_THREAD runs until it suspends. In my (untested!) example above, the SC_THREAD f() would execute

 

 

cout << "This is a static process" << endl;

 

and then suspend at this statement:

 

 

wait(10, SC_NS);

The dynamic process e() obviously wouldn't run during intialisation as it has not yet been spawned.

 

regards

Alan

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×