RE: [sv-ac] Enhancements submitted

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Tue Oct 24 2006 - 14:24:52 PDT
Comparisons between type references don't use equivalence, but matching
--

   "Two type references shall be considered equal in such comparisons
if, and only if, the types to which they refer match (see 6.9.1)."

-- Brad

-----Original Message-----
From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
Sent: Tuesday, October 24, 2006 12:08 PM
To: Korchemny, Dmitry; Brad Pierce; sv-ac@eda-stds.org
Subject: RE: [sv-ac] Enhancements submitted

Dmitry,

Type equality rules use equivalence, not strict matching; so type(q)
could be equivalent to both a property and a Boolean.

Dave




> -----Original Message-----
> From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org]
On
> Behalf Of Korchemny, Dmitry
> Sent: Tuesday, October 24, 2006 10:40 AM
> To: Rich, Dave; Brad Pierce; sv-ac@server.eda-stds.org
> Subject: RE: [sv-ac] Enhancements submitted
> 
> Hi Dave,
> 
> Unfortunately we cannot. Consider the example from #1646
> 
> property weak_until ( property p , property q ) ;
> 	generate if ( $isboolean ( q ) )
> 		! q [ *1 : $ ] |-> p ;
> 	else
> 		q or ( p and ( 1 ' b1 j=> weak_until ( p , q ) ) ) ;
> 	endgenerate
> endproperty
> 
> If we query the type of q, we'll get 'property'. We need to know
whether
> this is a combinatorial property, i.e., actually a Boolean value. If
it
> is - then a more efficient implementation is possible, as shown in
this
> example.
> 
> I.e., I need to know not the actual type of an argument, but the
ability
> to reduce the actual argument type to a simpler type: sequence to 
> Boolean and property to sequence or to Boolean.
> 
> These query functions I suggest, are useful in properties only in 
> conjunction with the generate constructs, therefore I had to introduce

> these two enhancements simultaneously.
> 
> Thanks,
> Dmitry
> 
> P.S. The example I talked was missing from the initial version of the 
> file attached to #1646, but now I've uploaded the right version.
> 
> -----Original Message-----
> From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org]
On
> Behalf Of Rich, Dave
> Sent: Tuesday, October 24, 2006 7:02 PM
> To: Brad Pierce; sv-ac@server.eda-stds.org
> Subject: RE: [sv-ac] Enhancements submitted
> 
> SV already allows expressions like
> 
> (type(expr) == real)
> 
> These are evaluated at elaboration time and do not evaluate their 
> operands other than to determine their type.
> 
> Couldn't we do
> 
> (type(expr) == sequence)
> 
> 
> 
> > -----Original Message-----
> > From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org]
> On
> > Behalf Of Brad Pierce
> > Sent: Tuesday, October 24, 2006 9:26 AM
> > To: sv-ac@server.eda-stds.org
> > Subject: Re: [sv-ac] Enhacements submitted
> >
> > Dmitry,
> >
> > Regarding the type query functions of 1647, a few questions --
> >
> >    1)  "is a Boolean expression, i.e., it may be used as a condition
> of
> > a procedural if statement"  But any packed vector could be used as
> such
> > a condition.
> >
> >    2)  Why can't these also be called on a data_type?
> >
> >    3)  Why only these few?  Why not, for example, $issigned, as 
> > discussed in
> >
> >           http://www.eda-stds.org/sv-bc/hm/4866.html
> >
> >        or $isstring, $isreal, etc.
> >
> >    4)  What are the return types?
> >
> >    5)  Do these functions evaluate their arguments?
> >
> >    6)  Can they be called in a constant expression?
> >
> > -- Brad
> >
> >
> > ________________________________
> >
> > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of 
> > Korchemny, Dmitry
> > Sent: Tuesday, October 24, 2006 8:14 AM
> > To: sv-ac@eda-stds.org
> > Subject: [sv-ac] Enhacements submitted
> >
> >
> >
> > Hi all,
> >
> >
> >
> > I submitted three detailed proposals following my presentations:
> >
> >
> >
> > 1646 - Generate constructs within properties and sequences
> >
> > 1647 - Type query functions
> >
> > 1648 - Default reset for assertions
> >
> >
> >
> > Thanks,
> >
> > Dmitry
> >
Received on Tue Oct 24 14:25:03 2006

This archive was generated by hypermail 2.1.8 : Tue Oct 24 2006 - 14:25:16 PDT