SVA Issue

Hey,

I have the following scenario:

scenario image

One valid transaction is considered when VALID & RDY are both high.
Specification states that EOL must be 1 valid transaction wide.
That is, the fall of EOL can only occur when VALID & RDY are both high.
How can I write an assertion for it?
I was able to solve it with an initial-begin block but, it’s not elegant.
The assertions I tried writing doesn’t catch that.

Thanks in advance.

In reply to nnn314:

I would have liked to see your code. Anyway,


// the fall of EOL can only occur when VALID & RDY are both high.
ap_v2eol:  assert property(@posedge clk) valid && rdy |=> eol); 

Ben Cohen
Ben@systemverilog.us
Link to the list of papers and books that I wrote, many are now donated.

or Cohen_Links_to_papers_books - Google Docs

Getting started with verification with SystemVerilog