1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
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 (.*);
|