Reuse VRegfile interface types in VAluInt.
Change-Id: Idac5db35534832fe69cb38afc34e238aae7a9fed
diff --git a/hdl/chisel/src/kelvin/vector/VAlu.scala b/hdl/chisel/src/kelvin/vector/VAlu.scala
index 03f6f36..34aa41d 100644
--- a/hdl/chisel/src/kelvin/vector/VAlu.scala
+++ b/hdl/chisel/src/kelvin/vector/VAlu.scala
@@ -62,17 +62,6 @@
io.read(i).tag := 0.U
}
- for (i <- 0 until io.write.length) {
- io.write(i).valid := false.B
- io.write(i).addr := 0.U
- io.write(i).data := 0.U
- }
-
- for (i <- 0 until io.whint.length) {
- io.whint(i).valid := false.B
- io.whint(i).addr := 0.U
- }
-
// ---------------------------------------------------------------------------
// Opcode checks.
for (i <- 0 until io.in.bits.length) {
@@ -352,19 +341,11 @@
alu0.io.read(5).data := io.read(5).data
alu0.io.read(6).data := io.read(6).data
- io.write(0).valid := alu0.io.write(0).valid
- io.write(0).addr := alu0.io.write(0).addr
- io.write(0).data := alu0.io.write(0).data
+ io.write(0) := alu0.io.write(0)
+ io.write(1) := alu0.io.write(1)
- io.write(1).valid := alu0.io.write(1).valid
- io.write(1).addr := alu0.io.write(1).addr
- io.write(1).data := alu0.io.write(1).data
-
- io.whint(0).valid := alu0.io.whint(0).valid
- io.whint(0).addr := alu0.io.whint(0).addr
-
- io.whint(1).valid := alu0.io.whint(1).valid
- io.whint(1).addr := alu0.io.whint(1).addr
+ io.whint(0) := alu0.io.whint(0)
+ io.whint(1) := alu0.io.whint(1)
// ---------------------------------------------------------------------------
// Alu1.
@@ -386,19 +367,11 @@
alu1.io.read(5).data := io.read(2).data
alu1.io.read(6).data := io.read(6).data
- io.write(2).valid := alu1.io.write(0).valid
- io.write(2).addr := alu1.io.write(0).addr
- io.write(2).data := alu1.io.write(0).data
+ io.write(2) := alu1.io.write(0)
+ io.write(3) := alu1.io.write(1)
- io.write(3).valid := alu1.io.write(1).valid
- io.write(3).addr := alu1.io.write(1).addr
- io.write(3).data := alu1.io.write(1).data
-
- io.whint(2).valid := alu1.io.whint(0).valid
- io.whint(2).addr := alu1.io.whint(0).addr
-
- io.whint(3).valid := alu1.io.whint(1).valid
- io.whint(3).addr := alu1.io.whint(1).addr
+ io.whint(2) := alu1.io.whint(0)
+ io.whint(3) := alu1.io.whint(1)
// ---------------------------------------------------------------------------
// Active.
diff --git a/hdl/chisel/src/kelvin/vector/VAluInt.scala b/hdl/chisel/src/kelvin/vector/VAluInt.scala
index b919d5d..64ec7a9 100644
--- a/hdl/chisel/src/kelvin/vector/VAluInt.scala
+++ b/hdl/chisel/src/kelvin/vector/VAluInt.scala
@@ -43,15 +43,8 @@
val read = Vec(7, Input(new Bundle {
val data = UInt(p.vectorBits.W)
}))
- val write = Vec(2, Output(new Bundle {
- val valid = Bool()
- val addr = UInt(6.W)
- val data = UInt(p.vectorBits.W)
- }))
- val whint = Vec(2, Output(new Bundle {
- val valid = Bool()
- val addr = UInt(6.W)
- }))
+ val write = Vec(2, new VRegfileWriteIO(p))
+ val whint = Vec(2, new VRegfileWhintIO(p))
})
class AluAddr extends Bundle {