The Dynamic Function eXchange Wizard is used to define relationships between the different parts of a DFX design. Using block design containers, you have created a level of the hierarchy of a design that may have more than one source – in a DFX design, the block design container represents a Reconfigurable Partition (RP), and each source is a Reconfigurable Module (RM).
Within the DFX Wizard, you will define configurations and configuration runs. A configuration is a full design image, with one RM per RP. A configuration run is a pass of the place and route tools to create a routed checkpoint for that configuration. The DFX Wizard also establishes parent-child relationships between configuration runs, helping automate required parts of the flow including static design locking and pr_verify, and sets up dependencies between runs, so Vivado® knows what steps must be rerun when sources are modified.
For more information on the DFX project flow, please see Chapter 4 of UG909.
- Open the DFX Wizard by clicking Dynamic Function
eXchange Wizard in the Flow Navigator or by selecting that option
under the Tools menu. Figure 1. The DFX Wizard in the Flow Navigator
- Click Next. In the Edit Reconfigurable Modules step,
you will see the two RMs, rp1rm1_inst_0 and rp1rm2_inst_0, that you created within
the rp1 block design container. Important: Unlike within the RTL Project flow for Dynamic Function eXchange, the DFX Wizard is NOT the entry point for new Reconfigurable Modules. New RMs should be added from the canvas in the same way RM2 was added.
- Click Next. In the Edit Configurations
step, click the automatically create
configurations link to generate two configurations.
While you can also click the + button to generate these configurations, for designs with a single RP, automatic creation is the easiest way to create the list of configurations covering all RMs.
Note: The Configuration Name field is editable.Figure 2. Two Configurations Created - Click Next. In the Edit Configuration
Runs step, click the automatically create configuration
runs a link to create one run per configuration.Figure 3. Two Configuration Runs CreatedNote: The auto-generated names are not editable; the parentrun is impl_1 and the child run is child_0_impl_1. Like the Configurations themselves, you can manually create the Configuration Runs, and when doing so, you can name the runs anything you’d like.
A critical aspect of the DFX project flow is the parent-child relationship, and that is shown here under the Parent category. A parent implementation starts with a synthesis run, and all child runs must reference the parent implementation to establish the static design consistency between them. In this simple example, the parent of child_0_impl_1 is impl_1, and the indentation of the child run illustrates this relationship.
- Click Next then Finish to complete this section.
The DFX Wizard can be revisited any time to create new or modified configurations and configuration runs within the project.
In the Design Runs window, a new implementation runs for child_0_impl_1 has been created. Like the view in the DFX Wizard, this new run is indented to show its dependency on the impl_1 run above it.
Figure 4. Parent and Child Configuration Runs Created