summaryrefslogtreecommitdiff
path: root/tests/sva/sva_not.sv
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sva/sva_not.sv')
-rw-r--r--tests/sva/sva_not.sv34
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 00000000..d81a4865
--- /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