Merge pull request #155 from jix/invalid_ff_dcinit_merge
authorMiodrag Milanović <mmicko@gmail.com>
Sun, 3 Apr 2022 10:15:58 +0000 (12:15 +0200)
committerGitHub <noreply@github.com>
Sun, 3 Apr 2022 10:15:58 +0000 (12:15 +0200)
Regression test: do not merge FFs with unconstrained initvals

tests/.gitignore
tests/invalid_ff_dcinit_merge.sby [new file with mode: 0644]

index 21f5f7806b9e58b73bb32f404d86f0484d69f475..f91f05aeb6d981e65c773e810cd19932a4c4680e 100644 (file)
@@ -12,4 +12,5 @@
 /submod_props*/
 /multi_assert*/
 /aim_vs_smt2_nonzero_start_offset*/
+/invalid_ff_dcinit_merge*/
 /2props1trace*/
diff --git a/tests/invalid_ff_dcinit_merge.sby b/tests/invalid_ff_dcinit_merge.sby
new file mode 100644 (file)
index 0000000..a23d8f0
--- /dev/null
@@ -0,0 +1,29 @@
+[options]
+mode bmc
+depth 4
+expect fail
+
+[engines]
+smtbmc
+
+[script]
+read -formal top.sv
+prep -top top
+
+[file top.sv]
+module top(
+input clk, d
+);
+
+reg q1;
+reg q2;
+
+always @(posedge clk) begin
+    q1 <= d;
+    q2 <= d;
+end;
+
+// q1 and q2 are unconstrained in the initial state, so this should fail
+always @(*) assert(q1 == q2);
+
+endmodule