Verilog语法错误,我找不到原因?
我刚开始使用Verilog,似乎在下面的代码中找不到错误,提前谢谢Verilog语法错误,我找不到原因?,verilog,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]; ass
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
不能在“始终”块中使用“指定”。要解决您的问题,您需要替换分配B[1]=A[0];对B[1]=A[0] 不能在“始终”块中使用“指定”。要解决您的问题,您需要替换分配B[1]=A[0];对B[1]=A[0] IcarusVerilog不支持大多数SystemVerilog,可能需要一个交换机来启用它所支持的功能。逻辑是SystemVerilog关键字。尝试添加-g2012IcarusVerilog不支持大多数SystemVerilog,可能需要一个开关来启用它所支持的功能。逻辑是SystemVerilog关键字。尝试添加-g2012你能解释一下错误到底是什么吗?当然,当我使用iverilog-o sorteigh sorteigh.sv编译我的文件sortTwo时,它会输出:sorteigh.sv:1:语法错误我放弃了。太好了。您可以将其编辑到您的问题中。这将大大提高回答的机会。我不是Verilog方面的专家,但您提供的信息将使其他熟练用户能够更好地帮助您。请您解释一下错误到底是什么?是的,当然,当我使用iverilog-o sorteigh sorteigh.sv编译文件sortTwo时,它会输出:sorteigh.sv:1:语法错误我放弃。太好了。您可以将其编辑到您的问题中。这将大大提高回答的机会。我不是Verilog方面的专家,但您提供的信息将使其他熟练用户能够更好地帮助您。assign可用于always block,这就是所谓的。唯一的限制是,位选择和部分选择不能同时使用。不建议使用程序连续赋值,因为它们计划用于弃用IEEE1800-2005§25.3或§C.4.2。IEEE1364 Verilog于2009年被合并到IEEE1800 SystemVerilog中,该符号可用于始终块,这就是所谓的。唯一的限制是,位选择和部分选择不能同时使用。不建议使用程序连续赋值,因为它们计划用于弃用IEEE1800-2005§25.3或§C.4.2。IEEE1364 Verilog于2009年合并到IEEE1800 SystemVerilog中供参考:如果使用-g2012参数从Icarus Verilog的always块中删除assign关键字,则代码会合并。我测试了它,它支持Icarus Verilog 0.10.0 11/23/14,SystemVerilog在0.9中不受支持。*。请注意,SystemVerilog支持在当前版本的Icaraus.FYI中受到限制:如果使用-g2012参数从Icarus Verilog的always块中删除assign关键字,则代码会受到限制。我测试了它,它支持Icarus Verilog 0.10.0 11/23/14,SystemVerilog在0.9中不受支持。*。请注意,SystemVerilog支持在当前版本的Icaraus中受到限制。