Remove latching behaviour in Regfile. Change-Id: I1b58ab5dc17b703432ed15cacfc39e32c6ba1843
diff --git a/hdl/chisel/src/kelvin/scalar/Regfile.scala b/hdl/chisel/src/kelvin/scalar/Regfile.scala index d773722..29fb3be 100644 --- a/hdl/chisel/src/kelvin/scalar/Regfile.scala +++ b/hdl/chisel/src/kelvin/scalar/Regfile.scala
@@ -182,18 +182,14 @@ } for (i <- 0 until (p.instructionLanes * 2)) { - val setValid = io.readSet(i).valid - val setValue = io.readSet(i).value + nxtReadDataBits(i) := Mux( + io.readSet(i).valid, io.readSet(i).value, rwdata(i)) - val nxtReadDataReady = io.readAddr(i).valid || setValid - - readDataReady(i) := nxtReadDataReady - - nxtReadDataBits(i) := Mux(setValid, setValue, rwdata(i)) - - when (nxtReadDataReady) { - readDataBits(i) := nxtReadDataBits(i) - } + readDataReady(i) := io.readAddr(i).valid || io.readSet(i).valid + readDataBits(i) := MuxCase(readDataBits(i), Seq( + io.readSet(i).valid -> io.readSet(i).value, + io.readAddr(i).valid -> rwdata(i) + )) } // Bus port priority encoded address.