All Projects → Simulizer → Simulizer

Simulizer / Simulizer

Licence: GPL-3.0 license
A MIPS (R3000) Processor Emulator and Visualisation tool

Programming Languages

java
68154 projects - #9 most used programming language
assembly
5116 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Simulizer

Awesome-Retro-Docs
A curated collection of technical documentation for Arcades, Handhelds, Consoles, Computers and MCU’s.
Stars: ✭ 128 (+357.14%)
Mutual labels:  mips
MLDemos
Machine Learning Demonstrations: A graphical interface to draw data, apply a diverse array of machine learning tools to it, and directly see the results in a visual and understandable manner.
Stars: ✭ 46 (+64.29%)
Mutual labels:  visualisation
agrid
A grid for modelling, analyse, map and visualise multidimensional and multivariate data
Stars: ✭ 16 (-42.86%)
Mutual labels:  visualisation
leaflet-velocity
Visualise velocity data on a leaflet layer
Stars: ✭ 467 (+1567.86%)
Mutual labels:  visualisation
OmniGraph
Desktop application for creating graphs and algorithm visualisation
Stars: ✭ 27 (-3.57%)
Mutual labels:  algorithm-visualisation
tor-router-nexx-wt3020
Make a cheap TOR router for $10
Stars: ✭ 15 (-46.43%)
Mutual labels:  mips
FineCodeCoverage
Visualize unit test code coverage easily for free in Visual Studio Community Edition (and other editions too)
Stars: ✭ 391 (+1296.43%)
Mutual labels:  visualisation
breadcrumbs
Visualise a custom hierarchy in your Obsidian vault. API: https://skepticmystic.github.io/breadcrumbs/
Stars: ✭ 299 (+967.86%)
Mutual labels:  visualisation
COVID breakdown
COVID-19 statistics in Taiwan
Stars: ✭ 15 (-46.43%)
Mutual labels:  visualisation
toddler
Toddler is a well-designed usable and portable microkernel OS
Stars: ✭ 70 (+150%)
Mutual labels:  mips
python-tsp-simulated-annealing
Visualisation of Simulated Annealing algorithm to solve TSP
Stars: ✭ 41 (+46.43%)
Mutual labels:  visualisation
defcon26 badgehacking
Notes and things regarding hacking DEFCON 26's badge
Stars: ✭ 27 (-3.57%)
Mutual labels:  mips
cache-simulator
A processor cache simulator for the MIPS architecture
Stars: ✭ 29 (+3.57%)
Mutual labels:  mips
AISpace2
Notebooks for learning AI.
Stars: ✭ 22 (-21.43%)
Mutual labels:  algorithm-visualisation
SortVis
https://airtucha.github.io/SortVis
Stars: ✭ 23 (-17.86%)
Mutual labels:  visualisation
scalajs-highcharts
Scala.js static typed facades for Highcharts library
Stars: ✭ 30 (+7.14%)
Mutual labels:  visualisation
pycobra
python library implementing ensemble methods for regression, classification and visualisation tools including Voronoi tesselations.
Stars: ✭ 111 (+296.43%)
Mutual labels:  visualisation
yams
YAMS: Awesome MIPS Server
Stars: ✭ 17 (-39.29%)
Mutual labels:  mips
pctation
PlayStation emulator & debugger in C++17
Stars: ✭ 103 (+267.86%)
Mutual labels:  mips
qvisualisation
Visualisation toolbox based on Qt WebEngine and D3.js
Stars: ✭ 25 (-10.71%)
Mutual labels:  visualisation

banner

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.

CircleCI

forthebadge

User Guide

Final Report (contains a more in depth description)

Features

  • A code editor with syntax highlighting for the MIPS language, along with real-time error checking and tooltips.
  • Simulation and visualisation of an abstract simplified CPU.
  • A window showing the values of the registers as programs are running.
  • Interaction with the CPU, e.g. controlling the clock speed, pausing, stepping through execution, etc.
  • Helpful messages and animations as the simulation is running to help the user understand how the CPU is operating.
  • High-level visualisation of annotated programs, see below.

Running

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

Screenshots

Example Algorithm Visualisation:

Example Pipeline Visualisation:

Example CPU Visualisation:

Annotations

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:

  • signal 'high level' algorithm visualisations (eg integer lists: swapping elements and highlighting elements, tower of Hanoi: disk swapping, bitmap rendering of memory location etc)
  • prototype complex code before transcribing to assembly
  • debugging tool (very useful for printf debugging or conditional breakpoints)

High-Level Visualiation

The current data structures/graphics that can be visualised are:

  • Lists
  • Tower of Hanoi
  • Canvas (complete access to a JavaFX canvas)
    • can be used to render a bitmap of memory locations
    • can be used to draw any shapes
    • can be used to create your own high level visualisations from Javascript!

MIPS Cross Compiling C(++)

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.

Building

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)
  • add /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar to the SDK classpath
    • your placement might be different. try: find /usr -name 'jfxrt.jar'
    • in Intellij IDEA: File > Project Structure > SDKs > 1.8 > Classpath
  • gradle will handle the rest of the dependencies

Meet the Team

Charlie Street Kelsey McKenna Matthew Broadway Michael Oultram Theo Styles
Charlie Street Kelsey McKenna Matthew Broadway Michael Oultram Theo Styles

Licence

Simulizer is released under the GNU General Public License v3.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].