Clarification on sensitivity list


Subject: Clarification on sensitivity list
From: Ernst Christen (Ernst_Christen@avanticorp.com)
Date: Fri Jan 11 2002 - 10:44:55 PST


Craig,

The issue you are raising has already been addressed by the 1076.1
Issues Screening and Analysis Committee, and the resolution can
be found in the errata sheet for the 1076.1 LRM available at
www.eda.org/analog/wwwpages/lrm.htm. Essentially q'above(E) is defined
to be a static name, which makes it possible to use the name in
a sensitivity list and also in other places, for example as an actual
in a port association element. This follows the approach taken by the
recently balloted update to VHDL 1076, which as pointed out by Peter
Ashenden makes names of implicit signals static names if their prefix
is a static name. Note, however, that 1076.1 is still based on
1076-1993, so the recent change does not yet apply to VHDL-AMS.

Please let me know if you need further information.

Ernst Christen

Craig Winters writes:
>
> Request for clarification of IEEE Std 1076.1-1999, (VHDL-AMS)
>
> Working Group,
>
> My question concerns the sensitivity list as described in section
> 8.1. This is used in the wait statement, process statement and
> concurrent break statement. I believe it is the same construct
> in each of these locations.
>
> In section 8.1 is the statement:
>
> Each signal name in the sensitivity list must be a static signal name.
>
> To determine what is a static name, I refer to section 6.1 where
> this text is found:
>
> A name is said to be a static name if and only if one of the following
> conditions holds:
> - The name is a simple name or selected name [...]
> - The name is an indexed name [...]
> - The name is a slice name [...]
>
> This does not seem to allow an attribute name where a static name is
> required, as in the sensitivity clause. In that case, the following
> would be errors:
>
> WAIT ON q'ABOVE(e);
> BREAK ON s'DELAYED(t);
>
> However, example code in 14.1 for Q'SLEW contains such statements.
> Specifically, the equivalent block contains two occurrences of:
>
> WAIT ON q'ABOVE(qslew);
>
> One possibility is that when the LRM uses "equivalent code" the
> code is not necessarily substitutable for the construct being
> defined, but only to explain to the reader what the specified
> behavior is. (Please clarify this point.)
>
> The other possibility it that, at least in the sensitivity list
> some attribute names are permissible. If this is so then a number
> of questions come to mind:
>
> Can attribute names with static prefixes be considered static names?
>
> Are certain non-static names, specifically, implicit signals, allowed
> in the sensitivity list?
>
> If attribute names which are implicit signal references can
> be considered static names, does that include the case of
> Q'ABOVE(E) where the expression E is non-static?
>
> Finally, to get directly to my present issue, can a sensitivity
> list, by any interpretation, contain a Q'ABOVE(E) expression where
> the expression E is non-static?
>
> Thank you for your help on this,
>
> Craig Winters
>
> Cadence Design Systems
> cwinters@cadence.com



This archive was generated by hypermail 2b28 : Fri Jan 11 2002 - 12:03:25 PST