Jump to content

Initialisation and elaboration phase


amitk3553

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

Link to comment
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

Link to comment
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

Link to comment
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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...