Chisel:当 Mux 的输出是 SInt 类型时,为什么我会收到警告?

Chisel: Why do I get a warning when output of Mux is of type 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)

其中 immers1 的类型为 SInt

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

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

io.imme 是 SInt() 而 UInt(4) 不是。你的 PC_input1 是 SInt() 吗?

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