File tree Expand file tree Collapse file tree 6 files changed +21
-9
lines changed Expand file tree Collapse file tree 6 files changed +21
-9
lines changed Original file line number Diff line number Diff line change 22
33* Verilog: semantic fix for output register ports
44* SystemVerilog: cover sequence
5+ * SystemVerilog: labeled immediate assert/assume/cover statements
56* SystemVerilog: semantics fix for explicit casts
67
78# EBMC 5.7
Original file line number Diff line number Diff line change 11CORE
22../../verilog/SVA/initial2.sv
33--buechi --module main
4- ^\[main\.assert\.1 \] main\.counter == 1: PROVED \(1-induction\)$
5- ^\[main\.assert\.2 \] main\.counter == 2: PROVED \(1-induction\)$
4+ ^\[main\.p0 \] main\.counter == 1: PROVED \(1-induction\)$
5+ ^\[main\.p1 \] main\.counter == 2: PROVED \(1-induction\)$
66^EXIT=0$
77^SIGNAL=0$
88--
Original file line number Diff line number Diff line change 11CORE
22../../verilog/SVA/initial2.sv
33--buechi --k-induction --bound 1 --module main
4- ^\[main\.assert\.1 \] main\.counter == 1: PROVED$
5- ^\[main\.assert\.2 \] main\.counter == 2: PROVED$
4+ ^\[main\.p0 \] main\.counter == 1: PROVED$
5+ ^\[main\.p1 \] main\.counter == 2: PROVED$
66^EXIT=0$
77^SIGNAL=0$
88--
Original file line number Diff line number Diff line change 11CORE
22initial2.sv
33--module main
4- ^\[main\.assert\.1 \] main\.counter == 1: PROVED .*$
5- ^\[main\.assert\.2 \] main\.counter == 2: PROVED .*$
4+ ^\[main\.p0 \] main\.counter == 1: PROVED .*$
5+ ^\[main\.p1 \] main\.counter == 2: PROVED .*$
66^EXIT=0$
77^SIGNAL=0$
88--
Original file line number Diff line number Diff line change @@ -6,12 +6,12 @@ module main(input clk);
66 initial begin
77 counter = 1 ;
88 // expected to pass
9- assert (counter == 1 );
9+ p0 : assert (counter == 1 );
1010 counter = 2 ;
1111 end
1212
1313 // expected to pass
14- initial assert property (counter == 2 );
14+ initial p1 : assert property (counter == 2 );
1515
1616 always_ff @ (posedge clk)
1717 counter = counter + 1 ;
Original file line number Diff line number Diff line change @@ -3661,7 +3661,18 @@ statement:
36613661 attribute_instance_brace block_identifier TOK_COLON attribute_instance_brace statement_item
36623662 { init ($$, ID_verilog_label_statement);
36633663 stack_expr ($$).set (ID_base_name, stack_expr ($2 ).id ());
3664- mto ($$, $5 ); }
3664+
3665+ // We'll stick the label onto any assertion
3666+ auto statement = stack_expr ($5 ).id ();
3667+ if (statement == ID_verilog_immediate_assert ||
3668+ statement == ID_verilog_immediate_assume ||
3669+ statement == ID_verilog_immediate_cover)
3670+ {
3671+ stack_expr ($5 ).set (ID_identifier, stack_expr ($2 ).id ());
3672+ }
3673+
3674+ mto ($$, $5 );
3675+ }
36653676 | attribute_instance_brace statement_item
36663677 { $$=$2 ; }
36673678 ;
You can’t perform that action at this time.
0 commit comments