2016-09-27 43 views
1

代码编译正确,但我得到一个警告:该代码给出警告凿子:当Mux的输出是SInt类型时,为什么会发出警告?

[warn] PC_RVI.scala:22: Mux of Bits instantiated, emits SInt in class TOP_pack.PC_RVI 

部分看起来是这样的:

PC_input1 := Mux(io.branch, io.imme, UInt(4)) 
PC_input2 := Mux(io.PC_or_rs1, io.rs1, PC_reg) 

其中immers1SInt类型。

回答

3

所有的信号必须是SInt相同的类型。正如我们在给出的代码上看到的不一样:

PC_input1 := Mux(io.branch, io.imme, UInt(4)) 

io.imme是一个SInt()和UInt(4)没有。你的PC_input1是一个SInt()吗?

如果您想避免警告,请为所有变量使用相同的类型。

+0

我已经使用.toUInt转换为整数,因为PC_input应该是UInt类型,现在警告消失了。谢谢。 – akurd

相关问题