Simplify IDBarrier.

This commit is contained in:
Sebastian Bugge 2024-11-08 01:30:51 +01:00
parent 42d77a0d85
commit 9192d576e7
Signed by: kaholaz
GPG key ID: 2EFFEDEE03519691
2 changed files with 52 additions and 123 deletions

View file

@ -80,39 +80,39 @@ class CPU extends MultiIOModule {
ID.io.instruction := IFBarrier.instructionOut
ID.io.pc := IFBarrier.PCout
IDBarrier.op1in := ID.io.op1
IDBarrier.op2in := ID.io.op2
IDBarrier.isOp1RValueIn := ID.io.isOp1RValue
IDBarrier.isOp2RValueIn := ID.io.isOp2RValue
IDBarrier.r1ValueIn := ID.io.r1Value
IDBarrier.r2ValueIn := ID.io.r2Value
IDBarrier.r1AddressIn := ID.io.r1Address
IDBarrier.r2AddressIn := ID.io.r2Address
IDBarrier.ALUopIn := ID.io.ALUOp
IDBarrier.returnAddrIn := ID.io.returnAddr
IDBarrier.jumpIn := ID.io.jump
IDBarrier.branchTypeIn := ID.io.branchType
IDBarrier.writeEnableIn := ID.io.writeEnableOut
IDBarrier.writeAddrIn := ID.io.writeAddrOut
IDBarrier.memWriteIn := ID.io.memWrite
IDBarrier.memReadIn := ID.io.memRead
IDBarrier.in.op1 := ID.io.op1
IDBarrier.in.op2 := ID.io.op2
IDBarrier.in.isOp1RValue := ID.io.isOp1RValue
IDBarrier.in.isOp2RValue := ID.io.isOp2RValue
IDBarrier.in.r1Value := ID.io.r1Value
IDBarrier.in.r2Value := ID.io.r2Value
IDBarrier.in.r1Address := ID.io.r1Address
IDBarrier.in.r2Address := ID.io.r2Address
IDBarrier.in.ALUop := ID.io.ALUOp
IDBarrier.in.returnAddr := ID.io.returnAddr
IDBarrier.in.jump := ID.io.jump
IDBarrier.in.branchType := ID.io.branchType
IDBarrier.in.writeEnable := ID.io.writeEnableOut
IDBarrier.in.writeAddr := ID.io.writeAddrOut
IDBarrier.in.memWrite := ID.io.memWrite
IDBarrier.in.memRead := ID.io.memRead
EX.io.op1 := forward(IDBarrier.op1out.asUInt(), IDBarrier.r1AddressOut, IDBarrier.isOp1RValueOut, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.op2 := forward(IDBarrier.op2out.asUInt(), IDBarrier.r2AddressOut, IDBarrier.isOp2RValueOut, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.ALUOp := IDBarrier.ALUopOut
EX.io.branchType := IDBarrier.branchTypeOut
EX.io.rs1ValueIn := forward(IDBarrier.r1ValueOut, IDBarrier.r1AddressOut, true.B, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.rs2ValueIn := forward(IDBarrier.r2ValueOut, IDBarrier.r2AddressOut, true.B, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.op1 := forward(IDBarrier.out.op1.asUInt(), IDBarrier.out.r1Address, IDBarrier.out.isOp1RValue, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.op2 := forward(IDBarrier.out.op2.asUInt(), IDBarrier.out.r2Address, IDBarrier.out.isOp2RValue, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.ALUOp := IDBarrier.out.ALUop
EX.io.branchType := IDBarrier.out.branchType
EX.io.rs1ValueIn := forward(IDBarrier.out.r1Value, IDBarrier.out.r1Address, true.B, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EX.io.rs2ValueIn := forward(IDBarrier.out.r2Value, IDBarrier.out.r2Address, true.B, mem = MEMBarrier.forwardMem, wb = MEMBarrier.forwardWb, id = MEMBarrier.forwardId).asSInt()
EXBarrier.in.r2Value := EX.io.rs2ValueOut.asUInt()
EXBarrier.in.ALUResult := EX.io.ALUResult.asUInt()
EXBarrier.in.branch := EX.io.branch
EXBarrier.in.jump := IDBarrier.jumpOut
EXBarrier.in.returnAddr := IDBarrier.returnAddrOut
EXBarrier.in.writeEnable := IDBarrier.writeEnableOut
EXBarrier.in.writeAddr := IDBarrier.writeAddrOut
EXBarrier.in.memWrite := IDBarrier.memWriteOut
EXBarrier.in.memRead := IDBarrier.memReadOut
EXBarrier.in.jump := IDBarrier.out.jump
EXBarrier.in.returnAddr := IDBarrier.out.returnAddr
EXBarrier.in.writeEnable := IDBarrier.out.writeEnable
EXBarrier.in.writeAddr := IDBarrier.out.writeAddr
EXBarrier.in.memWrite := IDBarrier.out.memWrite
EXBarrier.in.memRead := IDBarrier.out.memRead
MEM.io.ALUResult := EXBarrier.out.ALUResult
MEM.io.jump := EXBarrier.out.jump