Verilog - 使用命名值处理范围

cyb*_*101 2 verilog

我使用以下命令为数字指定了名称:

`define ADD 0
`define SUB 1
`define LSF 2
`define RSF 3
`define AND 4
`define OR 5
Run Code Online (Sandbox Code Playgroud)

我想在一个case块中处理 ,以便代码适用于多个选项.在C中,这可以使用:

switch (x){

case ADD:
case SUB:
case LSF:
case RSF:
case AND:
case OR:
    printf ("Handling");
    break;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在Verilog实现这一目标?谢谢!

Mar*_*rty 6

是的,逗号!

case (x)
ADD, SUB, LSF, RSF, AND, OR: begin
    $display("Handling multiple cases");
    // no need for breaks
end
MULT: begin
    $display("handle a single case");
end
default: begin
    $display("do something to do for all other cases");
end
endcase
Run Code Online (Sandbox Code Playgroud)