Home

Awesome

MIPS Processor Implemented with Python and Icarus Verilog

CS3339 Semester Project Spring 2018

Build Status CodeFactor

Only the myHDL side of this project is currently functional. Please see this issue for more information

This project simulates a MIPS-like 5 stage pipeline through co-simulation between Python and Icarus Verilog. The machine is implemented with a 32-bit architecture through the myHDL library.

Execution :rocket:

From the project root:

  1. Install Docker
  2. Build the container:
  $ docker build -t mips32 .
  1. Run tests:
  $ docker run --rm mips32
  1. SSH into a new container if you want:
  $ docker run --rm -it mips32 bash
  1. Execute processor!
  $ docker run --rm mips32 python main.py

If needed run export PYTHONPATH=pwd

Repository Explained :mag_right:

To test all modules (from root):

python test/test_all_modules.py

To test a specific module (from root):

python test/test_module_name.py

run these commands only after you've gone through the Execution steps.

Links :key:

Authors :computer:

Acknowledgements :book:

Computer Organization and Design: The Hardware/Software Interface by David Patterson and John Hennessy