赋值错误:“无法分配给数组”

问题描述 投票:0回答:1

我对 Verilog 相当陌生,我正在努力熟悉它。 我正在 Verilog 中构建 ALU,当我尝试将操作中的值分配给

ALU_result
reg
时,我收到标题上列出的错误。

parameter N = 8;
input  [N-1:0] inA, inB;
input    [3:0] op;

reg ALU_result[N-1:0] ;

always @(*)
    case(op)
      4'b0000:
        begin
          ALU_result = inA & inB ;
        end
      4'b0001:
        begin
          ALU_result = inA | inB ;
        end  
      4'b0010:
        begin
          ALU_result = inA + inB ;
        end
    endcase

我得到的错误更具体。我用 icarus verilog 编译了 Verilog 代码。

library.v:39: error: Cannot assign to array ALU_result. Did you forget a word index?
library.v:43: error: Cannot assign to array ALU_result. Did you forget a word index?
library.v:47: error: Cannot assign to array ALU_result. Did you forget a word index?
verilog hdl iverilog
1个回答
1
投票

您将

ALU_result
声明为解包数组,但没有必要这样做。

改变:

reg ALU_result[N-1:0] ;

至:

reg [N-1:0] ALU_result;
© www.soinside.com 2019 - 2024. All rights reserved.