“附近的Verilog语法错误”<=&引用;在案例陈述中

“附近的Verilog语法错误”<=&引用;在案例陈述中,verilog,Verilog,在这段代码中: reg [4:0] status_led = 5'b00100; case (status_led) default: begin if (rotation) begin status_led[4] <= status_led[3]; status_led[3] <= status_led[2];

在这段代码中:

    reg [4:0] status_led = 5'b00100;
    case (status_led)
        default: begin                   
            if (rotation) begin
                status_led[4] <= status_led[3];
                status_led[3] <= status_led[2];
                status_led[2] <= status_led[1];
                status_led[1] <= status_led[0];
                status_led[0] <= status_led[4];
            end else if (~rotation) begin
                status_led[4] <= status_led[0];
                status_led[3] <= status_led[4];
                status_led[2] <= status_led[3];
                status_led[1] <= status_led[2];
                status_led[0] <= status_led[1];
            end
        end
    endcase
reg[4:0]状态_led=5'b00100;
案例(状态指示灯)
默认值:开始
如果(旋转)开始

状态指示[4]您没有始终在内部定义案例,因此出现错误。这应该能解决你的问题。最好不要将组合块和顺序块混合在一起

  reg [4:0] status_led = 5'b00100;

  always@(posedge clk) begin
    case (status_led)
        default: begin                   
            if (rotation) begin
                status_led[4] <= status_led[3];
                status_led[3] <= status_led[2];
                status_led[2] <= status_led[1];
                status_led[1] <= status_led[0];
                status_led[0] <= status_led[4];
            end else if (~rotation) begin
                status_led[4] <= status_led[0];
                status_led[3] <= status_led[4];
                status_led[2] <= status_led[3];
                status_led[1] <= status_led[2];
                status_led[0] <= status_led[1];
            end
        end
    endcase
   end
reg[4:0]状态_led=5'b00100;
始终@(posedge clk)开始
案例(状态指示灯)
默认值:开始
如果(旋转)开始

状态指示灯[4]在显示的代码之前是什么?这是
块的一部分还是函数的一部分?为什么要费心使用
case
语句而只使用
default
case?这段代码是独立的。最初我有其他的案例,但我改变了代码。我已经用高级代码替换了这段代码,但我很好奇,如果将来我需要编写类似的代码,为什么会出现上述错误?你不能在verilog中使用独立的
case
。它必须包含在程序块内,例如“始终”。@Serge a
案例
始终
/
初始
合法生成构造之外(在
生成
-
结束生成
之内是可选的)。对于此特定问题,
案例
需要位于顺序
始终
块内(例如
始终@(posedge clk)