🖥️ A small, customizable and extensible MCU-class 32-bit RISC-V soft-core CPU and microcontroller-like SoC written in platform-independent VHDL.
See the codeThe 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 an auxiliary controller in larger SoC designs or as tiny and customized microcontroller. The project is intended to work out of the box and targets digital design / RISC-V beginners as well as experienced users.

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
♻️ Looking for an all-Verilog version? Have a look at the auto-conversion setup.
🔍 Continuous integration to check for regressions.
✔️ Passes the official RISC-V Architectural Certification Tests.
📂 Exemplary setups and community projects targeting various FPGA boards and toolchains to get started.
📦 The entire processor is also available as Vivado IP Block.
🐧 Capable of running nommu-Linux.
🏗️ LiteX SoC builder integration.
⚙️ MicroPython port, Ada support, and Rust integration via Embassy framework.
🖥️ Pre-configured Eclipse project.
🏷️ The project's change log is available in CHANGELOG.md.
🚀 Check out the quick links below and the User Guide to get started.
📚 For detailed information see the online documentation.
| Task | CI Status |
|---|---|
| GitHub pages | |
| Documentation | |
| Processor check | |
| Verilog conversion | |
| RISC-V compliance |
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.
The project provides a full-featured microcontroller-like SoC built 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)
RV32
I
E
M
A
C
B
U
X
Sdext
Sdtrig
Smcntrpmf
Smpmp
Zaamo
Zalrsc
Zba
Zbb
Zbc
Zbkb
Zbkc
Zbkx
Zbs
Zcb
Zcmop
Zfinx
Zibi
Zicntr
Zicond
Zicsr
Zifencei
Zihpm
Zimop
Zmmul
Zkn
Zknd
Zkne
Zknh
Zkt
Zks
Zksed
Zksh
Xcfumachine and optional user privilege modesXcfu ISA extension)
for custom RISC-V instructionsMemories
Timers and Counters
Input / Output
SoC Connectivity
Advanced
Debugging
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.
This overview provides some quick links to the most important sections of the online Data Sheet and the online User Guide.
This is an open-source project that is free of charge and provided under a permissive license. See the legal section for more information.
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:
1,558 followers · starred Nov 2021
553 followers · starred Aug 2021
140 followers · starred Dec 2025
651 followers · starred Mar 2021
🖥️ A small, customizable and extensible MCU-class 32-bit RISC-V soft-core CPU and microcontroller-like SoC written in platform-independent VHDL.
See the codeThe 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 an auxiliary controller in larger SoC designs or as tiny and customized microcontroller. The project is intended to work out of the box and targets digital design / RISC-V beginners as well as experienced users.

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
♻️ Looking for an all-Verilog version? Have a look at the auto-conversion setup.
🔍 Continuous integration to check for regressions.
✔️ Passes the official RISC-V Architectural Certification Tests.
📂 Exemplary setups and community projects targeting various FPGA boards and toolchains to get started.
📦 The entire processor is also available as Vivado IP Block.
🐧 Capable of running nommu-Linux.
🏗️ LiteX SoC builder integration.
⚙️ MicroPython port, Ada support, and Rust integration via Embassy framework.
🖥️ Pre-configured Eclipse project.
🏷️ The project's change log is available in CHANGELOG.md.
🚀 Check out the quick links below and the User Guide to get started.
📚 For detailed information see the online documentation.
| Task | CI Status |
|---|---|
| GitHub pages | |
| Documentation | |
| Processor check | |
| Verilog conversion | |
| RISC-V compliance |
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.
The project provides a full-featured microcontroller-like SoC built 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)
RV32
I
E
M
A
C
B
U
X
Sdext
Sdtrig
Smcntrpmf
Smpmp
Zaamo
Zalrsc
Zba
Zbb
Zbc
Zbkb
Zbkc
Zbkx
Zbs
Zcb
Zcmop
Zfinx
Zibi
Zicntr
Zicond
Zicsr
Zifencei
Zihpm
Zimop
Zmmul
Zkn
Zknd
Zkne
Zknh
Zkt
Zks
Zksed
Zksh
Xcfumachine and optional user privilege modesXcfu ISA extension)
for custom RISC-V instructionsMemories
Timers and Counters
Input / Output
SoC Connectivity
Advanced
Debugging
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.
This overview provides some quick links to the most important sections of the online Data Sheet and the online User Guide.
This is an open-source project that is free of charge and provided under a permissive license. See the legal section for more information.
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:
1,558 followers · starred Nov 2021
553 followers · starred Aug 2021
140 followers · starred Dec 2025
651 followers · starred Mar 2021