ISSUE 79

Number 79
Category errata
Synopsis Section 3.5 Implicit declarations wrong or misleading
State lrmdraft
Class errata-simple
Arrival-DateJul 25 2002
Originator sharp@cadence.com
Release 2001b, 3.5
Environment

Description
In section 3.5, it is stated that

"...an implicit net of default net type shall be assumed
in the following circumstances:

If an identifier is used in a port expression declaration,
then an implicit net of type wire shall be assumed..."

This is incorrect. An implicit net of the default net type
should be assumed, as is stated above it. Note that the
second circumstance does say "net of default net type".
Fix
Section 3.5, first bullet:
Change "implicit net of type wire" to "implicit net of
default net type".

Audit-Trail

From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: sharp@cadence.com
Cc: etf-bugs@boyd.com
Subject: Re: errata/79: Section 3.5 Implicit declarations wrong or misleading
Date: Mon, 29 Jul 2002 10:08:22 +0300

Yes, I mentioned this in the attached mail, below, but it was not
corrected.

Shalom


sharp@cadence.com wrote:

> In section 3.5, it is stated that
>
> "...an implicit net of default net type shall be assumed
> in the following circumstances:
>
> If an identifier is used in a port expression declaration,
> then an implicit net of type wire shall be assumed..."
>
> This is incorrect. An implicit net of the default net type
> should be assumed, as is stated above it. Note that the
> second circumstance does say "net of default net type".

Subject:
Re: BE55
Date:
Thu, 21 Oct 1999 14:20:56 +0200
From:
"Shalom Bresticker (r50386)" <r50386@email.sps.mot.com>
Internal
Organization:
Motorola Semiconductor Israel, Ltd.
To:
Anders Nordstrom <andersn@nortelnetworks.com>, btf@boyd.com
References:
1




Anders Nordstrom wrote:

BE55 - This one doesn't seem to be implemented at all....
Replace the first paragraph in section 3.5 on page 21 with:

The syntax shown in Section 3.2 shall be used to declare nets and
registers explicitly. In the absence of an
explicit declaration,
an implicit net of default net type shall be assumed in the
following circumstances:


The concept of "default net type" has not yet been defined at this
point.
I suggest to delete "of default net type" here. The net type is defined
below.


- If an identifier is used in a port expression declaration, then an
implicit net of type wire shall be assumed,
with the vector width of
the port expression declaration. See Section 12.3.2 for a discussion
of port expression declarations.


Question: implicit net of type wire or of default net type ?
The wording of 12.3.2, below, says that default net type is used.
I suggest to delete "of type wire" here. The net type is defined below.



- If an identifier is used in the terminal list of a primitive
instance or a module instance, and that identifier
has not been
explicitly declared previously in one of the declaration statements
of the instantiating module, then an
implicit scalar net of
default net type shall be assumed.


Similarly, delete "of default net type" here. The net type is defined
immediately below.
Also need to add case of LHS of continuous assignment.

The second paragraph of 3.5 is confusing. It says:

"These implicitly declared nets shall be treated as scalar nets of type
wire. See Section 19 for a discussion of
control of the type for implicitly declared nets with the
`default_nettype compiler directive."

These two sentences seems to contradict each other. Better is as
written below:

The implicit net data type shall be wire, unless another default type
has been directed.
See Section 19.2 for a discussion of control of the type for implicitly
declared nets using the `default_nettype compiler directive.

Note that in contrast to what is currently written in 3.5, implicit nets
are not necessarily scalars.
That is, in the case of port expressions, they take the width of the
port expression.


In section 12.3.2 on page 174. Chage the sentence "A port can be
declared in both a port declaration and a
net or register declaration.
If a port is declared as a vector, the range specification
between the two declarations of a port shall be
identical. " to:

A port_expression which is an identifier can be declared in both a
port declaration and a net or register
declaration. A net or register
declaration establishes the data type of the
internal net or register connected to the port. If no net or
register declaration is made for the port_expression
identifier,
then a default data type is assumed.

An explicit net or register declaration for an identifier which is
also used in a port_expression declares the
specific data type
and vector size of the port_expression. If the vector
range of a data type declaration differs from the vector range of a
port_expression declaration for the same
identifier,
the declaration of the net or register shall be used.

If there is no explicit net or register declaration for an
identifier used in a port_expression declaration, then
an implicit net shall be assumed,
with the vector width of the port_expression declaration. The
implicit net data type shall be wire, unless
another default type has been directed.
See Section 19.2 for a discussion of control of the type for
implicitly
declared nets using the `default_nettype compiler directive. This
implicit net type shall be used for the
internal net type when the rules
for connecting dissimilar ports are applied.
These rules are discussed in Section 12.3.6 and Section 12.3.8.

This can be shortened as follows, I think:

A port_expression which is an identifier can be declared in both a port
declaration and a net or register
declaration.

A net or register declaration establishes the data type and vector range
of the port_expression.
If the vector range of a data type declaration differs from the vector
range of a port_expression declaration for the
same identifier,
the declaration of the net or register shall be used.

If no net or register declaration is made for the port_expression
identifier, then a default data type is assumed, as
described in Section 3.5.
This implicit net type shall be used for the internal net type when the
rules for connecting dissimilar ports are
applied.
These rules are discussed in Section 12.3.6 and Section 12.3.8.

--

************************************************************************

Shalom Bresticker email: shalom@msil.sps.mot.com
Motorola Semiconductor Israel, Ltd. Tel #: +972 9 9522268
P.O.B. 2208, Herzlia 46120, ISRAEL Fax #: +972 9 9522444
http://www.motorola-semi.co.il/
************************************************************************






--
Shalom Bresticker Shalom.Bresticker@motorola.com
Design & Reuse Methodology Tel: +972 9 9522268
Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478

"The devil is in the details."



Unformatted


Hosted by Boyd Technology