Define a Module as Reconfigurable - 2023.2 English

Vivado Design Suite User Guide: Dynamic Function eXchange (UG909)

Document ID
Release Date
2023.2 English

In order to implement a DFX design, it is required to specify each RM as such. To do this you must set a property on the top level of each hierarchical cell that is going to be reconfigurable. For example, take a design where one RP named inst_count exists, and it has two RMs, count_up and count_down. The following command must be issued prior to implementation of the first configuration.

set_property HD.RECONFIGURABLE TRUE [get_cells inst_count]

This initiates the Dynamic Function eXchange features in the software that are required to successfully implement a DFX design. The HD.RECONFIGURABLE property implies a number of underlying constraints and tasks:

  • Sets DONT_TOUCH on the specified cell and its interface nets. This prevents optimization across the boundary of the module.
  • Sets EXCLUDE_PLACEMENT on the cell's Pblock. This prevents static logic from being placed in the reconfigurable region.
  • Sets CONTAIN_ROUTING on the cell's Pblock. This keeps all the routing for the RM within the bounding box.
  • Enables special code for DRCs, clock routing, etc.