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 {