ELISA is a general purpose instruction set architecture written in Python and based on MIPS. The goal of ELISA is to provide a custom instruction set simulator with a friendly user-interface that can be used to educate about the fundamentals of computer architecture and instruction set design. See the full writeup here.
- User-friendly GUI to view step by step how an ELISA program is executed
- A full ELISA assembler
- Customizable memory heirarchy! Simulate a program with up to three levels of caching, and customize cache size, associativity, and delay
- Benchmark tests written in ELISA assembly, including exchange sort and matrix multiplication
- GUI views of memory, assembled instructions, and pipeline internals
- A full code editor, if you want to hack away in assembly
- The ability to add breakpoints in your program, run N cycles, or run your program to completion
pip3 install -r requirements.txt
cd src/
python3 gui/gui.py
python3 src/simulator_demo.py
python3 src/memory_demo.py
pyuic5 src/gui/gui.ui -o src/gui/mainwindow.py
pytest