OpenFPGA icon indicating copy to clipboard operation
OpenFPGA copied to clipboard

Bitstream updates and reconfiguration support in OpenFPGA

Open ohault opened this issue 1 year ago • 2 comments

FPGA bitstream generation and loading are becoming quite mature topics, but what about the issue of updates?

To dynamically modify a partial circuit on the reconfigurable structure at runtime, it would require the implementation of some dedicated functionality in the FPGAs.

How could such facilities be supported by OpenFPGA currently or in the future?

ohault avatar Jun 23 '24 11:06 ohault

@ohault It is a good point, and we are aiming to it. However, in my view, it requires both hardware and software supports. Some of them have already been done but still you may need more.

Hardware

We have upgraded our configuration protocols to support partial reconfiguration. You can reconfigure part of an FPGA fabric.

  • CCFF: Now each configuration chain can be controlled by a dedicated programmable block. See details at: https://openfpga.readthedocs.io/en/master/manual/arch_lang/config_protocol/#configuration-chain-example
  • Memory bank: Each row of configuration bits can be loaded by controlled a dedicated word line. See details: https://openfpga.readthedocs.io/en/master/manual/arch_lang/config_protocol/#quicklogic-memory-bank-example

Something is still missing could be gating the signals when loading a different bitstream.

Software

  • Placement may be reworked so that partial reconfiguration is only required in a small region of your FPGA.
  • Compare and merge bitstreams from two or more applications, with which it is easy to reconfigure an FPGA.

Here are my thoughts on this topic. If you see anything missing, feel free to contact me.

tangxifan avatar Jun 23 '24 22:06 tangxifan

@tangxifan Thanks for the detailed update. Is it currently possible to perform partial reconfiguration in the latest OpenFPGA releases, including the generation of bitstreams and runtime support?

sumimehra avatar Jun 02 '25 09:06 sumimehra