我正在用 Verilog 设计一个加法器。它将有两个大小为 N 的输入和两个输出。第一个输出的大小为 2N,第二个输出的大小为 K。
这是我到目前为止所拥有的:
module adder(
  out,
  CCR,
  inA,
  inB
);
parameter N=8,CCR_size=8;
parameter M=2*N;
input  [N-1:0]        inA,inB;
output [M-1:0]        out;
output [CCR_size-1:0] CCR;
reg    [N:0]          temp;
always @(inA or inB)
  begin
    temp      = inA+inB;
    CCR[0]    = temp[N];
    out[N-1:0]= temp[N-1:0];
    out[M-1:N]= 'b0;
  end
endmodule
从评论中移出: 但是这没有编译。我有错误
CCR[0],out[N-1:0] and out[M-1:N]
# Error: VCP2858 adder.v : (16, 20): CCR[0] is not a valid left-hand side of a procedural assignment.
# Error: VCP2858 adder.v : (17, 28): out[N-1:0] is not a valid left-hand side of a procedural assignment.
# Error: VCP2858 adder.v : (18, 20): out[M-1:N] is not a valid left-hand side of a procedural assignment.
上面的代码有什么问题?