https://github.com/alifarazz/riscimposter
:shell: low level cycle accurate RISC simulator
https://github.com/alifarazz/riscimposter
c11 cycle-accurate mips risc simulator
Last synced: 8 months ago
JSON representation
:shell: low level cycle accurate RISC simulator
- Host: GitHub
- URL: https://github.com/alifarazz/riscimposter
- Owner: alifarazz
- License: mit
- Created: 2018-07-09T04:28:44.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-05-11T17:08:26.000Z (about 7 years ago)
- Last Synced: 2025-04-11T23:37:12.095Z (about 1 year ago)
- Topics: c11, cycle-accurate, mips, risc, simulator
- Language: C
- Homepage:
- Size: 20.5 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
RISC Imposter
########################################
A general purpose cycle accurate RISC cpu simulator.
This simulator currently supports MIPS arch. It is designed to support other CPU architectures as well.
Instruction Support:
====================
MIPS:
-------
* R type: Add, And, Or, Xor, Slt
* I type: Beq, Lw, Sw
* J type: j
Dependencies
============
Imposter needs meson build system and a sane C compiler.
macOS
-----
Imposter's dependencies can be installed via `Homebrew `_
:
.. code-block:: bash
$ brew install clang meson
Linux
-----
You need Clang or gcc, plus meson.
They can be installed using the system package manager, for example:
.. code-block:: bash
# Debian, Ubuntu, etc.
$ apt-get install meson clang
.. code-block:: bash
# Fedora
$ dnf install meson clang
.. code-block:: bash
# CentOS, RHEL, ...
$ yum install meson clang
.. code-block:: bash
# Arch Linux
$ pacman -S meson clang
Windows:
--------
First, ensure that you have a working C compiler.
Then install `meson `_
Compiling
=========
Go to the root of the project and run:
.. code-block:: bash
$ meson build
$ cd build/
$ ninja
Usage
=====
Tweak the ``ins.txt`` to include instructions then run Imposter:
.. code-block:: bash
$ ./imposter
Contribution:
=============
You know the drill:
* fork
* new feature branch
* do stuff
* commit
* push
* pull request