$rose(req) |=> req[*1:$] ##0 ack;
$rose
will start the assertion on the rising edge of req
. [*1:$]
means the left hand side must be true for a range of 1 to unlimited clocks. You could use [+]
which is equivalent to [*1:$]
.
Some other styles of writing the checker would be:
$rose(req) |-> req[*1:$] ##1 (ack && req);
$rose(req) |-> ##1 req throughout ack[->1];