A MIPS (R3000) Processor Emulator and Visualisation tool
Simulizer allows you to write assembly code and run it on a simulated and visualised CPU. It has been designed to improve various features of SPIM.
Final Report (contains a more in depth description)
Package dependencies to run on a 64 bit Debian based GNU/Linux System (eg Ubuntu)
openjdk-8-jre
openjfx
(JavaFX for openJDK-8)libxslt1.1
(usually installed anyway)Windows
Example Algorithm Visualisation:
Example Pipeline Visualisation:
Example CPU Visualisation:
Simulizer uses a JavaScript engine along side the CPU emulation. Javascript code is placed between @{
and }@
delimiters inside MIPS comments. The JavaScript code can access information about the current state of the CPU (eg registers, memory etc) and can be used to:
printf
debugging or conditional breakpoints)The current data structures/graphics that can be visualised are:
It is possible to use a compiler to generate MIPS output which Simulizer can
consume (with some automatic editing). See work/gcc-mips.sh
for a script
which uses gcc
to cross compile for MIPS (the gcc cross compiler must be
installed manually).
This is how some of the more elaborate examples (eg snake.s
) were created.
Package dependencies to build on a 64 bit Debian based GNU/Linux System (eg Ubuntu)
openjdk-8-jdk
spim
(for compatiability tests)openjfx
(JavaFX for openJDK-8)gradle
(or use gradle plugin with an IDE or the gradlew
wrapper)/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar
to the SDK classpath
find /usr -name 'jfxrt.jar'
Charlie Street | Kelsey McKenna | Matthew Broadway | Michael Oultram | Theo Styles |
Simulizer is released under the GNU General Public License v3.0