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,
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:
DONT_TOUCHon the specified cell and its interface nets. This prevents optimization across the boundary of the module.
EXCLUDE_PLACEMENTon the cell's Pblock. This prevents static logic from being placed in the reconfigurable region.
CONTAIN_ROUTINGon the cell's Pblock. This keeps all the routing for the RM within the bounding box.
- Enables special code for DRCs, clock routing, etc.