Hi Ed: 'b0 is another possibility. I am trying to understand the technical distinction, if any, from the different choices. Is it possible for "expression" to have no bits at all in if (expression != 'b0) If so, what does the inequality comparison mean? J.H. > X-MimeOLE: Produced By Microsoft Exchange V6.5 > Content-class: urn:content-classes:message > Date: Thu, 1 Nov 2007 09:18:01 -0700 > Thread-Topic: [sv-ac] Re: [sv-bc] Re: if-else > thread-index: Acgcoi150OVUrIY6TjSJCBnw3Fw2gAAAJKmg > From: "Eduard Cerny" <Eduard.Cerny@synopsys.com> > Cc: <sv-ac@eda.org>, <sv-bc@eda.org> > X-OriginalArrivalTime: 01 Nov 2007 16:18:02.0861 (UTC) FILETIME=[C6F9F9D0:01C81CA2] > > I thought we would use 'b0? > ed=20 > > > -----Original Message----- > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On=20 > > Behalf Of John Havlicek > > Sent: Thursday, November 01, 2007 12:13 PM > > To: sharp@cadence.com > > Cc: sharp@cadence.com; john.havlicek@freescale.com;=20 > > sv-ac@eda.org; sv-bc@eda.org > > Subject: [sv-ac] Re: [sv-bc] Re: if-else > >=20 > > Hi Steven: > >=20 > > Thanks for your clarification. > >=20 > > The only other issues that are nagging me involve stuff that > > I guess is near the boundary of the realm of what is useful. =20 > > For example: > >=20 > > - In "expresson !=3D 0", the constant 0 is signed 32-bit. Are there > > any cases in which we should use 1'b0 instead of 0? > >=20 > > - Are there any cases where "expression" has no bit at all? If so, > > is sign-extension defined? I am worried about void members of=20 > > tagged unions and similar things. Perhaps a tagged union with=20 > > only one member and such that the one member is void type. > >=20 > >=20 > > J.H. > >=20 > > > Date: Thu, 1 Nov 2007 10:51:06 -0400 (EDT) > > > From: Steven Sharp <sharp@cadence.com> > > > Reply-To: Steven Sharp <sharp@cadence.com> > > > Cc: sv-ac@eda.org, sv-bc@eda.org > > > Content-MD5: ogJLgUzqnuP7SOfkNcmc3A=3D=3D > > > X-Received: By mx-sanjose.cadence.com as lA1EpoHs026736 at=20 > > Thu Nov 1 07:51:50 2007 > > > X-OriginalArrivalTime: 01 Nov 2007 14:55:02.0620 (UTC)=20 > > FILETIME=3D[2E8581C0:01C81C97] > > >=20 > > > John, > > >=20 > > > As you have noted, > > >=20 > > > if (expression) > > > =09 > > > is equivalent to > > >=20 > > > if (expression !=3D 0) > > >=20 > > > The problem is then that the results of the equality=20 > > operator are not > > > clearly specified when unknowns are involved. The correct answer is > > > that (value1 !=3D value2) is equivalent to (|(value1 ^=20 > > value2)). So for > > > (expression !=3D 0), that is equivalent to (|expression), as you = > have > > > suggested. > > >=20 > > > This definition makes sense. If any of the bits are 1,=20 > > then the value > > > is definitely not equal to zero, no matter what any unknown=20 > > bits are. > > > If all of the bits are 0, then the value is definitely=20 > > equal to zero. > > > If the bits are a mixture of 0 and X/Z, then it is unknown=20 > > whether the > > > value is equal to zero. It depends on the value of the=20 > > unknown bits. > > >=20 > > > After that, there is the issue of how if-else deals with an unknown > > > condition. It rather arbitrarily treats an unknown=20 > > condition as false. > > > Jonathan's suggestion of a cast to "bit" has this same effect. This > > > treatment can cause simulation to produce optimistic=20 > > results, which is > > > undesirable, but that is how it works. > > > =09 > > > Steven Sharp > > > sharp@cadence.com > > >=20 > >=20 > > --=20 > > This message has been scanned for viruses and > > dangerous content by MailScanner, and is > > believed to be clean. > >=20 > >=20 -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Thu Nov 1 10:44:24 2007
This archive was generated by hypermail 2.1.8 : Thu Nov 01 2007 - 10:44:53 PDT