FPGA

Partial reconfiguration in FPGA

By CourseTron Team ·  7 min read ·  Updated Oct 2026 💬 𝕏 in f
Table of Contents
    🖨  Download / Print this guide (PDF)

    In short: Partial reconfiguration lets you reprogram a defined region of an FPGA at run time while the rest of the device keeps operating. It saves silicon area, cuts power, and enables adaptive systems that swap hardware functions on demand without a full chip reset.

    What Is partial reconfiguration?

    Partial reconfiguration (PR) is the ability to load a new configuration into one portion of an SRAM-based FPGA while the remaining logic continues running undisturbed. A conventional FPGA is configured once at power-up by streaming a full bitstream into its configuration memory. With PR, you additionally generate smaller partial bitstreams that overwrite only the configuration cells belonging to a carved-out region. The clocks, data, and state in the untouched part of the fabric are never interrupted.

    AMD/Xilinx markets its modern flow for this capability as Dynamic Function eXchange (DFX), and Intel/Altera uses the term partial reconfiguration directly. Conceptually both do the same thing: they let a single device host several hardware functions over time in the same physical area, much as an operating system time-shares a CPU across processes.

    Full vs partial bitstreamFPGA fabricStatic regionkeeps runningReconfigurablepartitionFull bitstreamwhole device, at power-upPartial bitstreamone region, often 5-20x smallerCourseTron · coursetron.com
    A full bitstream configures the whole FPGA, while a partial bitstream rewrites only the reconfigurable partition and leaves the static region running.

    Why It Matters and How It Works

    FPGA fabric is expensive. If a design needs ten accelerators but only ever uses one at a time, implementing all ten statically wastes most of the die. Partial reconfiguration breaks that trade-off by letting mutually exclusive functions share the same reconfigurable partition (RP), loading whichever one is needed on demand.

    The mechanism rests on three ideas:

    • Floorplanned regions. The designer draws a physical rectangle (a Pblock) that fences off the columns of CLBs, DSPs, and BRAMs the reconfigurable logic may use. The tool guarantees the partial bitstream only touches frames inside that box.
    • A stable static region. Everything outside the RP (clocking, I/O, the PCIe or memory controller, the reconfiguration controller itself) is placed, routed, and frozen once. It must never be rewritten by a partial bitstream.
    • Partition pins and decoupling. Signals cross the static/reconfigurable boundary through fixed anchor points called partition pins. Because logic in the RP is briefly undefined during loading, the static side normally decouples those interfaces — holding inputs at a safe value — until the new module signals readiness.

    The partial bitstream is delivered through an internal configuration port. On AMD devices that is the ICAP (Internal Configuration Access Port) or the MCAP via PCIe; on Intel devices it is driven through the PR controller IP. A small controller in the static region fetches the partial bitstream from DDR or flash and streams it into the port, typically taking microseconds to a few milliseconds depending on region size and interface width.

    Partial bitstream delivery pathDDR / flashStatic regionPR controllerICAP / MCAPpartialbitstreamReconfigurablepartition (Pblock)Module variant AModule variant BCourseTron · coursetron.com
    A controller in the static region fetches the partial bitstream from DDR or flash and streams it through ICAP or MCAP into the Pblock that hosts the swappable modules.
    Key fact: A partial bitstream is sized to its region, not the whole device, so it is often 5-20x smaller than the full bitstream. That is why reconfiguration completes in microseconds-to-milliseconds and why partial bitstreams cost far less flash to store.

    Types and Variants of Reconfiguration

    Several distinct forms of run-time reconfiguration are worth separating because interviewers often conflate them:

    • Dynamic (active) PR — the region is reloaded while the static logic keeps running. This is the headline use case.
    • Static PR — the whole user application is halted during the swap. Simpler, but loses the main advantage of uninterrupted operation.
    • Single vs. nested DFX — a reconfigurable partition can itself contain a smaller reconfigurable partition, letting a coarse function be swapped while a sub-block within it is independently swapped.
    • Self-reconfiguration — logic inside the FPGA (often a soft or hard processor such as MicroBlaze or the Zynq PS) drives ICAP to reprogram another part of the same device without any external host.

    A related but different concept is tandem or fast configuration, which speeds initial bring-up; it is not PR because it does not swap functions at run time.

    How Partial Reconfiguration Is Used in Practice

    Real deployments lean on PR wherever functions are time-multiplexed or must be updated in the field:

    • Software-defined radio. Swap modulation/demodulation chains (QPSK, OFDM, filters) as protocols change while the RF front end keeps streaming.
    • Cloud and data-center acceleration. Platforms like AWS F1 load a tenant's accelerator "shell + role" so the static shell (networking, DMA) stays up while the user role is reconfigured per workload.
    • Adaptive video and AI inference. Load the one CNN layer engine or codec needed right now, saving the DSPs that idle functions would otherwise lock up.
    • Fault tolerance and SEU repair. In aerospace, scrubbing rewrites corrupted frames and PR reloads a damaged module without rebooting the system.
    • Field updates. Push a bug-fix or new feature to one block of a deployed board without recertifying or reloading the entire design.

    Common pitfalls that teams must fix: forgetting to decouple the boundary (causing glitches that propagate into the static domain), letting routing from the static region "pass through" the RP (which breaks module independence), mismatched module footprints between reconfigurable variants, and clocking a reconfigurable module from a BUFG that was not reserved in the static floorplan.

    Swapping a module at run timeStatic regionkeeps running throughoutReconfigurablepartitionModule ADecoupled, loadingModule BtimeCourseTron · coursetron.com
    Timeline of a swap: the boundary is decoupled while the partial bitstream loads, the static region never stops, and the new module takes over when it signals ready.

    How Industry Tools Handle It

    In AMD Vivado, the DFX flow synthesizes the static design and each reconfigurable module separately, assigns modules to a Pblock marked as a reconfigurable partition, runs implementation to produce one full bitstream plus one partial bitstream per module variant, and runs pr_verify to confirm every partial is compatible with the same static image. Intel Quartus Prime uses a similar partition-and-revision model with a PR controller IP and a persona-based compile. Both toolchains enforce that all module variants for a region share identical boundary routing so any partial bitstream drops cleanly onto the frozen static base.

    Learn this hands-on

    Real projects and industry tool flows, with certification.

    Explore CourseTron Courses →

    partial reconfiguration — Interview FAQ

    What is the difference between partial reconfiguration and full reconfiguration?

    Full reconfiguration rewrites the entire configuration memory and resets the whole device, so all user logic stops. Partial reconfiguration rewrites only the frames belonging to a floorplanned region, leaving the static logic clocked and running throughout the swap.

    Why do we decouple the boundary before loading a partial bitstream?

    While a region's configuration memory is being overwritten, its outputs are undefined and can glitch. Decoupling holds the static-side inputs at a known safe value until the new module asserts that it is ready, preventing those transient values from corrupting the running static logic or downstream state.

    What is a reconfigurable partition and why must module footprints match?

    A reconfigurable partition is the fixed physical region (a Pblock) that hosts the swappable modules, along with its frozen boundary routing. Every module variant for that partition must present the same interface and fit the same resource footprint so that any partial bitstream produced for it is bit-compatible with the single static image.

    How is the partial bitstream actually delivered into the device?

    Through an internal configuration port — ICAP or MCAP on AMD devices, or the PR controller IP on Intel devices. A controller in the static region (often a soft/hard CPU) fetches the partial bitstream from DDR or flash and streams it into that port; external JTAG or SelectMAP can also be used during development.

    Related: a related topic · the VLSI Glossary · all courses.

    Advertisement