FRV2000 MCU Core: A RISC-V @ FPGA
Introduction
Putting MCU core into FPGA is becoming a universal practice these days. However, most MCU soft cores available today are tied to specific FPGA vendors. However, the rising of RISC-V has changed the status quo. And in this regard, PulseRain Technology is now offering the FRV2000 soft core MCUs, which support a variety of RISC-V instruction sets like RV32I and RV32IMC. In addition, to facilitate IoT applications, some of the FRV2000 cores are also security hardened.
2 x 2 Pipeline and Von Neumann Architecture
The FRV2000 MCU core has a Von Neumann memory architecture. Its pipeline is composed of 4 stages, as shown below:
• Instruction Fetch (IF)
• Instruction Decode (ID)
• Instruction Execution (IE)
• Register Write Back and Memory Access (MEM)
However, unlike traditional pipelines, FRV2000 MCU’s pipeline stages are mapped to 2 x 2 layout, as illustrated above.
In the 2 x 2 layout, each stage is active every other clock cycle. For the even cycle, only IF and IE stages are active, while for the odd cycle, only ID and MEM stages are active. In this way, the Instruction Fetch and Memory Access always happen on different clock cycles, thus to avoid the structural hazard caused by the single port memory.
Thanks to using single port memory to store both code and data, the FRV2000 soft MCU is quite portable and flexible across all FPGA platforms. Some FPGA platforms, like the Lattice iCE40 UltraPlus family, carry a large amount of SPRAM with very little EBR RAM. And those platforms will find themselves a good match with the PulseRain FRV2xxx when it comes to soft core MCU.
Design Resources
PulseRain RISC-V MCU TRM (Technical Reference Manual)
-
PulseRain RISC-V MCU GitHub Repository
https://github.com/PulseRain/PulseRain_RISCV_MCU
-
PulseRain FRV2100 Soft Core Processor GitHub Repository
https://github.com/PulseRain/FRV2100
-
MCU Master Platform - Mock FPGA Platform for PulseRain_RISCV_MCU master branch
https://github.com/PulseRain/MCU_Master_Platform
-
FPGA Platform - Lattice MachXO3D Breakout board (Rev A)
https://github.com/PulseRain/Reindeer_MachXO3D
Quick Start Guide
-
FPGA Platform - Step FPGA (Intel Cyclone 10 LP)
https://github.com/PulseRain/Reindeer_Step
-
FPGA Platform - Efinix Trion T20
-
Hardware Base Bootloader
https://github.com/PulseRain/Hardware_Bootloader
-
PulseRain RTL Library
https://github.com/PulseRain/PulseRain_rtl_lib
-
PulseRain RISC-V board manager package for Arduino IDE
https://github.com/PulseRain/Arduino_RISCV_IDE
License
This IP is offered. in dual licenses: an open source license (GPL v3) and a commercial license. Please contact us to request a quote if you are interested in obtaining the commercial license.