In reply to NguyenTon:
Look at the display statement edit.
module bind_dut(input wire clk,req,reset, output reg gnt);
always @ (posedge clk) gnt <= req;
endmodule
module assertion_ip(input wire clk_ip, req_ip,reset_ip,gnt_ip);
sequence req_gnt_seq;
(~req_ip & gnt_ip) ##1 (~req_ip & ~gnt_ip);
endsequence
property req_gnt_prop;
@ (posedge clk_ip)
disable iff (reset_ip)
req_ip |=> req_gnt_seq;
endproperty
req_gnt_assert : assert property (req_gnt_prop) else $display("%m @%0dns Assertion Failed", $time);
endmodule
module sub_top1;
reg clk = 0;
reg reset, req = 0;
wire gnt;
always #3 clk ++;
initial begin
reset <= 1;
#20 reset <= 0;
#100 @ (posedge clk) req <= 1;
@ (posedge clk) req <= 0;
#100 @ (posedge clk) req <= 1;
repeat (5) @ (posedge clk);
req <= 0;
end
bind_dut dut (clk,req,reset,gnt);
endmodule
module top();
bind bind_dut assertion_ip U_assert_ip (
.clk_ip (clk),
.req_ip (req),
.reset_ip (reset),
.gnt_ip (gnt)
);
sub_top1 m_sub_top1();
//initial $fsdbDumpvars(0,top);
initial begin
#300;
$finish;
end
endmodule