Basic RISC-V CPU implementation in VHDL.
Find a file
2020-09-12 00:23:50 +01:00
tests RPU 1.0 2020-09-11 00:06:01 +01:00
vhdl RPU 1.0 2020-09-11 00:06:01 +01:00
LICENSE Add License 2018-09-17 23:24:42 +01:00
README.md Clarify DooM timedemo score CPU speed 2020-09-12 00:23:50 +01:00
rpu_core_diagram.png Initial commit. Tested on ArtyS7-RPU-SoC and passes SD bootloader and DDR3 memory testing. 2018-09-11 23:53:41 +01:00

RPU

Basic RISC-V CPU implementation in VHDL.

This is a RV32IMZcsr ISA CPU implementation, based off of my TPU CPU design. It is very simple, but has run rv32i-compiled GCC toolchain binaries at over 200MHz on a Digilent Arty S7-50 board, built with Xilinx Spartan 7 tools.

When used in the ArtyS7-RPU-SoC @ 100MHZ it can run DooM timedemo3 at ~8fps, and boot operating systems such as Zephyr RTOS.

The Wiki will have more in depth information: https://github.com/Domipheus/RPU/wiki

Please let me know if you are using any of the RPU design in your own projects! I am contactable on twitter @domipheus.

Implementation

Diagram does not include recently added CSR & LINT units, or the fact that interrupts are supported.

RPU Core overview

Implementation detail is written about via blogs available at http://labs.domipheus.com/blog/designing-a-cpu-in-vhdl-part-15-introducing-rpu/

The tests in the repo are incredibly old and basic, and included only as a baseline to help. They will be expanded upon in time. The core_tb should work for basic simulator use and could be expanded for more complex debugging.

Currently working on: Privilege modes, memory system overhaul, mmu support