Rename project and add preview images
MODIFY
README.md
README.md
-## RISC-V-SIM
-RISC-V-SIM is a graphical 5-stage pipeline simulator and integrated development environment built for the RISC-V instruction set architecture.
+## Ripes
+<p align="center">
+<a href="https://github.com/mortbopet/Ripes/">
+ <img src="https://github.com/mortbopet/Ripes/blob/master/resources/logo.png?raw=true" width="250" height="250" />
+</a>
+</p>
+Ripes is a graphical 5-stage pipeline simulator and integrated development environment built for the RISC-V instruction set architecture.
## Features
* **Simulator**:
* 5-stage graphical pipeline simulator with visualization for multiplexer input selection, register write/enable signals and more.
* Stage information: Current stage instructions are displayed above each stage, as well as in the instruction memory view
* Breakpoint setting
- * Supports RISC-V assembly files & RISC-V binary files (extracted .text segments)
+ * Supports RISC-V assembly files & RISC-V binary files (extracted *.text* segments)
* **Memory**:
* Display type selection for various display formats (Hex, Decimal, ...)
* Memory view with features such as scrolling adress saving and adress jumping
@@ -16,15 +21,26 @@ RISC-V-SIM is a graphical 5-stage pipeline simulator and integrated development
## Downloading & installation
No installation is required - all required libraries are packaged with the compiled executable.
-Precompiled versions for Windows are available at the [Releases page](https://github.com/mortbopet/RISC-V-SIM/releases)
+Precompiled versions for Windows are available at the [Releases page](https://github.com/mortbopet/Ripes/releases)
-## Usage
+# Usage
+## Editor
Get started by selecting one of the assembly examples through *File->Load Example->assembly*. In the **Editor** tab, you should now see that some RISC-V assembly code is present in the left view.
Try changing some values or adding more instructions - you should see that the right side will change accordingly. By default, this view shows the disassembled version of the binary instructions that the left view has been assembled into.
If you want to view the raw binary information, select *Binary* as *View mode*.
+<p align="center">
+ <img src="https://github.com/mortbopet/Ripes/blob/master/resources/asmeditorpng.png?raw=true"/>
+</p>
+
+## Processor
Once no syntax errors have been found in your assembly code, your code will automatically be assembled and loaded into the simulator.
Switching to the **Processor** tab, you'll be greeted by a datapath picturing a common RISC-V pipeline architecture. Note that a *Control* component nor most control signals aren't included in the view. This descision has been made to reduce clutter. All control signals are generated in the ID (Instruction decode) stage, and are propagated through the stage-separating registers accordingly.
+
+<p align="center">
+ <img src="https://github.com/mortbopet/Ripes/blob/master/resources/processortab.png?raw=true"/>
+</p>
+
Besides the datapath, this tab contains the following elements:
* Simulator control:
* **Step** is equal to activating the clock signal in the circuit. This will clock next-state signals into the registers, and new signals are calculated (propagate through the circuit)
@@ -39,18 +55,22 @@ Furthermore, the following options are available:
* The datapath image can be saved to a file
During execution, the instructions will propagate through the datapath, and be visible both above each stage of the pipeline, as well as in the instruction memory view. Furthermore, when the pipeline is stalled or flushed, this will be indicated above a pipeline stage.
-
+## Memory
Selecting the **Memory** tab will show both the register and memory view. The register view is similar to the one in the processor tab.
With the memory view, one can inspect all parts of the program memory - text, data, stack and other segments.
To navigate the memory view, one can use the scroll view to scroll through the memory. Furthermore, an adress can be saved for future use, which can be selected through the "Go-to" combobox. In the "Go-to" combobox, one can specify a specific adress to jump to
+<p align="center">
+ <img src="https://github.com/mortbopet/Ripes/blob/master/resources/memorytab.png?raw=true"/>
+</p>
+
## Building
Since RISC-V sim is built using pure C++ and Qt, all platforms that support Qt should be able to build and run the app.
Download Qt for Open Source development at https://www.qt.io/download.
Using the Qt installer, only the prebuilt components for your chosen compiler needs to be selected. When installing Qt, you also install QtCreator.
Open QtCreator and go to *Tools->Options->Build & Run->Kits* and make sure that your compilers have been detected properly and your kit (ie. your toolchain) is ready for use. A warning will be issued if you do not set a Debugger for your kit - this does not prevent you from building the project.
-Open *RISC-V-sim.pro* in QtCreator, and build in either release or debug mode.
+Open *Ripes.pro* in QtCreator, and build in either release or debug mode.
When building Qt apps, various dynamic libraries are required. Running the app through QtCreator, all Qt dll's are loaded into the path, and available for the application without any extra effort. If you wish to deploy or distribute the application, the required dependencies must be packaged with the compiled binary.
For Windows, `windeployqt` is a command that automatically detects the dependencies of your compiled executable, and copies the required Qt libraries into the executable folder. You can find this tool in your Qt installation folder
@@ -59,12 +79,12 @@ Similarly, `macdeployqt` should be available on mac machines.
For Linux, an open-source tool called [linuxdeployqt](https://github.com/probonopd/linuxdeployqt) exists. The purpose of this tool is similar to the windows equivalent, and is run in the same fashion. I've experienced that not all dependencies gets copied to the binary location when using this tools - ie. dependencies such as Qt svg libraries will be missing. Sadly, these remaining dependencies will have to be manually copied from your Qt installations *lib* folder.
# Credits
-RISC-V sim is made by Morten Borup Petersen
+Ripes is made by Morten Borup Petersen
Icons kindly provided by Flaticon authors: [Smashicons](https://www.flaticon.com/authors/smashicons), [Freepik](https://www.flaticon.com/authors/freepik), [Vectors Market](https://www.flaticon.com/authors/vectors-market) & [Pixel Buddha](https://www.flaticon.com/authors/pixel-buddha).
Powered by:
<a href="https://www.qt.io/">
- <img src="https://github.com/mortbopet/RISC-V-SIM/blob/master/resources/QtIcon.png" width="60" height="60" />
+ <img src="https://github.com/mortbopet/Ripes/blob/master/resources/QtIcon.png" width="60" height="60" />
</a>

RENAME
RISC-V-sim.pro
Ripes.pro
ADD
resources/asmeditorpng.png
resources/asmeditorpng.png
Binary files /dev/null and b/resources/asmeditorpng.png differ

ADD
resources/memorytab.png
resources/memorytab.png
Binary files /dev/null and b/resources/memorytab.png differ

ADD
resources/processortab.png
resources/processortab.png
Binary files /dev/null and b/resources/processortab.png differ

MODIFY
src/aboutwidget.cpp
src/aboutwidget.cpp
AboutWidget::AboutWidget(QWidget* parent) : QDialog(parent), ui(new Ui::AboutWidget) {
ui->setupUi(this);
-
- ui->description->setText(
-
- "A 5-stage RISC-V pipeline simulator with added assembly development "
- "environment. The simulator includes features such as forwarding, "
- "branching strategy selection, assembly development environment, "
- "breakpoint setting and more."
- "\n\nDeveloped as part of a 3-week project course at DTU - The Technical "
- "University of Denmark.");
}
AboutWidget::~AboutWidget() {

MODIFY
src/aboutwidget.ui
src/aboutwidget.ui
</font>
</property>
<property name="text">
- <string>RISC-V-SIM</string>
+ <string>Ripes</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="description">
<property name="text">
- <string> &lt; description &gt; </string>
+ <string>A 5-stage RISC-V pipeline simulator with assembly development environment.
+https://github.com/mortbopet/Ripes</string>
</property>
<property name="wordWrap">
<bool>true</bool>

MODIFY
src/addressdialog.cpp
src/addressdialog.cpp
@@ -8,7 +8,7 @@ AddressDialog::AddressDialog(QWidget* parent) : QDialog(parent), m_ui(new Ui::Ad
// set input range
m_ui->address->setInputMask("hhhhhhhh");
- setWindowTitle("RISC-V Simulator");
+ setWindowTitle("Ripes");
setWindowIcon(QIcon(QPixmap(":/icons/logo.png")));
connect(m_ui->address, &QLineEdit::textChanged, this, &AddressDialog::validateTargetAddress);

MODIFY
src/mainwindow.cpp
src/mainwindow.cpp
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), m_ui(new Ui::MainWindow) {
m_ui->setupUi(this);
- setWindowTitle("RISC-V-SIM");
+ setWindowTitle("Ripes");
setWindowIcon(QIcon(QPixmap(":/icons/logo.png")));
showMaximized();

Rename project and add preview images