RE: Questions re sync_reset_on/off

From: Bishnupriya Bhattacharya <bpriya@cadence.com>
Date: Thu Jul 22 2010 - 12:50:18 PDT

John,

Answers below.

Thanks,
-Bishnupriya

________________________________
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
Sent: Thursday, July 22, 2010 11:09 PM
To: Bishnupriya Bhattacharya; systemc-p1666-technical@eda.org
Subject: Questions re sync_reset_on/off

Bishnupriya, All,

I've got a few questions about sync_reset_on/off. Just to be clear ...

* The target process is reset when it wakes up due to its sensitivity having triggered. Does this include time-outs? E.g. a thread is in the middle of wait(10, SC_NS) when it gets sync_reset_on. Does it reset when it resumes due to the time-out?
[bpriya: yes, it does]

* You say it is an error to call sync_reset_on for a method process. What about sync_reset_off? Is that an error too, or is the implementation allowed to just ignore it?
[bpriya: good question. I don't feel strongly, but would vote for sync_reset_off() on a method process is not an error.]

* You say that if a process does sync_reset_on/off on itself, the call takes effect the next time the process wakes up. I am confused. Do you mean to say that the next event notification to which it is sensitive would cause a sync reset, or not?
[bpriya: I mean the process will have some effective sensitivity at the end of the current execution, e.g. it is sensitive to an event; whenever that effective sensitivity triggers and the process wakes up, it will be reset.]

* You say that calling sync_reset_on before simulation starts shall have no effect. Why? I expect you have a good reason, but my first reaction was that I would have expected it to put the process into the sync reset state, which would make no difference the first time the thread function is called, but would subsequently make a big difference.
 [bpriya: I see what you mean. As such, sync_reset_on() only applies when a thread is resumed from a wait(); it does not apply to the first execution anyays. So, its ok to allow an early sync_reset_on() which would apply only after the first wait() and wouldn't affect the first run of the process. The reason I chose to disallow it is simply because I wasn't sure I would be able to word it right w/o causing confusion. Please feel free to take a shot at it if you want. That semantics seems fine to me.]

Thanks,

John A

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Jul 22 12:50:45 2010

This archive was generated by hypermail 2.1.8 : Thu Jul 22 2010 - 12:50:46 PDT