FlexBex: A RISC-V with a Reconfigurable Instruction Extension
Nguyen Cong Dao, Andrew Attwood, Bea Healy, Dirk Koch
Abstract
This paper presents an all open-source framework for adding embedded FPGAs into RISC-V CPUs. In our approach, an eFPGA is directly coupled with the CPU, and through supporting partial reconfiguration, instructions can be swapped at runtime. The eFPGA fabric is tiled into multiple slots in order to host different instructions in parallel, and multiple slots can be combined for hosting more complex instructions. Instructions can be swapped without interrupting the CPU, and instructions can have a different number of execution cycles to provide more flexibility for instruction implementations. Our case study integrates an Ibex RISC-V core from lowRISC together with our custom embedded FPGA supporting multiple regions, with logic, DSP, and Register File slices. This system had been taped out in a 180um TSMC process.