错误事例
if (CmdType==011)begin
case(SubType)
3'b000:begin//单宽度有序
o_Result[31:0] = Result_single1;
end
3'b001:begin//单宽度无序
o_Result[31:0] = Result_single1;
end
3'b010:begin//单宽度最大
o_Result[31:0] = Rst_cmpare1;
end
3'b011:begin//单宽度最小
o_Result[31:0] = Rst_cmpare1;
end
3'b100:begin//加宽有序(双精度)
o_Result<=Result_double;
end
3'b101:begin//加宽无序
o_Result<=Result_double;
end
default:o_Result = 64'bx;
endcase
end
else begin
o_Result = 64'bx;
end
修改方法
在第一行的if (CmdType==011)begin代码中,if的判断未执行,修改为
if (CmdType==3'b011)begin
总结
在vivad中不添加位宽的数值,默认位宽64位大小,在testbench中,赋值为CmdType==3’b011,就对应不上