Section 9.4,
A.6.7, Syntax 9-3
Wild case
At the end of 9.4, APPEND the following paragraph
The keyword inside can be used after the parenthesized expression to indicate a set membership (see 8.19) case...inside statement. In a case...inside statement, the case expression shall be compared with each case item expression (open_range_list) using the set membership inside operator. The inside operator uses asymmetric wild card matching (see 8.4), and accordingly, the case expression shall be the left operand, and each case item expression shall be the right operand. The case expression given in parentheses and each case item expression in braces shall be evaluated in the order specified by a normal case, unique case, or priority case statement. A case item shall be matched when the inside operation compares the case expression to the case item expression and returns 1’b1, and no match when the operation returns 1’b0 or 1’bx. If all comparisons do not match and the default item is given, the default item statement shall be executed
For example:
logic [2:0] status;
always @(posedge clock)
priority case (status) inside
1, 3 : task1; // matches b001 and b011
3’b0?0, [4:7]: task2; // matches b000 b010 b0x0 b0z0 b100 b101 b110 b111
endcase // priority case fails all other values including b00x b01x bxxx
In A.6.7 and Syntax 9-3, REPLACE
case_statement ::=
[ unique_priority ] case_keyword ( expression ) case_item { case_item } endcase
| [ unique_priority ] case_keyword ( expression ) matches case_pattern_item { case_pattern_item } endcase
WITH
case_statement ::=
[ unique_priority ] case_keyword ( expression ) case_item { case_item } endcase
| [ unique_priority ] case_keyword ( expression ) matches case_pattern_item { case_pattern_item } endcase
| [ unique_priority ] case ( expression ) inside case_inside_item { case_inside_item } endcase
In A.6.7 and Syntax 9-3, ADD case_inside_item ::=open_range_list : statement_or_null
| default [ : ] statement_or_null