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