p- / mips-verilog-cpu

A MIPS-I CPU implemented in SystemVerilog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Verilog CPU

An implementation of a MIPS I ISA compatible CPU.

See the docs folder for the CPU datasheet.

Dependencies

The following packages are required

  • gcc-mips-linux-gnu
  • make
  • iverilog (tested against v11.0 and commit-hash ef01dd1e8161b6ee8bf9549acfa0fefcd1ba8dcb)

Building and testing

To build the CPU, build the tests and run them:

$ make

To build the CPU:

$ make build

To build the tests, without running them:

$ make build-tests

To run the tests:

$ make test

Directory structure

  • .github contains Github Actions CI workflows for automated testing of the project
  • build contains files relevant to building the project, such as a Dockerfile that is used by the CI pipeline
  • docs contains CPU documentation, including the datasheet
  • rtl contains the HDL for the CPU
  • rtl/test contains Verilog module-level CPU test-benches
  • scripts contains various scripts created during development for the purpose of automating manual processes
  • test/mips contains instruction-level tests, such as C and ASM tests. The binaries are checked into Git to ensure reproducability. They can be re-assembled with ./test/build_instruction_testbench.sh and ./test/build_c_testbench.sh
  • test/rtl contains the HDL harness for instruction-level testing

About

A MIPS-I CPU implemented in SystemVerilog


Languages

Language:Assembly 49.3%Language:Verilog 43.2%Language:Shell 4.3%Language:C 1.3%Language:Makefile 1.1%Language:Dockerfile 0.4%Language:Python 0.4%