summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-18 20:49:50 -0400
committerbd <bdunahu@operationnull.com>2025-04-18 20:49:50 -0400
commitc270fb1b6cbdc9f84c861210e69e6865170d9793 (patch)
tree553a69390ffc81e5960a70c2732efb3cc3cdc70c
parent5c2de6eccd2d4b32ce81082b82917e8768394ed1 (diff)
Display squashed, swap text entry to labels in stage view
-rw-r--r--gui/gui.cc55
-rw-r--r--gui/gui.ui238
-rw-r--r--src/sim/id.cc2
-rw-r--r--src/sim/if.cc2
-rw-r--r--src/sim/stage.cc2
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<int> 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<int> 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<int> 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<int> info) {
void GUI::onWorkerMemoryInfo(const std::vector<int> 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<int> info) {
void GUI::onWorkerWriteBackInfo(const std::vector<int> 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 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="Fetch">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="title">
<string>Fetch</string>
</property>
@@ -129,15 +135,15 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QLineEdit" name="fetch_instruction_bits">
- <property name="placeholderText">
+ <widget class="QLabel" name="fetch_bits">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="fetch_pc">
- <property name="placeholderText">
+ <widget class="QLabel" name="fetch_squashed">
+ <property name="text">
<string/>
</property>
</widget>
@@ -154,6 +160,12 @@
</item>
<item>
<widget class="QGroupBox" name="Decode">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="title">
<string>Decode</string>
</property>
@@ -162,16 +174,16 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
- <widget class="QLineEdit" name="decode_s1">
- <property name="placeholderText">
- <string> </string>
+ <widget class="QLabel" name="decode_bits">
+ <property name="text">
+ <string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="decode_pc">
- <property name="placeholderText">
- <string> </string>
+ <widget class="QLabel" name="decode_squashed">
+ <property name="text">
+ <string/>
</property>
</widget>
</item>
@@ -187,6 +199,12 @@
</item>
<item>
<widget class="QGroupBox" name="Execute">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="title">
<string>Execute</string>
</property>
@@ -195,41 +213,41 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
- <widget class="QLineEdit" name="execute_s1">
- <property name="placeholderText">
+ <widget class="QLabel" name="execute_s1">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="execute_s2">
+ <widget class="QLabel" name="execute_s2">
<property name="text">
<string/>
</property>
- <property name="placeholderText">
- <string/>
- </property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="execute_s3">
- <property name="placeholderText">
+ <widget class="QLabel" name="execute_s3">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="execute_mnemonic">
- <property name="placeholderText">
+ <widget class="QLabel" name="execute_mnemonic">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="execute_pc">
- <property name="placeholderText">
+ <widget class="QLabel" name="execute_squashed">
+ <property name="text">
<string/>
</property>
+ <property name="textFormat">
+ <enum>Qt::TextFormat::MarkdownText</enum>
+ </property>
</widget>
</item>
</layout>
@@ -244,6 +262,12 @@
</item>
<item>
<widget class="QGroupBox" name="Memory">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="title">
<string>Memory</string>
</property>
@@ -252,39 +276,36 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
- <widget class="QLineEdit" name="memory_s1">
- <property name="placeholderText">
+ <widget class="QLabel" name="memory_s1">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="memory_s2">
+ <widget class="QLabel" name="memory_s2">
<property name="text">
<string/>
</property>
- <property name="placeholderText">
- <string/>
- </property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="memory_s3">
- <property name="placeholderText">
+ <widget class="QLabel" name="memory_s3">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="memory_mnemonic">
- <property name="placeholderText">
+ <widget class="QLabel" name="memory_mnemonic">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="memory_pc">
- <property name="placeholderText">
+ <widget class="QLabel" name="memory_squashed">
+ <property name="text">
<string/>
</property>
</widget>
@@ -301,6 +322,12 @@
</item>
<item>
<widget class="QGroupBox" name="WriteBack">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="title">
<string>Write Back</string>
</property>
@@ -309,39 +336,29 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
- <widget class="QLineEdit" name="wb_s1">
- <property name="placeholderText">
- <string/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="wb_s2">
+ <widget class="QLabel" name="write_s1">
<property name="text">
<string/>
</property>
- <property name="placeholderText">
- <string/>
- </property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="wb_s3">
- <property name="placeholderText">
+ <widget class="QLabel" name="write_s2">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="wb_mnemonic">
- <property name="placeholderText">
+ <widget class="QLabel" name="write_s3">
+ <property name="text">
<string/>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="wb_pc">
- <property name="placeholderText">
+ <widget class="QLabel" name="write_mnemonic">
+ <property name="text">
<string/>
</property>
</widget>
@@ -412,64 +429,6 @@
<item row="0" column="3">
<layout class="QVBoxLayout" name="verticalLayout_23">
<item>
- <layout class="QVBoxLayout" name="verticalLayout_24">
- <item>
- <widget class="QLabel" name="label_12">
- <property name="font">
- <font>
- <bold>true</bold>
- </font>
- </property>
- <property name="text">
- <string>Upload Files</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="Line" name="line_33">
- <property name="orientation">
- <enum>Qt::Orientation::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_25">
- <item>
- <widget class="QPushButton" name="upload_intructions_btn">
- <property name="text">
- <string>Upload Instruction File</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="upload_program_state_btn">
- <property name="text">
- <string>Upload Program State File</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="save_program_state_btn">
- <property name="text">
- <string>Save Current Program State</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_8"/>
- </item>
- </layout>
- </item>
- <item>
- <widget class="Line" name="line_34">
- <property name="orientation">
- <enum>Qt::Orientation::Horizontal</enum>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
<layout class="QVBoxLayout" name="verticalLayout_26">
<item>
<widget class="QLabel" name="label_13">
@@ -573,7 +532,66 @@
</widget>
</item>
<item>
- <layout class="QVBoxLayout" name="verticalLayout_29"/>
+ <layout class="QVBoxLayout" name="verticalLayout_29">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_24">
+ <item>
+ <widget class="QLabel" name="label_12">
+ <property name="font">
+ <font>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Upload Files</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line_33">
+ <property name="orientation">
+ <enum>Qt::Orientation::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_25">
+ <item>
+ <widget class="QPushButton" name="upload_intructions_btn">
+ <property name="text">
+ <string>Load Instructions</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="upload_program_state_btn">
+ <property name="text">
+ <string>Upload Program State</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="save_program_state_btn">
+ <property name="text">
+ <string>Save Program State</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_8"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="Line" name="line_34">
+ <property name="orientation">
+ <enum>Qt::Orientation::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
</item>
</layout>
</item>
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<int> ID::stage_info()
{
std::vector<int> 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<int> IF::stage_info() {
std::vector<int> 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<int> Stage::stage_info()
std::vector<int> 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());