Number | 486
|
Category | errata
|
Synopsis | 12.3.3: Implicit nets are not necessarily unsigned
|
State | etfpassed
|
Class | errata-simple
|
Arrival-Date | Sep 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