Hummingbird E603 is a free available RISC-V CPU IP core provided by Nuclei System Technology, a leading RISC-V IP and solutions company based in mainland China.
Important
Hummingbird E603 is ONLY permitted for academic or educational
use; commercial use is NOT allowed unless a commercial license is obtained from Nuclei.
For commercial inquiries, please contact: contact@nucleisys.com
The RISC-V open instruction set architecture (ISA) is rapidly gaining popularity as a platform for education and research in computer architecture. However, there remains a lack of high-quality processor IP cores that are both advanced and accessible for academic use.
To bridge this gap, we present the Nuclei Hummingbird E603, a 64-bit RISC-V core that is free to use for academic and non-commercial applications. It is designed to be user-friendly, extensible, and suitable for a wide range of teaching and research scenarios.
- Support RV64IMAFDC architecture
- Support MMU with Linux capable
- Support double-precision FPU, 32KBytes ICache and 32KBytes DCache
- NICE (Nuclei Instruction Co-processor Extension) – Supports custom instruction extensions
- FPGA Prototyping – Easily deployable on FPGA platforms
- Rich Software Ecosystem – Toolchain and SDK support for easy application development
When synthesized with TSMC 22nm technology under worst-case conditions, the E603 can achieve over 1 GHz operating frequency.
Benchmark | Performance |
---|---|
CoreMark | 3.379 CoreMark/MHz |
Dhrystone | 1.724 DMIPS/MHz |
For technical details and usage guide, please refer to the doc directory.
For RTL simulation and FPGA synthesis, please refer to the documentations in the doc directory.
To help you get started quickly, we provide prebuilt materials that allow you to run the Hummingbird E603 Evaluation SoC on hardware without building everything from scratch.
Here is a list of prebuilt materials:
prebuilt
├── bitstream
│ ├── e603_ddr200t.bit # FPGA bitstream
│ └── e603_ddr200t.mcs # FPGA Memory Configuration System
├── boot # linux boot meterials for Hummingbird E603
│ ├── boot.scr
│ ├── uImage.lz4
│ └── uInitrd.lz4
└── freeloader # First stage bootloader for Hummingbird E603
└── freeloader.elf
You need to prepare a DDR200T board and a Hummingbird Debugger Kit to get started.
About how to program the Bitstream (BIT or MCS format) into the FPGA board, please refer to the document Nuclei RISC-V FPGA Evaluation Introduction.
The Nuclei NICE Wizard and realated profiling tools provide essential support for practicing custom instruction extension on the Hummingbird E603
The following Bilibili videos demostrate their usage in various scenarios:
- Nuclei NICE Wizard
- Profiling Tools in Nuclei Studio
- Code Coverage and Profiling - Part 1
- Code Coverage and Profiling - Part 2
The nuclei-sdk
folder in this repository contains a customized version of the
Nuclei SDK tailored for the Hummingbird E603.
For usage instructions, please refer to Quick Start with Nuclei SDK
To build and run the freeloader and Linux boot images, please refer to the dedicated README in the Nuclei Linux SDK repository.
We also provide the open-source Hummingbirdv2 E203 Core and SoC, a 32-bit RISC-V implementation designed for microcontroller applications.
Check it out here: riscv-mcu/e203_hbirdv2
If you would like to join our WeChat group for discussion and support, please scan the following QR code: