作为tile,如何以正确的方式将UInt转换为Chisel3中的SInt值? IG:
val opC = RegInit(0.U(64.W))
val result = RegInit(0.U(64.W))
result := Mux(opC.toSInt > 0.S, opC, 0.U)
答案 0 :(得分:3)
这取决于你是想重新解释为SInt(相同宽度),还是实际强制转换(即将8位UInt转换为9位SInt)。
您应该通过调用UInt上的.asSInt
将UInt重新解释给SInt。例如。 opC.asSInt
,结果宽度相同。
您应该通过调用UInt上的.zext
强制将UInt转换为SInt。例如。 opC.zext
,结果将是1位宽,msb为零。