Contributor
Atharva Kashalkar

Low-latency I/O RISC-V CPU core in FPGA fabric


Mentors
Jason@BeagleBoard.org, Vedant Paranjape, lorforlinux, Kumar Abhishek
Organization
BeagleBoard.org
Technologies
linux, verilog, fpga, assembly, RISC-V ISA, Verification
Topics
CPU design
On several BeagleBone boards, there are an ultra-low latency 32-bit RISC CPUs called Programmable Real-time Units (PRUs) with register-mapped I/O directly to pins that is a custom architecture. The programmable nature of the PRU, along with its access to pins, events, and all SoC resources, provides flexibility in implementing fast real-time responses, specialized data handling operations, custom peripheral interfaces, and in offloading tasks from the other processor cores of the system-on-chip (SoC). To provide the capability of a Programmable Real-time Unit Industrial Control SubSystem (PRU-ICSS), I propose to deploy an existing RISC-V 32IM core with a customized Instruction Set Architecture on FPGA Fabric present on BeagleV-Fire. The goal of this deployment is to provide high bandwidth between the CPU and I/O, resulting in a on-board microcontroller. At project conclusion, BeagleV-Fire will host a fully functional PRU system that can execute Risc-V based instructions, and can be controlled by invoking specific functions within a C code using a PRU C library.