John,
Your explanation help me to understand. It looks ok to me.
Thanks,
Hiroshi Imai
At 07 Sep 2010 10:52:11 +0100 john.aynsley@doulos.com wrote:
> Hiroshi San,
>
> I think the specific answer to your question is (1), yes.
>
> "Reset the sensitivity" refers to the behavior of the "immediate reset" as
> performed by the reset() method of sc_process_handle and when the reset
> signal specified by asynch_reset_signal_is gets asserted. This involves
>
> - Removing any dynamic sensitivity associated with the method process
> (which could only have been created by a previous call to next_trigger)
> - Restoring the static sensitivity of the method process (as specified
> using sensitive << or async_reset_signal_is)
>
> In other words, the only effect of reset() or async_reset_signal_is for a
> method process would be to undo the effect of a next_trigger() on that
> method process, and as such it is probably irrelevant to synthesis anyway.
>
> Hope this helps,
>
> John A
>
>
>
>
> From:
> Hiroshi Imai <hiroshi3.imai@toshiba.co.jp>
> To:
> john.aynsley@doulos.com
> Cc:
> "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org>,
> Bishnupriya Bhattacharya <bpriya@cadence.com>
> Date:
> 07/09/2010 01:44
> Subject:
> Re: async_reset_signal_is
>
>
>
> John,
>
> I don't understand what "reset the sensitivity" exactly means. In the
> current SystemC, a reset on SC_THREAD or SC_CTHREAD changes values of
> signals. Then their changes start SC_METHOD which has those signals as
> sensitivity. Are these behavior the same?
>
> (1) If yes, I'd like to know the purpose to set reset_signal_is or
> async_reset_signal on SC_METHOD.
>
> (2) If no, could you tell me the difference? From the behavioral
> synthesis view, I'm wondering that its semantics has difficulty in
> synthesizing it.
>
> Hiroshi Imai
> Chair of SystemC WG, JEITA
>
> At 06 Sep 2010 13:18:14 +0100 john.aynsley@doulos.com wrote:
> > Bishnupriya,
> >
> > I think we should do this, i.e. make reset_signal_is and
> > async_reset_signal legal for method processes. In either case the effect
>
> > would be to "reset the sensitivity" only, because there cannot be any
> call
> > stack to unwind.
> >
> > This approach seems consistent with allowing sync_reset_on and throw_it
> on
> > method processes.
> >
> > Is everyone okay with that?
> >
> > John A
> >
> >
> >
> >
> > From:
> > Bishnupriya Bhattacharya <bpriya@cadence.com>
> > To:
> > "john.aynsley@doulos.com" <john.aynsley@doulos.com>
> > Cc:
> > "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org>
> > Date:
> > 03/09/2010 11:27
> > Subject:
> > RE: async_reset_signal_is
> >
> >
> >
> > John,
> >
> > This has a historical reason. Originally, reset_signal_is() and
> > async_reset_signal_is() were not a part of the core constructs, and
> these
> > could achieve their functionality using the core constructs.
> > reset_signal_is() built upon sync_reset_on()/sync_reset_off(). Since the
>
> > latter is not allowed in methods, reset_signal_is() is also not allowed
> on
> > methods. async_reset_signal_is() built upon a combination of
> > reset()+sync_reset_on()/sync_reset_off(). Since reset() is allowed on
> > methods, async_reset_signal_is() is also allowed on methods.
> >
> > Subsequently, based on Andy Goodrich's input, it was decided that
> implicit
> > resets (via reset_signal_is() and async_reset_signal_is()) also have to
> be
> > made a part of the core constructs so that when sync_reset_off() is
> > specified on a process, it does not go back to a normal state if
> implicit
> > resets are still active on it.
> >
> > I'm ok with making reset_signal_is() legal on a method process, and have
>
> > the semantics same as that of reset() and async_reset_signal_is() - i.e.
>
> > cancel any dynamic sensitivity on the method, and restore its static
> > sensitivity. This is what you are proposing, right?
> >
> > Thanks,
> > -Bishnupriya
> >
> > From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com]
> > Sent: Thursday, September 02, 2010 10:04 PM
> > To: Bishnupriya Bhattacharya; systemc-p1666-technical@eda.org
> > Subject: async_reset_signal_is
> >
> > Bishnupriya,
> >
> > It's me again ;-)
> >
> > Why is calling reset_signal_is for a method process an error, while
> > async_reset_signal_is is permitted? I don't get it.
> >
> > async_reset_signal_is specifies a signal and signals have delta cycle
> > semantics, so even if the method process itself writes to that signal,
> it
> > would not have any effect beyond resetting the sensitivity. But in that
> > respect, both reset_signal_is and async_reset_signal_is would cancel any
>
> > dynamic sensitivity and restore the static sensitivity, so why is only
> > async_ permitted?
> >
> > Thanks,
> >
> > John A
> >
> >
> >
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> >
>
>
>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Sep 7 21:00:11 2010
This archive was generated by hypermail 2.1.8 : Tue Sep 07 2010 - 21:00:15 PDT