Field programmable gate array (FPGA) is reconfigurable hardware that can implement the desired digital system function by configuring the configurable logic block (CLB), which is an element where logic can be implemented, and the routing elements that...
Field programmable gate array (FPGA) is reconfigurable hardware that can implement the desired digital system function by configuring the configurable logic block (CLB), which is an element where logic can be implemented, and the routing elements that connect CLBs. An embedded FPGA (eFPGA) is an integrated FPGA inside a System-on-Chip (SoC).
Recently, as the complexity of the application increases, eFPGA integrated SoC that can be reconfigured with hardware optimized for computing requirements is highlighted. However, the long reconfiguration time that is inevitable during reconfiguration to the desired hardware during run-time is a problem in utilizing eFPGA.
Frame-based configuration circuitry, which is used to reconfigure eFPGA, can shorten reconfiguration time because the region requiring reconfiguration can be directly accessed through frame address. Moreover, frame-based circuitry makes partial reconfiguration possible.
Partial reconfiguration only reconfigures a specific partial region, so the size of the bitstream to be prepared is less than the bitstream for the entire eFPGA fabric area. Thus, it has the advantage of shortening the reconfiguration time and being able to operate independent tasks at the same time. It doesn't affect the hardware of other areas being executed.
However, as several partial regions exist, if there is no manager which distributes finite eFPGA resources such as CLB for the tasks that require them, the eFPGA resource cannot be utilized efficiently, resulting in a low utilization rate and performance degradation.
In this paper, we propose a run-time reconfigurable SoC platform with frame-based eFPGA that is created using open-source tools. In the proposed SoC platform, eFPGA can be reconfigured during operation time by utilizing an application CPU core and eFPGA configuration RISC processor (FCRP) that reconfigures eFPGA.
In addition, we propose programmable resource management that is executed in the application CPU core. By implementing the resource management of partial regions programmatically in software, the tasks to be performed during the execution time can be scheduled according to the eFPGA resource status and resource allocation can be performed efficiently. As resource management is programmable, the user can modify and update eFPGA resource management strategy according to the characteristics of various application domains.
A possible run-time reconfiguration scenario was simulated with a resource management software program. The proposed shortest load first + max utilization scheduling achieved high average utilization in all three scenarios. Compared to the baseline FIFO scheduling, utilization improved on average by 40.14% and up to 83.11%. Also, compared to baseline scheduling, total operation time was shortened by an average of 7.4-time steps and a maximum of 10-time steps.