perilus

RISC-V processor built with Chisel
git clone https://git.bradleygannon.com/perilus.git
Log | Files | Refs | Submodules | README

commit 04c8427eaf8d42b9291a0a0c929200f079651f8b
parent 480ff5191f91fbef276086cbd7fd788fdb6d4528
Author: Bradley Gannon <bradley@bradleygannon.com>
Date:   Sun,  4 Oct 2026 12:48:58 -0400

Fix a bug where the data mask was being applied incorrectly

Diffstat:
Msrc/main/scala/controlUnit.scala | 4+++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/main/scala/controlUnit.scala b/src/main/scala/controlUnit.scala @@ -47,7 +47,9 @@ class ControlUnit(withDebug: Boolean = false) extends Module { io.regWrite := false.B io.resultSrc := ResultSrc.aluOutBuf - when(io.op === Opcode.load || io.op === Opcode.store) { + when( + (state === ControlUnitState.memRead || state === ControlUnitState.memWb || state === ControlUnitState.memWrite) && (io.op === Opcode.load || io.op === Opcode.store) + ) { when(io.funct3 === 0.U || io.funct3 === 4.U) { io.dataMask := DataMask.byte }.elsewhen(io.funct3 === 1.U || io.funct3 === 5.U) {