From c270fb1b6cbdc9f84c861210e69e6865170d9793 Mon Sep 17 00:00:00 2001 From: bd Date: Fri, 18 Apr 2025 20:49:50 -0400 Subject: Display squashed, swap text entry to labels in stage view --- gui/gui.cc | 55 ++++++------- gui/gui.ui | 238 ++++++++++++++++++++++++++++++------------------------- src/sim/id.cc | 2 +- src/sim/if.cc | 2 +- src/sim/stage.cc | 2 +- 5 files changed, 154 insertions(+), 145 deletions(-) diff --git a/gui/gui.cc b/gui/gui.cc index 8281fb1..b3dc666 100644 --- a/gui/gui.cc +++ b/gui/gui.cc @@ -163,42 +163,35 @@ void GUI::onWorkerClockCycles(int cycles, int pc) { } void GUI::onWorkerFetchInfo(const std::vector info) { - //QString::asprintf("%04X", value) - if(!info.empty()) { - ui->fetch_pc->setText(QString::number(info[0])); - ui->fetch_instruction_bits->setText(QString::asprintf("%04X", info[1])); + if (!info.empty()) { + ui->fetch_squashed->setText(QString::number(info[0])); + ui->fetch_bits->setText(QString::asprintf("%04X", info[1])); } else { - ui->fetch_pc->clear(); - ui->fetch_instruction_bits->clear(); + ui->fetch_squashed->clear(); + ui->fetch_bits->clear(); } } void GUI::onWorkerDecodeInfo(const std::vector info) { if(!info.empty()) { - // ui->decode_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); - ui->decode_pc->setText(QString::number(info[0])); - ui->decode_s1->setText(QString::asprintf("%04X", info[1])); - // ui->decode_s2->setText(QString::asprintf("%04X", info[3])); - // ui->decode_s3->setText(QString::asprintf("%04X", info[4])); + ui->decode_squashed->setText(QString::number(info[0])); + ui->decode_bits->setText(QString::asprintf("%04X", info[1])); } else { - // ui->decode_mnemonic->clear(); - ui->decode_pc->clear(); - ui->decode_s1->clear(); - // ui->decode_s2->clear(); - // ui->decode_s3->clear(); + ui->decode_squashed->clear(); + ui->decode_bits->clear(); } } void GUI::onWorkerExecuteInfo(const std::vector info) { if(!info.empty()) { - ui->execute_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); - ui->execute_pc->setText(QString::number(info[1])); + ui->execute_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); + ui->execute_squashed->setText(QString::number(info[1])); ui->execute_s1->setText(QString::asprintf("%04X", info[2])); ui->execute_s2->setText(QString::asprintf("%04X", info[3])); ui->execute_s3->setText(QString::asprintf("%04X", info[4])); } else { ui->execute_mnemonic->clear(); - ui->execute_pc->clear(); + ui->execute_squashed->clear(); ui->execute_s1->clear(); ui->execute_s2->clear(); ui->execute_s3->clear(); @@ -207,14 +200,14 @@ void GUI::onWorkerExecuteInfo(const std::vector info) { void GUI::onWorkerMemoryInfo(const std::vector info) { if(!info.empty()) { - ui->memory_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); - ui->memory_pc->setText(QString::number(info[1])); + ui->memory_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); + ui->memory_squashed->setText(QString::number(info[1])); ui->memory_s1->setText(QString::asprintf("%04X", info[2])); ui->memory_s2->setText(QString::asprintf("%04X", info[3])); ui->memory_s3->setText(QString::asprintf("%04X", info[4])); } else { ui->memory_mnemonic->clear(); - ui->memory_pc->clear(); + ui->memory_squashed->clear(); ui->memory_s1->clear(); ui->memory_s2->clear(); ui->memory_s3->clear(); @@ -223,17 +216,15 @@ void GUI::onWorkerMemoryInfo(const std::vector info) { void GUI::onWorkerWriteBackInfo(const std::vector info) { if(!info.empty()) { - ui->wb_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); - ui->wb_pc->setText(QString::number(info[1])); - ui->wb_s1->setText(QString::asprintf("%04X", info[2])); - ui->wb_s2->setText(QString::asprintf("%04X", info[3])); - ui->wb_s3->setText(QString::asprintf("%04X", info[4])); + ui->write_mnemonic->setText(mnemonicToString((Mnemonic)info[0])); + ui->write_s1->setText(QString::asprintf("%04X", info[2])); + ui->write_s2->setText(QString::asprintf("%04X", info[3])); + ui->write_s3->setText(QString::asprintf("%04X", info[4])); } else { - ui->wb_mnemonic->clear(); - ui->wb_pc->clear(); - ui->wb_s1->clear(); - ui->wb_s2->clear(); - ui->wb_s3->clear(); + ui->write_mnemonic->clear(); + ui->write_s1->clear(); + ui->write_s2->clear(); + ui->write_s3->clear(); } } diff --git a/gui/gui.ui b/gui/gui.ui index ad6275f..ae853a2 100644 --- a/gui/gui.ui +++ b/gui/gui.ui @@ -121,6 +121,12 @@ + + + 150 + 0 + + Fetch @@ -129,15 +135,15 @@ - - + + - - + + @@ -154,6 +160,12 @@ + + + 150 + 0 + + Decode @@ -162,16 +174,16 @@ - - - + + + - - - + + + @@ -187,6 +199,12 @@ + + + 150 + 0 + + Execute @@ -195,41 +213,41 @@ - - + + - + - - - - - + + - - + + - - + + + + Qt::TextFormat::MarkdownText + @@ -244,6 +262,12 @@ + + + 150 + 0 + + Memory @@ -252,39 +276,36 @@ - - + + - + - - - - - + + - - + + - - + + @@ -301,6 +322,12 @@ + + + 150 + 0 + + Write Back @@ -309,39 +336,29 @@ - - - - - - - - + - - - - - + + - - + + - - + + @@ -411,64 +428,6 @@ - - - - - - - true - - - - Upload Files - - - - - - - Qt::Orientation::Horizontal - - - - - - - - - Upload Instruction File - - - - - - - Upload Program State File - - - - - - - Save Current Program State - - - - - - - - - - - - Qt::Orientation::Horizontal - - - - - @@ -573,7 +532,66 @@ - + + + + + + + + true + + + + Upload Files + + + + + + + Qt::Orientation::Horizontal + + + + + + + + + Load Instructions + + + + + + + Upload Program State + + + + + + + Save Program State + + + + + + + + + + + + Qt::Orientation::Horizontal + + + + + + diff --git a/src/sim/id.cc b/src/sim/id.cc index d10d695..59eefda 100644 --- a/src/sim/id.cc +++ b/src/sim/id.cc @@ -204,7 +204,7 @@ std::vector ID::stage_info() { std::vector info; if (this->curr_instr) { - info.push_back(this->curr_instr->get_pc()); + info.push_back(this->curr_instr->is_squashed()); info.push_back(this->curr_instr->get_instr_bits()); } return info; diff --git a/src/sim/if.cc b/src/sim/if.cc index 6494912..5f23115 100644 --- a/src/sim/if.cc +++ b/src/sim/if.cc @@ -26,7 +26,7 @@ InstrDTO *IF::advance(Response p) std::vector IF::stage_info() { std::vector info; if(this->curr_instr){ - info.push_back(this->curr_instr->get_pc()); + info.push_back(this->curr_instr->is_squashed()); info.push_back(this->curr_instr->get_instr_bits()); } return info; diff --git a/src/sim/stage.cc b/src/sim/stage.cc index d65ca87..5819543 100644 --- a/src/sim/stage.cc +++ b/src/sim/stage.cc @@ -59,7 +59,7 @@ std::vector Stage::stage_info() std::vector info; if (this->curr_instr) { info.push_back(this->curr_instr->get_mnemonic()); - info.push_back(this->curr_instr->get_pc()); + info.push_back(this->curr_instr->is_squashed()); info.push_back(this->curr_instr->get_s1()); info.push_back(this->curr_instr->get_s2()); info.push_back(this->curr_instr->get_s3()); -- cgit v1.2.3