Verilog语法错误,我无法找到原因?

时间:2016-02-01 07:32:29

标签: verilog

我刚刚开始使用Verilog,并且似乎无法在下面的代码中找到错误,请提前感谢您!

    module sortTwo(input logic signed [15:0] A[1:0],
            output logic signed [15:0] B[1:0]);
      always @* begin
          if (A[0]>A[1])
            begin
            assign B[1] = A[0];
            assign B[0] = A[1];
            end
        else 
            begin
            assign B[1] =A [1];
            assign B[0] = A[0];
            end
        end
    endmodule //end sortTwo

2 个答案:

答案 0 :(得分:2)

IcarusVerilog不支持大多数SystemVerilog,可能需要一个开关来启用它支持的功能。 logic是SystemVerilog关键字。尝试添加-g2012

答案 1 :(得分:0)

您不能在always块中使用assign。要解决您的问题,您需要将assign B[1] = A[0];替换为B[1] = A[0];