Step 6: Creating and Implementing a Greybox Module - 2024.1 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
Release Date
2024.1 English

For some designs, the desired initial configuration of the device might be an image with no function resident in a Reconfigurable Partition. Or perhaps there are no Reconfigurable Modules available to implement yet. A greybox configuration can be created with only the static design resident.

A greybox is a module that starts off as a blackbox, but then has LUTs automatically inserted for all ports during implementation. Output ports are driven to a logic 0 (by default; 1 is selectable via property) so they do not float. This module allows the design to be processed even if no RMs are available. Although a configuration with greybox RMs can be the parent run, this is only recommended when no other RMs exist and/or when budgeting constraints are used to optimize the RP interface placement. Therefore, this capability is not permitted in the Vivado IDE. It is recommended that a greybox configuration is a child configuration, where the parent run is the most difficult configuration or uses representative functionality within each RP to produce the highest quality static design possible.

  1. Open the Dynamic Function eXchange (DFX) Wizard and move to the Configurations page. No new Reconfigurable Modules need to be defined in this case, because this is a dedicated feature. Create a new configuration a name of config_greybox, and enter <greybox> for each Reconfigurable Partition instance.

  2. Click Next to get to the Configuration Runs page, then create another new configuration run, this time for the greybox configuration.
    • Run: child_gb_impl_1
    • Parent: impl_1 – this makes this configuration run a new child run, starting from the existing parent run
    • Configuration: config_greybox – the RMs consist only of LUT tie-offs
  3. Click OK to create this new configuration run.

  4. Click Next, and click Finish to create this new run.

    Now there are four implementation runs and three out-of-context runs shown in the Design Runs window. The greybox module does not require synthesis. It is an embedded feature in the DFX solution.

    At this point the greybox configuration can be implemented.

  5. Select the impl_greybox design run, right-click, and select Launch Runs to implement this child configuration.