RE: [sv-ac] Re: [sv-bc] 2005: Deferred assertions (new proposal at http://www.verilog.org/mantis/view.php?id=2005)

From: Warmke, Doug <doug_warmke_at_.....>
Date: Mon Oct 29 2007 - 11:32:28 PDT
Adam,

 

I've finished a proposal based on Erik's that answers your questions
about event expression.

It's undergoing internal review, and I expect to post later today.

 

BTW, my intention in proposing event expression is not what Erik
understood

and wrote in his version of the proposal.  My bad, due to not enough
detail

in my original exposition of the concept.

 

Deferred assertions are always associated with their calling process's

deferred assertion report queue.  It doesn't matter what function or

block of code they live in.

 

Concurrent assertions and deferred assertions are very different beasts

in their semantics and implementation.  Be careful about drawing too

many parallels.  Concurrent assertions require an almost synthesis-like

inferencing of context and surrounding logic.  Deferred assertions are

simpler to implement, given that they fit into the natural sequence of

procedural execution in a simulator (including knowledge of parent

process).

 

Regards,

Doug

 

 

From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] On
Behalf Of Adam Krolnik
Sent: Monday, October 29, 2007 11:22 AM
To: Seligman, Erik
Cc: sv-ac@server.eda.org; sv-bc@server.eda-stds.org
Subject: Re: [sv-ac] Re: [sv-bc] 2005: Deferred assertions (new proposal
at http://www.verilog.org/mantis/view.php?id=2005)

 


Hello all;

Can the discussion about using an event expression be expanded ? Does it
really mean that when a deferred
assertion is executed delayed from a clocked event, its checking is
suppressed ? This would seem to give a false
sense of security if logic is used a different clock domain. [ False
security since the user sees an assertion in there but
it does nothing because the wrong clock is being used.]  On the other
side, concurrent assertions would be
evaluating assertions in the wrong clock domain and report (most likely)
a failure.

What happens to the delayed assertion, inside a function, if called from
multiple processes ? Does it evaluate
and report failures correctly for each process ?  It would seem that
maybe concurrent assertions should be
supported in functions if one is going to support deferred assertions in
functions.

These 2 forms are the ones that users may confuse. 

assert @(posedge clk) (expr)                               - deferred
(sequential scope and module level scope)
assert property @(posedge clk) (property_expr) - concurrent  (sequential
scope and module level scope)

More cases and or additional examples would help clarify the operation
of deferred assertions.

     Thanks.



Seligman, Erik wrote: 

Hmmm... Someone else made a similar point in private email.

 

But isn't this already a problem in current SVA?  For example, the
following two are both legal in some contexts:

    assert (foo);

    assert property (foo);

 

I'm not sure I see how (#0 | event expr) vs. 'defer' makes a major
difference in this confusion-- the root cause is the similarity between
immediate & concurrent asserts in the language.  

 

Are other people concerned about this?  Are there suggestions for
providing this functionality but making it less confusing?

 

 

________________________________

From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] On
Behalf Of Adam Krolnik
Sent: Monday, October 29, 2007 8:56 AM
To: Seligman, Erik
Cc: sv-ac@server.eda.org; sv-bc@server.eda-stds.org
Subject: [sv-ac] Re: [sv-bc] 2005: Deferred assertions (new proposal at
http://www.verilog.org/mantis/view.php?id=2005)


Hello all;

My concern with this new syntax is that you are now very close to
concurrent assertions.

Deferred:
assert  (#0 | event_expr) ...

Concurrent
assert property ...

If you keep the ability for an event expression, then you have two
seemingly same syntax constructions.
This may cause confusion to users. 

SV-AC what do you think about this confusion between deferred and
concurrent forms ? 




-- 
    Soli Deo Gloria
    Adam Krolnik
    Director of Design Verification
    VeriSilicon Inc.
    Plano TX. 75074
    Co-author "Assertion-Based Design", "Creating Assertion-Based IP"
 
 
  


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , and is

believed to be clean. 





-- 
    Soli Deo Gloria
    Adam Krolnik
    Director of Design Verification
    VeriSilicon Inc.
    Plano TX. 75074
    Co-author "Assertion-Based Design", "Creating Assertion-Based IP"


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , 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 Mon Oct 29 11:33:20 2007

This archive was generated by hypermail 2.1.8 : Mon Oct 29 2007 - 11:33:33 PDT