Remove extra vd from RvvCompressedInstruction
- We don't need this extra field, simply extract the low bits from
`bits` when needed.
Change-Id: I5f19f3588a52f0616425cd6ed0b9e7eb9fb10b14
diff --git a/hdl/chisel/src/kelvin/rvv/RvvCore.scala b/hdl/chisel/src/kelvin/rvv/RvvCore.scala
index f9529df..75ae92a 100644
--- a/hdl/chisel/src/kelvin/rvv/RvvCore.scala
+++ b/hdl/chisel/src/kelvin/rvv/RvvCore.scala
@@ -40,7 +40,6 @@
| input [31:0] inst_GENI_bits_pc,
| input [1:0] inst_GENI_bits_opcode,
| input [24:0] inst_GENI_bits_bits,
- | input [31:0] inst_GENI_bits_vd,
|""".stripMargin.replaceAll("GENI", i.toString)
}
diff --git a/hdl/chisel/src/kelvin/rvv/RvvDecode.scala b/hdl/chisel/src/kelvin/rvv/RvvDecode.scala
index 092cb1a..03f1b7d 100644
--- a/hdl/chisel/src/kelvin/rvv/RvvDecode.scala
+++ b/hdl/chisel/src/kelvin/rvv/RvvDecode.scala
@@ -36,7 +36,6 @@
val pc = UInt(32.W)
val opcode = RvvCompressedOpcode()
val bits = UInt(25.W)
- val vd = UInt(5.W)
def funct6(): UInt = {
bits(24, 19)
@@ -118,7 +117,6 @@
_.bits.opcode -> new_opcode.bits,
_.bits.pc -> pc,
_.bits.bits -> bits,
- _.bits.vd -> bits(4, 0),
)
}
}
diff --git a/hdl/chisel/src/kelvin/scalar/Decode.scala b/hdl/chisel/src/kelvin/scalar/Decode.scala
index c2f1435..b808286 100644
--- a/hdl/chisel/src/kelvin/scalar/Decode.scala
+++ b/hdl/chisel/src/kelvin/scalar/Decode.scala
@@ -758,7 +758,7 @@
if (p.enableRvv) {
val rvvRdMark_valid = io.rvv.get(i).fire && d.rvv.get.bits.writesVectorRegister()
io.rvvRdMark.get(i).valid := rvvRdMark_valid
- io.rvvRdMark.get(i).addr := d.rvv.get.bits.vd
+ io.rvvRdMark.get(i).addr := d.rvv.get.bits.bits(4,0) // vd
}
// Register file bus address port.