diff options
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 { |