IMPRESS (IMplementation of Partial REconfigurable SystemS) is an open-source reconfiguration tool for implementing multi-grain reconfigurable systems in Xilinx Series 7 FPGAs and Zynq-7000 SoC.

See the brochure

Design-Time Support

IMPRESS includes design-time support to combine several granularities in one reconfigurable system. The coarse-grain granularity is used to exchange monolithic reconfigurable modules to adapt the behavior of the system. In contrast, medium-grain granularity is most suited to be used with mesh-type reconfigurable architectures as systolic arrays and other general-purpose overlays. In this way, it is possible to reconfigure individual processing elements without having to reconfigure the whole architecture. Lastly, fine-grain reconfiguration is used to reconfigure individual components of a netlist (e.g., LUT truth table, flip-flop internal value). IMPRESS include three different fine-grain components (constants, multiplexers and functional units) that can be instantiated in a design.

IMPRESS design-time support for multi-grain reconfiguration

Run-Time Support

IMPRESS includes run-time support to easily manage multi-grain reconfigurable systems. It includes an API that hides low-level reconfiguration details from the user. IMPRESS also includes two reconfiguration engines in charge of automatically downloading bitstreams to the FPGA fabric. Coarse- and medium-grain bitstreams are downloaded with a SW-based reconfiguration engine while fine-grain bitstreams are downloaded with a hardware-based reconfiguration engine optimized for fast reconfiguration.

IMPRESS run-time support for multi-grain reconfiguration

IMPRESSive features

IMPRESS expands Vivado reconfiguration flow adding the following features:

  • The implementation of the static system and the reconfigurable modules is decoupled.
  • Direct reconfigurable-to-reconfigurable interfaces without using static resources.
  • Flexible reconfigurable regions. At run-time reconfigurable regions can adopt any virtual architectures style (island, slot or grid styles). The only requisite is to keep fixed static-to-reconfigurable interfaces.
  • The same partial bitstream can be relocated in compatible reconfigurable regions (i.e., bitstream relocation).
  • Multiple reconfigurable regions can be stacked in a clock region.
  • Fine-grain constants, multiplexers and functional units can be inserted in a design.
  • Fast fine-grain reconfiguration engine.

IMPRESSive features


If you are interested in the IMPRESS reconfiguration tool or if you want to request further information, do not hesitate to contact us.