aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2019-02-24 01:09:41 +0100
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2019-02-24 01:09:41 +0100
commit75ff39499dbf285257dabf1258f35f543d713c0a (patch)
tree4d82b9e21ea7fe83a5b610b696db12f121b0fd71 /qtmips_gui
parentdb9f47e36ff7df08d75a59055d5321dd9c56d66c (diff)
downloadqtmips-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.cpp16
-rw-r--r--qtmips_gui/coreview.h1
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 {