Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Partial FPGA reconfiguration and performance

Tags:

real-time

fpga

These questions may sound very esoteric to most, but I'd really like to know more about this stuff.

1st

I'm wondering how long does it take for an FPGA to reconfigure itself, from the time its modelled circuit is powered down to the time a new one is in place and operational.

I am aware that Place-&-Route is a costly process, but that is because the P&R tools must decide where to put the components and how to route them.

Consider that P&R analysis is done, and all that's left is actually reconfiguring the FPGA: is that a slow process by itself? Can it be done hundreds or thousands of times per second?

There are several implications for such a possibility that I'm curious about. To name 2, it could allow us to serve an FPGA to multiple concurrent "clients" (the same way a GPU is capable of rendering stuff for multiple different programs), or provide for extremely fine-tuned circuits for long number-crunching processes of well-defined but numerous processing stages of highly asynchronous processing (think: complex Haskell programs).

2nd

Anothing thing I'd like to ask is whether an FPGA can be partially reconfigured in realtime, while the modelled circuit is powered and operational, as long as the parts being reconfigured are powered off, of course.

Several interesting implications would arise from such a possibility as well, for example allowing for realtime reconfigurable buses, hardware emulation of neural networks, etc.

Are such things being extensively researched right now? And how likely are they to be researched in the future?

like image 959
Gui Prá Avatar asked Jun 21 '13 02:06

Gui Prá


People also ask

What is the performance of FPGA?

FPGA also provides huge processing capabilities with a great power efficiency, reducing thermal management and space requirements. This feature allows the integration of acceleration hardware in small housings, on-board equipment, or extreme temperature environments. Interfaces are another FPGA's strong point.

What is reconfiguration in FPGA?

Reconfiguring an FPGA means changing its functionality to support a new application, and it is equal to have some new piece of hardware, mapped on the FPGA chip, having to implement a new functionality.

What are the important features and advantages of dynamically reconfigurable FPGAs?

Dynamic partial reconfigurable FPGAs offer new design space with a variety of benefits: reduce the configuration time and save memory as the partial reconfiguration files (bitstreams) are smaller than full ones.

What is partial reconfiguration in FPGA?

Partial reconfiguration (PR) allows you to reconfigure a portion of the FPGA dynamically while the remaining FPGA design continues to function. Create multiple personas for a particular region in your design without impacting operation in areas outside this region.


1 Answers

The reconfiguration time depends on a lot of things. The big ones are

  • how much of the FPGA you are reconfiguring (how many bits need to go in)
  • How fast you can get the data in (using quad-SPI seems to be the favoured way of bringing FPGAs up fast nowadays)

Big FPGAs can be many 10s to 100s of milliseconds to completely reconfigure.

A small configuration can be achieved within the PCI express startup time (100ms IIRC) in order to enable a pure FPGA card to be enumerated in time and then the rest of the config can be loaded later.

In terms of very dynamic reconfiguration, its more likely that the bottle neck is swapping the various data sets in and out that go with each bitstream - I imagine anything which needs a lot of FPGA to accelerate it is a pretty large dataset... but you might have other applications in mind?

like image 195
Martin Thompson Avatar answered Sep 19 '22 22:09

Martin Thompson