Step 2: Examining the Scripts - 2023.1 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
UG947
Release Date
2023-05-24
Version
2023.1 English

Start by reviewing the scripts provided in the design archive. The files run_dfx.tcl and advanced_settings.tcl are located at the root level. The run_dfx.tcl script contains the minimum required settings to run Dynamic Function eXchange. The advanced_settings.tcl contains default flow settings and should only be modified by experienced users.

The Main Script

In \led_shift_count_us, open run_dfx.tcl in a text editor. This is the master script where you define the design parameters, design sources, and design structure. This is the only file you have to modify to compile a complete Dynamic Function eXchange design. Find more details regarding run_dfx.tcl, advanced_settings.tcl, and the underlying scripts in the README.txt located in the Tcl_HD subdirectory.

Note the following details in this run_dfx.tcl:

  • Under Define target demo board, you can select one of many demonstration boards supported for this design.
  • Under flow control, you can control what phases of synthesis and implementation are run. In the tutorial, only synthesis is run by the script; implementation, verification, and bitstream generation are run interactively. To run these additional steps via the script, set the flow variables (e.g., run.prImpl) to 1.
  • The Output Directories and Input Directories set the file structure expected for design sources and results files. You must reflect any changes to your file structure here.
  • The Top Definition and RP Module Definitions sections let you reference all source files for each part of your design. Top Definition covers all sources needed for the static design, including constraints and IP. The RP Module Definitions section does the same for Reconfigurable Partitions (RP). Identify each RP and list all Reconfigurable Module (RM) variants for each RP.
    • This design has two Reconfigurable Partitions (inst_shift and inst_count), and each RP has two module variants.
  • The Configuration Definition sections define the sets of static and reconfigurable modules that make up a configuration.
    • This design has two configurations defined within the master script: config_shift_right_count_up_implement and config_shift_left_count_down_import.
    • You can create more configurations by adding RMs or by combining existing RMs.

The Supporting Scripts

Underneath the Tcl_HD subdirectory, several supporting Tcl scripts exist. The scripts are called by run_dfx.tcl, and they manage specific details for the Dynamic Function eXchange flow. Provided below are some details about a few of the key DFX scripts.

CAUTION:
Do not modify the supporting Tcl scripts.
step.tcl
Manages the current status of the design by monitoring checkpoints.
synthesize.tcl
Manages all the details regarding the synthesis phase.
implement.tcl
Manages all the details regarding the module implementation phase.
dfx_utils.tcl
Manages all the details regarding the top-level implementation of a DFX design.
run.tcl
Launches the actual runs for synthesis and implementation.
log_utils.tcl
Handles report file creation at key points during the flow.

Remaining scripts provide details within these scripts (such as other *_utils.tcl scripts) or manage other Hierarchical Design flows (such as hd_utils.tcl).