diff options
author | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-24 01:09:41 +0100 |
---|---|---|
committer | Pavel Pisa <pisa@cmp.felk.cvut.cz> | 2019-02-24 01:09:41 +0100 |
commit | 75ff39499dbf285257dabf1258f35f543d713c0a (patch) | |
tree | 4d82b9e21ea7fe83a5b610b696db12f121b0fd71 /qtmips_gui | |
parent | db9f47e36ff7df08d75a59055d5321dd9c56d66c (diff) | |
download | qtmips-75ff39499dbf285257dabf1258f35f543d713c0a.tar.gz qtmips-75ff39499dbf285257dabf1258f35f543d713c0a.tar.bz2 qtmips-75ff39499dbf285257dabf1258f35f543d713c0a.zip |
Add some more labels and clarify rs, rt, rd in execute stage.
This allows simple visual compare of rs and rt in execution stage
with register number to be written in memory and write-back stages.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_gui')
-rw-r--r-- | qtmips_gui/coreview.cpp | 16 | ||||
-rw-r--r-- | qtmips_gui/coreview.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/qtmips_gui/coreview.cpp b/qtmips_gui/coreview.cpp index 7b5275f..ce438ca 100644 --- a/qtmips_gui/coreview.cpp +++ b/qtmips_gui/coreview.cpp @@ -204,10 +204,14 @@ CoreViewScene::CoreViewScene(machine::QtMipsMachine *machine) : QGraphicsScene() // Write back stage NEW_V(710, 330, writeback_value, true); // Write back value + new_label("RsD", 215, 241); NEW_V(205, 250, decode_rs_num_value, false, 2, 0, 10); + new_label("RtD", 215, 261); NEW_V(205, 270, decode_rt_num_value, false, 2, 0, 10); + new_label("RtD", 297, 372); NEW_V(320, 380, decode_rt_num_value, false, 2, 0, 10); + new_label("RdD", 297, 380); NEW_V(320, 390, decode_rd_num_value, false, 2, 0, 10); NEW_V(320, 500, writeback_regw_num_value, false, 2, 0, 10); @@ -472,6 +476,10 @@ CoreViewScenePipelined::CoreViewScenePipelined(machine::QtMipsMachine *machine) NEW_V(460, 105, execute_regw_value, false, 1); NEW_V(560, 105, memory_regw_value, false, 1); + new_label("RtE", 427, 372); + NEW_V(450, 380, execute_rt_num_value, false, 2, 0, 10); + new_label("RdE", 427, 380); + NEW_V(450, 390, execute_rd_num_value, false, 2, 0, 10); NEW_V(510, 385, execute_regw_num_value, false, 2, 0, 10); NEW_V(610, 385, memory_regw_num_value, false, 2, 0, 10); @@ -499,6 +507,14 @@ CoreViewScenePipelined::CoreViewScenePipelined(machine::QtMipsMachine *machine) con = new_bus(hu.j_alu_out->new_connector(CON_AX_X), dc.cmp->new_connector(0.5, 1)); con->setAxes({CON_AXIS_Y(380), CON_AXIS_X(330)}); + struct coreview::Latch::ConnectorPair regdest_dc_rs = latch_id_ex->new_connector(ex.mux_regdest->connector_in(0)->point().y() - latch_id_ex->y() - 8); + new_bus(dc.instr_bus->new_connector(0, ex.mux_regdest->connector_in(0)->y() - 8), regdest_dc_rs.in, 2); + new_label("RsE", 427, 364); + NEW_V(450, 370, execute_rs_num_value, false, 2, 0, 10); + NEW(Junction, ex.j_rs_num, 442, 372); + new_bus(regdest_dc_rs.out, ex.j_rs_num->new_connector(coreview::Connector::AX_X), 2); + + NEW_V(434, 250, execute_reg1_ff_value, false, 1); // Register 1 forward to ALU NEW_V(434, 303, execute_reg2_ff_value, false, 1); // Register 2 forward to ALU diff --git a/qtmips_gui/coreview.h b/qtmips_gui/coreview.h index fe6d951..0abc870 100644 --- a/qtmips_gui/coreview.h +++ b/qtmips_gui/coreview.h @@ -98,6 +98,7 @@ protected: } dc; struct { coreview::Junction *j_mux; + coreview::Junction *j_rs_num; coreview::Multiplexer *mux_imm, *mux_regdest; } ex; struct { |