Subject: RE: Reference Terminal Clarification
From: Bakalar, Kenneth (kenneth_bakalar@mentorg.com)
Date: Tue Jan 29 2002 - 13:41:14 PST
Hello Ramesh,
Thank you for your close reading of the LRM text, which benefits all users
and implementers. I have provided some explanations in answer to your
question between the lines below.
I thank Ernst Christien for reviewing this note prior to publication on
eda.org.
Best Regards,
Ken Bakalar
-----Original Message-----
From: Ramesh Mayiladuthurai [mailto:rameshm@cadence.com]
Sent: Friday, January 25, 2002 10:00 AM
To: vhdl-ams@server.eda.org
Subject: Reference Terminal Clarification
Working Group,
I would like to get a clarification on the usage of "reference"
terminal of a nature.
The LRM, sec 3.5(.1) states that
"A nature defines values that may be accessed through the
attributes of a terminal. These attributes include its
compatibility with other terminals, the reference terminal of
the nature, and its across type and through type .... "
"A scalar nature definition defines a scalar nature, its
branch types, and the name of its reference terminal"
[KB] In the first paragraph the word "attribute" is used in an informal
sense. This may be confusing. I apologize for the choice of words. I offer
as an excuse the awkward circumlocutions that would be required if every
VHDL reserved word were stricken from the English in which the LRM is
necessarily expressed. Perhaps we should have adopted the convention of
making a typographical distinction between formal and colloquial uses of
reserved words and other formally defined terms. As it is, the difference
must be recognized from context.
1. There are attributes 'across and 'through that can access the
across and through types of a nature but there is none defined
that can access the "reference" terminal of a nature.
[KB] This is correct. Use the name of the reference terminal of the nature,
as declared in its simple nature definition, when you wish to refer to the
reference terminal of a nature. The attributes 'across and 'through are
useful in declaring the type of a variable or constant that must be type
compatible with a quantity of a given nature. We could see no reason for a
"'reference" attribute after the introduction of the reference terminal name
in the nature definition, and so it was stricken from the (VHDL) language
during review.
2. Does the appearence of reference terminal "name" in a nature
definition imply an implicit terminal "declaration" ? If that is
true, what would be the nature of this "reference" terminal ?
[KB]
LRM 4.8 states "A nature declaration declares a nature and defines the
across and through types of the nature. A scalar nature declaration also
declares the reference terminal of its simple nature denoted by the
identifier of its scalar nature definition."
LRM 3.5.1, which you cite, and LRM 4.8 together assert that the name in the
nature definition preceding the reserved word "reference" denotes the
reference terminal of the very nature defined by the nature definition. In
the general sense that a declaration associates a name with some object,
then yes, this is a kind of declaration. No other, separate declaration of
the reference terminal name is required. Perhaps it would have been better
if the text (LRM 3.5.1, first paragraph),
"A scalar nature definition defines a scalar nature, its branch types, and
the name of its reference terminal."
were modified to read:
"A scalar nature definition defines a scalar nature and its branch types,
and declares the name of the reference terminal which is of the nature."
...but it seems a minor point.
3. Continuing from the previous query, is it valid to declare
something like ...
---------------------------------------------------------
nature elect is volt across current through gnd reference;
terminal t1: elect;
quantity q1 across gnd to t1; -- Is this a valid declaration ?
---------------------------------------------------------
[KB] Yes.
Thanks for your help in clarifying the same.
regards,
Ramesh
This archive was generated by hypermail 2b28 : Tue Jan 29 2002 - 13:56:47 PST