Verilog - 具有命名值的范围处理

标签 verilog

我已使用以下方式为数字分配名称:

`define ADD 0
`define SUB 1
`define LSF 2
`define RSF 3
`define AND 4
`define OR 5

我想在 case block 中处理,这样代码将适用于多个选项。 在 C 中,这可以通过以下方式完成:

switch (x){

case ADD:
case SUB:
case LSF:
case RSF:
case AND:
case OR:
    printf ("Handling");
    break;
}

有没有办法在 Verilog 中实现它? 谢谢!

最佳答案

是的,逗号!

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

关于Verilog - 具有命名值的范围处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549589/

相关文章:

synchronization - 1-Verilog 实现中分支的指令延迟和同步问题

verilog - `always` block 的合成

verilog - Verilog 中的 ALU : "Unable to bind wire/reg/memory"

algorithm - 二进制数比较

emacs - 修改verilog模式缩进

floating-point - $在控制台中显示 float

verilog - 在 Verilog 中编码 RAM 的更好方法

verilog - AXI IP 综合期间出现未知错误

c - 程序段最小化 - if, else

logic - Verilog 中 4 对 1 函数的高效综合