Bishnupriya, Stuart, All,
The largest number of issues concern the process control extensions, 
either pointing out ambiguities or asking for clarification. I will group 
together all of the issues in this single email. Please review my answers 
below, and give me your take on the open issues.
Thanks,
John A
[Philipp]
5.4.2 end_of_elaboration (2nd enum, (d))
 With the unification of SC_THREAD and SC_CTHREAD, is there still a reason 
to explicitly forbid SC_CTHREAD during end_of_elaboration?  It certainly 
works with the reference simulator.
[Bart]
6.6.6.1: resume: what if a method resumes itself when executing the 
associated ftion till the end after a suspend call? Same for enable
[Alan]
6.6.6
I'd like to have a simple summary of the process control functions in the 
introduction, e.g. what they are (each pair) and the intent behind  the 
use of each pair. Perhaps just Table 2 in section 6.6.6.4 would be ok?
        [JA] I would like to spend some time improving the process control 
documentation.
[Hiroshi]
5       6.6.6.1 p.74 
"The following cases of calling ""resume"" do not seem to be descrived 
clear.
(1) If ""resume"" are called multi processes at the same simulation time, 
what happens?
        [JA] If h.resume() is called from multiple processes, the process 
associated with h is resumed only once ("resume on a process that is not 
suspended shall have no effect"). If multiple processes are resumed, they 
all become runnable in the same evaluation phase (in arbitrary order)
[Hiroshi]
(2) If ""suspend"" and ""resume"" are successively called to the process 
during wait, when does it become runnable? For example, wait(100) -> calls 
""suspend"" after 10 ns -> calls ""resume"" after 50 ns, then does process 
become runnable after 40 ns?"
        [JA] See the 1st para describing resume. The sensitivity of the 
process would NOT have caused it to become runnable while it was 
suspended, and hence the process will NOT become runnable when it is 
resumed.
[Hiroshi]
7       6.6.6.1 p.74 - 75               The difference between 
suspend/resume and disable/enable is difficult to understand from the 
explanation in the LRM. Use cases can be helpful to understand these 
functions and purposes.
        [JA] I agree the difference between suspend/resume and 
disable/enable is difficult to understand, as are the semantics of process 
control in general. I could spend some time including further examples in 
the LRM. I could also spend some time writing an introduction to the 
process control methods and clarifying the rules, since I am not 
particularly satisfied with the text as it stands.
[Hiroshi]
9       6.6.6.4 p.81    Table 2 
The "enable" row of Table 2 shows "The current evaluation phase". Is this 
correct? Should it be "The next evaluation pahse"?
        [JA] It is correct, but it has to be read in the right context. 
The earliest time at which a call to enable() can affect the target 
process is indeed in the current evaluation phase. For example, a 
subsequent immediate notification within the current evaluation phase 
could make the target process runnable in the current evaluation phase. On 
the other hand, the earliest time at which a call to disable() can affect 
the target process is the next evaluation phase (the phase following the 
current evaluation phase).
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Jan 11 05:58:05 2011
This archive was generated by hypermail 2.1.8 : Tue Jan 11 2011 - 05:58:06 PST