Hi All:
I got a given SystemC code running without end_of_simulation called. And I know "end_of_simulation" won't be called if sc_stop is not called.
I debug into the code and see following situation. Code looks like
void thread_a() //it is a sc thread
{
while(xxx) {
wait(sc_time(x,SC_NS)); break 1
cout<<"xxxxx"<<endl; break 2
---logics----
}
sc_stop;
}
The last time I was stopped at breakpoint 1, then I did step next. Then instead of stopping at breakpoint 2 , I stopped at sc_main after sc_start.
So it looks like the entire thread is stopped by others? What else than "sc_stop" can terminate the thread? Since my code in "end_of_simulation" is not triggered, I am sure that there is no other sc_stop in my programme that calling sc_stop. So what can be the backend hand doing that?
Thanks a lot for all your help