ISSUE 486

Number 486
Category errata
Synopsis 12.3.3: Implicit nets are not necessarily unsigned
State etfpassed
Class errata-simple
Arrival-DateSep 22 2003
Originator "Brad Pierce" <Brad.Pierce@synopsys.com>
Release 2001b: 12.3.3
Environment
Description
According to 12.3.3, "Implicit nets shall be considered unsigned.",
but the comments in the example below it (and common sense) contradict
that.

input signed [7:0] d; // no explicit net declaration -- net is signed

And I don't know what this sentence means --

"Nets connected to ports without and explicit net declaration shall
be considered unsigned, unless the port is declared as signed."

Why would it effect the signedness of nets to be connected to a port?

-- Brad


Fix
In 12.3.3, REPLACE

Implicit nets shall be considered unsigned. Nets connected to ports without an explicit net declaration shall
be considered unsigned, unless the port is declared as signed.

WITH

Nets connected to ports without an explicit net declaration shall be considered unsigned, unless the port is declared as signed. Other implicit nets (see 3.5) shall be considered unsigned.


and REPLACE

input [7:0] a; // no explicit declaration - net is unsigned

WITH

input [7:0] a; // no explicit net declaration - net is unsigned


and REPLACE

output [7:0] e; // no explicit declaration - net is unsigned

WITH

output [7:0] e; // no explicit net declaration - net is unsigned

Audit-Trail
From: Steven Sharp <sharp@cadence.com>
To: etf-bugs@boyd.com, Brad.Pierce@synopsys.com
Cc:
Subject: Re: errata/486: 12.3.3: Implicit nets are not necessarily unsigned
Date: Mon, 22 Sep 2003 15:27:52 -0400 (EDT)

>According to 12.3.3, "Implicit nets shall be considered unsigned.",
>but the comments in the example below it (and common sense) contradict
>that.

>And I don't know what this sentence means --
>
> "Nets connected to ports without and explicit net declaration shall
> be considered unsigned, unless the port is declared as signed."

Presumably it is talking about a net that was only declared as a port.
Of course, that is an implicit net, which it just said was always unsigned.

My guess is that it is distinguishing the case of an implicit net that
is created by a port declaration without an explicit net declaration
(which gets the signedness of the port declaration), from an implicit
net that is created by use in an instance port expression or LHS of a
continuous assignment (which is always a scalar, and presumably unsigned).

Note that the first case of implicit nets was not actually mentioned in
the 1995 standard, but was documented in the 2001 standard. Perhaps this
text in 12.3.3 was written before this was changed, so that the term
"implicit net" didn't include ports without explicit net declarations yet.

Assuming this was the intent, I would suggest reversing these two sentences
and adding the word "other", as follows:

"Nets connected to ports without an explicit net declaration shall be
considered unsigned, unless the port is declared as signed. Other implicit
nets shall be considered unsigned."

Steven Sharp
sharp@cadence.com


From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: Steven Sharp <sharp@cadence.com>
Cc: etf-bugs@boyd.com
Subject: Re: errata/486: 12.3.3: Implicit nets are not necessarily unsigned
Date: Tue, 23 Sep 2003 17:23:56 +0300

The origin of this paragraph can be found in

http://boydtechinc.com/btf/archive/btf_1998/0059.html and
http://boydtechinc.com/btf/archive/btf_1998/0060.html

I agree with your suggested change.

I would also suggest adding a reference to 3.5 (implicit net declarations),
and in the example following this paragraph, change the comments on
"a" and "e" from
"no explicit declaration" to
"no explicit net declaration".

Shalom


Steven Sharp wrote:

> >According to 12.3.3, "Implicit nets shall be considered unsigned.",
> >but the comments in the example below it (and common sense) contradict
> >that.
>
> >And I don't know what this sentence means --
> >
> > "Nets connected to ports without an explicit net declaration shall
> > be considered unsigned, unless the port is declared as signed."
>
> Presumably it is talking about a net that was only declared as a port.
> Of course, that is an implicit net, which it just said was always unsigned.
>
> My guess is that it is distinguishing the case of an implicit net that
> is created by a port declaration without an explicit net declaration
> (which gets the signedness of the port declaration), from an implicit
> net that is created by use in an instance port expression or LHS of a
> continuous assignment (which is always a scalar, and presumably unsigned).
>
> Note that the first case of implicit nets was not actually mentioned in
> the 1995 standard, but was documented in the 2001 standard. Perhaps this
> text in 12.3.3 was written before this was changed, so that the term
> "implicit net" didn't include ports without explicit net declarations yet.
>
> Assuming this was the intent, I would suggest reversing these two sentences
> and adding the word "other", as follows:
>
> "Nets connected to ports without an explicit net declaration shall be
> considered unsigned, unless the port is declared as signed. Other implicit
> nets shall be considered unsigned."

--
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




Fix replaced by brad.pierce@synopsys.com on Sat Feb 5 12:45:25 2005
In 12.3.3, REPLACE

Implicit nets shall be considered unsigned. Nets connected to ports without an explicit net declaration shall
be considered unsigned, unless the port is declared as signed.

WITH

Nets connected to ports without an explicit net declaration shall be considered unsigned, unless the port is declared as signed. Other implicit nets (see 3.5) shall be considered unsigned.


and REPLACE

input [7:0] a; // no explicit declaration - net is unsigned

WITH

input [7:0] a; // no explicit net declaration - net is unsigned


and REPLACE

output [7:0] e; // no explicit declaration - net is unsigned

WITH

output [7:0] e; // no explicit net declaration - net is unsigned



Unformatted

Hosted by Boyd Technology