Subject: Re: Request Clarification: Q'INTEG'DOT and Q'DOT'INTEG
From: Ernst Christen (Ernst.Christen@synopsys.com)
Date: Mon Jun 24 2002 - 08:33:48 PDT
Craig, Juergen,
The 1076.1 Language Design Committee intended to make constructs of the form
Q'DOT'DOT legal, because there are situations where they may be useful. This
intent has been demonstrated by some examples. However, we overlooked one
important aspect, namely that an attribute name is not a static name. Therefore,
according to a strict interpretation of the 1076.1-1999 LRM, attribute names
whose prefix is itself an attribute name are illegal (as has been observed by
Juergen) if the prefix is required to be a static name. The exception is a
prefix of the form Q'Above(E); the errata sheet defines such names to be static
names to allow their use in sensitivity lists.
The issue raised by Craig points to a problem in the definition of the
augmentation sets for quantities of the forms Q'DOT'INTEG and Q'INTEG'DOT.
The problem exists independent of the break sets. For example, for Q'INTEG'DOT
the quiescent state augmentation set defines the characteristic expressions
Y'DOT -- Q'DOT
Q -- the prefix of Q'INTEG
where Y == Q'INTEG. The problem is that since Y'DOT equals Q we essentially
have two characteristic expressions enforcing the same condition, but none
that constrains the value of Y. The effect is that there are infinitely many
solutions, making a model with this construct erroneous. An equivalent argument
can be made for quantities of the form Q'DOT'INTEG.
We do not have an immediate solution to this problem. Both approaches proposed
by Craig, to define such names as illegal or to define them to mean the same as
Q, are possibilities, but require further investigations by the LDC for the next
revision of the standard. In the meantime my proposal is to consider such names
illegal. They don't serve any purpose, and as stated above they are illegal
according to a strict interpretation of the LRM.
Thanks.
Ernst Christen
Craig Winters wrote:
>
> Juergen,
> Thank you for your input on this question. While I agree that it is
> difficult to stretch the LRM to make Q'DOT a static name, I must still
> accept that it is static for these reasons.
>
> Section 6.1 on its face seems to contradict that. However the thread
> in this mailing list from Kaushik Biswas, dated Mar 7, 2000 raised this
> same question and the conclusion was that Q'DOT, etc. are static names
> based partly on the definition of static name in appendix 'B' on page 264.
> Further, we have examples throughout the literature of cascaded
> attributes, prominently Q'DOT'DOT in the tutorial and many example
> models found on the web. Finally, in the equivalent code for Q'SLEW on
> page 214 of the LRM itself we have Q'DOT'ABOVE(E), which strongly
> indicates that Q'DOT is a static name.
>
> If we allow that Q'DOT is a static name, then Q'DOT'INTEG is a legal
> name and the issue of what to do about it remains open.
>
> Craig
>
> Juergen Pfitzenmaier wrote:
>
> >Hello,
> >in my opinion this point is already made clear in the LRM. From LRM 14.1 we
> >have the following:
> > The prefix of Q'DOT and Q'INTEG is any quantity denoted by the static name Q.
> >
> >A static name is according to LRM 6.1 only one of the following
> > - The name is a simple name or selected name ....
> > - The name is an indexed name ...
> > - The name is a slice name ...
> >
> >An attribute name is therefore not a static name and Q'DOT'INTEG and Q'INTEG'DOT
> >are both not legal VHDL-AMS.
> >
> >I hope this is helpful.
> >
> >Jürgen Pfitzenmaier
> >
> >
-- ================================================================== Ernst Christen Phone: (503) 520-2720 Avant! Corporation. Fax: (503) 643-3361 9205 SW Gemini Drive Email: Ernst_Christen@avanticorp.com Beaverton, OR 97008-7107
This archive was generated by hypermail 2b28 : Mon Jun 24 2002 - 08:57:52 PDT