ランキングに戻る

stnolting/neorv32

VHDLstnolting.github.io/neorv32/

🖥️ A small, customizable and extensible MCU-class 32-bit RISC-V soft-core CPU and microcontroller-like SoC written in platform-independent VHDL.

risc-vsoft-corevhdlfpgasocmicrocontrollerprocessorcpuverilogasic
スター成長
スター
2.2k
フォーク
360
週間成長
Issue
15
1k2k
2020年6月2022年6月2024年7月2026年7月
README

The NEORV32 RISC-V Processor

datasheet (pdf) datasheet (html) userguide (pdf) userguide (html) doxygen license

The NEORV32 Processor is a customizable microcontroller-like system on chip (SoC) built around the NEORV32 RISC-V CPU that is written in platform-independent VHDL. The processor is intended as auxiliary controller in larger SoC designs or as tiny and customized microcontroller. The project is intended to work out of the box and targets FPGA / RISC-V beginners as well as experienced users.

neorv32 Overview

Key Features

  • all-in-one package: CPU + SoC + Software Framework + Test Infrastructure
  • fully self-contained - no external dependencies
  • completely described in behavioral, platform-independent VHDL - no primitives, macros, attributes, etc.
  • technology friendly; e.g. all internal memories can be mapped to FPGA or ASIC primitives
  • extensive CPU & SoC configuration options for adapting to application requirements
  • aims to be as small as possible while being as RISC-V-compliant as possible
  • optimized for high clock frequencies to ease integration and timing closure
  • from zero to printf("hello world"); - completely open-source and documented
  • easy to use – intended to work out of the box

Project Status

release commits-since-latest-release

Task CI Status
GitHub pages GitHub Pages
Documentation Documentation
Processor check Processor
Verilog conversion Verilog Conversion
RISC-V compliance neorv32-riscv-act

The processor passes the official RISC-V Architectural Certification Tests (ACT). It can successfully run any software including CoreMark and FreeRTOS and can be synthesized for any target technology - tested on AMD, Intel, Lattice, Microchip, Gowin and Cologne Chip FPGAs. The processor has also been taped out several times as an ASIC.

Features

The NEORV32 Processor provides a full-featured microcontroller-like SoC build around the NEORV32 CPU. By using generics the design is highly configurable and allows a flexible customization to tailor the setup according to your needs. Note that all of the following SoC modules are entirely optional.

CPU Core(s)

Memories

  • tightly-coupled data and instruction memories (DMEM & IMEM) and caches (iCACHE & dCACHE)
  • serial memory controller (SMC) for transparent access to up to 2x PSRAM/flash chips (supporting XIP)
  • pre-installed bootloader (BOOTLDROM) with serial user interface; allows booting application code via UART, I²C or SPI flash and from SD card

Timers and Counters

  • RISC-V-compatible core-local interruptor (CLINT)
  • 32-bit general purpose timer (GPTMR) with up to 16 individual timer slices
  • watchdog timer (WDT)

Input / Output

  • standard serial interfaces: 2x UART, SPI (SPI host), SDI (SPI device), TWI (I²C host), TWD (I²C device), ONEWIRE (1-wire host)
  • up to 32 general purpose IOs (GPIO, interrupt-capable) and up to 32 individual PWM channels
  • smart LED interface (NEOLED) to directly control NeoPixel(TM) LEDs

SoC Connectivity

  • 32-bit external bus interface - Wishbone-compatible (XBUS); bridge for AXI4-compatible interfaces
  • stream link interface with independent RX and TX channels - AXI4-Stream-compatible (SLINK)

Advanced

  • true-random number generator (TRNG) based on the neoTRNG
  • custom functions subsystem (CFS) for custom tightly-coupled co-processors, accelerators or interfaces
  • direct memory access controller (DMA) for CPU-independent data transfers and conversions
  • RVFI-compatible trace port for advanced debugging, profiling or verification

