在Verilog中,条件语句用于基于特定条件执行不同的代码块。常见的条件语句有 if-else 和 case 语句。以下是这两种条件语句的基本用法:

if-else 语句:
module IfElseExample (
  input wire a,
  input wire b,
  output wire result
);

  // if-else 语句
  always @*
  begin
    if (a & b) begin
      // 条件为真时执行的语句块
      result = 1'b1;
    end
    else begin
      // 条件为假时执行的语句块
      result = 1'b0;
    end
  end

endmodule

在上面的例子中,如果 a & b 为真,将执行 result = 1'b1;;否则,将执行 result = 1'b0;。

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;。

请注意,Verilog中的条件语句可以嵌套,也可以包含多个 else if 分支。选择使用哪种条件语句取决于具体的设计需求和代码清晰度。


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