Skip to content
forked from skordal/potato

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

License

Notifications You must be signed in to change notification settings

santhoshvlsi/potato

 
 

Repository files navigation

The Potato Processor

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 Nexys 4 board using the example design provided in the example/ directory and the SHA-256 application from the benchmarks/ directory.

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.
  • Classic 5-stage RISC pipeline
  • Supports the Wishbone bus
  • Includes an instruction cache

Peripherals

The Potato processor includes a variety of Wishbone-compatible peripherals for use in projects. The 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 simple UART module with hardware FIFOs
  • 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. Generics are provided to enable/disable the instruction cache and to specify which areas of memory can be cached.

An example project providing a simple Potato-based SoC is available in the examples/ directory.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • VHDL 50.3%
  • Assembly 25.1%
  • C 21.3%
  • Makefile 2.0%
  • Other 1.3%