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.
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 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 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.
If you are interested in the IMPRESS reconfiguration tool or if you want to request further information, do not hesitate to contact us.