Debugging

  • on-chip debugger (OCD) accessible via standard JTAG interface
  • compatible to the "RISC-V Debug Specification Version 1.0"
  • compatible with OpenOCD, GDB and Segger Embedded Studio
  • RISC-V trigger module for hardware-assisted break- and watchpoints
  • optional JTAG authentication module to implement custom security mechanisms
  • execution trace buffer (TRACER)

Size and Performance

The NEORV32 processor is optimized for minimal size. However, the actual size (silicon area or FPGA resources) depends on the specific configuration. For example, an RTOS-capable setup based on a rv32imc_Zicsr_Zicntr CPU configuration requires about 2300 LUTs and 1000 FFs and can run at up to 130 MHz (implementation results for an Altera Cyclone IV E EP4CE22F17C6 FPGA). This configuration provides a CoreMark score of 95 (0.95 CoreMarks/MHz). The corresponding dual-core version achieves a CoreMark score of 190 (1.9 CoreMarks/MHz).

More information regarding the CPU performance can be found in the Data Sheet: Performance.

Getting Started

This overview provides some quick links to the most important sections of the online Data Sheet and the online User Guide.

:mag: NEORV32 Project - An Introduction

:desktop_computer: NEORV32 Processor - The SoC

:abacus: NEORV32 CPU - The Core

:floppy_disk: Software Framework - The Software Ecosystem

:rocket: User Guide - Getting Started

This is an open-source project that is free of charge and provided under an permissive license. See the legal section for more information.

Contributing

Contributions are very welcome! If you’d like to improve something, fix a bug, or add a feature, feel free to open an issue or submit a pull request. See how to contribute. A big thank you goes out to the community and all contributors who help improve this project:

関連リポジトリ
simdjson/simdjson

Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

C++Apache License 2.0jsonjson-parser
simdjson.org
24k1.3k
mytechnotalent/Reverse-Engineering

A FREE comprehensive reverse engineering tutorial covering x86, x64, 32-bit/64-bit ARM, 8-bit AVR and 32-bit RISC-V architectures.

AssemblyApache License 2.0reverse-engineeringhacking
14k1.4k
k2-fsa/sherpa-onnx

Speech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages

C++Apache License 2.0asronnx
k2-fsa.github.io/sherpa/onnx/index.html
13.7k1.6k
RT-Thread/rt-thread

RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/

CApache License 2.0embedded-systemskernel
rt-thread.io
12.1k5.4k
platformio/platformio-core

Your Gateway to Embedded Software Development Excellence :alien:

PythonPyPIApache License 2.0iotembedded
platformio.org
9.4k897
OpenXiangShan/XiangShan

Open-source high-performance RISC-V processor

ScalaMulan Permissive Software License, Version 2risc-vmicroarchitecture
xiangshan.cc
7.2k925
tock/tock

A secure embedded operating system for microcontrollers

Rustcrates.ioOtherembeddedoperating-system
tockos.org
6.4k850
MichaIng/DietPi

Lightweight justice for your single-board computer!

ShellGNU General Public License v2.0dietpisbc
dietpi.com
6.2k557
alibaba/AliOS-Things

面向IoT领域的、高可伸缩的物联网操作系统,可去官网了解更多信息https://www.aliyun.com/product/aliosthings

CApache License 2.0iotembedded
4.6k1.2k
chyyuu/os_kernel_lab

OS kernel labs based on Rust/C Lang & RISC-V 64/X86-32

Rustcrates.ioGNU General Public License v3.0kernellab
rcore-os.github.io/rCore-Tutorial-Book-v3/index.html
4k1.9k
misprit7/computerraria

A fully compliant RISC-V computer made inside the game Terraria

Rustcrates.ioMIT Licenselogic-gatesrisc-v
youtu.be/zXPiqk0-zDY
3.8k56
Limine-Bootloader/Limine

Modern, secure, portable, multiprotocol bootloader and boot manager.

CBSD 2-Clause "Simplified" Licensebootloaderbios
3.5k212