Assume for formal verification

In reply to ViVer:
For every change in a data bus there should be only one corresponding valid signal ($rose),


valid_assume: assume property (
     @(posedge clk) disable iff(disable)
     $changed(Data)  |-> $rose(valid)); // May not be what you want

// This may be what you need
// If a change in data then ONE valid within this change and the next change 
valid_assume2: assume property (
     @(posedge clk) disable iff(disable)
// $changed(Data)  |-> valid[->1] within $changed(Data)[->2]
$changed(Data)  |-> valid[=1] intersect $changed(Data)[->2]
);

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