module top (input logic clock, ctrl); logic read = 0, write = 0, ready = 0; always @(posedge clock) begin read <= !ctrl; write <= ctrl; ready <= write; end endmodule module top_properties (input logic clock, read, write, ready); a_rw: assert property ( @(posedge clock) !(read && write) ); `ifdef FAIL a_wr: assert property ( @(posedge clock) write |-> ready ); `else a_wr: assert property ( @(posedge clock) write |=> ready ); `endif endmodule bind top top_properties properties_inst (.*);