This is a micro post about an example of a handshake SystemVerilog assertion. This is more of a diary thing, so take it with a grain of salt.
Assertion Details Link to heading
After a req edge, req should be stable and ack should be low until ack goes high between 0:11.
$rose(req) |-> (req && !ack)[*0:11] ##1 (req && ack)
When ack goes high, req should be high as well.
!req |-> !ack
req goes low after ack goes low.
$fell(req) |-> !ack