在Verilog中,多路分支语句通常使用 case 语句来实现。case 语句允许根据输入的特定值执行不同的代码块。以下是一个简单的多路分支语句的例子:
module CaseStatementExample (
  input wire [1:0] sel,
  output wire result
);

  // case 语句
  always @*
  begin
    case (sel)
      2'b00: result = 1'b0;
      2'b01: result = 1'b1;
      2'b10: result = 1'b1;
      2'b11: result = 1'b0;
      default: result = 1'bx; // 默认情况
    endcase
  end

endmodule

在上面的例子中,case 语句根据输入信号 sel 的值执行相应的语句块。不同的输入值触发不同的分支。在这个例子中,如果 sel 的值为 2'b01,则执行 result = 1'b1;。

case 语句的语法类似于C语言中的 switch 语句,它可以更清晰地表示多路分支的逻辑。在 case 语句中,可以列举多个可能的输入值,每个值后面跟着对应的执行语句。默认情况下,如果输入的值不匹配任何已列举的情况,将执行 default 分支。

需要注意的是,case 语句也可以在不同的时序逻辑块中使用,例如在 always @(posedge clk) 中。


转载请注明出处:http://www.pingtaimeng.com/article/detail/11029/Verilog