Subject: RE: [sv-ac] FW: ASWG Final Status
From: Jay Lawrence (lawrence@cadence.com)
Date: Fri Mar 21 2003 - 17:21:09 PST
Adam,
I've sent a much more detailed document to the members of the syntax
working group (and Faisal). We've held a bunch of meetings in a very
short time so I've asked them to quickly review it. It answers many of
the questions below. I'll leave it up to Faisal to determine if he wants
to give it to the sv-ac now or early next week. I think the more
feedback sooner the better.
I've briefly answered some of the questions below.
Jay
===================================
Jay Lawrence
Architect - Functional Verification
Cadence Design Systems, Inc.
(978) 262-6294
lawrence@cadence.com
===================================
> -----Original Message-----
> From: Adam Krolnik [mailto:krolnik@lsil.com]
> Sent: Friday, March 21, 2003 6:31 PM
> To: Faisal Haque
> Cc: sv-ac@eda.org
> Subject: Re: [sv-ac] FW: ASWG Final Status
>
>
>
>
>
> Hi All;
>
> An interesting read indeed.
>
>
> Item 1 ## - Sigh
>
We had a bunch of debate on ',', ';', '##', '; ##', ....
At the end we voted and this is what ended up.
>
> Items 7 and 11, sequential implication and suffix implication
> are ambiguously
> named. Is one of these the overlapping implication and one
> a nonoverlapping
> implication? Or is one boolean and the other sequence?
>
> What is the syntax of the nonoverlapping and overlapping versions?
The term "suffix implication" was meant to imply that it occurs after so
it is the non-overlapped version. There is no distinction on boolean vs
sequence because implication has been moved to the property layer by the
sv-ac, boolean is equivalent to a sequence_phrase of length 1.
>
> Item 18 lists a new operation defined for next_event -- $first_occur
>
> Do we need two ways to express this?
> $first_occur( sequence)
> sequence [*= 1]
>
One of these should probably go, my opinion would be $first_occur should
disappear.
>
>
> Item 21 and 22 So I guess the sequence just sits inside this block
>
> sequence s()
> (a; b; c; d; e; f; g);
> endsequence
>
> Hmmm, a little heavy...
Yes, but the external () are not necessary. They also can be defined
directly in a property if you are not going to reuse the sequence;
property P;
disable iff (!reset) a ##1 b ##1 c ##1 d;
endproperty
>
> Item 23 - Immediate assertion is not ambiguous with
> concurrent assertion.
>
> How does this work? How do I know if I say assert (b|c) if
> its immediate or
> gets the default clock?
(b|c) is an expression therefore it is immediate. To get it to be
concurrent you would say
property P
b | c;
endproperty
Then down in your procedural code.
assert(P);
>
> Item 24 - There is no discussion about always/initial and
> where they occur in
> a declarative vs. procedural assertion.
All declarative assertions have the "always" semantic. To get an initial
you put it in an initial block. It looks exactly the same as it used to.
initial assert(P);
>
> Item 25 - There must be some missing text, it says "See
> below" but there is nothing
> more. I presume there is a paragraph or two about templates.
>
The more detailed writeup I sent the ASWG has a template example and a
bunch of detail on variable declaration.
>
>
> Thanks for the work on this!
>
> Adam Krolnik
> Verification Mgr.
> LSI Logic Corp.
> Plano TX. 75074
>
>
>
This archive was generated by hypermail 2b28 : Fri Mar 21 2003 - 17:21:51 PST