diff options
Diffstat (limited to 'tests/sva')
| -rw-r--r-- | tests/sva/sva_not.sv | 34 | 
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/sva/sva_not.sv b/tests/sva/sva_not.sv new file mode 100644 index 000000000..d81a48653 --- /dev/null +++ b/tests/sva/sva_not.sv @@ -0,0 +1,34 @@ +module top ( +	input clk, +	input reset, +	input ping, +	input [1:0] cfg, +	output reg pong +); +	reg [2:0] cnt; +	localparam integer maxdelay = 8; + +	always @(posedge clk) begin +		if (reset) begin +			cnt <= 0; +			pong <= 0; +		end else begin +			cnt <= cnt - |cnt; +			pong <= cnt == 1; +			if (ping) cnt <= 4 + cfg; +		end +	end + +	assert property ( +		@(posedge clk) +		disable iff (reset) +		not (ping ##1 !pong [*maxdelay]) +	); + +`ifndef FAIL +	assume property ( +		@(posedge clk) +		not (cnt && ping) +	); +`endif +endmodule  | 
