ThomasHornschuh / potato

A simple RISC-V processor for use in FPGA designs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Potato Processor

Note that the master branch may be in an unstable state. Use one of the releases to avoid problems when compiling the code.

Processor architecture overview diagramme

The Potato Processor is a simple RISC-V processor for use in FPGAs. It implements the 32-bit integer subset of the RISC-V specification version 2.0 and supports the machine mode and the Mbare addressing environment of the RISC-V privileged architecture, version 1.7.

The processor has been tested on a Arty board using the example SoC design provided in the example/ directory and the Hello World application available in software/hello. Synthesis and implementation has been tested on various versions of Xilinx' Vivado, most recently version 2016.1.

Features

  • Supports the complete 32-bit RISC-V base integer ISA (RV32I) version 2.0.
  • Supports machine mode and the Mbare addressing environment defined in the RISC-V privileged architecture version 1.7.
  • Supports up to 8 individually maskable external interrupts (IRQs).
  • 5-stage "classic" pipeline.
  • Supports the Wishbone bus, version B4.

Peripherals

The project includes a variety of Wishbone-compatible peripherals for use in system-on-chip designs based on the Potato processor. The main peripherals are:

  • Timer - a 32-bit timer with compare interrupt
  • GPIO - a configurable-width generic GPIO module
  • Memory - a block RAM memory module
  • UART - a UART module with hardware FIFOs and configurable baudrate
  • 7-Segment - a 7-segment display module, supporting up to 8 displays

Quick Start/Instantiating

To instantiate the processor, add the source files from the src/ folder to your project. Use the pp_potato entity to instantiate a processor with a wishbone interface. Some generics are provided to configure the processor core.

An example System-on-Chip for the Xilinx Arty board can be found in the example/ directory of the source repository.

About

A simple RISC-V processor for use in FPGA designs.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:VHDL 52.2%Language:Assembly 24.0%Language:C 21.3%Language:Makefile 2.2%Language:Shell 0.2%