diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-12 23:18:27 +0100 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-12 23:18:27 +0100 |
commit | e8136120d2229ee06354a9efe942ba7edc3cfbdc (patch) | |
tree | a978a06b92e21b701a6ceb1a294dd4d205f09337 /qtmips_machine | |
parent | b67d168951e289a7a4ecd9ef50f9c84e9767ecda (diff) | |
download | qtmips-e8136120d2229ee06354a9efe942ba7edc3cfbdc.tar.gz qtmips-e8136120d2229ee06354a9efe942ba7edc3cfbdc.tar.bz2 qtmips-e8136120d2229ee06354a9efe942ba7edc3cfbdc.zip |
Add signals and multiplexers for ALU inputs forwarding.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_machine')
-rw-r--r-- | qtmips_machine/core.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/qtmips_machine/core.cpp b/qtmips_machine/core.cpp index e744848..5c8d8f3 100644 --- a/qtmips_machine/core.cpp +++ b/qtmips_machine/core.cpp @@ -591,11 +591,11 @@ void CorePipelined::do_step(bool skip_break) { // Forward result value if (dt_d.alu_req_rs && dt_m.rwrite == dt_d.inst.rs()) { dt_d.val_rs = dt_m.towrite_val; - dt_d.ff_rs = FORWARD_FROM_M; + dt_d.ff_rs = FORWARD_FROM_W; } if (dt_d.alu_req_rt && dt_m.rwrite == dt_d.inst.rt()) { dt_d.val_rt = dt_m.towrite_val; - dt_d.ff_rt = FORWARD_FROM_M; + dt_d.ff_rt = FORWARD_FROM_W; } } else stall = true; @@ -609,11 +609,11 @@ void CorePipelined::do_step(bool skip_break) { // Forward result value if (dt_d.alu_req_rs && dt_e.rwrite == dt_d.inst.rs()) { dt_d.val_rs = dt_e.alu_val; - dt_d.ff_rs = FORWARD_FROM_W; + dt_d.ff_rs = FORWARD_FROM_M; } if (dt_d.alu_req_rt && dt_e.rwrite == dt_d.inst.rt()) { dt_d.val_rt = dt_e.alu_val; - dt_d.ff_rt = FORWARD_FROM_W; + dt_d.ff_rt = FORWARD_FROM_M; } } } else |