import rv32i_types::*;
module cmp
(
input [2:0] sel,
input [31:0] a, b,
output logic f
);
always_comb
begin
case (sel)
beq:
if(a==b)
out = 1'b1;
else
out = 1'b0;
bne:
if(a!=b)
out = 1'b1;
else
out = 1'b0;
blt:
if($signed(a) < $signed(b))
out = 1'b1;
else
out = 1'b0;
bge:
if($signed(a) > $signed(b))
out = 1'b1;
else
out = 1'b0;
bltu:
if(a < b)
out = 1'b1;
else
out = 1'b0;
bgeu:
if(a > b)
out = 1'b1;
else
out = 1'b0;
endcase
end
endmodule : cmp
每当我运行它时,它说always_comb构造不能推断出纯粹的组合逻辑是什么问题?
该错误意味着您的代码会推断出一些存储空间。由于sel
是3位,因此有8个可能的值,而你的case
语句只有6个。那么你没有在所有可能的流量中分配出来。您需要在default
声明之前提供case
分支或进行分配。