Merge pull request #906 from svenka3/svenka3/labelled_imm_sva

Added support for labels in immediate assert/assume
This commit is contained in:
Cary R 2023-06-10 20:59:41 -07:00 committed by GitHub
commit 63bcb9601d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 6 deletions

View File

@ -6,3 +6,6 @@ ERROR: ./ivltests/sv_immediate_assert.v:11:
Time: 0 Scope: test
Check 7 : this should be displayed
Check 8 : this should be displayed
ERROR: ./ivltests/sv_immediate_assert.v:19: Check 9 : this should be displayed
Time: 0 Scope: test
Check 10 : this should be displayed

View File

@ -6,3 +6,6 @@ ERROR: ./ivltests/sv_immediate_assume.v:11:
Time: 0 Scope: test
Check 7 : this should be displayed
Check 8 : this should be displayed
ERROR: ./ivltests/sv_immediate_assume.v:19: Check 9 : this should be displayed
Time: 0 Scope: test
Check 10 : this should be displayed

View File

@ -13,6 +13,15 @@ initial begin
else $display("Check 7 : this shouldn't be displayed");
assert(i == 0) $display("Check 8 : this shouldn't be displayed");
else $display("Check 8 : this should be displayed");
a_i_is_non_0 : assert(i == 0)
$display("Check 9 : this shouldn't be displayed");
else $error("Check 9 : this should be displayed");
a_i_is_1 : assert(i == 1)
$display("Check 10 : this should be displayed");
else $error("Check 10 : this shouldn't be displayed i: %0d", i);
end
endmodule

View File

@ -13,6 +13,15 @@ initial begin
else $display("Check 7 : this shouldn't be displayed");
assume(i == 0) $display("Check 8 : this shouldn't be displayed");
else $display("Check 8 : this should be displayed");
a_i_is_non_0 : assume(i == 0)
$display("Check 9 : this shouldn't be displayed");
else $error("Check 9 : this should be displayed");
a_i_is_1 : assume(i == 1)
$display("Check 10 : this should be displayed");
else $error("Check 10 : this shouldn't be displayed i: %0d", i);
end
endmodule

12
parse.y
View File

@ -2118,12 +2118,12 @@ port_direction_opt
;
procedural_assertion_statement /* IEEE1800-2012 A.6.10 */
: concurrent_assertion_statement
{ $$ = $1; }
| simple_immediate_assertion_statement
{ $$ = $1; }
| deferred_immediate_assertion_statement
{ $$ = $1; }
: block_identifier_opt concurrent_assertion_statement
{ $$ = $2; }
| block_identifier_opt simple_immediate_assertion_statement
{ $$ = $2; }
| block_identifier_opt deferred_immediate_assertion_statement
{ $$ = $2; }
;
property_expr /* IEEE1800-2012 A.2.10 */