Step 8: Use the DFX Wizard to Define Configurations - 2024.1 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
Release Date
2024.1 English

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 can 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, 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 the AMD Vivado™ tools know what steps must be rerun when sources are modified.

For more information on the DFX project flow, see Vivado Design Suite User Guide: Dynamic Function eXchange (UG909).

  1. Open the DFX Wizard by clicking Dynamic Function eXchange Wizard in the Flow Navigator or by selecting that option under the Tools menu.

  2. Click Next. In the Edit Reconfigurable Modules step, you 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.
  3. 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.

  4. Click Next. In the Edit Configuration Runs step, click the Standard DFX link to create one run per configuration. For information on Abstract Shell configuration runs, see Abstract Shell Project Mode.

    Note: The auto-generated names are not editable; the parent run 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.

  5. 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.