我无法编译这段代码(2个错误)。总是@ *可以正常工作,但是当我用always_comb替换@ *时,它将无法编译。
为什么总是使用@ *而不是always_comb起作用? if-else语句中有一些推断的顺序逻辑吗?
谢谢。
module Pri_Encoder(Out, In);
output [1:0] Out;
reg [1:0] Out;
input [3:0] In;
always_comb begin
if(In[3])
begin
Out[0] = 1'b1;
Out[1] = 1'b1;
end
else if(In[2])
begin
Out[0] = 1'b0;
Out[1] = 1'b1;
end
else if(In[1])
begin
Out[0] = 1'b1;
Out[1] = 1'b0;
end
else if(In[0])
begin
Out[0] = 1'b0;
Out[1] = 1'b0;
end
else
begin
Out[0] = 1'b0;
Out[1] = 1'b0;
end
end
endmodule
2条错误消息:
“开始”附近:语法错误,意外开始。
语法错误。是否缺少'::'?