Skip to content

Commit d7fd7c2

Browse files
authored
Merge pull request #1236 from diffblue/buechi-cycle_delay_star_plus-fix
SVA->Buechi: fix translation of `##[*]` and `##[+]`
2 parents 86b0531 + e9684de commit d7fd7c2

12 files changed

+85
-24
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
../../verilog/SVA/cycle_delay_plus4.sv
3+
--buechi
4+
^\[main\.p0\] main\.x == 0 ##\[\+\] main\.x == 1: PROVED \(1-induction\)$
5+
^\[main\.p1\] main\.x == 0 ##\[\+\] main\.x == 2: PROVED \(1-induction\)$
6+
^\[main\.p2\] main\.x == 1 ##\[\+\] main\.x == 1: REFUTED$
7+
^\[main\.p3\] main\.x == 0 ##\[\+\] main\.x == 6: PROVED \(1-induction\)$
8+
^EXIT=10$
9+
^SIGNAL=0$
10+
--
11+
^warning: ignoring
12+
--
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
../../verilog/SVA/cycle_delay_star1.sv
33
--buechi --bdd
44
^\[main.p0\] ##\[\*\] main\.x == 2 ##1 main\.x == 3: PROVED$
@@ -7,4 +7,3 @@ KNOWNBUG
77
--
88
^warning: ignoring
99
--
10-
This gives the wrong answer.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
../../verilog/SVA/cycle_delay_star1.sv
33
--buechi --bound 10
44
^\[main.p0\] ##\[\*\] main\.x == 2 ##1 main\.x == 3: PROVED up to bound 10$
@@ -7,4 +7,3 @@ KNOWNBUG
77
--
88
^warning: ignoring
99
--
10-
This gives the wrong answer.

regression/ebmc-spot/sva-buechi/cycle_delay_star2.bdd.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
CORE
22
../../verilog/SVA/cycle_delay_star2.sv
33
--buechi --bdd
4-
^\[main.p0\] ##\[\*\] main\.x == 4: REFUTED$
5-
^EXIT=10$
4+
^\[main.p0\] ##\[\*\] main\.x == 4: PROVED$
5+
^EXIT=0$
66
^SIGNAL=0$
77
--
88
^warning: ignoring

regression/ebmc-spot/sva-buechi/cycle_delay_star2.bmc.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
CORE
22
../../verilog/SVA/cycle_delay_star2.sv
33
--buechi --bound 10
4-
^\[main.p0\] ##\[\*\] main\.x == 4: REFUTED$
5-
^EXIT=10$
4+
^\[main.p0\] ##\[\*\] main\.x == 4: PROVED up to bound 10$
5+
^EXIT=0$
66
^SIGNAL=0$
77
--
88
^warning: ignoring
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
KNOWNBUG
1+
CORE
22
../../verilog/SVA/cycle_delay_star3.sv
33
--buechi --bdd
4-
^\[main.p0\] ##\[\*\] main\.x == 4: PROVED up to bound 10$
4+
^\[main.p0\] ##\[\*\] main\.x == 4: PROVED$
55
^EXIT=0$
66
^SIGNAL=0$
77
--
88
^warning: ignoring
99
--
10-
We get the wrong answer.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
../../verilog/SVA/cycle_delay_star3.sv
33
--buechi --bound 10
44
^\[main.p0\] ##\[\*\] main\.x == 4: PROVED up to bound 10$
@@ -7,4 +7,3 @@ KNOWNBUG
77
--
88
^warning: ignoring
99
--
10-
We get the wrong answer.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
CORE
2+
../../verilog/SVA/cycle_delay_star4.sv
3+
--buechi
4+
^\[main\.p0\] main\.x == 0 ##\[\*\] main\.x == 0: PROVED \(1-induction\)$
5+
^\[main\.p1\] main\.x == 0 ##\[\*\] main\.x == 1: PROVED \(1-induction\)$
6+
^\[main\.p2\] main\.x == 0 ##\[\*\] main\.x == 2: PROVED \(1-induction\)$
7+
^\[main\.p3\] main\.x == 1 ##\[\*\] main\.x == 1: REFUTED$
8+
^\[main\.p4\] main\.x == 0 ##\[\*\] main\.x == 6: PROVED \(1-induction\)$
9+
^EXIT=10$
10+
^SIGNAL=0$
11+
--
12+
^warning: ignoring
13+
--
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
KNOWNBUG
1+
CORE
22
cycle_delay_star2.sv
33
--bound 10
4-
^\[main.p0\] ##\[\*\] main\.x == 4: REFUTED$
5-
^EXIT=10$
4+
^\[main.p0\] ##\[\*\] main\.x == 4: PROVED up to bound 10$
5+
^EXIT=0$
66
^SIGNAL=0$
77
--
88
^warning: ignoring
99
--
10-
The BMC engine gives the wrong answer.

regression/verilog/SVA/cycle_delay_star2.sv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ module main(input clk);
88
always @(posedge clk)
99
if(x<3) x++;
1010

11-
// fails -- 4 is never reached
11+
// 4 is never reached, but this doesn't fail the property
12+
// owing to weak sequence semantics.
1213
initial p0: assert property (##[*] x==4);
1314

1415
endmodule

0 commit comments

Comments
 (0)