Step 4: Using the DFX Wizard to Complete the Rest of the Design - 2022.1 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
Release Date
2022.1 English
  1. Launch the Dynamic Function eXchange Wizard by selecting this option under the Tools menu or from the Flow Navigator.
  2. Click Next to get to the Edit Reconfigurable Modules page. Here you can see the mult RM already exists, and there are add, remove and edit buttons on the left-hand side of the page. Click on the + icon to add a new RM.
  3. Click the Add Files button to select the top level of the add function:

    If module-level constraints were needed, they would be added here. Note that they would need to be scoped to the level of hierarchy for this Partition.

  4. Select add.v either by double-clicking or by single-clicking and selecting OK.
  5. Fill in the Reconfigurable Module name to be add. Set the Partition Definition name to be math, leave Top Module name empty and the Sources are already synthesized option unchecked. Select the Copy sources into project checkbox. Click OK to create the new module.

    Two Reconfigurable Modules are now available for the math Reconfigurable Partition.

    Figure 1. DFX Wizard with Two Reconfigurable Modules Defined

  6. Click Next to define configurations.
  7. Let the Wizard create the configurations by selecting the automatically create configurations link.

    Configurations are full design images consisting of the static design and one RM per RP. You can either create any desired set of configurations, or simply let the wizard select them for you, as you did above.

    The minimum set of two configurations is now created. The math instance has been given mult in the first configuration and add in the second configuration.

    Note: The Configuration Name is editable, and the names have been updated to config_mult and config_add to reflect the Reconfigurable Modules contained within each configuration.
    Figure 2. Auto-Generated Minimum Set of Configurations with Modified Names

    Additional configurations can be created by using these two Reconfigurable Modules when desired. Greybox (blackbox with LUT tie-offs) configurations can also be selected, but this feature is not used in this lab.

  8. Click Next to get to the Edit Configuration Runs page.

    As with configurations themselves, the runs used to implement each configuration can be automatically or manually created. A parent-child relationship will define how the runs interact – the parent run implements the static design and all RMs within that configuration, then child runs reuse the locked static design while implementing the RMs within that configuration in that established context.

  9. Click the automatically create configuration run link to populate the Configuration Runs page with the minimum set of runs.

    This creates two runs, consisting of one parent configuration (config_mult) and one child configuration (config_add). Any number of independent or related runs can be created within this wizard with options for using different strategies or constraint sets for any of them. For now, leave this set to the two runs set here. Note that the names of the runs are not editable.

    Figure 3. Auto-generated Minimum Set of Configuration Runs

  10. Click Next to see the Summary page then Finish to complete the setup and exit the Wizard.
    Important: Nothing is created or modified until you click Finish to exit the DFX Wizard. All actions are queued until this last click, so it is possible to step forward and back as needed without implementing changes until you are ready.

    Back in the Vivado IDE, the Design Runs window has been updated. A second out-of-context synthesis run has been added for the math RM, and a child implementation run (child_0_impl_1) has been created under the parent (impl_1).

Figure 4. Design Runs Window Showing All Synthesis and Implementation Ready to Launch