4
これは醜いような方法です。Chisel3の2つの符号なし数値の差を二乗する方法を教えてください。
class DiffSquared extends Module {
val inputWidth = 8
val width = 16
val io = IO(new Bundle {
val X = Input(UInt(inputWidth.W))
val M = Input(UInt(inputWidth.W))
val Out = Output(UInt(width.W))
})
val x = Wire(UInt((inputWidth+1).W))
val m = Wire(UInt((inputWidth+1).W))
x := io.X
m := io.M
val diff = Wire(SInt((inputWidth+1).W))
diff := x.asSInt - m.asSInt
io.Out := (diff*diff).asUInt
}
9ビットSIntのにUINTをゼロ拡張に良い方法は何ですか、違いを行い、それを二乗し、16ビットのUINTとして結果を表していますか?
:zextは、としてこのように、あなたがコードを書くことができ、ゼロがUINTの幅+ 1のSIntのにUINTを拡張していること有用。お気軽に機能リクエストを提出してください! – jkoenig