Move address calculation to ID.

This commit is contained in:
Sebastian Bugge 2024-11-12 15:01:04 +01:00
parent e0b6634a93
commit 3216c89dae
Signed by: kaholaz
GPG key ID: 2EFFEDEE03519691
7 changed files with 52 additions and 6 deletions

View file

@ -20,9 +20,11 @@ class EXBarrier extends MultiIOModule {
val in = Input(new EXBarrierIO)
val out = Output(new EXBarrierIO)
val flush = Output(Bool())
val branchAddr = Output(UInt(32.W))
val branchIn = Input(Bool())
val branchOut = Output(Bool())
val branchAddrIn = Input(UInt(32.W))
val branchAddrOut = Output(UInt(32.W))
val forwardEx = Output(new Forwarding)
})
val delay = Reg(new EXBarrierIO)
@ -31,5 +33,9 @@ class EXBarrier extends MultiIOModule {
io.flush := io.branchIn
io.branchOut := io.branchIn
io.branchAddr := io.in.ALUResult
io.branchAddrOut := io.branchAddrIn
io.forwardEx.write := io.in.writeEnable
io.forwardEx.writeAddr := io.in.writeAddr
io.forwardEx.writeData := Mux(io.in.jump, io.in.returnAddr, io.in.ALUResult)
}