diff --git a/vta/hardware/chisel/src/main/scala/core/TensorAlu.scala b/vta/hardware/chisel/src/main/scala/core/TensorAlu.scala index b438641d2938..6f1a804d8726 100644 --- a/vta/hardware/chisel/src/main/scala/core/TensorAlu.scala +++ b/vta/hardware/chisel/src/main/scala/core/TensorAlu.scala @@ -230,7 +230,8 @@ class TensorAlu(debug: Boolean = false)(implicit p: Parameters) extends Module { tensorImm.data.valid := state === sReadTensorB tensorImm.data.bits.foreach { b => b.foreach { c => - c := dec.alu_imm + c := Mux(dec.alu_imm(C_ALU_IMM_BITS - 1), + Cat(-1.S((aluBits - C_ALU_IMM_BITS).W), dec.alu_imm), dec.alu_imm) } }