SystemCInDepth 0 Posted May 28, 2017 Report Share Posted May 28, 2017 Hi, I have a very basic question "Why clocked threads are excluded from the initialization phase when processes are added to the runnable queue" ? Thanks ! Quote Link to post Share on other sites
Philipp A Hartmann 245 Posted May 28, 2017 Report Share Posted May 28, 2017 Because clocked threads are sensitive to an explicit clock. This clock does not have to be active during the start of the simulation. Greetings from Duisburg, Philipp maehne 1 Quote Link to post Share on other sites
SystemCInDepth 0 Posted May 30, 2017 Author Report Share Posted May 30, 2017 Hi Philipp So, if SC_METHOD or SC_THREADis sensitive to some clock event. It will also be excluded from the initialization phase. Is it ? Thanks ! Quote Link to post Share on other sites
Philipp A Hartmann 245 Posted May 30, 2017 Report Share Posted May 30, 2017 2 minutes ago, SystemCInDepth said: So, if SC_METHOD or SC_THREADis sensitive to some clock event. It will also be excluded from the initialization phase. Is it ? No. These process flavors are subject to the dont_initialize() setting. See IEEE 1666-2011, 4.2.1.1, step (b): Quote Add every method and thread process instance in the object hierarchy to the set of runnable processes, but exclude those process instances for which the function dont_initialize has been called, and exclude clocked thread processes. Greetings from Duisburg, Philipp Quote Link to post Share on other sites
SystemCInDepth 0 Posted May 30, 2017 Author Report Share Posted May 30, 2017 2 minutes ago, Philipp A Hartmann said: No. These process flavors are subject to the dont_initialize() setting. See IEEE 1666-2011, 4.2.1.1, step (b): Greetings from Duisburg, Philipp I have read that and thats why I am curious about to know the reason behind this. As Method and thread are allowed to be added to the runnable queue with clock on sensitivity but SC_CTHREAD are excluded having the same clock on sensitivity. Quote Link to post Share on other sites
apfitch 207 Posted May 30, 2017 Report Share Posted May 30, 2017 Hi Mr SystemCInDepth, I think it's important to realise that SC_CTHREAD is special, in that the specified sensitivity is a clock (the rising or falling edge event of a bool or sc_logic). There's no such thing as a "clock" for SC_METHOD and SC_THREAD - just events on channels such as sc_signal, sc_fifo, or any other channel that implements an event. So I would not say Quote As Method and thread are allowed to be added to the runnable queue with clock because an SC_METHOD or an SC_THREAD does not have a clock. That's what Philipp meant when he said Quote clocked threads are sensitive to an explicit clock Does that make it clearer? regards Alan Philipp A Hartmann 1 Quote Link to post Share on other sites
Recommended Posts
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.