SystemCInDepth Posted May 28, 2017 Report 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
Philipp A Hartmann Posted May 28, 2017 Report 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
SystemCInDepth Posted May 30, 2017 Author Report 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
Philipp A Hartmann Posted May 30, 2017 Report 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
SystemCInDepth Posted May 30, 2017 Author Report 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
apfitch Posted May 30, 2017 Report 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
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.