Re: [sv-ac] if..else and 4-state conditions

From: John Havlicek <john.havlicek_at_.....>
Date: Wed May 02 2007 - 09:37:13 PDT
Hi Doug:

Our objective is to find a way to describe the relevant 
enabling conditions in terms of existing SystemVerilog
operators.  This is because we want to define the enabling
condition as a rewrite.  

The first criterion is that the semantics of the rewritten
condition be correct (i.e., aligned with Verilog 4-state
if..else and case selection semantics).

We had a simpler rewrite for the enabling condition of 
the "else" in "if (b) .. else ..", namely "!b", but this
rewrite has the wrong 4-state semantics.

Do you have a simpler representation in mind?

J.H.

> 
> Hi All,
> 
> Personally I find these expressions clever, but they will be
> considered "obfuscated" by most readers.  I suggest we strive
> for something obviously correct at first sight to all readers,
> not just experts.
> 
> Thanks,
> Doug
> 
> > -----Original Message-----
> > From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org]
> On Behalf Of Brad Pierce
> > Sent: Wednesday, May 02, 2007 7:29 AM
> > To: sv-ac@server.eda-stds.org
> > Subject: Re: [sv-ac] if..else and 4-state conditions
> > 
> > >what is the meaning of
> > >   1'b0 inside {1'bx}
> > 
> > It's 1'b1.
> > 
> > The following are the same --
> > 
> >        1'b0 inside {b!=0}
> >        1'b0 ==? (b!=0)
> > 
> > The ==? propagates unknowns from the left, but treats unknowns on the
> > right as optimistic don't-care wildcards
> > 
> >                           RIGHT
> >                          0 1 x z
> > 
> >                  L  0    1 0 1 1
> >                  E  1    0 1 1 1
> >                  F  x    x x 1 1
> >                  T  z    x x 1 1
> > 
> > -- Brad
> > 
> > -----Original Message-----
> > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of
> > Jonathan Bromley
> > Sent: Wednesday, May 02, 2007 5:01 AM
> > To: sv-ac@eda-stds.org
> > Subject: RE: [sv-ac] if..else and 4-state conditions
> > 
> > Apologies, I mistakenly sent this response to Brad Pierce instead of
> > sv-ac at first.
> > 
> > ~~~~~~~~~~~~~~~~~
> > 
> > > A simpler way to write that condition is
> > >
> > >    1'b0 inside {b!=0}
> > 
> > Urrrm, what is the meaning of
> >    1'b0 inside {1'bx}
> > ?
> > 
> > Actually, my original suggestion was (almost)
> > 
> >   (b!=0) !== 1'b1   // originally I forgot the 1'b size
> > 
> > which seems to me to be simpler still; but I
> > (willingly) conceded that !bit'(b!=0) was neater.
> > 
> > Surely the point here is that we need two expressions that are
> > guaranteed to be (a) 2-state, (b) complements; both
> >   bit'() , !bit'()
> > and
> >   ===1'b1 , !==1'b1
> > fit the requirements in a rather obvious way.
> > --
> > Jonathan Bromley, Consultant
> > 
> > DOULOS - Developing Design Know-how
> > VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services
> > 
> > Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24
> > 1AW, UK
> > Tel: +44 (0)1425 471223                   Email:
> > jonathan.bromley@doulos.com
> > Fax: +44 (0)1425 471573                           Web:
> > http://www.doulos.com
> > 
> > The contents of this message may contain personal views which are not
> > the views of Doulos Ltd., unless specifically stated.
> > 
> > --
> > This message has been scanned for viruses and dangerous content by
> > MailScanner, and is believed to be clean.
> > 
> > 
> > 
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> > 
> 
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
> 
> 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed May 2 09:37:40 2007

This archive was generated by hypermail 2.1.8 : Wed May 02 2007 - 09:37:55 PDT