Giter VIP home page Giter VIP logo

potato's Introduction

The Potato Processor

Processor architecture overview diagramme

The Potato Processor is a simple RISC-V processor written in VHDL for use in FPGAs. It implements the 32-bit integer subset of the RISC-V Specification version 2.0 and supports large parts of the the machine mode specified in the RISC-V Privileged Architecture Specification v1.10.

The processor has been tested on an Arty board using the example SoC design provided in the example/ directory and the applications found in the software/ directory. Synthesis and implementation has been tested on various versions of Xilinx' Vivado toolchain, most recently version 2019.2.

Features

  • Supports the complete 32-bit RISC-V base integer ISA (RV32I) version 2.0
  • Supports large parts of the machine mode defined in the RISC-V Privileged Architecture version 1.10
  • Supports up to 8 individually maskable external interrupts (IRQs)
  • 5-stage "classic" RISC pipeline
  • Optional instruction cache
  • 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, configurable baudrate and RX/TX interrupts

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 Arty development board can be found in the example/ directory of the source repository.

Compiler Toolchain

To program the processor, you need an appropriate compiler toolchain. To compile a working toolchain, go to the RISCV GNU toolchain repository and clone the project. Compile and install the toolchain using the following commands (note that make will both build and install the toolchain, ensure that the destination directory is writeable by your user):

./configure --prefix=/opt/riscv-toolchain --with-abi=ilp32 --with-arch=rv32i
make

Reporting bugs and issues

Bugs and issues related to the Potato processor can be reported on the project's GitHub page.

potato's People

Contributors

skordal avatar siorpaes avatar kagandikmen avatar jeanthom avatar pcotret avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.