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

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
Release Date
2024.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. The constraints 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 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.

  6. Click Next to define configurations.
  7. Select the automatically create configurations link to let the Wizard create the configurations.

    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.

    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 Standard DFX link (UltraScale+ device targets) or the automatically create configuration runs link (UltraScale device targets) to populate the Configuration Runs page with the minimum set of runs.
    Note: The following figures show a design that targets an UltraScale+ device.

    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.

  10. Click Next to see the Summary page, and click 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).