Number | 619
|
Notify-List |
|
Category | errata
|
Synopsis | What is the width of a range with z and x's in the bounds?
|
State | etfpassed
|
Class | errata-discuss
|
Arrival-Date | Aug 12 2004
|
Originator | Francoise Martinolle
|
Release |
|
Environment |
|
Description |
The Verilog LRM does not specify what happens if an data declaration uses a range which left and or right bound has x or z bits. example: reg [7:1'bz] r; parameter [2'bxz: 8] p = 33; function [7:1'bx] set; wire [4:1'bz] w; Verilog xl accepts all of the above and apparently ignores the x or z bits. In the above the register has a width [7:0] I suppose that we should describe this behaviour in the LRM? |
Fix |
In 3.3.1, REPLACE "The msb and lsb constant expressions may be any integer value -- positive, negative or zero." WITH "The msb and lsb constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." In 3.9, REPLACE "The value of the constant expression can be a positive integer, a negative integer or zero." WITH "The constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." |
Audit-Trail |
From: Shalom.Bresticker@freescale.com To: fm@cadence.com Cc: etf-bugs@boyd.com Subject: Re: errata/619: what is the width of a range with z and x's in the bounds Date: Fri, 13 Aug 2004 06:21:29 +0300 (IDT) In the 1364-2005 draft, we added language to say that the range values have to be integral values. We added that in order to exclude real values. I would say that excludes x and z values as well, making such declarations simply illegal. Any implementation accepting such a declaration does so on its own responsibility. Shalom From: Francoise Martinolle <fm@cadence.com> To: Shalom.Bresticker@freescale.com, fm@cadence.com Cc: etf-bugs@boyd.com Subject: Re: errata/619: what is the width of a range with z and x's in the bounds Date: Fri, 13 Aug 2004 09:37:00 -0400 When we added " integral values", we wanted to exclude real values and I don't know if we actually thought about ranges using z and x's at that time. Yes the language excludes it with this latest addition,and it could be a logical thing to exclude z and x in the ranges, but my concern is if there is any user code which expects these ranges to work? I think that someone may not use directly x and z in the ranges but may have use them indirectly if the range bounds are specified via parameters. Francoise ' did we really think that it would exclue At 06:21 AM 8/13/2004 +0300, Shalom.Bresticker@freescale.com wrote: >In the 1364-2005 draft, we added language to say that the range values have >to be integral values. We added that in order to exclude real values. >I would say that excludes x and z values as well, making such declarations >simply illegal. Any implementation accepting such a declaration does so on >its own responsibility. > >Shalom From: Steven Sharp <sharp@cadence.com> To: etf-bugs@boyd.com, Shalom.Bresticker@freescale.com Cc: Subject: Re: errata/619: what is the width of a range with z and x's in the bounds Date: Fri, 13 Aug 2004 13:50:13 -0400 (EDT) > In the 1364-2005 draft, we added language to say that the range values have > to be integral values. We added that in order to exclude real values. > I would say that excludes x and z values as well, making such declarations > simply illegal. Any implementation accepting such a declaration does so on > its own responsibility. The term "integer value" does not clearly exclude x and z values. The term "integer" is used many places in the LRM where x and z values are included. For example, section 2.5.1 on integer constants clearly includes constants containing x and z values. The description of integer division includes values that contain x. The description of part selects states that the base expression shall be a positive constant integer expression, and then later describes the behavior when it is x or z. The description of array addressing is similar. Steven Sharp sharp@cadence.com From: Shalom.Bresticker@freescale.com To: Francoise Martinolle <fm@cadence.com> Cc: etf-bugs@boyd.com Subject: Re: errata/619: what is the width of a range with z and x's in the bounds Date: Sat, 14 Aug 2004 21:26:03 +0300 (IDT) It would be very strange if a parameter had an x or z value. It would be even stranger if there was an x or z value in a range and some actually expected it to work. Shalom > When we added " integral values", we wanted to exclude real values and I > don't know if we actually thought about ranges using z and x's at that time. > Yes the language excludes it with this latest addition,and it could be a > logical thing to exclude z and x in the ranges, but my concern is if there > is any user code which expects these ranges to work? > I think that someone may not use directly x and z in the ranges but may > have use them indirectly if the range bounds are specified via parameters. Analyzed by bineet.srivastava@st.com on Thu Sep 9 04:55:52 2004 As per LRM 1364-2001 of Verilog HDL in module declaration module same_input (a,a); input a; // This is legal. The inputs are ored together. If u use the same kind of construct & simulate with VCS it doesn't reflect the 'or'ing of inputs inputs output 0 0 0 1 1 1 0 1 x 1 x x 0 x x 1 0 x any comments....... Analyzed by bineet.srivastava@st.com on Thu Sep 9 04:56:19 2004 As per LRM 1364-2001 of Verilog HDL in module declaration module same_input (a,a); input a; // This is legal. The inputs are ored together. If u use the same kind of construct & simulate with VCS it doesn't reflect the 'or'ing of inputs inputs output 0 0 0 1 1 1 0 1 x 1 x x 0 x x 1 0 x any comments....... Fix replaced by etf@boyd.com;bineet.srivastava@st.com on Mon Oct 4 04:39:11 2004 Hi, In section 10.3.5 Use of constant functions (IEEE P1364-2005/D3, 5/6/04) 1) Any function invoked within a constant function shall be a constant function local to the current module. 2)* They shall not themselves use constant functions in any context requiring a constant expression. Point 2) needs to be explained , seems like contradicting 1) point. As suggestion, may be rephrased as They shall not themselves use constant functions in context of port/variable/net declaration requiring constant expression. Any comments?? regards bineet Fix replaced by Shalom.Bresticker@freescale.com on Mon Oct 18 08:05:52 2004 This issue was accidentally overwritten. I return it to its orginal subject. There is no proposal currently. Fix replaced by Shalom.Bresticker@freescale.com on Mon Oct 18 08:24:03 2004 This issue was accidentally overwritten. I try to return it to its orginal subject. There is no proposal currently. Fix replaced by brad.pierce@synopsys.com on Sat Feb 5 20:00:11 2005 In 3.3.1, REPLACE "The msb and lsb constant expressions may be any integer value -- positive, negative or zero." WITH "The msb and lsb constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown or high-impedance bits." From: Shalom.Bresticker@freescale.com To: brad.pierce@synopsys.com Cc: etf-bugs@boyd.com Subject: Re: errata/619: PROPOSAL - What is the width of a range with z and x's in the bounds? Date: Sun, 6 Feb 2005 14:03:49 +0200 (IST) This is OK, but a similar change should be made in 3.9 ("Arrays") as well. > In 3.3.1, REPLACE > > "The msb and lsb constant expressions may be any integer value -- positive, negative or zero." > > WITH > > "The msb and lsb constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown or high-impedance bits." Fix replaced by brad.pierce@synopsys.com on Sun Feb 6 21:44:38 2005 In 3.3.1, REPLACE "The msb and lsb constant expressions may be any integer value -- positive, negative or zero." WITH "The msb and lsb constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." In 3.9, REPLACE "The value of the constant expression can be a positive integer, a negative integer or zero." WITH "The value of the constant expression can be a positive integer, a negative integer or zero. It shall be illegal for it to contain any unknown (x) or high-impedance bits." From: Shalom Bresticker <Shalom.Bresticker@freescale.com> To: brad.pierce@synopsys.com Cc: etf-bugs@boyd.com Subject: Re: errata/619: PROPOSAL - What is the width of a range with z and x's in the bounds? Date: Mon, 07 Feb 2005 09:38:03 +0200 Friendly amendment proposal: As long as we are already touching this text, let us make the language of 3.9 similar to that of 3.3.1. Specifically, I propose: In 3.9, REPLACE "The value of the constant expression can be a positive integer, a negative integer or zero." WITH "The constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." Shalom brad.pierce@synopsys.com wrote: > In 3.3.1, REPLACE > > "The msb and lsb constant expressions may be any integer value -- positive, negative or zero." > > WITH > > "The msb and lsb constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." > > In 3.9, REPLACE > > "The value of the constant expression can be a positive integer, a negative integer or zero." > > WITH > > "The value of the constant expression can be a positive integer, a negative integer or zero. It shall be illegal for it to contain any unknown (x) or high-impedance bits." > > > http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&database=default&pr=619 -- Shalom Bresticker Shalom.Bresticker @freescale.com Design & Verification Methodology Tel: +972 9 9522268 Freescale Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 5441478 [ ]Freescale Internal Use Only [ ]Freescale Confidential Proprietary Fix replaced by brad.pierce@synopsys.com on Mon Feb 7 06:17:04 2005 In 3.3.1, REPLACE "The msb and lsb constant expressions may be any integer value -- positive, negative or zero." WITH "The msb and lsb constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." In 3.9, REPLACE "The value of the constant expression can be a positive integer, a negative integer or zero." WITH "The constant expressions may be any integer values -- positive, negative or zero. It shall be illegal for them to contain any unknown (x) or high-impedance bits." |
Unformatted |
? |
Hosted by Boyd Technology