RE: [sv-ac] event triggered in concurent assertion

From: danielm <danielm_at_.....>
Date: Mon Mar 17 2008 - 07:17:11 PDT
Here we have situation :
event - forbidden in concurecnt assertion - has no value
event.triggered - allowed.
 
There is similar situation for :
string - forbidden in concurent assertion ????
string.len - should be allowed????
string.getc - should be allowed????
class_handle - forbidden in concurent assertion ???
class_handle.method - should be allowed????
 
The only condition for such methods calls in concurent assertion should be
that the method is const, but SV unfortunatelly do not define contant
methods.
 
 
DANiel

  _____  

From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com] 
Sent: Monday, March 17, 2008 2:35 PM
To: danielm; Lisa Piper; Eduard Cerny; sv-ac@eda-stds.org
Subject: RE: [sv-ac] event triggered in concurent assertion



I see. e.triggered is a boolean that is true from the time the event is
triggered till the end of the time step. So in principle I do not see a
problem, except that since all  variables are sampled, you would see the
e.triggered as true only in the subsequent time step and only there. So,
catching it in a concurrent assertion becomes a little tricky. It is
probably better to transform it in an always block into something more
persistent first.

 

ed

 

 

From: danielm [mailto:danielm@aldec.com.pl] 
Sent: Monday, March 17, 2008 9:26 AM
To: 'Lisa Piper'; 'Eduard Cerny'; sv-ac@eda-stds.org
Subject: RE: [sv-ac] event triggered in concurent assertion

 

I think that here we have a misunderstanding - my question was about event
triggered poperty (not the sequence one). You cannot use ended on event. So
i'm repeating the question:

 

LRM specifies that using event in concurent assertion is forbidden - but how
about using triggered property? LRM do not precise that.

 

module top;

    bit precond;

    event e;

    assert property (@(posedge clk) precond |-> e.triggered);

endmodule

 

DANiel

 

  _____  

From: Lisa Piper [mailto:piper@cadence.com] 
Sent: Monday, March 17, 2008 1:35 PM
To: Eduard Cerny; danielm; sv-ac@eda-stds.org
Subject: RE: [sv-ac] event triggered in concurent assertion

Hi Ed,

 

Is there a reason you cannot use e.triggered in a concurrent assertion
versus e.ended?  I thought you could use e.triggered anywhere you can us
e.ended?

 

Lisa

 

  _____  

From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of Eduard
Cerny
Sent: Monday, March 17, 2008 7:41 AM
To: danielm; sv-ac@eda-stds.org
Subject: RE: [sv-ac] event triggered in concurent assertion

 

Daniel, in this case e.ended is allowed. .triggered is to be used outside
assertion or in disable iff.

Regards,

ed

 

 

From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of danielm
Sent: Monday, March 17, 2008 5:26 AM
To: sv-ac@eda-stds.org
Subject: [sv-ac] event triggered in concurent assertion

 

LRM specifies that using event in concurent assertion is forbidden - but how
about using triggered property? LRM do not precise that.

 

module top;

    bit precond;

    event e;

    assert property (@(posedge clk) precond |-> e.triggered);

endmodule

 

 

 

DANiel


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


-- 
This message has been scanned for viruses and 
dangerous content by  <http://www.mailscanner.info/> 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 Mon Mar 17 07:26:45 2008

This archive was generated by hypermail 2.1.8 : Mon Mar 17 2008 - 07:29:21 PDT