diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-18 20:49:08 +0100 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-18 20:49:08 +0100 |
commit | 0ccd55c011f72b5bb7d11a1f683e5ac949702417 (patch) | |
tree | 16d004557afeb5b023c902fddc3acdcf6d5bc453 /qtmips_gui/coreview.cpp | |
parent | 1ef78a15bdac490cf5e0b74fcde8539719f4bfe6 (diff) | |
download | qtmips-0ccd55c011f72b5bb7d11a1f683e5ac949702417.tar.gz qtmips-0ccd55c011f72b5bb7d11a1f683e5ac949702417.tar.bz2 qtmips-0ccd55c011f72b5bb7d11a1f683e5ac949702417.zip |
Report forward and stall for branches and add forward to execution phase.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_gui/coreview.cpp')
-rw-r--r-- | qtmips_gui/coreview.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/qtmips_gui/coreview.cpp b/qtmips_gui/coreview.cpp index 89644ec..2e8ec5c 100644 --- a/qtmips_gui/coreview.cpp +++ b/qtmips_gui/coreview.cpp @@ -111,8 +111,8 @@ CoreViewScene::CoreViewScene(machine::QtMipsMachine *machine) : QGraphicsScene() {machine::EXCAUSE_HWBREAK, "HWBREAK"}, {machine::EXCAUSE_TRAP, "TRAP"}, {machine::EXCAUSE_OVERFLOW, "OVERFLOW"}}; - - NEW_MULTI(mm.multi_excause, 602, 447, memory_excause_value, excause_map); + NEW_MULTI(mm.multi_excause, 602, 447, memory_excause_value, excause_map, true); + new_label("Exception", 595, 437); // WriteBack stage NEW(Multiplexer, wb.mem_or_reg, 690, 252, 2, true); NEW(Junction, wb.j_reg_write_val, 411, 510); @@ -342,8 +342,9 @@ CoreViewScenePipelined::CoreViewScenePipelined(machine::QtMipsMachine *machine) if (machine->config().hazard_unit() != machine::MachineConfig::HU_NONE) { NEW(LogicBlock, hazard_unit, SC_WIDTH/2, SC_HEIGHT - 15, "Hazard Unit"); hazard_unit->setSize(SC_WIDTH - 100, 12); - static QMap<std::uint32_t, QString> stall_map = {{0, "NORMAL"},{1, "STALL"}}; - NEW_MULTI(hu.multi_stall, 480, 447, execute_stall_value, stall_map); + static QMap<std::uint32_t, QString> stall_map = {{0, "NORMAL"},{1, "STALL"},{2, "FORWARD"}}; + NEW_MULTI(hu.multi_stall, 480, 447, execute_stall_forward_value, stall_map); + NEW_MULTI(hu.multi_stall, 310, 340, branch_forward_value, stall_map); NEW_MULTI(hu.multi_stall, 250, SC_HEIGHT - 15, hu_stall_value, stall_map); } coreview::Connection *con; |