All Projects → hamsternz → simple-riscv

hamsternz / simple-riscv

Licence: MIT License
A simple three-stage RISC-V CPU

Programming Languages

VHDL
269 projects
tcl
693 projects
shell
77523 projects
assembly
5116 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to simple-riscv

getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (+257.14%)
Mutual labels:  fpga, vhdl, risc-v
Neorv32
A small and customizable full-scale 32-bit RISC-V soft-core CPU and SoC written in platform-independent VHDL.
Stars: ✭ 106 (+657.14%)
Mutual labels:  fpga, vhdl, risc-v
yarvi
Yet Another RISC-V Implementation
Stars: ✭ 59 (+321.43%)
Mutual labels:  fpga, risc-v
KyogenRV
The Simple 5-staged pipeline RISC-V written in chisel3 for intel FPGA.
Stars: ✭ 37 (+164.29%)
Mutual labels:  fpga, risc-v
PoC-Examples
This repository contains synthesizable examples which use the PoC-Library.
Stars: ✭ 27 (+92.86%)
Mutual labels:  fpga, vhdl
BenEaterVHDL
VHDL project to run a simple 8-bit computer very similar to the one built by Ben Eater (see https://eater.net)
Stars: ✭ 30 (+114.29%)
Mutual labels:  fpga, vhdl
vhdl-hdmi-out
HDMI Out VHDL code for 7-series Xilinx FPGAs
Stars: ✭ 36 (+157.14%)
Mutual labels:  fpga, vhdl
JSON-for-VHDL
A JSON library implemented in VHDL.
Stars: ✭ 56 (+300%)
Mutual labels:  fpga, vhdl
drec-fpga-intro
Materials for "Introduction to FPGA and Verilog" at MIPT DREC
Stars: ✭ 66 (+371.43%)
Mutual labels:  fpga, risc-v
math
Useful m-scripts for DSP (CIC, FIR, FFT, Fast convolution, Partial Filters etc.)
Stars: ✭ 15 (+7.14%)
Mutual labels:  fpga, vhdl
super-miyamoto-sprint
Homebrew game for homebrew FPGA game console
Stars: ✭ 48 (+242.86%)
Mutual labels:  fpga, risc-v
spu32
Small Processing Unit 32: A compact RV32I CPU written in Verilog
Stars: ✭ 51 (+264.29%)
Mutual labels:  fpga, risc-v
riscv-cores-list
RISC-V Cores, SoC platforms and SoCs
Stars: ✭ 651 (+4550%)
Mutual labels:  fpga, risc-v
SpinalCrypto
SpinalHDL - Cryptography libraries
Stars: ✭ 36 (+157.14%)
Mutual labels:  fpga, vhdl
quasiSoC
No-MMU Linux capable RISC-V SoC designed to be useful.
Stars: ✭ 29 (+107.14%)
Mutual labels:  fpga, risc-v
noasic
An open-source VHDL library for FPGA design.
Stars: ✭ 27 (+92.86%)
Mutual labels:  fpga, vhdl
fpga puf
🔑 Technology-agnostic Physical Unclonable Function (PUF) hardware module for any FPGA.
Stars: ✭ 44 (+214.29%)
Mutual labels:  fpga, vhdl
captouch
👇 Add capacitive touch buttons to any FPGA!
Stars: ✭ 96 (+585.71%)
Mutual labels:  fpga, vhdl
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (+78.57%)
Mutual labels:  fpga, vhdl
QNICE-FPGA
QNICE-FPGA is a 16-bit computer system for recreational programming built as a fully-fledged System-on-a-Chip in portable VHDL.
Stars: ✭ 51 (+264.29%)
Mutual labels:  fpga, vhdl

simple-riscv

A three-stage RISC-V CPU.

  • Fetch
  • Decode
  • Execute

Thsi is a follow on from Rudi-RV32I, a single-stage design. The more advanced design allows

  • Higher performance (clock rate)
  • Addtion of more functional units (eg CSR or multiplier)

Target platform

This is currently targeted at Xilinx 7-series parts, but there is no part-specific code in the design.

Building

  • Make sure your EDA tools are set up (Vivado)
  • cd into the build directory for your target board
  • run "build.sh" or "build.bat" depending on your OS

Simulation

Currently you can run a a check of the basic functioning of the RV32I ISA:

  • Make user your EDA tools are set up (Vivado)
  • cd into the sim/scripts directory
  • run "isa_check.sh" or "isa_check.bat" depending on your OS

Project Status

  • Can currently build and run C code (see sw/crt0/ for an example)
  • Currently in testing.
  • Can run all RV32I instructions, and a few protected ones.
  • Instruction fetch logic is very sub-optimal, but works
  • Implements at > 100MHz on Artix-7

Current features

  • RV32I instruction support.
  • Most instructions are single cycle (except jumps due to pipeline flush and load/store due to memory stalls).
  • Software exceptions are well on the way to completed.
  • Only a limited subset of CSRs are supported - look in hdl/cpu/csr for details.

Known issues

  • Unaligned memory accesses are not yet supported, but do not cause an exception
  • An I-cache is required, but current workaround is using dual-port memory
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].